Skip to main content
Connect your chatbot to a Facebook Page. The chatbot answers messages that people send to your Page in Messenger. Your team takes over by replying from Chat History in SiteGPT or from the Page inbox.

Before you start

  • The chatbot owner is on the Growth plan or above. See Plans and limits.
  • You have the Manager, Admin, or Super Admin role on the chatbot.
  • You are an admin of the Facebook Page.
  • You have a Meta developer account at developers.facebook.com, and access to the Meta app’s App settings > Basic page, where you copy the app secret.
  • Your chatbot is not in a HIPAA workspace. Integrations are not available there. See HIPAA.

Connect Messenger

You work in two places: SiteGPT and your Meta app. Keep both open. SiteGPT shows the callback URL for Meta only after you connect with a Page access token and the app secret of your Meta app. So you connect your Page and copy the token and the secret in Meta first, and add the webhook in Meta after that.
1

Create a Meta app

At developers.facebook.com, create a new app for your business. When Meta asks for a use case, select Engage with customers on Messenger from Meta.Meta adds the permissions that the use case needs, for example pages_messaging. You do not need to add other permissions for SiteGPT.
2

Open the Messenger settings of the use case

In the App Dashboard, select Dashboard in the menu on the left. Select the Messenger use case to customize it. Meta opens its Messenger API settings. You use three sections there: Configure webhooks, Generate access tokens, and Complete App Review.
3

Connect your Page

In Generate access tokens, click Connect. Log in to Facebook or click Continue. Select your Facebook Page and click Continue. Then click Save and Got it.
4

Copy the Page access token

In Generate access tokens, generate an access token for your Page. Copy the token.
5

Copy the app secret

In the same Meta app, go to App settings > Basic. Show the App secret and copy it. Use the app secret of the app that made the Page access token.
6

Open the Messenger card in SiteGPT

In SiteGPT, go to Advanced > Integrations > All Integrations. On the Messenger card, click Get Started.
7

Connect in SiteGPT

Paste the token into Access Token and the app secret into App secret. Click Connect.SiteGPT checks the token and the app secret with Facebook before it saves anything. If the check fails, SiteGPT shows why and connects nothing. See If connecting fails.After the check, SiteGPT shows a Callback URL and a Verify token, and the line “Webhook verification is on: only messages signed by Facebook are accepted.”
8

Add the callback URL in Meta

Back in your Meta app, go to Configure webhooks. Paste the Callback URL and the Verify token from SiteGPT into the fields with the same names. Then verify and save.
9

Add the subscriptions

In Generate access tokens, click Add Subscriptions for your Page. Select these webhook fields, then click Confirm:
  • messages
  • messaging_postbacks
  • message_echoes
message_echoes is required for replies from the Page inbox. Without it, the chatbot does not see replies that your team sends from the Page inbox, and it keeps answering.
A Meta app sends Messenger messages to one callback URL. Use a separate Meta app for each chatbot. If you add the callback URL of a second chatbot to the same app, messages go to the second chatbot.Add the callback URL in the same Meta app that made the Page access token and the app secret. SiteGPT checks each message with that app secret, and rejects messages that another app signed.

If connecting fails

Check that it works

  1. In Messenger, start a conversation with your Facebook Page. Use a Facebook account that has a role on your Meta app, for example your own admin account.
  2. Send a question. The chatbot replies with an answer from your content.

Make the chatbot answer everyone

Until Meta reviews your app, the chatbot can only reply to people who have a role on your Meta app (administrator, developer, or tester). You can test everything with these accounts. To let everyone on Messenger chat with the chatbot:
  1. Request the pages_messaging permission in Meta’s App Review. Start the request from the Complete App Review section of the use case, or go to Review > App Review in the menu on the left.
  2. When Meta approves it, publish the app. Select Publish in the menu on the left.
Before App Review and publishing, Meta asks for some app settings, for example an app icon, a privacy policy URL, and a data deletion URL. Meta decides what the review needs. See Meta’s Messenger Platform app review and Create an app for Messenger Platform.

Reply later than 24 hours (optional)

Meta accepts a normal reply only within its messaging window, which is 24 hours after the person’s last message in most cases. A person on your team can reply for up to 7 days with Meta’s Human Agent tag. Your Meta app needs Meta’s approval for Human Agent. Request it from Meta in App Review. If your team always replies within 24 hours, you do not need it. See Reply from the dashboard and Meta’s Send a message.

How it works in Messenger

The bot answers first

