How does Outlit model the customer journey?
Outlit tracks contacts and accounts separately:Contact Journey (per person)
Account Billing (per company)
What are the contact journey stages?
Each person (contact) progresses through stages based on their product engagement:Contact stages track product engagement, not billing. A contact can be Engaged even if their company hasn’t paid, or Inactive even if their company is actively paying.
How stages progress
Contacts move forward through Discovered, Signed Up, Activated, and Engaged. They can never move backwards—an Engaged contact can’t become Activated again. The one exception is Inactive: contacts return to Engaged when their activity again meets the configured engagement threshold.How does Outlit detect stages automatically?
Discovered vs Signed Up
The difference is determined by the identifiers you provide:- Discovered
- Signed Up
When you identify a visitor with only an email (no userId), they’re marked as Discovered:Typical triggers: newsletter signup, contact form submission, lead magnet download.
Automatic engagement and inactivity
Outlit derives Engaged and Inactive from tracked product activity. Activity signals can come from the browser SDK, server SDK, and connected product integrations. Engagement is based on consistent activity in a configured rolling window; inactivity is based on no qualifying activity for the configured inactivity period.How is activation derived?
Identify the user and send the same ordinary activation event consistently from the browser SDK, server SDK, or a verified product integration.
Track the selected activation event
Choose an ordinary event that represents the product’s meaningful value moment, then track it after the action succeeds:onboarding_completed (or your equivalent event) as the activation event in Outlit. Core derives Activated from that ordinary event. It also derives Engaged and Inactive from the broader stream of tracked product activity.
What are the account billing statuses?
Each account (company) has a billing status that’s separate from individual contact journeys:How does Stripe integration work?
If you’ve connected Stripe to Outlit, billing status is handled automatically:
When a subscription status changes in Stripe, Outlit automatically updates the matching account’s billing status. Individual contact journey stages are not affected.
Stripe integration links accounts through synced customer and contact identity. Company-domain accounts and personal-email customers are handled differently, so billing status should be read as account context, not as a contact journey stage.
Best practices
Send facts, not authoritative state. Discovered and Signed Up are auto-detected from identity. Activated is derived by Core from the customer-selected ordinary activation event. Engaged and Inactive are derived from tracked product activity captured by the browser SDK, server SDK, and verified product integrations. Verified billing integrations provide billing status. Understand the separation. Contact journey and account billing are independent. Jane can be Engaged while her company is on None, or Inactive while her company is Paying. Jane’s activity can change independently from her company’s billing status. Track activation at the right time. Send the selected ordinary activation event when the action is confirmed complete, not when the user clicks a button. Wait for the backend to confirm success before tracking. Include useful properties. Properties help you analyze stage transitions. Include context like which onboarding flow was completed, time-to-activate, and which steps were skipped.Frequently Asked Questions
What's the difference between contact journey and account billing?
What's the difference between contact journey and account billing?
Contact journey tracks individual people’s product engagement (Discovered through Inactive). Account billing tracks the commercial relationship (None through Churned). They’re independent — Jane can be Engaged while her company is on a free plan, or Inactive while her company is actively paying.
Which stages require manual instrumentation?
Which stages require manual instrumentation?
No journey stage is set through an authoritative SDK command. Discovered and Signed Up are derived from identity, Activated is derived from your selected ordinary activation event, and Engaged and Inactive are derived from tracked product activity. Billing statuses sync from verified billing integrations.
Can contacts move backward in journey stages?
Can contacts move backward in journey stages?
Contacts generally progress forward through Discovered, Signed Up, Activated, and Engaged. The only cycle is Engaged ↔ Inactive, which is driven by activity and inactivity.
Next Steps
Identity Resolution
How Outlit connects anonymous visitors to known contacts
Server-Side Tracking
Track ordinary product events from your backend
Browser Integration
Set up browser tracking
API Reference
Direct API for identify and product events