Integration Guide

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

Learn how to connect InstantDM with Airtable to automatically log Instagram DM leads into a flexible database. Step-by-step guide for syncing Instagram lead data to Airtable using webhooks.

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

Airtable is a flexible database that looks like a spreadsheet but works like a database - with views, filters, linked records, and automations built in. Connecting InstantDM to Airtable gives you a powerful, customizable lead tracking system where every Instagram DM interaction is logged automatically.

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


Why Use Airtable with InstantDM?

  • Flexible schema - add any fields you want without rigid CRM structures
  • Multiple views - see your Instagram leads as a grid, kanban board, calendar, or gallery
  • Built-in automations - trigger emails, Slack messages, or scripts when new records arrive
  • Linked records - connect leads to campaigns, products, or team members
  • Shareable - give your team filtered views without giving them full database access
  • Free tier - 1,000 records per base on the free plan

Common Use Cases

  • Log every Instagram lead with name, email, phone, and flow data
  • Build a kanban board to track lead status (New → Contacted → Qualified → Closed)
  • Create filtered views per campaign or per team member
  • Trigger Airtable automations to send follow-up emails
  • Use as a lightweight CRM for small teams

What You'll Need

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

Step 1: Set Up Your Airtable Base

Before connecting, create a base to receive the data.

  1. Go to airtable.com and click Add a base.
  2. Name it Instagram Leads (or whatever you prefer).
  3. Create a table called Leads with these fields:
Field Name Field Type Purpose
Name Single line text Lead's full name
Email Email Lead's email address
Phone Phone number Lead's phone number
Instagram Username Single line text Their IG handle
Flow Name Single line text Which DM flow they completed
Interest Single line text What they're interested in
Status Single select New, Contacted, Qualified, Closed
Source Single select Instagram DM (for filtering)
Captured At Date When the lead was captured
Notes Long text Additional context

Tip: Set the default value for Status to "New" and Source to "Instagram DM" so every record is pre-tagged.


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 Airtable Module

  1. After the webhook trigger, add a Filter: event equals flow_completed.
  2. Click "+" and search for Airtable.
  3. Select Create a Record.
  4. Connect your Airtable account.
  5. Select your base (Instagram Leads) and table (Leads).

Step 3: Map Fields

Airtable Field Make.com Mapping
Name {{data.response_variables.full_name}}
Email {{data.response_variables.email}}
Phone {{data.response_variables.phone}}
Instagram Username @{{data.username}}
Flow Name {{data.flow_name}}
Interest {{data.response_variables.interest}}
Status New
Source Instagram DM
Captured At {{timestamp}}

Step 4: Test and Activate

  1. Run once in Make.com.
  2. Trigger a test event from InstantDM.
  3. Check your Airtable base - a new row 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 Airtable Action

  1. Add a Filter: event exactly matches flow_completed.
  2. Add Airtable → Create Record.
  3. Connect your Airtable account.
  4. Select your base and table.
  5. Map fields as shown in Method 1.

Step 3: Test and Activate

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

Method 3: Direct API Integration

Airtable's API is straightforward and well-documented.

Step 1: Get Your Airtable Credentials

  1. Go to airtable.com/create/tokens.
  2. Create a Personal Access Token with these scopes:
    • data.records:read
    • data.records:write
  3. Select the base(s) to grant access to.
  4. Copy the token.
  5. Get your Base ID from the Airtable API docs page (it starts with app).
  6. Get your Table ID or use the table name.

Step 2: Build a Webhook Receiver

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

const AIRTABLE_TOKEN = process.env.AIRTABLE_TOKEN;
const BASE_ID = 'appXXXXXXXXXXXXXX';
const TABLE_NAME = 'Leads';

