Skip to main content
Version: Current

Agent Data

Overview​

Agent Data defines the shared data model of an agent.

Unlike Workflow Data, which is scoped to a single workflow, Agent Data is shared by all workflows within the same agent execution. Define its structure in the agent, then use its runtime values across workflows without duplicating fields.

Define fields and groups at design time. Activities can read and update their values during execution to maintain shared business state.

Agent Data is:

  • Defined at design time at the agent level.
  • Shared across all workflows in the agent.
  • Instantiated once for each agent execution (process instance).
  • Used to store business objects, intermediate results, collections, and cross-workflow state.

Open the Process Data Explorer from More (⋮) → Process Data in the Designer Command Bar, then expand Agent Data.

The structure belongs to the agent definition. Runtime values belong to an individual agent execution, also called a process instance. Separate executions have separate Agent Data values.


Agent Data vs Workflow Data​

DataScopeTypical use
Agent DataEntire agent (all workflows)Shared business data and state used across workflows.
Workflow DataSingle workflowWorkflow-specific state and intermediate results.

Use Agent Data when multiple workflows need the same fields. Use Workflow Data when the data is relevant only to one workflow.

Model Data compatibility

Model Data has been renamed to Workflow Data in the user interface only. The Workflow Data namespace remains modelData for backward compatibility. Use agentData for Agent Data.

For example, modelData.Customer.Name refers to a workflow field, while agentData.Customer.Name refers to a shared agent field. Defining one does not automatically create or copy a value into the other.


Agent Data Hierarchy​

Agent Data supports the same field types and hierarchy as Workflow Data: fields and groups that represent simple values and structured business objects.

NodePurpose
FieldStores a single value of a specific data type.
Field[]Stores a collection of values of the same data type.
GroupOrganizes related fields into a structured business object.
Group[]Stores a collection of structured business objects.

For example:

Customer
├── CustomerId
├── Name
├── Email
└── Orders[]
├── OrderNumber
├── Amount
└── Status

This hierarchy allows complex business information to be represented in a clear and maintainable structure and reused across workflows.


Agent Data Nodes​

Field​

A Field stores a single value.

Typical examples include:

  • Customer Name
  • Order Number
  • Total Amount
  • Approval Status

Use a Field whenever a single value is required.


Field[]​

A Field[] stores multiple values of the same data type.

Examples include:

  • Email Addresses
  • Order Numbers
  • Tags
  • File References

Use Field[] when the number of values is dynamic or unknown.


Group​

A Group represents a structured business object containing related fields.

For example:

Customer
├── FirstName
├── LastName
├── Email
└── Phone

Groups improve readability and allow business entities to be modeled naturally.


Group[]​

A Group[] represents a collection of structured business objects.

For example:

OrderItems[]
├── Product
├── Quantity
├── UnitPrice
└── Discount

Use Group[] when multiple instances of the same business object must be stored.


Creating Agent Data​

To create Agent Data:

  1. Open the Process Data Explorer from More (⋮) → Process Data.
  2. Expand Agent Data.
  3. Right-click the location where the new item should be created.
  4. Select one of the following options:
OptionCreates
Add FieldA single value.
Add Field[]A collection of values.
Add GroupA structured business object.
Add Group[]A collection of structured business objects.

Enter a meaningful Name. For a Field or Field[], select its Type from the designer's type selector, then save the item. Use the designer's validation to check that the name and type are accepted.

For a Group or Group[], save the group, then right-click it to add the fields that define its structure. Specify a name and type for each child field. Each item in a Field[] uses the selected field type; each item in a Group[] uses the same child-field structure.

For example, create a Group named Customer, then add text fields named CustomerId, Name, and Email inside it. The name field is referenced as agentData.Customer.Name.

Choose types that match the values your activities produce and consume. Use a text type for a customer name, a numeric type for an amount, or File Reference for a file used by an activity. The available field types are the same as those offered for Workflow Data.

