TL;DR
Most visitors browse your site anonymously before signing up or logging in. Outlit tracks their behavior from the first pageview and automatically connects that history to their profile when they identify themselves. This gives you complete visibility into the customer journey—from first touch to conversion.The Anonymous Phase
When someone visits your website for the first time:- Visitor ID generated - A UUID stored in localStorage and cookies
- Session begins - First-touch attribution captured (UTM, referrer)
- Events tracked - Pageviews, form views, button clicks
- Stored as AnonymousVisitor - Ready to be linked later
What’s Captured?
Automatic Attribution
On first visit, Outlit captures:| Data | Source | Example |
|---|---|---|
| UTM Source | URL params | utm_source=google |
| UTM Medium | URL params | utm_medium=cpc |
| UTM Campaign | URL params | utm_campaign=spring_2024 |
| First Referrer | HTTP header | https://google.com |
| First Landing Page | URL | /pricing?plan=pro |
| IP Address | Request | For company enrichment |
Events Stored
All events are stored for anonymous visitors and will be linked when they identify:Form Data
Form submissions are captured with automatic sanitization:Sensitive fields (password, credit_card, SSN, etc.) are automatically removed from form data.
What Triggers Identity Resolution?
Whenidentify() is called, the anonymous history is linked:
- Find or create contact with the provided email
- Link the anonymous visitor to the contact
- Historical events are processed:
- All previous events are added to the customer timeline
- Original timestamps are preserved
- The complete journey is now visible
Timeline After Resolution
How Does Cross-Device Tracking Work?
Anonymous tracking is per-browser. The same person on different devices has different visitor IDs until identified. Once someone callsidentify() with the same email on multiple devices, all those histories merge into a single unified profile.
Company Enrichment
For B2B companies, knowing which companies are visiting your website—even before anyone fills out a form—is valuable sales intelligence. Outlit can automatically identify the company behind anonymous visitors.How It Works
When a visitor lands on your site:- IP address is captured with the first pageview
- Company lookup runs in the background using IPinfo
- If a company is identified, a new customer record is created in your dashboard
- Browsing activity is linked so you can see what pages they viewed
What You’ll See
When enrichment succeeds, you’ll find a new customer in your dashboard with:- Company name and domain from the IP lookup
- First landing page showing where they entered your site
- Attribution data like referrer and UTM parameters
Privacy by Design
We intentionally do not deanonymize individual visitors. Company enrichment tells you “someone from Acme Inc visited your pricing page”—not who that person is. This approach:- Respects individual privacy - No attempt to identify the specific person
- Focuses on company-level signals - Which is what matters for B2B sales
- Filters out noise - ISPs, VPNs, and low-confidence matches are excluded
- Only uses IP for company lookup - The raw IP address is not stored after enrichment
Since enrichment only reveals company-level information, no individual contact is created. A contact is only created when someone actively identifies themselves (form submission, signup, etc.).
When Enrichment Happens
Not every visitor can be enriched. Outlit only creates a customer record when:- The IP address maps to a business, education, or government network
- The match confidence is high enough to be reliable
- The company has a valid domain we can associate
Company enrichment is available on certain plans. Contact us to enable it for your workspace.
Device Tracking (Non-Browser)
For native apps without browser storage (desktop apps, mobile apps, CLI tools), usefingerprint instead of visitorId. A fingerprint is a device identifier that you generate and manage.
When to Use Fingerprint
| Environment | Use |
|---|---|
| Desktop apps (Tauri, Electron) | fingerprint |
| Mobile apps (React Native) | fingerprint |
| CLI tools | fingerprint |
| Browser/Webview | visitorId (automatic) |
How It Differs from visitorId
| visitorId | fingerprint | |
|---|---|---|
| Generated by | SDK (automatic) | You (manual) |
| Stored in | localStorage + cookies | Your app (you decide) |
| SDKs | Browser SDK | Rust SDK, Node SDK |
Generating a Fingerprint
Use any persistent, unique identifier for the device or installation:- Device UUID - Hardware identifier
- Installation ID - Generated on first app launch, stored in app data
- Keychain/Secure storage - For sensitive apps
- Consistent across app sessions
- Unique per device/installation
- Stored persistently by your app
Example: Tracking Before Sign-In
- Rust (Tauri)
- Node.js (React Native)
Events tracked with only a fingerprint are stored but not visible in customer timelines until linked via
identify(). Once linked, they appear with their original timestamps.