Docs/Channels/WhatsApp Business

WhatsApp Business

WhatsApp runs through Twilio as our Business Solution Provider (BSP). Each org gets a dedicated business number — your personal WhatsApp stays untouched. Setup is BSP-managed and takes 1–3 business days.

Why Twilio (not direct Cloud API)

The direct WhatsApp Cloud API requires a Meta Business Manager with a verified business and a sender number registered through Meta's own UI — a 4–6 week onboarding for first-time senders. Twilio's BSP shortcuts that to 1–3 days because Twilio is already a verified sender. We migrate to direct Cloud API once volume justifies the longer onboarding (50+ active senders).

Provisioning

  1. Choose your display name in /dashboard/settings → Integrări → WhatsApp. This is what your customers see (e.g. Neofir).
  2. Submit. The platform provisions a Twilio sender on your behalf and submits to Meta for display-name approval (1–3 days).
  3. When approved, the number goes live. Your customers can message it directly.

Webhook

Twilio sends inbound WhatsApp messages to POST /v1/webhooks/whatsapp-twilio with a Twilio-signed body. The route verifies the signature, looks up the org by recipient phone, and dispatches into processInboundMessage().

Sending

Outbound is the Twilio Messages API with the org's WhatsApp sender as From. The conversation pipeline is identical to other channels — the wire format is the only difference.

Reply window & templates

WhatsApp's policy gives you 24 hours after the user's last message to send a free-form reply. Outside that window, you must use a pre-approved Message Template.

Templates not yet supported. Reminders sent more than 24 hours after the last user message will fail. Until template support ships, schedule reminders to fall inside the 24h window or use a different channel. See Status.

Required env vars

VariablePurpose
TWILIO_ACCOUNT_SIDTwilio API auth.
TWILIO_AUTH_TOKENTwilio API auth + webhook signature verification.
TWILIO_WHATSAPP_SENDERDefault sender (per-org overrides stored in DB).

Costs

Twilio charges per conversation session (24-hour window per user per sender). Pricing varies by destination country. Estimate ~$0.005–0.05 per conversation for Romania-anchored numbers; see Twilio's pricing for your region.

Display name

The user sees the display name (e.g. Neofir) only after Meta approves it (typically 1–3 days). Before approval, they see the raw phone number. Display name changes go through the same approval cycle.

Bringing your own number

Meta forbids running the WhatsApp app and the API on the same number simultaneously. If you bring an existing number, you lose the consumer app on that handset. We recommend a separate business line.