Home / Docs / Instagram Setup
Setup Guide · Instagram

Instagram DM Setup

A complete walkthrough to connect Instagram Direct Messages to MsgHub via the Meta Graph API. Customer DMs land in your unified inbox, the AI replies automatically, and you can broadcast back inside the 24-hour window.

~35 min Beginner-friendly No code required Last updated: 2026-05-14

Overview

Instagram is increasingly where Indian SMBs are getting first-touch customer enquiries — "Is this in stock?" / "What's the price?" / "Do you ship to Pune?". The Instagram Graph API lets a third-party platform like MsgHub read those DMs, send replies, and route them to your AI or your human agents.

This guide walks through six parts:

  1. Instagram side — switch to a Business account, connect it to a Facebook Page, allow messaging access.
  2. Meta App — add the Instagram product, fetch your Page ID and Instagram Business ID, generate an access token.
  3. MsgHub side — paste credentials.
  4. Webhook — point Meta at MsgHub.
  5. Testers & Live mode — invite testers while in Standard Access, prepare App Review for going public.
  6. First message — send a test DM end-to-end.

If you've already done the WhatsApp setup, you can reuse the same Meta App, the same App Secret, and the same System User. Just add the Instagram product to the existing app and skip the duplication.

Prerequisites

Part 1 · Set up the Instagram side

1

Switch your Instagram to a Business or Creator account

Open the Instagram mobile app and navigate to your profile:

  1. Tap the hamburger icon (top-right) → Settings and privacy.
  2. Scroll to Account type and toolsSwitch to professional account.
  3. Pick a category that describes your business (Retail, Service, Restaurant, etc.).
  4. Choose Business (recommended) or Creator. Business unlocks the messaging API; Creator is more for individual influencers.
  5. Complete the contact details (email, phone, address).

Switching does not lose followers, posts, comments or DM history. It's reversible at any time.

2

Connect your Instagram to a Facebook Page

This is the step most setups stumble on. Without a connected Page, the Graph API will refuse to expose messages.

  1. In Meta Business Suite (business.facebook.com) → SettingsBusiness assetsAccountsInstagram accounts.
  2. Click AddConnect your Instagram account.
  3. Sign in with the Instagram credentials.
  4. Select the Facebook Page to link. If your Page list is empty, create one at facebook.com/pages/creation first.
3

Allow connected-tools access to messages

Instagram has a privacy toggle that controls whether third-party platforms can read your DMs. It must be ON.

  1. Open Instagram app → Profile → menu → Settings and privacy.
  2. Scroll to Messages and story replies.
  3. Tap Message controls → ensure Connected tools is enabled.

This setting can silently default to OFF on some accounts. If your webhook is wired correctly but no messages arrive, double-check here first.

Part 2 · Configure Meta App for Instagram

4

Add the Instagram product to your Meta App

If you already created a Meta App for WhatsApp, you'll reuse it. If not, follow Step 4 of the WhatsApp setup to create one.

  1. Open your Meta App at developers.facebook.com/apps.
  2. From the dashboard, click Add Product.
  3. Find Instagram in the product list → click Set up.
  4. You'll see a new "Instagram" item in the left sidebar with sub-sections for Basic Display, Graph API and Messaging.
5

Find your Page ID and Instagram Business Account ID

Two IDs needed:

  • Facebook Page ID — the Page connected to your Instagram.
  • Instagram Business Account ID (also called IGSID) — Meta's internal ID for your Instagram, distinct from the @username.

Page ID: Meta Business Suite → Settings → Business Assets → Pages → click your Page → the numeric ID is shown in Page Information. Or browse to your Facebook Page → About → Page transparency → "Page ID".

IGSID: Use Meta's Graph API Explorer (developers.facebook.com/tools/explorer):

GET /{page-id}?fields=instagram_business_account
# Response:
{
  "instagram_business_account": {
    "id": "17841412345678901"  ← this is your IGSID
  },
  "id": "{page-id}"
}

