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

# Messenger

Import a Facebook Page and connect it to an agent so it answers the messages people send the Page on Messenger.

Connecting Messenger puts an agent behind a Facebook Page's inbox. Anyone who
messages the Page on Messenger gets the agent's reply, every exchange is
recorded as a conversation on the agent, and each reply is charged as a text
turn. One Page is one connection, and one connection answers for one agent.

## What the agent can do on Messenger

| Capability | Supported                                                                                                         |
| ---------- | ----------------------------------------------------------------------------------------------------------------- |
| Voice      | No                                                                                                                |
| Text       | Yes                                                                                                               |
| Inbound    | Yes. A text message, or the payload of a quick reply or button the Page offers, arrives as the person's message   |
| Outbound   | Yes, as a reply to a message the person sent. The agent never starts a conversation                               |
| Handoff    | No                                                                                                                |
| Media      | No. A message that carries only an image, audio, a sticker or a file gets no reply, and the agent sends text only |

A reply is always plain text. Each person who messages the Page gets one
conversation, and the conversation keeps going while the gap between messages
stays under 24 hours; the next message after a longer silence starts a new one.
In **Conversations** the person appears as **Visitor** followed by `#` and the
last four characters of their Messenger id. The Page's own replies are not
treated as incoming messages, and a message Meta delivers twice is answered once.

## Prerequisites on the provider side

- A Facebook Page. The agent answers that Page's Messenger inbox.
- A Facebook account that manages the Page, ready to grant three
  permissions: to send and receive the Page's messages (`pages_messaging`),
  to manage the Page's settings (`pages_manage_metadata`) and to list the
  Pages you manage (`pages_show_list`).
- Until Meta approves EchoNova's app, that Facebook account needs a role on
  EchoNova's Meta app.
- A Page belongs to one EchoNova workspace at a time. If it is already
  connected in another workspace, connecting fails with **That page is
  already connected to a different EchoNova workspace.**

## Connect

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

Open the agent and choose **Channels**. The tab is headed **Connected
Channels**. Press **Add Channel**, pick **Messaging** if you want a shorter
list, and choose the **Messenger** card. The dialog **Connect Messenger
Account** opens on its **Configure** tab, beside **Triggers** and **How To
Connect**.

The **Triggers** tab has nothing to set. It reads **Incoming messages**:
**Messages to this connected account are handled by the linked agent.**

### Step 2: Name the connection and pick a Page

On the **Configure** tab:

- **Name**: used only when you pick an already-imported Page under
  **Credential** and press **Connect**; the row then takes this name. A Page
  you import here is named after the Page itself.
- **Credential**: a dropdown of this workspace's already-imported Facebook
  Pages, or a way to connect a new one.

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

### Step 3: Connect a Page

Press **here** or **Import another account**. Meta's own window opens; sign
in with the account that manages the Page and approve the three
permissions. Back in EchoNova:

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

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

If the connect ends with an error instead, the table below has the message
and what to do about it.

| Message                                                                          | What happened                                                                                                      | What to do                                                                                 |
| -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
| **Access was declined. No changes were made.**                                   | You declined the permissions on Meta                                                                               | Connect again and approve                                                                  |
| **The connection didn't complete. Please try again.**                            | Meta did not hand over a usable sign-in                                                                            | Connect again                                                                              |
| No message. You land on the **Agents** list with nothing connected               | More than 10 minutes passed, or the sign-in finished in a different browser from the one that started it           | Open the agent again and start from its **Channels** tab                                   |
| **We couldn't resolve that page. Please try again.**                             | Meta returned no Page for the account you signed in with                                                           | Sign in with an account that manages the Page                                              |
| **That page is already connected to a different EchoNova workspace.**            | The Page belongs to another workspace                                                                              | Disconnect it there first                                                                  |
| **We couldn't create the webhook. Check the app's permissions, then reconnect.** | The Page was found but Meta refused to send its messages to EchoNova, so nothing was saved                         | Sign in again with an account that is an admin of the Page and approve all permissions     |
| **Something went wrong connecting this channel. Please try again.**              | Meta did not hand over the Page's access at sign-in, or the connect failed for a reason with no message of its own | Connect again                                                                              |
| **This choice expired. Start again.**                                            | More than 10 minutes passed since signing in for several Pages, or that list was already used                      | Press **Import another account** and sign in again                                         |
| **Move this channel?**                                                           | The Page is already connected to another agent in this workspace                                                   | **Move** binds it here and closes its open conversations; **Cancel** leaves it where it is |

## Get it right

Pick which Page to connect by name in **Choose what to connect**, not by
order. A sign-in that grants several Pages lists every one you manage; tick
the Page you mean rather than the first one on the list.

