Create a webhook
Login to the Butlerapp
In the left menu, under the Settings section, select Webhook Configurations
On the top right corner, click on plus button to add a new webhook
Enter a Name for the webhook to make it easier to identify.
Choose the entity you want the webhook to notify you about. You can select individual event or you select "Everything" from the event, if you have selected everything, then webhook will be fired for all entities mentioned in the list
Enter the Endpoint URL. Webhooks will be sent to this address. The endpoint URL should be prefixed with either https:// or http://.
Enter an X-Webhook-Signature header key. This key will be included in the header of your webhook to validate that the notification was sent from Butlerapp.
On the top right corner, click on save button to create the webhook.
You can register up to 15 webhook endpoints, selecting the entities you'd like to receive notifications for.
Once you've created the webhook, we'll begin to send relevant notifications to the specified endpoint.
Note that your webhook endpoint must respond with status code 200. If the status code is not 200, then Butlerapp will retry a failed webhook for up to 3 times with 30 seconds delay in each try.
Sample Payload
{
"data": [
{
"type": "prices",
"id": 545,
"action": "deleted",
"attributes": [],
}
]
}
Explanation of payload
type
this is the entity for which webhook is fired. Possible values are
bills
bill_positions
course_participants
bank_transactions
statistics
consents
personal_data
exams
outgoing_messages
course_timespans
courses
course_appointments
prices
tags
id
is the record on which action was performed
action
this is action performed on the entity. Possible values are
created
updated
deleted
attributes
object of the values which were effected in this action, for create and update this will not be empty, but for delete action, it will be empty
If there are multiple entities affected in one request, all will be sent in one payload, for example when a booking is created, along the booking a participant might also be created or updated, so Butlerapp will send booking and participant in same webhook. for example, in below sample payload, We had selected "Everything" from the Type of webhook dropdown, so when we created a booking, it created booking and also it created a new participant
{
"data": [
{
"type": "personal_data",
"id": 1553,
"action": "created",
"attributes": {
"user_id": 1793,
"creator_id": 1,
"salutation_id": "3",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@yopmail.com",
"title": "",
"company": "",
"mobile_phone": "0300",
"phone": "0300",
"street": "Unter den Linden 30",
"postal_code": "44000",
"place": "Berlin",
"country_id": "57",
"is_phone_sanitized": false,
"updated_at": "2025-02-11 14:45:31",
"created_at": "2025-02-11 14:45:31",
"id": 1553
}
},
{
"type": "course_participants",
"id": 2859,
"action": "created",
"attributes": {
"creator_id": 1,
"group_identifier": "7OR0MwbT9ZFnYMFLbGr7ipMyjY49Rw",
"personal_data_id": 1553,
"course_timespan_id": 1237,
"price_id": null,
"comment": null,
"quantity": "1",
"unique_id": "BBMH-LBLA",
"updated_at": "2025-02-11 14:45:31",
"created_at": "2025-02-11 14:45:31",
"id": 2859,
"finalized_at": {
"date": "2025-02-11 14:45:31",
"timezone_type": 3,
"timezone": "Europe/Berlin"
}
}
}
]
}