Calendly Setup for Support

Workflow for setting up and using Calendly in Support Engineering

Note: Always use single-use Calendly links when offering a call with customers.

Calendly setup

You will have set up Calendly as part of your GitLab onboarding, following the instructions in tools and tips.

Modify your setup as follows

  • log in
  • Set up Zoom integration on your Calendly account in integrations
  • Ensure you have a one-hour event available.
  • Edit your Calendly events:
    • Ensure the event names have ‘Support’ in their title.
    • Consider changing your availability increment (see below)
    • Location may show as ‘Zoom conference call’ but won’t actually be using the integration. Edit the location, and select zoom (with the blue camcorder icon)

Availability schedule setup

Setting up your availability schedules is very important. This ensures you get scheduled calls during your intended hours as well as ensures you can be added to the various events we use.

The above video shows how to set this up, but the general gist is:

GitLab Support group account

You need to be added to the GitLab Support group account to enable the Calendly Pro account features, including the ability to add multiple “event types” for scheduling calls with customers and colleagues as recommended in the suggestions below.

To get added to the group account:

  1. Open a Schedule update request issue
  2. Assign to your manager, and they’ll approve and assign it over to a team member who provisions Calendly.

This access is also included as part of support onboarding for GitLab Support Engineers that will be handling tickets for self-managed customers.

Availability increment

Calendly 60 minute meetings default to an ‘availability Increment’ of 60 minutes.

Only slots starting at the top of the hour are offered. If you’ve got 90 minutes available, or a (say) a 14:30-15:30 window available, then reducing the increment to 30 minutes increases your availability.

  • Log in; edit the event type
  • ‘When can people book this event’
  • Select ‘Advanced’ tab under ‘Availability’ - change ‘Show availability in increments of’

If you have any other meeting lengths available, consider whether it makes sense to offer different start times. You can view your calendly availability using a private/incognito browser session.

Temporarily changing your timezone

If you are temporarily working hours different to your usual schedule, you can update Calendly so that customer calls will be booked during your updated timezone.

  1. Log in to Calendly. Click the Availability tab (or use this URL).
  2. In the Schedule > Default Hours area, use the TIME ZONE dropdown to select your updated timezone. Changes are automatically saved.
  3. Set a calendar reminder for yourself, to reset your timezone when your working hours have reverted to usual.

Set the minimum amount of notice that is required for an event

You can specify scheduling conditions that disallow scheduling events within a configurable interval of an event start time.

  1. Log in and edit the event type
  2. Click When can people book this event
  3. Click Additional rules for your availability
  4. Under Scheduling conditions, select a time interval under Invitees can't schedule within...
  5. Click Save & Close

Support calls in the team calendar

We copy customer calls to the GitLab Support Google calendar using a Zapier zap. For this to work

  • Your calendly account must be part of the group account.
  • The word ‘support’ triggers the integration. Ensure ‘support’ is in the event name in Calendly.

If the Zap is working, you should see the calendar event copied within a minute or two. If the customer cancels, similarly, it’ll be removed from the Support calendar.

Ticket ID in calendar events

Please add a required question to your personal Calendly customer events. This question should ask the customer to enter the GitLab Support ticket number when they schedule with you. This ensures the ticket number is shown on the calendar events, and provides context for others to join and help out on a call.

using Chrome plug-in / Firefox extension

Calendly has a Chrome plug-in and a Firefox extension that makes it easy to generate a single-use link to send to the customer. After adding it to your browser, look for the Calendly icon at the top right in your browser. Sign in to Calendly, then you will see a list of events. You probably want to “star” your personal Support Call event to simplify the pop-up window. Then simply click on the one-time link icon next to the event of your choice to generate a link you can paste into your message to the customer.

Browser plug-in

If you do not want to use a supported browser, you can generate a link from your Calendly home page according to the Calendly documentation.

using curl

Set your Calendly API token:

1
t=<your Calendly API token>

Get your personal URI:

