Sign inGet Started

WhatsApp log

The Messages page in the Bird dashboard is your workspace's record of every WhatsApp message it has sent: every send made through POST /v1/whatsapp/messages lands here, newest first. Use it to confirm a message went out, check its delivery status, and read which template produced it. For a tour of where this page sits in the dashboard, see the dashboard tour.

The message list

The WhatsApp Messages page in the Bird dashboard: an exact-recipient search box with Status, Category and Date filters above a volume histogram, then a table of messages with a direction arrow, Status (Delivered, Rejected, Received), From and To phone numbers, the Content column holding the template slug or the inbound text, a Category badge (Utility, Service), and the Sent timestamp

Each row is one message. The columns are:

ColumnWhat it shows
StatusThe message's current status (see Statuses), as a colored dot
FromThe WhatsApp sender number the message was sent from
ToThe recipient's number
ContentThe template the message was sent from, or an inbound message's text (click the row to open the message)
CategoryThe template's category
SentWhen the send was accepted

The list is paginated, 25 messages per page; use Prev and Next to move between pages.

Searching and filtering

A message log fills up fast, so the page leads with a recipient search and two filters. They combine: a status filter plus a date range narrows to messages matching both.

Search by recipient. The search box matches an exact recipient number in E.164 format. Type the full number you sent to, such as +14155550100, to find every message addressed to it. The search matches the whole value rather than any substring of it.

Status. Filter to one or more statuses. Status is multi-select, so you can, say, show everything still in flight by selecting Accepted and Sent together. The options are Accepted, Sent, Delivered, Failed, Rejected, and Received.

Date. Filter by when the message was sent: pick a preset (last 3, 7, or 30 days) or choose a custom range from the calendar.

When a filter combination matches nothing, the page shows a no-results state with a Clear filters action to reset back to the full list.

Statuses

A message's status shows its current sending or receiving state. An outbound message advances from accepted toward a terminal receipt.

StatusMeaning
AcceptedWe admitted the message and are preparing to hand it to WhatsApp
SentHanded to WhatsApp; awaiting a delivery receipt
DeliveredWhatsApp confirmed delivery to the recipient
FailedSending or delivery failed; inspect the recorded error
RejectedBird refused the message before sending it. It was not sent and you were not charged
ScheduledQueued to send at a future time
CanceledA scheduled message canceled before sending; with no subsequent send
ReceivedAn inbound message

A message is rejected when the recipient is on your workspace's suppression list, the wallet could not cover the send, or the destination has no configured price. A read receipt is not a status: when a recipient reads a delivered message, Bird records a read_at timestamp and a whatsapp.read event on the message, and the delivery status stays delivered.

Inspecting a message

Click any row to open the message. Its header shows the template that produced it, the current status, the recipient, and the category badge, above three tabs:

The WhatsApp message detail sheet in the Bird dashboard, opened for a delivered bird_delivery_update message: the Events tab showing the message status event timeline of Accepted, Sent, Delivered, and Read, each with its elapsed time and timestamp, over the dimmed message list

  • Events: a timeline of everything that happened to the message, in order, each with its timestamp. It runs Accepted, Sent, Delivered, then the read receipt if the recipient read it, or a failure or rejection with its error description. This is the same stream you can read with GET /v1/whatsapp/messages/{message_id}/events.
  • Details: the message's metadata. It holds the ID (with a copy button), the sender and recipient numbers, the template's slug, language, and category, and the sent, delivered, and read timestamps. It also holds the error description on a message that didn't arrive, plus any tags and metadata the send carried.
  • Preview: how the message renders in WhatsApp. For a template message this draws the template's current content rather than the values that send supplied, so the variables appear as placeholders and a later edit to the template changes what you see; treat it as a rendering aid, not a record of what was delivered. An inbound message previews its own content.

The same log over the API

Everything on this page reads from GET /v1/whatsapp/messages and its per-message sub-resources. The list takes three of the page's own filters: status, category, and the date range (created_after/created_before). It adds several the page has no control for: direction, a tag, and an exact to or from. to and from name the same ends of the message the response does, so to is the contact on an outbound message and your business number on an inbound one; each accepts an E.164 phone number or a business-scoped user ID. The page's recipient search is the one filter with no direct equivalent, since it matches a contact in either direction and to or from alone cannot express that. The timeline behind the Events tab is GET /v1/whatsapp/messages/{message_id}/events; WhatsApp events covers reading it programmatically.

Next steps