Hooks

Before message submission

Checks a user message before it is queued or sent to the agent. Includes the sender, message text, and attachments, but not conversation history.

Destinations share a five-second deadline and are not retried. Any deny blocks submission. Errors and invalid responses follow the subscription's configured failure behavior. Subscription discovery failures block submission.

Return HTTP 200 with application/json and an allow or deny decision (maximum 64 KiB). See signature verification.

postWebhookmessage.before_submit.v1

Headers

webhook-idstring required

Invocation ID. Each matching subscription receives a distinct ID.

webhook-timestampstring required

Integer Unix timestamp in seconds for this delivery attempt.

webhook-signaturestring required

Symmetric (v1) signatures as defined by Standard Webhooks.

Payload

idstring required

Hook execution identity shared by all matching subscriptions.

occurred_atstring date-time required
project_idstring

Absent for workspace chats. Referencing a project does not make a message project-scoped.

type'message.before_submit.v1' required
workspace_idstring required

Response

Synchronous hook result.

decision'allow' | 'deny' required
reasonstring

Explanation shown to the user when submission is denied.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.