---
title: Application settings
slug: analytics/docs/application-settings
docTags: 
createdAt: 2026-07-20T15:45:26.056Z
---

You can configure application settings to optimize performance by setting defaults, adjusting schema, and enabling features like materialization and audience. You can also manage sampling, rules, and feature flags to tailor your application's functionality.

![screenshot of the Settings menu where General Settings is highlighted](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/Y_oBKZ38n__dSFAm5Db3N_click-settings-general-settings.png)

## Configure application settings

### General Settings

1. Go to **Settings > General Settings**.
2. Set **Defaults** for various behavioral analytics templates.

   - **Actor dataset** – Set **Users** as the default actor dataset in a funnel.
   - **Event Stream** – Enter `Product Events` for events inside the funnel and retention charts.

   ![opti-set-1.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/JeC45tcDaT-jKk2nQ05jk-20260720-144930.png)
3. Set the **Time Zone** and **Fiscal Calendar Start Month** for your application under **Time Settings**.

   ![opti-set-2.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/1zhiZluE6hozMYL96y3v8-20260720-144931.png)
4. (Optional) Enter a value in **Query Timeout (seconds)** in the **Query Execution** section. This value gives slow warehouse queries more time before Analytics cancels them. Leave the field blank to use the default. See [Set a query timeout](docId\:UiuDpYv6VvqHJDOJS_GAj).
5. (For Experimentation customers) Enter the **Optimizely Account ID**, select the **Optimizely Decision Dataset**, and **enable guardrails** by toggling the option in the **Optimizely Integration** section.

   ![opti-set-3.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/gHf2x_0cmJKx2MPgSmIdU-20260720-144930.png)
6. Adjust application-level settings related to the data warehouse and query schema in the **Schema** section.

   - Configure shorter join paths and let Analytics infer the intended join path based on the number of edges.
   - Enable the **Schema** setting carefully, as it might generate unexpected SQL queries.

   ![opti-set-4.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/k8NQBZF9_kKFs2NqAukqa-20260720-144931.png)
7. Set the **Refresh Cron Schedule** at which you want to run materializations and dataset indexing.

   ![opti-set-5.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/vijHmRu3qJrFHm_tRSLUG-20260720-144931.png)
8. Configure the **Metadata Index Time Filter** to set event time filters for indexing distinct column values and JSON fields, and use the **Json Index Row Limit** to control the number of rows processed in the **Datasets** section.

   ![opti-set-6.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/MsU2CtY-ZELTQDAvdp1Jg-20260720-144931.png)
9. Set chart preferences like faster response and higher precision in the **Sampling** section.

   - Use the **Always Highlight High Errors** toggle to highlight high errors during sampling.
   - Set the error threshold (0-100%), above which red dots display in the **High Error Limit** field.
   - Specify the proportion of JSON data to be indexed in the **JSON Indexing Sampling Rate** field.

   ![opti-set-7.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/yaiG-ik-M6XkBh0BWBDQ8-20260720-144931.png)
10. Enable **Materialization** to create materialized tables in the data warehouse, enhancing performance.

    - Specify the **Database** and **Schema** for these tables. For BigQuery, the **Database** and **Schema** fields correspond to the BigQuery project name and dataset name.
    - Set the **Refresh Cron Schedule** for the tables using cron syntax.

    ![opti-set-8.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/aCCu6IveNys062uraisxL-20260720-144930.png)
11. Configure **Rules** for your application.

    - Define criteria to trigger alerts.
    - Enable and set the **Refresh Cron Schedule**.
    - Rules execute periodically based on the provided cron expression. To enable the optional rules feature in Analytics, contact [support@netspring.io](mailto\:support@netspring.io).

    ![opti-set-9.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/r6LuAyFKFjjmr3T4qz3i_-20260720-144931.png)
12. Configure the **Audience**, which publishes a cohort to the warehouse.

    - Enable and specify the **Database** and **Schema** fields.
    - Toggle **Enabled Periodic Refresh** for regular updates.

    ![opti-set-10.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/ljl1kKzn_GHhqfnFiVNCi-20260720-144931.png)
