Integration Guide

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

Learn how to connect InstantDM with ActiveCampaign to automatically add Instagram DM leads to your email lists and automations. Step-by-step guide for syncing Instagram leads to ActiveCampaign.

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

ActiveCampaign combines email marketing, marketing automation, and CRM in one platform. Connecting InstantDM to ActiveCampaign automatically creates contacts from Instagram DM leads, adds them to lists, applies tags, and triggers automation workflows - giving you a complete marketing pipeline from Instagram comment to email sequence.


Why Connect InstantDM to ActiveCampaign?

  • Powerful automations - ActiveCampaign's automation builder is one of the most advanced in email marketing
  • Built-in CRM - track deals alongside email engagement
  • Contact scoring - score leads based on Instagram interactions and email engagement
  • Conditional content - send different email content based on DM flow responses
  • Site tracking - see what Instagram leads do on your website after clicking email links

Common Use Cases

  • Add Instagram DM leads to a list and trigger a welcome automation
  • Score leads based on which flow they completed (high-intent vs. freebie)
  • Create deals in ActiveCampaign's CRM from Instagram leads
  • Tag contacts by campaign, interest, or flow for segmented email sequences
  • Trigger different automations based on DM flow responses

What You'll Need

Requirement Details
InstantDM account Trendsetter, Trendsetter Pro, or any Multi plan
ActiveCampaign account Any plan (Lite, Plus, Professional, or Enterprise)
InstantDM API key Found at Settings → API in your InstantDM dashboard
ActiveCampaign API URL and key Found at Settings → Developer in ActiveCampaign

Method 1: Via Make.com (Recommended)

Step 1: Set Up the Webhook

Follow Steps 1-4 in the Make.com integration guide to create a webhook scenario.

Step 2: Add an ActiveCampaign Module

  1. After the webhook trigger, add a Filter: event equals flow_completed.
  2. Click "+" and search for ActiveCampaign.
  3. Select Create/Update a Contact.
  4. Connect your ActiveCampaign account.

Step 3: Map Fields

ActiveCampaign Field Make.com Mapping
Email {{data.response_variables.email}}
First Name {{data.response_variables.full_name}}
Phone {{data.response_variables.phone}}
List Select your target list
Tags instagram-lead, {{data.flow_name}}

Step 4: Add to an Automation (Optional)

  1. After the contact module, add ActiveCampaign → Add Contact to Automation.
  2. Select the automation (e.g., "Instagram Lead Welcome Sequence").

Step 5: Test and Activate

  1. Run once in Make.com.
  2. Trigger a test event from InstantDM.
  3. Check ActiveCampaign - the contact should appear with tags and list membership.
  4. Activate the scenario.

Method 2: Via Zapier

Step 1: Create the Zap

Follow the Zapier integration guide to set up a webhook trigger.

Step 2: Add ActiveCampaign Action

  1. Add a Filter: event exactly matches flow_completed.
  2. Add ActiveCampaign → Create or Update Contact.
  3. Connect your ActiveCampaign account.
  4. Map email, name, phone, list, and tags.

Step 3: Test and Activate

  1. Test with sample data.
  2. Verify in ActiveCampaign.
  3. Turn the Zap on.

Method 3: Direct API Integration

Step 1: Get Your API Credentials

  1. In ActiveCampaign, go to Settings → Developer.
  2. Copy your API URL (e.g., https://yourname.api-us1.com) and API Key.

Step 2: Build a Webhook Receiver

const express = require('express');
const app = express();
app.use(express.json());

const AC_API_URL = process.env.ACTIVECAMPAIGN_API_URL;
const AC_API_KEY = process.env.ACTIVECAMPAIGN_API_KEY;

async function acFetch(endpoint, method, body) {
  const response = await fetch(`${AC_API_URL}/api/3/${endpoint}`, {
    method,
    headers: {
      'Api-Token': AC_API_KEY,
      'Content-Type': 'application/json',
    },
    body: body ? JSON.stringify(body) : undefined,
  });
  return response.json();
}

app.post('/instantdm-webhook', async (req, res) => {
  const { event, data } = req.body;
  
  if (event !== 'flow_completed' || !data.response_variables?.email) {
    return res.status(200).json({ status: 'skipped' });
  }
  
  try {
    // Step 1: Create or update contact
    const contact = await acFetch('contact/sync', 'POST', {
      contact: {
        email: data.response_variables.email,
        firstName: data.response_variables.full_name || '',
        phone: data.response_variables.phone || '',
        fieldValues: [
          { field: '1', value: data.username }, // Custom field ID for Instagram
          { field: '2', value: data.flow_name }, // Custom field ID for Flow Name
          { field: '3', value: data.response_variables.interest || '' }, // Interest
        ],
      },
    });
    
    const contactId = contact.contact.id;
    
    // Step 2: Add tag
    const tagResult = await acFetch('contactTags', 'POST', {
      contactTag: {
        contact: contactId,
        tag: '1', // Tag ID for "instagram-lead"
      },
    });
    
    // Step 3: Add to list
    await acFetch('contactLists', 'POST', {
      contactList: {
        list: '1', // List ID
        contact: contactId,
        status: 1, // 1 = subscribed
      },
    });
    
    res.status(200).json({ status: 'created', contactId });
  } catch (error) {
    res.status(500).json({ status: 'error', message: error.message });
  }
});

app.listen(3000);

Note: ActiveCampaign uses numeric IDs for tags, lists, and custom fields. Look up the IDs in your ActiveCampaign account or via the API before hardcoding them.


Custom Fields

Creating Custom Fields

  1. Go to Contacts → Manage Fields.
  2. Click Add Field.
  3. Create fields:
Field Name Type Purpose
Instagram Username Text Their IG handle
Flow Name Text Which DM flow they completed
Interest Text What they're interested in
Instagram User ID Text For API callbacks
  1. Note the Field ID for each (visible in the URL when editing the field).

Building Automations

ActiveCampaign's automation builder is where the real power is.

Welcome Sequence for Instagram Leads

  1. Go to Automations → Create an Automation.
  2. Trigger: Tag is addedinstagram-lead.
  3. Steps:
    • Send email: Welcome + promised content
    • Wait: 1 day
    • If/Else: Check if email was opened
      • Yes: Send follow-up with more value
      • No: Send re-engagement email with different subject line
    • Wait: 2 days
    • Send email: Offer or CTA
    • Goal: Contact clicks the CTA link

Lead Scoring

  1. Go to Contacts → Scoring.
  2. Add rules:
    • Tag instagram-lead added: +10 points
    • Tag high-intent added: +20 points
    • Opens welcome email: +5 points
    • Clicks link in email: +10 points
  3. When score reaches 50, trigger a "Sales Ready" automation.

CRM Deal Creation

  1. In an automation, add CRM → Add a Deal.
  2. Set:
    • Pipeline: Instagram Leads
    • Stage: New
    • Title: Instagram Lead: {{contact.firstName}}
    • Value: Based on interest or flow

Troubleshooting

Issue Solution
Contact not appearing Check the API response for errors. Verify the API URL and key. Ensure the email is valid.
Tag not applied Use the tag ID (number), not the tag name, in API calls. Look up tag IDs via the API or in ActiveCampaign settings.
Custom fields empty Use the field ID (number) in the fieldValues array. Field IDs are different from field names.
Contact not on list The contactLists API call requires both the list ID and contact ID. Ensure both are correct.
Automation not triggering Check that the automation is active and the trigger matches (tag added, list subscribed, etc.).
API returning 403 Your API key may not have the required permissions. Check your ActiveCampaign plan - some API features require Plus or higher.
Duplicate contacts The contact/sync endpoint handles duplicates by updating existing contacts with the same email.

Frequently Asked Questions

How does ActiveCampaign compare to Mailchimp for InstantDM?

ActiveCampaign has more powerful automations, built-in CRM, and lead scoring. Mailchimp is simpler and has a more generous free tier. If you need advanced automation workflows and sales pipeline tracking, ActiveCampaign is the better choice. If you just need basic email list management, Mailchimp is sufficient.

Can I use ActiveCampaign's CRM with InstantDM leads?

Yes. ActiveCampaign's CRM (available on Plus plan and above) lets you create Deals from Instagram leads. Use an automation to create a Deal when a contact is tagged with instagram-lead.

Does the contact/sync endpoint handle duplicates?

Yes. It creates a new contact if the email doesn't exist, or updates the existing contact if it does. This is the recommended endpoint for InstantDM integration.

Can I trigger a DM from ActiveCampaign?

Yes. Use ActiveCampaign's webhook action in an automation to call a Make.com/Zapier scenario that sends a DM via the InstantDM API. For example, send a DM when a contact reaches a certain lead score.


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.