This workflow corresponds to n8n.io template #9275 — we link there as the canonical source.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "mXqbFVOOlSD6kNIC",
"name": "Stripe \u2192 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
],
"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": "YOUR_AWS_SECRET_KEY_HERE",
"value": "={{ Number( $('Stripe Webhook').item.json.body.data.object.amount_total || $('Stripe Webhook').item.json.body.data.object.amount || 0 ) / 100 }}"
},
{
"name": "YOUR_AWS_SECRET_KEY_HERE",
"value": "Stripe"
},
{
"name": "YOUR_AWS_SECRET_KEY_HERE",
"value": "={{ $('Stripe Webhook').item.json.body.data.object.payment_method_types[0] }}"
},
{
"name": "YOUR_AWS_SECRET_KEY_HERE",
"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": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "7bb40f1f-e751-4f36-9938-23cbf4c9f183",
"name": "Append a deal",
"type": "n8n-nodes-base.pipedrive",
"position": [
-592,
752
],
"parameters": {
"title": "=Deposit \u2014 {{ $json.email[0].value }} \u2014 {{ 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": "YOUR_AWS_SECRET_KEY_HERE",
"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 (\u201cPerson\u201d) in Pipedrive\n- Create a \u201cDeal\u201d record corresponding to that payment\n- Log custom fields like amount, source, payment method, status\n\n### It\u2019s 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 \u2192 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 \u2192 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 \u2014 {{ $json.email[0].value }} \u2014 {{ 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": "YOUR_AWS_SECRET_KEY_HERE",
"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 \u2192 skip to deal creation.\n - If not \u2192 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,
"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
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
httpHeaderAuth
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
n8n instance (cloud or self-hosted) with HTTPS reachable webhook endpoint Stripe account and secret API key Pipedrive account with API access and custom fields defined Users should create custom fields in Pipedrive and copy their field IDs (e.g. amount, payment method, status,…
Source: https://n8n.io/workflows/9275/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This n8n template provides enterprise-level version control for your workflows using GitHub integration. Stop losing hours to broken workflows and manual exports – get proper commit history, visual di
This flow creates dummy files for every item added in your *Arrs (Radarr/Sonarr) with the tag .
This workflow acts as a central API gateway for all technical indicator agents in the Binance Spot Market Quant AI system. It listens for incoming webhook requests and dynamically routes them to the c
Sign PDF documents with legally-compliant digital signatures using X.509 certificates. Supports multiple PAdES signature levels (B, T, LT, LTA) with optional visible stamps.
📡 This workflow serves as the central Alpha Vantage API fetcher for Tesla trading indicators, delivering cleaned 20-point JSON outputs for three timeframes: , , and . It is required by the following a