Converso Help Center

How can we help?

2. Widget setup and identity verification

Make webchat fit your website and, where needed, recognise customers who have signed in to your application. Appearance and identity are separate parts of the setup: test both on the installed widget.

Open Settings → Widget. An Admin selects the workspace and manages its identity secret; a developer implements token signing on your server.

Widget controls

ControlPurpose and initial value
Display nameCustomer-facing workspace display name, initially the business name.
Logo / RemoveSet or clear the widget logo.
Primary colourInitially #2563eb.
Welcome messageInitially “Hi there. How can we help?”
LanguageInitially en; use a supported widget language value.
WhatsApp click-to-chatInitially off; enables the available WhatsApp route.
Launcher sideRight initially, or Left.
Hide on mobileInitially off.
Allowed domainsEmpty allows any domain; Converso's own hosts always pass.
SaveApplies the form settings.
Identity secretReveal, copy or regenerate the signing secret.

Preview and contact capture

Use the preview to inspect appearance, then test the installed widget. The preview does not prove that your website's domain policy or identity token is correct. Contact capture is not a general field builder here; the supported optional email request depends on customer-email availability and handoff.

Signed customer identity

  1. Obtain the workspace's Identity secret and store it on your server.
  2. After authenticating the user in your application, create an HS256 JWT.
  3. Include a nonblank sub identifying that user and an exp expiry no more than 24 hours ahead. The identifier can contain at most 200 characters.
  4. Optionally include name, email, email_verified and attributes.
  5. Pass the signed token through the snippet's data-token or Converso.identify(token).
  6. Call Converso.reset() when the user signs out.

Example identity payload

This fictional payload shows the required subject and expiry with optional customer details:

{
  "sub": "customer_123",
  "exp": 1792429200,
  "name": "Alex Morgan",
  "email": "alex@example.com",
  "email_verified": true
}

The timestamp is illustrative, not a reusable token expiry. Generate a fresh future value from your server clock. Set email_verified only after your own system has verified the address. Without that claim, the supplied email is unverified. Never embed the signing secret in client JavaScript. Only the short-lived signed token belongs in the page.

Identity validation

Check these cases when testing your integration:

Refresh the token on page load and inspect any rejection state in the widget.

Secret rotation

Regenerating the secret invalidates tokens signed with the old secret on subsequent verification. Update your server immediately and issue fresh tokens. Do not treat secret regeneration as a verified instant logout mechanism for every already-issued widget session; contact support if immediate revocation is required.

Related guides: Website installation, Contact identity, Developer.

Was this helpful?