Integration Guide

How to Connect InstantDM with Pipedrive CRM (Step-by-Step Guide)

Learn how to connect InstantDM with Pipedrive to automatically create deals and contacts from Instagram DMs. Step-by-step guide for syncing Instagram lead data to Pipedrive using webhooks.

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

Pipedrive is a sales-focused CRM built around the pipeline view. Connecting InstantDM to Pipedrive automatically creates Persons (contacts) and Deals when someone interacts with your Instagram DM automations - so your sales team sees new Instagram leads in their pipeline immediately.

This guide covers setup via Make.com, Zapier, and Pipedrive's direct API.


Why Connect InstantDM to Pipedrive?

  • Auto-create Deals from Instagram DM flows - leads land directly in your sales pipeline
  • Create Persons with name, email, phone from flow responses
  • Pipeline visibility - Instagram leads appear alongside every other channel
  • Activity tracking - log Instagram interactions as Activities on a Deal
  • Simple and fast - Pipedrive's API is developer-friendly and well-documented

Common Use Cases

  • Create a Person + Deal when someone completes a lead capture flow
  • Add Instagram leads to a specific pipeline stage
  • Log DM flow completions as Activities
  • Tag leads with "Instagram" label for filtering
  • Trigger Pipedrive automations when a new Instagram deal is created

What You'll Need

Requirement Details
InstantDM account Trendsetter, Trendsetter Pro, or any Multi plan
Pipedrive account Any plan (Essential, Advanced, Professional, or Enterprise)
InstantDM API key Found at Settings → API in your InstantDM dashboard
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 receiving InstantDM events.

Step 2: Add Pipedrive Modules

After the webhook trigger:

  1. Add a Filter: event equals flow_completed.
  2. Add Pipedrive → Create a Person:
Pipedrive Field Make.com Mapping
Name {{data.response_variables.full_name}}
Email {{data.response_variables.email}}
Phone {{data.response_variables.phone}}
Label Instagram
  1. Add Pipedrive → Create a Deal (connected after the Person module):
Pipedrive Field Make.com Mapping
Title Instagram Lead: {{data.response_variables.full_name}}
Person {{ID from previous module}} (the Person just created)
Pipeline Select your target pipeline
Stage Select the initial stage (e.g., "New Lead")
Label Instagram

Tip: Create the Person first, then use its ID when creating the Deal. This links the Deal to the contact automatically.

Step 3: Handle Duplicates

  1. Before creating a Person, add Pipedrive → Search Persons.
  2. Search by email: {{data.response_variables.email}}.
  3. Use a Router:
    • Found: Use the existing Person ID for the Deal.
    • Not found: Create a new Person, then create the Deal.

Step 4: Test and Activate

  1. Run once in Make.com.
  2. Trigger a test event from InstantDM.
  3. Check Pipedrive - a new Person and Deal should appear.
  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 Pipedrive Actions

  1. Add a Filter: event exactly matches flow_completed.
  2. Add Pipedrive → Create Person.
  3. Map name, email, phone from the webhook data.
  4. Add Pipedrive → Create Deal.
  5. Link the Deal to the Person created in the previous step.

Step 3: Test and Activate

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

Method 3: Direct API Integration

Pipedrive has one of the simplest CRM APIs - great for a direct integration.

Step 1: Get Your Pipedrive API Token

  1. In Pipedrive, go to Settings → Personal preferences → API.
  2. Copy your API token.

Step 2: Build a Webhook Receiver

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

const PD_API_TOKEN = process.env.PIPEDRIVE_API_TOKEN;
const PD_DOMAIN = 'yourcompany'; // your Pipedrive subdomain

async function pipedriveFetch(endpoint, body) {
  const response = await fetch(
    `https://${PD_DOMAIN}.pipedrive.com/api/v1/${endpoint}?api_token=${PD_API_TOKEN}`,
    {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(body),
    }
  );
  return response.json();
}

