What Switchbord gives you
Switchbord has three main surfaces you interact with:Operator app
The web interface for your team. Includes the inbox, contacts list, template library, campaign builder, journey editor, and workspace settings.
HTTP API
Endpoints for processing inbound webhooks from Meta, reading conversations and contacts, and compatibility integrations with external systems.
Background worker
An always-on process that schedules outbound messages, reconciles delivery states, and executes campaign and journey steps.
Your workspace
Everything in Switchbord is scoped to your workspace — your account and tenant boundary. All contacts, conversations, templates, campaigns, journeys, and webhook events belong to your workspace. Workspace members can hold different roles, so you can give agents inbox access, give developers API access, and keep settings locked to owners and admins. Multiple members can work simultaneously; the inbox updates in real time. A workspace can have one or more channels — each channel is a WhatsApp phone number tied to your WABA. When you add a channel, you provide your Meta access token and webhook credentials. Switchbord registers your webhook URL with Meta and starts accepting deliveries on that channel immediately.How inbound messages flow
When a contact sends you a WhatsApp message, Meta delivers a webhook to Switchbord. Here is what happens:Meta delivers the webhook
Meta posts the event to your Switchbord webhook endpoint (
POST /webhooks/whatsapp or POST /webhooks/meta).Switchbord verifies and stores the envelope
Switchbord checks the
X-Hub-Signature-256 header against your signing secret. Whether the signature passes or fails, the raw envelope is stored — headers, body hash, and metadata. Nothing is discarded.The event is queued for processing
Verified events are written to the outbox queue for the background worker to pick up.
How outbound messages flow
When you or an automation wants to send a message, Switchbord follows a send-intent pattern:A send intent is created
You send a message from the inbox, a campaign schedules a broadcast, or a journey step triggers a template send. Switchbord records the intent before attempting delivery.
The worker schedules delivery
The background worker picks up the intent, validates the template if required, and calls the Meta Graph API to send the message. Throughput limits and conversation-window rules are enforced at this step.
Meta confirms or rejects
The Meta response is logged against the intent record. A successful response means the message is in Meta’s delivery pipeline.
The 24-hour service window
WhatsApp restricts when businesses can send free-form messages. Once a contact sends you a message, you have a 24-hour service window to reply with any message type. Outside that window, you can only send pre-approved template messages. Switchbord tracks the service window for every conversation. The inbox displays a warning when a conversation approaches or has passed its window, and the template send flow enforces this rule automatically. If you try to send a free-form message outside the window, Switchbord blocks it before the request reaches Meta.To initiate a conversation with a contact who has never messaged you, or to re-engage after the 24-hour window closes, you must use an approved template. See Templates for how to sync and use them.
Campaigns and journeys
For scaled outbound communication, Switchbord provides two automation surfaces:- Campaigns let you broadcast a template to a contact audience at a scheduled time. Switchbord takes an audience snapshot when the campaign runs, validates each recipient against template eligibility, and dispatches messages through the background worker.
- Journeys are event-triggered automation flows. You define a sequence of steps — waits, branches, and template sends — and Switchbord executes them as contacts enter the journey based on your trigger conditions.
Auditability
Every significant action in Switchbord leaves a record:- Webhook envelopes are stored immutably and can be replayed
- Message delivery history is append-only and never overwritten
- Operator actions (settings changes, credential rotations) are written to the audit log
