Connect your Instagram account
Three values, a Page in the middle, and the one field we deliberately do not ask you for.
People who DM your Instagram professional account reach your bot.
Instagram messaging runs through a Facebook Page. That is the part that surprises most people: you do not connect an Instagram account directly, you connect the Page your Instagram professional account is linked to, and Meta delivers the DMs against that link.
Before you start
- A Facebook Page for your business.
- An Instagram professional account — a Business or Creator account, not a personal one.
- That Instagram account linked to the Page, in Meta Business Suite → Settings → Linked accounts. Without the link there is nothing to connect, and you will be told so at the point of saving rather than by silence afterwards.
- A Meta app with the Instagram product added (Create your Meta app and business portfolio).
What you are collecting
Three values.
| Value | Where it comes from |
|---|---|
| Page access token | A system user in your business portfolio |
| Page ID | Your Facebook Page → About → Page transparency |
| App secret | App settings → Basic |
There is no Instagram account ID to collect, and that is deliberate. A Page ID and an Instagram professional account ID are both plain numbers and look identical in a form. Filing a credential under the wrong one produces a connection that verifies, shows as connected, and receives nothing — because Meta addresses an Instagram webhook to the account, not to the Page. So we read the linked account off your Page while verifying, the same way we read the WhatsApp Business Account ID off a phone number. The safest field is the one that does not exist.
Get a Page access token
Use a system user token, not your own. A user token expires out from under you, usually on the day you have stopped thinking about it.
Business Settings → Users → System Users. Give the system user admin access to the Page, then generate a token with:
pages_messaging— sending and receiving Page messages.instagram_manage_messages— the Instagram half. A token without it verifies as a perfectly good Page token and then cannot touch a DM.
Point the webhook at us
Instagram → Webhooks → Edit callback URL in the Meta console. Configuration → Channels shows
the callback URL and verify token for your workspace — the same two values all three channels
use. Save them, then subscribe to the messages field.
Paste the three values
Configuration → Channels, on the Connect Instagram card. We check them against Meta before storing anything, so a bad paste is caught here rather than by the first person who gets no reply. They are stored encrypted, and the token is never shown again in full.
On save we also subscribe your Page to your app. That step is invisible in Meta's console and is the usual reason a connection that looks complete receives nothing (Webhooks: why messages arrive, and why they sometimes don't). If it fails, the connection still saves and the result says that inbound messages may not arrive.
There is no test-send button, and nothing is missing
Instagram only allows a message to somebody who has written to you first, so there is nothing to send a test to. Every attempt would be refused, and the button would only ever teach you that a working connection is broken.
Send your own profile a DM from a personal account instead. It appearing in the Inbox is the proof the connection receives; the bot's reply is the proof it sends. Do that before you put the account in front of a customer.
If you also want Messenger
You have already done most of it — the Page, the token and the app secret are the same three values. Connect your Facebook Page needs only its own webhook subscription and its own card.
Was this helpful?