🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Stripe + Pipedrive: payments logged as clean deals

Lisa Granqvist Partner Workflow Automation Expert

Payments come in. Then the busywork starts: exporting Stripe data, hunting for the right contact in Pipedrive, and trying not to create a duplicate “John Smith” for the third time.

This is where sales ops gets dragged into admin, and agency owners feel it when follow-ups slip. Even a solo founder ends up second-guessing the pipeline. Stripe Pipedrive automation fixes that by logging every payment as a clean Person + Deal you can actually trust.

Below you’ll see exactly how the workflow runs, what it creates inside Pipedrive, and the few settings that make the “no duplicates” promise real.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Stripe + Pipedrive: payments logged as clean deals

The Problem: Payments Don’t Belong in Your Head

If Stripe is where money happens and Pipedrive is where follow-ups happen, the gap between them is expensive. Someone has to notice a payment, confirm it’s real, find the customer, and then create a deal that matches what was purchased. Miss a step and you get “paid customers” sitting in Stripe while your CRM shows nothing. Do it manually and you end up with inconsistent deal titles, wrong amounts, and duplicates that make reporting feel like a guessing game. Honestly, it’s the kind of admin that quietly steals focus every week.

It adds up fast. Here’s where it breaks down in day-to-day work.

  • A single payment can take about 10 minutes to verify, log, and link to the right person, especially when the email doesn’t perfectly match.
  • Duplicate contacts creep in because someone creates a new Person instead of searching properly, and then nobody knows which record is “the real one.”
  • Without a Stripe Event ID check, the same webhook can create multiple deals, which ruins pipeline totals and makes forecasting awkward.
  • Custom details like payment method or status get lost, so your team has to open Stripe again just to answer basic questions.

The Solution: Stripe → Pipedrive People + Deals, Automatically

This workflow listens for Stripe payment events and turns them into structured CRM records in Pipedrive. When Stripe sends a webhook, n8n captures the event, extracts the important fields (like event ID, type, and customer data), then verifies the event against Stripe’s API so you’re not trusting a random inbound payload. Next, it searches Pipedrive for a matching Person using the email in the Stripe data. If the person exists, it moves on. If not, it creates them and fills your custom fields (amount, payment method, status, source, and your Stripe Event ID field). Finally, it creates a Deal tied to that Person, so your pipeline reflects real revenue without manual entry.

The workflow starts with a Stripe webhook and a quick “field cleanup” step. Then it verifies the Stripe event, checks Pipedrive for an existing contact, blocks duplicates using the Stripe Event ID, and creates the deal only when it’s truly new.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you receive 20 Stripe payments a week. Manually, it’s maybe 10 minutes per payment to verify it, locate or create the person, create the deal, and fill custom fields. That’s about 3 hours of repetitive admin, plus the “wait, did we already log this one?” checks. With this workflow, you spend a few minutes once setting fields and credentials, then each payment is logged automatically as it happens, with duplicates blocked by the Stripe Event ID.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Stripe for payment events and customer data
  • Pipedrive to create people, deals, and custom fields
  • Stripe Secret API key (get it from Stripe Dashboard → Developers → API keys)

Skill level: Intermediate. You’ll copy API keys, paste webhook URLs, and map a few Pipedrive custom field IDs.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A Stripe payment hits your webhook. Stripe sends an HTTP POST to n8n when a payment succeeds (or the event type you choose), which means the automation runs in real time instead of waiting for someone to remember.

The event is cleaned up and verified. n8n extracts the event ID, event type, and core payload, then calls Stripe’s API to confirm the event is legitimate. This one step prevents a lot of headaches.

Pipedrive is searched, then updated safely. The workflow looks up a Person in Pipedrive using the email from Stripe. If the person doesn’t exist, it creates a new record and populates your custom fields (amount, payment method, status, source, Stripe Event ID).

A Deal is created only when it’s truly new. A duplicate-check compares Stripe Event ID values so the same event doesn’t produce multiple deals. When it passes, the workflow creates the deal linked to the right Person and pushes the amount into the fields you’ve defined.

You can easily modify the custom fields that get written to match your sales process, or switch the event types you listen for based on what “payment” means in your business. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Webhook Trigger

Set up the incoming Stripe webhook that starts the workflow.

  1. Add the Stripe Event Hook node as the trigger.
  2. Set HTTP Method to POST.
  3. Set Path to stripe/4ea76359-79a3-4724-8297-398cea3c0f21.
  4. Copy the generated webhook URL and register it in your Stripe webhook settings.

Step 2: Connect Stripe Event Verification

Normalize the incoming event and verify it against Stripe’s API.

  1. In Assign Event Fields, add three assignments: eventId with value ={{ $json.body.id }}, eventType with value ={{ $json.body.type }}, and payload with value ={{ $json.body.data.object }}.
  2. Connect Stripe Event HookAssign Event FieldsVerify Stripe Event to match the execution flow.
  3. In Verify Stripe Event, set URL to =https://api.stripe.com/v1/events/{{ $json.eventId }}.
  4. Credential Required: Connect your httpHeaderAuth credentials in Verify Stripe Event.

Step 3: Connect Pipedrive and Search for Contacts

Lookup the customer in Pipedrive using the email from the verified Stripe event.

  1. Add Find Contact Record and set Resource to person and Operation to search.
  2. Set Term to ={{ $json.data.object.customer_details.email }} and enable Return All.
  3. Credential Required: Connect your Pipedrive credentials in Find Contact Record.
  4. Wire Verify Stripe EventFind Contact RecordCheck Contact Exists.

