Skip to content

WhatsApp Setup

A workspace sends and receives on one or more WhatsApp Business numbers. Each number belongs to a WhatsApp Business Account (WABA), and the WABA belongs to the business’s own business portfolio in Meta. There are two ways to connect a number. Pick the right one first — the wrong one can’t be undone later.

Have these ready before anyone opens Meta:

  • The business’s own, established business portfolio in Meta Business Settings — ideally verified. Never create a new portfolio for this, and never one named after the brand (see what went wrong for one client).
  • An established personal Facebook profile that is an admin of that portfolio. Meta refuses brand-new profiles.
  • The phone number, and an answer to one question: must the business keep using the WhatsApp Business app on the phone for this number?
  • The number’s two-step verification PIN, if the number isn’t registered on the Cloud API yet (Path A only).
  • A card for Meta billing on the WABA (see Meta billing is per WABA).
  • In Whatbot, an org admin of the workspace the number is for. Check the workspace name before connecting — see troubleshooting.

Does the business need to keep using the WhatsApp Business app on the phone for this number?

  • Yes → Path B: Embedded Signup with coexistence. The number must be active in the WhatsApp Business app today. It stays on the phone and works in Whatbot.
  • No, and the business already has a WhatsApp Business Account → Path A: share your own WABA with Zetta Tech. The number runs on the Cloud API only and can’t also be used in the phone app.
  • No, and the business has no WhatsApp Business Account yet → use the same Embedded Signup popup as Path B, skipping the Business-app steps: in the popup, pick the business’s existing portfolio and let Meta create the WhatsApp Business Account there for the new number. Afterwards, check the number on the Numbers page; if it shows as not registered, see Path A, step 4.

Path A: share your own WABA with Zetta Tech

Section titled “Path A: share your own WABA with Zetta Tech”

The business keeps its WABA in its own portfolio and shares it with Zetta Tech as a partner. There is no popup. Steps are marked with who does them.

  1. Business: share the WABA with Zetta Tech

    In Meta Business Settings → Accounts → WhatsApp accounts, open the WABA and choose Assign partner. Enter Zetta Tech’s business ID 2246030169214881 and give Full control. Do this from the business’s established portfolio.

  2. Business: set up billing on that WABA

    See Meta billing is per WABA. Without it, messages arrive but template messages fail to send.

  3. Zetta Tech: assign the WABA to the Zetta Interns system user

    In Zetta Tech’s Business Settings → WhatsApp accounts, open the shared WABA → Add people → tick Zetta Interns (System user) → Full control. It must be Zetta Interns — Whatbot’s token belongs to that system user, and assigning the WABA to any other Zetta Tech system user leaves Whatbot unable to see it. Do not regenerate the token: access is checked on every call, and regenerating it disconnects every workspace.

  4. Zetta Tech: register the number, if it isn’t already

    If Whatbot shows the number as not registered (status PENDING), it has to be registered on the Cloud API before it can send. Whatbot can’t do this step itself yet: send the number and its 6-digit two-step verification PIN to Zetta Tech support, who register it for you. A number that already sends elsewhere is registered — skip this.

  5. Whatbot: connect the number

    In the workspace, go to Settings → WhatsApp Numbers:

    • Paste the WABA ID — copy it from WhatsApp Manager (it’s shown under the account name), not from a chat message; a wrong ID looks exactly like a permissions problem.
    • Leave Access token empty — the WABA is shared with Zetta Tech.
    • Choose List numbers, check the number’s line (see what Whatbot checks), then Connect.
    • If this is the workspace’s main number, choose Make default.

    Use the Numbers page for this, not the Connection page’s manual form.

  6. Recreate the message templates

    Templates belong to a WABA and don’t carry over from another one. Create the ones the workspace uses on this WABA and wait for Meta to approve them.

  7. Test end to end

    Send an approved template to a test phone. Reply from that phone and confirm the reply lands in the Whatbot inbox. Send one message from the CRM.

The business signs in to Meta from inside Whatbot and connects the number it already uses in the WhatsApp Business app. The number keeps working on the phone. Org admins can do this themselves.

  1. Open the popup

    Go to Settings → WhatsApp Connection (or Numbers) and click Connect WhatsApp (Embedded Signup).

  2. Sign in with the right Facebook profile

    Use an established personal Facebook profile that is an admin of the business’s existing portfolio. A new profile is refused with “Feature unavailable”. Never sign in with an account that belongs to Zetta Tech’s portfolio.

  3. Type the number

    The first screen may say “You don’t have any existing phone numbers”. That is Meta’s default label, not a verdict — type the number that lives in the WhatsApp Business app and press Next. Meta then shows the app’s profile.

  4. Pick the existing business portfolio

    Select the business’s own portfolio. Never create a new business portfolio in the popup, least of all one named after the brand — Meta treats a new portfolio under a known brand name as impersonation and can disable the business permanently.

  5. Confirm on the phone

    Keep the WhatsApp Business app open. Meta sends a code (or shows a QR code) on the phone; the connection isn’t complete until it’s confirmed there.

  6. Finish the setup

A coexistence number is already registered, so there is no PIN step. It sends at up to 20 messages per second. Importing the app’s chat history is not automatic and has to happen within 24 hours of connecting — ask Zetta Tech support straight away if you need it.

If the workspace already has a working default number, the new number is added next to it; make it the default under Numbers when you’re ready.

Meta bills each WhatsApp Business Account through its own payment account. Unlike ad accounts, a card on one WABA is not shared with another. On every new WABA, in Meta Billing & payments:

  1. Save the business information — country (India), currency (INR), name and address.
  2. Add a card.
  3. Wait for Meta’s small verification charge (₹3) to clear. A send in the minute after adding the card can still fail — retry.