**Recommended**

- Read every label in **Choose what to connect** and tick the exact Page.

**Less effective**

- Ticking the first Page in the list without checking its name, then
  finding the row answers for the wrong Page.

## Send the first message

Open Messenger and send the Page a message, for example "Do you deliver on
Fridays?". The agent replies in text, in the same Messenger thread, using the
**Personality** and **Greeting message** you set on the **Persona** tab. The
greeting is not sent on Messenger; the agent's first message is its answer.

In the portal, open the agent's **Conversations** tab: the exchange is listed
under the Messenger channel. The channel's own detail page, opened from its row
on the **Channels** tab, counts it under **Conversations** and **Messages** and
lists it on the **Conversations** section. Each reply is priced as a text turn;
see [What a turn costs](/docs/agents/what-a-turn-costs).

If the workspace has no credits left, the person's message is recorded in the
conversation and no reply is sent. If a reply cannot be produced, the person
receives "Sorry, I can't respond right now. Please try again shortly."

## Provider limits that affect you

| Limit                  | Value                                 | Effect                                                                    |
| ---------------------- | ------------------------------------- | ------------------------------------------------------------------------- |
| Pages per connection   | 1                                     | Connect each Page separately                                              |
| Workspaces per Page    | 1                                     | A Page connected elsewhere must be disconnected there first               |
| Agents per connection  | 1                                     | Use **Assign to another agent** to move it                                |
| Meta sign-in window    | 10 minutes                            | Finish the sign-in within that time, once, in the browser that started it |
| Choose what to connect | Valid 10 minutes, or until used once  | After that, sign in again                                                 |
| Page access            | Does not expire                       | Nothing to reconnect on a schedule                                        |
| Message content in     | Text, quick-reply and button payloads | Anything else is not answered                                             |
| Message content out    | Text                                  | The agent sends no images, buttons or attachments                         |
| Conversation gap       | 24 hours                              | A message after a longer silence opens a new conversation                 |

## Disconnect

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

> [!WARNING]
> Disconnecting closes the Page's open conversations, removes the connection
> and deletes the saved access. Reconnecting starts a new connection.
> The conversations already recorded stay on the agent.

Disconnecting also stops EchoNova receiving the Page's messages once no other
channel in EchoNova, such as an Instagram account linked to the same Page,
still uses it.

To keep the connection but stop this agent answering, choose **Assign to
another agent** from the row's menu instead. Open conversations are closed and
the next message goes to the agent you picked.

## Troubleshooting

### The agent never answers a message

Check, in this order:

- The row is on this agent's **Channels** tab. A connection with no agent
  drops every message it receives.
- The message has text. Images, audio, stickers and files alone are not
  answered.
- The workspace has credits. With none left, messages are recorded and no
  reply goes out.
- The message was sent by a person. The Page's own messages are ignored.

### The person got "Sorry, I can't respond right now. Please try again shortly."

The agent could not produce a reply for that turn. The message is kept in the
conversation; ask the person to send it again.

### The row is named after the wrong Page

Disconnect the row, then press **Import another account** and tick the exact
Page in **Choose what to connect**.

### Pause Channel does nothing

**Pause Channel** on the channel's detail page does not stop the channel
today. To stop the agent answering, disconnect the channel or assign it to
another agent.

## FAQ

### Does the agent send the greeting on Messenger?

No. **Greeting message** is spoken on voice conversations. On Messenger the
agent's first message is its answer to what the person wrote.

### Can the agent hand the conversation to a person?

No. Messenger has no handoff. Write the **Personality** so the agent tells the
person how to reach your team when it cannot help.

### Can one Page talk to two agents?

No. A Page is one connection, and a connection answers for one agent. Move it
with **Assign to another agent**.

### Does the Page's access ever expire?

No. Unlike WhatsApp, a Messenger Page's access does not expire, so there is
nothing to reconnect on a schedule.

### What does Test on the channel page do?

It opens the channel's action menu, with **Pause Channel** and **Disconnect**.
Test the channel by sending the Page a message from Messenger.

## Related

- [Test your agent](/docs/agents/test-your-agent): check the agent's answers before you point a Page at it
- [Persona](/docs/agents/persona): the **Personality** text the agent uses on every channel
- [How the prompt is assembled](/docs/agents/prompting-guide): what the agent reads on a text conversation
- [Conversations](/docs/agents/conversations): where Messenger conversations are listed and read
- [What a turn costs](/docs/agents/what-a-turn-costs): what each reply is charged
- [Agent status](/docs/agents/agent-status): archiving does not stop a connected channel
