Skip to main content

Webhooks

A webhook sends a signed HTTP POST to your system when an event happens: an execution finished, failed, created a pending item.

Webhooks that receive the execution events

Create​

In Settings → Webhooks, click New webhook:

FieldRule
Nameidentifies the webhook.
URLpublic https address. Private, loopback or http addresses are rejected.
Workspacerestricts to the events of one workspace. Blank: the whole organization.
Authenticationhow the delivery authenticates to your system: Bearer token, Basic (user and password) or Custom header.
Subscribed eventsthe events that trigger the delivery.

When you save, the console shows the webhook's signing secret only once. Copy and store it: your system uses it to verify the signature.

Events​

EventWhen
execution.createdan execution was created
execution.queuedthe execution joined the task's queue
execution.startedthe agent started
execution.completedfinished successfully
execution.failedfinished with a failure
execution.cancelledwas cancelled
todo.created, todo.resolveda pending item was created or resolved
organization.cost_limit_reachedthe monthly cost cap was reached
organization.entitlement_requireda schedule did not run for lack of a plan
task.db.*, activity.db.*, workspace.db.*, execution.db.*, memory.db.*the record was created, changed or removed (created, updated, deleted)

Deactivation after failures​

After 5 consecutive delivery failures, the webhook is deactivated and the people registered for notices receive an email. Fix the receiver and reactivate the webhook.

Receive and verify​

The body format, the headers and signature verification are in API webhooks. The delivery history and resend are in the API (/v1/webhook_deliveries).

Webhooks declared in the repository​

kadu.yaml can declare webhooks. A webhook created by the repository is born without a credential and with a signing secret that nobody has seen: register the credential here and generate a new signing secret through the API (POST /v1/webhooks/{id}/rotate-secret). See The kadu.yaml.