Stripe to KlickTipp, instant buyer tags and emails
That moment after a Stripe sale should feel great. Instead, you’re hunting for the buyer email, copying totals into a list, and hoping the right confirmation email actually went out. Miss one field and your follow-up sequence is suddenly nonsense.
This Stripe KlickTipp automation hits course creators first, honestly. But marketing managers running paid campaigns and small agencies selling fixed-scope packages deal with the same cleanup. The payoff is simple: every successful checkout gets the right tags, the right data, and the right confirmation email without you touching anything.
Below you’ll see how the workflow captures Stripe checkout details, enriches the contact in KlickTipp, and triggers the exact campaign you want for that purchase.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Stripe to KlickTipp, instant buyer tags and emails
flowchart LR
subgraph sg0["New checkout session completed Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Subscribe buyer to KlickTipp", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/stripe.svg' width='40' height='40' /></div><br/>Getting invoice link"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Getting charge ID"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Getting line items"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/stripe.svg' width='40' height='40' /></div><br/>New checkout session completed"]
n2 --> n1
n3 --> n2
n1 --> n0
n4 --> n3
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n4 trigger
class n2,n3 api
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n4 customIcon
The Problem: Post-purchase follow-ups break when data is messy
Stripe is great at taking payments. KlickTipp is great at running campaigns. The gap is everything in between: getting the buyer into the right list, with the right purchase context, fast enough that your confirmation email doesn’t arrive an hour late (or never). Most teams patch this with manual exports, copy-paste, or a “generic buyer” tag. It works until it doesn’t. One wrong tag, one missing receipt link, one duplicated contact record, and you spend your afternoon doing support instead of marketing.
The friction compounds. Here’s where it breaks down.
- Someone has to look up the Stripe session, then pull line items and totals by hand for every order.
- Confirmation campaigns get triggered late, which means buyers ask “Did my payment go through?” in the meantime.
- If product names and payment IDs aren’t stored in custom fields, your support team has no quick way to verify what was purchased.
- Tags drift over time, so your segmentation stops matching reality and upsells get sent to the wrong people.
The Solution: Stripe checkout data syncs into KlickTipp automatically
This workflow listens for a successful Stripe Checkout event, then immediately pulls the details you actually need for marketing and fulfillment. It fetches the purchased products (line items), looks up the related charge/payment identifier, and retrieves invoice details like the receipt URL. Then it creates or updates the contact in KlickTipp and fills dedicated custom fields such as “Stripe | Products,” “Stripe | Total,” “Stripe | Payment ID,” and “Stripe | Receipt URL.” Finally, it applies the tag you define (for example, “Stripe Checkout” or a product-specific tag), which triggers your confirmation sequence inside KlickTipp. No spreadsheet exports. No “I’ll do it later.”
The workflow starts at Stripe Checkout Session.completed. It enriches the transaction using Stripe and HTTP requests so you get products, totals, payment ID, and a receipt link. Then KlickTipp gets the updated contact plus the exact tag that starts the right follow-up.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you sell a course and get 20 purchases in a week. Manually, you might spend about 10 minutes per order pulling products, totals, and the receipt link, then tagging the buyer in KlickTipp, which is roughly 3 hours of repetitive work. With this workflow, the “work” is basically zero after setup: Stripe triggers it instantly, n8n fetches the details in the background, and KlickTipp gets updated automatically. You might only spend a few minutes a week spot-checking records.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Stripe to capture Checkout Session payments
- KlickTipp to tag contacts and send confirmations
- Stripe API key (get it from the Stripe Dashboard)
Skill level: Beginner. You’ll connect accounts, create a few custom fields in KlickTipp, then test with a Stripe test payment.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A Stripe checkout completes. The workflow triggers on Stripe’s “Checkout Session.completed” event, so it only runs when payment is successful.
Purchase details get collected. n8n calls Stripe endpoints to retrieve line items (what they bought), then fetches the charge/payment identifier and invoice details, including a receipt URL.
The buyer is enrolled in KlickTipp with context. A community KlickTipp node creates or updates the contact, then stores the purchase info into custom fields like product names, total amount, payment ID, and receipt link.
A tag triggers the right email sequence. KlickTipp applies a tag such as “Stripe Checkout” or “Order: Course XYZ,” and your confirmation campaign starts immediately.
You can easily modify the tag logic to route different products into different campaigns based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Stripe Trigger
This workflow starts when Stripe confirms a successful checkout session.
- Add the Checkout Completion Trigger node and set Events to
checkout.session.completed. - Credential Required: Connect your stripeApi credentials in Checkout Completion Trigger.
- Save the node so n8n registers the webhook endpoint with Stripe.
Step 2: Connect Stripe Line Item Retrieval
This step pulls line items from the completed checkout session using Stripe’s API.
- Add the Retrieve Line Items node and set URL to
=https://api.stripe.com/v1/checkout/sessions/{{ $json.data.object.id }}/line_items. - Enable Send Headers and set the header Stripe-Version to
2025-05-28.basil. - Set the authorization header to
Basic [CONFIGURE_YOUR_TOKEN]with your Stripe API token. - Connect Checkout Completion Trigger → Retrieve Line Items.
⚠️ Common Pitfall: The authorization header is a placeholder. Replace [CONFIGURE_YOUR_TOKEN] with your actual Stripe API token or the request will fail.
Step 3: Fetch Charge and Invoice Details
This sequence converts the payment intent into a charge and then retrieves charge details.
- Add the Fetch Charge Identifier node and set URL to
=https://api.stripe.com/v1/payment_intents/{{ $('Checkout Completion Trigger').item.json.data.object.payment_intent }}. - Enable Send Headers and set authorization to
Basic [CONFIGURE_YOUR_TOKEN]. - Add the Fetch Invoice Details node, set Resource to
charge, and set Charge ID to={{ $json.latest_charge }}. - Credential Required: Connect your stripeApi credentials in Fetch Invoice Details.
- Connect Retrieve Line Items → Fetch Charge Identifier → Fetch Invoice Details.
Step 4: Configure KlickTipp Enrollment
This step subscribes the buyer in KlickTipp and maps Stripe charge data into custom fields.
- Add the Enroll Buyer in KlickTipp node and set Resource to
subscriberand Operation tosubscribe. - Set Email to
={{ $json.billing_details.email }}. - Set List ID to
358895and Tag ID to13201265. - Map the custom fields exactly as configured:
- field219541 →
={{ $json.amount }} - field220266 →
={{ $json.receipt_url }} - field219542 →
={{ $('Checkout Completion Trigger').item.json.data.object.id }} - fieldFirstName →
={{ // Access the full name string from the JSON input $json.billing_details.name // Remove any leading/trailing whitespace ?.trim() // Split the name string into an array using one or more whitespace characters (handles multiple spaces) .split(/\s+/) // Select the first word from the array (typically the first name) [0] }} - fieldLastName →
={{ // Access the full name from the input JSON $json.billing_details.name // Remove any leading/trailing whitespace ?.trim() // Split the string into an array of words using any whitespace .split(/\s+/) // Get the last word in the array — typically the last name .at(-1) }} - field219540 →
={{ $('Retrieve Line Items').item.json.data.map(item => item.description) }}
- field219541 →
- Credential Required: Connect your klickTippApi credentials in Enroll Buyer in KlickTipp.
- Connect Fetch Invoice Details → Enroll Buyer in KlickTipp.
Step 5: Test and Activate Your Workflow
Validate the full Stripe-to-KlickTipp flow before turning it on for production.
- Use Stripe’s test mode to complete a checkout session that triggers Checkout Completion Trigger.
- Run the workflow manually and confirm the execution path follows Checkout Completion Trigger → Retrieve Line Items → Fetch Charge Identifier → Fetch Invoice Details → Enroll Buyer in KlickTipp.
- Verify Enroll Buyer in KlickTipp creates a subscriber with mapped fields and tags in KlickTipp.
- When successful, click Activate to enable the workflow for live checkouts.
Common Gotchas
- Stripe credentials can expire or be set to the wrong mode. If it suddenly stops, check the n8n Stripe credential settings and confirm you’re using the correct test or live API key.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- KlickTipp custom fields must match your mapping exactly. If “Stripe | Receipt URL” is missing (or the field type is wrong), the contact may sync but your emails will show blank placeholders.
Frequently Asked Questions
About 30 minutes if your Stripe and KlickTipp accounts are ready.
No. You’ll mainly connect credentials and map a few fields. The only “technical” part is testing a Stripe checkout in test mode once.
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 costs (normal payment processing fees) and any KlickTipp plan requirements for API access.
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.
Yes, and it’s one of the best reasons to use this setup. You can add a Switch step to branch based on the Stripe payment link or product ID, then apply a different KlickTipp tag for each offer. Common customizations include separate onboarding sequences per product, upsell tags for buyers of specific items, and different confirmation templates that use placeholders like [[Stripe | Products]] and [[Stripe | Receipt URL]].
Usually it’s the wrong API key (test vs. live) or an expired/rotated key in your n8n Stripe credentials. It can also happen if the webhook event isn’t actually firing because the Stripe Checkout session wasn’t completed. Less common, but real: rate limits if you suddenly process a lot of events at once.
A lot. On n8n Cloud, your cap is mainly your monthly executions, and self-hosting removes the execution limit (your server becomes the limit). In practice, most small teams can process hundreds of purchases a week comfortably because each order is just a handful of API calls plus one contact sync.
Often, yes, if you care about data cleanliness and branching by product. This workflow pulls extra details (line items, invoice/receipt URL, payment IDs), and those extra lookups usually mean more steps in Zapier or Make, which can get pricey or hard to maintain. n8n also gives you a self-hosted path, which matters once you start processing lots of purchases. If your needs are basic (one tag, one email, done), Zapier can be quicker to click together. Talk to an automation expert if you want a second opinion on the tradeoffs.
Once this is running, your “new sale” routine disappears. The workflow keeps buyer data clean and confirmations consistent, so you can focus on the next campaign instead of the last transaction.
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.