Integration Guide

How to Connect InstantDM with Zapier (Step-by-Step Guide)

Learn how to connect InstantDM with Zapier to automate Instagram DM workflows. Set up Zaps to send leads to Google Sheets, get Slack notifications, sync data to CRMs, and send follow-up DMs - complete step-by-step guide.

Meta Business Partner
30,000+ creators
$9.99/mo flat

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

  1. Log in to app.instantdm.com.
  2. Navigate to Settings → API in the left sidebar (or go directly to the /api-integration page).
  3. Copy your API Key - you'll need this for sending DMs from Zapier later.
  4. 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:

  1. On the Settings → API page, locate the Webhook URL field.
  2. 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
  1. 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

  1. Log in to zapier.com and click Create Zap.
  2. For the Trigger, search for Webhooks by Zapier.
  3. Select Catch Hook as the trigger event.
  4. Click Continue. Zapier generates a unique webhook URL (e.g., https://hooks.zapier.com/hooks/catch/123456/abcdef/).
  5. Copy this URL.
  6. Go back to InstantDM Settings → API and paste the URL into the Webhook URL field.
  7. Select your desired events and click Save.

Step 4: Test the Trigger with InstantDM Test Webhook

  1. Go back to Zapier and click Test trigger.
  2. Zapier enters listening mode, waiting for a webhook payload.
  3. 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.
  4. Zapier detects the incoming data and displays the payload fields.
  5. 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.username becomes data__username and data.response_variables.email becomes data__response_variables__email in Zapier's field mapper.


Step 5: Add Action Steps (Gmail, Google Sheets, Slack, CRM)

Adding a Google Sheets Row

  1. Click "+" to add an action after the trigger.
  2. Search for Google Sheets and select Create Spreadsheet Row.
  3. Connect your Google account and select your spreadsheet.
  4. Map the fields:
Spreadsheet Column Zapier Mapping
Name data__response_variables__full_name
Email 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

  1. Add another action: Slack → Send Channel Message.
  2. Select your workspace and channel (e.g., #instagram-leads).
  3. 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

  1. Add an action for your CRM (HubSpot, Salesforce, Pipedrive, etc.).
  2. Select Create Contact (or Create/Update Contact if available).
  3. 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

  1. Trigger: Webhooks by Zapier → Catch Hook
  2. Filter: Only continue if event exactly matches dm_received
  3. Action 1: Google Sheets → Create Spreadsheet Row
  4. 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

  1. Trigger: Webhooks by Zapier → Catch Hook
  2. Filter: Only continue if event exactly matches flow_completed
  3. Action: Mailchimp → Add/Update Subscriber

Mailchimp Mapping

Mailchimp Field Zapier Mapping
Email 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).

  1. Add an action step → Webhooks by Zapier → POST.
  2. 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

  1. Click Test on each step individually to verify data flows correctly.
  2. Check the Zap History (under the Zaps tab) to see execution logs.
  3. Verify the destination - check Google Sheets, Slack, or your CRM for the test data.
  4. 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

Ready to Automate Your Instagram DMs?

Join 30,000+ creators and brands using InstantDM today.

Start Your Free Trial

No credit card required. Setup in under 15 minutes.