The chatbot answers each message from your content. Answers show quick replies for your follow-up suggestions, links, and escalation, and 👍 and 👎 feedback. If you have no follow-up suggestions, the quick replies show your conversation starters. When human support is on, answers that use your content show your Positive Feedback Prompt and Request Human Support Prompt quick replies instead of follow-up suggestions and conversation starters. The feedback quick replies do not show if you hide feedback buttons. When Meta verifies your callback URL, SiteGPT adds a Get Started button to your Page in Messenger. When a person taps it, the chatbot sends your welcome message with a Continue Conversation button. If you set new conversations to start in human mode, the chatbot does not answer. One exception: outside your working hours, with Your team answers later, the chatbot sends your away message one time. If the conversation starts with Get Started, the away message comes after your welcome message. See Set up human support. Messenger does not ask the question of Let the Visitor Choose. With that option, new conversations start with the AI.

Hand-off to your team

A conversation goes to your team when:
  • Someone on your team replies or takes over in Chat History. See Reply from the dashboard.
  • Someone on your team replies from the Page inbox (for example in Meta Business Suite). SiteGPT shows the reply in the conversation, and the chatbot stops replying there.
  • The person taps an escalation quick reply. These come from follow-up suggestions of the Escalate type, or from the Request Human Support Prompt when human support is on. See Follow-up suggestions.
  • The chatbot decides that the person needs a human. This needs human support to be on. See Set up human support.
When the person taps an escalation quick reply, the chatbot replies with its confirmation text: your Human Support Confirmation Message, or the Escalation Confirmation Message of the follow-up. With Follow Working Hours, or Let the Visitor Choose with Use your team’s hours, the message depends on your team’s hours instead. This applies to the quick reply and to the chatbot’s own hand-off. During the hours, the person gets your message for a visitor who asks for a person during your hours. Outside them, they get your away message, or with Let the Visitor Choose, your message for outside the hours. See Connect visitors to your team during your hours. While a human has the conversation, the chatbot does not reply. One exception: outside your working hours, with Your team answers later, the chatbot sends your away message one time. If the person already got your away message when they asked for a person, the chatbot does not send it again.

Reply from the dashboard

Replies that you send from Chat History go to the person in Messenger. They come from your Facebook Page. SiteGPT does not also email your reply to the person. When you reply, the conversation switches to human mode, and the chatbot stops answering it. A reply alone does not lock the conversation: the person can still choose Restart The conversation to get the chatbot back. To prevent that, select Take over the chat before you reply. See Reply to visitors and take over conversations. You can attach files to a reply from Chat History. See Send files on Messenger. Meta limits when a Page can reply:
  • Within 24 hours of the person’s last message: the reply is delivered. For a few cases, such as a conversation that started from a Click-to-Messenger ad, Meta allows longer.
  • After that, for up to 7 days: SiteGPT sends the reply again with Meta’s Human Agent tag. Meta delivers it only if your Meta app has Meta’s approval for Human Agent. See Reply later than 24 hours.
  • Later than that: the reply is not delivered.
Messenger takes up to 2,000 characters in a message. If your reply is longer, SiteGPT shortens it to 2,000 characters that end with ”…”. The transcript keeps your full reply. See Plans and limits. If the reply is not delivered, it stays in the transcript, and the dashboard shows one of these messages when you send it: When Facebook refused the reply, the conversation also marks it. See Messages that Facebook refuses. Replies that you send with API v2 or with the reply_to_conversation MCP tool also go to Messenger, the same way. See API conventions and MCP tools. You can still reply from the Page inbox. SiteGPT shows those replies in the conversation, and they stop the chatbot as well. This needs the message_echoes subscription.

Send files on Messenger

You can attach files to a reply from Chat History. See Send files with a reply. Messenger takes any file type, up to a size limit for each file. See Files in a team reply.
  • Your text goes first, then each file as its own message. A reply with only files sends only the files.
  • JPEG, PNG, and GIF photos show in the chat as photos. A photo over the photo limit arrives as a file instead. MP4 videos and MP3, M4A, and AAC audio play in the chat. Every other file arrives as a file, with its name.
  • The same time limits apply as for a text reply. See Reply from the dashboard.
  • If Facebook refuses your text or one file, SiteGPT does not send the files after it. The reply then shows a red line. See Messages that Facebook refuses.
  • The file name changes a little on Messenger. Each run of spaces and other characters that are not English letters, digits, dots, hyphens, or underscores becomes one hyphen. Hyphens and dots at the start and end of the name go away, and the name is cut to 100 characters. For example, price list.pdf arrives as price-list.pdf. If nothing is left before the extension, the file arrives as file with its extension, for example file.pdf.

