[object Object]

A visitor lands on your site, opens chat, says “hi.” If you know who they are before they introduce themselves, the conversation skips the qualification step. Visitor identification in Freshchat does this through cookies, JavaScript identity calls, and progressive enrichment.

Anonymous to known

Default behavior: every visitor gets a Freshchat visitor ID stored in a first-party cookie. The visitor stays anonymous to your CRM but is tracked across sessions on your site.

To convert anonymous to known, call the JavaScript identity API when you have an authenticated user:

window.fcWidget.user.setProperties({
  cuid: 'crm_user_id_12345',
  email: '[email protected]',
  firstName: 'Jane',
  lastName: 'Doe',
  externalId: 'crm_user_id_12345'
});

Call this on every page after login. The Freshchat record then links to your CRM contact.

The cookie is first-party, scoped to your domain. Cross-domain (yourco.com and app.yourco.com) requires explicit cross-domain configuration in the chat widget settings.

Cookie lifetime is one year by default. Long enough for repeat visitors, short enough to respect privacy. Visitors clearing cookies appear as new anonymous visitors.

Server-side identification

For sensitive identity data, do not pass full PII through the JavaScript widget. Instead, sign the identity payload server-side using HMAC and pass the signed token. Freshchat verifies the signature and accepts the identity.

This prevents browser-side tampering (“I’ll set my email to the CEO’s”).

Progressive enrichment

Even known visitors lack data. Each conversation can capture more:

  • First conversation: name and email (from identity call).
  • Second conversation: company (from CRM lookup on email domain).
  • Third conversation: role (from data enrichment integration).

Build the enrichment as workflows triggered on conversation start. The agent sees a complete profile before the first message.

Returning visitor recognition

When a known visitor returns, the chat widget pre-loads their profile and conversation history. Past tickets, past conversations, current account status all visible to the agent in the side panel.

Configure the side panel to show: company name, plan tier, open tickets count, last conversation date. These four data points cover 80 percent of agent context needs.

GDPR considerations

Visitor identification creates a personal data record. Disclose in your privacy policy:

  • What data is collected (visitor IP, browser, page views).
  • What data is shared with Freshworks (identifier, content of conversations).
  • How users can request deletion.

For users in restricted regions (EU, California), provide a “do not track” option that disables visitor identification. The chat still works; the data does not link to a profile.

Pre-chat forms

For unknown visitors who want to chat, the pre-chat form captures name, email, question. Make it lightweight (3 fields max). Long forms drop conversion by 40 percent.

Skip the pre-chat form for known visitors. The widget detects identity and goes straight to chat.

Reporting on identification

Track:

  • Anonymous to known conversion rate (visitors identified within first 5 conversations).
  • Identity coverage on conversations (percent with full profile).
  • Enrichment data lag (time from first identification to fully enriched).

Improve targeted enrichment for the dimensions that drive routing decisions.

What to do this week

Audit your chat widget. Confirm authenticated pages call the identity API. Test on a fresh browser session as a logged-in user; the agent should see full identity within seconds.

[object Object]
Share