Create a Web SDK Channel
The Web SDK channel connects a browser-based chat or voice widget to your agent. It supports two authentication modes — Anonymous / Public-key bootstrap for client-only apps, and Hosted token exchange for setups where a backend can hold a server secret.Choose your authentication mode before you begin — it determines which additional fields apply later in this setup.
Set Up the Connection
On the New Web SDK Connection page, provide the following fields.
| Field | Description |
|---|---|
| Display Name | A label for the connection (up to 255 characters). |
| Environment | The environment this channel follows; it tracks that environment’s active deployment. |
| Authentication | How customer browsers bootstrap SDK sessions. Select Anonymous / Public-key bootstrap or Hosted token exchange. |
Choose an Authentication Mode
| Mode | When to Use |
|---|---|
| Anonymous / Public-key bootstrap | Browser or client app. Store the public pk_* key, runtime endpoint, and channel selection in client-side configuration. No ABL secret is required, so you provision nothing extra on the customer server. |
| Hosted token exchange | Customer backend. The backend stores a reveal-once sk_* server secret and issues one-time bootstrapToken values; the browser stores only the short-lived token, runtime endpoint, and project ID. |
If you select Hosted token exchange, complete the next step. Otherwise, skip to Select the Public SDK Key.
Set the Token Envelope Policy (Hosted Token Exchange Only)
The Token envelope policy controls whether Hosted Exchange SDK bootstrap and session credentials are signed or encrypted.
| Option | Meaning |
|---|---|
| Use runtime default | Defers to the project-level default Hosted Exchange token envelope policy |
| Signed tokens | Issues signed bootstrap/session tokens only |
Prefer encrypted tokens (jwe_preferred) | Uses encrypted (JWE) tokens when Runtime’s encryption capability is ready; falls back to signed tokens otherwise |
Require encrypted tokens (jwe_required) | Requires encrypted issuance and verification end to end; fails closed rather than returning a signed token |
Select the Public SDK Key and Create the Channel
Select the Public SDK Key the browser will use during SDK bootstrap, then select Create.
Configure Additional Settings
Once the channel is created, select it, then go to the Configuration tab to update the following fields:
| Field | Description |
|---|---|
| Allowed Origins (CORS) (optional, both modes) | One URL per line, e.g. https://example.com, https://*.example.com. These origins are enforced for the public key linked to this SDK channel. |
| Server secret (Hosted token exchange only) | Studio generates the sk_* server secret automatically on creation and reveals it once. Copy and store it in your customer backend immediately, since it cannot be viewed again. Server Secret Status, Server Secret Prefix, and Last Rotated are shown afterward; use Rotate server secret to issue a new one — the previous secret stops working immediately. |
| Customer-issued encrypted bootstrap (Hosted token exchange only, toggle, off by default) | Accept customer-backend-issued JWE bootstrap tokens so sensitive and identity data can be encrypted before it reaches Runtime. |
Configure Widget Behavior
Regardless of authentication mode, the same widget behavior settings apply, under Web SDK Settings.
| Field | Description |
|---|---|
| Widget Mode | Chat Only, Voice Only, or Chat + Voice. |
| Features | Toggle Chat and Voice independently. |
| Show Agent Activity Updates | Off by default. Displays transient handoff, delegate, and reasoning activity for this SDK channel. |
| Theme | Choose a preset (for example Light) or select Add themes to tune the widget to match your host site. |
| Welcome Message | The first message shown to users, for example “Hello! How can I help you today?” |
Manage an Existing Channel
Opening a channel from Deployments > Channels > Web SDK shows four tabs: Overview, Configuration, Deployment, and Testing.- Overview
- Configuration
- Deployment
- Testing
The Connection Summary shows these fields.
| Field | Description |
|---|---|
| Status | for example: Active |
| Created | Timestamp the channel was created |
| Updated | Timestamp of the last change |
| Environment | for example: dev |
| Source Type | SDK Channel |
| Source ID | Unique channel identifier (UUID) |