1
2
uri=$(curl -s -H "Authorization: Bearer $t" \
  https://api.calendly.com/users/me | jq -r '.resource.uri')

List your available events:

1
2
3
4
5
curl -sG -H "Authorization: Bearer $t" \
  -d user=$uri \
  "https://api.calendly.com/event_types" \
  | jq -r '.collection[]|select(.active == true)|([.name,.uri] | join(","))' \
  | column -s',' -t -d

This will generate a table such as this:

1
2
3
4
5
6
7
8
15 Minute Meeting                   https://api.calendly.com/event_types/DGFGYBLAHK4CNXJF
30 Minute Coffee Call               https://api.calendly.com/event_types/DEBLAHWQSO3GGUES
GitLab Government Customer Call        https://api.calendly.com/event_types/DADPABBLAHWZY57A
GitLab Support Call                 https://api.calendly.com/event_types/CEGFRWO2BLAHSAQE
Upgrade Assistance             https://api.calendly.com/event_types/AHBRCBLAH6ECV5E6
Pairing Session                     https://api.calendly.com/event_types/EBLAHIHDJDJRSS42
Support call with me                https://api.calendly.com/event_types/DBLAH4WXTM7ADUB2
US Government Upgrade Assistance  https://api.calendly.com/event_types/BLAHTQKLLSHV3GL3

To generate a single-use link for the “Support call with me” event:

1
2
3
4
5
6
curl -s -H "Authorization: Bearer <your Calendly API token>" \
  -F max_event_count=1 \
  -F owner_type=EventType \
  -F owner=https://api.calendly.com/event_types/DBLAH4WXTM7ADUB2 \
  https://api.calendly.com/scheduling_links \
  | jq -r '.resource.booking_url'

This will output something like the following:

https://calendly.com/d/m6we-x8r7/support-call-with-me

using httpie

The following uses the same setup, patterns, and output as above.

Get your personal URI:

1
2
3
uri=$(https https://api.calendly.com/users/me \
  Authorization:"Bearer $t" \
  | jq -r '.resource.uri')

List your available events:

1
2
3
4
5
https -b  api.calendly.com/event_types \
  user==$uri \
  Authorization:"Bearer $t" \
  | jq -r '.collection[]|select(.active == true)|([.name,.uri] | join(","))' \
  | column -s',' -t -d

Generate a single-use link:

1
2
3
4
5
6
https -b  api.calendly.com/scheduling_links \
  Authorization:"Bearer $t" \
  max_event_count=1 \
  owner_type=EventType \
  owner=https://api.calendly.com/event_types/DBLAH4WXTM7ADUB2 \
  | jq -r '.resource.booking_url'

Protecting Customer Call events by making them Secret in Calendly

Customer Calls should be invitation-only. To do this, ensure all your Customer Call events are a Secret event. By doing this, only those who have the Calendly link to the specific event can see the meeting with you.

NOTE: If you do not take this action, then anyone can see your Customer Call events on your public Calendly page.

  1. Edit any of your events (specifically, the ones that you use for Customer Calls).
  2. Go to When can people book this event section.
  3. Click Additional rules for your availability.
  4. At the bottom of the section, find the Secret event section.
  5. Check the box and save. Check the Calendly documentation in case of any issues.

Auto block PagerDuty shifts in Calendly

It is possible to automate the blocking of your PagerDuty shifts in Calendly, so you are not booked for a customer call while you are on duty. This works by subscribing to your PagerDuty on-call schedule in Google Calendar, and then having Calendly use this when checking for conflicts. To set this up:

  1. In PagerDuty, navigate to Your profile > On-Call Shifts > Export > WebCal feed. Right-click and copy the URL.
  2. Add the PagerDuty calendar to your Google Calendar Other calendars > + > From URL and paste the WebCal URL from step 1.
  3. In Calendly, navigate to Account > Calendar Connections > Configuration > Check for conflicts and click the Edit button.
  4. Ensure that the PagerDuty calendar added in step 2 is selected here (it will be listed as “On Call Schedule for Your Name”, not the name you gave it in Google), and then click the Update button. If your calendar does not appear in the list, you can disconnect and reconnect your Google Calendar account from Calendly to refresh the calendar list.

Send customers the combined availability suggestions of multiple colleagues

Using a similar principle as for blocking your PagerDuty shifts, it is also possible to make Calendly present only those time slots which are available for multiple GitLab colleagues. This is useful when other Support Engineers, developers or managers need to attend a customer call

  1. In Google Calendar Other calendars > + > Subscribe to calendar, start typing the name of your colleague and click on their auto-completed name to subscribe.
  2. In Calendly, navigate to Account > Calendar Sync > Configuration > Check for conflicts and click the Edit button.
  3. Add your colleague’s calendar to the availability check via their …@gitlab.com entry.
  4. After the call has been scheduled, remove that entry again.

Suggestions

Ben Prescott

  • I have a 25 minute and 50 minute meeting available for internal GitLab meetings, and separate 30 minute and 60 minute ones called ‘GitLab Customer support’. These are the ones I send links to in Zendesk.
  • I offer 60 minutes by default, and changed the description/instructions as follows. I include the last line as we had a customer book for 3am their time, and can only assume Calendly got their time zone wrong.

This will be a Zoom Meeting.

Let me know via the ticket if you have any questions, will need to use a different conference platform, or if you want a link to schedule a 30 minute call instead (which may be available sooner.)

Check that your time zone and current time are displayed correctly on this page (below the calendar.)