13. Configure the following under **Cache Settings**:

    - Set the maximum time up to which you see a cached exploration result in the **Max allowed cache staleness** field. After this set time, you can calculate fresh results from the latest data in the warehouse.
    - Use the **Enable caching in warehouse** toggle to cache query results in the data warehouse, to improve performance and reduce cost.
    - Use the **Enable caching in Optimizely Analytics** toggle to cache query results in Optimizely Analytics memory, to further improve performance and reduce cost.

    ![opti-set-12.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/nZ61DDTZ363XPXztZ0Uvj-20260720-144931.png)
14. Click **Save**.

### Set a query timeout

You can configure the query timeout to give a slow warehouse more time to return results. Analytics cancels any warehouse query that runs longer than the query timeout. The default timeout is five minutes for every application. Set a longer timeout on one application, and every other application keeps the default.

Set a timeout only on an application whose queries regularly time out. Leave the field blank on every application that performs normally.

Changing application settings requires the Org Admin role. See [Roles](docId\:VjW5sYhW0RXn6upfyNxA4).

To set a query timeout for an application, follow these steps:

1. Click **Settings > General Settings**.
2. Enter the number of seconds in the **Query Timeout (seconds)** field in the **Query Execution** section. The field accepts whole numbers up to 3,600 seconds (one hour).

   ::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/q_4IiaJDC-PS9yIa_JlNj_configure-query-execution-in-general-settings.png" size="75" alt="screenshot of the Query Execution section where a value is entered in the Query Timeout (seconds) field" isUploading="false" showCaption="false"}
3. Click **Save**.

To restore the default timeout, clear the **Query Timeout (seconds)** field and click **Save**. The empty field shows **Default**.

Consider the following when you set a query timeout:

- **Query speed** – A longer timeout does not make queries run faster. It only gives a slow query more time before Analytics cancels it. To speed up queries, follow the [performance guidance](docId:1cHv2h5-4d73lsNfP_CYP) for your warehouse. You can also use [sampling](docId\:kbzX-2AF74D1lQwBvoww4) to speed up queries.
- **Per-operation timeouts** – Experiment data extracts and comma-separated values (CSV) file downloads keep their own timeout. That timeout takes priority over the application setting.
- **Warehouse limits** – Some warehouses enforce their own maximum query time. A query stops at whichever limit it reaches first: the Analytics timeout or the warehouse limit. For example, the Amazon Redshift setup instructions limit **Maximum query execution time** to 300 seconds. Raise the Redshift limit to match any longer Analytics timeout. See [Create a Redshift user](docId\:VLmPrPguUuEctczz-pYvh).
- **Warehouse cost** – A query that runs longer uses more warehouse compute and costs more.

### Color palettes

A color palette sets the series colors for every chart in an application. Set a palette once so explorations and dashboards match your brand without per-chart color edits. Analytics saves each palette for reuse, so one change re-themes every chart.

You can choose one of the predefined palettes, or build a custom palette and save it as the application default.

Changing application settings requires the Org Admin role. See [Roles](docId\:VjW5sYhW0RXn6upfyNxA4).

To set the application default palette, follow these steps:

1. Click **Settings > General Settings**.
2. Select a predefined palette from the **Color Palette** drop-down list.
3. Click **Save**.

   ![Color Palette drop-down list in General Settings](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/Uas88YucdzjQMU9PkIMiP_select-existing-color-palette.png)

### Create a custom palette

To define your own color palette, follow these steps:

1. Click **Add New Create Palette** from **Color Palette** drop-down list.

   ![Add New Create Palette option in the Color Palette drop-down list](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/kZ1tl9jSzfSHu8MLQKe79_click-add-new-color-palette.png)
2. Enter a name in the **Name** field.
3. Click **Add color** to add a swatch.

   ::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/NgNvZiiVgW_9q-bz73k0k_click-new-swatch.png" size="75" alt="Add color button in the custom palette editor" isUploading="false" showCaption="false"}
4. Enter a hex value in the **Color code** field, such as *602D58*.

   ::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/4AbL_gQKpAFM-8YtKQOg__enter-hex-value-color-code.png" size="75" alt="Color code field with a hex value" isUploading="false" showCaption="false"}
5. (Optional) Click the swatch to open the color picker and set the opacity percentage. To remove a color from a palette, select the swatch and click **Delete**.

   ::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/aQ9l5lNSDnQQ0lCQcfgc4_select-color-picker.png" size="75" alt="Color picker with opacity percentage and Delete option" isUploading="false" showCaption="false"}
