Skip to main content
Before Switchbord can send or receive WhatsApp messages, you need to connect it to your Meta WhatsApp Business Account (WABA). This involves two sides: configuring your webhook and credentials in the Meta Developer Console, then entering those credentials into Switchbord. Complete the Meta steps first so you have all the values you need when you open Switchbord.

What you’ll need

  • Admin access to your Meta Business Manager and a verified WABA
  • A phone number approved for the WhatsApp Business API
  • Access to your Switchbord workspace as an owner, admin, or developer

Step 1: Prepare Meta

1

Confirm your WABA and phone number

Sign in to Meta Business Manager and confirm that your WhatsApp Business Account is active and the phone number you want to use is registered and approved. You cannot connect a number that is still pending review.
2

Generate a Meta access token

In the Meta for Developers dashboard, open your app and navigate to WhatsApp > API Setup. Generate a permanent (system user) access token with the whatsapp_business_messaging and whatsapp_business_management permissions. Copy this token — you will paste it into Switchbord.
3

Choose a webhook verify token

Create a short secret string to use as your webhook verify token. This is a value you choose yourself — Meta will send it back to your webhook URL to confirm ownership. You will enter the same value in both Meta and Switchbord, so keep it handy.
4

Copy your Switchbord webhook URL

Open Switchbord and navigate to Setup at /setup. The page displays your workspace webhook URL. Copy this URL — you will paste it into Meta in the next step.
The webhook URL is specific to your Switchbord deployment. It does not change unless you redeploy to a different host.
5

Register the webhook in Meta

In the Meta for Developers dashboard, go to your app’s Webhooks section. Add a new webhook subscription:
  • Callback URL: paste the URL you copied from Switchbord Setup
  • Verify token: enter the verify token you chose in the previous step
Subscribe to the messages and message_status (also called message_deliveries, message_reads) fields under the WhatsApp Business Account object. Click Verify and save — Meta will send a challenge to your webhook URL. Switchbord handles the challenge automatically.
6

Locate your webhook signing secret

In the Meta for Developers dashboard, go to App Settings > Basic. Find the App Secret field. This is your webhook signing secret — Switchbord uses it to verify the signature on every inbound webhook delivery. Copy it now.

Step 2: Configure Switchbord

1

Open Setup or Settings

  • First-time setup: navigate to Setup in the sidebar. This page walks you through the full connection checklist.
  • Updating credentials: open Settings and go to the Provider tab.
2

Enter your provider credentials

Fill in the three required fields:
FieldValue
Meta access tokenThe system user token you generated in Meta
Webhook signing secretThe app secret from Meta App Settings
Meta verify tokenThe string you chose and entered in the Meta webhook configuration
Click Save (or the equivalent save action on the form). Switchbord sends these values to the server, where they are written into Vault. They are never returned to the browser after this point.
3

Validate the configuration

Click Validate configuration. Switchbord calls the Meta Graph API to confirm the access token is valid and has the required permissions.After validation:
  • Each credential shows a configured or missing status — never the raw value
  • The validation result shows the last check time and any error codes if the token is invalid
If validation fails, check that the token has the correct permissions and has not expired.
4

Confirm the webhook endpoint

Back in the Meta for Developers dashboard, verify that the callback URL shown in your webhook subscription matches exactly what Switchbord displays in Setup. A mismatch here will cause inbound messages to be delivered to the wrong endpoint.
5

Send a test message

Send a WhatsApp message to your connected number from a personal device. The message should appear in the Switchbord Inbox at /inbox. Confirm the message arrives before routing any production traffic through this workspace.

How Switchbord stores your credentials

Switchbord never echoes stored secret values back to the browser. After you save credentials, the UI shows only:
  • Configured or Missing — whether a value has been stored
  • Source — whether the value came from Vault (workspace-managed) or from a server environment variable (bootstrap fallback)
  • Last validation status — the result and timestamp of the most recent validation check
If you see “environment fallback” as the source for a credential, the workspace is using a server-level default rather than a workspace-specific secret. Enter the credential through Settings > Provider to store it in Vault and make it workspace-managed.

Rotating credentials

You can rotate any credential without redeploying Switchbord:
  1. Generate the new token or secret in Meta.
  2. Open Settings and go to the Provider tab.
  3. Enter the new value and save.
  4. Click Validate configuration to confirm the new credential is accepted.
Re-run validation after every credential rotation. A successful save does not guarantee the new value is accepted by Meta — validation confirms the token is live and has the correct permissions.