| title | Webhooks | ||
|---|---|---|---|
| nav_order | 14 | ||
| seo |
|
||
| description | Receive HTTP POST callbacks from Makeplans when bookings and other resources change — webhook concepts, payload and configuration. |
A webhook is simply a user-defined callback in the form of an HTTP POST which is invoked when something happens. So for example whenever a new booking is created in Makeplans we can send a POST request to the URL you specify. The request body will include data about the modified object.
| Name | Type | Description |
|---|---|---|
| event | String | Type of event |
| idempotency_id | String | Unique id for this webhook |
| generated_at | String | When the event was initialized |
| performed_by | Object | Info of the user who performed the event |
| data | Object | Related object for event type |
| Name | Type | Description |
|---|---|---|
| object | String | Type of object |
| id | Integer | Id of the object |
| *object_type* | Object | Payload of the object |
The attributes in the data payload, 'object', 'id', and 'object_type', are also included in the root payload due to legacy reasons. Please use the data attribute. The legacy attributes will be removed in the future.
- booking.cancelled
- booking.confirmed
- booking.created
- booking.declined
- booking.deleted
- booking.modified
- booking.verified
- booking.waitlist_promoted
- booking.waitlisted
- event.created
- event.deleted
- event.modified
- message.processed
- person.created
- person.deleted
- person.updated
You can use wildcard to trigger all or grouped events: * or booking.*
We include a X-MakePlans-Signature header in the webhook request. Use this to verify the request body to ensure the request is from Makeplans and signed with your account secret. The header includes details about the signature and the signature itself. We use HMAC SHA-256 to compute this signature.
Example: X-MakePlans-Signature: sha256=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd.
You can add HTTP Basic Auth credentials or a parameter secret to the webhook URL.
We will retry after any 4xx or 5xx HTTP status response. Note that 4xx responses are also retried as they may be caused by temporary issues on the receiving end. Maximum retries are 20. The timeout is set to 10 seconds.
A 410 Gone response is not retried. It deactivates the webhook.