Introduction
CameFrom is link attribution for SaaS founders. It answers one question: which links, posts, or campaigns actually turned into paying customers — not just clicks or signups.
You share tracked links like yoursite.com/?via=twitter. When someone visits, signs up, and later pays through Stripe, CameFrom ties that revenue back to the link that brought them in.
- One website per CameFrom account
- Unlimited campaigns and tracked links
- 90-day first-touch attribution window
- Stripe Connect for read-only payment matching
- Dashboard with visitors, signups, and revenue by campaign
How attribution works
CameFrom uses first-touch attribution. The first marketing link someone clicks is the campaign that gets credit for their signup and payments — even if they come back days later without a tracking parameter.
- A visitor lands on your site with a tracking parameter in the URL.
- Our script stores that campaign in browser cookies for up to 90 days.
- When they create an account, your app tells CameFrom who they are.
- When they pay through your connected Stripe account, we match the payment to that person and their original campaign.
Tracked links & campaigns
Add a tracking parameter to any URL you share. CameFrom reads them in this priority order: via, then ref, then utm_campaign.
https://yoursite.com/?via=twitter https://yoursite.com/?via=newsletter-jan https://yoursite.com/?ref=producthunt https://yoursite.com/?utm_campaign=launch-week
Campaigns are created automatically when a new tracking slug appears. You do not need to pre-create them — though you can rename and manage them in the dashboard.
Naming campaigns
Use short, descriptive slugs: twitter, reddit-thread, bio-link, partner-acme. Each slug becomes its own row in your dashboard.
Installing the script
Copy the tracking script from Settings or onboarding and paste it before the closing </head> tag on every page of your site.
<script async src="https://your-camefrom-domain.com/api/script/YOUR_SITE_ID"></script>
The script runs in your visitors' browsers. It assigns an anonymous visitor ID, reads the campaign from the URL when present, stores it in cookies, and sends a pageview to CameFrom. It does not modify your site's UI or collect passwords.
Signup tracking
After someone creates an account, call CameFrom.identify once with your internal user ID and their email. This links the anonymous visitor to a real user and records the signup against their stored campaign.
CameFrom.identify(user.id, { email: user.email });- Call identify only when a new account is created — not on every login.
- Use your database user ID.
- Pass the email the user signed up with when you have it.
Stripe Connect
Connect your Stripe account in CameFrom via OAuth. This is your Stripe account — where your customers pay you — separate from billing for CameFrom Pro.
CameFrom receives read-only payment events from your connected account to match payments to campaigns. We never move money or access your Stripe secret keys.
- Checkout payments
- Payment Intents
- Subscription invoices and renewals
- Refunds (subtracted from the original campaign)
Payment matching
When a payment succeeds on your connected Stripe account, CameFrom attributes it in this order:
- User ID on the Stripe Checkout session
- Customer email matching an identified user from signup
- Campaign slug in Stripe metadata (optional)
await stripe.checkout.sessions.create({
client_reference_id: user.id,
metadata: { via_user_id: user.id },
// ... your line items, mode, etc.
});Dashboard & metrics
The dashboard shows performance across campaigns for 7, 30, 90 days, or all time.
- Visitors — browsers that hit your site with a campaign
- Signups — accounts created after identify was called
- Paying customers — customers with attributed payments
- Revenue — attributed payment amounts minus refunds
Billing & trial
CameFrom Pro is €100 per year or €12 per month after a 14-day free trial — your choice at checkout. Payment details are collected at the end of onboarding; you are not charged until the trial ends.
- Manage or cancel from Settings → Billing
- Dashboard access requires an active trial or subscription
- Unlimited campaigns included on one website
Troubleshooting
Signups not showing
Confirm identify runs after account creation and the script is installed on the signup page.
Payments not attributed
- Stripe Connect must be connected.
- Pass client_reference_id when creating Checkout.
- Ensure identify used the same user ID and email.
Zero visitors on a campaign
Test the tracked link in an incognito window. Ad blockers or strict cookie settings can prevent tracking.