subscriptions when you create or update a webhook:
Invalid events) — see Errors.
The 12 events
conversation_status_changed is the only status-related event you can subscribe to. The app has finer-grained internal events for “opened” and “resolved” specifically, used for other internal notifications — they aren’t on the webhook allowlist, so don’t try to subscribe to them by name.The message gate: not every message fires an event
message_created and message_updated only fire for messages that are incoming, outgoing, or a template. Activity messages (join/leave notices, assignment changes) and private notes never trigger a webhook. If you’re trying to build an integration off internal agent notes, this event stream isn’t where that data comes from — you’d need to poll the messages endpoint and filter differently.
Subscriptions aren’t scoped by inbox, even if you set inbox_id
The webhook create/update payload accepts an inbox_id, and it’s stored. It doesn’t do anything to delivery. Every account-level webhook receives every event that matches its subscriptions, from every inbox in the account, regardless of what inbox_id you set on the webhook itself. If you need per-inbox filtering, do it in your own handler by reading inbox_id off the payload — see Payload schemas.
There’s a separate mechanism for a single inbox’s own webhook URL — the
webhook_url configured directly on an API-channel inbox — but it isn’t managed through this endpoint and isn’t what inbox_id on a Webhook record controls.Next
Payload schemas
What’s actually in the body for each of these.
Signature verification
What Tied does — and doesn’t — do to prove a payload is genuine.