Driving Product Adoption
This guide sets up an adoption milestone end to end: define what "adopted" means, attach a nudge, and read the lift. See the Adoption Engine concept for the model.
Before you start
You need events flowing into Apex. A milestone is defined over your own event/trait catalog, so wire the event that means "adopted" first — from the web snippet, the mobile SDK, or your backend. Any source works.
1. Define a milestone
Open the DEFINE surface
Go to Settings → Workspace → Analytics → Adoption milestones (beneath the Active User Definition). Start from a template pack, or add one manually.
Say what "adopted" means
Pick the event (e.g. report_run) or trait (e.g. plan = pro) that means the user adopted the feature. Give it a feature key (reporting) and a priority.
Set the gap window
Choose how long after signup an unmet milestone should be nudged (e.g. 3 days).
2. Attach a nudge
Each milestone points at a nudge journey — the email + bell the user gets when they hit the gap. Scaffold a starter journey (the default) or attach an existing published one. Nudges are marketing-class, so they respect opt-out and frequency caps.
New milestones start off. Turn one on to begin nudging.
Info
Apex only sends the single top-priority unmet nudge per user per cadence (default 7 days) — a user behind on five features gets one nudge, not five.
3. Read the lift
Open Engagement → Adoption. For each milestone you'll see the funnel (tracked → nudged → adopted) and the headline number: lift vs holdout. A deterministic ~10% of users are held out and never nudged, so the difference in adoption rate is the real, causal impact of the nudge — not last-touch attribution.
If a milestone's lift is ~0, the nudge isn't helping: retire it or rewrite the message.
Next Steps
- Adoption Engine — the full model, holdout, and experiment mutex
- Building your first journey — author the nudge
- B2B SaaS Wiring — wire the events that power adoption