Skip to main content
General settings govern project membership, authentication keys, model availability, runtime behavior, data lifecycle, compile-time variables, and localization assets.

Members

The Members page controls who reaches your project and what they can do inside it. Navigation: Project -> Settings -> Members The page lists every project member with their name, email, role, and join date. Select Add Member to grant access to an existing workspace member, then assign a role. Removing a member revokes their access at once rather than at their next sign-in.

Project roles

A role bundles the permissions a member holds everywhere in the project. Assign the narrowest role that still lets someone do their job, since the roles differ less in what they can see than in what they can change.

API keys

The API Keys page issues and revokes the credentials that carry programmatic access to the project runtime. Navigation: Project -> Settings -> API Keys

SDK keys

The SDK Keys tab lists every SDK key in the project, with a count at the top. Each entry shows the key name, a masked prefix (for example, pk_c79197cb...), the origins the key accepts, and the date something last used it. The last-used date is the field that matters during an audit, because it identifies keys you can revoke without breaking anything. To create a key, select + New Key, then complete the fields and select New Key again to confirm. Select the pencil icon on a key to edit it, or the trash icon to delete it.

Platform keys

The Platform Keys tab lists every platform key in the project, with a count at the top. Each entry shows the following: A revoked key stays in the list for reference, and you can’t edit it. To create a key, select + New Key, then complete the fields and select New Key again to confirm.

Platform key scopes

Scopes limit what a platform key can do. Grant the narrowest set that lets the integration work, because a key with broad scopes is a broad risk if it leaks. Scopes are grouped into the following categories: Deleting a key revokes it permanently and immediately. Anything still presenting that key stops working, so confirm the last-used date before you delete.
Issue a separate key for each environment and rotate them on a schedule. A single shared key means one compromise forces you to rotate everywhere at once.

JWT apps

A JWT app lets a client application authenticate with tokens it signs itself, so the platform never holds a long-lived key that the client has to send with every request. Use a JWT app when you need short-lived, verifiable credentials, one-time-use tokens, or encrypted payloads. The JWT Apps tab lists every JWT app in the project, with a count at the top. Each entry shows the following: Select Show scopes to see each scope with its key (for example, workflows.execute) and description, and Hide scopes to collapse the list. Use the icons on an entry to rotate, edit, or delete the app.

Create a JWT app

Select + New App to open the Create JWT App wizard. It has three steps: Signing, Scopes, and Access. Select Back to return to a previous step, and Create app on the last step to finish.
The signing algorithm and the enforcement options are fixed once you create the app, because every token issued against the app is bound by them. To change either, create a new app.
Step 1: Signing RS256 and RS512 verify tokens against your own key, so you must provide either a JWKS URL or a public key, but not both. Use a JWKS URL when you rotate keys, since the platform picks up new keys without a change to the app. Never send your private key. Under Enforcement, select the rules every token must meet: When you select Require encrypted request and response bodies, the following field appears:
Streaming, attachment, and recording endpoints can’t carry an encrypted body, so the platform refuses requests to them from an app that requires encrypted bodies. You can’t change this enforcement after you create the app.
Step 2: Scopes Select the scopes the app can use. Scopes are grouped into the same categories as platform keys: Execution, Management, Knowledge Base, Analytics, and Admin. For the scopes in each category, see Platform key scopes. Grant the narrowest set that lets the application work. Step 3: Access

Payload encryption

When you select Require encrypted request and response bodies, the platform accepts only encrypted request bodies from the app and returns encrypted response bodies. A request or response captured in transit or in a log is then unreadable without the matching key. It covers public API traffic for sessions, conversations, LLM logs, traces, and dashboard responses. Request bodies must arrive as a JOSE envelope encrypted to the platform key. The platform encrypts response bodies to the Response encryption public key you registered on the app, so only you can decrypt them with your private key. Encryption applies to the JSON body of POST requests. GET query strings are never encrypted, so don’t put sensitive values in them. Payload encryption protects the data rather than the credential, so it works alongside Require an encrypted token, not instead of it. Streaming, attachment, and recording endpoints can’t carry an encrypted body, so an app with this enforcement can’t use them. If your integration needs those endpoints, use a separate app without this enforcement.
Use a separate JWT app for each client application and environment, so you can revoke one without disturbing the others.

Models

Use the Models page to choose which models your project can use and which model handles each platform feature. It has two tabs:
  • Model Configs: choose the models available to the project.
  • Feature config: assign models to individual features.
Navigation: Project > Settings > Models

Model Configs

