Persisted conversations, no extra database
Remember signed-in users
Pass a signed user identity into the widget and yak persists every conversation against that user. When they come back—same device or new one—they can browse their past chats from the widget menu and pick up where they left off. Anonymous traffic still works exactly as before: no identity, no persistence.
What you get
- HMAC-signed identity verification (Intercom-style)—the secret never leaves your server
- Conversations resume across devices and sessions
- Built-in conversation-history pane in the widget with new-chat and delete actions
- Just an id and a hash—no PII passed through the widget
- Rotate the secret from the dashboard if it ever leaks
How it works
Sign the user id on your server
Grab your application's API secret from the dashboard and compute an HMAC-SHA256 hex digest of the logged-in user's id, then pass that { id, hash } to <YakProvider> via the user prop.
yak verifies and persists each request
The widget forwards { id, hash } on every request that touches user data; yak recomputes the HMAC with your secret, compares it in constant time, upserts the end-user, and saves messages against a conversation owned by that user.
The user resumes from their history pane
Once the hash verifies, the widget menu gains a Conversation history entry that lists recent conversations the user can re-hydrate, alongside a New conversation action and a per-conversation delete—all re-verified server-side.
Frequently asked questions
Related features
Ship user identity with yak
Add an AI assistant that matches your product—then turn on the features your users need.