Integration Guide

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

Learn how to connect InstantDM with ConvertKit to automatically add Instagram DM leads to your email list. Step-by-step guide for syncing Instagram leads to ConvertKit sequences and tags.

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

ConvertKit (now Kit) is an email marketing platform built for creators. Connecting InstantDM to ConvertKit automatically adds Instagram DM leads to your email list - so when someone comments a keyword and shares their email through your DM flow, they're subscribed to your newsletter or sequence without any manual work.


Why Connect InstantDM to ConvertKit?

  • Auto-subscribe leads - Instagram DM leads join your email list instantly
  • Tag subscribers - tag leads based on which flow or keyword they came from
  • Trigger sequences - automatically start an email sequence when a lead is captured
  • Add to forms - associate leads with specific ConvertKit forms for tracking
  • Creator-focused - ConvertKit is built for the same audience that uses Instagram DM automation

Common Use Cases

  • Subscribe someone to your newsletter when they comment "GUIDE" and share their email
  • Tag subscribers based on their interest (captured in the DM flow)
  • Start a welcome email sequence after a DM lead capture
  • Add leads to different forms based on which Instagram post they came from
  • Segment your email list by Instagram campaign

What You'll Need

Requirement Details
InstantDM account Trendsetter, Trendsetter Pro, or any Multi plan
ConvertKit account Free or paid plan
InstantDM API key Found at Settings → API in your InstantDM dashboard
ConvertKit API key Found at Settings → Advanced → API in ConvertKit
Automation platform (optional) Make.com or Zapier for no-code setup

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 a ConvertKit Module

  1. After the webhook trigger, add a Filter: event equals flow_completed.
  2. Click "+" and search for ConvertKit.
  3. Select Add Subscriber to a Form.
  4. Connect your ConvertKit account.

Step 3: Map Fields

ConvertKit Field Make.com Mapping
Form Select the form to subscribe to
Email {{data.response_variables.email}}
First Name {{data.response_variables.full_name}}

Step 4: Add Tags (Optional)

  1. After the subscriber module, add ConvertKit → Tag a Subscriber.
  2. Select or create a tag like instagram-lead or {{data.flow_name}}.

Step 5: Test and Activate

  1. Run once in Make.com.
  2. Trigger a test event from InstantDM.
  3. Check ConvertKit - the subscriber should appear with the correct tag.
  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 ConvertKit Action

  1. Add a Filter: event exactly matches flow_completed.
  2. Add ConvertKit → Add Subscriber to a Form.
  3. Connect your ConvertKit account.
  4. Select the form and map email + first name.
  5. Optionally add a second action: ConvertKit → Tag a Subscriber.

Step 3: Test and Activate

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

Method 3: Direct API Integration

ConvertKit's API is simple and well-documented.

Step 1: Get Your API Key and Secret

  1. In ConvertKit, go to Settings → Advanced → API.
  2. Copy your API Key and API Secret.
  3. Find your Form ID - go to your form's landing page URL, the ID is in the URL (e.g., /forms/1234567).

Step 2: Build a Webhook Receiver

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

const CK_API_SECRET = process.env.CONVERTKIT_API_SECRET;
const FORM_ID = '1234567'; // Your ConvertKit form ID

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 {
    // Subscribe to form
    const response = await fetch(
      `https://api.convertkit.com/v3/forms/${FORM_ID}/subscribe`,
      {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
          api_secret: CK_API_SECRET,
          email: data.response_variables.email,
          first_name: data.response_variables.full_name || '',
          fields: {
            instagram_username: data.username,
            interest: data.response_variables.interest || '',
          },
          tags: ['instagram-lead'],
        }),
      }
    );
    
    const result = await response.json();
    res.status(200).json({ status: 'subscribed', subscriber: result.subscription });
  } catch (error) {
    res.status(500).json({ status: 'error', message: error.message });
  }
});

app.listen(3000);

Tagging Strategies

Tags help you segment your email list based on how leads came in.

Tag When to Apply
instagram-lead Every lead from InstantDM
flow-name-{name} Based on which DM flow they completed
interest-{topic} Based on their stated interest
campaign-{post} Based on which Instagram post triggered the flow
high-intent If they answered qualifying questions positively

Dynamic Tagging in Make.com

Use a Router after the subscriber module to apply different tags based on flow data:

  • Branch 1: If data.flow_name contains "pricing" → tag high-intent
  • Branch 2: If data.flow_name contains "freebie" → tag freebie-seeker
  • Branch 3: Default → tag instagram-lead

Triggering Email Sequences

In ConvertKit

  1. Create a Visual Automation in ConvertKit.
  2. Set the trigger to: Subscribes to a form (the form you're using) or Is tagged with instagram-lead.
  3. Add your email sequence as the next step.
  4. The sequence starts automatically when InstantDM adds the subscriber.

Example Sequence

  1. Immediately: Welcome email with the promised content (PDF, link, etc.)
  2. Day 1: Follow-up with additional value
  3. Day 3: Case study or testimonial
  4. Day 5: Offer or CTA

Custom Fields

ConvertKit supports custom fields for storing additional data.

Creating Custom Fields

  1. Go to Subscribers → Custom Fields.
  2. Add fields like instagram_username, interest, flow_name.

Mapping Custom Fields

In the API, pass custom fields in the fields object:

{
  "api_secret": "YOUR_SECRET",
  "email": "john@example.com",
  "fields": {
    "instagram_username": "johndoe",
    "interest": "Premium Plan",
    "flow_name": "Lead Capture Flow"
  }
}

In Make.com/Zapier, custom fields appear in the field mapping after connecting your account.


Troubleshooting

Issue Solution
Subscriber not appearing Check that the email is valid. ConvertKit rejects obviously invalid emails. Verify the form ID is correct.
Tag not applied Ensure the tag exists in ConvertKit before applying it. Create it manually first, or use the API to create it.
Duplicate subscribers ConvertKit handles duplicates automatically - subscribing an existing email updates the record instead of creating a duplicate.
API returning 401 Verify your API Secret (not API Key) is correct. The subscribe endpoint uses the API Secret.
Custom fields empty Field names must match exactly (case-sensitive, underscores). Create the fields in ConvertKit first.
Sequence not starting Check that the Visual Automation is active and the trigger matches (form subscription or tag).

Frequently Asked Questions

Does ConvertKit handle duplicate emails?

Yes. If someone is already subscribed and the same email comes through again, ConvertKit updates the existing subscriber (adds new tags, updates fields) instead of creating a duplicate.

Can I subscribe leads to multiple forms?

Yes. Each form can trigger a different automation in ConvertKit. Use a Router in Make.com to subscribe to different forms based on the flow name or interest.

What happens if the lead doesn't provide an email?

The integration skips the event. Email is required for ConvertKit - if your DM flow doesn't capture an email, the subscriber won't be created. Make sure your lead capture flow includes an email question.

Can I unsubscribe someone via the API?

Yes. Use ConvertKit's DELETE /v3/subscribers/{id} endpoint. You could trigger this from InstantDM if a user sends a specific keyword like "UNSUBSCRIBE".


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.