> ## Documentation Index
> Fetch the complete documentation index at: https://koreai-agentplatform-dev.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent behavior settings

Agent behavior settings let you configure behavior profiles, alerts, agent transfer, call recording, API and widget data access, attachments, omnichannel support, and governance policies.

| Settings                                  | Description                                                                      |
| ----------------------------------------- | -------------------------------------------------------------------------------- |
| [Behavior profiles](#behavior-profiles)   | Configure overrides for agent speaking, listening, and interaction behavior.     |
| [Alert settings](#alert-settings)         | Configure rules that trigger notifications when metrics breach thresholds.       |
| [Agent transfer](#agent-transfer)         | Manage defaults for transfer sessions, routing, voice gateway, and PII handling. |
| [Recording](#recording)                   | Manage call recordings, playback, retention, and compliance.                     |
| [Public API Access](#public-api-access)   | Configure external API access permissions and integration endpoints.             |
| [Public Widget Data](#public-widget-data) | Manage what session and agent data is exposed to widgets.                        |
| [Attachments](#attachments)               | Configure policies for file uploads, storage, and handling in conversations.     |
| [Omnichannel](#omnichannel)               | Configure multi‑channel support and unified agent behavior across platforms.     |
| [Governance](#governance)                 | Define compliance, audit, and administrative oversight policies.                 |

## Behavior profiles

The settings on the **Behavior Profiles** page let you define context-driven overrides for agent conversation behavior. Profiles in addition to any agent baseline when the defined conditions match, but don't modify the core definition of the agent.

**Navigation**: **Project** → **Settings** → **Behavior Profiles**

### Create a behavior profile

#### Create profile

Selecting this option opens an editor.

| Field               | Description                                                                                                                        |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **Profile Name**    | A unique identifier for the profile (for example, `voice_support`).                                                                |
| **Priority**        | Numeric priority. Lower values take precedence when multiple profiles match.                                                       |
| **WHEN Expression** | A boolean expression that determines when this profile activates (for example, `true` for always-on, or a context variable check). |

Below the header, the profile editor organizes settings into three behavior sections:

#### Speaking

| Setting                 | Description                                                                     |
| ----------------------- | ------------------------------------------------------------------------------- |
| **Style**               | Response style (for example, warm and concise).                                 |
| **Tone**                | Response tone (for example, reassuring).                                        |
| **Emotion**             | Emotional register (for example, calm).                                         |
| **Pace**                | Response pacing (for example, steady).                                          |
| **Language Policy**     | Language selection policy (**Inherit**, **Fixed**, or **Detect**).              |
| **Fixed Language**      | The language code when **Language Policy** is **Fixed** (for example, `en-US`). |
| **Max Sentences**       | Maximum number of sentences per response.                                       |
| **One Thing at a Time** | Whether the agent addresses one topic per turn.                                 |
| **Tool Lead-in**        | How the agent introduces tool invocations.                                      |
| **Tool Results Style**  | How the agent presents tool results to the user.                                |
| **Tool Result Points**  | Number of key points to extract from tool results.                              |
| **Internal Handoffs**   | Behavior when handing off to another agent.                                     |
| **Human Handoffs**      | Behavior when handing off to a human operator.                                  |

#### Listening

| Setting               | Description                                                                                                             |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| **Barge-In**          | How the agent handles user interruptions mid-response. **Inherit** uses the setting configured at a higher level.       |
| **On Pause**          | Behavior when the user pauses mid-utterance. **Inherit** uses the setting configured at a higher level.                 |
| **On Overlap**        | Behavior when the user and the agent speak at the same time. **Inherit** uses the setting configured at a higher level. |
| **Unclear Audio**     | How the agent handles unclear or noisy input. **Inherit** uses the setting configured at a higher level.                |
| **Self-Correction**   | How the agent detects and handles user self-corrections. **Inherit** uses the setting configured at a higher level.     |
| **No-Input Handling** | Behavior when the user doesn't respond within the expected timeout window.                                              |

#### No-input handling configuration

| Field                                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Enabled**                          | Turns no-input handling on or off. **Use project default** inherits the setting configured at the project level. [Learn more](/agent-platform/abl-reference/behavior-profiles#voice-turn-taking).                                                                                                                                                                                                                                                                                      |
| **Mode**                             | Controls how the agent handles no-input retries. **Use project default** inherits the project-level setting. **Dynamic** additionally exposes **Order**, **Play Style**, **Messages**, and **Generation**.                                                                                                                                                                                                                                                                             |
| **Timeout (ms)**                     | How long the agent waits for user input before treating the turn as no-input. Default: 5000 ms.                                                                                                                                                                                                                                                                                                                                                                                        |
| **Max Retries**                      | Number of times the agent re-prompts the user after a no-input timeout before moving to the exhausted behavior. Default: 3.                                                                                                                                                                                                                                                                                                                                                            |
| **On Exhausted**                     | Behavior once **Max Retries** is reached. **Use project default** inherits the setting configured at the project level, **Hangup** ends the conversation, and **Custom** plays a custom message to the user.                                                                                                                                                                                                                                                                           |
| **Relaxed Interval (ms)**            | Timeout duration used for retries after the first, typically longer than the initial timeout to be more lenient. Default: 15000 ms.                                                                                                                                                                                                                                                                                                                                                    |
| **Order**                            | The order in which the agent plays no-input messages across retries (for example, **Random**).                                                                                                                                                                                                                                                                                                                                                                                         |
| **Play Style**                       | How the agent plays a no-input message to the user. **Use project default** inherits the project-level setting.                                                                                                                                                                                                                                                                                                                                                                        |
| **Messages**                         | Select **+ Add message** to configure one or more no-input prompts the agent can play to the user.                                                                                                                                                                                                                                                                                                                                                                                     |
| **Generation** *(Dynamic mode only)* | Configures AI-generated no-input messages, as an alternative or a supplement to authored messages: **Enabled** (turns generated messages on or off, **Inherit** uses a higher-level setting), **Generation Model** (model used to generate the message, **Runtime default model** uses the platform default), **Prompt Library Prompt ID** (ID of the prompt used, runtime uses its active version), and **Max Output Tokens** (maximum length of the generated message, default 150). |

<Note>This is only supported for pipeline voice using KoreVG.</Note>

**Interaction**

| Setting                         | Description                                                                |
| ------------------------------- | -------------------------------------------------------------------------- |
| **Answer Shape**                | The structure of responses (for example, direct, exploratory).             |
| **Detail**                      | Level of detail in responses.                                              |
| **Initiative**                  | How proactively the agent guides the conversation.                         |
| **Grounding**                   | How the agent establishes shared understanding.                            |
| **Clarification**               | When and how the agent asks clarifying questions.                          |
| **Max Clarification Questions** | Maximum number of clarification questions per turn.                        |
| **Assume When Low Risk**        | Whether the agent assumes intent when the risk of misunderstanding is low. |
| **Confirm Parameters**          | Whether the agent confirms parameters before executing actions.            |
| **Confirm Actions**             | Whether the agent confirms actions before performing them.                 |
| **Uncertainty**                 | How the agent communicates uncertainty.                                    |
| **Offer Next Steps**            | Whether the agent proactively suggests next steps.                         |
| **Empathy**                     | Level of empathetic language in responses.                                 |
| **On Correction**               | Behavior when the user corrects the agent.                                 |
| **On Confusion**                | Behavior when the user appears confused.                                   |
| **On Misheard**                 | Behavior when the system misrecognizes audio input.                        |
| **Repair Attempts**             | Maximum number of repair attempts before escalation.                       |
| **Avoid Re-asking**             | Whether the agent avoids repeating questions already answered.             |
| **Remember Constraints**        | Whether the agent tracks and respects stated constraints across turns.     |
| **Closure**                     | How the agent closes a conversation or topic.                              |

**Authoring Note**: A free-text field for documenting when and why this profile applies.

All settings default to **Inherit**, meaning the agent's base configuration applies. Override any setting to customize behavior for the profile's conditions. Select **Save** to create the profile, or switch to **Raw DSL** to edit the profile definition as code.

***

## Alert settings

The **Alert Settings** page defines rules that trigger notifications when project metrics breach a threshold. The runtime evaluates each rule on a fixed cadence and delivers a notification by email or webhook when the condition matches.

**Navigation**: **Project** → **Settings** → **Alert Settings**

When the project has no rules yet, the page shows an empty state. Select **Create alert rule** to open the rule editor, or **Browse available metrics** to review every metric the evaluator can alert on before you start.

Typical uses include containment rate drops, error spikes, latency increases, and sentiment degradation.

### Create an alert rule

Select **Create alert rule** to open the **Create alert rule** panel. The footer tracks what the rule still needs (for example, `Still needed: name, metric, recipients`) and keeps **Save rule** available once you supply those values. Select **Cancel** to discard the rule.

| Field                      | Description                                                                                                                                                                      | Default                  |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
| Rule name (required)       | A descriptive name for the rule (for example, *LLM latency p95 too high*).                                                                                                       | Empty                    |
| Evaluating                 | Controls whether the evaluator picks the rule up on its next cycle. Turn it off to keep the rule in the list but paused.                                                         | Enabled                  |
| Subject                    | The metric family the rule watches: Agent, LLM, Tool, Voice, or Others. The subject determines which metrics the Metric list offers and whether a scope selector appears.        | Agent                    |
| Agent (Agent subject only) | Limits the rule to a single agent. Leave it as *Any agent (project-wide)* to watch the whole project.                                                                            | Any agent (project-wide) |
| LLM (LLM subject only)     | Limits the rule to a single LLM. Leave it as *Any LLM (project-wide)* to watch the whole project.                                                                                | Any LLM (project-wide)   |
| Metric (required)          | The metric the rule evaluates. The list reflects the selected subject. Selecting a metric reveals its allowed aggregation and, where supported, a channel filter.                | Select a metric          |
| Aggregation                | The statistical aggregation applied to the metric within the window (for example, avg, p95, sum). Options depend on the selected metric. Only appears once a metric is selected. | Varies by metric         |
| Channel                    | Restricts the rule to a specific channel. Only appears when the selected metric supports channel filtering.                                                                      | Any channel              |
| Condition                  | The comparison the evaluator applies between the metric value and the threshold (for example, `Less than <`                                                                      | `Less than <`            |
| Threshold (required)       | The value the metric must cross for the rule to fire. Use the stepper controls or enter a value directly. May display a unit suffix tied to the metric (for example, *score*).   | 0                        |
| Window (required)          | How far back the rule looks when it evaluates the metric, in minutes.                                                                                                            | 10 min                   |
| Evaluate every (required)  | How often the evaluator runs the rule, in minutes.                                                                                                                               | 10 min                   |
| Cooldown (required)        | How long the rule stays quiet after it fires, in minutes. Use this to suppress repeat notifications for an ongoing condition.                                                    | 10 min                   |
| Deliver via                | The delivery channel for the notification: Email or Webhook.                                                                                                                     | Email                    |

**If Deliver via : Email:**

| Field                 | Description                                                                                                               | Default |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------- |
| Recipients (required) | Destinations for the notification. Separate email addresses with commas or new lines. Every recipient receives the alert. | Empty   |

**If Deliver via : Webhook:**

| Field                  | Description                                                                  | Default               |
| ---------------------- | ---------------------------------------------------------------------------- | --------------------- |
| Webhook URL (required) | Destination URL the platform calls when the rule fires.                      | Empty                 |
| Auth profile           | Authentication method for the webhook call: `api_key`, `bearer`, or `basic`. | None (no auth header) |

### Subject scopes

| Subject    | What the rule watches                                                 | Scope selector                                      |
| ---------- | --------------------------------------------------------------------- | --------------------------------------------------- |
| **Agent**  | LLM metrics attributed to agent activity.                             | **Agent**, defaulting to all agents in the project. |
| **LLM**    | LLM metrics across the project, independent of the calling agent.     | **LLM**, defaulting to all LLMs in the project.     |
| **Tool**   | Tool execution volume, failures, and latency from platform events.    | None. The rule applies project-wide.                |
| **Voice**  | Voice session, TTS, ASR, and connection metrics from platform events. | None. The rule applies project-wide.                |
| **Others** | Trace records and conversation sentiment metrics.                     | None. The rule applies project-wide.                |

### Available metrics

#### Agent and LLM metrics

The **Agent** and **LLM** tabs list the same LLM metrics group. The **Agent** tab scopes each metric to agent activity, and the **LLM** tab scopes it to the LLM. All metrics in this group read from the **LLM metrics** source and support no channel or tool filters.

| Metric                      | Category    | Status   | Description                                   | Aggregations                 |
| --------------------------- | ----------- | -------- | --------------------------------------------- | ---------------------------- |
| **LLM latency**             | Operational | Existing | Per-call latency from the LLM metrics stream. | p95, p99, avg, max, min      |
| **LLM cost (window total)** | Operational | Existing | Sum of estimated LLM cost over the window.    | sum, avg, max, min, p95, p99 |
| **Total tokens**            | Operational | Existing | Tokens consumed over the window.              | sum, avg, p95, p99, max, min |
| **LLM error rate**          | Error       | Existing | Share of LLM calls in the window that failed. |                              |

#### Tool metrics

Tool metrics read from the **Platform events** source. All three support channel filters, channel connection scope, and tool name and type filters.

| Metric                      | Category    | Status | Description                                                                          | Aggregations            |
| --------------------------- | ----------- | ------ | ------------------------------------------------------------------------------------ | ----------------------- |
| **Tool execution count**    | Operational | New    | Total completed or failed tool calls in the window.                                  | Fixed expression        |
| **Tool error count / rate** | Error       | New    | Failed tool calls. The notification includes failed calls divided by terminal calls. | Fixed expression        |
| **Tool latency**            | Operational | New    | Per-call tool execution latency.                                                     | p95, p99, avg, max, min |

#### Voice metrics

Voice metrics read from the **Platform events** source. All support channel filters and channel connection scope, and none support tool name and type filters.

| Metric                       | Category    | Status | Description                                                             | Aggregations       |
| ---------------------------- | ----------- | ------ | ----------------------------------------------------------------------- | ------------------ |
| **Voice session errors**     | Error       | New    | Voice sessions that ended because of a terminal technical error.        | Fixed expression   |
| **TTS failure count**        | Error       | New    | Text-to-speech operations whose delivery ended in failure.              | Fixed expression   |
| **Avg ASR confidence**       | Quality     | New    | Average confidence from speech recognitions that reported a real score. | Fixed expression   |
| **Voice connection latency** | Operational | New    | Time required to establish a voice gateway session.                     | p95, p99, avg, max |

#### Other metrics

The **Others** tab groups trace and sentiment metrics.

**Trace records**

| Metric               | Category    | Status   | Description                                                                                       | Aggregations            | Filters |
| -------------------- | ----------- | -------- | ------------------------------------------------------------------------------------------------- | ----------------------- | ------- |
| **Trace duration**   | Operational | Existing | End-to-end trace duration from `spatial_trace_records`.                                           | p95, p99, avg, max, min | None    |
| **Slow trace count** | Operational | New      | Number of root traces exceeding the configured duration threshold. Takes the `slow_ms` parameter. | Fixed query             | None    |

**Conversation sentiment**

| Metric                     | Category | Status   | Description                                           | Aggregations       | Filters        |
| -------------------------- | -------- | -------- | ----------------------------------------------------- | ------------------ | -------------- |
| **Conversation sentiment** | Quality  | Existing | Average sentiment across conversations in the window. | avg, min, max, p95 | Channel filter |
| **Frustration rate**       | Quality  | Existing | See note                                              | See note           | See note       |

***

## Agent transfer

The **Agent Transfer Settings** page configures defaults for agent transfer sessions, routing, voice gateway, and PII handling. These settings apply project-wide unless an individual agent or workflow overrides them at runtime.

**Navigation**: **Project** → **Settings** → **Agent Transfer**

The page organizes content into three collapsible sections. Select a section header to expand or collapse it. Select **Save** to apply changes or **Reset** to restore all values to defaults.

| Section             | Description                                                                    |
| ------------------- | ------------------------------------------------------------------------------ |
| **Default Routing** | Default connection, queue, priority, and post-agent behavior.                  |
| **Voice Gateway**   | Voice gateway provider, SIP transfer method, and SIP or PSTN transfer targets. |
| **PII Handling**    | PII de-tokenization and detection pattern for transferred messages.            |

### Default routing

Default Routing sets the fallback connection, queue, priority, and post-transfer behavior that the platform uses when an agent initiates a transfer. Individual agents or workflows can override these values at runtime.

| Setting               | Description                                                                                                                                                                                                                                              | Default                       |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| **Connection**        | Agent desktop connection for transfers. Select a configured connection or leave as **None (use agent‑level config)** to defer to the agent's own setting. To add a new connection, select **+**, and select a supported provider from the dialog window. | None (use agent‑level config) |
| **Queue**             | Default queue ID for routing. The platform routes transferred conversations to this queue unless the agent specifies a different one.                                                                                                                    | `default`                     |
| **Priority**          | Default priority level for transferred conversations. Scale: 0 (lowest) to 10 (highest).                                                                                                                                                                 | 5                             |
| **Post-Agent Action** | What happens after the human agent ends the conversation. **Return to bot** hands control back to the AI agent. **End session** terminates the session entirely.                                                                                         | Return to bot                 |

### Voice Gateway

Voice Gateway configures transfer behavior for voice channels. These settings determine how the platform hands off calls to the agent desktop over SIP or PSTN.

| Setting                                     | Description                                                                                                                                                                                                                                                                                                                                                                    | Default            |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------ |
| **Gateway Type**                            | Voice gateway provider. Determines the SIP infrastructure the platform uses for call transfers.                                                                                                                                                                                                                                                                                | Kore Voice Gateway |
| **Transfer Method**                         | SIP transfer method for voice handoffs. <br />- **SIP INVITE** - sends a new SIP INVITE to establish a direct call leg with the agent's endpoint. <br />- **SIP REFER** - instructs the caller's endpoint to connect directly to the agent. <br />- **SIP BYE (release-link)** - ends the platform's call leg and releases the caller to a call already linked with the agent. | SIP REFER          |
| **Header Passthrough**                      | Forward custom SIP headers on outbound call transfers. When off, no custom headers are sent.                                                                                                                                                                                                                                                                                   | Enabled            |
| **SIP Transfer Target URI**                 | Project fallback SIP URI used when a call transfer doesn't provide an explicit SIP target (for example, `sip:agent@example.com`).                                                                                                                                                                                                                                              | Empty              |
| **PSTN Transfer Target Number**             | Phone number in E.164 format (for example, `+14155550123`) dialed when a call transfer uses PSTN. Transferred calls use the provisioned outbound caller ID instead of the original caller's phone number.                                                                                                                                                                      | Empty              |
| **SIP URI is SmartAssist trunk**            | Run SmartAssist transcript sync and recording sync after calls transferred to this SIP URI finish.                                                                                                                                                                                                                                                                             | Disabled           |
| **Send Conversation Summary in SIP Header** | Includes an AI-generated conversation summary in the User-to-User (UUI) SIP header when transferring voice calls. Contact centers that support the UUI header can display the summary to agents. This setting is disabled by default and does not affect existing configurations until enabled.                                                                                | Disabled           |

<Note> If SIP settings are also defined in the agent DSL, the runtime resolves the transfer destination using the following priority order: the agent-defined default, then the project setting. If neither is available, the transfer fails. Learn how to define [Trusted SIP Transfer Destinations](/agent-platform/abl/reference/tools#trusted-sip-transfer-destinations) in ABL.</Note>

### PII handling

PII Handling controls how the platform treats personally identifiable information when transferring a conversation to a human agent.

| Setting                         | Description                                                                                                                                                                                                                    | Default            |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------ |
| **De-tokenize Before Transfer** | When enabled, the platform replaces PII tokens with their original plaintext values before sending messages to the agent desktop. Treat this as reveal-class access and enable it only for explicitly authorized destinations. | Enabled            |
| **Detection Pattern**           | Regex pattern the platform uses to detect PII tokens in messages. The default pattern matches the `{{pii.*?}}` token format.                                                                                                   | `\{\{pii\..*?\}\}` |

<Warning>Enabling **De-tokenize Before Transfer** exposes raw PII to the agent desktop. Only enable this for destinations where human agents have explicit authorization to view personally identifiable information.</Warning>

***

## Recording

An account admin  must turn on call recording for the workspace (**Account** → **Workspace Settings**) before a project admin/developer can turn it on for individual projects. Recording applies only to calls that start after you enable this setting - calls already in progress or completed earlier aren't captured retroactively.

<Note>This differs from the Studio softphone **Record call** option. The softphone option captures a temporary audio file in the browser for a single test call, which can only be downloaded. It is lost when the popover is closed, does not appear on the session page, and is unaffected by these settings.</Note>

**Navigation**: **Project** → **Settings** → **Recording**

| Setting                      | Description                                                                                                                                                          | Default  |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| **Enable call recording**    | Turns call recording on for this project.                                                                                                                            | Disabled |
| **Override account default** | Uses this project's recording setting instead of the workspace-level recording default. Leave the override option as is.                                             | Disabled |
| **Retention days**           | Number of days a recording stays available before it's automatically deleted, unless it's marked immutable. Accepts 1-2555 days; an empty field is treated as 1 day. | 90 days  |

Click **Save changes** to apply your settings, or **Reset** to discard unsaved changes and restore the last saved values.

After a call ends, the runtime fetches and stores the finalized audio in the background, so a recording isn't available immediately. Retention cleanup runs hourly and removes expired recordings automatically unless they're marked immutable.

<Note>
  * You must have the `recording:write` permission to modify these settings. By default, this permission is assigned to the `Admin` and `Developer` system roles. Users with the `Tester` or `Viewer` role can view the settings but cannot modify them.
  * Recording applies only to calls that start after you enable this setting - calls already in progress or completed earlier aren't captured retroactively.
  * Changes to the Retention days setting apply only to recordings created after you save the new setting. Existing recordings retain the retention period that was assigned when they were created. For example, reducing the retention period from 90 days to 30 days does not shorten the lifetime of existing recordings.
</Note>

Recordings appear inside the session they belong to, in a [**Call Recording**](/agent-platform/sessions#call-recording) panel alongside the rest of that session's detail and diagnostics. There's no single list of every recording in a project - open the session you want from **Sessions** to find its recording. [Learn More](/agent-platform/sessions).

***

## Public API access

The **Public API Access** page configures which APIs end-users can access when authenticating through their organization's identity provider (Azure AD, Okta, Google).

**Navigation**: **Project** → **Settings** → **Public API Access**

### Query API

Toggle the **Query API** to allow authenticated end-users to query agents through the public API endpoint. When you enable it, the following configuration fields appear:

| Field                                  | Description                                                                                                                                                                                                                                                                                                                                 |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Identity Providers (Auth Profiles)** | Select one or more OIDC-compatible auth profiles (**OAuth 2.0 App** or **Azure AD**). End-users authenticate through their organization's IdP.                                                                                                                                                                                              |
| **Allowed Email Domains**              | Comma-separated list of email domains that can authenticate. Leave empty to allow all domains.                                                                                                                                                                                                                                              |
| **Allowed Origins (CORS)**             | Optional. A comma-separated list of browser origins that are allowed to make API requests. If this field is not specified, the API does not perform origin validation. If one or more origins are configured, origin validation is enforced for all incoming API requests, and requests from origins not included in the list are rejected. |
| **Allowed Redirect URIs (OAuth Flow)** | Comma-separated full URIs where OAuth redirect responses can go. Exact match only — no wildcards.                                                                                                                                                                                                                                           |

**Session token duration**

| Field                           | Description                                                    | Default      |
| ------------------------------- | -------------------------------------------------------------- | ------------ |
| **Session Token TTL (seconds)** | How long search session tokens remain valid (60–3600 seconds). | 900 (15 min) |
| **Per User (req/min)**          | Maximum API requests per user per minute.                      | —            |
| **Per Project (req/min)**       | Maximum API requests per project per minute.                   | —            |

***

## Public Widget Data

The **Public Widget Data** page controls the tables, columns, and SQL constructs that saved widgets can expose through the `analytics:read` scope. Projects start with sensitive analytics sources blocked, and all SQL constructs beyond a basic single SELECT stay disallowed until you enable them. Click **Save policy** to apply your changes.

**Navigation**: **Project** -> **Settings** -> **Public Widget Data**

### SQL validation

Choose which saved-widget SQL constructs the platform allows for `analytics:read` queries. DDL and mutation statements remain blocked regardless of these settings.

| Setting                        | Description                                                                                                                         |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
| **SQL comments**               | Allows saved SQL widgets to include comments in query text.                                                                         |
| **Multiple SELECT statements** | Allows saved SQL widgets to run more than one SELECT, such as set-operation queries.                                                |
| **JOIN clauses**               | Allows saved SQL widgets to join allowlisted analytics tables.                                                                      |
| **UNION, INTERSECT, EXCEPT**   | Allows saved SQL widgets to combine allowlisted analytics queries with set operations.                                              |
| **CTE clauses**                | Allows saved SQL widgets to use WITH clauses over allowlisted analytics tables.                                                     |
| **OR conditions**              | Allows saved SQL widgets to use OR inside WHERE clauses. The runtime still applies tenant and project scope outside the expression. |

### Restricted data

The **Restricted data** section lets you block specific analytics tables and columns from saved widgets. Every project contains a default configuration that restricts a few sensitive sources. You can remove a default restriction or add your own. After updating the restrictions, save the policy.

**Block a table**

1. Choose a table from the **Select a table** menu.
2. Click **Block table**.

Blocked tables appear as removable tags. Click the delete icon on a tag to lift the restriction.

The default blocked tables are:

* `abl_platform.audit_events`
* `abl_platform.eval_conversations`
* `abl_platform.eval_scores`
* `abl_platform.hallucination_evaluations`
* `abl_platform.knowledge_gap_evaluations`
* `abl_platform.llm_evaluate`
* `abl_platform.search_queries`
* `abl_platform.spatial_trace_records`
* `abl_platform.custom_pipeline_results`
* `abl_platform.workflow_events`

**Block a column**

1. Choose a scope from the table menu. Select **All tables** to block the column everywhere it appears, or select a specific table to block it there only.
2. Choose a column from the **Select a column** menu.
3. Click **Block column**.

Blocked columns appear as removable tags, grouped by name of the table. The following columns are blocked by default across all tables:

* `attributes`
* `content`
* `conversation_json`
* `evidence`
* `metadata`
* `output`
* `payload`
* `prompt`
* `query_text`
* `trace_events`

***

## Attachments

The **Attachment Settings** page controls how files uploaded during chat sessions are accepted and processed for this project.

**Navigation:** **Project** → **Settings** → **Attachments**

**General**

| Setting                | Description                                                                                                      | Default |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------- | ------- |
| **Enable Attachments** | Allows users to upload files during chat sessions. Disable this setting to prevent file uploads for the project. | Enabled |

**Upload Limits**

| Setting                | Description                                                                                 | Default                     |
| ---------------------- | ------------------------------------------------------------------------------------------- | --------------------------- |
| **Maximum File Size**  | Maximum size allowed for a single uploaded file. Files larger than this limit are rejected. | 20 MB                       |
| **Allowed File Types** | MIME types that users can upload. You can configure up to **50** MIME types.                | Default types listed below. |

**Default Allowed File Types**

The following MIME types are allowed by default:

* **Images:** `image/jpeg`, `image/png`, `image/gif`, `image/webp`
* **Documents:** `application/pdf`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`, `application/rtf`
* **Spreadsheets:** `application/vnd.ms-excel`, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`
* **Presentations:** `application/vnd.ms-powerpoint`, `application/vnd.openxmlformats-officedocument.presentationml.presentation`
* **OpenDocument formats:** `application/vnd.oasis.opendocument.text`, `application/vnd.oasis.opendocument.spreadsheet`, `application/vnd.oasis.opendocument.presentation`
* **Text formats:** `text/plain`, `text/markdown`, `text/csv`, `text/tab-separated-values`, `text/html`, `application/xml`, `application/json`
* **Audio:** `audio/mpeg`, `audio/wav`, `audio/webm`
* **Video:** `video/mp4`, `video/webm`

**Processing**

**PII Policy**: Determines how the platform handles files containing Personally Identifiable Information after file contents have been extracted.

* Redact (Default): Detects and masks PII before the extracted content is indexed or made available to downstream services.
* Block: Stops processing the file if PII is detected.
* Allow: Processes the file without applying PII detection or redaction.

<Note>PII policies are applied only when the platform extracts file contents (**Full** processing mode). They are not applied in **Metadata Only** or **Skip** mode. </Note>

**Default Processing Mode**: Determines how newly uploaded files are processed before they are made available to the agent.

* **Full (Default)**: Processes files and extracts content from supported file types. The extracted content is then shared with the models as context. The models receive content as per the file types.
  * Images: A resized version of the image is sent directly to the model as Base64. The model analyzes the image itself. No extraction is done by the platform.
  * Documents, audio, and video: The platform extracts the content and sends only the extracted text to the model. The raw file is not sent. In case of audio and video files, the transcripts are shared.
    In this mode, File metadata remains available through the attachment tools. Use this mode when the agent needs to read, search, and reason about uploaded content.

* **Metadata Only**: Stores uploaded files without processing their contents. The model cannot access or understand the contents of the uploaded file. The model gets file metadata (name, size, download url).

* **Skip**: Bypasses the platform's content extraction pipeline. This mode is only supported for image and pdf files. For supported types, the platform sends the original file directly to the selected LLM provider. Use this mode when you want to use the LLM provider's native document or vision capabilities instead of the platform's extraction pipeline.

<Note>Supported only when the selected LLM provider and model support native file or vision input.</Note>

**Points to Note**

* Images in **Full** mode are sent directly to the model. Therefore, the selected model must support **vision**.
* Documents, audio, and video in **Full** mode are converted into text before being sent to the model, allowing any text-capable model to process them.
* **Metadata Only** and **Skip** do not extract file contents. As a result, PII policies are not applied in these modes.
* In **Skip** mode, direct file transfer is currently supported only for **images** and **PDF** files.

**Information**

| Setting                   | Description                                                                                         | Default |
| ------------------------- | --------------------------------------------------------------------------------------------------- | ------- |
| **Max Files Per Session** | Maximum number of files that can be uploaded during a single chat session. This value is read-only. | 100     |

***

## Omnichannel

The **Omnichannel** page configures cross-channel session continuity.

**Navigation**: **Project** → **Settings** → **Omnichannel**

Omnichannel settings allow users who start a conversation on one channel to continue it on another without losing context.

**Conversation Recall**

| Setting                         | Description                                                      | Default  |
| ------------------------------- | ---------------------------------------------------------------- | -------- |
| **Enable cross-channel recall** | Allow sessions to transfer across channels.                      | Disabled |
| **Maximum messages to recall**  | Number of messages the platform carries over to the new channel. | 20       |
| **Maximum age (days)**          | How old a conversation can be and still qualify for recall.      | 30       |

**Allowed channels**
Lists all supported channels (**web**, **voice**, **sms**, **whatsapp**, **email**, **slack**, **teams**) with toggles for cross-channel recall participation.

**Identity Requirements**

| Setting                           | Description                                                                 | Default      |
| --------------------------------- | --------------------------------------------------------------------------- | ------------ |
| **Require identity verification** | Whether the system requires identity verification for cross-channel recall. | Enabled      |
| **Minimum identity tier**         | The minimum identity verification tier required to recall sessions.         | 2 - Verified |

**Consent**

| Setting                      | Description                                                           | Default |
| ---------------------------- | --------------------------------------------------------------------- | ------- |
| **Require explicit consent** | Whether the user must explicitly consent before cross-channel recall. | Enabled |

**Live Transcript Sync**

Configure real-time transcript synchronization settings for cross-channel sessions.

| Setting              | Description                                                                                                                                                                            | Default    |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| **Enable live sync** | Turns on real-time transcript synchronization across channels during an active session.                                                                                                | Disabled   |
| **Join mode**        | Controls how a secondary channel joins an in-progress session (for example, **Prompt** asks the user for confirmation before joining).                                                 | Prompt     |
| **Transcript mode**  | Controls what gets synced to the joining channel (for example, **Final Only** syncs only finalized messages, not in-progress ones). Only configurable when **Enable live sync** is on. | Final Only |

**Recent Continuity Activity**

Shows operational events generated by cross-channel recall and live session continuity — for example, a session transferring channels or a live sync joining. Select **Refresh** to reload the list. If no sessions have used continuity features yet, the panel shows an empty state.

Click **Save Settings** to apply changes.

<Note>If you see a "Failed to save settings" error, verify that your role has write permissions for project settings.</Note>

***

## Governance

The **Governance** page sets the production approval policy for this project. The policy controls how strictly the platform gates production deployments, so a stricter level requires more sign-off before an agent version can ship.

**Navigation**: **Project** → **Settings** → **Governance**

**Production approval policy**

The page shows whether the policy is **Inherited (default)** or set explicitly for the project, along with the **Effective** level currently in force and its source (for example, Standard from the platform default). To set an explicit policy, drag the **Approval strictness** slider to a level, then click **Save policy**.

| Level        | Sign-off required                                                                            |
| ------------ | -------------------------------------------------------------------------------------------- |
| **Strict**   | The strictest gate. Applies more sign-off than Standard before a version can ship.           |
| **Standard** | Requires approval, security, and eval sign-off. The publisher can approve their own version. |
| **Open**     | The most permissive gate. Applies less sign-off than Standard.                               |

When you select a level, the page shows that level's sign-off requirements below the slider. Saving an explicit policy overrides the inherited platform default.
