# How the widget behaves

What your customers actually experience — and the mechanics underneath.

## Sessions & identity

A visitor gets an anonymous session on first open (stored in their browser, so conversations survive reloads). When they provide an email — through the pre-chat form or later — the session becomes a [contact](/contacts), and all their conversations link together. Same email on a different device: same contact.

## Conversations

Messages deliver in real time both ways, with typing indicators. Visitors can attach files. If they close the tab mid-conversation, the conversation and its history are there when they return.

When a conversation is closed by your team, the widget asks for a quick **satisfaction rating** — thumbs up or down — which lands on the conversation and the contact's history. Visitors can dismiss it; it doesn't nag.

## What customers never see

[Internal notes](/live-chat) your team writes on the conversation, team-chat discussion about it, and everything else in your workspace. The widget's connection is scoped to its own conversation — it's a separate, rate-limited channel, not a window into your workspace.

## Fairness & abuse

Widget sessions are rate-limited (a burst of messages per minute per session) so a hostile visitor can't flood your inbox or your infrastructure.