Messages that Facebook refuses

Facebook can refuse a message that SiteGPT sends to Messenger: an AI answer, your away message, a hand-off message, or a reply from your team. The message then stays in the conversation in Chat History, and a red line under it says why. AI answers and replies from your team also show with a dashed outline: Messages that were delivered look as before. The chatbot does not use a refused answer as part of the conversation. It still sees the person’s messages. SiteGPT records refusals since October 28, 2026. Older messages show no line. The welcome message after Get Started shows no line either, also when Facebook refused it. Only the conversation view in Chat History shows this line. API v2, the MCP tools, and the iPhone app do not show it.

Getting the chatbot back

  • Select Release to AI in the dashboard. The chatbot answers the person’s next message in the same conversation.
  • Resolve the conversation in the dashboard. The person’s next message starts a new conversation.
  • The person can open the Messenger menu and choose Restart The conversation. The chatbot answers again. This menu item shows only for people who tapped Get Started.
  • Restart The conversation does not work if a team member selected Take over the chat in the SiteGPT dashboard, or if the conversation is resolved in SiteGPT.

Messages without text

The chatbot ignores messages that have no text, for example a photo or a sticker.

Webhook verification

SiteGPT checks that each message really comes from Facebook. It uses the app secret of your Meta app for this, and rejects messages that fail the check. New connections have this check on from the start, because you give the app secret when you connect. The Messenger dialog then shows “Webhook verification is on: only messages signed by Facebook are accepted.”

Turn on verification

When the check is not on Enforce, the Messenger dialog shows Webhook verification is off. This is the case for connections made before October 28, 2026, which did not ask for the app secret. It is also the case when someone selected Off or Log only in the Messenger row under Webhook verification.
1

Open the integration

In SiteGPT, go to Advanced > Integrations > All Integrations. On the Messenger card, click Manage.
2

Add the app secret

Under Webhook verification is off, paste the app secret of your Meta app into App secret. You find it in your Meta app under App settings > Basic. Use the app that made the Page access token.
3

Turn it on

Click Turn on verification. SiteGPT checks the app secret with Facebook first. If the check fails, SiteGPT shows why and changes nothing. The messages are the same as in If connecting fails. If the connection changed during the check, SiteGPT shows “The Messenger connection changed while it was being checked. Try again.”
Check that it works: SiteGPT shows “Webhook verification is on for” and the name of your Page. The dialog then shows “Webhook verification is on: only messages signed by Facebook are accepted.”

The Webhook verification section

The Webhook verification section below the cards on the Integrations page also has a Messenger row. It shows the current mode:
  • Off: SiteGPT does not check messages.
  • Log only: SiteGPT checks messages but still accepts messages that fail.
  • Enforce: SiteGPT rejects messages that fail the check.
You can also change the mode or the App secret there. Leave Verify token blank. SiteGPT does not check an app secret that you save in this row with Facebook. A wrong secret with Enforce makes the chatbot stop answering. To add the secret, use the Messenger dialog instead.

Disconnect Messenger

1

Open the integration

In SiteGPT, go to Advanced > Integrations > All Integrations. On the Messenger card, click Manage.
2

Disconnect

Click Disconnect.
To stop Meta from sending messages to SiteGPT, also remove the callback URL in your Meta app.

Troubleshooting

  • Check the Page access token in SiteGPT. To change it, disconnect and connect again with the new token and the app secret. You get a new Callback URL and Verify token. Add them to your Meta app again.
  • Check that the callback URL is in the same Meta app that made the Page access token. With webhook verification on, SiteGPT rejects messages from another app.
  • Check that the callback URL and verify token in Meta match the values in SiteGPT.
  • Check that the subscriptions are on for your Page.
  • Check that the chatbot owner’s subscription is active. See Billing.
Meta has not approved your app yet, or the app is not published. Until then, the chatbot replies only to people who have a role on your Meta app. Get pages_messaging approved in App Review and publish the app. See Make the chatbot answer everyone.
The reply stays in the transcript, and SiteGPT shows why it was not delivered. Most often, more than 24 hours passed since the person’s last message. See Reply from the dashboard for each message and what to do.
Facebook refused the message, and the person did not get it. The line says why. See Messages that Facebook refuses.
Turn on the message_echoes subscription. The chatbot uses it to see replies from the Page inbox.
The app secret in the Messenger row under Webhook verification is wrong, or the callback URL is in another Meta app. To get replies again while you fix it, select Off or Log only in that row and click Save. Then add the correct app secret in the Messenger dialog. See Turn on verification.