Skip to main content

Integrating Messenger and Instagram

This article walks you through every step, from installing the Messenger and Instagram integration to publishing your first flow, and explains the five different ways a customer can open a conversation.

Overview

Connecting your Facebook Page and Instagram account to charles lets customers start a conversation with you on Messenger or Instagram, and lets your flows and AI agents answer them. The same integration covers both channels, so you set it up once.
​

Before you begin

Make sure you have the following ready before you start:

  • ✅ Admin rights to the Facebook Page you want to connect

  • ✅ Your Instagram account already linked to that Page in Meta Business Suite (only if you want Instagram too)

  • ✅ An idea of how customers should start a conversation, so you know which entry points to build


Step 1 — Check your Page access

Facebook has replaced the old Admin, Editor and Moderator roles with access levels. The level you need is Full control. Where you check it depends on how your Page is set up.

If your Page is in a business portfolio

Go to business.facebook.com/settings. Select the portfolio that owns the Page, click Pages under Accounts, select your Page, then click Assign people. Full control next to your name is the admin equivalent.

If your Page is standalone

Open the Page, then go to Settings & privacy > Settings > Page setup > Page access. Look under People with Facebook access. Your name with Full control means you are an admin. A name under People with task access can post and reply but cannot authorise integrations.

💡 Important: If the Page does not appear in the list at all, you have no access to it — not partial access. Ask a current admin to add you. Being an admin of the business portfolio does not automatically give you Full control of every Page inside it.


Step 2 — Install the integration

How to do it

  1. Open charles and go to Integrations > Marketplace.

  2. Find Facebook Messenger & Instagram and click Install.

  3. Click Continue with Facebook.

💡 Important: The screen that follows is where most installations go wrong. Read Step 3 before clicking through it.


Step 3 — Choose which Page to connect

Facebook asks which Pages charles may access. Two things need to be right on this screen.

How to do it

  1. Select Opt in to current Pages only — not "all current and future Pages".

  2. Leave exactly one Page selected. Facebook often pre-selects every Page you have access to, so deselect the others by hand.

  3. Click Continue, then grant the Instagram permission if the Page has a linked account.

⚠️ Warning: Connecting more than one Page at a time is not supported, and the installation will fail. If the Page has a linked Instagram account, the same one-account-only rule applies on the permission screen that follows.


Step 4 — Choose how conversations start

There are five ways a customer can open a conversation. Each one is its own flow in charles, so build only the ones you need.

The last column is the one that shapes how you build. Some entry points tell you what the customer wants before they have typed anything, because they tapped a labelled option or used a keyword. Others tell you nothing. Where the intent is already known, your first message should act on it rather than ask again.

Entry point

Channel

Do you know their intent upfront?

Get Started button

Messenger

No

Persistent menu item

Messenger

Yes

Ice breakers

Instagram

Yes

Post comment

Instagram and Facebook

Yes, through the keyword

Story mention

Instagram

Yes

Get Started button (Messenger)

Set the trigger type to Get Started button. The welcome message shows before the customer taps anything and has a limit of 160 characters.

You can add an optional persistent menu below it. Each menu item becomes its own outlet in the flow, so you can send people down different paths.

  • Only one flow per Facebook Page can use this trigger.

  • Facebook only shows the persistent menu once a Get Started button is set.

In charles:


In Messenger:


Ice breakers (Instagram)

Set the trigger type to Instagram Ice Breakers. Each ice breaker you add becomes its own outlet.

Unlike Messenger, ice breakers are visible before the customer sends anything, so the tap already tells you what they are looking for.

In charles:

On Instagram:


Post comment (Instagram and Facebook)

This trigger fires when someone comments on one of your posts using a keyword you have chosen, and replies to them by direct message. It works on both channels.

Two fields to set

Field

Description

Event/Source

The post being watched, identified by its post ID

Any of these keywords

The comment must contain at least one of these. Emoji work as keywords

💡 Important: The trigger only listens to the posts you point it at. When you publish a new post you need to add its post ID, or build a separate flow for it. Until you do, comments on that newer post will not trigger anything.

