Vovy saves each user's first traffic source at signup, links it to Stripe payments, and shows revenue by channel so you spend time where it pays.
Which channel brings me paying customers, not just visitors?
How it works
- Capture first source at signup: Cursor saves the first UTM source and referrer onto each user's profile row, so it survives even if they sign up days later.
- Use PostHog's initial source: Vovy checks PostHog's initial UTM source person property is filled, which gives the same answer for users you already have.
- Link payments to users: It makes sure Stripe customers carry your user ID in metadata, so each payment matches a person and their channel.
- Join the data: Vovy joins signups, sources and payments, using a Supabase query or PostHog's data warehouse, into one table.
- Show revenue by channel: You get a chart card of signups, paying customers and revenue per channel, with the best and worst clearly marked.
What you provide
- Analytics installed
- Access to Stripe and Supabase
What you get
- First source saved per user
- Payments linked to users
- Revenue by channel chart
FAQ
What about people who come back through Google later?
This uses first touch, where they first found you. It's the simplest honest view early on. Multi-touch models need more data.
Why do so many show as direct?
Links from apps, DMs and some emails don't pass a referrer. Using UTM links on everything you post shrinks that bucket.
Does this work for past customers?
Partly. PostHog's initial source covers users tracked since install; older ones will show as unknown.
Related tasks
All tasks