n8n + n8n: Pipedrive Deal Won → Stripe Invoice + Slack Win + Sheets Log

A deal just closed in Pipedrive. Your sales rep drags the card to "Won," feels good for three seconds, and then the real work starts: someone has to create the Stripe invoice, someone has to tell the

n8n + n8n: Pipedrive Deal Won → Stripe Invoice + Slack Win + Sheets Log

A deal just closed in Pipedrive. Your sales rep drags the card to "Won," feels good for three seconds, and then the real work starts: someone has to create the Stripe invoice, someone has to tell the team so finance and delivery know money is coming, and someone has to log the win in a spreadsheet for reporting. That handoff is where deals go to rot. Invoices get created two days late, the Slack celebration never happens because the rep forgot, and the revenue log is always one week behind reality.

This article walks through a single n8n workflow that removes every manual step between "Deal Won" and "cash requested." Mark the deal Won in Pipedrive and three things fire automatically: a Stripe invoice is created for the customer, a formatted win message hits your Slack revenue channel, and a row is appended to a Google Sheet for reporting. No Zapier task limits, no glue code to maintain, and it runs on your own n8n instance.

The Problem: The Post-Sale Handoff Is Silent and Slow

The moment between a closed deal and a sent invoice is pure operational drag. In most teams it looks like this: the rep closes, then either forgets to notify billing or pings someone in a DM that gets buried. Billing manually copies the deal value, the customer email, and the line items into Stripe — retyping data that already exists in the CRM. Finance finds out about the revenue whenever they next open the pipeline. And leadership's "wins this week" number is a spreadsheet someone updates by hand every Friday, if they remember.

Each of these steps is individually small. Together they cost you days of cash-flow delay, introduce transcription errors on invoices, and kill the team momentum that comes from seeing wins land in real time. Worse, the data is inconsistent: the deal value in Pipedrive, the invoice amount in Stripe, and the number in your revenue sheet drift apart because a human is copying between three systems. When your board asks "what did we close last month?" you get three different answers.

The Solution: One Event, Three Automatic Actions

The fix is to treat "Deal Won" as a single trigger event and let n8n do the fan-out. Pipedrive fires a webhook the instant a deal's status changes to won. n8n catches it, pulls the full deal and person details, and then runs three actions in sequence: create the Stripe invoice, post to Slack, and append to Sheets. Because it's event-driven, there's zero polling delay — the invoice request exists within seconds of the rep dragging the card.

The architecture is deliberately linear so that each step can use data enriched by the previous one. The Stripe node returns an invoice ID and a hosted invoice URL; that URL goes straight into both the Slack message and the Sheets row, so your celebration includes a clickable "view invoice" link and your log is fully auditable. One source of truth (Pipedrive), one automated pipeline, three synchronized destinations.

Step-by-Step: Building It in n8n

1. Pipedrive Trigger node. Add the Pipedrive Trigger node and set the event to updated.deal. Pipedrive doesn't have a native "won only" webhook, so you filter downstream. Authenticate with a Pipedrive API token (Settings → Personal → API). The node exposes a webhook URL that Pipedrive registers automatically when you activate the workflow.

2. Filter for Won. Add an IF node right after the trigger. Set condition {{ $json.current.status }} equals won, and add a second condition checking {{ $json.previous.status }} is not equal to won. The second check prevents re-fires when someone edits an already-won deal. Only the "true" branch continues.

3. Enrich the deal. The webhook payload is thin. Add a Pipedrive node with resource Deal, operation Get, passing {{ $json.current.id }}. Then add a second Pipedrive node, resource Person, operation Get, using the deal's person_id. This gives you the customer's name and email — required for Stripe.

4. Find or create the Stripe customer. Add a Stripe node, resource Customer, operation Search, querying email:'{{ $json.email }}'. Follow it with an IF node: if no customer is returned, branch to a Stripe → Customer → Create node using the person's name and email; otherwise reuse the existing customer ID. This prevents duplicate customer records in Stripe.

5. Create the invoice. Add a Stripe node, resource Invoice, operation Create, with the customer ID from the previous step and collection_method set to send_invoice with a 14-day due date. To itemize, add a preceding HTTP Request node calling POST /v1/invoiceitems (the n8n Stripe node's invoice-item coverage is limited, so a raw call with your Stripe credential is cleaner) using {{ $json.value * 100 }} for the amount in cents and {{ $json.currency }} for currency. The Create Invoice node returns id and hosted_invoice_url.

6. Celebrate in Slack. Add a Slack node, operation Send Message, to your #wins channel. Use a Block Kit message: 🎉 *{{ $node["Get Deal"].json.title }}* just closed — *{{ $node["Get Deal"].json.formatted_value }}*! Owner: {{ $node["Get Deal"].json.owner_name }}. Invoice: {{ $json.hosted_invoice_url }}. The clickable invoice link means finance can act without leaving Slack.

7. Log the win. Add a Google Sheets node, operation Append Row, mapping columns for date ({{ $now.toISO() }}), deal title, value, currency, customer email, Stripe invoice ID, and the hosted invoice URL. This sheet becomes your single, always-current revenue log — no Friday spreadsheet ritual.

The Benefits: Speed, Accuracy, and Momentum

The most immediate win is cash flow. Invoices go out within seconds of a deal closing instead of one or two business days later, which measurably shortens your collection cycle. Over a quarter, moving invoice creation from "eventually" to "instant" pulls real cash forward.

The second is data integrity. Because the deal value flows from Pipedrive into Stripe and Sheets untouched by human hands, your CRM, your billing system, and your reporting always agree. There's no transcription error putting $4,500 on an invoice for a $5,400 deal. The third, quieter benefit is team momentum: a real-time #wins feed with the actual dollar amount and the rep's name creates a visible drumbeat of progress that a buried DM never will. And because it runs on self-hosted n8n, you're not paying per-task fees — a team closing 200 deals a month pays nothing extra for 200 executions.

Common Pitfalls and How to Avoid Them

Double-firing invoices. The number-one mistake is skipping the previous.status check. Pipedrive fires updated.deal on any edit, so if a rep renames an already-won deal, you'll cut a second invoice. Always gate on "was not won before, is won now."

Currency and cents. Stripe expects amounts in the smallest currency unit (cents). Passing the raw deal value of 4500 creates a $45.00 invoice, not $4,500. Multiply by 100, and confirm the currency code from the deal matches a currency enabled in your Stripe account.

Missing person or email. Deals without a linked person, or persons without an email, will break the Stripe customer step. Add an IF guard before Stripe: if email is empty, route to a Slack alert in an ops channel ("Deal won but no email — invoice needs manual creation") instead of letting the workflow error out silently.

Testing against live Stripe. Never build this against your live Stripe key. Use test-mode credentials, close a fake deal, and verify the full chain — invoice, Slack, Sheets row — before swapping to production. Turn on n8n's error workflow so any failed execution pings you rather than dropping a win on the floor.

Rate limits and retries. If you close deals in bursts, enable "Retry On Fail" on the Stripe nodes (three attempts, 5-second wait) to ride out transient API errors. Combined with the idempotency of the status check, this makes the workflow safe to run at real sales volume.

Pipedrive Deal Won → Stripe Invoice + Slack Win + Sheets Log
PRONTO PARA USAR

Ja construimos isso pra voce

Nao comece do zero. O Pipedrive Deal Won → Stripe Invoice + Slack Win + Sheets Log e um workflow n8n pronto para instalar — conecta suas ferramentas em minutos, sem codigo.

Instalar por $59.0 →