message.accepted
ShipMsg accepted the message and queued it.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "queued" | yes |
Messaging
The 152 event types a webhook endpoint can receive. Every event shares one envelope (id, type, apiVersion, occurredAt, sequence, livemode, accountSid, data); data holds the resource listed below. This list is generated from the same schemas the platform validates events against.
Subscribe with exact types or wildcards such as message.*. How to receive them: webhooks.
Generated event catalogue descriptions, resource labels, fields and types are shown in their original contract language.
Every step of an outbound message, and every inbound message.
ShipMsg accepted the message and queued it.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "queued" | yes |
The message is waiting for its sendAt time.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "scheduled" | yes |
Sending was postponed on purpose (pacing, a recipient cap or quiet hours); queuedReason and readyAt say why and until when.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | yes |
readyAt | string (date-time) | yes |
status | "queued" | yes |
WhatsApp accepted the request to send the message.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "sending" | yes |
WhatsApp is holding the message while it assesses its quality.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "sending" | yes |
WhatsApp sent the message.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "sent" | yes |
The message reached the customer's phone.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "delivered" | yes |
The customer opened the message.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "read" | yes |
The customer played the voice message.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "played" | yes |
WhatsApp reported a non-fatal problem with the message.
data is a Message resource, with:
| 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 |
The customer deleted the message.
data is a Message resource, with:
| 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 |
The message will not be delivered; data.error says why.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | yes |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "failed" | yes |
The message's validity period ended before it could be sent.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | yes |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "expired" | yes |
The message was canceled before it was sent.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "canceled" | yes |
The recipient opted out of this kind of message, so it was not sent.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "failed" | yes |
WhatsApp has not reported what happened to the message.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "unknown" | yes |
A second send of the same message was detected and not sent again.
data is a Message resource, with:
| 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 |
The message's content was erased (retention or a deletion request).
data is a Message resource, with:
| 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 |
A customer sent you a message.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "inbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "delivered" | yes |
A message was sent from the WhatsApp Business app on a shared (coexistence) number.
data is a Message resource, with:
| Field | Type | Always present |
|---|---|---|
direction | "outbound" | yes |
error | object | |
queuedReason | string | null | |
readyAt | string (date-time) | null | |
status | "sent" | yes |
An inbound message was added to an inbox conversation.
data is a Conversation resource, with:
| 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) |
An outbound message was added to an inbox conversation.
data is a Conversation resource, with:
| 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) |
A batch send finished.
| Field | Type | Always present |
|---|---|---|
object | "message_batch" | yes |
sid | string | yes |
Inbox conversations: routing, assignment, service windows and surveys.
conversation opened.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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 window opened.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a Conversation resource, with:
| 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.
data is a API key resource, with:
| Field | Type | Always present |
|---|---|---|
status | "active" | yes |
api key disabled.
data is a API key resource, with:
| Field | Type | Always present |
|---|---|---|
status | "disabled" | yes |
api key revoked.
data is a API key resource, with:
| Field | Type | Always present |
|---|---|---|
status | "revoked" | yes |
api key rotated.
data is a API key resource, with:
| Field | Type | Always present |
|---|---|---|
status | "active" | yes |
api key inactive flagged.
data is a API key resource, with:
| Field | Type | Always present |
|---|---|---|
status | "active" | yes |
user invited.
data is a User resource, with:
| Field | Type | Always present |
|---|---|---|
status | "invited" | yes |
user updated.
data is a User resource, with:
| Field | Type | Always present |
|---|---|---|
status | "invited" | "active" | "locked" | "disabled" | yes |
user disabled.
data is a User resource, with:
| Field | Type | Always present |
|---|---|---|
status | "disabled" | yes |
account suspended.
data is a Account resource, with:
| Field | Type | Always present |
|---|---|---|
status | "suspended" | yes |
account reinstated.
data is a Account resource, with:
| Field | Type | Always present |
|---|---|---|
status | "active" | yes |
Contact records, identifiers, opt-outs and merges.
contact created.
| Field | Type | Always present |
|---|---|---|
object | "contact" | yes |
sid | string | yes |
contact updated.
| Field | Type | Always present |
|---|---|---|
object | "contact" | yes |
sid | string | yes |
contact identifier added.
| Field | Type | Always present |
|---|---|---|
object | "contact" | yes |
sid | string | yes |
contact user id updated.
| Field | Type | Always present |
|---|---|---|
object | "contact" | yes |
sid | string | yes |
contact opted out.
| Field | Type | Always present |
|---|---|---|
object | "contact" | yes |
sid | string | yes |
contact opted in.
| Field | Type | Always present |
|---|---|---|
object | "contact" | yes |
sid | string | yes |
contact conflict.
| 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.
| 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.
| Field | Type | Always present |
|---|---|---|
contactId | string (uuid) | yes |
mergeId | string (uuid) | yes |
object | "contact" | yes |
sid | string | yes |
survivorContactId | string (uuid) | yes |
Opt-in and opt-out records.
consent recorded.
| Field | Type | Always present |
|---|---|---|
object | "consent" | yes |
sid | string | yes |
consent withdrawn.
| Field | Type | Always present |
|---|---|---|
object | "consent" | yes |
sid | string | yes |
Numbers blocked from some or all messages.
suppression added.
| Field | Type | Always present |
|---|---|---|
object | "suppression" | yes |
sid | string | yes |
suppression removed.
| Field | Type | Always present |
|---|---|---|
object | "suppression" | yes |
sid | string | yes |
Your WhatsApp numbers: connection, quality, limits and restrictions.
sender created.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
sender connected.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
sender status changed.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
sender health changed.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
sender quality changed.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
sender throughput changed.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
sender limit changed.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
sender restricted.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
sender disconnected.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
sender reconnected.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
sender name status changed.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
sender migrated.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
sender ownership changed.
| 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 |
Connection and review state of the accounts that own your numbers.
waba connected.
| Field | Type | Always present |
|---|---|---|
object | "waba" | yes |
sid | string | yes |
waba disconnected.
| Field | Type | Always present |
|---|---|---|
object | "waba" | yes |
sid | string | yes |
waba review changed.
| Field | Type | Always present |
|---|---|---|
object | "waba" | yes |
sid | string | yes |
waba billing mode changed.
| Field | Type | Always present |
|---|---|---|
object | "waba" | yes |
sid | string | yes |
onboarding abandoned.
| Field | Type | Always present |
|---|---|---|
currentStep | string | yes |
embeddedSignupSessionId | string | null | |
event | "CANCEL" | yes |
object | "onboarding_session" | yes |
sid | string | yes |
Review decisions, category changes, quality and pauses.
template submitted.
| Field | Type | Always present |
|---|---|---|
object | "template" | yes |
sid | string | yes |
WhatsApp approved, rejected, paused or disabled a template.
| Field | Type | Always present |
|---|---|---|
object | "template" | yes |
sid | string | yes |
template category changed.
| Field | Type | Always present |
|---|---|---|
object | "template" | yes |
sid | string | yes |
template quality changed.
| Field | Type | Always present |
|---|---|---|
object | "template" | yes |
sid | string | yes |
template paused.
| Field | Type | Always present |
|---|---|---|
object | "template" | yes |
sid | string | yes |
template disabled.
| Field | Type | Always present |
|---|---|---|
object | "template" | yes |
sid | string | yes |
template components updated.
| Field | Type | Always present |
|---|---|---|
object | "template" | yes |
sid | string | yes |
template deleted.
| Field | Type | Always present |
|---|---|---|
object | "template" | yes |
sid | string | yes |
Campaign state and batches.
campaign state changed.
| Field | Type | Always present |
|---|---|---|
object | "campaign" | yes |
sid | string | yes |
campaign pending approval.
| Field | Type | Always present |
|---|---|---|
object | "campaign" | yes |
sid | string | yes |
campaign started.
| Field | Type | Always present |
|---|---|---|
object | "campaign" | yes |
sid | string | yes |
campaign paused.
| Field | Type | Always present |
|---|---|---|
object | "campaign" | yes |
sid | string | yes |
campaign resumed.
| Field | Type | Always present |
|---|---|---|
object | "campaign" | yes |
sid | string | yes |
campaign completed.
| Field | Type | Always present |
|---|---|---|
object | "campaign" | yes |
sid | string | yes |
campaign canceled.
| Field | Type | Always present |
|---|---|---|
object | "campaign" | yes |
sid | string | yes |
campaign failed.
| Field | Type | Always present |
|---|---|---|
object | "campaign" | yes |
sid | string | yes |
campaign batch planned.
| Field | Type | Always present |
|---|---|---|
object | "campaign_batch" | yes |
sid | string | yes |
campaign batch completed.
| Field | Type | Always present |
|---|---|---|
object | "campaign_batch" | yes |
sid | string | yes |
Long-running jobs such as template submissions, imports and exports.
operation state changed.
| Field | Type | Always present |
|---|---|---|
object | "operation" | yes |
sid | string | yes |
operation completed.
| Field | Type | Always present |
|---|---|---|
object | "operation" | yes |
sid | string | yes |
Uploaded files after scanning, and before they expire.
media ready.
| Field | Type | Always present |
|---|---|---|
object | "media" | yes |
sid | string | yes |
media rejected.
| Field | Type | Always present |
|---|---|---|
object | "media" | yes |
sid | string | yes |
media expiring.
| Field | Type | Always present |
|---|---|---|
object | "media" | yes |
sid | string | yes |
flow status changed.
| Field | Type | Always present |
|---|---|---|
object | "flow" | yes |
sid | string | yes |
flow endpoint unhealthy.
| Field | Type | Always present |
|---|---|---|
object | "flow" | yes |
sid | string | yes |
approval requested.
| Field | Type | Always present |
|---|---|---|
object | "approval" | yes |
sid | string | yes |
coexistence sync deadline.
| Field | Type | Always present |
|---|---|---|
object | "coexistence" | yes |
sid | string | yes |
mfa changed.
| Field | Type | Always present |
|---|---|---|
object | "mfa" | yes |
sid | string | yes |
security new device login.
| 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.
| Field | Type | Always present |
|---|---|---|
failedLoginCount | integer (1–) | yes |
lockedUntil | string (date-time) | yes |
object | "user" | yes |
sid | string | yes |
security password reset.
| Field | Type | Always present |
|---|---|---|
mfaRevoked | boolean | yes |
object | "user" | yes |
sessionsRevoked | integer (0–) | yes |
sid | string | yes |
risk review required.
| Field | Type | Always present |
|---|---|---|
object | "risk_decision" | yes |
sid | string | yes |
call permission replied.
| Field | Type | Always present |
|---|---|---|
object | "call" | yes |
sid | string | yes |
call started.
| Field | Type | Always present |
|---|---|---|
object | "call" | yes |
sid | string | yes |
call ended.
| Field | Type | Always present |
|---|---|---|
object | "call" | yes |
sid | string | yes |
call failed.
| Field | Type | Always present |
|---|---|---|
object | "call" | yes |
sid | string | yes |
Your endpoints’ own health: verification, pauses and suspensions.
webhook endpoint verified.
| Field | Type | Always present |
|---|---|---|
object | "webhook_endpoint" | yes |
sid | string | yes |
webhook endpoint paused.
| Field | Type | Always present |
|---|---|---|
object | "webhook_endpoint" | yes |
sid | string | yes |
webhook endpoint resumed.
| Field | Type | Always present |
|---|---|---|
object | "webhook_endpoint" | yes |
sid | string | yes |
webhook endpoint suspended.
| Field | Type | Always present |
|---|---|---|
object | "webhook_endpoint" | yes |
sid | string | yes |
webhook endpoint secret rotated.
| Field | Type | Always present |
|---|---|---|
object | "webhook_endpoint" | yes |
sid | string | yes |
webhook endpoint failing.
| Field | Type | Always present |
|---|---|---|
object | "webhook_endpoint" | yes |
sid | string | yes |
The verification challenge and test events.
The endpoint verification challenge or a test event; answer with data.challenge.
| Field | Type | Always present |
|---|---|---|
object | "webhook_endpoint" | yes |
sid | string | yes |
credential invalidated.
| Field | Type | Always present |
|---|---|---|
object | "credential" | yes |
sid | string | yes |
delegated access granted.
| Field | Type | Always present |
|---|---|---|
object | "delegated_access" | yes |
sid | string | yes |
delegated access ended.
| Field | Type | Always present |
|---|---|---|
object | "delegated_access" | yes |
sid | string | yes |
account alerts.
| Field | Type | Always present |
|---|---|---|
object | "sender" | yes |
sid | string | yes |
payment configuration update.
| Field | Type | Always present |
|---|---|---|
object | "waba" | yes |
sid | string | yes |
wallet low balance.
| Field | Type | Always present |
|---|---|---|
object | "wallet" | yes |
sid | string | yes |
invoice created.
| Field | Type | Always present |
|---|---|---|
object | "invoice" | yes |
sid | string | yes |
invoice paid.
| Field | Type | Always present |
|---|---|---|
object | "invoice" | yes |
sid | string | yes |
invoice overdue.
| Field | Type | Always present |
|---|---|---|
object | "invoice" | yes |
sid | string | yes |
invoice opened.
| 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 |
billing mode changed.
| Field | Type | Always present |
|---|---|---|
object | "waba" | yes |
sid | string | yes |
deletion requested.
| Field | Type | Always present |
|---|---|---|
object | "deletion_request" | yes |
sid | string | yes |
deletion completed.
| Field | Type | Always present |
|---|---|---|
object | "deletion_request" | yes |
sid | string | yes |
export ready.
| Field | Type | Always present |
|---|---|---|
object | "export" | yes |
sid | string | yes |
platform incident.
| Field | Type | Always present |
|---|---|---|
object | "incident" | yes |
sid | string | yes |
platform provider change.
| Field | Type | Always present |
|---|---|---|
object | "provider_change" | yes |
sid | string | yes |
platform api deprecation.
| Field | Type | Always present |
|---|---|---|
object | "provider_change" | yes |
sid | string | yes |
notification created.
| Field | Type | Always present |
|---|---|---|
category | string | yes |
object | "notification" | yes |
resourceRef | string | yes |
severity | string | yes |
sid | string | yes |
targetRole | string | yes |
Fields every event carrying a Message resource includes.
| Field | Type | Always present |
|---|---|---|
attempt | integer (1–) | |
createdAt | string (date-time) | yes |
deliverBefore | string (date-time) | null | |
deliveredAt | string (date-time) | null | |
from | string (WA… SID) | yes |
livemode | boolean | yes |
metadata | object | |
object | "message" | yes |
priority | "critical" | "transactional" | "normal" | "marketing" | |
providerMessageId | string | null | |
readAt | string (date-time) | null | |
sentAt | string (date-time) | null | |
sid | string (SM… SID) | yes |
to | object | yes |
type | string | yes |
updatedAt | string (date-time) |
Fields every event carrying a Conversation resource includes.
| Field | Type | Always present |
|---|---|---|
attempt | integer (1–) | |
contactSid | string (CT… SID) | |
inboxSid | string (IB… SID) | |
object | "conversation" | yes |
senderSid | string (WA… SID) | |
sid | string (CO… SID) | yes |
version | integer (1–) |
Fields every event carrying a API key resource includes.
| Field | Type | Always present |
|---|---|---|
object | "api_key" | yes |
sid | string (SK… SID) | yes |
Fields every event carrying a User resource includes.
| Field | Type | Always present |
|---|---|---|
object | "user" | yes |
sid | string (US… SID) | yes |
Fields every event carrying a Account resource includes.
| Field | Type | Always present |
|---|---|---|
object | "account" | yes |
operationSid | string (OP… SID) | yes |
sid | string (AC… SID) | yes |