Skip to main content
Identity verification ties every widget session to a user your backend has already authenticated. With it on, the widget refuses to load without a valid JWT that you signed. With it off, visitors type their own email and name into an identity form.

Turning It On

Open Chat Widgets → [your widget] → Security and turn identity verification on. A JWT signing secret is generated for you.
Use the signing secret on your backend to generate JWTs. Never expose it in frontend code.

Embed Code with Authentication

When identity verification is enabled, use data-disable-autoboot and call Decimal.boot() with the signed token:
The key differences from the standard embed code:
  • data-disable-autoboot prevents the widget from loading until a token is provided.
  • Decimal.boot({ user_token }) initializes the widget with the signed JWT.
You can also pass metadata to Decimal.boot(), or update it later with Decimal.update(). Whatever it holds travels with the ticket when a conversation escalates to a human.

Server-Side Token Generation

Token generation must happen on your backend server where the secret remains secure.

JWT Claims

Any other claim you add is stored and lands in the escalation ticket’s metadata, which is how account IDs or plan types reach your support team. What the ticket does with them depends on the integration handling the escalation.