⚠️ Common Pitfall: All Pipedrive nodes in this workflow require credentials, but none are configured. Be sure to add your Pipedrive credentials to Find Contact Record, Generate Contact, Create Deal Entry, and Append Deal Entry.

Step 4: Configure Conditional Routing and Duplicate Checks

Decide whether to create a new contact or append a deal based on existing records and event duplication checks.

  1. In Check Contact Exists, set the condition to check Left Value ={{ $json.item.emails[0] }} with operator exists.
  2. From Check Contact Exists, route the true output to Confirm Event Duplicate and the false output to Generate Contact.
  3. In Confirm Event Duplicate, set Left Value to ={{ $('Verify Stripe Event').item.json.id }} and Right Value to ={{ $('Verify Stripe Event').item.json.id }}.
  4. Route the true output of Confirm Event Duplicate to No Action, and the false output to Append Deal Entry.

Tip: The equality check in Confirm Event Duplicate currently compares the same value on both sides. Adjust this if you want real duplicate detection logic.

Step 5: Configure Contact Creation and Deal Actions

Create new Pipedrive contacts when missing and create or append deals based on the event flow.

  1. In Generate Contact, set Name to ={{ $('Verify Stripe Event').item.json.data.object.customer_details.email }} and Resource to person.
  2. In Generate ContactAdditional Fields, set Email to ={{ $('Verify Stripe Event').item.json.data.object.customer_details.email }}.
  3. In Create Deal Entry, set Title to =Deposit — {{ $json.email[0].value }} — {{ Number( $('Stripe Event Hook').item.json.body.data.object.amount_total || $('Stripe Event Hook').item.json.body.data.object.amount || 0 ) / 100 }}.
  4. In Append Deal Entry, use the same Title expression and set Value to ={{ Number( $('Stripe Event Hook').item.json.body.data.object.amount_total || $('Stripe Event Hook').item.json.body.data.object.amount || 0 ) / 100 }}.
  5. Set Person ID to ={{ $json.id }} in both Create Deal Entry and Append Deal Entry.

⚠️ Common Pitfall: Custom properties in Generate Contact, Create Deal Entry, and Append Deal Entry use placeholder keys like YOUR_AWS_SECRET_KEY_HERE. Replace these with real Pipedrive custom field keys.

Step 6: Test and Activate Your Workflow

Verify the workflow runs end-to-end and then activate it for production use.

  1. Use Stripe’s test webhook to send a sample event to the Stripe Event Hook URL.
  2. Confirm that Verify Stripe Event successfully retrieves the event from Stripe.
  3. Check that Find Contact Record finds an existing person or that Generate Contact creates a new one.
  4. Verify that Create Deal Entry or Append Deal Entry creates a deal with the expected Title and Value.
  5. Once successful, toggle the workflow to Active so new Stripe events sync automatically.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Stripe credentials can expire or be pasted incorrectly. If events stop verifying, check your Stripe API key in n8n credentials and confirm it matches the correct Stripe account mode (test vs live).
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Pipedrive custom fields need the correct field IDs, not just the field names. If data isn’t showing up, open Pipedrive settings, confirm the field IDs, and then recheck the mapping in the “create person” and “create deal” steps.

Frequently Asked Questions

How long does it take to set up this Stripe Pipedrive automation automation?

About an hour if your Pipedrive custom fields are ready.

Do I need coding skills to automate Stripe Pipedrive automation?

No. You will connect Stripe and Pipedrive, then paste in a few field IDs. The logic is already built into the workflow.

Is n8n free to use for this Stripe Pipedrive automation workflow?

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 Stripe API usage (typically negligible for simple event verification).

Where can I host n8n to run this automation?

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.

Can I customize this Stripe Pipedrive automation workflow for refunds and subscription cancellations?

Yes, but you’ll want to branch by Stripe event type in the “Assign Event Fields” step, then add new paths that update existing deals instead of always creating new ones. You can reuse the same “Find Contact Record” logic, then swap the “Create Deal Entry” action for an “update deal” action (or create a new deal stage for refunds). Common tweaks include marking a custom “status” field as refunded, adding a note to the Person, and stopping notifications when the payment status is incomplete.

Why is my Stripe connection failing in this workflow?

Usually it’s an API key problem or the wrong mode. Regenerate your Stripe secret key (make sure it matches live or test), update it in the “Verify Stripe Event” request, and retry with a fresh event. If the webhook is firing but verification fails, also confirm your endpoint is HTTPS and reachable from Stripe, because timeouts can look like auth errors.

How many payments can this Stripe Pipedrive automation automation handle?

A lot—practically, it’s limited by your n8n plan and server resources, not the workflow itself.

Is this Stripe Pipedrive automation automation better than using Zapier or Make?

Often, yes, because this flow needs verification, branching, and a duplicate-prevention check that’s easier to control in n8n. You can confirm Stripe events via an HTTP request, search and conditionally create records in Pipedrive, and stop duplicates with your Stripe Event ID field without paying extra for every conditional step. Zapier or Make can still work if your version is very simple, but once you care about “clean CRM data,” the logic grows quickly. If you’re unsure, run the workflow on a small set of test payments first and compare the records it creates. Talk to an automation expert and you can sanity-check the design before going live.

Once payments land in Pipedrive automatically, your pipeline stops being “best effort” and starts being reliable. Set it up, let it run, and put your attention back on sales conversations.

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.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal