Pipedrive to Google Sheets, clean pipeline reports
Pipeline reporting breaks in the most annoying way. You export a CSV, paste it into a sheet, fix stage names, and then your chart still looks wrong because somebody moved a deal after you pulled the file.
If you’re a sales manager, a marketing lead trying to forecast, or a small agency owner who runs weekly client calls, this Pipedrive Sheets reports automation stops the spreadsheet babysitting. You get clean stage names and a dated snapshot, so your numbers stay consistent.
This workflow pulls deals from Pipedrive, labels stages into human-friendly names, stamps the run date, and appends everything into Google Sheets. You’ll see what it fixes, what you need, and how the flow works.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: Pipedrive to Google Sheets, clean pipeline reports
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/pipedrive.svg' width='40' height='40' /></div><br/>Get many deals1"]
n1@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Categorize stages"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Today's Date"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n5@{ icon: "mdi:database", form: "rounded", label: "Store in google", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Fields", pos: "b", h: 48 }
n4 --> n6
n6 --> n5
n3 --> n4
n0 --> n2
n2 --> n4
n1 --> n0
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n1 trigger
class n5 database
class n2,n3 code
classDef customIcon fill:none,stroke:none
class n0,n2,n3,n4 customIcon
The Challenge: Keeping pipeline reports clean and consistent
Manual pipeline reporting is deceptively expensive. It’s not just exporting deals from Pipedrive and dropping them into a spreadsheet. You also end up translating stage IDs into something readable, cleaning up columns so charts don’t break, and trying to remember when you pulled the data so “this week” and “last week” actually mean something. Then someone updates a deal, and your snapshot is gone. The next meeting starts with arguing about the spreadsheet instead of the pipeline.
It adds up fast. Here’s where it usually breaks down in real teams.
- You waste about 30–60 minutes per report run exporting, pasting, and fixing formatting.
- Stage names end up inconsistent across tabs, which quietly ruins charts and pivot tables.
- Without a dated snapshot, you can’t trust trend lines because the “same” report changes after deals move stages.
- Errors slip in when someone filters wrong, pulls the wrong owner, or overwrites a column.
The Fix: Automatically snapshot Pipedrive deals into Sheets
This workflow turns your pipeline into a simple habit: run it, get a fresh snapshot in Google Sheets, move on. It starts by fetching your deals from Pipedrive (with stage IDs included). Next, it categorizes each stage ID into a friendly stage label like Prospecting, Qualified, Proposal, Negotiation, or Closed Won. It also generates “today’s date” every time the workflow runs, so you always know when that snapshot was taken. Finally, it assigns clean output fields and appends the rows to your reporting sheet, keeping every run as a dated record instead of overwriting yesterday’s view.
The workflow begins with a manual launch, which is perfect for weekly reporting or month-end checks. Pipedrive provides the raw deal + stage data, then the stage labeling and date stamping make it report-ready. Google Sheets becomes your running history, not a fragile one-off export.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you run a weekly pipeline report and you have about 80 deals. Manually, exporting from Pipedrive (10 minutes), pasting and cleaning columns (20 minutes), fixing stage names (20 minutes), and adding a “snapshot date” you can trust (10 minutes) is roughly an hour per week. With this workflow, you click manual run, wait a minute or two for the pull and append, then open the sheet. The busywork disappears, and your weekly chart uses the same clean columns every time.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Pipedrive to pull deals and stage IDs.
- Google Sheets to store snapshots for reporting.
- Pipedrive API token (get it from Pipedrive Personal preferences → API)
Skill level: Beginner. You’ll connect two accounts, pick a spreadsheet, and (optionally) tweak stage labels and filters.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
Manual run from n8n. You trigger the workflow when you want a fresh snapshot (weekly, daily, or right before a meeting).
Deals are pulled from Pipedrive. The workflow fetches many deals in one go, keeping the stage IDs so they can be standardized for reporting.
Stages get labeled and a date is generated. A mapping step converts internal stage IDs into friendly names, and another step adds today’s date so every row is tied to a snapshot.
Clean rows are appended to Google Sheets. The workflow merges the deal data and the date, assigns output fields (the columns you want), and writes new rows to your worksheet.
You can easily modify which deals are pulled (owner, label, active-only) and what columns you store (value, expected close date) based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
Start the workflow with a manual test trigger so you can validate the data flow before scheduling.
- Add the Manual Launch Trigger node as your workflow trigger.
- Leave Manual Launch Trigger parameters as default since it has no required settings.
- Connect Manual Launch Trigger to Retrieve Deals List to start the data pull.
Step 2: Connect Pipedrive
Retrieve your full list of deals from Pipedrive.
- Add the Retrieve Deals List node.
- Set Operation to
getAlland enable Return All astrue. - Credential Required: Connect your pipedriveApi credentials.
- Connect Retrieve Deals List to Label Pipeline Stages.
Step 3: Set Up Processing Nodes
Normalize stage names, generate a date badge, and merge all data for output.
- In Label Pipeline Stages, keep the JavaScript mapping that converts
stage_idvalues to human-readablestage_name. - In Generate Current Date, keep the JavaScript that sets
badges.todayusingnew Date().toISOString().split('T')[0]. - Configure Combine Data Streams with Mode set to
combineand Combine By set tocombineAll. - Connect Label Pipeline Stages to Combine Data Streams, and connect Generate Current Date to Combine Data Streams.
- In Assign Output Fields, set the following assignments:
- Set Date to
={{ $json.badges.today }}. - Set stage_name to
={{ $json.stage_name }}. - Set Deal to
={{ $('Retrieve Deals List').item.json.title }}. - Connect Combine Data Streams to Assign Output Fields.
stage_id values differ from the mapping in Label Pipeline Stages, your output will show Unknown (ID). Update the map to match your Pipedrive pipeline.Step 4: Configure the Google Sheets Output
Append the cleaned deal data into your spreadsheet.
- Add the Append to Sheets node.
- Credential Required: Connect your googleSheetsOAuth2Api credentials.
- Set Operation to
append. - Set Document to
[YOUR_ID]and select the spreadsheet namedPipedrive Progress. - Set Sheet Name to
gid=0(Sheet1). - Map columns to expressions:
- Date →
={{ $json.Date }}, Deal →={{ $json.Deal }}, stage_name →={{ $json.stage_name }}. - Connect Assign Output Fields to Append to Sheets.
Date, Deal, and stage_name to match the mapping.Step 5: Test and Activate Your Workflow
Validate that the workflow syncs Pipedrive deals to your spreadsheet correctly.
- Click Execute Workflow to run the Manual Launch Trigger manually.
- Confirm Retrieve Deals List returns deal items and Label Pipeline Stages adds
stage_name. - Verify Assign Output Fields produces
Date,Deal, andstage_namefields. - Check Append to Sheets to ensure rows appear in
Pipedrive Progress→Sheet1. - When successful, switch the workflow to Active for production use.
Watch Out For
- Pipedrive API tokens can get rotated, or a user account can lose access. If the workflow suddenly pulls zero deals, check the Pipedrive credential in n8n and confirm the token still works in Pipedrive settings.
- If you add filters in the Pipedrive node (owner, label, created time), it’s easy to filter out “everything” by accident. When results look wrong, temporarily remove filters and confirm the raw deal pull matches what you see in Pipedrive.
- Google Sheets appends will fail if your worksheet name changed, columns moved, or the sheet hit limits. Check the selected Spreadsheet + Worksheet in the Google Sheets node and keep row 1 as stable column headers.
Common Questions
About 20 minutes if your Pipedrive token and Google account are ready.
Yes. You won’t write code, but you will connect credentials and choose the right spreadsheet and worksheet.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Google Workspace costs if you’re on a paid plan, but this workflow itself doesn’t require paid API calls like OpenAI.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
You can tweak the Pipedrive “Retrieve Deals List” node to pull only active deals, a specific owner, or a specific label. Then adjust the stage mapping in “Label Pipeline Stages” so the names match your pipeline (or add new stages). Common customizations include adding deal value and expected close date in “Assign Output Fields,” writing to a separate worksheet per team, and creating a second append that writes a “Closed Won only” snapshot for finance.
Usually it’s an expired or replaced API token. Regenerate the token in Pipedrive, update the credential in n8n, and confirm the company domain (your Pipedrive subdomain) matches what you actually use. If it still fails, check whether the user who created the token still has permission to view the deals you’re trying to pull.
For most small teams, it’s effectively “as much as you need.” On n8n Cloud, capacity depends on your plan’s monthly executions, while self-hosting has no execution cap (your server and Google Sheets limits become the bottleneck). In practice, pulling a few hundred deals and appending them to a sheet is usually fine; the bigger risk is hitting very large spreadsheets over time, so many teams start a new tab monthly or quarterly.
Often, yes. Zapier and Make can move deals into Sheets, but stage labeling and snapshot logic tends to get clunky once you go beyond a simple “copy fields” setup. n8n handles custom mapping cleanly, and you’re not forced into extra paid steps just to merge a date stamp with a deal list. Self-hosting also matters here because scheduled reporting runs add up over a month. That said, if you only need a two-step “new deal → add row” flow, Zapier or Make might be quicker. Talk to an automation expert if you want a second opinion.
Once your pipeline snapshots land in Sheets automatically, reporting stops being a weekly scramble. The workflow handles the repetitive parts, so you can focus on the deals that actually need attention.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.