Integration Guide

How to Connect InstantDM with Google Sheets (Step-by-Step Guide)

Learn how to automatically log Instagram DM leads to Google Sheets using InstantDM. Step-by-step guide via Make.com, Zapier, and the Google Sheets API.

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

Google Sheets is the simplest way to track Instagram DM leads - no CRM setup, no database, just a spreadsheet that updates automatically. Connecting InstantDM to Google Sheets logs every lead, comment, or DM event as a new row.


Why Use Google Sheets with InstantDM?

  • Zero setup - create a spreadsheet and start logging
  • Free - Google Sheets is free with a Google account
  • Shareable - give your team view or edit access instantly
  • Formulas and charts - analyze lead data with built-in tools
  • Familiar - everyone knows how to use a spreadsheet

Common Use Cases

  • Log every Instagram lead with name, email, phone, and flow data
  • Track comment activity across posts
  • Build simple dashboards with charts and pivot tables
  • Export data to other tools (CSV, Excel)
  • Share a live lead sheet with your sales team

What You'll Need

Requirement Details
InstantDM account Trendsetter, Trendsetter Pro, or any Multi plan
Google account Free
InstantDM API key Found at Settings → API in your InstantDM dashboard
Automation platform Make.com or Zapier (recommended)

Step 1: Create Your Spreadsheet

  1. Go to sheets.google.com and create a new spreadsheet.
  2. Name it Instagram Leads.
  3. Add headers in Row 1:
A B C D E F G H
Date Name Email Phone Instagram Flow Interest Event

Method 1: Via Make.com (Recommended)

Step 1: Set Up the Webhook

Follow Steps 1-4 in the Make.com integration guide.

Step 2: Add Google Sheets Module

  1. After the webhook trigger, click "+" and search for Google Sheets.
  2. Select Add a Row.
  3. Connect your Google account.
  4. Select your spreadsheet and sheet.

Step 3: Map Columns

Column Make.com Mapping
Date {{timestamp}}
Name {{data.response_variables.full_name}}
Email {{data.response_variables.email}}
Phone {{data.response_variables.phone}}
Instagram @{{data.username}}
Flow {{data.flow_name}}
Interest {{data.response_variables.interest}}
Event {{event}}

Step 4: Test and Activate

  1. Run once, trigger a test event, verify the row appears.
  2. Activate the scenario.

Method 2: Via Zapier

  1. Set up a webhook trigger per the Zapier guide.
  2. Add Google Sheets → Create Spreadsheet Row.
  3. Connect your Google account, select the spreadsheet.
  4. Map columns from the webhook data.
  5. Test and activate.

Method 3: Direct API (Google Sheets API)

Step 1: Set Up Google Service Account

  1. Go to console.cloud.google.com.
  2. Create a project and enable the Google Sheets API.
  3. Create a Service Account and download the JSON key file.
  4. Share your spreadsheet with the service account email (found in the JSON key).

Step 2: Build a Webhook Receiver

const express = require('express');
const { google } = require('googleapis');
const app = express();
app.use(express.json());

const SPREADSHEET_ID = 'your-spreadsheet-id';
const SHEET_NAME = 'Sheet1';

const auth = new google.auth.GoogleAuth({
  keyFile: './service-account-key.json',
  scopes: ['https://www.googleapis.com/auth/spreadsheets'],
});

const sheets = google.sheets({ version: 'v4', auth });

app.post('/instantdm-webhook', async (req, res) => {
  const { event, timestamp, data } = req.body;
  
  const row = [
    new Date(timestamp).toLocaleString(),
    data.response_variables?.full_name || '',
    data.response_variables?.email || '',
    data.response_variables?.phone || '',
    `@${data.username}`,
    data.flow_name || '',
    data.response_variables?.interest || '',
    event,
  ];
  
  try {
    await sheets.spreadsheets.values.append({
      spreadsheetId: SPREADSHEET_ID,
      range: `${SHEET_NAME}!A:H`,
      valueInputOption: 'USER_ENTERED',
      requestBody: { values: [row] },
    });
    
    res.status(200).json({ status: 'added' });
  } catch (error) {
    res.status(500).json({ status: 'error', message: error.message });
  }
});

app.listen(3000);

Building a Simple Dashboard

Pivot Table

  1. Select your data range.
  2. Go to Insert → Pivot table.
  3. Rows: Flow Name. Values: Count of Email (COUNTA).
  4. This shows leads per flow.

Charts

  • Bar chart: Leads per flow or per day
  • Pie chart: Interest distribution
  • Line chart: Leads over time (by date)

Useful Formulas

Formula Purpose
=COUNTA(C2:C) Total leads with email
=COUNTIF(H2:H,"flow_completed") Total flow completions
=COUNTIF(F2:F,"Lead Capture Flow") Leads from a specific flow
=COUNTIFS(A2:A,">="&TODAY()) Today's leads

Troubleshooting

Issue Solution
Row not appearing Check the automation platform execution log. Verify the spreadsheet ID and sheet name.
Wrong columns Ensure the column mapping matches your header order. Google Sheets uses column position, not header names.
"Quota exceeded" error Google Sheets API has a limit of 300 requests per minute. For high volume, batch writes or add a queue.
Service account can't access sheet Share the spreadsheet with the service account email address (it looks like name@project.iam.gserviceaccount.com).
Date formatting wrong Use USER_ENTERED as the valueInputOption so Google Sheets interprets dates correctly.

Frequently Asked Questions

Can Google Sheets handle high volume?

Google Sheets supports up to 10 million cells per spreadsheet. For most Instagram automation use cases, this is more than enough. If you're processing thousands of events daily, consider archiving old data monthly or using a database instead.

Should I use Google Sheets or Airtable?

Google Sheets is simpler and free. Airtable has better views (kanban, gallery), linked records, and built-in automations. Use Google Sheets for simple logging and analysis. Use Airtable if you want a more structured database experience.

Can I use Google Sheets as a data source for other tools?

Yes. Many tools can read from Google Sheets - dashboards (Google Data Studio/Looker Studio), email tools, and CRMs. Your spreadsheet becomes a central data hub.


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.