6. Repeat steps 3 to 5 for each color in the palette.
7. Set the order in which charts use the colors. Drag a swatch and drop it at the position you want it to have in the chart order.
8. Click **Save color palette**.

   ::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/B79ZCN5SQNuxvo2bSDRO3_save-custom-color-palette.png" size="75" alt="Save color palette button" isUploading="false" showCaption="false"}
9. Click **Save**.

   ![Save button in General Settings with the custom palette selected](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/UJuE9PPPH9J4M93b9EB1n_click-save-general-settings.png)

Open any exploration or dashboard to view them with the updated color palette. Chart series draw their colors from the application palette.

![Dashboard using the updated color palette](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/CC0lCImNcKnKzUidn9KvD_color-palette-in-dashboard.png)

### Palette scope and overrides

- The palette applies to the whole application, so every user in that application sees the same default colors.
- **You can override the application palette for a single exploration.** Select a palette in the series editor and save the exploration. The saved palette replaces the application default for that exploration only. See [Override the palette for an exploration](docId\:UiuDpYv6VvqHJDOJS_GAj).
- A manual color override on a measure takes priority over the palette color.
- Existing charts adopt the palette the next time they render.

To override the palette for a single series, set **Measure Color** in the visualization **Style** tab. To return that series to the palette color, click **Reset to default**. See [Visualization](docId\:uWuyNe6pu-1kGDqHlf0RP).

### Override the palette for an exploration

You can use a different palette for one exploration without changing the application default. The exploration keeps its own palette, and every other exploration and dashboard continues to use the default palette.

To override the palette for an exploration, follow these steps:

1. Open the exploration.
2. In the chart legend, point to a series and click the pencil icon to open the series editor.
3. Select a palette from the **Color** drop-down list.
4. Click **Apply**. Analytics recolors every series in the chart with the colors of the selected palette, in palette order.

   ![Series editor opened from the legend pencil icon, with a palette selected and the Apply button](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/WpzZFD0RF5qzp5ynMMywC_click-edit-select-palette-click-apply.png)
5. Click **Save** to save the exploration.

   ![Save button on the exploration with the selected palette applied to the chart](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/6tlDsd_We8Kl9ANIevwwg_click-save-to-apply-palette.png)

The palette persists only after you save the exploration. Analytics stores the palette with the exploration, and it overrides the application default palette for that exploration only.

To change the color of only the selected series, click a swatch or enter a hex value in the **Color code** field instead of selecting a palette, then click **Apply**.

### Alert Inbox

Analytics lets you apply filters to your **Alert Inbox** by navigating to **Settings > Alert Inbox**. You can configure the following fields and filters:

### Default filters

Control the default state of your inbox filters with these options:

- **Status** – Choose **Open** or **Closed** to display alerts with the respective status.
- **Severity** – Select from **Critical**, **Warning**, **Info**, and **Other** to view alerts by severity. You can choose multiple severities, like **Critical** and **Warning**, to focus on specific alert types.
- **Rules** – Pick a rule to view alerts related to that specific rule.
- **Time Filter Type** – Select a time range type to display alerts based on timing:
  - **Generated in** – Alerts generated within a specific time range.
  - **Started in** – Alerts started within a specific time range.
  - **Active in** – Alerts that were active within a specific time range.
- **Time Range** – Choose a relative time range or specify an absolute time range for detailed investigation.
- **Assigned To Users** – Filter alerts by selecting one or more users to view alerts assigned to them.

  ![set2.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/B5CRxOJN87RJCl1keDOnB-20260720-144931.png)

### Dimension filters

A [rule](docId:7pusJSKjwqCH5js7kR3y2) can have grouping dimensions that trigger alerts for specific entities when a metric is exceeded. Define **Dimension Filters** to filter alerts based on these grouping dimensions. Save the filter to make it available on the Alerts Inbox page.

![set3.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/qTao4bVaODd-yN8N14bOR-20260720-144931.png)

When you finish configuring your filters, click **Save**.

### Task Monitoring

