Integrations

Webhooks

Receive webhooks that start workflows (or answer synchronously), and send governed outbound callbacks.

Inbound

An inbound webhook belongs to a workflow with a Webhook or Middleware trigger. Each has a slug and a secret (stored only as a bcrypt hash):

bash
usertasks webhooks create <workflow-id> --set slug=invoice-intake
# returns the webhook and its secret once — store it
curl -X POST "$USERTASKS_URL/api/webhooks/inbound?hook=<slug>" \
  -H "Authorization: Bearer <secret>" -H "Content-Type: application/json" -d @invoice.json
usertasks webhooks rotate <webhook-id>     # new secret; the old one stops working
  • Webhook trigger — responds as soon as the run is queued.
  • Middleware trigger — keeps the request open until the run finishes and returns the run's variables, so a workflow can validate or enrich a request in line.

A payload mapping turns fields of the body into variables; the whole body is always {{_raw}}. Callers that cannot send an Authorization header can pass the key as ?key=.

Outbound

Use a webhook integration (or an HTTP Request node) to call other systems. Failed outbound deliveries are retried and, if they keep failing, dead-lettered with an integration.webhook.dead_letter event.

Log export webhooks

To stream UserTasks events to your own endpoint with HMAC signatures, use a log destination instead.