Use this tab to select the models your project can use. Only selected models appear in the project’s model pickers and feature routing. The Model access rollout banner at the top of the tab shows whether the project is limited to its selected models. See Model access rollout. Below the banner, two counters summarize the selection: The Selected models list shows every model you’ve selected. Each entry shows the following: Select the pencil icon on a model to edit its settings, or the X icon to remove it from the selection. The settings you can edit depend on the model. They can include:
  • Enable thinking
  • Compaction threshold
  • Verbosity
  • Max completion tokens
To change the selection, select Add models, choose from the eligible models, and then select Save selection. At the bottom of the tab, a counter shows how many eligible models you’ve selected, for example 2 of 43 eligible models selected. Only project administrators can change the selection. Other roles see the tab as read-only. If a selected model is no longer available to the project, the tab shows a warning. Select Remove unavailable models to clear them, and then replace them as needed.

Project default

The project default is the model the project uses when no more specific setting applies. It applies to this project only and doesn’t change the workspace.
  • Choose a default. Use the Project default (this project only) field next to Save selection. Select the field to open a list that contains No project default and each of the project’s selected models. A check mark shows the current default. The default must be one of the selected models. In a project that uses selected models only (see Model access rollout), you must choose a default before you can save more than one selected model.
  • If the default becomes unavailable. Features that use the project default switch to the next available selected model. Features assigned directly to a specific model don’t switch, and they stop working until you fix or replace that model. Once a project uses selected models only, the platform never uses a model that isn’t selected. The platform doesn’t retry a failed request with another model.

Model access rollout

The Model access rollout banner shows whether your project is limited to its selected models. New projects are limited from the start. Existing projects move over in stages, and the banner shows the current stage. When a project is limited to its selected models and has nothing left to resolve, the banner reads This project uses selected model bindings only. No unresolved references are recorded. The banner also shows the number of unresolved references. A warning banner means the project needs repair before it can be limited to selected models. The count isn’t an error in your current setup.

Feature config

Use this tab to assign models to platform features. Different features need different models. Assigning a smaller, faster model to simple tasks and a stronger model to complex ones lowers cost. The Per-operation routing switch turns feature routing on or off for the project. When it’s off, every feature uses the project default, and any saved tier models and overrides are kept but ignored. When it’s on, each feature uses the model assigned to its tier, so changing a tier’s model changes every feature on that tier. You can also assign a specific model to a single feature. Use overrides only when a feature needs something different, because they’re easy to forget. If feature routing is turned off for your whole deployment, the switch is unavailable and the tab shows a notice. Your saved settings are kept and apply again when routing is turned back on.

Tiers

Assign one of the project’s selected models to each tier. If a tier has no model, its features use the project default. If you configure a tier but no ready model matches it, the features on that tier can’t run. The page warns you about missing models and broken connections before you release the project.

Features

Features are grouped by area: Arch, Runtime, Knowledge, Insights, Evals, and Pipelines. Each row shows the following: Select Why this model? on a row to see how the model was chosen. Select Save feature config to apply your changes.

Runtime configuration

The Runtime Configuration page holds the behavioral controls that govern how the project’s agents read input, handle multiple requests in one turn, fill in unstated values, tune voice latency, recover from failures, occupy callers during waits, expose their own activity, protect personal data, and bound their own tool use. Navigation: Project -> Settings -> Runtime Config Changes here apply to every agent deployment in the project, so treat this page as project-wide policy rather than per-agent tuning. Each group appears as a collapsible card. Select Save to apply changes, or Reset to defaults to return every setting on the page to its factory value.

Extraction pipeline

This section decides how the runtime turns a raw user message into structured field values.

Multi-intent recognition

Multi-Intent allows an agent to handle multiple customer requests instead of treating the conversation as having only one active request. The multi-intent configuration controls how these requests are identified, queued, offered, and completed. Multi-intent strategies
ENABLED_WHEN and multi-intent routing: When multiple requests are routed in parallel or sequentially, ENABLED_WHEN is evaluated independently for each target route. Routes that do not satisfy their availability condition are excluded from the routing plan and are not executed.
Unknown relationship strategies Learn More

Field inference

This section lets the runtime use an LLM to infer values the user hasn’t stated, which shortens conversations at the cost of occasionally guessing wrong.

Currency conversion

This section decides where exchange rates come from when an agent quotes or converts an amount. Agents that never handle money can leave it alone.

Reasoning pipeline

The reasoning pipeline runs a lightweight classifier ahead of each reasoning turn so the runtime can route programmatically and narrow the tool set before the main model call.
Experimental feature. Read before enabling.
  • The pipeline needs a configured tool_selection model in your LLM provider settings. Without one, the pipeline skips silently rather than reporting an error.
  • It adds one extra LLM call before each reasoning turn, typically 200-500 ms. In parallel mode, the classifier and tool filter run simultaneously.
  • If the pipeline model fails three times in a row, a circuit breaker bypasses the pipeline for 60 seconds so the failure doesn’t add latency to every turn.

