Set up goals and funnels for a SaaS signup flow
Name your goals so Trakily's automatic funnel matches a typical SaaS flow: visit, pricing, checkout, payment, plus signup and activation goals.
A typical SaaS flow is visit → pricing → signup → checkout → payment. Trakily builds a default funnel automatically from your pages and goals, so a little care with goal names gives you a useful funnel without any configuration. You can also save your own funnels with exactly the steps you want.
How the automatic funnel works
The default funnel in the Funnel tab of the Goals card has up to four steps, counted in order (a visitor only counts for a step after the one before it):
| Step | Uses |
|---|---|
| Visited site | Every visitor |
| Viewed pricing | The most-visited page whose path contains pricing (left out if there is none) |
| Checkout initiated | The checkout_initiated goal (otherwise your most frequent goal) |
| Payment | New payments from your connected payment provider |
- Step
- Visited site
- Uses
- Every visitor
- Step
- Viewed pricing
- Uses
- The most-visited page whose path contains pricing (left out if there is none)
- Step
- Checkout initiated
- Uses
- The
checkout_initiatedgoal (otherwise your most frequent goal)
- Step
- Payment
- Uses
- New payments from your connected payment provider
So two things make it accurate: a pricing page at a path containing pricing, and a checkout_initiated goal.
For a different flow, click New funnel in the Funnel tab and add 2 to 8 steps: pages (with * wildcards, like /docs/*), goals (optionally matching a property such as plan = pro) or payment. See Custom funnels.
The goals to send
<!-- Signup button --> <button data-trakily-goal="signup">Create account</button> <!-- Plan buttons on the pricing page --> <button data-trakily-goal="checkout_initiated" data-trakily-goal-plan="pro">Upgrade to Pro</button>
For events that happen in your app rather than on a click, call the API once the action succeeds:
// After the account is created
window.trakily?.("signup", { method: "google" });
// When the user reaches their first moment of value
window.trakily?.("activated", { step: "first_project" });signup and checkout_initiated also get friendly labels in the Goal tab (“Sign up”, “Checkout initiated”).
Identify users after signup
Once someone has an account, identify them. Their name appears in journeys, realtime and alerts, and their email links payments made later, even outside the original visit:
window.trakily?.("identify", { user_id: user.id, name: user.name, email: user.email });Only send what you're allowed to; see Identify users.
Connect payments for the last step
The Payment step comes from your payment provider. Connect it in Settings → Revenue and pass the visitor id at checkout for reliable attribution (see the Stripe guide or your provider's page).
Reading it
- The Funnel tab shows the share of visitors reaching each step and the drop-off between steps.
- Filter the dashboard by a channel or referrer to compare funnels between sources.
- The Goal tab shows every goal, including ones outside the funnel like
activated. - Want a message for every signup? Create a goal alert.
Trakily shows which channels bring paying customers, not just visitors. Start a 14-day free trial; no card needed.