Documentation

CameFrom docs

Learn how CameFrom tracks links, signups, and Stripe revenue for SaaS attribution.

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.

  1. A visitor lands on your site with a tracking parameter in the URL.
  2. Our script stores that campaign in browser cookies for up to 90 days.
  3. When they create an account, your app tells CameFrom who they are.
  4. When they pay through your connected Stripe account, we match the payment to that person and their original campaign.
If someone visits without a tracking parameter, they are counted under a Direct campaign. If a visitor already has a stored campaign, a later visit with a different link does not overwrite it — first touch wins.

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.

Example
<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.

The script must run on the same site where tracked links land. If marketing and app are on different domains, install the script on both or ensure users land on the domain where tracking is installed.

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.

After account creation
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.

OAuth & social login

CameFrom does not integrate directly with Google, Discord, GitHub, or other auth providers. Hook identify into your existing user-created flow — the auth method does not matter.

  • Email / password — call identify in your signup handler.
  • Google / GitHub — call identify when a new user row is created in your OAuth callback.
  • Clerk, Auth0, Supabase — call identify from their user-created webhook or callback.
  • Magic links — call identify on first successful registration.
If a provider hides the email (e.g. Apple Hide My Email), pass your user ID when creating Stripe Checkout sessions.

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:

  1. User ID on the Stripe Checkout session
  2. Customer email matching an identified user from signup
  3. Campaign slug in Stripe metadata (optional)
Stripe Checkout (server-side)
await stripe.checkout.sessions.create({
  client_reference_id: user.id,
  metadata: { via_user_id: user.id },
  // ... your line items, mode, etc.
});
Unmatched payments appear on the Payments page as "Not attributed."

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.