Save both IDs.

6

Generate a System User access token with Instagram scopes

The same System User you created for WhatsApp can be reused. Just regenerate the token with additional scopes.

  1. Meta Business Settings → UsersSystem Users → select your system user.
  2. Under Assigned Assets, ensure the Facebook Page is assigned with Full control. Add it if missing.
  3. Click Generate New Token → pick the Meta App → set Expiration: Never.
  4. Tick these scopes:
    • pages_show_list
    • pages_messaging
    • pages_manage_metadata
    • instagram_basic
    • instagram_manage_messages
  5. Click Generate Token → copy immediately. Meta won't show it again.

This token grants full DM access. Treat like a password. MsgHub stores it AES-256-GCM encrypted at rest.

You should now have:

CredentialSource
Instagram Business Account ID (IGSID)Graph API Explorer query above
Permanent Access TokenSystem User → Generate Token
App SecretMeta App → Settings → Basic (same as WhatsApp)

Part 3 · Connect Instagram to MsgHub

7

Paste credentials into MsgHub

  1. Login to https://app.msghub.info.
  2. Click Settings at the bottom of the sidebar.
  3. Scroll to the WhatsApp Configuration section — inside it, find the Instagram Direct Messages sub-section.
  4. Paste the credentials and choose a Webhook Verify Token (any random string — e.g. acme-ig-2026-verify).
  5. Above, in the Meta App Credentials sub-section, ensure Meta App ID + Meta App Secret are set. These are shared across all Meta channels (WA / IG / FB) on the same Meta App.
  6. Click Save.
MsgHub fieldSectionPaste from
Meta App IDMeta App CredentialsMeta App → Settings → Basic
Meta App SecretMeta App CredentialsMeta App → Settings → Basic (used for webhook HMAC across all Meta channels)
Instagram Page ID (IGSID)Instagram Direct MessagesIGSID from Graph API Explorer (Step 5 above)
Page Access TokenInstagram Direct MessagesSystem User permanent token
Webhook Verify TokenInstagram Direct MessagesYou make this up (any random string)

Part 4 · Point Meta's webhook at MsgHub

8

Copy your Instagram webhook URL

The Your Webhook URL field in the Instagram Direct Messages sub-section is read-only and auto-generated from your tenant ID. It looks like:

URL https://app.msghub.info/api/webhooks/instagram/{your-tenant-id}

Click the copy button next to the field. Each MsgHub tenant has its own Instagram webhook endpoint — Meta callbacks for your account never mix with anyone else's.

9

Configure the webhook in Meta App

  1. Meta App dashboard → left sidebar → InstagramWebhooks (or "Configuration" depending on dashboard version).
  2. Click Edit subscription.
  3. Paste the Callback URL from MsgHub.
  4. Paste the same Verify Token you saved in MsgHub.
  5. Click Verify and Save. Meta hits your URL with a challenge — MsgHub responds, green tick appears.
10

Subscribe to message webhook fields

Saving the URL alone isn't enough. Subscribe to events:

  • messages — inbound DMs (the main one)
  • messaging_postbacks — button taps inside DMs
  • message_reactions — emoji reactions on your messages (optional)
  • messaging_seen — read receipts (optional)

Click Done when subscribed.

Part 5 · Tester invites (until App Review)

Until your Meta App passes App Review, it lives in Standard Access mode: only people you explicitly invite as Instagram Testers can DM your business account through the API. Random Instagram users sending DMs won't trigger your webhook.

11

Add an Instagram Tester

  1. Meta App dashboard → RolesRoles.
  2. Scroll to Instagram Testers → click Add Instagram Testers.
  3. Type the Instagram username of the person testing (yourself, or a colleague).
  4. Click Submit. An invite is sent.
12

Tester accepts the invite

From the tester's handset, open a browser logged into their Instagram and visit:

