cal.pub0.org/apps/docs/pages/webhooks.mdx

99 lines
5.9 KiB
Plaintext
Raw Normal View History

---
title: Webhooks
---
Migrate docs to mono repo (#1814) * Initial commit Created from https://vercel.com/new * Update config * Homepage * Self-hosting * Integrations * More docs pages * Developer docs * Update billing.mdx * Update install.mdx * Fix install guide * More fixes * Adding CSS guide * Fix capitalisation on Microsoft page * Added delete account update * Added Zapier integration question * Added GMeet integration part * Added Delete Account to Settings * unnecessary question mark * Added a link to Settings * Added stuff in Billing * Added a link to cal.com/signup * Capitalization * Added language change * Added more stuff in Event Types * Added how to change email * Added FAQ page * Spelling mistake * Added a title to FAQ * Added more stuff to Billing * Availability multi-booking * Deleted from Availability added to FAQ * Added to FAQ * Removed the dot * Added stuff to FAQ * Add license warning to adding CSS page * Update docker.mdx * Add import instructions * removed readme until we have our own * updated favicon, added cal sans * added new cal sans * Create README.md * renamed all github links * renamed more github links * Added team's Event Types * Clarified the Google Meet integration * Spelling error * Added primary calendar tutorial * Removed tutorial * primary calendar selection * Moved to subdirectory * Matching configs * Shares eslint config between web and docs * Removes format-schemas * Updates env file location in turbo * [docs] updates monorepo intructions Co-authored-by: baileypumfleet <pumfleet@hey.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: milospuac <97884287+milospuac@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@richelsen.net>
2022-02-11 19:33:35 +00:00
# Webhooks
Migrate docs to mono repo (#1814) * Initial commit Created from https://vercel.com/new * Update config * Homepage * Self-hosting * Integrations * More docs pages * Developer docs * Update billing.mdx * Update install.mdx * Fix install guide * More fixes * Adding CSS guide * Fix capitalisation on Microsoft page * Added delete account update * Added Zapier integration question * Added GMeet integration part * Added Delete Account to Settings * unnecessary question mark * Added a link to Settings * Added stuff in Billing * Added a link to cal.com/signup * Capitalization * Added language change * Added more stuff in Event Types * Added how to change email * Added FAQ page * Spelling mistake * Added a title to FAQ * Added more stuff to Billing * Availability multi-booking * Deleted from Availability added to FAQ * Added to FAQ * Removed the dot * Added stuff to FAQ * Add license warning to adding CSS page * Update docker.mdx * Add import instructions * removed readme until we have our own * updated favicon, added cal sans * added new cal sans * Create README.md * renamed all github links * renamed more github links * Added team's Event Types * Clarified the Google Meet integration * Spelling error * Added primary calendar tutorial * Removed tutorial * primary calendar selection * Moved to subdirectory * Matching configs * Shares eslint config between web and docs * Removes format-schemas * Updates env file location in turbo * [docs] updates monorepo intructions Co-authored-by: baileypumfleet <pumfleet@hey.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: milospuac <97884287+milospuac@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@richelsen.net>
2022-02-11 19:33:35 +00:00
## Create a new Webhook
1. Go to [Your Integrations](https://app.cal.com/integrations).
2. 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.
3. Select whatever event this triggers, this may be Create, Cancelled or Reschedule.
4. Once this is completed, insert the Subscriber URL then click 'Save' located at the bottom right of the box.
## Edit an existing Webhook
1. Go to [Your Integrations](https://app.cal.com/integrations).
2. 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.
3. 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
1. Go to [Your Integrations](https://app.cal.com/integrations).
2. 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.
3. Press the button and from here your webhook will no longer work and be deleted.
## Webhook metadata
Migrate docs to mono repo (#1814) * Initial commit Created from https://vercel.com/new * Update config * Homepage * Self-hosting * Integrations * More docs pages * Developer docs * Update billing.mdx * Update install.mdx * Fix install guide * More fixes * Adding CSS guide * Fix capitalisation on Microsoft page * Added delete account update * Added Zapier integration question * Added GMeet integration part * Added Delete Account to Settings * unnecessary question mark * Added a link to Settings * Added stuff in Billing * Added a link to cal.com/signup * Capitalization * Added language change * Added more stuff in Event Types * Added how to change email * Added FAQ page * Spelling mistake * Added a title to FAQ * Added more stuff to Billing * Availability multi-booking * Deleted from Availability added to FAQ * Added to FAQ * Removed the dot * Added stuff to FAQ * Add license warning to adding CSS page * Update docker.mdx * Add import instructions * removed readme until we have our own * updated favicon, added cal sans * added new cal sans * Create README.md * renamed all github links * renamed more github links * Added team's Event Types * Clarified the Google Meet integration * Spelling error * Added primary calendar tutorial * Removed tutorial * primary calendar selection * Moved to subdirectory * Matching configs * Shares eslint config between web and docs * Removes format-schemas * Updates env file location in turbo * [docs] updates monorepo intructions Co-authored-by: baileypumfleet <pumfleet@hey.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: milospuac <97884287+milospuac@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@richelsen.net>
2022-02-11 19:33:35 +00:00
Metadata is a way to pass extra information to Cal.com about a booking that is returned through a webhook.
### Example
Migrate docs to mono repo (#1814) * Initial commit Created from https://vercel.com/new * Update config * Homepage * Self-hosting * Integrations * More docs pages * Developer docs * Update billing.mdx * Update install.mdx * Fix install guide * More fixes * Adding CSS guide * Fix capitalisation on Microsoft page * Added delete account update * Added Zapier integration question * Added GMeet integration part * Added Delete Account to Settings * unnecessary question mark * Added a link to Settings * Added stuff in Billing * Added a link to cal.com/signup * Capitalization * Added language change * Added more stuff in Event Types * Added how to change email * Added FAQ page * Spelling mistake * Added a title to FAQ * Added more stuff to Billing * Availability multi-booking * Deleted from Availability added to FAQ * Added to FAQ * Removed the dot * Added stuff to FAQ * Add license warning to adding CSS page * Update docker.mdx * Add import instructions * removed readme until we have our own * updated favicon, added cal sans * added new cal sans * Create README.md * renamed all github links * renamed more github links * Added team's Event Types * Clarified the Google Meet integration * Spelling error * Added primary calendar tutorial * Removed tutorial * primary calendar selection * Moved to subdirectory * Matching configs * Shares eslint config between web and docs * Removes format-schemas * Updates env file location in turbo * [docs] updates monorepo intructions Co-authored-by: baileypumfleet <pumfleet@hey.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: milospuac <97884287+milospuac@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@richelsen.net>
2022-02-11 19:33:35 +00:00
The best way to explain this is with an example. Let's say you're a bank, and people register an account on your website, but you want them to book an onboarding call with your team to get set up. You could send them to your Cal.com booking link as part of your onboarding process, but when the webhook is returned, it may be difficult to match up which user booked a meeting with the user's account in your own database. Hence, you can pass a `user_id` value for instance as a URL parameter, which makes no difference to the booking process, but when the webhook is returned, you will receive the metadata as part of the webhook payload.
Metadata is passed as a URL parameter on top of your booking link and follows the following syntax:
Migrate docs to mono repo (#1814) * Initial commit Created from https://vercel.com/new * Update config * Homepage * Self-hosting * Integrations * More docs pages * Developer docs * Update billing.mdx * Update install.mdx * Fix install guide * More fixes * Adding CSS guide * Fix capitalisation on Microsoft page * Added delete account update * Added Zapier integration question * Added GMeet integration part * Added Delete Account to Settings * unnecessary question mark * Added a link to Settings * Added stuff in Billing * Added a link to cal.com/signup * Capitalization * Added language change * Added more stuff in Event Types * Added how to change email * Added FAQ page * Spelling mistake * Added a title to FAQ * Added more stuff to Billing * Availability multi-booking * Deleted from Availability added to FAQ * Added to FAQ * Removed the dot * Added stuff to FAQ * Add license warning to adding CSS page * Update docker.mdx * Add import instructions * removed readme until we have our own * updated favicon, added cal sans * added new cal sans * Create README.md * renamed all github links * renamed more github links * Added team's Event Types * Clarified the Google Meet integration * Spelling error * Added primary calendar tutorial * Removed tutorial * primary calendar selection * Moved to subdirectory * Matching configs * Shares eslint config between web and docs * Removes format-schemas * Updates env file location in turbo * [docs] updates monorepo intructions Co-authored-by: baileypumfleet <pumfleet@hey.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: milospuac <97884287+milospuac@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@richelsen.net>
2022-02-11 19:33:35 +00:00
```text
metadata[key_name]=value
```
For example, if your booking link is `cal.com/rick/quick-chat`, you can pass a user ID of 123 like so:
Migrate docs to mono repo (#1814) * Initial commit Created from https://vercel.com/new * Update config * Homepage * Self-hosting * Integrations * More docs pages * Developer docs * Update billing.mdx * Update install.mdx * Fix install guide * More fixes * Adding CSS guide * Fix capitalisation on Microsoft page * Added delete account update * Added Zapier integration question * Added GMeet integration part * Added Delete Account to Settings * unnecessary question mark * Added a link to Settings * Added stuff in Billing * Added a link to cal.com/signup * Capitalization * Added language change * Added more stuff in Event Types * Added how to change email * Added FAQ page * Spelling mistake * Added a title to FAQ * Added more stuff to Billing * Availability multi-booking * Deleted from Availability added to FAQ * Added to FAQ * Removed the dot * Added stuff to FAQ * Add license warning to adding CSS page * Update docker.mdx * Add import instructions * removed readme until we have our own * updated favicon, added cal sans * added new cal sans * Create README.md * renamed all github links * renamed more github links * Added team's Event Types * Clarified the Google Meet integration * Spelling error * Added primary calendar tutorial * Removed tutorial * primary calendar selection * Moved to subdirectory * Matching configs * Shares eslint config between web and docs * Removes format-schemas * Updates env file location in turbo * [docs] updates monorepo intructions Co-authored-by: baileypumfleet <pumfleet@hey.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: milospuac <97884287+milospuac@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@richelsen.net>
2022-02-11 19:33:35 +00:00
```text
cal.com/rick/quick-chat?metadata[user_id]=123
```
As a result, the webhook will be returned in this format:
Migrate docs to mono repo (#1814) * Initial commit Created from https://vercel.com/new * Update config * Homepage * Self-hosting * Integrations * More docs pages * Developer docs * Update billing.mdx * Update install.mdx * Fix install guide * More fixes * Adding CSS guide * Fix capitalisation on Microsoft page * Added delete account update * Added Zapier integration question * Added GMeet integration part * Added Delete Account to Settings * unnecessary question mark * Added a link to Settings * Added stuff in Billing * Added a link to cal.com/signup * Capitalization * Added language change * Added more stuff in Event Types * Added how to change email * Added FAQ page * Spelling mistake * Added a title to FAQ * Added more stuff to Billing * Availability multi-booking * Deleted from Availability added to FAQ * Added to FAQ * Removed the dot * Added stuff to FAQ * Add license warning to adding CSS page * Update docker.mdx * Add import instructions * removed readme until we have our own * updated favicon, added cal sans * added new cal sans * Create README.md * renamed all github links * renamed more github links * Added team's Event Types * Clarified the Google Meet integration * Spelling error * Added primary calendar tutorial * Removed tutorial * primary calendar selection * Moved to subdirectory * Matching configs * Shares eslint config between web and docs * Removes format-schemas * Updates env file location in turbo * [docs] updates monorepo intructions Co-authored-by: baileypumfleet <pumfleet@hey.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: milospuac <97884287+milospuac@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@richelsen.net>
2022-02-11 19:33:35 +00:00
```text
2022-03-15 16:35:24 +00:00
\{ <other event details>, metadata: \{ user_id: 123 \} \}
```
## 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. Heres 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 |
| email | 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:
```sh
2022-03-15 16:35:24 +00:00
\{
"content": "A new event has been scheduled",
2022-03-15 16:35:24 +00:00
"type": "\{\{type\}\}",
"name": "\{\{title\}\}",
"organizer": "\{\{organizer.name\}\}",
"booker": "\{\{attendees.0.name\}\}"
2022-03-15 16:35:24 +00:00
\}
```