WhatsApp chat events
A WhatsApp agent sends chat events instead of call events. You subscribe in the same Event Subscription screen; only the event list and payload differ.Events
They arrive in that order. An analysis event is skipped when its analysis didn’t succeed, but
all_processing_completed still fires and carries the status.
chat_completed fires when the chat closes, not after each message.
Call events (call_started, call_ringing, call_ongoing, call_completed, recording_completed) never fire for a chat and aren’t offered on a WhatsApp agent. Subscribing to one through the API returns 400: Event type ‘call_completed’ is not available for a WhatsApp agent — it can only be produced by a voice call. Likewise, chat_completed can’t be added to a voice agent.
Chat payload
Every chat event carries these base fields. None of them hascall_id or call_sid; use entity_type to tell chat events from call events on a shared endpoint.
Each event adds:
chat_completed
all_processing_completed
Common questions
Why did chat_completed arrive hours after the last message?
Why did chat_completed arrive hours after the last message?
The chat closes only when the agent calls End Chat or the agent’s idle timeout passes (3 hours by default). Lower End the chat after no messages for under Chat → Settings if you need the event sooner.
Can one endpoint receive both call and chat events?
Can one endpoint receive both call and chat events?
Yes. Subscribe it on each agent and branch on
entity_type (payload). To read a chat while it is still open, use Logs → WhatsApp.