# Configuring properties and data

> Runtime properties and data configuration options for BPMN events, tasks, and gateways in Maestro, showing how to connect diagrams to executable workflows via the Properties panel.

## Configure what happens at runtime

Configuring properties is how you make your process run. It's where your BPMN diagram becomes an executable workflow. Every event, task, or gateway in Maestro has runtime properties that define what it does, what data it uses, and what happens next.

Use the **Properties** panel to connect your process to automations, agents, or APIs, and the **Data Manager** to handle variables and mappings. Together, they control how information moves through your process.

## Quick start: Configure any element

To configure a BPMN element, select it on the canvas and define its runtime behavior in the Properties panel.

1. Select an element on the canvas.
2. Open the **Properties** panel using the wrench icon in the upper-right corner.
3. Under **Implementation**, choose an action, for example, **Start and wait for RPA workflow**.
4. Add or select **Inputs** and **Outputs** to pass data between steps.
5. Review variables in the **Data Manager** and test your setup.

   :::tip
   You can test your configuration instantly with **Debug** or **Simulate** before publishing.
   :::

## Result

The selected element is configured with its runtime behavior, input and output mappings are defined, and the process is ready to be tested using Debug or Simulate before publishing.

   ## Key sections in the Properties panel

   ![Properties panel showing General, Implementation with categorized action options, Inputs/Outputs, and XML sections](https://dev-assets.cms.uipath.com/assets/images/maestro/maestro-docs-image-554444-fa36cca5.webp)

| Section | Purpose |
| --- | --- |
| **General** | Define the element name, description, and system ID. |
| **Implementation** | Choose the runtime action from categorized options (automations, agents, connectors, and more). |
| **Inputs / Outputs** | Map variables, expressions, or Data Fabric fields used by the element. |
| **XML** | Inspect the raw BPMN XML (for advanced users or support). |

   ![xml properties](https://dev-assets.cms.uipath.com/assets/images/maestro/maestro-xml-properties-589065-0b9d7224.webp)

When you select an element that has no implementation configured, the **Properties** panel automatically expands the implementation area so you can configure the element immediately.

:::warning
Changing the implementation action or the element type on a configured element overwrites the existing configuration. A warning appears to confirm before the change is applied.
:::

:::note
If you want to know the supported elements in the BMPN XML, check out [BPMN Specification - Business Process Model and Notation](https://www.bpmn.org/).
:::

:::warning
Do not edit the `bpmn:process` `id` attribute in the XML. This attribute is the primary key for diagram identification — modifying it breaks all diagram references and causes the error `No diagrams found in the BPMN file`. To recover a corrupted process, you must restore it from a snapshot (Version Control) or a locally saved copy; no self-serve recovery path exists without one.
:::

:::note
Configuring Start event inputs and End event outputs enables you to populate [input arguments](https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/about-input-and-output-arguments) when initiating the process from the Orchestrator interface or API. This also allows you to return output to any aforementioned sources.
:::

## Element-level retries

Element-level retries let you define how Maestro should automatically retry a task-level failure before marking it as faulted. Use this feature to handle temporary issues without manual intervention.

### Why use it?

When a task fails, Maestro can re-execute it based on a retry strategy that you define in the **Properties** panel. This helps stabilize long-running processes by absorbing transient errors and giving dependent systems time to recover.

### How to configure retries

1. Select a task element (for example, **Service task**).
2. In the **Properties** panel, expand **Error handling → Element-level retries.**
3. Turn **Retry on failure** on.
4. Choose or edit the retry strategy parameters:
   * **Max retries**: Number of retry attempts before the task fails permanently.
   * **Initial delay**: Time to wait before the first retry (ISO 8601 duration, for example `PT1S`).
   * **Backoff** type: **Static**, **Linear** or **Exponential**.
   * **Exponential base**: (Optional) applied when Exponential backoff is selected.
   * **Max duration**: (Optional) maximum delay between retries.
   * **Retry on errors**: Choose which errors should trigger retries (for example, **All**).

### Result

The retry strategy is saved for the selected task element. Maestro automatically retries the task on failure according to the configured parameters before marking it as faulted.

:::note
Element-level retries apply only to executable tasks (e.g., Service, Agent, API Workflow, Queue Item). They are not available for gateways or event-catching elements.
:::

   ![retry on failure](https://dev-assets.cms.uipath.com/assets/images/maestro/maestro-retry-on-failure-621642-5e1ff80a.webp)

## Data Manager

The **Data Manager** centralizes every variable, argument, and data source in your process.

* Define inputs and outputs once, then reuse them across tasks.
* Preview data structures from **Data Fabric** or connector payloads.
* Validate and test expressions before deployment.

  ![data manager](https://dev-assets.cms.uipath.com/assets/images/maestro/maestro-data-manager-621584-a555546b.webp)

:::tip
Keep variable names meaningful (e.g., `InvoiceId`, `ApprovalStatus`) to simplify debugging and monitoring later.
:::

:::note
Configuring Start event inputs and End event outputs enables you to populate [input arguments](https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/about-input-and-output-arguments) when initiating the process from the Orchestrator interface or API. This also allows you to return output to any aforementioned sources.
:::
