Creating a Zendesk Macro for Ticket-Specific Calendly Links

  • 27 March 2024
  • 1 reply
  • 98 views

Userlevel 1

Add context to your meetings to help understand the impact of Calendly on your support metrics

 

Calendly is a great tool for support agents. They can quickly book time with customers and get to the heart of their issue. As usage grows, support leaders get curious about the impact of Calendly on their metrics. For example:

  • How many tickets are solved with at least one Calendly meeting?

  • Do certain Topics tend to involve Calendly?

  • How does Calendly impact handle time?

  • How does it impact CSAT?

Calendly links and reporting helps answer these questions.

A string added to the URL, called a UTM, can pass context to meetings. Context like a ticket id. You can then join ticket data with meeting data.

However, it’s hard for humans to write UTMs. Fortunately Zendesk Macros with Placeholders can do the writing for the agent. This guide will take you through how to build a Macro that builds the link with the UTM added for them.

 

The Finished Product

By adding a UTM parameter with a placeholder, you can reference the ticket that the event was scheduled through in your reporting. Here’s an example:

Hello!
I’d like to take a close look at your problem. Here’s my Calendly link, please find a time that works and I’m happy to help troubleshoot with you:

https://calendly.com/some-user-name/troubleshooting-30/?utm=zendesk_444444

 

There are three parts to the scheduling link:

https://calendly.com/some-user-name/troubleshooting-30/?utm=zendesk_444444

In red is what we call the booking URL. It’s unique for all of your Calendly users.

In green is the slug for the Managed Event you will create and assign to your Support Group.

In purple is the zendesk ticket ID with a prefix.

 

The Booking URL

In Zendesk you are going to create a custom field for our user object. We can use that field to hold the booking URL value. More information can be found in Zendesk’s help center.

  1. Add a custom field to your user object. “Calendly Link” is what we use in this example.

  2. Fill in those values. There are two ways to populate it in Zendesk:

    1. Have the agent manually add it. There are some manual steps for setting up Calendly, you can add this step to their onboarding runbook.

    2. Bulk upload through the Zendesk Bulk Upload Private Beta or try Zendesk Support

  3. Now you have a custom placeholder to use: {{current_user.custom_fields.calendly_link}}. For more info on placeholders, here’s Zendesk’s documentation.

 

The Managed Event Slug

Follow the steps listed in this article to create your Managed Event. You can add individual agents if your team is small. If you have a larger team, add all of your agents are in a Calendly Group. Then assign the Managed Event you just created to that Group. Now you have the event slug from the booking URL. Paste it into your Macro.

 

The Zendesk Ticket ID

Zendesk gives you a handy placeholder for this value: {{ticket.id}}

This is what you will add in Markdown: ?utm=zendesk_{{ticket.id}}

I’m using zendesk_ as a prefix in case anyone else in my org wants to use the UTM parameter for something else.

 

Putting it All Together

Now you have all the ingredients to put together your custom calendly URL for your Macro:


{{current_user.custom_fields.calendly-link}}/troubleshooting-30/?utm=zendesk_{{ticket.id}}

 

Every time this link is used, you can see the UTM parameter in the export of your events.

That export can then be merged with Zendesk ticket data. You can then query it in a spreadsheet, or in a data lake like Big Query or S3. Now you can answer questions about the impact of Calendly on your support business.

What other ways have folks put Zendesk and Calendly together? Anyone using Zapier?


1 reply

Userlevel 1

I just spoke with a support leader, and there’s a wrinkle to this use case that I thought was interesting!

 

This support leader had an additional requirement, that these all be single use links. That’s where my approach above. It makes a ton of sense to not expose an evergreen link for support if your staffing model doesn’t support that.

 

So for this customer we needed to use the chrome extension. The question was, how do we get the ticket context in there?

 

This org had already set up a question in their event to ask for the ticket, this is an example of what that would be like for Calendly:

 

It’s difficult to get customers to understand what you are asking for.

 

The first part of the solution is to repopulate that answer, which you can do through query string parameters, just like the UTM. For custom questions like mine, I would reference it as “a1” in the URL.

 

So clicking on this URL:

https://calendly.com/some-user-name/re/?a1=4444444

 

Would show the customer this page:

 

 

The first idea we had was utilizing a macro and placeholders just to construct the query string parameters, so a macro that looks like this:

 

?a1={{ticket.id}}

 

Then the agent can paste the link from the chrome extension, trigger the macro, and have a fully built one-time-use link with the ticket context.

 

One of the issue we saw was formatting. Zendesk would format the pasted Calendly link as a link, and not append the query string to it. The solution to this was adding a space for the link in the macro:

 

paste-calendly-link-here?a1={{ticket.id}}

 

Then when you copy the calendly link, Zendesk’s hyperlink formatting works in your favor and includes the query string as well.

 

The other nice thing about this solution is that it’s an easy process to roll out to your agents, and it doesn’t require adding to the cost of maintaining your Zendesk with more custom fields.

 

Post a reply if you try something like this!

Reply