Guides

Identify your Contacts

Pass the chat the ID of the person signed in on your side: they become a Verified Contact, with their Conversation on each of their devices.

Updated October 20, 2026

The samples show app_your_app_key. Open this guide from App settings > Developers > Getting started to see your App’s key in them.

Without identification, each device is an Anonymous Contact. When a person is signed in on your side, pass the chat their ID in your app, with their name and email: they become a Verified Contact. No secret and no code on your server.

Pass the person to the chat

Add user to window.zean in the Install code, with the signed-in person’s values. If they sign in once the page has loaded, call window.zean.identify({ id, name, email }).

<script>  window.zean = {    appKey: "app_your_app_key",    user: {      id: "1042",      name: "Awa Diallo",      email: "awa@example.com",      phone: "+221 77 123 45 67",      language: "wo"    }  };</script><script async src="https://widget.zean.chat/loader.js"></script>

What you pass

NameTypeDescription
idstring | numberRequired. Your own ID for the person, as text or a number, 200 characters at most.
namestringOptional. Their name, on their Contact profile.
emailstringOptional, but do pass it: the code that adds another device, or brings in what the person wrote anonymously, goes to this address.
phonestringOptional. Their phone, on their profile and in the Inbox’s Contact panel.
languagestringOptional. Their language, any one, as a tag such as wo, pt or pt-BR. Without it, their device’s is kept.
  • A detail that does not fit, such as a badly written email, is left out, and the console says which. Without id, the whole person is left out.
  • The dashboard shows the language by name, for example “Wolof” or “Portuguese (Brazil)”, in the Contacts list, on the profile and in the Contact panel. It does not change the chat’s own language: see Language.

On the first device

The first device to bring an ID joins that Verified Contact at once. What the person wrote there before, anonymously, joins their Conversation. The details this device gives fill in their profile.

On another device

Another device with the same ID does not show the Conversation at once. It chats as its own Contact, marked “Not verified” in the dashboard, and the chat offers a code above the message field:

  1. The chat shows “Chatted with us on another device?” and the “Get the code” button.
  2. A 6-digit code goes to the email saved on the Verified Contact, never to an address this new device gives. The email carries your App’s name.
  3. The person types the code in the chat. On a phone, the keyboard offers the code it received.
  4. The device joins the Verified Contact: its messages are added to the Conversation.
  • A code works for 10 minutes and 5 tries, only on the device that asked for it.
  • At most 3 codes per hour for a person, and 5 per device.
  • Until it has joined the Contact, a device changes neither the person’s name, email, phone nor language: what it gives stays on its own Contact.

Pass email. Without a saved email, a second device can never join the Verified Contact: each device keeps its own Conversation.

What they wrote before signing in

A person who wrote anonymously and left their email in the chat can bring that Conversation in with a code sent to that email, in both directions. Pass email in user for this. Nothing merges on a matching email alone.

  • Signed in after writing anonymously on another device: the chat shows “Wrote to us before signing in?”. Once the code is typed, every anonymous Conversation that gave this email joins theirs.
  • Writing anonymously after signing in elsewhere: a device that gives a Verified Contact’s email shows “Chatted with us on another device?”. Once the code is typed, it joins that Contact and what it wrote joins the Conversation.
  • The device whose Conversation moved does not join. It keeps the email and offers the code on its next visit.
  • “Not me” turns the offer down on that device for good.
  • Two IDs with the same email are two Verified Contacts, never merged. An anonymous device that gives that email is offered nothing.
  • A device that gave an id only gets that ID’s code, never one for an email.
  • The code limits above apply.

Good to know

  • IDs belong to each App. A product’s website and mobile app are one App, with one key: the same ID on both is one person with one Conversation.
  • Pass the ID only once the person is signed in on your side: the first device to bring it joins their Contact.
  • To switch from one person to another, pass the new ID: the first one leaves the device.
  • On sign-out, see Sign the Contact out.