Skip to main content
20% off 3 months · code LAUNCH20 · until 31 October
For founders with their first customers

Someone paid. Where from?

Follow each customer back to their first visit.

Free plan, no time limit · No card · Stripe stays read-only

The short answer

Record where each visitor came from on their first visit, carry it to their signup, and match the signup to the Stripe customer by email or user id. Then every payment has a source: the site, the post, the campaign. The first step can't be done afterwards: Stripe knows who paid, not how they found you.

Paying customers grouped by the referring site of their first visit, with collected revenue and MRR, next to a map of where they are. Paying customers grouped by the referring site of their first visit, with collected revenue and MRR, next to a map of where they are. Example data
  1. How many paying customers could be traced, and how.
  2. Customers, revenue and MRR per source.
  3. Where your paying customers are.
Click through it in the live demo
Why it matters

Your first customers tell you where the next ones are.

Your first ten customers are the most valuable data you'll get. If six came from one community, that community is your market. If they came from ten different places, you don't have a channel yet.

Stripe can't tell you. It knows the email and the card, not the post, the search or the newsletter. That link has to be recorded on your side, at the first visit, and carried through to the payment.

Asking customers how they heard about you helps, but people tend to remember the last thing they saw, not the first.

Start free Free plan, no time limit · No card
What to do

Connect the first visit to the payment.

  1. 01

    Record the source on the first visit

    Save the referring site and the UTM values the first time a visitor arrives, in a first-party cookie or on the signup itself.

  2. 02

    Carry it to the signup

    When they sign up, store that first source with their email or your user id.

  3. 03

    Match Stripe customers to signups

    By email, or better by your own user id in the Stripe customer's metadata, so a different billing email still matches.

  4. 04

    Count per source

    Group paying customers and revenue by source, and compare it with what each source cost you.

With Nordva Launch

Every paying customer, traced to a first visit.

Launch's script records each visitor's first touch. The waitlist and identify carry it to the signup, and the Stripe sync matches customers by visitor id, user id or email. The Insights page lists paying customers by source and by country, and says how many it could trace and how, so you know how complete the picture is.

People who joined your waitlist are traced even without the script: their signup kept its source.

Referring sites and countries on every plan. UTM groupings and each person's visit history on Builder.

Results in 3 steps

Set up in about five minutes.

  1. 01

    Paste one line

    About two minutes

    Add the script tag to your site, or run npx nordva@latest init and let your AI coding agent wire it in. The first visit shows up within a minute.

  2. 02

    Connect Stripe, read-only

    About three minutes

    Create a restricted Stripe key with read permissions and paste it. Launch can only read; disconnecting deletes everything it synced. Every plan, Free included.

  3. 03

    See who pays, and why

    From the first visit

    Where visitors come from, which of them sign up, what they ask you for, and which source brought the ones who pay, on one record per person.

Start free Free plan, no time limit · No card
Not for you if

When Launch is the wrong tool.

  • You sell through something other than Stripe (Paddle, Lemon Squeezy, an app store): Launch reads Stripe only.
FAQ

Questions, answered.

Can I do this without a tracking script?

Yes, for people who join a waitlist or sign up through a form: record the source on the signup and match by email. Launch does that on every plan with no cookie. The script adds the people who pay without joining a waitlist first.

What if the customer used a different email in Stripe?

Match on your own user id instead: put it in the Stripe customer's metadata and call identify with it after login. Launch tries the visitor id, then your user id, then the email, then the waitlist email.

First touch or last touch?

Launch credits the first touch: the source of the first visit. Early on, that answers the question that matters most: how did this person find you at all?

Trace your next customer to their first visit.

Start free: add the script, connect Stripe read-only, and every payment gets a source.