Skip to main content
BeAIHelp center
Configure a bot

Connect a Facebook Page to Messenger

Authorise with Meta, select a Page and check messaging without technical configuration.

The Messenger skill lets the bot reply to messages on your Facebook Page. It is independent of WhatsApp: no phone number, WhatsApp Business account or technical token needs to be entered. The Page remains yours.

Connect your Page

  1. Open a bot you may edit and add the Messenger skill. For a new bot, use Save at the top right before connecting.
  2. In Messenger, choose Connect Messenger. Allow the login popup if your browser blocks it.
  3. Sign in with Meta and grant access to the Pages you manage.
  4. Return to BeAI and choose your Page. Existing connections are flagged; taking them over requires confirmation and the necessary permissions.
  5. Use Connect this Page. BeAI verifies access and completes the connection; Meta authorisation alone does not activate the bot.

When your administrator has enabled complete Page discovery, Connect Messenger also requests Page reading on this first authorization. This permission recovers an authorized Page that Facebook omits from its list. You select the intended Pages in Facebook; deleting integrations or entering technical settings is unnecessary. Working connections continue with their existing permissions.

Pages are displayed by name: you do not need to enter technical identifiers or secrets. If you reload before confirming, Resume Page selection restores the available selection during its validity period, only for the BeAI account that started the connection.

You can save the skill before connecting; without a configured Page, the bot does not receive Messenger conversations. Connection commands do not save other settings. They preserve drafts and do not show the floating Save reminder by themselves.

The panel follows the WhatsApp layout: the steps and connection button share one card. Once connected, this card shows the Page, its status and the verification, renewal and disconnect commands. Connection dates appear directly below. On a small screen, the buttons move below the connection details.

In the bot list, the Messenger logo next to the name indicates that the skill is enabled. Use the configuration panel to check separately that the Page is connected and its messages are being received.

Check the connection

Page connected confirms that setup is complete. Check connection verifies Page access; it does not send a test message to a customer or prove that a full conversation works.

Reception is shown separately. Until a Page event has been received, the panel asks you to confirm reception with a message. Send a new message to the Page from another Facebook account, then check conversations. Use Channel → Messenger to find these exchanges.

The last check and last received message are shown when available. An expired or revoked authorisation requires Renew authorisation; it does not delete existing conversations.

While Meta reviews the application, tests are limited to accounts authorised for that application. Public access depends on Meta approval of the Messenger permissions; a successful test connection does not confirm public availability.

Limits of this version

Text messages and reply buttons are supported. Send an attachment directly in Messenger:

Format Processing Limit
JPG, PNG, WebP or GIF image Visual and text reading 10 MB, 40 million pixels
PDF Content reading, including scanned pages 10 MB, 100 pages
DOCX or ODT Text extraction; embedded images are not analysed 10 MB, 100,000 extracted characters
UTF-8 TXT, CSV or JSON Text reading 100,000 bytes
MP3, MP4/M4A, OGG, WAV, FLAC, AAC or WebM voice message Transcription then bot reply 10 MB, 3 minutes
MP4, WebM or MOV video Visual and audible speech analysis 10 MB, 1 minute

Each message may contain 5 files and 18 MB total. Unsupported, protected, oversized or expired attachments have a clear failure in history. The bot can ask for another file or a written explanation without inventing missing content.

History includes images, audio/video players, documents and downloads. Voice transcripts appear under the player. Files remain available when analysis fails after download. During human takeover, new files are archived without AI analysis or replies. Reading media in an active session uses the normal text-message tariff; completed usage is recorded even if the final reply is interrupted.

Incoming Messenger audio calls are prepared automatically when you use Connect this Page or Check connection. BeAI checks the Page’s eligibility with Meta, prepares call delivery and connects it to the bot’s voice. The user has no SIP number, server, token or network settings to enter. Earlier exchanges and attachments are not imported.

Incoming audio calls → Enabled confirms preparation. Call your Page in Messenger to verify a real conversation. Not available for this Page means Meta does not allow the feature for this Page; messages remain connected. Unavailable, retry the connection check indicates unavailable setup or voice processing. BeAI does not initiate outbound Messenger calls or process call video.

Calls use the configured voice bot, shared tools, voice tariff and options. Recording follows the bot’s setting. They appear under Channel → Messenger call, with history, summary and detected language after closure. The usual conversation, supervision and recording permissions apply. Facebook identifiers are not presented as phone numbers. The 24-hour text response window does not control admission of incoming calls.

The bot replies only within 24 hours of the sender’s last actual received message. Read receipts, delivery notifications and bot echoes do not extend this period. No automatic response is sent outside that window.

Duplicate messages do not generate another response. If sending has an ambiguous result, its status remains uncertain and it is not automatically retried. A message accepted by Meta is not guaranteed to have been read by its recipient.

Instructions added by an administrator in supervision apply to the next Messenger user message. They do not trigger an unsolicited message to the recipient.

If connection does not complete

  • Connection unavailable: your administrator needs to complete the platform’s Messenger activation. No technical settings are required from you.
  • Authorisation refused or cancelled: restart Connect Messenger and check the permissions requested.
  • No Page available: check that your Meta account may manage the Page and messaging permissions were granted. Some Pages may already be linked to another bot.
  • Selection expired: restart connection; the Page is not active until its connection is confirmed.
  • Facebook does not confirm the connection: retry Connect this Page in the same window. Selection remains available for its original 15-minute lifetime; a temporary failure does not require another login. BeAI checks whether Facebook already accepted the connection before repeating the operation.
  • Expired or revoked access: renew authorisation. Confirmation is disabled when selection can no longer be used. Settings and history are retained.

Change or disconnect the Page

Use Disconnect Page, then confirm. This removes the bot’s connection and the BeAI application’s subscription; it does not delete the Page or other connected applications. Recorded conversations remain available. To choose a different Page, disconnect the current Page first, then connect again.

The console and public API enforce the same bot-editing permissions and organisation scope. Under /api/v1/bots/{id}/skills/messenger, /onboarding, /onboarding/start, /onboarding/discover, /onboarding/complete, /refresh and /disconnect use the same validation. Meta secrets are managed by the server.

If you remove the application in Meta or request deletion of your Meta connection data, BeAI removes the permissions and Page selections associated with that Meta account. The bot stops responding through that connection. Your BeAI account and the company's conversation history remain available; reconnect the Page to resume Messenger. Contact your administrator for a request to delete all company data.

Message presentation and contact identity

Replies are adapted to Messenger clients: short paragraphs, bullet lists and visible links. Markdown emphasis and heading markers are removed. Long replies are split at paragraph, line or word boundaries within Meta’s message limit.

BeAI retrieves the Page-scoped contact’s first and last name when Meta permits it. The name appears in live sessions, conversation details and the API from_name field. If unavailable, Messenger remains the fallback; technical session IDs are never displayed as phone numbers.

Platform administrators see compact tool names and statuses in the system history. Select the information button for retained arguments, results and duration. These entries are never sent to the contact; credentials are redacted.

Inactivity reminders and session closure

WhatsApp, Messenger and Website chat share the platform-admin conversation-closure settings: reminder enablement, inactivity before reminder and closure after reminder. The API keeps its historical section: PATCH /api/v1/system-settings/whatsapp with reminder_enabled, inactivity_reminder_minutes and close_after_reminder_minutes.

A contact reply cancels the current reminder and restarts the inactivity period, including when it arrives while the closure notice is being sent. With reminders disabled, closure occurs after the sum of both delays. Reminders and closure notices use no AI and are not billed. They do not interrupt queued messages or active generation. No reminder is sent after Meta’s 24-hour reply window. Ambiguous sends are not automatically retried. A message after closure starts a new session. Shared timeouts never reactivate a conversation taken over by a person.

Facebook authorization duration

BeAI already obtains a long-lived Page token. It may have no technical expiry while Meta still imposes a data-access expiry. Meta access valid until shows the earliest known deadline, not a guarantee of permanent access.

A daily health check observes current authorization and updates any deadline Meta has extended; it cannot renew Facebook consent. A warning appears within 14 days of expiry, also exposed as connection.renewal_required. Use Renew authorization, authorize Facebook and confirm the same Page. Check connection and POST /api/v1/bots/{id}/skills/messenger/refresh perform an immediate check.

Meta can revoke access earlier if Page rights or application permissions are removed. Temporary Meta failures ask for another check and do not by themselves disable a valid connection.

Reactions, read receipts and typing

Reactions received from Meta appear below the relevant stored message in conversation history and monitoring. Changes and removals update their display. During an active AI session, contact reactions, replacements and removals are passed to the bot immediately with their specific target message. The bot interprets the feedback in context; any AI processing uses normal pricing. This resets inactivity without extending Meta’s 24-hour reply window. Closed or human-controlled sessions keep the reaction in history without AI processing or charges. Connecting does not import earlier reactions.

While handling an incoming message, BeAI asks Messenger to mark it as read and show the typing indicator. Display depends on Meta and the Messenger client; unavailable indicators do not block the reply.

Human takeover

An automatic Page greeting sent before BeAI’s first response is preserved without stopping the AI. Meta does not distinguish that greeting from a human intervention. An external message after BeAI has responded triggers human takeover.

A Page message sent outside BeAI ends the AI session with the Human takeover reason. Its text appears as a Page team message. Meta does not always identify the individual operator; BeAI does not invent their name.

Subsequent incoming and outgoing messages remain in the same history. AI replies, tools and inactivity reminders stay disabled during human takeover. Configure Inactivity before returning to the bot in the shared Chat human handover skill: 1–10,080 minutes, 60 minutes by default. Each team or contact message during takeover extends the deadline. The next incoming message after inactivity opens a new AI session; the old one stays closed. Reactions alone never reopen a closed session. Meta’s 24-hour reply window is a separate limit. Configuration changes apply at the next activity. A reply already submitted to Meta when takeover arrives may still be delivered and is recorded.

To let the bot request a colleague in BeAI, add Chat human handover. Its searchable colleague tags, instructions and inactivity settings apply to Messenger, WhatsApp and Website chat; no duplicate handover fields remain in the Messenger channel. Requests use the shared inbox and browser notifications. The AI pauses immediately and sends a waiting message. Notifications repeat every 15 seconds until a colleague claims the request or the configured waiting timeout expires; an apology then announces the bot’s return.

Users permitted to edit the bot can choose Reactivate AI on the next message in conversation details. Nothing is sent; the next genuine inbound opens a new AI session. The previous session stays closed.

GET /api/v1/conversations/{id} exposes the same history: external Page messages have role: operator; reactions are reactions: [{"emoji":"👍","actor":"contact"}]; channel_metadata.messenger.closed_reason is human_takeover. POST /api/v1/conversations/{id}/messenger/resume performs the same reactivation with identical editing permissions and tenant scope. Text exports include visible reactions.

Attachments are available in GET /api/v1/conversations/{id}, under messages[].attachments (available, metadata.status, metadata.error, metadata.audio_transcript or metadata.content_text). download_url uses GET /api/v1/conversations/attachments/{id}?download=1, with your API key and the same rights as the GUI history. Unavailable or inaccessible files return 404. Temporary Meta URLs are never exposed.

Use GET/PATCH /api/v1/bots/{id}/skills/chat-human-takeover for the shared setting. The former configuration field under /api/v1/bots/{id}/skills/messenger remains a deprecated compatibility alias for existing clients:

{"inactivity_timeout_minutes": 60}

Bot editing permissions apply; out-of-range values are rejected. History also exposes channel_metadata.messenger.human_last_activity_at, human_resume_at and ai_resume_reason: human_inactivity after automatic reactivation. Queued historical events remain passive rather than being replayed to the bot.

Tool details and completed-session reports

Platform administrators see the same compact tool history on calls, WhatsApp and Messenger. Select the i button for retained arguments, results and duration. Credentials are redacted. Technical messages remain platform-admin only in the GUI, API and exports. Historical records are reconstructed from retained data without executing tools again; unavailable details are explicitly identified.

After a Messenger AI session closes, BeAI produces its summary, detected language and sentiment, including media that was actually read. The summary uses the organisation’s language and is available in the conversation detail and summary, language, sentiment on GET /api/v1/conversations/{id}. Analysis may take a few minutes. Pending or failed analysis is shown; failures keep the original history and receive limited automatic retries. Analysis sends no messages. Incomplete historical sessions are repaired without retrospective customer charges. For human takeover, the report ends at AI-session closure; subsequent human exchanges remain in the history.

The public API uses the same automatic setup: POST /api/v1/bots/{id}/skills/messenger/onboarding/complete and POST /api/v1/bots/{id}/skills/messenger/refresh. Connection status exposes calling_status (enabled, ineligible, unavailable, disabled or unknown) and calling_checked_at. Calls are conversations with channel: messenger_call in the same /api/v1/conversations and /api/v1/runtime/conversations operations as other calls. Voice credentials remain private.

Reconnect or transfer an existing Page

Existing connections stay visible in the Page picker. A transfer from another BeAI bot requires permission to edit both bots and explicit confirmation; the old bot stops only after Meta verification and atomic reassignment. Histories are preserved. Another app subscription triggers a warning but is never deleted automatically. Connecting does not change Meta's default conversation routing; check routing in Meta to avoid replies from multiple apps.

If a Page is missing, use Review authorized Pages in Facebook, choose Edit previous settings if offered and authorize the desired Page with messaging rights. BeAI cannot add a Page that Meta does not return. Pages without messaging rights remain visible but disabled. An unverified subscription state is shown as unknown and is checked before activation.

The API exposes connection_status, subscriptions_verified, other_application_connected, takeover_required and takeover_token. Confirm with confirm_takeover: true and that fingerprint in /onboarding/complete. A changed connection requires fresh confirmation; a temporary failure keeps the selection until its existing expiry.

Repair Page discovery

If a Page is missing, use Repair Page discovery in the Page picker. BeAI checks the current authorization again and recovers explicitly authorized Pages missing from Meta’s usual list. An empty discovery keeps its encrypted grant for 15 minutes. Repairing does not extend expiry, connect a Page or remove other integrations. If the Page still does not appear, use Review authorized Pages in Facebook and Edit previous settings if offered. Facebook permissions cannot be granted by BeAI.

The equivalent API command is POST /api/v1/bots/{id}/skills/messenger/onboarding/recheck:

{"onboarding_token": "selection-returned-by-discover"}

It returns data.signup, data.connection and data.pending, with refreshed Pages and connection warnings. Only the initiating user who still has bot editing permissions may repair. Expired or revoked authorization requires a new Facebook connection. Use onboarding/complete afterwards to confirm a Page with the same GUI/API checks.

If Meta requires an additional Page reading permission, BeAI explains it in the picker. Repair Page discovery then opens Facebook to request that permission and search again. Authorize the intended Page without deleting integrations or entering tokens. Meta app access/review still applies; working Messenger connections do not require the additional permission.

For the API, connection.last_error: page_discovery_permission means this extra consent is needed. Start again with POST /api/v1/bots/{id}/skills/messenger/onboarding/start and {"repair_pages": true}, follow authorization_url, then use discover and complete. When complete discovery is configured on the server, normal start calls request the same Page reading consent even without this field. Otherwise, the original three messaging permissions are used. Facebook consent cannot be bypassed.

Documentation updated with the application