This feature provides an overview of various automated processes that run periodically within the system. These processes consistently update and maintain data across all organizational applications. The task monitoring page provides a centralized location for viewing the current execution status of each task, including its duration and frequency of execution. Logs are published for each task.

The monitoring service acts similarly to a cron job, executing tasks at regular intervals. The service currently operates every 10 minutes. During each cycle, the service performs the following steps:

1. **Fetch organizations** – Retrieve organizations within the system.
2. **Fetch applications** – Retrieve associated applications for each organization.
3. **Execute tasks** – Execute a series of predefined tasks for each application.

### Task overview

Each task executed by the monitoring service has specific objectives and contributes to the overall functionality and data integrity of Optimizely Analytics. The tasks are as follows:

1. **AUTO\_ADD\_DATASETS** – Adds missing datasets. (Enabled: true, Logs: true)
2. **COMPACT\_USAGE\_TABLE** – Updates the entities that filtering uses and sorts entities by usage. (Enabled: true, Logs: true)
3. **COMPUTE\_EVENT\_VOLUMES** – Calculates the event count in each application, used for pricing purposes. (Enabled: true, Logs: true)
4. **EXPERIMENTS** – Adds missing Optimizely experiments and refreshes all the experiments within an application. For each Optimizely experiment, a non-Optimizely experiment must have an experiment ID that is the same as the Optimizely experiment ID. If Optimizely Analytics cannot find a non-Optimizely experiment for an Optimizely experiment, this task creates a blank corresponding experiment. (Enabled: true, Logs: true)
5. **GUARDRAIL** – Sends alerts when thresholds are reached (Enabled: true, Logs: true)
6. **PUBLISH\_REPORT** – Creates a summary of monitoring logs and sends an aggregated report to the channel you configured (for example, a Slack channel). (Enabled: false, Logs: true)
7. **SYNC\_COLUMNS** – Syncs the columns of a dataset with the warehouse. (Enabled: true, Logs: true)
8. **SYNC\_EVENT\_DESCRIPTIONS** – Syncs event descriptions with warehouse descriptions. (Enabled: true, Logs: true)
9. **SYNC\_EVENT\_STATS** – Fetches and saves the child columns of a dataset's event stream. (Enabled: true, Logs: true)
10. **SYNC\_JSON\_FIELDS** – Refreshes JSON fields of a dataset column. (Enabled: true, Logs: true)
11. **SYNC\_EMBEDDINGS** – Syncs entity embeddings and event embeddings of an application. (Enabled: true, Logs: true)
12. **RULE** – Executes a rule. (Enabled: true, Logs: true)

![opti-taskmon.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/XK8Uis9qP5B71wunjgAHI-20260720-144931.png)

## Cron jobs

Cron jobs run at recurring intervals, and you specify them using a format based on the **Spring Cron Expression**. You can schedule your job to run at specified times or on specific dates using cron jobs.

Define cron jobs using the **Spring Cron Expression** format (\* \* \* \* \* \*), a set of six fields in a line, each field indicating when to execute the job:

- Field 1 – Second. Accepts values 0-59.
- Field 2 – Minute. Accepts values 0-59.
- Field 3 – Hour. Accepts values 0-23.
- Field 4 – Day of the month. Accepts values 1-31.
- Field 5 – Month. Accepts values 1-12 or JAN-DEC.
- Field 6 – Day of the week. Accepts values 0-7 or MON-SUN (0 and 7 are Monday)

### Example 1: Run a job every day at 3:15 PM

**Cron Expression:** `0 15 15 * * ?`

- Field 1 (Second): 0 (at the beginning of the minute)
- Field 2 (Minute): 15 (at 15 minutes past the hour)
- Field 3 (Hour): 15 (at 3 PM)
- Field 4 (Day of the month): \* (every day)
- Field 5 (Month): \* (every month)
- Field 6 (Day of the week): ? (no specific day of the week)

### Example 2: Run a job every Monday at midnight

**Cron Expression:** `0 0 0 * * MON`

- Field 1 (Second): 0 (at the beginning of the minute)
- Field 2 (Minute): 0 (at 0 minutes past the hour)
- Field 3 (Hour): 0 (at midnight)
- Field 4 (Day of the month): \* (every day)
- Field 5 (Month): \* (every month)
- Field 6 (Day of the week): MON (only on Monday)