Until this is done, incoming messages work but template messages fail to send. So “receiving works, sending doesn’t” on a new number almost always means billing, not the connection. Don’t take “billing is done” on trust — Whatbot’s Check and Meta’s own account health will still show the WABA as unable to send until it really is.

Whatbot asks Meta about a number before it connects it, and tells you what it finds in plain language.

List numbers shows each number on the WABA before you connect it:

  • whether it is registered on the Cloud API,
  • its number status (for example connected, or banned),
  • whether its display name is approved,
  • coexistence: Coexistence on (live in the WhatsApp Business app and on the Cloud API), No coexistence — API only, or Coexistence unknown.

Connect asks Meta first. If Meta can’t see the number, or reports it as banned or restricted, Whatbot won’t make it the workspace default and says why — for example: “The WABA’s owner has to share the WABA with us as a partner, and it has to be assigned to our System User.”

After connecting, a report shows each check, including whether the WABA was subscribed to our webhook (without it, no incoming messages arrive) and whether the Flows encryption key was uploaded (without it, forms don’t work). The Connection page’s manual form does the same.

Check (org admins, on the Numbers page) asks Meta about a connected number again at any time — use it after billing, registration or a partner-access change.

Worked example: three attempts at one number

Section titled “Worked example: three attempts at one number”

A real-estate client wanted one Cloud API number connected. It took two weeks, and one of its WABAs was disabled for good. Every mistake below is now a rule on this page.

  1. “Feature unavailable” in the popup. The client’s staff made a brand-new Facebook profile for the job. Meta refuses new profiles. With an established profile the popup opened straight away.
  2. Connected — then permanently disabled. Inside the popup, staff created a new business portfolio named after the company. A day-old profile, a new portfolio under a large real brand and an immediate WhatsApp number is exactly the pattern Meta treats as brand impersonation: the business was disabled for “breach of Terms of Acceptable Use”, permanently. The number was also connected to an old workspace that had been renamed to the client’s name, so there were two workspaces with the same name.
  3. Path A, done in the business’s own portfolio. The client’s Meta contact created a WABA in their existing portfolio and shared it with Zetta Tech. Four things still held it up:
    • the WABA ID first sent over a chat was wrong — a day lost to “Meta can’t see this WABA”;
    • it was assigned to the wrong system user instead of Zetta Interns, and partner access wasn’t Full control, so the webhook couldn’t be set;
    • billing was reported done but Meta still said the WABA couldn’t send;
    • the number wasn’t registered (status PENDING) and the WABA had no templates.
SymptomCauseFix
“Feature unavailable” in the Meta popupThe Facebook profile is too new.Sign in with an established profile that is an admin of the business’s portfolio.
Business disabled for “Terms of Acceptable Use”A new portfolio was created under a brand’s name.Use the brand’s existing portfolio. Appeal from the brand’s own account.
Whatbot says Meta can’t see this number (staff: code 100, subcode 33)The WABA isn’t shared with Zetta Tech, isn’t assigned to Zetta Interns, or the WABA ID is wrong.Check the partner share (Full control), the Zetta Interns assignment, and copy the WABA ID from WhatsApp Manager.
Messages arrive, but template sends fail (staff: first “currency is not configured”, then 141006 “error with the payment method”)Billing isn’t set up on that WABA.Set up Meta billing, then Check again.
Not registered / status PENDINGThe number isn’t registered on the Cloud API.Send the number and its two-step verification PIN to Zetta Tech support to register it (Path A, step 4).
Incoming messages never arriveThe WABA isn’t subscribed to our webhook — the connect report says so.Reconnect the number. If it still fails, partner access or the Zetta Interns assignment isn’t Full control.
Number status BANNED or RESTRICTEDMeta won’t send from it.It can’t be the workspace default until Meta clears it. Resolve it in WhatsApp Manager.
Whatbot says “WhatsApp account linked — no number was chosen”Meta’s window finished without a number being picked.Go to Settings → WhatsApp Numbers, enter the WABA ID, List numbers and Connect the number.
Popup ends with “already registered”An earlier attempt created the WABA somewhere else — often in Zetta Tech’s portfolio after signing in with a Zetta account.Contact Zetta Tech support to remove the stray WABA, then rerun as the business.
Coexistence shows No coexistence — API onlyThe number is already on the Cloud API.Use it as Path A, or remove it from the API and re-register it in the app first.
The number landed in the wrong workspaceThe workspace was picked by name, and two had the same name.Contact support to move it. Never rename another client’s workspace to reuse it.

A workspace can hold several numbers, across one or more WABAs.

  1. Open Settings → WhatsApp Numbers.
  2. Enter the WABA ID and choose List numbers. Every number on that account is shown, marked as already connected here, available, or connected to another workspace (a number can belong to only one). Leave Access token empty for a WABA shared with Zetta Tech; a WABA connected via Embedded Signup already has its token stored.
  3. Choose Connect on each number you want.
  4. Choose Make default on the number used by anything that starts a new conversation — broadcasts, flow triggers and new chats. The first number you connect is the default automatically. A conversation always stays on the number it started on.

Each number gets the Flows encryption key as it is connected, so forms work on every number. Templates belong to the WABA, so a workspace with numbers on two WABAs has two template lists; every picker shows the templates of the number the message will go out from.

Public API callers and flow triggers may pass from (a phone number id, or the number itself) to choose which number to send from; omitted, the default is used.