Webhooks API
Webhooks allow your application to receive real-time notifications when events occur in Dailybot. Instead of polling the API, you register a URL that Dailybot will call whenever subscribed events happen.
Info
For a comprehensive guide on webhooks including event types, payload formats,
and best practices, see the WebHooks & Events guide.
| Method | Endpoint | Description |
|---|---|---|
| POST | /v1/webhook-subscription/ | Register a webhook URL and subscribe to events |
| DELETE | /v1/webhook-subscription/ | Unregister a webhook |
| POST | /v1/webhook-subscription/sample/ | Get a sample event payload for an event type |
Supported Events
| Event | Description |
|---|---|
FOLLOWUPS_DAILY_FINISHED | Check-in round completed |
FORMS_RESPONSE_CREATED | New form response |
FORMS_RESPONSE_UPDATED | Form response updated |
FORMS_RESPONSE_APPROVED | Form response approved |
FORMS_RESPONSE_DENIED | Form response denied |
KUDOS_POSTED | Kudos sent |
WORKFLOW_FINISHED | Workflow completed |
Create Webhook Subscription
POST
/v1/webhook-subscription/ Registers a webhook URL and subscribes it to events.
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
hook_url | string | Required | URL to receive webhook payloads. |
subscriptions | string or array of strings | Required | Event type(s) to subscribe to. |
subscribed_objects | string or array of strings | Optional | Object IDs to scope the subscription (e.g. form UUID, check-in ID). Default: empty. |
name | string | Optional | Human-readable name for the hook. |
immediate_sample_event | boolean | Optional | If true, send a sample event to the hook immediately after registration. Default: false. |
bearer | string | Optional | Optional Bearer token for authenticating requests to your hook. |
curl -X POST "https://api.dailybot.com/v1/webhook-subscription/" \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"hook_url": "https://your-server.com/webhook",
"subscriptions": ["forms.response.created", "kudos.posted"],
"name": "My webhook",
"immediate_sample_event": false,
"bearer": "your-verification-token"
}'Response 200 OK
{
"id": 123,
"url": "https://your-server.com/webhook"
}Response 403 Forbidden
{}Verify Webhook Signatures
Use the
bearer parameter to set a verification token. Dailybot
will include this token in the Authorization header of webhook
requests so your server can verify the request origin.
Delete Webhook Subscription
DELETE
/v1/webhook-subscription/ Unregisters a webhook. Both hook_id and hook_url must be provided.
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
hook_id | integer | Required | ID of the registered hook. |
hook_url | string | Required | URL that was registered. |
curl -X DELETE "https://api.dailybot.com/v1/webhook-subscription/" \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"hook_id": 123,
"hook_url": "https://your-server.com/webhook"
}'Response 200 OK
{
"id": "organization-uuid",
"url": "https://your-server.com/webhook"
}Response 403 Forbidden
{}Get Sample Payload
POST
/v1/webhook-subscription/sample/ Returns a sample event payload for a given event type. Use this to preview the structure of webhook payloads.
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
event | string | Required | Event type (e.g. followups.response.completed, forms.response.created, kudos.posted, workflows.finished). |
subscribed_objects | array | Optional | Object IDs to include in the sample (e.g. form UUID or check-in ID). |
curl -X POST "https://api.dailybot.com/v1/webhook-subscription/sample/" \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{"event": "kudos.posted"}'Response 200 OK
[
{
"event": "kudos.posted",
"event_timestamp": 1708852800,
"hook": {
"id": "",
"name": ""
},
"body": {}
}
]