💡 Pro tip: If your reply contains a discount code, remember that anyone who comments the keyword will receive it. Use trigger conditions to limit who qualifies if the offer is capped.

In charles:


Story mention (Instagram)

This trigger fires when someone mentions your Instagram account in their own story. There is no Facebook equivalent, and there is no keyword filter, so every mention triggers it.

Because every mention triggers it, think about who should receive the reply before you switch it on. Trigger conditions filter on what you already know about the contact — such as a tag, a subscription status or any contact attribute — so you can limit the reply to an audience you have chosen.

💡 Important: Trigger conditions cannot read the mention itself, so they cannot tell praise apart from a complaint. If that distinction matters, send the mention to an agent or to an AI stage that reads the message and decides what to do, rather than replying to everyone with the same reward.

In charles:

💡 Pro tip: Post comment and story mention both send a direct message off the back of public engagement, so the person may never have messaged you before. Write that copy as a first contact rather than a reply in an ongoing conversation.


Step 5 — Design your flows

These tips apply to ice breakers and persistent menus, where a single trigger has several outlets.

Send each outlet somewhere different.


If every ice breaker or menu item leads to the same message, the information from the tap is lost, and your greeting ends up asking a question the customer has already answered. Either give each outlet its own path, or set a variable per outlet before they merge.
​

Let the Get Started button be the exception.

That is the one entry point that tells you nothing about intent, so it is the right place to ask what the customer is looking for.

Do not rely on "Save user input in" to record the tap.

It stores the reply that comes after your greeting, not which ice breaker or menu item was used.

Keep your wording the same across channels where you can.

Customers who see you on both channels get a consistent experience, and your reporting stays comparable — an option labelled the same way on Instagram and Messenger can be read as one number rather than two. It is a preference rather than a rule, so break it when you are deliberately testing two versions.


Step 6 — Test your setup

Preview flow is useful while building, but always test the finished setup from a real account on both channels before going live.
​

What to test

  • ✅ Every ice breaker and menu item, checking each one leads where you intended

  • ✅ The Get Started button on Messenger, from an account that has never messaged the Page

  • ✅ A comment containing your keyword on the live post, checking the direct message arrives

  • ✅ A story mention from a second account, checking the reply arrives

  • ✅ A comment without your keyword, to confirm it does not trigger anything

What the customer sees first

Channel

First contact

Messenger

The Get Started button only. The persistent menu appears once the conversation is open.

Instagram

Ice breakers straight away.

💡 Note: That difference is how Meta works, not a problem with your setup. It is also why the Messenger greeting needs to ask what the customer wants while Instagram does not.


Step 7 — Publish

A flow marked Draft will not run at all, and the editor shows "You have unpublished changes" until you publish. Nothing you have tested in the editor is live to customers before that point.

💡 Recommendation: If you set up several entry points, check each flow separately. It is easy to publish the last flow you worked on and leave the others waiting in draft.


🛠 Troubleshooting

Problem

Likely cause

The installation failed

More than one Facebook Page was selected. Start again and leave exactly one.

My Page is not in the list

Your account has no access to it. Ask a current admin to add you with Full control.

I can reply to messages but cannot install

You have task access rather than Full control. Task access cannot authorise integrations.

The persistent menu does not appear

Either no Get Started button is set, or the conversation has not been opened yet.

A comment does not trigger anything

Check the flow is published, the trigger points at the right post, and the comment contains one of your keywords.

Instagram is not connected

The Instagram account is not linked to the Page in Meta Business Suite, or the permission was not granted during install.


You're all set! 🎉

Your Facebook Page and Instagram account are now connected to charles. Here is a quick recap of what you have completed:

  1. ✅ Page access confirmed

  2. ✅ Integration installed with a single Page connected

  3. ✅ Entry points chosen and built

  4. ✅ Outlets wired to their own paths

  5. ✅ Setup tested on both channels from a real account

  6. ✅ Every flow published

To keep improving your setup, monitor which entry points customers actually use and adjust your flows from there.

Did this answer your question?