Threadline

Connecting Instagram

Threadline connects to Instagram DMs through Meta's Instagram Messaging API, using either API setup with Facebook login (the one most dashboards offer now) or API setup with Instagram login. It shares the same App Dashboard, webhook signature scheme, and one-time handshake as WhatsApp, so if you've already connected WhatsApp this will feel familiar.

Keep Meta's dashboard and your Threadline panel open in two tabs. You will copy values back and forth.

In plain words

What this is. Connecting your Instagram professional account to Threadline, so direct messages (DMs) arrive in your Inbox and the AI can answer them.

Why it takes several steps. Instagram belongs to Meta. As with WhatsApp, most of the work is done once in Meta's dashboard and on your phone.

What you will end up with. Three or four values copied from Meta into Threadline (your Instagram account ID, a Facebook Page ID, an access token and the app secret), and two values copied from Threadline into Meta.

One thing to know first. Threadline can receive pictures on Instagram but cannot send them. This is a limit of Instagram, explained at the end of this page.

For what a channel is and how to manage one afterwards, see Channels.

1. Create your Meta app and add the Instagram use case

Everything below happens inside a Meta developer app, so this comes first.

  • No Meta app yet? Follow Create your Meta app and, on the use cases step, tick Manage messaging & content on Instagram. You can tick WhatsApp and Messenger on the same app, so you only do this once.
  • Already have an app (for example from WhatsApp or Messenger)? Open its Dashboard, click Add use cases, and add Manage messaging & content on Instagram.

Then set up the use case:

  1. Open Use cases in the left menu and click Customize next to the Instagram use case.
  2. Choose API setup with Facebook login in its left menu.

Which setup will I see? Meta's newer dashboards show only API setup with Facebook login. Some apps also offer API setup with Instagram login, which gives an Instagram App ID and Instagram App Secret instead. Threadline works with both. This guide follows Facebook login, because that is what most accounts get now. An app can only have one of the two.

2. Link the Instagram account to a Facebook Page

With Facebook login, your Instagram account must be a professional (Business or Creator) account and be linked to a Facebook Page.

  1. In the Instagram app: Edit profile → Page, then connect or create a Facebook Page.
  2. Note the Page's name. You will need its Page ID and a token for it in the next step.

3. Add the permissions

In the use case's Permissions and features list, click Add next to each of these:

  • instagram_manage_messages
  • instagram_basic
  • pages_show_list
  • pages_read_engagement
  • pages_messaging
  • pages_manage_metadata (needed to subscribe your Page to the app in step 8)
  • business_management
  • Human Agent (optional, lets a person reply for up to 7 days)

If a permission is missing from the list, search for it in Permissions and features and click Add. In the Graph API Explorer, tick the same permissions before you generate the token.

4. Collect your values

You need four values for Threadline:

Value Where to find it
Facebook Page ID The Page's About section, or Meta's Graph API Explorer.
Instagram account ID In the Graph API Explorer, choose your Page in User or Page and run me?fields=instagram_business_account (one ? only). The number inside is the Instagram account ID. It is not your @handle. If nothing is returned, that Page has no Instagram account linked: pick the other Page, or link it in the Instagram app.
Access token A Page access token for the same Page as the Page ID above. In the Graph API Explorer: choose your app, tick the permissions from step 3, click Generate Access Token, pick the Page and its Instagram account in the popup, then choose that Page in User or Page and copy the token. For one that does not expire, create a System User in Business Settings, give it your app and the Page, and generate a token with the permissions above. See Connecting WhatsApp's permanent-token step.
App secret App settings → Basic → App secret (the normal Meta app secret, see Create your Meta app).

If your app offers API setup with Instagram login instead, use its Instagram App Secret and an Instagram user token, and leave the Page ID empty in Threadline.

5. Allow access to messages on your phone

Meta silently blocks API messages until you allow them in the Instagram mobile app. The setting is not shown on the desktop website.

  1. Open Instagram on your phone and sign in to the connected account.
  2. Go to Settings → Messages and story replies → Message controls.
  3. Scroll to the bottom and turn ON Allow access to messages under "Connected Tools".

6. Create the channel in Threadline

  1. In Threadline, go to Channels → Connect a channel.
  2. Choose Instagram, give it a name, and enter:
    • Instagram account ID
    • Facebook Page ID (Facebook login only)
    • Access token
    • App secret
  3. Optionally choose an assistant now, or do it later from the channel's card.
  4. Save.

Threadline's channel page now shows a Callback URL and Verify token.

7. Register the webhook in Meta

  1. In your Meta app open Use cases → Customize for Instagram. In the left menu click Webhooks (if it is not there, click Add more to this use case, then Add next to Webhooks).
  2. Choose the Instagram object on the Webhooks page.
  3. Paste the Callback URL and Verify token from Threadline and click Verify and save.
  4. Under Webhook fields, switch Subscribe on for messages.

