> For the full page index, fetch https://echonova.ai/llms.txt

# Connect WhatsApp

Import a WhatsApp Business number and connect it to an agent from the Channels tab, send it a first message, read the reply in the portal, and disconnect it when you are done.

With a WhatsApp number connected, anyone who messages that number on WhatsApp
is answered by your agent, in text, with the same persona, model, knowledge
and tools it has everywhere else. Each customer's messages become a
conversation you can read on the agent's **Conversations** tab. This page is
the import itself; have
[WhatsApp prerequisites](/docs/agents/whatsapp-prerequisites) done first,
because everything the dialog asks for comes from there.

## What the agent can do on WhatsApp

| Capability | Supported                                                                                                                 |
| ---------- | ------------------------------------------------------------------------------------------------------------------------- |
| Voice      | No. A WhatsApp call to the number is not answered                                                                         |
| Text       | Yes                                                                                                                       |
| Inbound    | Yes. Every text message sent to the number                                                                                |
| Outbound   | Replies only, as text. The agent does not start a conversation                                                            |
| Handoff    | No. The agent answers every message while the number is connected                                                         |
| Media      | No. An image, voice note, document, location, sticker or reaction is not answered and does not appear on the conversation |

## Prerequisites on the provider side

- A WhatsApp Business Account in your Meta Business account, with the
  number registered on it.
- A Facebook account that manages that business, ready to grant
  `whatsapp_business_management` and `whatsapp_business_messaging`.
- Until Meta approves EchoNova's app, that Facebook account needs a role on
  EchoNova's Meta app.

[WhatsApp prerequisites](/docs/agents/whatsapp-prerequisites) covers each of
these, and every message the import can end with.

## Connect

### Step 1: Open the agent's Channels tab

Open the agent and choose the **Channels** tab. The page is headed
**Connected Channels**, with three groups underneath: **Voice & Telephony**,
**Messaging** and **Support & Service**. Press **Add Channel**.

An agent that has had no conversations also offers **Connect channel** on
its **Overview** tab, which opens the same tab.

### Step 2: Choose WhatsApp

The catalogue opens with the filters **All**, **Voice & Telephony**,
**Messaging** and **Support & Service**, and a search box. Choose the
**WhatsApp** card under **Messaging**. The dialog **Connect WhatsApp
Account** opens on its **Configure** tab, beside **Triggers** and
**How To Connect**.

**Triggers** has nothing to set: it reads **Incoming messages**, and
**Messages to this connected account are handled by the linked agent.**

### Step 3: Name the channel and choose an account

On the **Configure** tab:

- **Name**: used only when you pick an already-imported number under
  **Credential** and press **Connect**; the row then takes this name. A
  number you import here is named after the number itself.
- **Credential**: a dropdown of this workspace's already-imported WhatsApp
  numbers, or a way to import a new one. Next to it, **How To Connect**
  opens a short summary of the same steps.

If the workspace has no WhatsApp accounts yet, this reads **You have no
WhatsApp accounts. Import an account here.**, with **here** as the link. If
it already has some, the dropdown lists them with the placeholder
**WhatsApp account**, and a separate **Import another account** link sits
below it. A number already bound to this agent or to another one is listed
but disabled, marked **(on this agent)** or **(on another agent)**.

### Step 4: Import a number, or pick one you already have

Press **here** or **Import another account**. Meta's own window opens; sign
in and pick the WhatsApp Business Account, then approve. Back in EchoNova:

- **One number** granted: it connects to this agent straight away, and the
  **Channels** tab shows the toast **WhatsApp connected**.
- **Several numbers** granted: the **Choose what to connect** dialog opens.
  Tick every number to connect; a number already connected here can be
  ticked again to refresh it (**Connected here**), and a number connected
  in another workspace cannot be ticked (**In another workspace**). Press
  **Connect**, then read the result line next to each number, and press
  **Done**.

To reuse a number you already imported, pick it from the **Credential**
dropdown instead. Picking one fills in **Name** with the number's saved
name, if **Name** is still empty; edit it if you want a different label.
Press the dialog's **Connect** button to bind that number to this agent.

If the import ends with an error instead, the message and what to do about
it are in [WhatsApp prerequisites](/docs/agents/whatsapp-prerequisites).

### Step 5: Check the row

The number is listed under **Messaging**. The row shows the number as its
name (or the **Name** you typed, if you picked an already-imported number),
the caption **WhatsApp customer conversation channel**, the number's
saved name above the caption **Workspace**, **WhatsApp** above **Routing**,
and the chip **Active**. It is already bound to this agent; there is no
separate assign step.

