Auto-Identify
By default, Outlit automatically identifies visitors when they submit a form containing an email field—no code required.How It Works
When a form is submitted, Outlit:-
Detects email by looking for:
- Field names:
email,e-mail,user_email,emailAddress - Input type:
type="email" - Any field with a valid email value (fallback)
- Field names:
-
Extracts name by looking for:
- Full name:
name,full_name,fullname,your_name - First name:
first_name,fname,firstname,given_name - Last name:
last_name,lname,surname,family_name
- Full name:
-
Calls
identify()automatically:
The form submission event is still captured separately. Auto-identify adds an additional
identify event when an email is found.Disabling Auto-Identify
If you prefer to handle identification manually:- Script Tag
- React
- NPM
How does identity resolution work?
Identity Priority
When multiple identifiers exist, Outlit uses this priority order:| Priority | Identifier Type | Example | Source |
|---|---|---|---|
| 1 (Highest) | jane@acme.com | Identify call, form submission | |
| 2 | External User ID | usr_12345 | Auth provider (Supabase, Auth0) |
| 3 | Fingerprint | device_abc123 | Server SDK (device identifier) |
| 4 (Lowest) | Anonymous ID | abc-def-123 | Browser visitor ID |
Resolution Process
When you callidentify():
- Search existing contacts by provided identifiers
- Match found? Link the anonymous visitor to existing contact
- No match? Create new CustomerContact and Customer
- Multiple matches? Merge profiles, keeping the most complete one
What are the identifier types?
Email (Primary)
Email is the most reliable identifier because it’s unique per person, verified through login/signup, and works across devices.External User ID
Your application’s internal user ID (from Supabase, Auth0, Firebase, etc.):Anonymous Visitor ID
Automatically generated for browser visitors:Fingerprint (Device ID)
For native apps without browser storage (desktop, mobile, CLI), use a fingerprint—a stable device identifier you generate and manage:How does profile merging work?
When Outlit detects the same person with different identifiers, profiles are merged.Merge Triggers
Same email, different visitor IDs
Same email, different visitor IDs
User visits on phone (visitorId: A), then laptop (visitorId: B), identifies with same email on both.Result: Both visitor histories merge into one CustomerContact.
Email change / correction
Email change / correction
User identifies as
jane@old-company.com, later updates to jane@new-company.com while logged into same account (userId).Result: New email added to contact identifiers, profiles linked.Multiple auth methods
Multiple auth methods
User signs up with email, later links Google OAuth which has different email.Result: Both emails link to same contact via shared userId.
Merge Rules
| Data | Rule |
|---|---|
| Events/Activities | Combined into unified timeline |
| Traits | Newer values overwrite older |
| Identifiers | All identifiers preserved |
| Anonymous history | All visitor events included |
Browser vs Server Identity
- Browser Tracking
- Server Tracking
Anonymous visitors are supported
- visitorId auto-generated
- Events stored until identification
- Later linked via identify() or setUser()
Best Practices
1. Identify Early
Callidentify() as soon as you have user information: