Skip to main content
Outbound WhatsApp calling is a workspace-gated Beta capability, is only available in supported regions, and requires explicit permission from the recipient. Multi-channel campaigns request permission automatically, show the lead as Awaiting permission, and only dial after a signed grant webhook. A decline or expiry is terminal for that delivery.
Campaign calls include campaign_id, lead_id, lead fields, mapped variables, and the campaign timezone in the agent dispatch. WhatsApp media never enters the SIP dial path. WhatsApp voice calls use the platform’s WhatsApp voice connector. The same voice agent that answers phone calls also answers WhatsApp calls. Product setup (credentials, webhook, toggles, templates): Settings → Channels → WhatsApp — see WhatsApp (Text + Voice). Text chat uses the Cloud API path on the same connector (messages webhook field). Voice uses the same webhook URL with the calls field.

What the end user sees

  1. Customer taps call on your WhatsApp Business number (or answers an outbound call).
  2. Normal WhatsApp call UI (ringing → connected).
  3. Your assistant speaks like on a phone line (STT/LLM/TTS in the call session).
  4. After hang-up: same History / analysis / credits path as other voice calls.
There is no custom in-app WhatsApp dialer for the customer — they stay in WhatsApp.

What workspace admins will see (product)

Settings → Channels → WhatsApp:
  1. Connect Meta credentials (Phone Number ID + permanent System User token + app secret + verify token + WABA ID), or use Connect with Meta.
  2. Assign an assistant.
  3. Copy webhook URL for Meta (messages + calls + template status).
  4. Enable voice inbound / outbound toggles (outbound is region-dependent + Meta user permission).
  5. Optional: place a test WhatsApp call from the same panel.
Webhook route: https://app.famulor.io/api/webhooks/messaging/whatsapp/{connectorId}. Outbound API: POST /api/calls/whatsapp-outbound.

Apps / accounts you need

  1. Meta Developer account.
  2. WhatsApp Business Account (WABA) with a business phone number.
  3. Voice calling enabled on that number (Cloud API v23/v24).
  4. Meta app with WhatsApp product + permanent System User access token (or Embedded Signup).
  5. Platform voice infrastructure with WhatsApp calling enabled (operator-configured).

Meta setup (step by step)

  1. Create / open a Meta app → add WhatsApp.
  2. Under WhatsApp → API Setup, note:
    • Phone number ID
    • Access token (use a long-lived System User token in production)
  3. WhatsApp → Configuration → Webhooks:
    • Callback URL: https://app.famulor.io/api/webhooks/messaging/whatsapp/{connectorId} (or the platform WhatsApp webhook)
    • Verify token: the connector verify token (or platform verify token for the app-level callback)
    • Subscribe at least to calls (and messages for text)
    • Use API version v23.0 or v24.0 consistently
  4. Enable call permissions:
    • Inbound: configure available call hours (user-initiated calls)
    • Outbound: only in supported regions + explicit user permission

Call flow (product)

Inbound

  1. User calls your WhatsApp Business number.
  2. Meta POSTs a call connect webhook with SDP offer + call id.
  3. The platform accepts the call, dispatches the voice agent, and bridges audio into the call session.
  4. The assistant runs as on a normal phone call.

Outbound

  1. Workspace (UI / API / MCP) starts an outbound WhatsApp call to the user’s number.
  2. Meta rings the user and sends a call connect webhook with SDP answer.
  3. The platform immediately connects media (delay can cause silence / drop).
  4. On hang-up: Meta call terminate → platform disconnects the session.