Verification fails? Same causes as WhatsApp: no HTTPS yet (the Callback URL must be your real public address, not localhost), a Verify token copied with extra spaces, or a Site URL mismatch. See Troubleshooting.

8. Subscribe your Page to the app

Do not skip this. Verifying the webhook is not enough. Meta only sends a Page's Instagram messages to your app after that Page has been subscribed to it.

  1. In your Meta app open Use cases → Customize for Engage with customers on Messenger from Meta, then Messenger API Settings.
  2. In 2. Generate access tokens, find your Page (connect it first if it is missing).
  3. Click Add Subscriptions next to the Page and tick messages. Save. The row should stop saying "No fields subscribed".

To check it worked, in the Graph API Explorer (Page token selected) run me/subscribed_apps. Your app must appear in the answer with messages in its subscribed fields.

Comment to DM: answer comments automatically

When someone comments a word on one of your posts and Reels, you can reply in public and send them a private message with the details. The private message opens a normal conversation that the AI and your team continue.

Set it up

  1. Add the comment permissions in your Meta app: instagram_business_manage_comments (Instagram login) or instagram_manage_comments and pages_read_engagement (Facebook login). Meta reviews these before they work for other people's accounts (App Review).
  2. In the Meta dashboard, subscribe the webhook to the comments field.
  3. In Automations, start from Comment keyword → DM. Choose the word to look for and, if you like, the posts it applies to.
  4. The flow has two steps: Reply to the comment (one of several versions is picked at random) and Send a private message to the commenter.

Rules from Meta that the steps follow

  • One private message per comment, within 7 days of it. After that the step stops with a clear reason.
  • The private message is plain text. Once the person answers, you can write back as usual within 24 hours of their answer.
  • Your own comments and replies are ignored, so an automation never answers itself.
  • Under one post, at most 500 automated replies an hour are sent, to stay inside Meta's limits.

Comments appear on the contact's page under Comments on your posts.

Story replies and mentions

A message that replies to one of your stories shows Replied to your story with a link to it. A story that mentions you arrives as Mentioned you in their story. Both can start an automation: choose Someone replies to your Instagram story or Someone mentions you in their Instagram story as the trigger.

9. Test it

Send a DM to your connected Instagram account from another Instagram account. It should appear in Threadline's Inbox within a few seconds and, if a knowledge base is linked, get an AI reply.

Testing in Development Mode? If you are testing before submitting for Meta App Review, you will likely hit these Meta security traps:

  • Roles and invites: The person sending the message must have a role on the app (App roles in the dashboard, for example Instagram Tester) and accept the invite on their phone (Settings → Apps and Websites → Tester Invites).
  • Message Requests Folder: If the test message lands in the bot's "Message Requests" folder, the webhook will NOT fire. You must log into the bot's Instagram account on a phone and tap "Accept" on the chat.
  • Development Mode Bug: Many developers report that Meta is currently bugged and completely refuses to send real Message webhooks in Development Mode, even for accepted testers. If webhooks still don't arrive after accepting the chat, the only fix is to submit the app for review and switch it to Live Mode.

If a message does not arrive, or the reply does not go out

Work down this list and stop at the first thing that is wrong:

  1. Is the Page subscribed? Step 8. Run me/subscribed_apps in the Explorer to confirm.
  2. Is the webhook verified, with messages subscribed for the Instagram object? Step 7.
  3. Is "Allow access to messages" on in the Instagram phone app (step 5)?
  4. Is your app unpublished? Then only people with a role on the app can message the account, and the sender must have accepted the invite. See the Development Mode notes above.
  5. Does the message sit in Message Requests? Open the account on a phone and accept it.
  6. Are the Page ID, token and Instagram account ID all from the same Page? A mix-up here is the most common cause of a reply that fails.
  7. Is the token expired? An error code 190 means so. A code 10 means a permission is missing (usually pages_messaging or instagram_manage_messages). Generate a new token with the permissions from step 3.
  8. Is the cron running? Replies are sent by background jobs. See Owner → Cron & Health.

Also remember Instagram only lets you reply within 24 hours of the customer's last message, and the customer must write first.

Known limitation: no outbound images. Threadline can receive and store an image a customer sends over Instagram, but it cannot send an image back on this channel — Meta's Instagram Messaging API has no confirmed raw-upload path for this credential type. If the AI would normally reply with an image (e.g. a product photo from the knowledge base), it automatically falls back to a text-only reply on Instagram instead of failing silently. This is a genuine platform gap, not a Threadline bug — WhatsApp and Messenger both support outbound images normally.

Other differences from WhatsApp

  WhatsApp Instagram
Pre-approved templates Yes (Meta review required) No — Threadline sends template replies as plain text on this channel instead.
Text message limit 4096 characters 1000 characters
Typing indicator Supported Not available on this channel.