Webhook payload (Platform)

The shape of the payloads Landbot POSTs to your registered message-hook URL.

When a message moves through a Web or WhatsApp channel, Landbot POSTs it to your registered hook URL. The complete schema — the envelope, every message-type variant (a discriminated messages[] union), and the delivery/retry semantics — is documented as the structured message webhook in the Platform API reference. Expand it there to explore each type.

A few things to know before you build:

  • One message per POST — Landbot never batches; messages[] always has exactly one entry.
  • Two author vocabularies: sender.type (customer/bot/agent/sys) vs _raw.author_type (user/bot/agent/sys). Pick one as canonical; don't mix.
  • is_external is the string "True"/"False", not a boolean.
  • Ordering & dedupe: bursts can arrive out of order (~10–50 ms) — sort by timestamp; dedupe on the sentry-trace header (stable across retries).
  • Auth: an optional hook token is echoed as Authorization: Token <token> — a static shared secret, no HMAC.
  • Retries: any non-2xx is retried on linear backoff; return any 2xx to acknowledge.

Full schema and every message type: Platform API reference → Webhooks.