
Track Pipedrive Deals in Google Sheets for Sales Pipeline Reporting
Description
Categories
🤖 AI & Machine Learning
Nodes Used
n8n-nodes-base.setn8n-nodes-base.coden8n-nodes-base.coden8n-nodes-base.mergen8n-nodes-base.pipedriven8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.googleSheets
PriceFree
Views0
Last Updated11/28/2025
workflow.json
{
"meta": {
"instanceId": "ad0113c344ee237399e44e9f11798b05baeb83a6196d514a9ae9d2ad71c3b5c9",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "da1b90d1-a828-484d-85f7-d67c9463d4de",
"name": "Get many deals1",
"type": "n8n-nodes-base.pipedrive",
"position": [
-528,
7312
],
"parameters": {
"filters": {},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"pipedriveApi": {
"id": "Tk6DUhlSCIuPlg0c",
"name": "Pipedrive account"
}
},
"typeVersion": 1
},
{
"id": "94915914-ea83-49c3-8f82-e60213af604a",
"name": "Sticky Note12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-624,
6912
],
"parameters": {
"color": 3,
"width": 288,
"height": 544,
"content": "### 2️⃣ Connect Pipedrive\n1. In **Pipedrive** → **Personal preferences → API** → copy your **API token** \n - URL shortcut: `https://{your-company}.pipedrive.com/settings/personal/api` \n2. In **n8n** → **Credentials → New → Pipedrive API** \n - **Company domain**: `{your-company}` (the subdomain in your Pipedrive URL) \n - **API Token**: paste the token from step 1 → **Save** \n3. In the **Pipedrive Tool** node, select your Pipedrive credential and (optionally) set filters (e.g., owner, label, created time).\n"
},
"typeVersion": 1
},
{
"id": "e206c83f-d4e9-421e-b84c-7ef3200357ed",
"name": "When clicking ‘Execute workflow’",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-656,
7312
],
"parameters": {},
"typeVersion": 1
},
{
"id": "845b7a0b-d4bc-4041-8c76-0c4d7dec578b",
"name": "Categorize stages",
"type": "n8n-nodes-base.code",
"position": [
-192,
6912
],
"parameters": {
"jsCode": "// Code node: Rename stage_id numbers to names\n// Input: items with item.json.stage_id\n// Output: item.json.stage_name (string)\n\nconst stageMap = {\n 1: \"Prospecting\",\n 2: \"Qualified\",\n 3: \"Proposal Sent\",\n 4: \"Negotiation\",\n 5: \"Closed Won\"\n};\n\nreturn items.map(item => {\n const stageId = item.json.stage_id;\n item.json.stage_name = stageMap[stageId] || `Unknown (${stageId})`;\n return item;\n});\n"
},
"typeVersion": 2
},
{
"id": "a9191249-7b71-4218-ac59-4e6586f9c7f6",
"name": "Today's Date",
"type": "n8n-nodes-base.code",
"position": [
-144,
7376
],
"parameters": {
"jsCode": "return [\n {\n json: {\n badges: {\n today: new Date().toISOString().split('T')[0] \n }\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "c8317b16-77f2-4d03-b727-63d59ae6d0f1",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
64,
7088
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3.2
},
{
"id": "a6d7d5de-64e3-42b8-8fe3-eb49c4809b31",
"name": "Sticky Note13",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
6848
],
"parameters": {
"color": 3,
"width": 352,
"height": 384,
"content": "### 2️⃣ Prepare Your Google Sheet\n#### Connect your Data in Google Sheets\n- Use this format: **[Sample Sheet](https://docs.google.com/spreadsheets/d/1u0i-sfPxmfmm5YMU3ekEdQgdOHA6OgnbI-VwuRMDq4Q/edit?gid=0#gid=0)**\n- Row 1 = **column names** \n- In n8n, use **Google Sheets OAuth2** → pick your **Spreadsheet** and **Worksheet**\n"
},
"typeVersion": 1
},
{
"id": "80f49397-1db1-44bf-b768-4abe02dc9a97",
"name": "Sticky Note58",
"type": "n8n-nodes-base.stickyNote",
"position": [
-688,
6688
],
"parameters": {
"color": 7,
"width": 1488,
"height": 928,
"content": "# 📋 Pipedrive → Google Sheets \n\nThis workflow pulls deals from **Pipedrive**, categorizes them by stage, and logs them into a **Google Sheet** for reporting and tracking. "
},
"typeVersion": 1
},
{
"id": "e6e97e79-a17e-4c5a-9779-a82fc7f5d12f",
"name": "Sticky Note15",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1136,
6688
],
"parameters": {
"width": 400,
"height": 928,
"content": "\n\n## ⚙️ Setup Instructions \n\n### 1️⃣ Connect Pipedrive \n1. In **Pipedrive** → **Personal preferences → API** → copy your **API token** \n - URL shortcut: `https://{your-company}.pipedrive.com/settings/personal/api` \n2. In **n8n** → **Credentials → New → Pipedrive API** \n - **Company domain**: `{your-company}` (the subdomain in your Pipedrive URL) \n - **API Token**: paste the token from step 1 → **Save** \n3. In the **Pipedrive Tool** node, select your Pipedrive credential and (optionally) set filters (e.g., owner, label, created time). \n\n---\n\n### 2️⃣ Prepare Your Google Sheet \n#### Connect your Data in Google Sheets \n- Use this format: **[Sample Sheet](https://docs.google.com/spreadsheets/d/1u0i-sfPxmfmm5YMU3ekEdQgdOHA6OgnbI-VwuRMDq4Q/edit?gid=0#gid=0)** \n- Row 1 = **column names** \n- In **n8n**, create credentials: **Google Sheets (OAuth2)** \n- Log in with your Google account and select your **Spreadsheet** + **Worksheet** \n\n---\n\n\n## 📬 Contact \nNeed help customizing this (e.g., pulling only active deals, calculating win-rates, or sending dashboards)? \n\n📧 **[email protected]** \n🔗 **[Robert Breen](https://www.linkedin.com/in/robert-breen-29429625/)** \n🌐 **[ynteractive.com](https://ynteractive.com)**\n"
},
"typeVersion": 1
},
{
"id": "14a3cd0a-d1b1-4a57-82fa-4a2e05d7cd1a",
"name": "Store in google",
"type": "n8n-nodes-base.googleSheets",
"position": [
528,
7072
],
"parameters": {
"columns": {
"value": {
"Date": "={{ $json.Date }}",
"Deal": "={{ $json.Deal }}",
"stage_name": "={{ $json.stage_name }}"
},
"schema": [
{
"id": "Date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "stage_name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "stage_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Deal",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Deal",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u0i-sfPxmfmm5YMU3ekEdQgdOHA6OgnbI-VwuRMDq4Q/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1u0i-sfPxmfmm5YMU3ekEdQgdOHA6OgnbI-VwuRMDq4Q",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u0i-sfPxmfmm5YMU3ekEdQgdOHA6OgnbI-VwuRMDq4Q/edit?usp=drivesdk",
"cachedResultName": "Pipedrive Progress"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "HlBW2puZbuCCq8jJ",
"name": "Google Sheets account 3"
}
},
"typeVersion": 4.7
},
{
"id": "d7536de3-e3cc-41cf-a60d-2b295358cbde",
"name": "Set Fields",
"type": "n8n-nodes-base.set",
"position": [
272,
7088
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "fc41847f-2c15-43ed-b627-970f270088ea",
"name": "Date",
"type": "string",
"value": "={{ $json.badges.today }}"
},
{
"id": "321b11b5-040f-4a34-b99b-55be66f97a39",
"name": "stage_name",
"type": "string",
"value": "={{ $json.stage_name }}"
},
{
"id": "cb9b3673-6826-400c-8d84-5cd29c095935",
"name": "Deal",
"type": "string",
"value": "={{ $('Get many deals1').item.json.title }}"
}
]
}
},
"typeVersion": 3.4
}
],
"pinData": {},
"connections": {
"Merge": {
"main": [
[
{
"node": "Set Fields",
"type": "main",
"index": 0
}
]
]
},
"Set Fields": {
"main": [
[
{
"node": "Store in google",
"type": "main",
"index": 0
}
]
]
},
"Today's Date": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Get many deals1": {
"main": [
[
{
"node": "Categorize stages",
"type": "main",
"index": 0
}
]
]
},
"Categorize stages": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Execute workflow’": {
"main": [
[
{
"node": "Get many deals1",
"type": "main",
"index": 0
}
]
]
}
}
}