Embed a chat widget in your website with a single script tag. Web SDK is a deployment channel that connects a chat and voice widget on your site to a specific agent deployment.
Create a Web SDK Channel
Go to Deployments > Channels > SDK > Web SDK > + New.
The dialog collects these 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 the authentication mode that fits your setup.
| 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, also set 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 the browser will use during SDK bootstrap, and then select Create.
Once the channel is created, the Configuration tab shows a few additional fields:
- 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 PHI and identity data can be encrypted before it reaches Runtime.
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?” |
Select Save Configuration, then Save Changes to persist the channel.
Manage an Existing Channel
Opening a channel from Deployments > Channels > Web SDK shows four tabs: Overview, Configuration, Deployment, and Testing.
Overview
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) |
Configuration
Contains the same General (Display Name), Authentication, and widget behavior settings described in Create a Web SDK Channel above, editable at any time. Changing the auth mode, token envelope policy, allowed origins, or public key here updates the live channel immediately after Save Changes.
Deployment
The tab collects these fields.
| Field | Description |
|---|
| Agent Version | An Environment dropdown (for example: Development) that selects which deployed version handles incoming messages. |
| Active Deployment | Shows the bound deployment version and when it was deployed. |
Select Save Changes after switching the environment/version.
Testing
Select + Generate Link under Secure Preview Link to create a secure, time-limited link to preview your widget. The link expires after 7 days.
Copy the Embed Code the tab provides, for example:
<!-- Agent SDK Widget -->
<!-- Replace YOUR_PUBLIC_API_KEY with a full key that starts with pk_ca3b8ed5 -->
<script src="https://agents-staging.kore.ai/api/sdk/embed/script" defer></script>
<agent-widget
project-id="PROJECT ID"
api-key="YOUR_PUBLIC_API_KEY"
endpoint="https://agents-staging.kore.ai"
channel-id="CHANNEL ID"
client-session-identifier="true"
chat-enabled="true"
voice-enabled="false"
mode="chat"
position="bottom-right"
></agent-widget>
- Copy the above embed code.
- Replace the API key placeholder with your actual key.
- Paste the code before the closing
</body> tag.
- The widget will appear on your site automatically.
The embed code is generated per channel and already includes the correct project-id, endpoint, and channel-id for this connection — only the API key placeholder needs to be replaced.