Select the row to open the channel page. Its **Overview** tab shows
**Conversations**, **Messages**, **Unique users**, **Failed** and
**Avg. response time** for the number, and a card with **Workspace** (the
number's saved name), **Connected as** (who connected it) and
**Channel ID**. **Conversations** lists only this number's conversations.

During the last 7 days of the number's roughly 60-day access, the row and
the channel page show **Reconnect by <date>**; once it lapses, they show
**Token expired. Reconnect.** Reconnect the same way: press **Import
another account**, sign in again, and tick the same number, which shows as
**Connected here**.

Two things on the channel page do not change the channel today. The
**Live** and **Pause Channel** buttons, and the **Agent behavior** controls
under **Routing & Behavior**, leave the number answering exactly as the
agent's own tabs say it should; to stop the number, use **Disconnect** or
**Assign to another agent** from the row's menu. The **Test** button on the
channel page opens the menu with **Pause Channel** and **Disconnect**; to
test the number, send it a message from a phone, as the next section does.

## Get it right

Name the channel for the job the number does, not for the provider. The
name is the first thing on the row, and it is what your colleagues search
for when a customer writes in.

**Recommended**

```text
Support line, UAE
```

**Less effective**

```text
WhatsApp
```

## Send the first message

From your own phone, send the number a message, for example `Hi, is my order
41822 on its way?`.

What you see on the phone: your message gets its read marks and the typing
indicator appears while the agent composes; then the reply arrives as an
ordinary text message from the number. If the agent's persona greets and
asks for an order number, that is the reply you get.

What you see in the portal: on the agent's **Conversations** tab a new row
appears, with your WhatsApp profile name as the customer, **WhatsApp** as
the channel, and the chip **Open**. Open it and your message is on the
left, the agent's reply on the right, and **Total credits** in **Metadata**
shows what the exchange cost. The same conversation is on the channel
page's **Conversations** tab.

If no reply reaches the phone, go to **Troubleshooting** below.

## Provider limits that affect you

| Limit                                | Value                           | Effect                                                               |
| ------------------------------------ | ------------------------------- | -------------------------------------------------------------------- |
| Message types answered               | Text only                       | Anything else the customer sends gets no reply and is not recorded   |
| Reply shape                          | One text message per reply      | The agent never sends buttons, media or files                        |
| One number, one workspace, one agent | Enforced at connect             | A second connect of the same number is refused, or offered as a move |
| Conversation grouping                | 24 hours after the last message | The next message after that starts a new conversation row            |
| WhatsApp access                      | About 60 days                   | Reconnect from **Reconnect by <date>** before it lapses              |

[WhatsApp limits](/docs/agents/whatsapp-limits) has the full list.

## Disconnect

Open the row's menu on the **Channels** tab, or the **Test** menu on the
channel page, and choose **Disconnect**. The dialog **Disconnect channel?**
reads **This permanently deletes** the channel **and its saved credential.
Reconnecting later starts a brand new connection.** Confirm with
**Disconnect**; the toast reads **Channel disconnected**.

> [!WARNING]
> Disconnecting deletes the channel and the access saved with it, and
> closes every open conversation on the number. The conversations stay on
> the agent's **Conversations** tab, but the number stops answering at
> once, and connecting it again means importing it through Meta's sign-in
> again.

Disconnecting also stops EchoNova receiving the WhatsApp Business account's
messages once no other channel in EchoNova still uses that account.

To keep the number answering but as a different agent, use **Assign to
another agent** instead. Its dialog warns **Open conversations on this
channel will be closed. History stays with this agent.**; confirm with
**Assign**, and the toast reads **Assigned to** the agent you chose.

## Troubleshooting

### The agent never replies

Three causes, in the order to check them.

1. The number's access has expired. Check the row for **Token expired.
   Reconnect.** and reconnect it.
2. The workspace has no credits. The message is recorded on the
   conversation and gets no reply. Top up and send again.
3. The message was not text. A voice note, image or document is not
   answered. Send a text message.

### The connect ended with an error toast or dialog

Every message is listed with its next step on
[WhatsApp prerequisites](/docs/agents/whatsapp-prerequisites#what-each-connect-message-means).
The most common one after signing in is **We couldn't resolve that
WhatsApp phone number. Please try again.**; confirm the number is on a
WhatsApp Business Account your Facebook account manages, then sign in
again.

### Choose what to connect says "This choice expired. Start again."

More than 10 minutes passed since the sign-in, or the list was already
used. Press **Import another account** and sign in again.

### The number is already on another agent

Connecting it again from this agent ends with **Move this channel?**.
Confirm **Move** to bring it here, which closes its open conversations, or
open the other agent's **Channels** tab and use **Assign to another
agent**.

## FAQ

### Can customers call the number?

No. The agent answers text messages on WhatsApp. For calls, connect a
Twilio number under **Voice & Telephony**. The **WhatsApp** card's caption
reads **Voice and text messages**; the number answers text.

### Does the agent answer voice notes or photos?

No. A message that is not text is not answered and is not recorded on the
conversation. Write the persona so the agent asks for the details in text,
and tell customers the number is a text line.

### Does the agent send the greeting first?

No. On WhatsApp the customer always writes first, and the agent replies.
The **Greeting message** is not sent as a message of its own on the
number; the agent's first reply is its answer to the customer's first
message.

### Do working hours stop the number outside the window?

No. A connected number answers at any hour, and those turns are charged.
See [Working hours](/docs/agents/working-hours).

### How do I move the number to another agent?

Open the row's menu and choose **Assign to another agent**, pick the agent
and confirm **Assign**. Open conversations on the number are closed; the
next message opens a new one with the new agent.

## Related

- [WhatsApp prerequisites](/docs/agents/whatsapp-prerequisites): what to have ready, and every connect message explained
- [WhatsApp limits](/docs/agents/whatsapp-limits): what the agent can and cannot do on the number
- [Channels overview](/docs/agents/channels-overview): how channels and agents fit together
- [Human handoff](/docs/agents/human-handoff): what to write in the persona on a channel with no handoff
- [Write the persona](/docs/agents/persona): the prompt the number answers with
- [Find and read a conversation](/docs/agents/conversations): reading the first exchange
- [What a turn costs](/docs/agents/what-a-turn-costs): what each reply costs
