B Blengi docs

Build your agent

WhatsApp channel

Your AI employee can answer customers on WhatsApp with the same knowledge, settings and checks as on your website: one brain, a door per channel. WhatsApp chats land in the same inbox as website chats, a team member can take one over at any moment, and every WhatsApp chat is a lead (the customer's number is known). WhatsApp runs on Meta's WhatsApp Cloud API; your business pays Meta directly for its messages.

Plan
WhatsApp is part of the plans that include it. A plan can also cap the AI's WhatsApp replies per month; over the cap, new WhatsApp chats wait for your team in the inbox instead of getting an AI answer.

Connect a number

Open the AI employee and go to the WhatsApp tab (/app/agents/{id}/whatsapp). A workspace can connect several numbers; each number answers as one AI employee, chosen under Answers as (choose Nobody to have only your team answer on it).

  • Connect with Facebook — log in with Facebook in the popup and pick your WhatsApp number (Meta's Embedded Signup). Choose Keep the WhatsApp Business app to keep using the app on your phone with the same number (Coexistence), or Use a new number for a number that is not in the WhatsApp app. This button appears once Blengi's Meta app is approved (Meta Tech Provider). It uses Meta's Embedded Signup v5 (card #862; Meta retired v2 and v3 on 15 October 2026). Which kind of number was connected is asked of Meta itself, not taken from the button you clicked: a number Meta reports as in use with the WhatsApp Business app is never registered for the Cloud API, because that would cut the app off. When Meta names only the WhatsApp Business Account, the account's one number is connected; with several numbers you are asked to try again and pick one.
  • Connect by hand — for a number you set up yourself in Meta's WhatsApp Manager: paste its access token, phone number ID and WhatsApp Business Account ID. Meta checks the token before anything is saved, and Blengi subscribes to the number's messages. A number Meta has verified but not yet registered for the Cloud API (Meta's own test number, for example) is registered right away (card #864); without it every message would fail with "Account not registered". A number on the WhatsApp Business app is never registered.

A number can be connected to one Blengi account only. Disconnecting a number stops the AI on it; its chats stay in the inbox.

The 60-day connection (card #884)

A number connected with Facebook gets a token from Meta that works for 60 days: Blengi's Embedded Signup configuration could only be made with Meta's 60-day template. Every morning (07:10) the scheduled command pitchbar:renew-whatsapp-tokens renews each token that ends within 14 days for another 60 days, through Meta's fb_exchange_token renewal. Nobody has to do anything while that works. If Meta refuses, the workspace's owners and admins and the platform admins get an email 14 days before the end, 3 days before, and once on the day the number stops, and the number's card on the WhatsApp tab says so (amber while it still works, red once it has stopped). The fix is to click Connect with Facebook again and pick the same number: that gives it a new token and keeps its settings and chats. Numbers connected by hand carry no end date and are not touched. Run the command with --dry-run to list the numbers that are due without calling Meta or sending email.

How the AI answers on WhatsApp

  • One answer to several messages. Customers often send a few short messages in a row. The AI waits a few seconds after the last one (Wait for more messages, 2–15 seconds, default 4) and answers them together.
  • Read and typing. The customer sees their message marked as read and "typing…" while the answer is made.
  • WhatsApp formatting. Short paragraphs, *bold*, plain web addresses; product suggestions arrive as photos with name, price and link (at most three); answer suggestions become reply buttons (up to three, otherwise a list). A reply button shows 20 characters, so the AI keeps its suggestions that short; when one is still longer, the choices come as a list that shows the whole question instead of a cut-off button (card #872). Only real web addresses are sent as links.
  • It says it is an AI. The first reply in a chat starts with a line saying the customer is talking to an AI employee, that they can ask for a person, and that STOP stops the AI. You can word that line yourself per number.
  • STOP and START. A customer who sends STOP (or STOPPEN, AFMELDEN, ABMELDEN, ARRÊT…) no longer gets AI replies; START turns it back on. Your team can still answer.
  • Talk to a person. The person button, or asking for a person, works as on the website: the chat is flagged for the team.
  • Photos and voice notes. The AI reads text only. A photo with a caption is answered from the caption; without one the customer is asked to type the question.
  • Your home page counts as the page. On your website the AI also reads the page the visitor is on. A WhatsApp chat has no page, so the AI reads your home page instead: the one in the chat's language when your site has one (/nl), else your main home page, else your about page. With strict mode on, a question your knowledge does not cover then gets an honest answer — "No, we don't sell Coolmax; we …" — instead of the fallback sentence, which stays for questions neither your knowledge nor that page can answer (card #870). Before this, strict AI employees gave the fallback sentence to 57% of WhatsApp messages and 3% on websites. Which pages the knowledge search finds does not change.

When the AI stays silent

  • A team member took the chat over, or the customer asked for a person.
  • You answered the chat yourself in the WhatsApp Business app (Coexistence): the AI leaves that chat to you for a while (AI steps back after your own reply, 12 hours by default).
  • The customer sent STOP.
  • The 24-hour window is closed (below), or the plan's monthly WhatsApp limit is used up. The chat then waits for your team.

The 24-hour rule

WhatsApp allows free replies only within 24 hours of the customer's last message. After that, only paid, pre-approved template messages may be sent. The inbox shows until when a reply is possible; a reply WhatsApp refuses is kept and marked not delivered. The Send test button follows the same rule: it only reaches a phone that messaged the number in the last 24 hours.

In the inbox

WhatsApp chats show a WhatsApp badge with the customer's name and number; the channel filter shows only website or only WhatsApp chats. Inside a chat you see the number it came in on, the 24-hour window, and per message whether it was sent, delivered, read or not delivered. Replies you type in the inbox go out over WhatsApp right away. With Coexistence, replies you send from the WhatsApp Business app appear in the inbox too, and the app's earlier chats are imported so the AI knows what was said before.

Memory

WhatsApp chats run for days. The AI remembers the last twelve messages word for word and a short summary of everything before them; see Memory. A chat that picks up again after a pause is read as it stood: the message just sent is the question, not also the message before it (card #870 — "Minder dan 5" after a pause was searched as "Minder dan 5 Minder dan 5" and lost what it answered).

Privacy

WhatsApp messages travel through Meta. Meta may keep message content for up to 30 days to deliver it and for safety. Your business is the controller of the chats; Blengi processes them for you. The customer's number is used to answer them and is saved as a lead. Mention this in your own privacy policy.

Nightly tests

For an AI employee with a connected number, every test case also runs through the WhatsApp door — nightly and with Run now — and is judged on the text the customer would get on WhatsApp. Its runs are marked nightly-whatsapp / manual-whatsapp.

Setup for Blengi (platform)

VariablePurpose
META_APP_ID + META_APP_SECRETBlengi's Meta app. The secret checks every webhook (X-Hub-Signature-256); without it all WhatsApp webhooks are refused.
WHATSAPP_WEBHOOK_VERIFY_TOKENAny long random string; enter the same token in the Meta app's WhatsApp webhook settings.
WHATSAPP_EMBEDDED_SIGNUP_CONFIG_IDThe Embedded Signup configuration of the Meta app (Facebook Login for Business → Configurations, login variation WhatsApp Embedded Signup, WhatsApp accounts only, whatsapp_business_management + whatsapp_business_messaging); shows the Connect with Facebook buttons. The JavaScript SDK's allowed domains must include the site's address.
META_GRAPH_VERSIONGraph API version, default v24.0.
WHATSAPP_BUNDLE_SECONDSDefault wait for more messages (4).
WHATSAPP_REGISTER_TIMEOUTSeconds to wait for Meta when registering a number (60). Meta can take longer than a normal call; when it still doesn't answer, Blengi asks Meta whether the number got registered before calling it a failure, and the two-step PIN is kept encrypted either way.

In the Meta app, set the WhatsApp webhook URL to https://<your-domain>/api/v1/channels/whatsapp/webhook with the verify token above, and subscribe to the fields messages, smb_message_echoes, history and smb_app_state_sync (the last three for Coexistence), plus account_update, which Meta uses to report a Coexistence number being disconnected. Other fields (for example calls or template updates) are accepted and ignored. The WhatsApp tab shows the exact address. Connect with Facebook needs Tech Provider status for Blengi's app and advanced access (App Review) for whatsapp_business_management and whatsapp_business_messaging; Meta's business verification raises how many businesses can connect per week.

Coexistence is only possible through Connect with Facebook: Meta lets a number that is in the WhatsApp Business app use the Cloud API only through a partner's Embedded Signup, or after the account is deleted from the app (which loses its chat history). The business needs WhatsApp Business app 2.24.17 or newer and must keep using the phone with the app (Meta disconnects after about 14 days without the main device). Chats from the last six months and the contacts are imported; group chats are not. In one-to-one chats, disappearing messages, view-once and live location are switched off, and broadcast lists stop working. Messages sent from the app stay free; messages sent through the Cloud API fall under Meta's pricing.