Skip to main content

Work the Messages → WhatsApp workspace

The Messages → WhatsApp page in the Orbit dashboard is the operator canvas for a connected WhatsApp Business Account (WABA). Where the WABA setup guide gets an account connected and the getting-started guide gets a first message through the API, this page is where the day-to-day work happens: replying in threads, watching template status, reading delivery and cost analytics, and operating flows, catalog, and calling. This guide walks the workspace tab by tab, then closes with an end-to-end verification checklist.

What the page exposes

The workspace is organized around a WABA picker and eight tabs. Everything on the page is scoped to the WABA selected in the picker — switch WABAs and the threads, templates, and analytics all follow. A caption above each scoped panel names the active account (“Showing conversations for: : ”) so the scope change is never silent. Header stats. Conversations, unread count, message volume, and delivery rate for the active WABA. Quality banner. If the WABA’s quality rating drops to Medium or Low, a warning banner sits above the tabs — on Low it links directly to the paused campaigns list. Keep the rating High — a Low rating freezes tier increases and can reduce limits. The Analytics tab’s quality panel shows the rating, tier, and daily-volume headroom; see WABA setup — messaging limits for the tiers. Disconnection and 422 handling. The header reflects the connection for the active WABA. If the account is not fully wired, a send attempted before a channel or sender is configured returns 422 CHANNEL_NOT_CONFIGURED (or 422 NO_SENDER_CONFIGURED), and the UI presents that actionable message with a link to Settings → Channels → WhatsApp. Finish the connection there, then retry the send from the same composer — the draft is preserved. On some tabs (Templates, Template Library, Analytics, Flows, Catalog) a disconnected account shows a “connect your WABA” explainer instead of an empty list, so you can tell “not connected” apart from “no data yet”. The tabs: The walkthroughs below take each one in turn.

1. Conversations tab — threads and replies

The Conversations tab is the inbox: a dual-pane layout with the thread list on the left and the active thread on the right. Unread counters and thread states. The tab label carries a rolling unread badge whenever any thread has unseen inbound messages, so you can spot new inbound traffic without opening the tab. Each row in the thread list shows the contact name or number, a preview of the last message (template sends render a readable preview of the sent template body, not a [Template] name placeholder), and an unread count. Clicking a row opens the thread pane; on mobile the thread view replaces the list, with a back control to return. A search box filters the list, and a Load more button under the list pages older messages. Free-form vs template replies. What the composer lets you send depends on the recipient’s 24-hour service window:
  1. Inside the window, the composer accepts free-form text, media, emoji, and interactive quick-reply buttons (the interactive composer sends button or list-menu payloads).
  2. Outside the window, the composer restricts you to approved templates — the free-form input is gated and the template picker takes over.
  3. A send returns one of two outcomes: a success toast when the message is accepted, or an error toast carrying the Meta or channel failure with the next step (for example the 422 cases above).
Every send through the in-thread composer goes through the WABA selected in the picker — not the organization default — so multi-WABA operators reply from the number the customer actually wrote to. See The 24-hour window for the window rules. Orphan messages. A read-only “unlinked messages” panel under the thread list renders rows the API returns that no surfaced conversation represents — orphan campaign, test, or failed sends — so a message is never silently invisible just because a conversation row is missing. Contact drill-through. Clicking a thread row’s avatar opens the Customer 360 drawer for that contact, so a support operator can check the contact profile and opt-out status before re-engaging.

2. Messages tab — flat log, filters, and CSV

The Messages tab is a flat, chronological log of every message on the active WABA, rendered by the same message table the other channel hubs (SMS, email, RCS, and so on) use. It is the surface to use when you need row-level rather than thread-level visibility — for example auditing a broadcast batch. Filters. Status and direction chips plus a free-text search sit above the table. The date-range filter also accepts a deep-linked range (for example from the Reports volume chart) so a chart click lands on the matching rows. Clicking a row opens the detail drawer with the full message record, including template rows rendered with their filled body content. CSV export. The export menu offers two shapes:
  • Export this page — the currently loaded rows on screen.
  • Export all results — a server-side export of the full filtered set, which stays available even when the currently loaded page slice is empty (multi-WABA scoping can leave the loaded slice empty while the account still has rows).
Both emit the canonical message baseline: Direction, From, To, Body, Status, Created At — the same first columns every channel exports, so cross-channel spreadsheets align. Timestamps are formatted in your profile timezone to match the dashboard wall clock, and phone numbers are written as text literals so the leading + survives Excel. Reconciliation against the Delivery Log. For a dispute (a recipient claims a message never arrived) reconcile at Messages → Delivery Log, the cross-channel message search, before re-sending:
  1. Open Messages → Delivery Log and filter channel = WhatsApp.
  2. Search the recipient number or the message id returned by the API response.
  3. Check the status rollup — sent → delivered → read, with the provider failure reason where the send was refused — and only re-send after the check, to avoid billing a duplicate conversation.
The Messages tab here is WABA-scoped; the Delivery Log is the global ledger. Use the tab for scoped browsing, the Log for disputes.

3. Templates tab — status pills and the composer gate