To create a collection of order IDs, choose Add Field[], name it OrderIds, and select a text type. The [] notation identifies an array; the reference path is agentData.OrderIds.

Because Agent Data is agent-scoped, changes are visible in every workflow of the agent.


Editing Agent Data​

To modify existing Agent Data:

  1. Right-click the required Field, Field[], Group, or Group[].
  2. Select Edit.
  3. Update the required properties.
  4. Save the changes.

Renaming an Agent Data field updates references across all workflows in the agent.

Review affected activity configurations, form bindings, and expressions after editing to ensure that their types and intended behavior still match.


Using Agent Data​

Agent Data can be referenced anywhere the Process Data Explorer is available.

Typical uses include:

  • Binding activity inputs.
  • Storing activity outputs shared across workflows.
  • Building expressions.
  • Configuring conditions.
  • Populating forms.
  • Generating email content.
  • Passing shared state into sub-workflows.

Activities can read from and write to Agent Data throughout agent execution. In expressions, Agent Data is available under the agentData root (for example, agentData.Customer.Name).

Use Multi Assign to assign field values and Add To Collection to append values to a Field[] collection.

Example: Share a Customer Name​

Suppose one workflow records a customer name and a later workflow sends an email:

  1. Create Customer.Name as a text field inside a Customer group under Agent Data.
  2. In Workflow A, add Multi Assign. Set To to agentData.Customer.Name, choose Literal for Value, and enter Acme Corp.
  3. Arrange for Workflow B to execute after the assignment in Workflow A.
  4. In Workflow B, configure Send Email. Select Customer.Name from Agent Data when binding the customer name in the email content.

Workflow B reads the value assigned by Workflow A within the same agent execution. Updates are available to workflows that read the field after the update.

Example: Build a Shared Collection​

  1. Create a text Field[] named OrderIds under Agent Data.
  2. Configure Add To Collection with Collection set to agentData.OrderIds and Item set to an order ID or a bound text value.
  3. Repeat the activity for each order to collect.
  4. In a subsequent workflow, select OrderIds from Agent Data as the collection for an Iterator.

Forms and Notifications​

When a form property supports data binding, select an Agent Data field from the Process Data Explorer. For example, bind a customer-name property to agentData.Customer.Name to display the shared name. See Form Data Binding for the binding dialog.

For a task notification, select the Agent Data field in the notification editor's data binding controls. For example, include Customer.Name in an approval notification so that the message identifies the customer. See Standard Task.

Form Data represents values captured from forms. To retain a captured value as shared business state, use Multi Assign to copy it into an Agent Data field.


Agent Data Flow​

The following diagram illustrates how Agent Data typically flows through an agent.

Agent Starts
│
▼
Agent Data (shared)
│
┌────┴────┐
▼ ▼
Workflow A Workflow B
│ │
└────┬────┘
▼
Agent Ends

Agent Data is created once when the agent starts and remains available to all workflows in that execution. Workflow Data continues to be created per workflow for workflow-specific state.


Viewing and Updating Runtime Values​

The Agent Data section of the Agent Automation page displays values for a particular execution. Authorized users can edit values and inspect their change history there. Runtime edits update the execution's values rather than the agent's design-time structure.

For programmatic access, use the client SDK's GetAgentDataAsync and UpdateAgentDataAsync, or the REST APIs Get Agent Data and Update Agent Data. Identify the execution with its process instance ID; a workflow instance ID is not required for Agent Data.


Best Practices​

  • Use Agent Data for data that must be shared across workflows.
  • Use Workflow Data for workflow-specific state.
  • Organize related information using Groups.
  • Use Field[] and Group[] when storing collections.
  • Keep data models aligned with real business entities.
  • Choose meaningful names for fields and groups.
  • Add descriptions to improve maintainability.
  • Avoid deeply nested structures unless they represent the underlying business model.
  • Assign shared values before the workflows that depend on them execute.
  • When workflows can run concurrently, design their updates so that one workflow does not unintentionally overwrite another's values.