app.post('/instantdm-webhook', async (req, res) => {
  const { event, timestamp, data } = req.body;
  
  if (event !== 'flow_completed') {
    return res.status(200).json({ status: 'skipped' });
  }
  
  const record = {
    records: [{
      fields: {
        'Name': data.response_variables.full_name || data.username,
        'Email': data.response_variables.email,
        'Phone': data.response_variables.phone,
        'Instagram Username': `@${data.username}`,
        'Flow Name': data.flow_name,
        'Interest': data.response_variables.interest || '',
        'Status': 'New',
        'Source': 'Instagram DM',
        'Captured At': timestamp,
      },
    }],
  };
  
  try {
    const response = await fetch(
      `https://api.airtable.com/v0/${BASE_ID}/${encodeURIComponent(TABLE_NAME)}`,
      {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${AIRTABLE_TOKEN}`,
          'Content-Type': 'application/json',
        },
        body: JSON.stringify(record),
      }
    );
    
    const result = await response.json();
    res.status(200).json({ status: 'created', id: result.records?.[0]?.id });
  } catch (error) {
    res.status(500).json({ status: 'error', message: error.message });
  }
});

app.listen(3000);

Logging Multiple Event Types

You can log more than just flow_completed events. Create separate tables or use a single table with an "Event Type" field.

Single Table Approach

Add an Event Type field (Single select) and map all events:

app.post('/instantdm-webhook', async (req, res) => {
  const { event, timestamp, data } = req.body;
  
  const fields = {
    'Event Type': event,
    'Instagram Username': `@${data.username}`,
    'Captured At': timestamp,
  };
  
  // Add event-specific fields
  switch (event) {
    case 'flow_completed':
      fields['Name'] = data.response_variables?.full_name || '';
      fields['Email'] = data.response_variables?.email || '';
      fields['Phone'] = data.response_variables?.phone || '';
      fields['Flow Name'] = data.flow_name;
      fields['Interest'] = data.response_variables?.interest || '';
      break;
    case 'comment':
      fields['Notes'] = `Comment: ${data.comment_text}`;
      break;
    case 'dm_received':
      fields['Notes'] = `DM: ${data.message_text}`;
      break;
  }
  
  // ... create record
});

Building Useful Views

Once data is flowing in, create views to organize it:

Kanban View (Lead Pipeline)

  1. Click Views → Kanban.
  2. Group by the Status field.
  3. Columns: New → Contacted → Qualified → Closed.
  4. Drag leads between columns as they progress.

Filtered View (By Campaign)

  1. Click Views → Grid.
  2. Add a filter: Flow Name contains "Black Friday".
  3. Save as "Black Friday Leads".

Calendar View

  1. Click Views → Calendar.
  2. Use the Captured At field as the date.
  3. See when leads are coming in over time.

Gallery View (Lead Cards)

  1. Click Views → Gallery.
  2. Each lead appears as a card with key fields visible.
  3. Great for team review meetings.

Airtable Automations

Airtable has built-in automations that trigger when records are created or updated.

Send an Email When a New Lead Arrives

  1. Go to Automations in your base.
  2. Click Create automation.
  3. Trigger: When a record is created in the Leads table.
  4. Action: Send an email.
  5. Configure the email with field values from the new record.

Send a Slack Message

  1. Trigger: When a record is created.
  2. Action: Send a Slack message.
  3. Connect your Slack workspace.
  4. Format the message with lead details.

Run a Script (Advanced)

  1. Trigger: When a record is created.
  2. Action: Run a script.
  3. Write JavaScript to call external APIs, enrich data, or perform custom logic.

Troubleshooting

Issue Solution
Record not appearing in Airtable Check the automation platform execution log. Verify the Airtable connection and base/table selection.
"Field not found" error Field names are case-sensitive in the API. Ensure exact match including spaces.
Single select value rejected The value must exist as an option in the field. Add "Instagram DM" and "New" as options first.
API returning 422 Check the field types. Dates must be in ISO 8601 format. Emails must be valid format.
Hitting record limits Free plan allows 1,000 records per base. Upgrade or archive old records periodically.
Duplicate records Airtable doesn't have built-in dedup. Add a search step in Make.com/Zapier before creating, or use Airtable's "Find Records" action.

Frequently Asked Questions

Can I use Airtable as a CRM replacement?

For small teams and simple sales processes, yes. Airtable with a kanban view, status field, and automations works well as a lightweight CRM. For complex sales processes with forecasting, sequences, and territory management, a dedicated CRM like HubSpot or Pipedrive is better.

How many Instagram leads can Airtable handle?

Free plan: 1,000 records per base. Plus plan: 50,000. Pro plan: 500,000. Enterprise: custom. For most Instagram automation use cases, the Plus plan is sufficient.

Can I connect Airtable to other tools?

Yes. Airtable integrates with Make.com, Zapier, and has its own automation engine. You can also use the Airtable API to connect to any custom tool.

Is Airtable better than Google Sheets for this?

Airtable is better for structured data with relationships, views, and automations. Google Sheets is better for simple logging and when you need spreadsheet formulas. If you want a kanban board, filtered views, and linked records, use Airtable. If you just need a flat list, Google Sheets works fine.


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.