Identify visitors from the widget
When a visitor identifies themselves in the widget — by chatting with an email, or via the SDK's id() / lead() calls from your app — Helpin creates or matches a CRM contact and links every conversation to it. This page explains how identification flows into CRM.
Why it matters
Identification is the bridge between support conversations and your sales pipeline:
Anonymous visitors become known leads with an email you can follow up on.
Existing customers' conversations attach to their account history.
Sales sees support engagement as buyer signals (for example, pricing questions in a support chat).
How identification happens
There are two paths:
In-chat capture — the visitor types their email into the widget (prompted by identity capture rules or when requesting a human).
SDK identification — your site calls
client.id({...})after login, orclient.lead({...})for a captured lead:
await client.id({
id: 'user_123',
email: 'jane@example.com',
first_name: 'Jane',
last_name: 'Doe',
company: {
id: 'company_123',
name: 'Acme Inc',
created_at: '2024-01-15T00:00:00Z',
},
});
client.lead({
email: 'lead@example.com',
first_name: 'New',
last_name: 'Lead',
company: { id: 'company_456', name: 'Acme Inc', created_at: '2024-01-15T00:00:00Z' },
});
Common field names (email, first_name, company, phone, role) map automatically to CRM fields. Form capture rules can map custom fields explicitly via fieldMappings.
Contact creation rules
Configured in Settings → Chat Widget → Identity Capture and the CRM integration block:
Auto-create CRM contact — when a visitor provides an email and no matching contact exists, Helpin creates one.
Default lifecycle stage — the stage assigned to auto-created contacts (Subscriber, Lead, Opportunity).
Auto-promote to lead — optionally upgrade contacts from subscriber to lead after their first conversation resolves.
If a contact with that email already exists, the conversation links to the existing record instead of creating a duplicate.
What gets linked
After identification:
The conversation links to the contact (visible in the conversation Details panel → CRM).
If a company was provided (or the contact's email domain matches a company), the company links as well.
The contact's profile shows the conversation history.
Identity trust levels
Identification from your server (an HMAC-signed id() call after login) is treated as verified identity. Email typed into the widget creates an untrusted lead identity — enough to reply and follow up, and upgradeable when the customer logs in and your app identifies them with proof.
Verifying it works
Open a test conversation in the widget and provide an email.
Check the conversation's Details panel → CRM section: the contact should be linked.
Open the CRM contact — the conversation appears in its activity.
In Settings → Chat Widget → Identity Capture, confirm auto-create and lifecycle settings match your process.
Related pages
Was this article helpful?