app.post('/instantdm-webhook', async (req, res) => {
  const { event, data } = req.body;
  
  if (event !== 'flow_completed') {
    return res.status(200).json({ status: 'skipped' });
  }
  
  try {
    // Step 1: Create a Person
    const person = await pipedriveFetch('persons', {
      name: data.response_variables.full_name || data.username,
      email: [{ value: data.response_variables.email, primary: true }],
      phone: [{ value: data.response_variables.phone, primary: true }],
      label: 'Instagram',
    });
    
    // Step 2: Create a Deal linked to the Person
    const deal = await pipedriveFetch('deals', {
      title: `Instagram Lead: ${data.response_variables.full_name || data.username}`,
      person_id: person.data.id,
      label: 'Instagram',
    });
    
    // Step 3: Add a Note with flow details
    await pipedriveFetch('notes', {
      deal_id: deal.data.id,
      content: `<b>Instagram DM Lead</b><br>
        Flow: ${data.flow_name}<br>
        Interest: ${data.response_variables.interest || 'N/A'}<br>
        Instagram: @${data.username}<br>
        Captured: ${new Date().toISOString()}`,
    });
    
    res.status(200).json({
      status: 'created',
      person_id: person.data.id,
      deal_id: deal.data.id,
    });
  } catch (error) {
    res.status(500).json({ status: 'error', message: error.message });
  }
});

app.listen(3000);

Step 3: Configure InstantDM Webhook

  1. Deploy your webhook receiver.
  2. In InstantDM Settings → API, paste the URL.
  3. Select events and save.

Custom Fields in Pipedrive

Creating Custom Fields

  1. Go to Settings → Data fields → Person (or Deal).
  2. Click Add custom field.
  3. Name it (e.g., "Instagram Username") and select the type.
  4. Note the field key (e.g., abc123def456).

Using Custom Fields in the API

const person = await pipedriveFetch('persons', {
  name: data.response_variables.full_name,
  email: [{ value: data.response_variables.email, primary: true }],
  // Custom field by key
  'abc123def456': data.username,
});

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


Pipedrive Automations

Workflow Automation (Built-in)

  1. Go to Automations in Pipedrive.
  2. Click Create automation.
  3. Trigger: Deal is created.
  4. Condition: Label equals "Instagram".
  5. Actions:
    • Assign to a team member
    • Send an email
    • Create an activity (e.g., "Call Instagram lead")
    • Move to a pipeline stage

Example: Auto-Create Follow-Up Activity

  1. Trigger: Deal created with label "Instagram".
  2. Action: Create Activity.
    • Type: Call
    • Subject: Follow up with Instagram lead
    • Due: Tomorrow
    • Assigned to: Deal owner

Troubleshooting

Issue Solution
Person/Deal not appearing Check the automation platform execution log. Verify the Pipedrive connection.
Duplicate persons Add a search step before creating. Search by email to find existing contacts.
API returning 401 Verify your API token. In Make.com/Zapier, re-authenticate the Pipedrive connection.
Custom fields empty Use the field key (not the display name) in API calls. In Make.com/Zapier, refresh the field list.
Deal not linked to Person Ensure the person_id is set when creating the Deal. In Make.com, map the Person ID from the previous module.
"Instagram" label not available Create the label first in Pipedrive: Settings → Data fields → Deal → Labels.

Frequently Asked Questions

Should I create Persons, Deals, or both?

Create both. A Person holds the contact info (name, email, phone), and a Deal tracks the sales opportunity. Link them together so your sales team can see the full picture.

Can I add Instagram leads to a specific pipeline?

Yes. When creating a Deal, specify the pipeline_id and stage_id. In Make.com/Zapier, select the pipeline and stage from the dropdown.

How does Pipedrive compare to HubSpot for InstantDM?

Pipedrive is simpler and more sales-focused - it's built around the pipeline view. HubSpot has more marketing features (email sequences, landing pages, forms). If your primary goal is tracking sales from Instagram leads, Pipedrive is a great fit. If you need marketing automation too, consider HubSpot.

Can I trigger a DM from Pipedrive?

Yes. Use Pipedrive's Workflow Automation to call a webhook when a Deal moves to a specific stage. Route that webhook through Make.com/Zapier to call the InstantDM API and send a DM.


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.