Webhooks
Create a new Webhook
- Go to Your Integrations (opens in a new tab).
- Scrolling down to the bottom of the page you will see a button called ‘New Webhook’. Press this button to open up the box which will ask for details on creating the new webhooks.
- Select whatever event this triggers, this may be Create, Cancelled or Reschedule.
- Once this is completed, insert the Subscriber URL then click 'Save' located at the bottom right of the box.
Edit an existing Webhook
- Go to Your Integrations (opens in a new tab).
- Scrolling down to the bottom of the page you will see an icon to the right of your webhook, this will be labeled edit webhook.
- Press the button and from here you can change any of the webhook settings. This could be changing the event that is triggered and this may be Create, Cancelled or Reschedule. Or you can change the Subscriber URL.
Delete an existing Webhook
- Go to Your Integrations (opens in a new tab).
- Scrolling down to the bottom of the page you will see an icon to the right of your webhook, this will be labeled delete webhook.
- Press the button and from here your webhook will no longer work and be deleted.
Webhook metadata
Metadata is a way to pass extra information to Scheduler about a booking that is returned through a webhook.
Custom Webhooks template variable list
Customizable webhooks are a great way reduce the development effort and in many cases remove the need for a developer to build an additional integration service. Using a custom template you can easily decide what data you receive in your webhook endpoint, manage the payload and setup related workflows accordingly. Here’s a breakdown of the payload that you would receive via an incoming webhook.
Webhook structure
| Variable | Type | Description |
|---|---|---|
| triggerEvent | String | The name of the trigger event [BOOKING_CREATED, BOOKING_RESHEDULED, BOOKING_CANCELLED] |
| createdAt | String | The time of the webhook trigger |
| type | String | The event-type slug |
| title | String | The event-type name |
| startTime | String | The event's start time |
| endTime | String | The event's end time |
| description? | String | The event's description as described in the event type |
| location? | String | Location of the event |
| organizer | Person | The organizer of the event |
| attendees | Person[] | The event booker & any guests |
| uid? | String | The UID of the booking |
| resheduleUid? | String | The UID for the rescheduling |
| cancellationReason? | String | Reason for cancellation |
| rejectionReason? | String | Reason for rejection |
| team?.name | String | Name of the team booked |
| team?.members | String[] | Members of the team booked |
Person structure
| Variable | Type | Description |
|---|---|---|
| name | String | Name of the individual |
| String | Email of the individual | |
| timeZone | String | Timezone of the individual ("America/New_York", "Asia/Kolkata", etc.) |
| language.locale | String | Locale of the individual ("en", "fr", etc.) |
Example usage of variables for custom template:
\{
"content": "A new event has been scheduled",
"type": "\{\{type\}\}",
"name": "\{\{title\}\}",
"organizer": "\{\{organizer.name\}\}",
"booker": "\{\{attendees.0.name\}\}"
\}