Tool call policy

This section bounds the deterministic CALL actions that tool lifecycle hooks invoke. The limits apply only to those hook-driven calls. Side-effecting target tools still run through the normal confirmation flow, so this section doesn’t weaken confirmation.

Streaming safety

This section sets project-level controls for how the runtime behaves when a safety check intervenes on a response that’s already streaming. It’s the one safety control where timing matters as much as outcome.
Existing projects stay on Legacy passthrough until you change this setting.
Safety modes

Output item analytics

Runtime responses often carry repeated structures such as a list of results. This section captures those repeated scalar items so you can run independent analytics queries on them.
Mappings are project-scoped and additive. The runtime captures only the item arrays you configure and the scalar dimensions you declare. It doesn’t store raw response JSON in analytics rows.
A counter at the top shows how many mappings you’ve configured out of the 25 allowed. Select Add mapping to create one. Mappings only take effect for responses produced after you add them, so declare a dimension before you need it. You can’t recover a field retrospectively. Select the trash icon on a mapping to delete it.

Voice low-latency profile

This section holds channel-scoped defaults for fast voice responses. It tunes model routing, reasoning, context size, and filler behavior for voice while preserving semantic response quality, and explicit developer overrides still take precedence. It appears for projects with a voice channel. When the project has an active voice channel but the recommended defaults aren’t applied, a banner reads Recommended voice defaults are not active. Select Apply recommended defaults to apply the low-latency profile in one step: fast model routing, inline gather, bounded context, and generative filler defaults.

Voice setting differences

The Voice setting differences table compares each voice setting’s current value with the recommended one, so you can apply the profile wholesale or adopt it setting by setting. Select Apply on a row to apply only that recommendation, or Apply recommended defaults to apply them all. The rows shown depend on the profile version and on which settings your project already has. The recommended profile changes these groups of settings: Each row carries a tag that tells you what kind of change it makes:
Applying the recommended defaults overwrites your current values for every row listed. To keep a setting, apply the rows one by one instead.

Profile settings

Filler strategy and coordination

Native speech-to-speech (S2S) fillers are preferred when the provider advertises the capability. Pipeline generation and static speech remain bounded fallbacks.
Synchronous session compaction stays disabled on the live voice path. Adjust prompt and tool-result projections instead, so the authoritative turn retains its semantic contract.

Channel recovery and graceful failure

The Channel Recovery and Graceful Failure policy defines how Runtime responds when model generation, tool execution, provider communication, or voice operations are delayed, interrupted, or fail. It enables channel-specific recovery behavior with bounded recovery, localized messages, sequential model fallback, and safe latency hedging, while preserving conversation state and preventing duplicate or invalid actions.
Recovery is opt-in per channel. Existing channels keep their current behavior until you enable this policy on that channel. Voice uses the voice adapter. Other channels use their native progress and response semantics.
Recovery policies are versioned. Publishing a policy doesn’t apply it to any channel until you turn on that channel’s opt-in.

While the caller waits

This group configures what a caller experiences while the agent thinks or works: spoken filler phrases, background hold-music audio, or both together. The settings interact, so read the whole group before you change any one part.
How filler settings take effect. Agent no-input messages and channel-specific Gemini settings take precedence over these project defaults. Otherwise, Runtime uses project filler pools and timing, then localized platform defaults. Native realtime fillers are available only for the voice_realtime tier. Genesys realtime supports pending-tool fillers but not the native coordinator filler.

Filler settings

Fillers are transient chat and voice status messages the runtime emits while work is in progress. They exist because silence during a long turn reads as a failure, particularly on voice. When the agent is processing a request, Runtime waits for the configured delay before playing a filler message. Depending on the configuration and channel capabilities, it can play a static filler, generate a contextual filler, or use provider-native realtime fillers until the final response is ready.

Background audio

Background audio is looped hold music the voice gateway plays during compute waits. It covers silence without the agent having to say anything.

Greeting audio

Greeting clips play as soon as a call connects, ahead of the agent’s first turn. They cover the gap between answer and first response, which is the moment a caller is most likely to think the line is dead.

Activity updates

This section sets the visibility policy for what the runtime reveals about its own work. The policy is a ceiling rather than a guarantee, because channels apply only what they support. The exposure settings deserve particular care. Tool, workflow, and agent names describe your internal architecture, and a name that helps an internal user diagnose a problem tells an external user how your system is built.

Voice no-input defaults

