List WhatsApp conversation events
/v1/whatsapp/conversations/{conversation_id}/eventsconst events = await bird.whatsapp.conversations.listEvents("wacv_01krdgeqcxet5s7t44vh8rt9mg");
for (const event of events.data ?? []) {
console.log(event.created_at, event.type, event.summary);
}events = client.whatsapp.conversations.list_events("wacv_01krdgeqcxet5s7t44vh8rt9mg")
for event in events.data or []:
print(event.created_at, event.type, event.summary)for event, err := range client.Whatsapp.Conversations.ListEvents(context.Background(), "wacv_01krdgeqcxet5s7t44vh8rt9mg", bird.WhatsappConversationsListEventsParams{}) {
if err != nil {
log.Fatal(err)
}
fmt.Println(event.CreatedAt, event.Type, event.Summary)
}foreach ($bird->whatsapp->conversations->listEvents('wacv_01krdgeqcxet5s7t44vh8rt9mg') as $event) {
echo $event->getCreatedAt()?->format(DATE_ATOM), ' ', $event->getType(), ' ', $event->getSummary(), PHP_EOL;
}bird whatsapp conversations list-events <conversation-id>curl -X GET "https://us1.platform.bird.com/v1/whatsapp/conversations/{conversation_id}/events" \
-H "Authorization: Bearer $TOKEN" \
--url-query "type=whatsapp_conversation.control_changed" \
--url-query "limit=25"{
"data": [
{
"id": "wace_01krdgeqcxet5s7t44vh8rt9mg",
"type": "whatsapp_conversation.control_changed",
"summary": "Handed to your application by the agent.",
"metadata": {
"from": "meta_business_agent",
"to": "bird",
"initiator": "meta_business_agent",
"reason": "Customer asked for a person"
}
}
],
"next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
"prev_cursor": null,
"refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}
Returns the conversation's activity history, newest first:
- A move of control between the Meta Business Agent and your application.
- An assignment, reassignment or unassignment.
- A notification sent to the agent about this contact.
Messages are listed separately, by listing the conversation's messages.
Pass type to keep only events of one type.
Events are retained for 30 days from when they were recorded, so a long-running conversation lists only its recent history. When the conversation's last message passes its own 30-day retention, the conversation is deleted with its remaining events, and this returns 404.
Parameters
conversation_idstringConversation identifier. Starts with wacv_.
Query Parameters
typestringKeep only events of this exact type (for example whatsapp_conversation.control_changed). Omit for every type.
Possible values (may grow over time): whatsapp_conversation.control_changed, whatsapp_conversation.assigned, whatsapp_conversation.agent_notified
limitintegerMaximum number of items to return per page.
starting_afterstringCursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.
ending_beforestringCursor from the prev_cursor or refresh_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order. prev_cursor returns the preceding page. refresh_cursor anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
Response Payload
dataPage of conversation events, newest first.
Show child attributes
data.idEvent ID.
data.typeType of conversation event. whatsapp_conversation.control_changed records the conversation moving between the Meta Business Agent and your application, whatsapp_conversation.assigned records it being assigned, reassigned or unassigned, and whatsapp_conversation.agent_notified records a notification sent to the agent about this contact. Open enum: new event types may be added over time, so treat any unrecognized value as a future event rather than an error. The values below are the types known at this version.
Possible values (may grow over time): whatsapp_conversation.control_changed, whatsapp_conversation.assigned, whatsapp_conversation.agent_notified
data.summaryHuman-readable summary of what happened.
data.metadataStructured details for the event. from and to carry the values that changed: the holder (meta_business_agent or bird) for a control change, the assigned user ID for an assignment, null for no assignee. A control change also carries the initiator and, when one was left, the reason. An assignment carries assigned_by, the actor who made it. An agent notification carries the agent_notification_id and its name.
data.created_atWhen the event happened.
next_cursorCursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.
prev_cursorCursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.
refresh_cursorRefresh anchor, the first row of this response. Pass back as ending_before to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-null whenever data is non-empty; null only on an empty page. Distinct from prev_cursor.
Related resources
Continue with the documentation, guides and examples for this topic.