LeadJourney for SaaS
The complete setup for SaaS companies – connect your ad platforms, track every lifecycle stage from sign-up to paying customer, bring purchases and MRR in through Stripe, fold your sales-assisted pipeline in via your CRM, and see true CAC, payback, LTV and ROAS per campaign, ad set and ad.
You sell software on a subscription, your funnel runs over days or weeks, and most of the moments that matter – trial started, user activated, plan upgraded – happen inside your product, not on a marketing page. This is the end-to-end playbook for SaaS companies: connect your ad platforms, track every lifecycle stage, bring revenue in through Stripe, fold in your sales-assisted pipeline, and let LeadJourney calculate CAC, payback, LTV and ROAS down to the individual ad.
What you'll be able to see
For every channel → campaign → ad set → ad: clicks, cost, sign-ups, trials, paying customers, revenue / MRR, CAC, ROAS and payback – so you know which campaign brings trials that convert and stay, and which one quietly fills your funnel with churn.
Two motions, one workspace
Most SaaS run two go-to-market motions at once: a self-serve / product-led flow (sign-up → trial → self-checkout) and a sales-assisted flow (demo booked → opportunity → closed deal). LeadJourney tracks both in the same workspace, so paid spend is measured against all the revenue it produces – not just the self-serve half.
The chain you're building
LeadJourney stitches together the click you paid for, the in-product behaviour it caused, and the recurring revenue it eventually produced:
Ad click → tracked visitor → free sign-up → trial → paying customer → MRR.
The catch that's unique to SaaS: the later stages fire server-side, days later, long after the browser is gone. The fix is one idea you'll set up in step 3 – capture the click ID once at sign-up, store it on the user, and replay it on every later event. If you want the concept first, read How attribution works.
What you'll set up
| Step | Covers | Why it matters |
|---|---|---|
| 1. The advertiser foundation | Ad platforms, tracking domain, script | Syncs spend and tracks every click – nothing attributes without it. |
| 2. Map your funnel | Self-serve vs sales-assisted stages | Decides which events you send and what your reports show. |
| 3. In-product lifecycle events | Sign-up, trial, activation, upgrade | Ties stages that fire days later, server-side, to the original ad. |
| 4. Connect Stripe | Purchases & MRR | Revenue attributes itself – unlocks ROAS, CAC payback and LTV. |
| 5. CRM & scheduler | Sales-assisted deals & demos | Brings the human-touch pipeline into the same reports. |
| 6. SaaS reporting | CAC, payback, LTV, ROAS | The numbers a SaaS team actually steers on. |
Build the advertiser foundation
Connect the ad platforms you spend on so cost syncs automatically, add a first-party tracking domain, and install the tracking script so every click and page view is recorded. This is the same base every workspace needs – the Advertiser playbook walks through it once, then come back here for the SaaS-specific parts.
Advertiser playbook
The foundation: connect ad platforms, set up a tracking domain, install the script.
- Connect Google Ads · Meta · LinkedIn · Bing
- Set up a custom tracking domain and install the tracking script
B2B SaaS leans on LinkedIn
If LinkedIn is a core channel for you, Connect LinkedIn Ads so its cost syncs and clicks are tagged – the same way Meta and Google are.
Map your SaaS funnel
Decide which stages exist in your product and name each event after what your team already says. Pick from the two motions – most SaaS use a mix:
| Motion | Typical stages → events |
|---|---|
| Self-serve / PLG | Free sign-up (FreeSignup) → Trial started (TrialStarted) → Trial ended (TrialEnded) → Purchase (WonClient) |
| Sales-assisted | Demo booked (BookedCall) → Showed up (ShowedUp) → Qualified (QualifiedLead) → Won deal (WonClient) |
Track your full SaaS funnel
The complete event-by-event guide for the self-serve lifecycle, with code.
You don't need every stage on day one
Two or three well-chosen stages already give a usable funnel. Start with sign-up and purchase, then add trials and activation once those are flowing.
Wire your in-product lifecycle events
Here's the SaaS twist: Trial Started, Activated and Upgraded happen inside your app, often in a webhook or a nightly cron with no browser in sight – so you can't read the click ID again when they fire. The fix is the single most important idea in SaaS tracking:
Capture the click ID once, store it on the user, replay it forever
At sign-up, read localStorage.getItem('clickId') and save it on the user record (a column
like lj_click_id). Every later event reads that stored value back and sends it along – one
capture, reused for the whole customer journey. Always send the user's email too, as a durable
backup match key.
Track your full SaaS funnel
The capture-and-replay pattern, the server route, and each lifecycle event with code.
The deep dive on the sign-up event – including carrying the click ID through Google / Microsoft SSO – is in Track sign-ups in your app.
Connect Stripe for revenue and MRR
Purchases carry real money, so let the Stripe integration attribute them with no code: map a
payment succeeded (or subscription created) Stripe event onto your WonClient conversion and
revenue is attributed automatically. The tracking script even decorates your Stripe Payment Links
with the click ID, so payments tie back to the right campaign on their own.
Connect Stripe
Bring purchases and subscription revenue in automatically – no code.
Decide how recurring revenue shows up
A subscription pays every month. Set WonClient to Edit conversion with new data for current
MRR / plan value, or Keep original data, increment payout for total collected. Net out
cancellations with a negative revenue on a Stripe refund, or a Churned event. Full detail
in Events & the Events Manager and the
SaaS funnel guide.
Bring in your sales-assisted pipeline
If prospects book a demo and a rep closes the deal, fold that motion in so paid spend is measured against closed revenue, not just self-serve checkouts. Connect your scheduler so demo bookings attribute to the ad, and your CRM so opportunities and won deals flow back automatically.
Connect your CRM
Sync opportunities and won deals from HubSpot, Pipedrive, Close or Attio.
Build SaaS reporting
With spend on one side and revenue/MRR on the other, the CAC, payback, LTV and ROAS views fall out of the data. Use the Report Builder to slice cost ÷ paying customers per campaign (CAC) and revenue per campaign (LTV/ROAS), then pin the views your team watches to a Dashboard. Add any non-API spend (SEO, content, tooling) under Channel Costs so CAC isn't flattering.
Report Builder
Build CAC, payback and LTV views per campaign and save them to a dashboard.
See your results
Once sign-ups, trials, Stripe revenue and CRM deals are flowing, the reports answer the questions a SaaS team lives on:
- Traffic Channel Report – every source side by side: clicks, cost, leads, paying customers, revenue, ROAS and profit. Your "where should the budget go?" view.
- Campaign Report – drill campaign → ad set → ad, then sort by trials, paying customers or revenue to find what to scale and what to cut.
- Lead Overview – the real accounts behind the numbers, each with its full journey from first click through trial to paying customer.
- Report Builder & Dashboards – build CAC, payback and LTV views and pin them where the team will see them.
Just ask
Don't want to build a report? Ask in plain English with Ask Atlas – "Which campaign had the lowest cost per paying customer last quarter?"
Attribution for long SaaS sales cycles
A SaaS buyer often clicks an ad, disappears for weeks, then signs up via a brand search or a direct visit. With last click that revenue lands on Direct and the ad that started everything looks worthless. For longer journeys, switch the report's Attribution dropdown to first click so the channel that created the customer gets the credit – and make sure your attribution window covers your real sales cycle (B2B SaaS often needs 60–90 days, not the default). It only changes the view, never the data. See Attribution models.
Tips for clean SaaS data
- Store the click ID at sign-up – this is the whole game. Without it, trials and purchases that fire days later, server-side, can't attribute to the ad that earned them. Email is your backup, not your primary key.
- Always send a revenue value on
WonClient. Without it you get paying-customer counts but no ROAS, CAC payback or LTV. - Keep
TrialEndedout of ad optimisation. It's a drop-off signal for spotting leaky campaigns – turn Send back to Ads off so platforms don't optimise toward expired trials. - De-dupe in-product events. Webhooks retry and crons re-scan, so set
FreeSignup,TrialStartedandTrialEndedto Ignore duplicate postbacks to keep funnel counts honest. - Add non-API spend. SEO, content and tooling won't sync from an ad platform – add them under Channel Costs so blended CAC is real.
Running a team – or several products?
Invite colleagues and control exactly what each person sees with Add users to your workspace. Selling more than one product or brand? Keep each in its own workspace via Manage multiple workspaces.
Related articles
Track your full SaaS funnel
Every lifecycle event from sign-up to purchase, with code.
Connect Stripe
Bring purchases and subscription revenue in automatically.
Advertiser playbook
The foundation: ad platforms, tracking domain and script.
Events & the Events Manager
Create lifecycle events, pick modes, get the Conversion API credentials.
Attribution models
First vs last click – credit the right touch over a long cycle.
LeadJourney for Advertisers
The complete setup for businesses running paid ads – connect Meta, Google, LinkedIn and Bing, get tracking live, send your CRM conversions back, and see true cost per lead, ROAS and ROI per campaign, ad set and ad.
LeadJourney for E-commerce
The complete setup for online stores on Shopify, WooCommerce or any platform – connect your ad platforms, track the path from click to add-to-cart to completed order, bring order revenue in through Stripe, a webhook or your store's order events, net out refunds, and see true ROAS, AOV, cost per order and customer LTV per campaign, ad set and ad.