Security and Access

Session Settings

A session is the container for one user's conversation with an agent. These settings control how long sessions stay alive, when they expire, and what extra data you can attach to them.

Session types

TypeHow it startsDefault inactivity expiry
AnonymousWidget opens automatically - no user identity required30 minutes
SignedYour server creates a session with an externalUserId480 minutes (8 hours)

Configurable limits

SettingDefaultDescription
Anonymous session expiry30 minInactivity window before an anonymous session is marked expired. Resets on each message.
Signed session expiry480 minSame as above for signed sessions.
Max session duration60 minHard cap on total session wall-clock time, regardless of activity.
Max messages per session50Maximum number of messages (user + assistant combined) before the session stops accepting new messages.

Session status lifecycle

Sessions move through a well-defined set of states:

StatusMeaning
activeSession is open and accepting messages.
idleNo messages recently - within the expiry window but not yet expired.
expiredInactivity or hard duration limit reached. No new messages accepted.
closedUser or your server explicitly closed the session.
escalatedUser requested human support. The session is linked to an escalation ticket.
blockedSession was flagged and suspended - typically by a rate limit or policy violation.

Session metadata

You can attach arbitrary key/value metadata to a session when it is created. This is useful for passing context from your application - for example the user's locale, a brand or market code, or the current page URL. Metadata is available to action inputs via the session metadata input type.

// Example metadata passed at session init
{
  "locale": "en-GB",
  "brandCode": "MAIN",
  "market": "UK",
  "currentPage": "/checkout"
}

Metadata is sanitised before storage: nesting is limited to prevent injection attacks, and very large payloads are rejected. Keep metadata flat and concise.

Privacy-preserving fingerprinting

Bounds stores hashed versions of the user's IP address and user agent string for analytics and abuse detection. The raw values are never stored. Origin domain and referrer are stored in plain text.