<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>UserJourney guides</title>
<link>https://userjourney.dev/guides/</link>
<atom:link href="https://userjourney.dev/guides/rss.xml" rel="self" type="application/rss+xml"/>
<description>Guides for SaaS founders.</description>
<language>en</language>
<item>
<title>Which marketing channel brings paying customers, not just visits</title>
<link>https://userjourney.dev/guides/channel-paying-customers/</link>
<guid>https://userjourney.dev/guides/channel-paying-customers/</guid>
<pubDate>Wed, 14 Oct 2026 09:00:00 GMT</pubDate>
<category>Acquisition</category>
<description><![CDATA[<p>A launch day can bring thousands of visits and a handful of customers. A single thread in the right community can bring a few hundred visits and more customers than the launch. If you judge channels by visits, you'll put your time in the wrong place.</p>
<p>The fix is simple to say: follow each channel all the way to the money. This guide is how, and the traps that make the numbers lie when you only have a few hundred sign-ups.</p>
<h2 id="count-four-numbers-per-channel-not-one">Count four numbers per channel, not one</h2>
<p>For each channel, over the same period:</p>
<div class="table-wrap"><table><thead><tr><th>Channel</th><th>Visitors</th><th>Sign-ups</th><th>Activated</th><th>Paying</th></tr></thead><tbody><tr><td>Launch site</td><td>3,100</td><td>62</td><td>14</td><td>2</td></tr><tr><td>Community thread</td><td>420</td><td>18</td><td>11</td><td>5</td></tr><tr><td>Search</td><td>1,250</td><td>31</td><td>16</td><td>6</td></tr></tbody></table></div>
<p><em>An example, not real data.</em> By visits, the launch wins by far. By paying customers it's last. The community thread turns 1 visitor in 84 into a customer; the launch, 1 in 1,550.</p>
<p>Visitors tell you about reach. Sign-ups, about your landing page. Activated, about whether the channel brings people who need what you make. Paying is the one you're trying to grow.</p>
<h2 id="credit-each-sign-up-to-the-right-visit">Credit each sign-up to the right visit</h2>
<p>To follow a channel to a customer, each sign-up has to be linked to the visit that brought it. Three things get in the way:</p>
<ul><li><strong>Referrers go missing.</strong> Many apps, mail clients and privacy settings strip them, and those visits land in &quot;direct&quot;. A big &quot;direct&quot; usually means &quot;we don't know&quot;, not &quot;they typed your URL&quot;.</li><li><strong>People come back later.</strong> Someone reads a thread on Monday and signs up from a bookmark on Friday. Whether Friday's visit or Monday's gets the credit (last touch or first touch) changes the answer.</li><li><strong>Your own links aren't tagged.</strong> Add <code>?ref=newsletter</code> or <code>utm_source=newsletter</code> to every link you control: newsletters, profiles, docs, posts. It's the cheapest attribution there is.</li></ul>
<p>Pick one rule and keep it. Comparing channels under the same rule matters more than which rule you pick.</p>
<h2 id="give-it-time-and-enough-people">Give it time, and enough people</h2>
<p>Paying comes days or weeks after the visit, after a trial. Compare channels by the people who <strong>signed up</strong> in a period, followed until today, not by what happened inside one week.</p>
<p>And mind small numbers. With 8 sign-ups from a channel, one customer more or less is a 12-point swing. Under about 30 sign-ups per channel, don't draw a conclusion from percentages: open the list and read who those people are and what they did.</p>
<h2 id="read-what-the-numbers-say">Read what the numbers say</h2>
<ul><li><strong>Many visits, few sign-ups:</strong> the audience doesn't match, or the landing page doesn't speak to them. Look at which page they landed on.</li><li><strong>Many sign-ups, few activated:</strong> the channel brings curious people, not people with the problem. Or your onboarding loses them: see <a href="https://userjourney.dev/guides/saas-onboarding-drop-off/">where users drop off</a>.</li><li><strong>Few visits, high conversion to paying:</strong> this is where to spend more time.</li></ul>
<h2 id="doing-it-with-userjourney">Doing it with UserJourney</h2>
<p>The snippet records where each visit came from (the referrer, <code>utm_source</code> or <code>ref</code>), and the first <code>uj.identify()</code> credits the sign-up to the visit that brought it. Payments come from your Paddle or Stripe account, matched by email or by the id you pass at checkout.</p>
<p><strong>Traffic</strong> shows each source with its visitors, sign-up clicks, sign-ups, paying customers and MRR, and opens each source to the people it brought. It also shows the pages people land on, how long they read, and where they click to sign up. A sentence on top tells you which source does best.</p>
<p>One honest limit: visitors are counted without cookies, so a sign-up is credited to a visit from that day or the day before. A visit a week earlier from another device counts as direct.</p>
<p><a href="https://userjourney.dev/app">Start for free</a> or read the <a href="https://userjourney.dev/docs/">quickstart</a>.</p>]]></description>
</item>
<item>
<title>How to find where users drop off in your SaaS onboarding</title>
<link>https://userjourney.dev/guides/saas-onboarding-drop-off/</link>
<guid>https://userjourney.dev/guides/saas-onboarding-drop-off/</guid>
<pubDate>Wed, 14 Oct 2026 09:00:00 GMT</pubDate>
<category>Activation</category>
<description><![CDATA[<p>Most people who sign up for a SaaS never get to the moment it's useful to them. That part is normal. What you can change is <em>where</em> they stop, and you can only change it once you know which step it is.</p>
<p>This guide is the method we use: write the onboarding down as steps, count people at each one, tell the people who are lost from the ones who are just slow, and look at where they went instead. It works with a spreadsheet and your database; at the end there's how UserJourney does it for you.</p>
<h2 id="write-your-onboarding-down-as-steps">Write your onboarding down as steps</h2>
<p>Pick the three to five things someone has to do between signing up and getting value. For an analytics product it might be:</p>
<ol><li>Create a project</li><li>Install the snippet</li><li>See the first event</li></ol>
<p>The last one is <strong>activation</strong>: the moment they got what they came for. Be strict about it. &quot;Logged in twice&quot; isn't activation; &quot;saw their first report&quot; is.</p>
<p>Each step has to be something you can observe: a page they reach (<code>/onboarding/install</code>) or an action you record in your code. If you can't see it, you can't count it.</p>
<h2 id="count-people-per-step-for-one-group-at-a-time">Count people per step, for one group at a time</h2>
<p>Take everyone who signed up in the same period, say the last 30 days, and count how many of them did each step. The same group, start to finish: if you count this week's step 3 against last month's sign-ups, the numbers mean nothing.</p>
<div class="table-wrap"><table><thead><tr><th>Step</th><th>People</th><th>Of the step before</th></tr></thead><tbody><tr><td>Signed up</td><td>120</td><td></td></tr><tr><td>Create a project</td><td>94</td><td>78%</td></tr><tr><td>Install the snippet</td><td>51</td><td>54%</td></tr><tr><td>See the first event</td><td>44</td><td>86%</td></tr></tbody></table></div>
<p><em>An example, not real data.</em> Here the biggest drop is between creating a project and installing the snippet: almost half the people stop there. That's the step to look at first, before any email.</p>
<p>Ignore the drop from visit to sign-up when you look for the onboarding problem. It's always huge and it's a different question: whether your site convinces people, not whether your product works for them.</p>
<h2 id="tell-a-drop-off-from-a-slow-start">Tell a drop-off from a slow start</h2>
<p>Someone who created a project an hour ago and hasn't installed the snippet yet isn't lost. They're busy. If you count them as dropped, you'll chase people who were about to finish.</p>
<p>Use time without progress instead: someone is <strong>stuck</strong> when they haven't done a new step for a while. To pick the while, look at how long people who did finish took between steps. If most go from step 1 to step 2 within a few hours, 24 hours without progress is a good line. If your setup needs a developer and a deploy, it may be days.</p>
<h2 id="look-at-where-they-went-instead">Look at where they went instead</h2>
<p>The step tells you <em>where</em> people stop. What they did next often tells you <em>why</em>:</p>
<ul><li>They opened the docs and left: the step needs something they couldn't find.</li><li>They went to settings or billing: they were looking for something the step assumes they've done.</li><li>They came back three times to the same page: it doesn't work the way they expect.</li><li>They never came back: the step asked for more than they had time for.</li></ul>
<p>You can see this in your server logs, or by reading what a handful of stuck people did, one by one. With a few dozen sign-ups a week, reading ten people's paths teaches you more than any chart.</p>
<h2 id="fix-the-step-then-write-to-the-people">Fix the step, then write to the people</h2>
<p>In this order:</p>
<ol><li><strong>Make the step shorter.</strong> Cut fields, pick defaults, offer sample data, or do it for them. A clearer screen moves more people than any email.</li><li><strong>Write to the people who are stuck now.</strong> A short, plain note from you that names the step they stopped at, with a link straight to it. Ask if something got in the way: their replies are your best research.</li><li><strong>Measure again</strong> with the next group of sign-ups, not the same one.</li></ol>
<h2 id="doing-it-with-userjourney">Doing it with UserJourney</h2>
<p>UserJourney counts the steps for you. Pages under <code>/onboarding/&lt;step&gt;</code> count on their own; otherwise it's one line per step:</p>
<pre><code class="lang-js">uj.step(&quot;install_snippet&quot;)</code></pre>
<p><strong>Funnel</strong> shows each step for the people who signed up in the period, the biggest drop in a sentence, how long people typically take and who is stuck right now. <strong>Paths</strong>, from the sign-up, shows where they went instead. <strong>Today</strong> lists the people who need a word from you, with a note already written for the step they stopped at, and the playbooks can send it for you once you've read them.</p>
<p><a href="https://userjourney.dev/app">Start for free</a> or read the <a href="https://userjourney.dev/docs/">quickstart</a>.</p>]]></description>
</item>
<item>
<title>How to see the paths users take through your SaaS app</title>
<link>https://userjourney.dev/guides/saas-user-paths/</link>
<guid>https://userjourney.dev/guides/saas-user-paths/</guid>
<pubDate>Wed, 14 Oct 2026 09:00:00 GMT</pubDate>
<category>Activation</category>
<description><![CDATA[<p>A funnel answers <em>how far do people get</em>. It can't answer <em>which way do they go</em>: the detour to the settings page before they give up, the template that people who stay all seem to open, the billing page nobody reaches from the dashboard. That's what paths are for.</p>
<p>Path charts have a reputation for being unreadable. They don't have to be. This guide is what makes them useful for a small SaaS.</p>
<h2 id="what-a-path-is">What a path is</h2>
<p>A path is the pages one person opens in one visit, in order. Three choices decide whether the result means anything:</p>
<ul><li><strong>Split by visits.</strong> 30 minutes without activity ends a visit. Otherwise Monday's session and Friday's run into one long, meaningless path.</li><li><strong>Group pages by route.</strong> <code>/projects/123</code> and <code>/projects/456</code> are the same page. Replace ids with a placeholder (<code>/projects/:id</code>) or you'll get a thousand pages seen once.</li><li><strong>Collapse reloads, keep returns.</strong> Opening the same page twice in a row is one step. Going to another page and coming back is two: it's often the most telling part of the path.</li></ul>
<h2 id="pick-where-it-starts">Pick where it starts</h2>
<p>Most questions about paths are one of three:</p>
<ol><li><strong>Where do people go at all?</strong> Start every visit on the page it began on. Returning users who open a project straight from a bookmark are part of the picture, not only new sign-ups.</li><li><strong>What do new users do first?</strong> Start on the sign-up and follow their first visit.</li><li><strong>What happens around one page?</strong> Start on it to see where people go next, or end on it to see how they got there. &quot;How do people reach billing?&quot; is a question about the way in, not the way out.</li></ol>
<h2 id="keep-it-readable">Keep it readable</h2>
<ul><li><strong>Three or four steps.</strong> Past that, the chart is mostly noise.</li><li><strong>Five or six pages per step,</strong> the rest grouped as &quot;Other pages&quot;.</li><li><strong>Name the endings.</strong> &quot;End of visit&quot; is normal: people close the tab. &quot;Didn't come back&quot; (no visit since, for over a week) is what you're looking for. Mixing them makes everything look like churn.</li></ul>
<h2 id="colour-by-outcome-not-by-page">Colour by outcome, not by page</h2>
<p>A path chart shows where people go. What you need to know is which way works. So instead of a colour per page, give each page the share of the people who passed through it who are activated (or paying), against everyone in the chart:</p>
<ul><li>clearly above average: the good way,</li><li>clearly below: a detour or a dead end,</li><li>with fewer than about five people: say nothing yet.</li></ul>
<p>That's how &quot;21 people go to Settings right after signing up, and few of them ever activate&quot; jumps out, instead of hiding in a tangle of grey bands.</p>
<h2 id="one-person-at-a-time">One person at a time</h2>
<p>With a few dozen users a week, read individual paths. Each visit as a line of pages, with how long they stayed on each, what happened between visits (an email from you, a payment) and where they left. Ten of those teach you more about a confusing screen than any aggregate.</p>
<h2 id="doing-it-with-userjourney">Doing it with UserJourney</h2>
<p>There's nothing to set up beyond the snippet and <code>uj.identify()</code>: every page a signed-in person opens is recorded with its route grouped (<code>/projects/:id</code>), split into visits.</p>
<p><strong>Funnel &gt; Paths</strong> starts on each visit, on the sign-up, or on any page you search for, in both directions, for everyone, new users or paying customers. Pages are coloured by how many of their people are activated, and a sentence on top names the page that does worst and the one that does best. Click a page to start from it. In <strong>Users</strong>, each person's panel shows their path visit by visit, above the full timeline.</p>
<p><a href="https://userjourney.dev/app">Start for free</a> or read the <a href="https://userjourney.dev/docs/">quickstart</a>.</p>]]></description>
</item>
</channel>
</rss>
