# Answer on WhatsApp, Facebook Messenger and Instagram

> Connect a WhatsApp Business number, a Facebook Page or an Instagram account so your intoCHAT agent answers messages there: plans, connect steps, the token option, human takeover, Meta's 24-hour rule and limits.

Your agent can answer people who write to your business on **WhatsApp**, **Facebook Messenger** and **Instagram Direct**, with the same knowledge, instructions and actions as in the widget. Each conversation appears on the agent's **Conversations** tab with a channel badge, and your team can pause the AI and reply from there.

> Channels use intoCHAT's Meta app. If the **Channels** card on the **Share** tab says **Meta app not configured**, the app isn't set up on this server yet and there is nothing to do on your side.

## What's supported

| | WhatsApp | Messenger | Instagram |
| --- | --- | --- | --- |
| What you connect | A WhatsApp Business number (WhatsApp Cloud API) | A Facebook Page | An Instagram professional account linked to a Facebook Page |
| How | Sign up with Meta (Embedded Signup) or a system user token | Log in with Facebook or a Page token | Log in with Facebook or a Page token |
| Longest single message | 4,096 characters | 2,000 characters | 1,000 characters |

- The agent writes **text**. It reads text, and also photos and PDF documents while [visitor attachments](/en/docs/appearance#visitor-attachments) are on for the agent. Longer replies are split into several messages at paragraph or sentence breaks, six at most.
- Links in replies are written out in full. Buttons and product cards from your actions are sent as "label: link" lines under the reply.
- Forms, the lead form, booking times, follow-up questions and source links can't be shown in a messaging app, so the agent doesn't offer them there. Contact details people type are still saved as leads, and [hand-off by email](/en/docs/handoff), server-side [API actions](/en/docs/api-actions), [procedures](/en/docs/procedures) and order lookups work as in the widget.
- [Live chat](/en/docs/live-chat) isn't used on channels. Your team takes over from the transcript instead; see "Human takeover" below.

## Plan

Channels are available on **Starter** and up: 3 per agent on Starter, 6 on Pro and 20 on Enterprise. A WhatsApp number, a Page and an Instagram account each count as one. Free agents can't connect channels, and after a downgrade to Free, connected channels stop answering until you upgrade again; they aren't deleted.

Each AI reply on a channel counts on your plan exactly as in the widget: **one message** with the default model, more with a [larger model](/en/docs/choose-a-model). The automatic notice for messages the agent can't read and your team's replies don't count. When your messages run out, people who write get the widget's own notice ("Message limit reached…"), at most once every 10 minutes; an agent at its [monthly cap](/en/docs/limits-and-access) sends "This chat has reached its limit for now". See [Plans and limits](/en/docs/plans-and-limits).

## Before you start

Open your agent, go to the **Share** tab and find the **Channels** card. Connecting and disconnecting a channel is for the account owner and admins, because it hands over a Meta access token. Everyone in the account sees which channels are connected. See [Team members and roles](/en/docs/team).

A number, Page or Instagram account can answer for one agent at a time. To move it, disconnect it from the first agent.

A [private agent](/en/docs/limits-and-access) doesn't answer on channels; after the first message, the channel in the card shows a note saying so.

## Connect WhatsApp

You need a Meta (Facebook) account that can manage your business, and a phone number that can receive an SMS or call for verification. A number in use in the WhatsApp or WhatsApp Business app must be removed from it first, unless Meta offers you to keep using the app with it.

1. In the **Channels** card, choose **WhatsApp** and **Sign up with Meta**.
2. Enter a 6-digit **Two-step verification PIN**. It becomes the number's two-step verification PIN. If the number already has one, enter that one.
3. Click **Connect WhatsApp**. Meta's window opens: sign in, choose or create your business portfolio, your WhatsApp Business Account and display name, add the number and verify it by SMS or call.
4. When the window closes, intoCHAT registers the number for the WhatsApp Cloud API and subscribes to its messages. The number appears in the card with its display name.

Send the number a WhatsApp message from your own phone to try it. Meta reviews new display names; until it approves yours, the number may show only as a phone number.

## Connect Messenger

You need to be an admin of the Facebook Page, or have full control of it in Meta Business Suite.

1. In the **Channels** card, choose **Messenger** and **Log in with Facebook**.
2. Click **Log in with Facebook**, and allow intoCHAT to manage messages for your Page. Select the Page if Meta asks which ones to share.
3. Your Pages are listed. Click **Connect** next to the one this agent should answer for.

intoCHAT stores the Page's access token, encrypted, and subscribes to the Page's messages. Write to the Page from another Facebook account to try it.

## Connect Instagram

Your Instagram account must be a **professional** account (business or creator) linked to a Facebook Page you manage.

1. In the Instagram app, open **Settings**, **Messages and story replies**, **Connected tools** and turn on **Allow access to messages**.
2. In the **Channels** card, choose **Instagram** and **Log in with Facebook**.
3. Click **Log in with Facebook** and allow access to your Page and its Instagram account.
4. Click **Connect** next to the Instagram account, listed under its Facebook Page.

Replies go out through the linked Page. A Page and its Instagram account can be connected to the same agent, each as its own channel.

## Connect with a token instead

If you can't use the sign-up or login windows, for example because your Meta business already has a system user, choose **Connect with a token**. You paste your own token into your own dashboard; intoCHAT checks it with Meta, stores it encrypted and never shows it again.

- **WhatsApp**: in Meta Business Suite, open **Settings**, **Users**, **System users**, and create or pick a system user that has your WhatsApp Business Account assigned. Generate a token for the intoCHAT app (its App ID is shown in the card) with the permissions `whatsapp_business_messaging` and `whatsapp_business_management`. Enter the **Phone number ID** and **WhatsApp Business Account ID** from WhatsApp Manager, **API setup**, and the token. Add the two-step PIN only to register a number that isn't on the Cloud API yet.
- **Messenger** and **Instagram**: enter your **Facebook Page ID** and a Page access token for the intoCHAT app with `pages_messaging` and `pages_manage_metadata` (for Instagram also `instagram_basic` and `instagram_manage_messages`). For Instagram, the account linked to that Page is connected.

The token must belong to the intoCHAT app, because Meta sends the messages to the app the token was made for. A system user's token doesn't expire; a token that expires or is revoked stops the channel, and the card says so.

## Human takeover

Open a WhatsApp, Messenger or Instagram conversation on the **Conversations** tab. Below the transcript:

- **Pause AI** stops the agent from answering this conversation. New messages are still saved, so you see them in the transcript, but get no AI reply. **Resume AI** hands it back.
- The **reply box** sends your message to the person through WhatsApp, Messenger or Instagram. It is saved in the transcript with your first name and the channel above it, for example "· team, WhatsApp", and it pauses the AI. Press **Ctrl+Enter** (or **⌘+Enter**) or click the send button.
- The AI **resumes by itself 24 hours** after the last pause or reply from your team, on the next message the person sends. The note under the transcript says when.

Pausing, resuming and replying are for everyone who may handle conversations: the owner, admins and editors. Viewers see the state only.

Conversation rows show a **WhatsApp**, **Messenger** or **Instagram** badge, with a pause icon while the AI is paused, and a **Channel** filter appears next to the other filters once an agent has a channel conversation. See [Conversations and stats](/en/docs/conversations-and-dashboard).

## Meta's 24-hour rule

Meta lets a business answer only within **24 hours** of the person's last message. intoCHAT follows it:

- The agent only ever answers a message someone sent. It never writes first and sends no marketing or template messages.
- Your team's replies from the transcript are possible only within 24 hours of the person's last message. After that, the reply box says so; you can answer once they write again.

## Limits

- **Text, photos and PDFs.** With [visitor attachments](/en/docs/appearance#visitor-attachments) on, photos (PNG, JPEG, WebP, GIF) and PDF documents up to 4 MB are read like files sent in the widget, with any caption as the message; they appear in the transcript and count like any message when the agent answers. Voice notes, videos, stickers, locations, story mentions, and photos or documents over 4 MB or of another type get a short, polite reply in the agent's language asking for text, photos or PDFs, at most once every 10 minutes per person. With visitor attachments off, photos and documents get that reply too, asking for text ("For now I can only read text messages…"). The transcript shows a placeholder such as "[image]".
- One person can send up to 60 messages per hour to one channel; further messages that hour are saved without a reply. Your agent's overall limits still apply.
- Messages are answered as they arrive, usually within a few seconds; a slow action or a [larger model](/en/docs/choose-a-model) can make it longer.
- The person's WhatsApp number and profile name become a [contact](/en/docs/contacts) (source "WhatsApp"); on Messenger and Instagram only the profile name, when Meta shares it. Nothing else about them is read.
- Disconnecting a channel deletes its token and stops the answers. Its conversations stay on the **Conversations** tab.
- Conversations on channels show `channel` as `whatsapp`, `messenger` or `instagram` in the [REST API](/en/docs/rest-api) and the [MCP server](/en/docs/mcp-server).

## For the platform owner: Meta app and environment

This section is for whoever runs the intoCHAT server, not for agent owners.

**Environment variables** (names only; never put the values in code):

| Variable | What it is |
| --- | --- |
| `META_APP_ID` | The Meta app's ID |
| `META_APP_SECRET` | The app secret: exchanges codes for tokens and checks every webhook's `X-Hub-Signature-256` |
| `META_WEBHOOK_VERIFY_TOKEN` | A random string you also enter as the webhook's verify token in the Meta app |
| `NEXT_PUBLIC_META_APP_ID` | The app ID for Facebook's JavaScript SDK in the dashboard (falls back to `META_APP_ID`) |
| `META_WA_CONFIG_ID` | The WhatsApp Embedded Signup configuration ID (Facebook Login for Business) |
| `META_LOGIN_CONFIG_ID` | The Facebook Login for Business configuration for Messenger and Instagram (General, user access token, with the Page and Instagram messaging permissions); without it, Messenger and Instagram connect with a token only |
| `META_CHANNELS_LAUNCHED` | `true` shows the channels to customers; until then only super admins see them, while the webhook already works |
| `TOKEN_ENCRYPTION_KEY` | Encrypts the stored tokens (falls back to `NEXTAUTH_SECRET`) |
| `CRON_SECRET` | Signs the server's internal chat turns (falls back to `NEXTAUTH_SECRET`) |

Without `META_APP_ID`, `META_APP_SECRET` and `META_WEBHOOK_VERIFY_TOKEN`, the card shows **Meta app not configured** and the webhook answers 404.

**Webhook**: set the callback URL to `https://<your domain>/api/meta/webhook` with the verify token above, and subscribe the fields **messages** for WhatsApp Business Account, **messages** and **messaging_postbacks** for Page, and **messages** for Instagram.

**Prerequisites at Meta** before customers can connect:

- **Business verification** of the business that owns the app.
- **App Review** for advanced access to `whatsapp_business_messaging`, `whatsapp_business_management`, `business_management`, `pages_show_list`, `pages_messaging`, `pages_manage_metadata`, `instagram_basic` and `instagram_manage_messages`, and **Tech Provider** onboarding for WhatsApp Embedded Signup.
- The app switched to **Live** mode. Until then, only people with a role on the app can connect channels and write to them.
