> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dialai.ca/llms.txt
> Use this file to discover all available pages before exploring further.

# Environment

> Manage tenant-scoped environment variables and secrets

<Frame caption="Environment — the tenant's configured variables and secrets">
  <img className="block dark:hidden" src="https://mintcdn.com/dialai/EsqzawSH-Dz3cVjI/images/environment-light.png?fit=max&auto=format&n=EsqzawSH-Dz3cVjI&q=85&s=c333965408d21583ef7b6f3cf0caba64" alt="Environment workspace in light mode" width="1920" height="911" data-path="images/environment-light.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/dialai/EsqzawSH-Dz3cVjI/images/environment-dark.png?fit=max&auto=format&n=EsqzawSH-Dz3cVjI&q=85&s=ea6184c1953589021a24268e8e454a4d" alt="Environment workspace in dark mode" width="1920" height="911" data-path="images/environment-dark.png" />
</Frame>

The **Environment** workspace is where you view and override the platform configuration values that apply to your tenant — timeouts, allow-lists, integration API keys, and other knobs that change platform behavior without touching a flow. Two tabs: **Environment** (your tenant's overrides) and **Global Manager** (cross-tenant rollouts).

## Accessing Environment

Navigate to **Settings > Environment** in the left sidebar.

## Environment tab

The Environment tab lists every config entry visible to your tenant, grouped by namespace (e.g., `Initializers`, `Javascript`, `OpenAi`, `Speechmatics`).

| Column      | What it shows                                                                                                                      |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **Key**     | Dotted-path name of the entry (e.g., `Initializers.TimeoutSeconds`, `Javascript.AllowedDomains`).                                  |
| **Type**    | `Value` for plain config; `Secret` for values pulled from the secret manager.                                                      |
| **Source**  | Where the current value comes from — `Tenant override` (set here), `Secret Manager` (provisioned externally), or platform default. |
| **Status**  | `Configured` once an override is in place.                                                                                         |
| **Value**   | The current value. Secrets show as **Hidden**.                                                                                     |
| **Actions** | **Update value** (for plain values) or **Update secret** (for secrets).                                                            |

Click the **information** icon next to a key to see its description and accepted format.

### Adding an override

<Steps>
  <Step title="Click Add Override (top right)">
    Opens the override dialog.
  </Step>

  <Step title="Pick the key">
    Choose the variable from the catalog. The catalog lists every variable the platform recognises.
  </Step>

  <Step title="Set the value">
    For plain values, type the new value. For secrets, you'll be prompted to write to the configured secret manager.
  </Step>

  <Step title="Save">
    The override takes effect immediately for new conversations.
  </Step>
</Steps>

<Warning>Changes to integration credentials (e.g., `Speechmatics.ApiKey`, `OpenAi.*`) propagate to live infrastructure on the next request — if the new value is invalid, live conversations will start failing. Validate against a non-production tenant first.</Warning>

## Global Manager tab

The Global Manager applies the same change to multiple tenants at once. Useful for platform-wide rollouts where you don't want to click through tenants individually.

<Steps>
  <Step title="Pick scope">
    Toggle **All** to target every tenant, or turn it off and pick specific tenants from the multi-select.
  </Step>

  <Step title="Pick a key">
    Choose the variable to roll out.
  </Step>

  <Step title="Set the value">
    Enter the new value in the **Action** panel.
  </Step>

  <Step title="Review the per-tenant table">
    The table below shows the current value for each selected tenant — useful for spotting tenants where an override is intentional and shouldn't be clobbered.
  </Step>

  <Step title="Apply">
    Pushes the change to every tenant in scope.
  </Step>
</Steps>

<Note>Global Manager is typically restricted to platform admins. Most tenant operators don't have access — and shouldn't need it.</Note>

## Environment vs flow Variables

Don't confuse this page with [flow Variables](/flow-configuration#variables) (the per-flow knobs on the flow editor's Variables tab):

| Surface                     | Scope        | Who sets it    | Used by                                                    |
| --------------------------- | ------------ | -------------- | ---------------------------------------------------------- |
| **Environment** (this page) | Tenant-wide. | Tenant admins. | Platform infrastructure — timeouts, allow-lists, API keys. |
| **Flow Variables**          | One flow.    | Flow author.   | Function code and prompt templating inside that flow only. |

If a value is shared across multiple flows, it belongs here. If a value is specific to one flow's behavior, it belongs on the flow's Variables tab.

***

## Related

<CardGroup>
  <Card title="Theme" icon="palette" href="/theme-editing">Tenant branding — display name, logos, palette.</Card>
  <Card title="Flow configuration" icon="diagram-project" href="/flow-configuration">Per-flow Variables, Wrap Up, Start Up, and more.</Card>
  <Card title="Permissions" icon="lock" href="/permissions">Roles that can read or modify these values.</Card>
</CardGroup>
