Zapier connects InstantDM to 6,000+ apps so you can automate what happens after someone interacts with your Instagram automations. When a user comments on your post, answers a question in a DM flow, or completes a lead capture sequence, InstantDM sends that data to Zapier via a webhook. Zapier then routes it to your CRM, spreadsheet, email, Slack, or any other connected app - no code required.
This guide covers everything from initial setup to building multi-step Zaps with real examples.
What Is Zapier and Why Connect It to InstantDM?
Zapier is the most popular no-code automation platform, connecting over 6,000 apps through automated workflows called "Zaps." Each Zap has a trigger (the event that starts it) and one or more actions (what happens next).
Connecting Zapier to InstantDM gives you two-way automation:
- Outbound (InstantDM → Zapier): InstantDM sends webhook events to Zapier when interactions happen on Instagram.
- Inbound (Zapier → InstantDM): Zapier sends HTTP requests to the InstantDM API to send DMs or post comment replies.
Common Use Cases
- Add new Instagram leads to HubSpot, Salesforce, or Pipedrive automatically
- Get email or Slack notifications when someone DMs you a keyword
- Sync flow completion data (name, email, phone) to Google Sheets or Airtable
- Send a follow-up DM when a CRM deal stage changes
- Create Mailchimp subscribers with tags from Instagram lead flows
What You'll Need
| Requirement | Details |
|---|---|
| InstantDM account | Trendsetter, Trendsetter Pro, or any Multi plan (API access required) |
| Zapier account | Free plan works for simple Zaps; paid plan for multi-step Zaps and filters |
| InstantDM API key | Found at Settings → API in your InstantDM dashboard |
| Connected Instagram account | Business or Creator account connected to InstantDM |
Note: API and webhook access is not available on InstantDM's free or Starter plans. You need a Trendsetter plan or higher.
Step 1: Generate an API Key in InstantDM
- Log in to app.instantdm.com.
- Navigate to Settings → API in the left sidebar (or go directly to the
/api-integrationpage). - Copy your API Key - you'll need this for sending DMs from Zapier later.
- Keep this page open - you'll paste the Zapier webhook URL here in Step 2.
For full API documentation, visit instantdm.com/instagram-api-docs.
Step 2: Set Up Webhook URL in InstantDM
You'll paste the Zapier webhook URL here after creating it in Step 3. Here's what the configuration page looks like:
- On the Settings → API page, locate the Webhook URL field.
- Below it, select which events to forward:
| Event | When It Fires |
|---|---|
comment | Someone comments on your post |
dm_received | Someone sends you a DM |
postback | User clicks a button in a DM flow |
question_answered | User answers a question node in a flow |
flow_completed | User reaches the end of a flow |
- After pasting the Zapier webhook URL (from Step 3), select your events and click Save.
Step 3: Create a Zap with "Webhooks by Zapier" Trigger
- Log in to zapier.com and click Create Zap.
- For the Trigger, search for Webhooks by Zapier.
- Select Catch Hook as the trigger event.
- Click Continue. Zapier generates a unique webhook URL (e.g.,
https://hooks.zapier.com/hooks/catch/123456/abcdef/). - Copy this URL.
- Go back to InstantDM Settings → API and paste the URL into the Webhook URL field.
- Select your desired events and click Save.
Step 4: Test the Trigger with InstantDM Test Webhook
- Go back to Zapier and click Test trigger.
- Zapier enters listening mode, waiting for a webhook payload.
- Trigger a test event in InstantDM:
- Use the Send Test Webhook button on the Settings → API page, or
- Send yourself a DM from another account, or
- Comment a trigger keyword on a post with an active automation.
- Zapier detects the incoming data and displays the payload fields.
- Click Continue to proceed to the action step.
Example Webhook Payload (flow_completed)
{
"event": "flow_completed",
"timestamp": "2025-01-15T10:30:00Z",
"data": {
"instagram_user_id": "17841400123456789",
"username": "johndoe",
"flow_name": "Lead Capture Flow",
"response_variables": {
"full_name": "John Doe",
"email": "john@example.com",
"phone": "+1234567890",
"interest": "Premium Plan"
}
}
}
Example Webhook Payload (dm_received)
{
"event": "dm_received",
"timestamp": "2025-01-15T10:32:00Z",
"data": {
"instagram_user_id": "17841400123456789",
"username": "janedoe",
"message_text": "I'm interested in your coaching program",
"message_id": "aWdGM..."
}
}
Tip: Zapier uses double-underscore notation for nested fields. So
data.usernamebecomesdata__usernameanddata.response_variables.emailbecomesdata__response_variables__emailin Zapier's field mapper.
Step 5: Add Action Steps (Gmail, Google Sheets, Slack, CRM)
Adding a Google Sheets Row
- Click "+" to add an action after the trigger.
- Search for Google Sheets and select Create Spreadsheet Row.
- Connect your Google account and select your spreadsheet.
- Map the fields:
| Spreadsheet Column | Zapier Mapping |
|---|---|
| Name | data__response_variables__full_name |
data__response_variables__email | |
| Phone | data__response_variables__phone |
| Interest | data__response_variables__interest |
| Instagram Username | data__username |
| Flow Name | data__flow_name |
| Date | timestamp |
Adding a Slack Notification
- Add another action: Slack → Send Channel Message.
- Select your workspace and channel (e.g.,
#instagram-leads). - Configure the message text:
🎯 New Instagram Lead!
Name: {{data__response_variables__full_name}}
Email: {{data__response_variables__email}}
Phone: {{data__response_variables__phone}}
Interest: {{data__response_variables__interest}}
Instagram: @{{data__username}}
Adding a CRM Contact
- Add an action for your CRM (HubSpot, Salesforce, Pipedrive, etc.).
- Select Create Contact (or Create/Update Contact if available).
- Map the webhook fields to CRM properties.
Adding a Filter (Recommended)
Add a Filter by Zapier step between the trigger and your actions to only process specific events:
- Field:
event - Condition:
(Text) Exactly matches - Value:
flow_completed
This prevents non-lead events (like raw DMs or comments) from creating spreadsheet rows or CRM contacts.
Example Zap: New DM → Add Row to Google Sheets → Send Slack Notification
Use case: Log every incoming DM to a spreadsheet and get a Slack alert.
Zap Structure
- Trigger: Webhooks by Zapier → Catch Hook
- Filter: Only continue if
eventexactly matchesdm_received - Action 1: Google Sheets → Create Spreadsheet Row
- Action 2: Slack → Send Channel Message
Google Sheets Mapping
| Column | Zapier Field |
|---|---|
| Date | timestamp |
| Username | data__username |
| Message | data__message_text |
| User ID | data__instagram_user_id |
Slack Message
💬 New Instagram DM
From: @{{data__username}}
Message: {{data__message_text}}
Time: {{timestamp}}
Example Zap: Flow Completed → Create Mailchimp Subscriber with Tags
Use case: Add leads who complete your Instagram flow to a Mailchimp audience with tags based on their interest.
Zap Structure
- Trigger: Webhooks by Zapier → Catch Hook
- Filter: Only continue if
eventexactly matchesflow_completed - Action: Mailchimp → Add/Update Subscriber
Mailchimp Mapping
| Mailchimp Field | Zapier Mapping |
|---|---|
data__response_variables__email | |
| First Name | data__response_variables__full_name |
| Phone | data__response_variables__phone |
| Tags | data__response_variables__interest, Instagram Lead, data__flow_name |
| Status | subscribed |
This way, every lead who completes your Instagram DM flow is automatically added to your email list with relevant tags for segmentation.
Sending DMs from Zapier (Inbound API)
You can send Instagram DMs from any Zap using Zapier's Webhooks by Zapier action (POST request).
- Add an action step → Webhooks by Zapier → POST.
- Configure:
| Field | Value |
|---|---|
| URL | https://api.instantdm.com/api-webhook |
| Payload Type | json |
| Headers | Authorization: Bearer YOUR_API_KEY |
Send a Text DM
{
"action": "send_message",
"type": "dm",
"recipient_id": "INSTAGRAM_USER_ID",
"message": {
"type": "text",
"text": "Thanks for signing up! We'll be in touch soon."
}
}
Send a DM with Quick Replies
{
"action": "send_message",
"type": "dm",
"recipient_id": "INSTAGRAM_USER_ID",
"message": {
"type": "quick_replies",
"text": "What are you interested in?",
"quick_replies": [
{ "title": "Pricing", "payload": "PRICING" },
{ "title": "Demo", "payload": "DEMO" },
{ "title": "Support", "payload": "SUPPORT" }
]
}
}
Testing and Troubleshooting
Testing Your Zap
- Click Test on each step individually to verify data flows correctly.
- Check the Zap History (under the Zaps tab) to see execution logs.
- Verify the destination - check Google Sheets, Slack, or your CRM for the test data.
- Once everything works, click Publish to activate the Zap.
Common Issues and Solutions
| Issue | Solution |
|---|---|
| Zapier not receiving webhook data | Make sure the webhook URL is saved in InstantDM. Click "Test trigger" in Zapier before sending a test event. |
| Fields showing as empty in Zapier | Zapier uses double-underscore notation for nested fields (e.g., data__username). Check the raw payload in the trigger test. |
| Filter not working correctly | Double-check the field name matches exactly. Use event (not data__event) for the top-level event field. |
| POST action returning 401 | Verify your API key includes the Bearer prefix in the Authorization header. |
| POST action returning 400 | Ensure the JSON body includes action, type, and recipient_id. |
| Zap runs but no DM is sent | The recipient must have an existing conversation with your Instagram account (Meta requires prior interaction). |
| Multi-step Zap not available | Multi-step Zaps require a Zapier paid plan. The free plan only supports single-step Zaps. |
Frequently Asked Questions
How do I connect InstantDM to Zapier?
Create a Zap with a "Webhooks by Zapier → Catch Hook" trigger, copy the generated webhook URL, and paste it into InstantDM's Settings → API page in the Webhook URL field. Select which events to forward and click Save. Zapier will receive real-time data from InstantDM whenever those events occur.
Does InstantDM have a native Zapier app?
Not currently. InstantDM uses standard webhooks and a REST API, which work with Zapier's built-in "Webhooks by Zapier" trigger and action modules. This gives you full flexibility to customize the data mapping and works with any Zapier plan.
Can I use Zapier with InstantDM on the free plan?
No. API and webhook access requires a Trendsetter, Trendsetter Pro, or any Multi plan on InstantDM. Zapier's free plan supports single-step Zaps with 100 tasks per month. Multi-step Zaps and filters require a Zapier paid plan.
How fast are webhook events delivered to Zapier?
InstantDM fires webhooks within seconds of the event. Zapier processes webhook triggers in near real-time - typically under 5 seconds on paid plans. Webhook triggers are instant on all Zapier plans (unlike polling triggers which may have a 15-minute delay on free plans).
Can I trigger different actions based on the event type?
Yes. Use Zapier's Paths feature (available on Professional plans and above) to route different events to different actions within a single Zap. Alternatively, use a Filter by Zapier step to only process specific event types, and create separate Zaps for different events.
Can I send images and carousels via the InstantDM API from Zapier?
Yes. Use the Webhooks by Zapier POST action with message.type set to image, video, product_carousel, or buttons. Include the appropriate media URLs or product data in the JSON payload. See the API docs for all supported message types.
How do I handle multiple Instagram accounts with Zapier?
Each InstantDM workspace has its own API key and webhook configuration. You can create separate Zaps for each account, or use a single Zap with Zapier's Filter or Paths feature to route events based on the account identifier in the webhook payload.
What's Next
- Build your first Zap using the Google Sheets + Slack example above.
- Read the Make.com integration guide if you prefer Make.com's visual scenario builder.
- Set up HubSpot CRM integration for a complete lead pipeline.
- Get Slack notifications for real-time Instagram activity alerts.
- Build a Custom AI Agent to auto-respond to DMs with AI.
- Explore the full API docs at instantdm.com/instagram-api-docs.