URL https://instagram.com/accounts/manage_access/

Under Tester invites, click Accept. Within seconds, any DM that tester sends to your business account will flow through the webhook.

The tester must use a Personal Instagram account separate from your Business account to test inbound DMs. Two-account toggle inside the Instagram app works fine for this.

Part 6 · Send your first DM

13

Test inbound

From the tester handset, open Instagram → search for your business account → send a DM ("hi").

  • The message should appear in MsgHub InboxInstagram within a few seconds.
  • A new contact is created automatically with the tester's Instagram username.
14

Test outbound

Reply from MsgHub Inbox. Because the tester messaged first, you're inside the 24-hour customer service window and free-form replies are allowed. The reply arrives in the tester's Instagram DM within seconds.

Going live · App Review

Standard Access (tester-only) is fine for piloting. To accept DMs from any Instagram user, you need to submit your Meta App for App Review and switch to Live mode.

What Meta reviews

Submitting

  1. Meta App dashboard → App ReviewPermissions and Features.
  2. For each scope used (instagram_basic, instagram_manage_messages, pages_messaging, pages_show_list, pages_manage_metadata), click Request.
  3. Fill the rationale, upload the demo video, link the privacy policy.
  4. Submit. Approval typically takes 3–7 business days. Rejections come with specific feedback you can address and resubmit.

If you're running this on top of a MsgHub white-label deployment, App Review is done once on the white-label's parent app — your customers don't each have to submit. Talk to our team about the white-label flow.

Troubleshooting common issues

"Webhook verification failed" in Meta

Inbound DMs don't reach MsgHub

"Invalid OAuth access token" when sending outbound

"This person isn't available right now" when sending

Webhook fires but contact shows no username

Frequently asked questions

Can I use a Personal Instagram account?

No. Instagram Graph API messaging requires a Business or Creator account, linked to a Facebook Page. Switching from Personal to Business takes 30 seconds and doesn't lose followers, posts or chat history.

Why does Instagram messaging need a Facebook Page?

Meta routes Instagram messaging permissions through the connected Facebook Page. Even if you never post on Facebook, a Page is required as the authorisation anchor. The Page can be empty — only its existence and connection matter.

What's Standard Access vs Live mode?

Standard Access is dev mode — only invited Instagram testers can DM your account through the API. Once Meta App Review passes, you flip to Live mode and any Instagram user can DM you. Tester invites are required until then.

How long does Instagram Tester invite take to activate?

Instantly once the tester accepts. Invite from Meta App Roles, tester opens instagram.com/accounts/manage_access and clicks Accept — DMs flow through your webhook within seconds.

Can I share one Meta App across WhatsApp, Instagram and Messenger?

Yes, and we recommend it. One Meta App holds all three channel products. App Secret is shared, webhook signatures verify the same way, and App Review only needs to happen once.

What is the 24-hour customer service window on Instagram?

Same model as WhatsApp. Once a customer DMs you, 24 hours of free-form replies. After 24 hours of customer silence you can only re-engage with specific message tags (e.g. HUMAN_AGENT) — most automated push re-engagement isn't allowed.

Why are inbound DMs not appearing in MsgHub?

Top three causes: (1) sender isn't an invited tester and you're still in Standard Access, (2) you forgot to subscribe to messages webhook field, or (3) Instagram's "Connected tools" toggle is OFF.

Can I get notifications when someone replies to my Story?

Yes. Story replies and mentions arrive via the same messages webhook with a story_mention or story_reply attachment type. MsgHub surfaces them as a normal conversation thread.

What's next

Connect WhatsApp on the same Meta App
If you haven't already — same App, same App Secret, three channels in one inbox.
Train the AI to handle Instagram DMs
Upload your product catalogue and FAQs so the AI can reply to "Is this in stock?" automatically.
Need a screen-share walk-through?
App Review preparation and demo video creation — we'll guide you through it.