Minimal Instagram DM Automation with n8n integration support
(Using Instagram Messaging API + n8n Webhooks)
You don’t need an expensive SaaS like ManyChat to build your own Instagram DM responder. With a little setup and automation, you can create a simple MVP that:
- Listens for incoming Instagram DMs
- Sends automatic replies
- Runs on webhooks with n8n workflow integration
What This MVP Actually Is
We’re building the smallest usable version of a ManyChat-style bot:
- Connects to one Instagram Business account
- Receives new DMs in real time (via webhook callbacks)
- Processes messages (keyword-based or simple rules in n8n)
- Sends automatic replies
- Runs reliably on n8n (self-hosted workflow)
How it Works (Concept Overview)
Instagram pushes new messages to your server or automation tool via webhooks.
n8n receives the webhook, interprets the message, and sends a reply through Instagram’s API.
Instagram DM ── Webhook call ──> n8n
│ │
└────────── Reply back via API <────────
This flow is simple but it’s enough to reply to messages automatically.
Core Requirements & Stages to Implement
Follow these in order. This is the exact path to a working MVP.
- Instagram Business account
- Set your personal Instagram profile to Business or Creator.
- This unlocks API access.
- Facebook Page
- Your Instagram must be linked to a Facebook Page.
- Meta uses the page as the identity hub.
- Meta App / Developer account
- Create a Meta App to get API credentials:
- Create a new app at developers.facebook.com/apps.
- Choose "Other" → "Business" type.
- Add "Instagram Graph API" product.
- Get App ID and Secret.
(Development mode is fine for MVP.) - This app will receive webhook events from Instagram.
- Create a Meta App to get API credentials:
- Webhook Configuration
In the Meta App dashboard:- Add webhook subscription for "Instagram Messaging"
- Provide a public HTTPS URL (n8n webhook node or tunnel like ngrok for testing)
- Verify the webhook (Meta sends a GET challenge)
n8n receives POST payloads for new messages.
- n8n Workflow Setup
- Create workflow triggered by webhook
- Parse incoming JSON (sender ID, message text)
- Add logic: if/else nodes for keywords, greetings, etc.
- Use HTTP Request node to call Instagram Graph API for replies
Endpoint: POST /v{version}/{ig-user-id}/messages
With access token and recipient/message payload
Meta Verification and App Review (The Roadblocks)
Here’s where most people get confused.
What You Do Not Need for Your MVP
- You don’t need full business verification at first
- You don’t need Meta to review your app or approve anything
- You don’t need any paid subscription to Meta just to make your automation work
As long as your app and Instagram account are in development mode, and you’re only connecting your own Instagram account to it, you can build everything and test it.
This alone lets you:
- Get webhooks
- Receive messages
- Reply to them
- Build logic in n8n
Studies of the official Instagram messaging API show that development mode works fine for personal use and MVPs without permanent verification. (help.reach.tools)
Meta Verification & App Review – Reality Check
For this MVP (your own account only, dev mode):
- No business verification needed
- No app review needed
- No paid Meta plan required
You can receive DMs, reply, and build logic today.
Verification becomes mandatory only when you:
- Publish the app publicly (other accounts connect)
- Request advanced permissions
- Scale to production for clients
Verification asks for legal business docs (name, address, registration, website). Done in Business Manager → Security Center.
When and Why Meta Asks for Business Verification
Meta’s business verification is intended to confirm that you are a real business entity, not a bot or fake account.
It becomes required when you try to:
- Publish your app publicly for other users
- Request extended API permissions
- Access certain business products (like WhatsApp Business API)
- Scale beyond your own account
To verify, Meta typically asks for official business information such as:
- Legal company name
- Physical address
- Phone number
- Website
- Business registration documents
This process is done in Meta Business Manager’s Security Center. (help.treble.ai)
Why Verification Is So Hard from Iran
This is the part every developer from a sanctioned country hates.
Meta (the company behind Facebook and Instagram) must obey U.S. government sanctions. That means:
- Meta often blocks business verification requests from sanctioned regions like Iran
- Even if your documents are perfect, Meta may refuse based on your geographic data
- Automated and manual reviews sometimes end in denial with a message like:
“We were unable to complete verification due to compliance requirements.” (Cpersian Agency)
This isn’t about your project quality. It’s corporate compliance.
Because of this:
- Many Iranian developers find they can build the MVP fine
- But cannot finish business verification just to publish publicly
- Meta does not provide customer support to resolve it
There’s no official Meta statement saying “Iran is blocked,” but recovery and verification stories show frequent denials when geo is detected. (Cpersian Agency)
A Common Workaround: Use a Non-Iranian Business
Some people who need full API access and public app usage use this pattern:
- Form a legitimate business entity in a country where Meta accepts verification
- e.g., a company registered in the EU, US, or another region
- Use a VPS or remote server based outside Iran
- This helps with webhook hosting and avoids regional API blocks
- Verify that company in Meta Business Manager
- Upload valid local business documents
- Associate the Instagram account with that business for API access
This doesn’t exploit illegal tricks. It simply uses a real business registration that Meta can verify.
This lets Meta accept your verification and review requests.
Note: Fake or fabricated documents are both illegal and explicitly prohibited by Meta. Always use real businesses you control.
Hosting Your Webhooks
- To catch Instagram webhook calls, you need a public, reachable URL. A local server won’t cut it unless you expose it with a tunnel (like ngrok)
- A small VPS (e.g., DigitalOcean, Hetzner) is enough
Summary
What You Can Build Today
- A simple Instagram DM responder
- Using webhooks and n8n
- Without paying Meta or doing verification
What Costs or Limits You Might Hit Later
- Public app usage
- App review
- Extended API permissions
- Full business verification
Main Regional Issue
- Sanctioned countries like Iran may have verification denied due to compliance rules
Workaround
- Use a "real" business entity in a supported country
- Host on a VPS outside restricted regions
Reference Links for Setup
Here are the official resources you’ll need:
- Instagram Messaging API overview
https://developers.facebook.com/docs/instagram-platform/instagram-api-with-instagram-login/messaging-api/ - Create and manage a Meta App
https://developers.facebook.com/apps/ - Meta Business Manager (where verification happens)
https://business.facebook.com - Instagram Business account setup guide
https://help.instagram.com/502981923235522