What is the customer context graph?
The customer context graph is a structured representation of everything Outlit knows about your customers. It has four layers:- Entities — The people and companies you do business with: anonymous visitors, known contacts, customer accounts, and devices
- Relationships — How entities connect: identity resolution links, account membership, cross-device associations
- Activity timeline — A chronological log of every interaction from every source: pageviews, form submissions, Stripe charges, support tickets, Slack messages, email threads, calls, and calendar events
- Facts — Temporal assertions about each customer that capture what it means, not just what happened: churn risk signals, expansion opportunities, support escalations, competitive evaluations, champion changes, and more
How does Outlit build the graph?
Outlit builds the customer context graph in four stages:1. Collect
Data flows in from multiple sources:We recommend the Outlit browser SDK as your primary data source — it’s the only way to get website visitor tracking (anonymous visits, form auto-identification, and pre-signup attribution). PostHog is a great complement for product usage data, but it won’t capture the anonymous visitor journey.
2. Resolve
Identity resolution links activity to real people. When a visitor submits a form, signs up, or logs in, Outlit connects their anonymous browsing history to their profile. The same person on different devices gets merged into one contact.3. Connect
Entities form relationships:- Visitors → Contacts: Via identity resolution (email, userId, device fingerprint)
- Contacts → Accounts: Via organizational email domains, explicit
customerIdattribution, and connected source data - Accounts → Billing: Via verified billing integrations such as Stripe
4. Query
The graph is queryable through multiple interfaces:- CLI —
outlit customers list,outlit search "...",outlit sql "..." - MCP — AI agents query customer context directly in Cursor, Claude Code, VS Code
- API — Programmatic access for custom integrations
What makes this different from a CRM or analytics tool?
Traditional tools capture one slice of the customer relationship:
Outlit’s graph connects all of these — and goes further with facts. Instead of just showing raw data, a query like
outlit customers get acme.com --include users,revenue,recentTimeline plus outlit facts list acme.com shows the complete story with reasoning: which pages Acme’s team viewed before signing up, how they used the product after onboarding, what support tickets or calls changed the relationship, what their billing trajectory looks like, and what it all means — churn risk signals, expansion opportunities, champion changes, and competitive context.
How do facts work?
Facts are temporal assertions that Outlit maintains about each customer. While the activity timeline records what happened, facts capture what it means — the reasoning layer that makes the graph intelligent. Outlit generates facts from three sources:
Every fact carries temporal context. Public fact results expose
occurredAt for when the supporting signal happened or was detected, plus status and provenance fields such as sourceType, sourceId, sourceOccurredAt, sourceQuote, and permalink when available. Outlit uses source time, status, and evidence to help agents distinguish current signals from historical context; newer evidence can supersede older context, but facts should still be read with their source and status rather than as self-updating claims.
Facts are queryable through the same interfaces as the rest of the graph — CLI, MCP, and API.
How do journey stages fit into the graph?
Journey stages are properties on graph nodes — structured labels that Outlit maintains as contacts and accounts progress:- Contact journey stages (Discovered, Signed Up, Activated, Engaged, Inactive) describe where each person is in their product engagement
- Account billing statuses (None, Trialing, Paying, Churned) describe the commercial relationship
track() or a verified product integration.
Billing statuses update automatically when Stripe is connected.
For full details, see Customer Journey.
Frequently Asked Questions
Do I need all the integrations to use Outlit?
Do I need all the integrations to use Outlit?
No. The browser SDK alone gives you website visitor tracking, identity resolution, and journey stages. Each additional integration (Stripe, PostHog, server SDK) adds more signal to the graph, but none are required to get started.
How is the graph different from a data warehouse?
How is the graph different from a data warehouse?
A data warehouse stores raw events. The customer context graph is entity-resolved and relationship-mapped — it knows that visitor abc-123, user jane@acme.com, and Stripe customer cus_456 are linked parts of the same customer profile when the source evidence supports that relationship. Organizational domains, personal email providers, and explicit customer IDs are handled differently so the graph does not turn every email domain into a company account.
Can AI agents access the full graph?
Can AI agents access the full graph?
Yes. The MCP integration exposes the graph to remote MCP clients such as Cursor, VS Code, and other supported environments. For coding agents that run local commands, install Agent Skills. Agents can list customers, get timelines, search context, inspect facts and sources, and run SQL queries.
How quickly does new data appear in the graph?
How quickly does new data appear in the graph?
Browser and server SDK events appear within seconds. Stripe webhook events appear within minutes. PostHog syncs run on a configurable schedule.
Next Steps
Quick Start
Install the CLI and start building your graph in 5 minutes
Customer Journey
Understand journey stages and billing statuses
Identity Resolution
How Outlit links visitors to known contacts
Website Visitors
What Outlit captures before visitors identify themselves