The Templates tab lists the active WABA’s templates with their Meta verdict as a status pill beside each name: Approved, Pending, or Rejected. Approval is Meta’s decision; the workspace surfaces the verdict and gives you the next action. Walking the loop:
  1. From the Templates tab, open the template builder and submit (full submission detail lives in Create and approve a template). Categories are MARKETING, UTILITY, and AUTHENTICATION, with per-language variants.
  2. Watch the pill. Most templates return a verdict within minutes; Meta allows up to 24 hours. Status changes arrive over live status webhooks, so the pill updates without a refresh.
  3. Approved: the Send action enables and the template becomes selectable in the in-thread composer and the broadcast dialog (up to 256 recipients per dispatch). The send composes through the WABA you are viewing.
  4. Pending: the Send action stays disabled — the composer gate never lets a draft leave on an unapproved template.
  5. Rejected: read the Meta reason in the template detail, fix the content, and resubmit. A rejection blocks sends of that template until a passing revision is approved; the most common cause is a category mismatch (promotional copy submitted as UTILITY). Check against the content policy before resubmitting.
An Approved template also deep-links into the composer from the cross-channel templates list; the workspace recognizes the hand-off and opens the composer with that template preselected.

4. Template Library — Meta’s pre-built catalog

The Template Library tab browses Meta’s pre-built templates, which are instantly approved on adopt — no authoring and no 24–48 hour review wait. Meta ships two library categories:
  • Utility — order updates, appointment reminders, account alerts, and similar service copy.
  • Authentication — one-time-passcode templates with a copy-code OTP button.
Marketing copy is authored by you on the Templates tab; the library carries none. To adopt:
  1. Pick a template from the catalog and click Use template.
  2. The adopt lands it on the WABA selected in the picker, already Approved and ready to send.
  3. Localize variables at send time from the normal picker — the adopt fixes the structure, not the values.
Because the library instantiates templates against your own WABA, the tab shows the connect-your-WABA explainer until a real account is connected. WhatsApp has no shared test path — template adoption requires a connected WABA outright.

5. Analytics tab — quality, delivery, volume, cost

The Analytics tab stacks the panels below for the active WABA, with a scope caption naming the account the charts describe. Quality rating card. The top panel shows the Meta-reported quality rating (High / Medium / Low / Unknown), the messaging-limit tier with daily-volume headroom, and a warning as you approach the daily limit. Read it first: a Medium or Low rating is the early signal Meta may throttle or freeze tier increases, and the banner above the tabs echoes the same state. Delivery and volume. The KPI cards and Message Volume chart count only the selected WABA’s sends (a multi-WABA org sees per-account numbers, not an org-wide sum). A per-template analytics table breaks each template down by sends, delivery, reads, and replies. Costs. Three panels cover spend: a cost tracker that estimates Meta spend from your message rows against the published rate card, pricing analytics for the conversation-category mix (utility vs marketing vs service), and a cost optimizer that forecasts an upcoming campaign’s Meta spend from recipient count and target country before you dispatch. Use the forecast vs tracker comparison to spot drift between estimates and Meta’s billing. Calling KPIs (a 30-day rollup plus a per-day trend) sit in the same stack; the Calls tab carries the per-call records.

6. Flows, Catalog, and Calls — one walkthrough each

Flows. WhatsApp Flows are interactive multi-step forms (sign-up, appointment booking, lead capture) signed with your WABA. In the Flows tab: pick a flow from the list bound to the active WABA, open the builder, publish, then share it from a composer as a message payload. Full builder detail lives in WhatsApp Flows. Watch completion-rate analytics before sending a flow to production traffic. Catalog. The Catalog tab manages the WABA’s product catalog and the product-message flow. In the tab: sync products from Meta Commerce Manager, then send a single-product or multi-product message from the thread composer and preview the in-chat checkout and cart receipt. Full catalog detail lives in WhatsApp Catalog. Catalog runs only against a connected WABA — there is no shared-account preview since the 2026-10-08 retirement of the WhatsApp demo account. Calls. WhatsApp Business Calling puts voice on the same WABA. In the Calls tab: check the per-call log (status, direction, duration) for the active WABA, then use the KPI panel on the Analytics tab for the 30-day rollup. Setup and eligibility detail lives in Business Calling.

Verify the workspace end to end

Run this checklist when onboarding a WABA or after any reconnection:
  1. Connect — the picker lists the WABA and no CHANNEL_NOT_CONFIGURED or NO_SENDER_CONFIGURED 422 appears on send. If it does, fix it at Settings → Channels → WhatsApp and retry from the preserved draft.
  2. Conversations — open a thread, send a free-form reply inside the 24-hour window, and confirm the unread badge clears on read.
  3. Templates — one template sits in Approved; the composer accepts it and gates the Pending/Rejected rows.
  4. Send + verify — send from the composer (or the API, using the payload from getting started); expect the thread update, the header count increment, and the sent → delivered → read receipt flow when the client reports it.
  5. Messages log — the flat Messages tab shows the rows; export a CSV page and confirm the baseline columns.
  6. Delivery Log — reconcile the test send in Messages → Delivery Log by recipient number or message id.
  7. Analytics — the quality card reads High (or Unknown pre-traffic), delivery/volume panels count the WABA, and the cost panels load.
  8. Flows / Catalog / Calls — open each tab once; each either lists its WABA-scoped content or, on a disconnected account, shows the connect explainer rather than a blank panel.
If any step fails, the content policy (content rejects) and the 24-hour window (window rejects) are the two most common causes after the connection itself.

Next steps