Live events
12,480
+6.4%
Real-time event tracking
Page views, errors, and cancel-page visits stream in from one script tag — no instrumentation, no event taxonomy to design first.
Your users are sending signals every second. Decode their behavior, fix broken journeys, and build an experience they love.
Trusted by 100+ companies
How it works
Three setup steps, none of them a configuration wizard. You reach a working at-risk queue in the same sitting you signed up.
One line in your global layout, with your API key already filled in. It starts recording page views, errors, and cancel-page visits immediately — nothing to configure.
Step 1 of 3
Paste it into your app's global layout or <head>.
1<script src="https://api.usermonitor.app
2 /tracker.js?key=pk_4f2a…"></script>Onboarding waits with you. Open your own site once and the screen flips from “Waiting for your first event…” to “Event received!” on its own — so you know it works before you leave setup.
Step 2 of 3
Event received!
First event stored against your API key.
Paste your per-account webhook URL into Stripe and drop the signing secret back in. Failed payments then feed straight into risk scoring. Genuinely optional: skip goes straight to the dashboard.
Step 3 of 3 · Optional
Stripe
Your own account
Webhook URL
/api/webhooks/stripe/wh_314d528f…
Signing secret
Savedwhsec_••••••••••••••4f2a
invoice.payment_failed now feeds the Failed payments signal
Accounts that trip 2 or more of the four signals surface first, each with a plain-English reason and a ready-to-send recovery email you can copy and paste.
jane@company.com
Jane Doe
Why At-Risk
2 failed payments in the last 90 days, no activity in 21 days
Tracking, scoring, and the recovery email — one product, working end to end from the first script tag you paste.
Live events
12,480
+6.4%
Page views, errors, and cancel-page visits stream in from one script tag — no instrumentation, no event taxonomy to design first.
Risk score
68%At risk
Failed payments
2
Days silent
21
Four signals, one score, and a plain-English reason for every account that surfaces.
Every row is scoped to a company_id across four layers. Your data never mixes with anyone else’s.
Drop in one webhook and every invoice.payment_failed feeds risk scoring — so the revenue slipping away shows up before the cancellation does.
We noticed two payments didn't go through
Each at-risk account comes with a drafted email that names the actual reason. Copy, paste, send — the whole save takes a minute.
<script src="…/tracker.js">
Signup hands you a keyed snippet and waits for your first event. Regenerate the key anytime.
Every plan ships with all four risk signals, the ranked at-risk dashboard, and the recovery email. The only thing that changes is how many end-users you track.
See a real, named at-risk account with a specific reason within 7 days of installing the script — or your money back.
Founding member pricing: $19/mo on Starter, locked in forever
Limited to our first 30 customers · normally $25/mo
Best for $2K–$8K MRR
Everything you need to start saving accounts.
founding-member rate, normally $25/month
Best for $8K–$30K MRR
Where most teams land.
or $750/year with annual billing
Best for $30K+ MRR
For a larger user base.
or $1,990/year with annual billing
Starter works out to ≈ $0.62/day — losing one customer costs more than a year of the plan. Every plan is self-serve: sign up and install in minutes.