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

# Workflow Settings

> Configure workflow-level settings that apply to every run

Workflow settings control behavior that applies across all nodes and runs. You can configure these in the dashboard under the **General** tab of a workflow, or via the [Workflow API](/workflow-api/update-workflow).

## Execution Settings

### Recovery Toggles

These settings control which automatic recovery actions the [Maintenance Agent](/concepts/maintenance-agent) can perform. All toggles are configurable via the dashboard (Error Handling > Maintenance Agent Settings) or the [Workflow API](/workflow-api/update-workflow).

| Setting                       | API field                              | Default | Description                                            |
| ----------------------------- | -------------------------------------- | ------- | ------------------------------------------------------ |
| Popup Handling                | `enable_popup_handling`                | `true`  | Auto‑dismiss known popups and learn new popup XPaths   |
| XPath Recovery                | `enable_xpath_recovery`                | `true`  | Auto‑repair broken XPath selectors                     |
| Page Loading Recovery         | `enable_action_timing_recovery`        | `true`  | Inject delays when pages haven't finished loading      |
| Error Code Generation         | `enable_error_code_generation`         | `true`  | Auto‑suggest error codes for unmatched user errors     |
| Node Description Enrichment   | `enable_node_description_enrichment`   | `false` | Auto‑generate node descriptions from screenshots       |
| Service Unavailable Recovery  | `enable_service_unavailable_recovery`  | `true`  | Exponential back‑off retries for external failures     |
| Incorrect Form Input Recovery | `enable_incorrect_form_input_recovery` | `false` | Send `execution.input_required` webhook for bad inputs |
| Password Update Recovery      | `enable_password_update_recovery`      | `false` | Automated password rotation and vault update           |
| TFA Setup Recovery            | `enable_tfa_setup_recovery`            | `false` | Automated two‑factor authentication enrollment         |

### Video Recording

`video_record_session` — When enabled, the agent records a video of the browser session during execution. Useful for debugging and auditing.

## Popup Handling

### Popup XPaths

`popup_xpaths` — An array of XPath selectors pointing to elements that **dismiss** unwanted popups (e.g., a close button on a cookie banner or promotional modal).

During execution, the agent checks for these elements **before and after** every action (click, input text, input select, scroll, extract). If a matching element is found and visible, the agent clicks it and waits briefly for the popup to close. If a popup appears *during* an action (e.g., intercepting a click), the agent automatically retries the action.

```json theme={null}
{
  "popup_xpaths": [
    "//button[@aria-label='Close']",
    "//div[@id='cookie-banner']//button[contains(text(), 'Accept')]"
  ]
}
```

<Tip>
  Use XPaths that target the **dismiss element** (close button, "Accept" button), not the popup container itself.
</Tip>

<Note>
  If Popup Handling is enabled, the maintenance agent will automatically add XPath selectors to the `popup_xpaths` array when it encounters and recovers from unexpected popups.
</Note>

## Proxy Settings

### Proxy Setting

`proxy_setting` — Controls proxy behavior for the workflow. Possible values:

| Value       | Description                                                                          |
| ----------- | ------------------------------------------------------------------------------------ |
| `"off"`     | No proxy (default)                                                                   |
| `"random"`  | Use a random proxy from the managed pool                                             |
| `"static"`  | Use the managed proxy closest to the target IP given in `proxy_value`                |
| `"country"` | Use a managed proxy in the country specified in `proxy_value`                        |
| `"custom"`  | Use a custom (bring-your-own) proxy URL specified in `proxy_value` (Enterprise only) |

### Proxy Value

`proxy_value` — Its meaning depends on `proxy_setting`:

* `"static"`: the target IP address; CloudCruise selects the managed proxy closest to it.
* `"country"`: the target country/region for proxy selection.
* `"custom"`: the proxy URL, e.g. `socks5://user:pass@host:port`, `http://host:port`, or `https://user:pass@host:port`. Stored encrypted with the workspace's AES-256 key and re-validated against SSRF rules on every dispatch.
