Async terminal callbacks
Async runs can call your backend when execution reaches a terminal state.Payload
Webhook payloads include the run, conversation, model, terminal status, and eitherresult or error.
conversationId as the public conversation identifier. threadId is included in the current payload for compatibility and has the same value for CREAO CLI conversations.
Failed run example:
Delivery behavior
CREAO makes up to three delivery attempts with short backoff. A non-2xx response, a connection error, or no response within 10 seconds is retried. Redirects are not followed, so a 3xx response counts as a failed attempt. The first 2xx response ends delivery, marks the webhook as delivered, and sets webhook_delivered_at on the run object.
Every request carries these headers:
Delivery is at least once: a retry can repeat a request your endpoint already processed, for example when it timed out before responding. Design webhook handlers to be idempotent and deduplicate on
X-Creao-Delivery-Id (or runId). Respond with a 2xx quickly and do slow work afterwards.