Automate Google Sheets → Pipedrive Lead Import (Auto-Sync) in n8n — Step by Step

Your sales team lives in Pipedrive. Your lead capture — the webinar signups, the trade-show badge scans, the affiliate spreadsheet a partner keeps sending you — lives in Google Sheets. Between the two

Automate Google Sheets → Pipedrive Lead Import (Auto-Sync) in n8n — Step by Step

Your sales team lives in Pipedrive. Your lead capture — the webinar signups, the trade-show badge scans, the affiliate spreadsheet a partner keeps sending you — lives in Google Sheets. Between the two sits a person copying rows into the CRM by hand, usually late, usually with typos, usually forgetting half of them. Every lead that waits in a spreadsheet is a lead your competitor already called. This article shows you how to close that gap with an n8n workflow that watches your Leads sheet and turns every new row into a Pipedrive contact and deal automatically, every five minutes.

The problem: your spreadsheet is a lead graveyard

Google Sheets is where leads land because it's frictionless. Anyone can paste a row, a Google Form can append to it, a Zapier-free integration can dump into it. That's exactly why it becomes a bottleneck: the sheet fills up faster than anyone imports it into the CRM.

The manual process fails in three predictable ways. First, speed — research on lead response time is brutally consistent: contact a lead within five minutes and you're an order of magnitude more likely to qualify them than at 30 minutes. A row that sits overnight is effectively cold. Second, data quality — hand-keying names, emails and company values into Pipedrive introduces typos that break future automations and deduplication. Third, coverage — when someone is busy, the import simply doesn't happen, and nobody notices until the pipeline looks thin at month-end.

The underlying issue is that a spreadsheet has no concept of "new." It doesn't push. Someone has to remember to pull. That memory is the single point of failure, and it's the part you should automate first.

The solution: a polling sync that treats every new row as a lead event

The fix is a scheduled n8n workflow that polls your Google Sheet on an interval, detects rows that haven't been processed yet, and for each one creates (or updates) a Pipedrive person, an organization, and a deal — then marks the row as done so it never gets imported twice.

The core nodes are simple: a Schedule Trigger, a Google Sheets node to read rows, a small filter to skip already-synced rows, Pipedrive nodes to create the records, and a final Google Sheets update to write back a status. Every five minutes, without anyone touching it, the sheet drains into your CRM. Below is exactly how to build it.

Step-by-step setup in n8n

1. Add the Schedule Trigger. Drop a Schedule Trigger node as your entry point. Set the interval to Minutes → 5. This is your heartbeat. If your lead volume is low, 15 minutes is fine and lighter on API quota; for high-intent inbound, keep it at 5.

2. Read the sheet. Add a Google Sheets node, operation Get Row(s). Authenticate with a Google OAuth2 credential (or a service account if the sheet is shared to it). Point it at your spreadsheet by ID and select the Leads tab. Make sure your sheet has a header row — n8n maps columns to field names from that row, so Name, Email, Phone, Company, and a Synced column are what you'll reference downstream. Enable Return all rows.

3. Filter out already-synced rows. This is the step people skip and regret. Add a Filter (or IF) node with the condition that the Synced column is empty — {{ $json.Synced }} is empty. Only unprocessed rows pass. Without this, every run re-imports every row and you get duplicate deals multiplying every five minutes. The write-back in step 6 is what keeps this filter meaningful.

4. Create or find the Pipedrive person. Add a Pipedrive node, resource Person, operation Create. Map Name to {{ $json.Name }}, and add email and phone under additional fields: {{ $json.Email }} and {{ $json.Phone }}. Authenticate with a Pipedrive API Token credential (Settings → Personal preferences → API in Pipedrive). If you want to avoid duplicate contacts, precede this with a Pipedrive → Search Person by email and branch on whether it returns a result — reuse the existing person ID if found.

5. Create the organization and the deal. Optionally add a Pipedrive → Organization → Create node mapped to {{ $json.Company }}. Then add a Pipedrive → Deal → Create node. Set the deal Title to something scannable like {{ $json.Name }} — {{ $json.Company }}, attach the person via the person ID returned from step 4 ({{ $json.id }}), link the organization ID, and set the target Stage and Pipeline so leads land in your intake stage, not limbo. This is where the row becomes a real, actionable opportunity your reps can see.

6. Write back the status. Close the loop with a final Google Sheets → Update Row node. Write yes (or a timestamp, {{ $now }}) into the Synced column for the row you just processed, matched on the row number or a unique key like email. This is what makes the whole thing idempotent: once a row is marked, the filter in step 3 excludes it forever. Skip this and you'll flood Pipedrive with duplicates.

7. Activate. Save, run once manually to confirm a test row flows end to end into Pipedrive, then toggle the workflow to Active. From now on it runs on its own.

Why this beats the manual process

Sub-five-minute response. The interval trigger means the longest a lead ever waits is one polling cycle. Pair the deal creation with a Pipedrive activity or a notification and your reps get pinged while intent is still hot.

Zero data drift. Field mapping is deterministic. The email in row 200 lands in the Pipedrive email field exactly as typed — no transposed digits, no leads dropped because someone got distracted mid-copy.

Complete coverage. The workflow doesn't take lunch, doesn't go on vacation, and doesn't forget. Every row gets processed, which means your pipeline reporting finally reflects reality instead of "however many we got around to importing."

Full audit trail. The Synced column plus n8n's execution log give you a record of exactly what was imported and when. If a lead is missing from Pipedrive, you can see in seconds whether it was ever synced.

It scales for free. Whether the sheet gets 3 rows a day or 300, the same workflow handles it. Your only cost is API quota, which the five-minute cadence keeps comfortably within limits.

Common pitfalls (and how to avoid them)

Duplicate deals. The number-one failure is forgetting the write-back or the filter. If you don't mark rows as synced, every run re-imports the whole sheet. Always build steps 3 and 6 together — they're two halves of the same idempotency mechanism.

Header mismatches. n8n maps fields by header name. If someone renames the Email column to E-mail, your mapping breaks silently and contacts get created with blank emails. Lock the header row, and consider a validation IF-node that skips rows where email is empty before they ever reach Pipedrive.

API rate limits and quota. A five-minute poll on a large sheet with a full read every cycle can burn Google Sheets API quota. If your sheet grows past a few thousand rows, archive synced rows to a second tab or use a more targeted read so you're not pulling the entire history every run.

Expired credentials. Google OAuth tokens and Pipedrive API tokens can be revoked or rotated. Add an Error Trigger workflow that pings you on Slack or email when an execution fails, so a broken credential surfaces immediately instead of after a silent week of un-imported leads.

Race conditions on manual edits. If a human edits the sheet while the workflow runs, row numbers can shift. Match your update on a stable unique key (email or a lead ID column) rather than raw row position whenever possible.

Build it once, and lead entry stops being a task anyone owns — it just happens. The setup above takes maybe 30 minutes. If you'd rather not wire the nodes and handle the deduplication and write-back edge cases yourself, the ready-made template below drops in with the logic already solved.

Google Sheets → Pipedrive Lead Import (Auto-Sync)
PRONTO PARA USAR

Ja construimos isso pra voce

Nao comece do zero. O Google Sheets → Pipedrive Lead Import (Auto-Sync) e um workflow n8n pronto para instalar — conecta suas ferramentas em minutos, sem codigo.

Instalar por $39.0 →