Skip to main content
Set up Events & Hooks. 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.

Headers

webhook-id
string
required

Invocation ID. Each matching subscription receives a distinct ID.

webhook-timestamp
string
required

Integer Unix timestamp in seconds for this delivery attempt.

Pattern: ^[0-9]+$
webhook-signature
string
required

Symmetric (v1) signatures as defined by Standard Webhooks.

Body

application/json
data
object
required
id
string
required

Hook execution identity shared by all matching subscriptions.

occurred_at
string<date-time>
required
type
enum<string>
required
Available options:
message.before_submit.v1
workspace_id
string
required
project_id
string

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

Response

200 - application/json

Synchronous hook result.

decision
enum<string>
required
Available options:
allow,
deny
reason
string

Explanation shown to the user when submission is denied.

Maximum string length: 1024