
Stripe → Pipedrive (Automatic Person + Deal Creation)
Description
Categories
🤖 AI & Machine Learning
Nodes Used
n8n-nodes-base.ifn8n-nodes-base.ifn8n-nodes-base.setn8n-nodes-base.noOpn8n-nodes-base.webhookn8n-nodes-base.pipedriven8n-nodes-base.pipedriven8n-nodes-base.pipedriven8n-nodes-base.pipedriven8n-nodes-base.stickyNote
PriceFree
Views0
Last Updated11/28/2025
workflow.json
{
"id": "mXqbFVOOlSD6kNIC",
"meta": {
"instanceId": "af9fe5bb0163dc4cbb85dd6fb4c45fe63eac1327996aeecd696d8f7aed2d776b"
},
"name": "Stripe → Pipedrive (Automatic Person + Deal Creation)",
"tags": [
{
"id": "Af6k6it2U9my6q9Q",
"name": "pipedrive",
"createdAt": "2025-10-05T07:43:13.180Z",
"updatedAt": "2025-10-05T07:43:13.180Z"
},
{
"id": "YYaRjcTPQ5F8VMgV",
"name": "stripe",
"createdAt": "2025-10-05T07:43:08.134Z",
"updatedAt": "2025-10-05T07:43:08.134Z"
},
{
"id": "qtuQF3Lc141mfYiM",
"name": "n8n template",
"createdAt": "2025-09-11T07:44:43.900Z",
"updatedAt": "2025-09-17T10:07:33.999Z"
}
],
"nodes": [
{
"id": "ee4fcc57-849c-4e74-bf2c-4ca93c6b6651",
"name": "Stripe Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-1696,
128
],
"webhookId": "4ea76359-79a3-4724-8297-398cea3c0f21",
"parameters": {
"path": "stripe/4ea76359-79a3-4724-8297-398cea3c0f21",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2.1
},
{
"id": "b85ff242-0fb5-4c49-b2aa-d4ba693c0eff",
"name": "Search a person",
"type": "n8n-nodes-base.pipedrive",
"position": [
-1696,
752
],
"parameters": {
"term": "={{ $json.data.object.customer_details.email }}",
"resource": "person",
"operation": "search",
"returnAll": true,
"additionalFields": {}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "2c2d5603-c273-4e81-b8dd-92231c6c5490",
"name": "Create a person",
"type": "n8n-nodes-base.pipedrive",
"position": [
-1328,
752
],
"parameters": {
"name": "={{ $('Check if event id is same').item.json.data.object.customer_details.email }}",
"resource": "person",
"additionalFields": {
"email": [
"={{ $('Check if event id is same').item.json.data.object.customer_details.email }}"
],
"customProperties": {
"property": [
{
"name": "b3fb48b7267e8c29b5e38ea00ac7d6a304a35aa7",
"value": "={{ Number( $('Stripe Webhook').item.json.body.data.object.amount_total || $('Stripe Webhook').item.json.body.data.object.amount || 0 ) / 100 }}"
},
{
"name": "f727eccc234c3b4587fc699549bdfdce7b9f1ff1",
"value": "Stripe"
},
{
"name": "8f3e8ea545f8d8b75b9379758dc10b999fd764c1",
"value": "={{ $('Stripe Webhook').item.json.body.data.object.payment_method_types[0] }}"
},
{
"name": "7e78e1cec09a8d4c47d8f2538b2fced5ae11851e",
"value": "={{ $('Stripe Webhook').item.json.body.data.object.payment_status }}"
}
]
}
}
},
"typeVersion": 1
},
{
"id": "02872a84-39fe-4ec1-8d79-4ed6e86025c1",
"name": "Set field",
"type": "n8n-nodes-base.set",
"position": [
-1440,
128
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "5700f6e5-5f73-4e6e-8015-f89703e98fec",
"name": "eventId",
"type": "string",
"value": "={{ $json.body.id }}"
},
{
"id": "6597729e-e95d-47ab-b2ef-5cf7826b7c6f",
"name": "eventType",
"type": "string",
"value": "={{ $json.body.type }}"
},
{
"id": "0c3660f2-6465-470c-bf81-ddeea902f7de",
"name": "payload",
"type": "object",
"value": "={{ $json.body.data.object }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "04913575-544f-4bba-85de-2d80aad0abc0",
"name": "Check if event id is same",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1168,
128
],
"parameters": {
"url": "=https://api.stripe.com/v1/events/{{ $json.eventId }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "bAvGF9Yo6VYTfyir",
"name": "Header Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "7bb40f1f-e751-4f36-9938-23cbf4c9f183",
"name": "Append a deal",
"type": "n8n-nodes-base.pipedrive",
"position": [
-592,
752
],
"parameters": {
"title": "=Deposit — {{ $json.email[0].value }} — {{ Number(\n $('Stripe Webhook').item.json.body.data.object.amount_total\n || $('Stripe Webhook').item.json.body.data.object.amount\n || 0\n) / 100 }}",
"additionalFields": {
"value": "={{ Number(\n $('Stripe Webhook').item.json.body.data.object.amount_total\n || $('Stripe Webhook').item.json.body.data.object.amount\n || 0\n) / 100 }}",
"person_id": "={{ $json.id }}",
"customProperties": {
"property": [
{
"name": "2c3f7005cae14a31a00631ecb0c9a9ac9164212b",
"value": "={{ $('Set field').item.json.eventId }}"
}
]
}
}
},
"typeVersion": 1
},
{
"id": "42ebf9ab-1cc6-4afb-9a39-84e187b726b3",
"name": "If event id exist",
"type": "n8n-nodes-base.if",
"position": [
-864,
656
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "267434a5-e6e1-4c2f-95d4-a30cd1774f7b",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('Check if event id is same').item.json.id }}",
"rightValue": "={{ $('Check if event id is same').item.json.id }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "4d41cc67-1961-42cf-8513-0d89105bec43",
"name": "if person exists",
"type": "n8n-nodes-base.if",
"position": [
-1520,
752
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "571afebb-46e3-4694-8156-d198e558b638",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.item.emails[0] }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "b052c83a-3de5-486e-9935-18f0bf9ef15d",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2368,
-96
],
"parameters": {
"color": 6,
"width": 592,
"height": 400,
"content": "## Setup Guide \n**Author:** Krishna Sharma\n\n\n## Prerequisites / Requirements\n- n8n instance (cloud or self-hosted) with HTTPS reachable webhook endpoint\n- Stripe account and secret API key\n- Pipedrive account with API access and custom fields defined\n- Users should create custom fields in Pipedrive and copy their field IDs (e.g. amount, payment method, status, Stripe Event ID)\n"
},
"typeVersion": 1
},
{
"id": "8cbdb7ab-47e3-4003-aecb-33485cbb8c44",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
-96
],
"parameters": {
"color": 4,
"width": 736,
"height": 400,
"content": "## Description \n**This workflow connects Stripe to Pipedrive. Whenever a new payment (or checkout success) occurs in Stripe, this automation will:\n- Fetch the full Stripe event data\n- Find or create a customer (“Person”) in Pipedrive\n- Create a “Deal” record corresponding to that payment\n- Log custom fields like amount, source, payment method, status\n\n### It’s ideal for \n- SaaS \n- Subscription businesses\n- Agencies, or \n- Teams who want payments mirrored inside their CRM without manual work."
},
"typeVersion": 1
},
{
"id": "dd170e8d-469f-47f9-9172-0f2f26c415f2",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2368,
336
],
"parameters": {
"color": 5,
"width": 592,
"height": 608,
"content": "## How it works (Step-by-Step)\n**Stripe Webhook:** n8n triggers on payment events from Stripe via an HTTP POST.\n\n**Edit / Set node:** Extracts eventId, eventType, and payload.\n\n**HTTP Request:** Confirms Stripe event via Stripe API (adds security).\n\n**Search Person:** Looks up Pipedrive contact by email from the Stripe payload.\n\n**IF:** Checks whether the person exists.\n - If exists → skip to deal creation.\n - If node - Check if Event id is not the same\n - If same - Skip the deal creation\n - If different - Create a deal linked to that person with the payment amount\n - If not → create new Person.\n\n**Create Person:** Adds new Pipedrive contact, populates custom fields (amount, payment method, status, source).\n\n**Create Deal:** Creates a deal linked to that person with the payment amount."
},
"typeVersion": 1
},
{
"id": "5e28dc28-7999-4361-82f0-e6856a8ae2d8",
"name": "Create a deal",
"type": "n8n-nodes-base.pipedrive",
"position": [
-1168,
752
],
"parameters": {
"title": "=Deposit — {{ $json.email[0].value }} — {{ Number(\n $('Stripe Webhook').item.json.body.data.object.amount_total\n || $('Stripe Webhook').item.json.body.data.object.amount\n || 0\n) / 100 }}",
"additionalFields": {
"value": "={{ Number(\n $('Stripe Webhook').item.json.body.data.object.amount_total\n || $('Stripe Webhook').item.json.body.data.object.amount\n || 0\n) / 100 }}",
"person_id": "={{ $json.id }}",
"customProperties": {
"property": [
{
"name": "2c3f7005cae14a31a00631ecb0c9a9ac9164212b",
"value": "={{ $('Set field').item.json.eventId }}"
}
]
}
}
},
"typeVersion": 1
},
{
"id": "a2d4afb9-d0cf-40a9-8da9-d94b126a6d55",
"name": "Do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
-400,
608
],
"parameters": {},
"typeVersion": 1
},
{
"id": "ee468b0d-cae8-4a13-b187-f0eec0c6d1c7",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
336
],
"parameters": {
"width": 752,
"height": 608,
"content": "# Step 3 - Checks if event is not same to avoid duplicate deal creation\n\n**If node:** Check if Event id is same\n- If True- Skip the deal creation and does nothing\n- If False - Create a deal linked to that person with the payment amount"
},
"typeVersion": 1
},
{
"id": "1e7ffe51-e6af-4829-97fe-59b92cd2a933",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1744,
-96
],
"parameters": {
"width": 768,
"height": 400,
"content": "# Step 1 - Initial setup\n**Stripe Webhook:** n8n triggers on payment events from Stripe\n\n**Edit / Set node:** Extracts eventId, eventType, and payload.\n\n**HTTP Request:** Confirms Stripe event via Stripe API (adds security)."
},
"typeVersion": 1
},
{
"id": "cfdb8846-c87c-40e7-8c8a-61c22ae6d1fd",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1744,
336
],
"parameters": {
"width": 768,
"height": 608,
"content": " # Step 2 - Search contact\n\n **Search Person:** Looks up Pipedrive contact by email from the Stripe payload.\n\n **IF:** Checks whether the person exists.\n - If exists → skip to deal creation.\n - If not → create new Person.\n\n#### \n**Create Person:** Adds new Pipedrive contact, populates custom fields (amount, payment method, status, source).\n\n **Create Deal:** Creates a deal linked to that person with the payment amount."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "2237b3ce-4c15-4a80-bc92-0c8abb0eb0f2",
"connections": {
"Set field": {
"main": [
[
{
"node": "Check if event id is same",
"type": "main",
"index": 0
}
]
]
},
"Stripe Webhook": {
"main": [
[
{
"node": "Set field",
"type": "main",
"index": 0
}
]
]
},
"Create a person": {
"main": [
[
{
"node": "Create a deal",
"type": "main",
"index": 0
}
]
]
},
"Search a person": {
"main": [
[
{
"node": "if person exists",
"type": "main",
"index": 0
}
]
]
},
"if person exists": {
"main": [
[
{
"node": "If event id exist",
"type": "main",
"index": 0
}
],
[
{
"node": "Create a person",
"type": "main",
"index": 0
}
]
]
},
"If event id exist": {
"main": [
[
{
"node": "Do nothing",
"type": "main",
"index": 0
}
],
[
{
"node": "Append a deal",
"type": "main",
"index": 0
}
]
]
},
"Check if event id is same": {
"main": [
[
{
"node": "Search a person",
"type": "main",
"index": 0
}
]
]
}
}
}