ChatPilot
Getting started

Instagram and Facebook Messenger

Bring your Page's Messenger messages, Instagram DMs and comments on your posts into the inbox through Meta's official API.

Customers who write to your business on Instagram or Facebook: ChatPilot brings those messages into the inbox next to your other chats, for a Facebook Page and the Instagram professional account (business or creator) linked to it. It goes only through Meta's official API: no personal accounts, no unofficial access.

  • Messenger: messages to your Page.
  • Instagram: direct messages, replies to your stories and stories that mention you.
  • Comments on your Page's and your Instagram posts: one chat per post, a message per comment. Your answer there is a public reply under the comment it answers, unless you choose to answer privately (below).
  • Each person and each post is a chat of its own, switched off until you switch it on. Replies go out the same way as everywhere: as a draft you approve, or by auto-answer in a chat where you switched it on.

The 24-hour window

Meta lets a business answer a message within 24 hours of the person's last message. After that ChatPilot doesn't send and says why; once the person writes again, you can answer again. If Meta approved the Human Agent permission for your app, you can switch on Answer up to 7 days: answers then go out up to 7 days after their last message, marked as written by a person (only use it for answers you write or approve yourself).

Answer a comment privately

Under the reply box of a post's chat, answer says how answers there go out: publicly under the comment (the default) or privately in a message. Privately, your answer goes to the commenter's Messenger or Instagram inbox instead of under the post; it shows in the post's chat as [answered privately] and in the person's own chat, where their answer arrives. The choice is kept per post and holds for auto-answer there too.

Meta allows one private reply per comment, and only within 7 days of the comment. ChatPilot checks both before sending and says why when it can't; answer publicly then, or carry on in the person's chat once they write back.

Set it up

It needs the panel at its own HTTPS address, because Meta delivers the messages there: a server of your own or the hosted ChatPilot. On a panel that is only on your computer, the card warns you.

  1. At developers.facebook.com, make a Meta app for your business and add Messenger and Instagram to it. Link your Instagram professional account to your Facebook Page (in the Page's settings).
  2. Copy the Page ID (your Page → About → Page transparency).
  3. In Business Settings → System users, make a token for the Page with the permissions pages_messaging, instagram_manage_messages, pages_manage_engagement and instagram_manage_comments: the Page access token.
  4. Copy the App secret (App settings → Basic).
  5. In the panel, open Settings → Instagram & Messenger, press Set up, paste the three, choose what to bring in (Messenger, Instagram, comments) and press Check & connect. ChatPilot checks them with Meta and keeps the token and secret in the keychain, never in a file.
  6. The card then shows the Callback URL and the Verify token. In the Meta app, under Messenger → Settings and Instagram → Settings, enter both under Webhooks, press Verify and save, then subscribe: the Page to messages, message_echoes, messaging_postbacks, message_reactions and feed; Instagram to messages and comments.

Until Meta has reviewed your app, only people with a role in the app (you, testers) reach it; for everyone else, ask for App Review of the permissions above in the Meta app.

Change replaces the token or the app secret (leave a field empty to keep the stored one) and what to bring in; Remove disconnects and forgets the token and secret, the chats stay. (A server set up by hand can have it in its config file instead: The config file.)

ChatPilot reads only deliveries signed with your app secret. Its chats start switched off like any other: Choose which chats ChatPilot may read.

Checked against ChatPilot 0.1.0b5. Report a problem with this page