This section sets what happens when a voice caller goes silent. Silence is ambiguous, since it can mean the caller is thinking, has walked away, or didn’t hear the prompt, and these settings decide how long the agent waits before treating it as a problem.

Caller backchannel

This section sets the project default for caller backchannel acknowledgements. These are language-neutral sounds, such as “uh-huh”, that the runtime treats as acknowledgements rather than interruptions, so the agent keeps speaking. Every agent that doesn’t set its own backchannel inherits these defaults.
Backchannel is only effective with at least one phrase. If you turn it on without adding any, the page shows the warning Backchannel is on but has no phrases.

On hold

This section sets the project default for phrases a caller says to make the agent pause, such as asking it to wait a moment. Phrases are locale-aware. Every agent that doesn’t set its own on-hold behavior inherits these defaults. On hold runs entirely in the runtime and needs no gateway change.
On hold is only effective with at least one phrase. If you turn it on without adding phrases in any language, the page shows the warning On-hold is on but has no phrases in any language.

Barge-in continuation window

When a caller interrupts (barges in) and speech recognition splits their sentence into separate phrase-finals, this section makes the runtime hold each one briefly and merge any follow-on phrase into a single turn. Without it, the agent would treat each fragment as its own turn and may answer a half-finished sentence. This is a project-wide default, and an agent can override it.

Voice speech recognition

These are project-wide defaults. A channel connection can override them, so check the connection before you conclude the project value is what’s running.

Voice speech delivery

This setting controls how the voice gateway sequences the agent’s speech with transfers, hang-ups, and surveys.

PII redaction

This section controls how the runtime handles personally identifiable information in conversations. Baseline credential and secret scrubbing protects logs and read APIs whether or not PII protection is on, so the settings here extend that protection rather than establishing it.
This redaction policy is project-wide. For a specific tool that needs to see the original, unredacted values despite it, see PII access (pii_access) in the ABL tools reference.

Lookup tables

Lookup tables are the reference data the runtime uses to validate field values and perform fuzzy matching during extraction.
Project lookup tables defined here are the canonical source for gather validation and fuzzy matching. Agent-local LOOKUP_TABLES remain available only as an experimental compatibility lane, so build new work on project tables.

Data retention

The Data Retention page sets how long evaluation and scoring data stays available to this project. Navigation: Project -> Settings -> Data Retention Retention is a deletion policy rather than a storage preference. Once a window passes, the data is gone and no longer available for trend analysis, so set these values around the longest comparison you expect to run rather than the storage you expect to use. The Retention Windows section below the summary sets the time-to-live in days for each category. Select Save to apply changes or Reset to restore defaults.

Config variables

The Config Variables page defines key-value pairs that the platform resolves at compile time through {{config.KEY}} syntax. Navigation: Project -> Settings -> Config Variables Use config variables for values that several agents share and that change between environments, such as endpoints, feature flags, and persona-specific content. The alternative is repeating the value in each agent, which turns an endpoint change into an audit.

Add a variable

Each variable is one key the platform substitutes wherever your agents reference it. The fields below define the key, its value, and the context a later reader needs. Select Add Variable, then complete the fields.
Config variables resolve at compile time rather than at runtime, so a changed value reaches your agents only after recompilation.

Localization

The Localization page manages locale JSON assets in Studio and syncs them through the project’s Git integration. Navigation: Project -> Settings -> Localization The platform stores locale assets as project-level JSON files and exports them to Git under the same path contract that project import and export use. Keeping paths in the canonical shape is what lets assets round-trip cleanly, so a path you improvise here becomes a merge problem later. Counters at the top report the assets, locales, and shared assets the project holds. A status indicator reports when Git isn’t connected, with a link to Open Git Settings. Until you connect Git, assets stay in project storage and don’t reach version control, which means no diffs and no review. Search by locale, file path, or description, and narrow the list by locale or by scope when the asset count grows past browsing.

Create a localization asset

An asset is one locale JSON file holding translated strings, either shared across the project or scoped to a single agent. Creating one here puts it under the same path contract Git and project export use. Select New Asset to open the editor, then complete the fields and select Create. Saving writes the asset into project storage and keeps the Git export path aligned.
  • For shared messages : Use a shared locale asset for messages that can be used by multiple agents. For example: ‘locales/en/_shared.json`.
  • For Agent specific messages: Use an agent-specific locale asset for messages used by a particular agent. For example: ‘locales/en/agent_name.json, where agent_name` is the name of the agent which can use this asset.

Use Localized Messages in ABL

Reference localized messages in ABL using the {{locale.<key>}} syntax.
The same localization key retrieves the message for the resolved language.