Zum Hauptinhalt springen
Butlerapp Webhooks

With Butlerapp's webhook feature, you can build notification flows tailored to your business needs.

Michael Subach avatar
Verfasst von Michael Subach
Vor über einer Woche aktualisiert

Create a webhook

  1. Login to the Butlerapp

  2. In the left menu, under the Settings section, select Webhook Configurations

  3. On the top right corner, click on plus button to add a new webhook

  4. Enter a Name for the webhook to make it easier to identify.

  5. 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

  6. Enter the Endpoint URL. Webhooks will be sent to this address. The endpoint URL should be prefixed with either https:// or http://.

  7. 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.

  8. 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"
}
}
}
]
}

Hat dies deine Frage beantwortet?