Three parts of the customer journey
Outlit tracks contacts and accounts separately:Contact journey (per person)
Contacts progress from Discovered → Signed Up → Activated → Engaged. With no qualifying activity they become Inactive; when activity again meets the engagement threshold, they return to Engaged.Account billing (per company)
Account billing can be None, Trialing, Paying, Past due, or Churned. A churned account returns to Paying if it re-subscribes.Company activation (per company)
A company activates once when the configured exact ordinary product event first occurs for that resolved company. The same event activates eligible contacts. Outlit writes each person’s or company’s activation timestamp only once; later matches leave it unchanged. Useoutlit activation preview --event <name> to evaluate historical exact-event matches
without changing configuration or recording activation. Its separate contact and company
counts show how many people and companies already activated and how many would activate, without returning
contact identities. Use
outlit activation update --event <name> only after review. Disabling future matching
preserves existing contact and company activation timestamps.
Company activation remains an account milestone, while a contact’s ACTIVATED value
remains a per-person journey stage. They share one configured event but are recorded
independently when the event resolves the corresponding identity.
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. The exception is the Engaged ↔ Inactive cycle: a contact returns to Engaged when activity again meets the configured threshold.How stages are detected
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 Outlit Browser SDK, Outlit server SDKs, 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 contact activation works
Identify the user and send the same ordinary activation event consistently from the Outlit Browser SDK, an Outlit 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. Outlit derives Activated from that ordinary event. It also derives Engaged and Inactive from the broader stream of tracked product activity.
Account billing statuses
Each account (company) has a billing status that’s separate from individual contact journeys:Billing from Stripe
If you’ve connected Stripe to Outlit, billing status is handled automatically: Stripe subscription states map onto the billing statuses above — trialing maps to Trialing, active to Paying, delinquent states to Past due, and cancellation to Churned. When a subscription status changes in Stripe, Outlit 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.Track meaningful events
Send product events. Discovered and Signed Up are auto-detected from identity. Activated is derived by Outlit from the customer-selected ordinary activation event. Engaged and Inactive are derived from tracked product activity captured by the Outlit Browser SDK, Outlit server SDKs, and verified product integrations. Verified billing integrations provide billing status. Configure one ordinary activation event. Continue tracking ordinary product events or ingesting them through connected analytics sources. Select the exact event name with the activation CLI; do not add a synthetic activation event or client-side lifecycle state. 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.
What's the difference between contact and company activation?
What's the difference between contact and company activation?
Contact activation is a per-person journey stage, while company activation is a separate account milestone exposed as
activatedAt. Outlit derives both from the same configured exact ordinary product event and independently activates whichever contact or company identity the event resolves.Which stages require manual instrumentation?
Which stages require manual instrumentation?
None are set directly. 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 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
