Skip to content

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

EventDescription
FOLLOWUPS_DAILY_FINISHEDCheck-in round completed
FORMS_RESPONSE_CREATEDNew form response
FORMS_RESPONSE_UPDATEDForm response updated
FORMS_RESPONSE_APPROVEDForm response approved
FORMS_RESPONSE_DENIEDForm response denied
KUDOS_POSTEDKudos sent
WORKFLOW_FINISHEDWorkflow 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.
Request
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
json
{
  "id": 123,
  "url": "https://your-server.com/webhook"
}
Response 403 Forbidden
json
{}

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.
Request
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
json
{
  "id": "organization-uuid",
  "url": "https://your-server.com/webhook"
}
Response 403 Forbidden
json
{}

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).
Request
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
json
[
  {
    "event": "kudos.posted",
    "event_timestamp": 1708852800,
    "hook": {
      "id": "",
      "name": ""
    },
    "body": {}
  }
]