A session is one conversation. The agent uses it to remember earlier turns, so it can ask a follow-up question and understand the answer without your app parsing anything. Your integration’s only job is deciding when a session starts, continues, or resets.

Web embed

Snippets copied from Deploy > Chat widget > Embed intentionally omit any session identifier. Each visitor receives a unique anonymous session automatically, and those conversations appear in the dashboard under Chat logs.
Do not add a fixed session query parameter to production embed URLs. That would merge every visitor into a single conversation. Pinned sessions exist only for Playground preview and demo links.

React Native SDK

By default, the SDK starts a fresh session per app launch. To persist conversations across launches, pass a storage adapter:

Anonymous vs identified conversations

Pass the same endUserId on every mount for a given user. Switching ids mid-conversation breaks identity continuity and can prevent authenticated actions from resolving the right account. See Authentication & identity.

Slot-filling happens server-side

When the agent needs more information to run an action, it asks in chat, the user answers in chat, and the runtime carries the collected fields across turns on the session. Your app does not collect parameters, parse intents, or manage dialog state.

Streaming & events

What happens during a turn.

Actions & UI payloads

Structured results in the conversation.