support.message.created events.
Callback request
idis the stable webhook event ID. Use it to deduplicate retries.channel_typeiscustom_channel, the backend identifier for Agent API.payload.chat_idis Sagepilot’s resolved chat ID. It is output-only and must not be sent in later inbound message events.payload.customer.external_idis the workspace-unique customer ID supplied by your backend.payload.message.roleispilotfor an AI-agent reply oragentfor a human-agent reply.payload.message.in_reply_to_external_message_id, when present, refers to your inboundmessage.external_id.- Attachment
urlvalues are short-lived Sagepilot download URLs, currently valid for 30 minutes. Download or copy files promptly.
null. Do not depend on customer profile fields always being present.
Verify the callback signature
Sagepilot sends these headers:
Compute the expected signature over the timestamp, one period, and the exact raw request body:
Acknowledge and deduplicate
Return a2xx response quickly after durably accepting the event. Process slow application work asynchronously.
Sagepilot retries callback delivery for transport errors, timeouts, HTTP 429, and HTTP 5xx. Other HTTP 4xx responses are treated as non-retryable. Because delivery is at least once, store and deduplicate on the event id before applying side effects.
Your response body is ignored and should not contain customer data or secrets.