- analytics
- B2B SaaS & Subscription Business
Customer Journey Mapper: breaking a trial-conversion ceiling for a B2B SaaS
Built a cross-touchpoint analytics platform that lifted trial-to-paid conversion 156% and customer lifetime value 89% for Notionlab, a B2B SaaS.
- Data Engineering
- AI & Machine Learning
- Full-Stack Development
At a glance
- Sector
- B2B SaaS & Subscription Business
- Type
- analytics
- Services
- Data Engineering · AI & Machine Learning · Full-Stack Development
The problem
Trial conversion frozen at 30% for 14 months
Notionlab had grown to $200K MRR on solid product-led growth, but its trial-to-paid conversion had been frozen at 30% for 14 months. The data existed — product analytics in Mixpanel, CRM in HubSpot, support in Intercom — but the three systems didn't talk to each other, so nobody could answer a basic question like 'which onboarding behaviours predict a paid conversion?' or 'why do trials go cold in week two?' The growth team was running experiments blind, on intuition.
In SaaS, trial-to-paid conversion is one of the highest-leverage metrics there is — a small relative improvement compounds across every future cohort on the same acquisition spend. But moving it means understanding the whole customer journey across tools, not individual funnel steps in one of them. Stitching that cross-tool data together by hand is brittle and slow, which is why a lot of SaaS teams give up and treat their baseline as fixed.
What we built
Unified journey analytics with behavioural intervention triggers
We built a unified customer data platform on Apache Kafka (real-time event streaming) and Snowflake (historical analysis). Every touchpoint — site visits, product usage, email opens, support chats, billing events — flows through Kafka into one schema in Snowflake. A React dashboard with D3.js visualisations lets the growth team explore cohorts, compare converters against non-converters by behaviour, and find the drop-off moments where trials go cold.
Instead of replacing existing tools, we integrated them. Mixpanel still tracks product events, HubSpot still owns CRM, Intercom still handles support. Our platform consumes events from all three via webhooks and Kafka connectors, unifies user identities, and produces a journey view nobody could build before. We also built a real-time intervention layer that triggers CSM alerts, in-app messages, or email nudges when a trial hits a predicted churn signal.
Calls we would still defend
Unified identity resolution — a probabilistic identity graph connects anonymous site visits, product events, email interactions and paid-user records across tools — so every journey map is one real person, not fragmented sessions.
Behavioural cohort analysis — instead of static segmentation by industry or size, we cluster users by how they actually use the product. That surfaced the finding that trials which invited a teammate in week one converted at 68%, against 18% for solo trials — and it reshaped onboarding.
Real-time intervention engine — a Kafka consumer watches for a defined event pattern (say, 'logged in but no first project after 72 hours') and fires an intervention within 60 seconds — a CSM alert, an in-app tooltip, or a timed email.
Built with
Apache Kafka
Real-time event streaming backbone handling millions of events daily from all connected tools with guaranteed ordering and replay.
Snowflake
Cloud data warehouse for historical journey analysis and cohort queries — scales to billions of events without performance degradation.
D3.js
Interactive journey visualisations — Sankey diagrams, funnel drop-offs, cohort heatmaps — that reveal patterns a standard BI tool can't show.
React
Frontend dashboard with real-time updates, cohort exploration, and intervention configuration — integrated with the design team's existing component library.
Segment
Customer data infrastructure layer providing SDK-based event tracking across web, mobile, and server — feeds Kafka with clean, schema-validated data.
dbt
Transformation layer turning raw Snowflake events into analytics-ready models — enables version-controlled, tested analytics logic the data team can maintain.
Where it landed
What the build changed
156%
Trial-to-paid conversion
relative lift for Notionlab — 30% to 77%, after a 14-month frozen baseline
89%
Customer lifetime value
higher, from a closer fit between the trial and paid cohorts
50+
Touchpoints unified
site, product, email, support and billing events across Mixpanel, HubSpot and Intercom
FAQ
The questions this build raises
What was actually built, the constraints it had to meet, and how it holds up in use.
Product analytics tools focus on in-app events and funnel analysis within a single system. Journey mapping tracks the full customer experience across every tool in your stack — site visits, product events, email engagement, support tickets, billing events — and stitches them into a unified view. This lets you answer questions like 'did this user open our onboarding email before they abandoned the trial?' which no single-tool analytics platform can answer.
You need at least three things: a product analytics tool (Mixpanel, Amplitude, PostHog), a CRM (HubSpot, Salesforce, Pipedrive), and some form of marketing automation (Klaviyo, Intercom, Customer.io). The journey mapper consumes events from all three via webhooks and official APIs. If you don't have these in place yet, we include a data infrastructure setup phase during onboarding.
A Kafka consumer continuously watches the event stream for a behavioural pattern you define — say, 'no login for 3 days after signup' or 'created a project but hasn't invited a teammate within 48 hours.' When a pattern matches, the system fires an action — in-app message, email, CSM alert, or a webhook to another tool — within 60 seconds. You define the triggers visually, without writing code.
No — it augments it. Your existing tools (Mixpanel, HubSpot, Intercom, etc.) continue doing what they do well. Our platform sits above them, consuming events and producing cross-tool insights nobody else can generate. This avoids painful migrations and lets your team keep using familiar tools while gaining new capabilities.
We won't put a number on your result before we understand your funnel — anyone who does is guessing. What we can say is where the lift comes from: fixing the specific drop-off moments in your journey, targeting interventions at the trials most at risk, and improving onboarding from what the cohorts reveal. How far that moves your conversion depends on your baseline — a lower one has more room to move.
Keep looking
Other builds, taken apart the same way
analytics
Multi-touch attribution across twelve ad channels
D2C E-Commerce & Retail
email
Email Marketing AI Assistant
E-Commerce & SaaS

