message.accepted | Toutye accepted the message and queued it.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "queued" | yes |
|
message.scheduled | The message is waiting for its sendAt time.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "scheduled" | yes |
|
message.deferred | Sending was postponed on purpose (pacing, a recipient cap or quiet hours); queuedReason and readyAt say why and until when.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | yes | readyAt | string (date-time) | yes | status | "queued" | yes |
|
message.meta_accepted | WhatsApp accepted the request to send the message.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "sending" | yes |
|
message.held_for_quality | WhatsApp is holding the message while it assesses its quality.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "sending" | yes |
|
message.sent | WhatsApp sent the message.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "sent" | yes |
|
message.delivered | The message reached the customer's phone.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "delivered" | yes |
|
message.read | The customer opened the message.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "read" | yes |
|
message.played | The customer played the voice message.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "played" | yes |
|
message.warning | WhatsApp reported a non-fatal problem with the message.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "queued" | "scheduled" | "sending" | "sent" | "delivered" | "read" | "played" | "failed" | "canceled" | "expired" | "unknown" | yes |
|
message.deleted | The customer deleted the message.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | "inbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "queued" | "scheduled" | "sending" | "sent" | "delivered" | "read" | "played" | "failed" | "canceled" | "expired" | "unknown" | yes |
|
message.failed | The message will not be delivered; data.error says why.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | yes | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "failed" | yes |
|
message.expired | The message's validity period ended before it could be sent.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | yes | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "expired" | yes |
|
message.canceled | The message was canceled before it was sent.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "canceled" | yes |
|
message.recipient_opted_out | The recipient opted out of this kind of message, so it was not sent.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "failed" | yes |
|
message.unknown | WhatsApp has not reported what happened to the message.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "unknown" | yes |
|
message.duplicate_detected | A second send of the same message was detected and not sent again.data: Message resource6 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | duplicateOfAttempt | integer (1–) | | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "queued" | "scheduled" | "sending" | "sent" | "delivered" | "read" | "played" | "failed" | "canceled" | "expired" | "unknown" | yes |
|
message.redacted | The message's content was erased (retention or a deletion request).data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | "inbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "queued" | "scheduled" | "sending" | "sent" | "delivered" | "read" | "played" | "failed" | "canceled" | "expired" | "unknown" | yes |
|
message.received | A customer sent you a message.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "inbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "delivered" | yes |
|
message.echoed | A message was sent from the WhatsApp Business app on a shared (coexistence) number.data: Message resource5 fields of its own| Field | Type | Always present |
|---|
direction | "outbound" | yes | error | object | | queuedReason | string | null | | readyAt | string (date-time) | null | | status | "sent" | yes |
|
conversation.opened | conversation opened.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.routed | conversation routed.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | yes | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.assigned | conversation assigned.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | yes | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.released | conversation released.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | yes | reason | string | yes | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.closed | conversation closed.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | yes | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | yes | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.reopened | conversation reopened.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | yes | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | yes | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.snoozed | conversation snoozed.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | yes | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | yes | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | yes | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.unsnoozed | conversation unsnoozed.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | yes | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | yes | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.collaborator_added | conversation collaborator added.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | yes | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | yes | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | yes | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.collaborator_removed | conversation collaborator removed.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | yes | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | yes | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.bot_handoff_requested | conversation bot handoff requested.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | yes | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | yes | handoffSid | string (BH… SID) | yes | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | yes |
|
conversation.bot_handoff_unavailable | conversation bot handoff unavailable.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | yes | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | yes | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | yes | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.bot_handoff_accepted | conversation bot handoff accepted.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | yes | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | yes | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.bot_handoff_completed | conversation bot handoff completed.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | yes | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | yes | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.bot_handoff_failed | conversation bot handoff failed.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | yes | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | yes | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.bot_handoff_timed_out | conversation bot handoff timed out.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | yes | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | yes | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.bot_handoff_taken_over | conversation bot handoff taken over.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | yes | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | yes | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.note_created | conversation note created.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | yes | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.tag_added | conversation tag added.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | yes | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | yes | webhookEndpointSid | string (WH… SID) | |
|
conversation.tag_removed | conversation tag removed.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | yes | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | yes | webhookEndpointSid | string (WH… SID) | |
|
conversation.sla_warning | conversation sla warning.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | yes | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | yes | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.sla_breached | conversation sla breached.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | yes | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | yes | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
message.inbound | An inbound message was added to an inbox conversation.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
message.outbound | An outbound message was added to an inbox conversation.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.window_opened | conversation window opened.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.window_expiring | conversation window expiring.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | yes | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.window_expired | conversation window expired.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | yes | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.csat_dispatched | conversation csat dispatched.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | yes | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
conversation.csat_skipped | conversation csat skipped.data: Conversation resource19 fields of its own| Field | Type | Always present |
|---|
actingPrincipalRef | string | | applicationSid | string (BA… SID) | | assigneePrincipalRef | string | | automatic | boolean | | clock | "first_response" | "next_response" | "resolution" | | collaboratorPrincipalRef | string | | collaboratorRole | "COLLABORATOR" | "FOLLOWER" | | dueAt | string (date-time) | | expiresAt | string (date-time) | | handoffSid | string (BH… SID) | | humanFallback | boolean | | noteSid | string (NT… SID) | | priorAssigneePrincipalRef | string | | reason | string | yes | routingRuleId | string | null (uuid) | | snoozedUntil | string (date-time) | | state | "open" | "idle" | "closed" | "archived" | | tag | string | | webhookEndpointSid | string (WH… SID) | |
|
api_key.created | api key created.data: API key resource1 fields of its own| Field | Type | Always present |
|---|
status | "active" | yes |
|
api_key.disabled | api key disabled.data: API key resource1 fields of its own| Field | Type | Always present |
|---|
status | "disabled" | yes |
|
api_key.revoked | api key revoked.data: API key resource1 fields of its own| Field | Type | Always present |
|---|
status | "revoked" | yes |
|
api_key.rotated | api key rotated.data: API key resource1 fields of its own| Field | Type | Always present |
|---|
status | "active" | yes |
|
api_key.inactive_flagged | api key inactive flagged.data: API key resource1 fields of its own| Field | Type | Always present |
|---|
status | "active" | yes |
|
user.invited | user invited.data: User resource1 fields of its own| Field | Type | Always present |
|---|
status | "invited" | yes |
|
user.updated | user updated.data: User resource1 fields of its own| Field | Type | Always present |
|---|
status | "invited" | "active" | "locked" | "disabled" | yes |
|
user.disabled | user disabled.data: User resource1 fields of its own| Field | Type | Always present |
|---|
status | "disabled" | yes |
|
account.suspended | account suspended.data: Account resource1 fields of its own| Field | Type | Always present |
|---|
status | "suspended" | yes |
|
account.reinstated | account reinstated.data: Account resource1 fields of its own| Field | Type | Always present |
|---|
status | "active" | yes |
|
message.batch.completed | A batch send finished.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "message_batch" | yes | sid | string | yes |
|
contact.created | contact created.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "contact" | yes | sid | string | yes |
|
contact.updated | contact updated.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "contact" | yes | sid | string | yes |
|
contact.identifier_added | contact identifier added.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "contact" | yes | sid | string | yes |
|
contact.user_id_updated | contact user id updated.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "contact" | yes | sid | string | yes |
|
contact.opted_out | contact opted out.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "contact" | yes | sid | string | yes |
|
contact.opted_in | contact opted in.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "contact" | yes | sid | string | yes |
|
consent.recorded | consent recorded.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "consent" | yes | sid | string | yes |
|
consent.withdrawn | consent withdrawn.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "consent" | yes | sid | string | yes |
|
suppression.added | suppression added.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "suppression" | yes | sid | string | yes |
|
suppression.removed | suppression removed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "suppression" | yes | sid | string | yes |
|
sender.created | sender created.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
sender.connected | sender connected.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
sender.status_changed | sender status changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
sender.health_changed | sender health changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
sender.quality_changed | sender quality changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
sender.throughput_changed | sender throughput changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
sender.limit_changed | sender limit changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
sender.restricted | sender restricted.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
sender.disconnected | sender disconnected.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
sender.reconnected | sender reconnected.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
sender.name_status_changed | sender name status changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
sender.migrated | sender migrated.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
sender.ownership_changed | sender ownership changed.data: Event data12 fields in data| Field | Type | Always present |
|---|
activeRegion | string | yes | actor | string | | epochIssuedAt | string (date-time) | yes | executionEpoch | integer (0–) | yes | fromAccountSid | string (AC… SID) | | homeRegion | string | yes | object | "sender" | yes | operationSid | string (OP… SID) | | senderSid | string (WA… SID) | | sid | string | yes | toAccountSid | string (AC… SID) | | wabaId | string | |
|
waba.connected | waba connected.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "waba" | yes | sid | string | yes |
|
waba.disconnected | waba disconnected.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "waba" | yes | sid | string | yes |
|
waba.review_changed | waba review changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "waba" | yes | sid | string | yes |
|
waba.billing_mode_changed | waba billing mode changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "waba" | yes | sid | string | yes |
|
onboarding.abandoned | onboarding abandoned.data: Event data5 fields in data| Field | Type | Always present |
|---|
currentStep | string | yes | embeddedSignupSessionId | string | null | | event | "CANCEL" | yes | object | "onboarding_session" | yes | sid | string | yes |
|
template.submitted | template submitted.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "template" | yes | sid | string | yes |
|
template.status_changed | WhatsApp approved, rejected, paused or disabled a template.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "template" | yes | sid | string | yes |
|
template.category_changed | template category changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "template" | yes | sid | string | yes |
|
template.quality_changed | template quality changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "template" | yes | sid | string | yes |
|
template.paused | template paused.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "template" | yes | sid | string | yes |
|
template.disabled | template disabled.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "template" | yes | sid | string | yes |
|
template.components_updated | template components updated.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "template" | yes | sid | string | yes |
|
template.deleted | template deleted.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "template" | yes | sid | string | yes |
|
campaign.state_changed | campaign state changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "campaign" | yes | sid | string | yes |
|
campaign.pending_approval | campaign pending approval.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "campaign" | yes | sid | string | yes |
|
campaign.started | campaign started.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "campaign" | yes | sid | string | yes |
|
campaign.paused | campaign paused.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "campaign" | yes | sid | string | yes |
|
campaign.resumed | campaign resumed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "campaign" | yes | sid | string | yes |
|
campaign.completed | campaign completed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "campaign" | yes | sid | string | yes |
|
campaign.canceled | campaign canceled.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "campaign" | yes | sid | string | yes |
|
campaign.failed | campaign failed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "campaign" | yes | sid | string | yes |
|
campaign.batch.planned | campaign batch planned.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "campaign_batch" | yes | sid | string | yes |
|
campaign.batch.completed | campaign batch completed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "campaign_batch" | yes | sid | string | yes |
|
operation.state_changed | operation state changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "operation" | yes | sid | string | yes |
|
operation.completed | operation completed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "operation" | yes | sid | string | yes |
|
media.ready | media ready.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "media" | yes | sid | string | yes |
|
media.rejected | media rejected.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "media" | yes | sid | string | yes |
|
media.expiring | media expiring.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "media" | yes | sid | string | yes |
|
flow.status_changed | flow status changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "flow" | yes | sid | string | yes |
|
flow.endpoint_unhealthy | flow endpoint unhealthy.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "flow" | yes | sid | string | yes |
|
approval.requested | approval requested.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "approval" | yes | sid | string | yes |
|
coexistence.sync_deadline | coexistence sync deadline.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "coexistence" | yes | sid | string | yes |
|
mfa.changed | mfa changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "mfa" | yes | sid | string | yes |
|
security.new_device_login | security new device login.data: Event data5 fields in data| Field | Type | Always present |
|---|
authenticationMethod | "password" | "magic_link" | "oidc" | "saml" | yes | device | string (max 120 chars) | yes | object | "user" | yes | sessionId | string (uuid) | yes | sid | string | yes |
|
security.account_locked | security account locked.data: Event data4 fields in data| Field | Type | Always present |
|---|
failedLoginCount | integer (1–) | yes | lockedUntil | string (date-time) | yes | object | "user" | yes | sid | string | yes |
|
security.password_reset | security password reset.data: Event data4 fields in data| Field | Type | Always present |
|---|
mfaRevoked | boolean | yes | object | "user" | yes | sessionsRevoked | integer (0–) | yes | sid | string | yes |
|
risk.review_required | risk review required.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "risk_decision" | yes | sid | string | yes |
|
call.permission_replied | call permission replied.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "call" | yes | sid | string | yes |
|
call.started | call started.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "call" | yes | sid | string | yes |
|
call.ended | call ended.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "call" | yes | sid | string | yes |
|
call.failed | call failed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "call" | yes | sid | string | yes |
|
webhook.endpoint.verified | webhook endpoint verified.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "webhook_endpoint" | yes | sid | string | yes |
|
webhook.endpoint.paused | webhook endpoint paused.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "webhook_endpoint" | yes | sid | string | yes |
|
webhook.endpoint.resumed | webhook endpoint resumed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "webhook_endpoint" | yes | sid | string | yes |
|
webhook.endpoint.suspended | webhook endpoint suspended.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "webhook_endpoint" | yes | sid | string | yes |
|
webhook.endpoint.secret_rotated | webhook endpoint secret rotated.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "webhook_endpoint" | yes | sid | string | yes |
|
webhook.endpoint.failing | webhook endpoint failing.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "webhook_endpoint" | yes | sid | string | yes |
|
test.ping | The endpoint verification challenge or a test event; answer with data.challenge.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "webhook_endpoint" | yes | sid | string | yes |
|
credential.invalidated | credential invalidated.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "credential" | yes | sid | string | yes |
|
delegated_access.granted | delegated access granted.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "delegated_access" | yes | sid | string | yes |
|
delegated_access.ended | delegated access ended.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "delegated_access" | yes | sid | string | yes |
|
account_alerts | account alerts.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "sender" | yes | sid | string | yes |
|
payment_configuration_update | payment configuration update.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "waba" | yes | sid | string | yes |
|
wallet.low_balance | wallet low balance.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "wallet" | yes | sid | string | yes |
|
invoice.created | invoice created.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "invoice" | yes | sid | string | yes |
|
invoice.paid | invoice paid.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "invoice" | yes | sid | string | yes |
|
invoice.overdue | invoice overdue.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "invoice" | yes | sid | string | yes |
|
billing_mode.changed | billing mode changed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "waba" | yes | sid | string | yes |
|
deletion.requested | deletion requested.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "deletion_request" | yes | sid | string | yes |
|
deletion.completed | deletion completed.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "deletion_request" | yes | sid | string | yes |
|
export.ready | export ready.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "export" | yes | sid | string | yes |
|
platform.incident | platform incident.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "incident" | yes | sid | string | yes |
|
platform.provider_change | platform provider change.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "provider_change" | yes | sid | string | yes |
|
platform.api_deprecation | platform api deprecation.data: Event data2 fields in data| Field | Type | Always present |
|---|
object | "provider_change" | yes | sid | string | yes |
|
contact.conflict | contact conflict.data: Event data8 fields in data| Field | Type | Always present |
|---|
conflictId | string (uuid) | yes | contactId | string (uuid) | yes | identifierType | "PHONE_E164" | "BSUID" | "USERNAME" | yes | object | "contact" | yes | owningContactId | string (uuid) | yes | scopeRef | string | null | yes | sid | string | yes | source | string | yes |
|
contact.merged | contact merged.data: Event data10 fields in data| Field | Type | Always present |
|---|
contactId | string (uuid) | yes | mergeId | string (uuid) | yes | mergedContactId | string (uuid) | yes | mergedContactSid | string (CT… SID) | yes | movedIdentifiers | integer (0–) | yes | object | "contact" | yes | reason | string | yes | reversibleForDays | integer (0–) | yes | sid | string | yes | survivorContactSid | string (CT… SID) | yes |
|
contact.unmerged | contact unmerged.data: Event data5 fields in data| Field | Type | Always present |
|---|
contactId | string (uuid) | yes | mergeId | string (uuid) | yes | object | "contact" | yes | sid | string | yes | survivorContactId | string (uuid) | yes |
|
invoice.opened | invoice opened.data: Event data5 fields in data| Field | Type | Always present |
|---|
artifactSha256 | string (pattern ^[0-9a-f]{64}$) | yes | invoiceSid | string (IN… SID) | yes | object | "invoice" | yes | providerInvoiceRef | string | yes | sid | string | yes |
|
notification.created | notification created.data: Event data6 fields in data| Field | Type | Always present |
|---|
category | string | yes | object | "notification" | yes | resourceRef | string | yes | severity | string | yes | sid | string | yes | targetRole | string | yes |
|