steps
Impact: ⚙️ Runtime
Define the execution flow for the action. Steps run sequentially.
Step Properties
Conditional Steps
Condition expressions
Condition expressions
Conditions use JEXL syntax with helper functions:
Common patterns:
Step Functions
request
Impact: ⚙️ Runtime
Make an HTTP request to the provider API.
Args Location (in)
Request construction internals
Request construction internals
The runtime builds requests as follows:Resolves to: Sends:
- URL:
baseUrl+urlwith path params interpolated - Query: All
in: queryargs joined with& - Body: All
in: bodyargs merged into JSON object - Headers: Connector authentication headers + custom headers +
in: headersargs
/employees/123/time-off/456Body construction:{ "firstName": "John", "lastName": "Doe" }Custom error handling
Custom error handling
Use customErrors properties:
customErrors to remap provider error responses. This is useful for:- GraphQL APIs that return errors with 200 status codes
- Provider-specific error formats that need normalization
- Custom error messages for better AI agent understanding
The
condition property is useful for GraphQL APIs where errors are returned in the response body with a 200 status code.paginated_request
Impact: ⚙️ Runtime
Automatically handle pagination for list endpoints.
Pagination Types
Pagination handling mechanics
Pagination handling mechanics
The runtime handles pagination automatically:Cursor pagination:MCP behavior: When an agent calls a list action, they receive the first page. The
- Make initial request without cursor
- Read
cursor_pathfrom response - If cursor exists, make next request with cursor in
cursor_position - Repeat until no cursor returned
- Aggregate all
data_pathresults
next cursor allows fetching subsequent pages by passing it back as an input parameter.map_fields
Impact: ⚙️ Runtime
Transform data between formats.
Field mapping expressions
Field mapping expressions
Expressions support JEXL syntax with the source object as context:Simple path:Concatenation:Conditional:Null coalescing:Nested access:Array operations:Type coercion:
The
type field ensures output matches expected type:string- Converts to stringnumber- Converts to numberboolean- Converts to booleandatetime_string- Formats as ISO 8601
group_data
Impact: ⚙️ Runtime
Group array data by a field.
Group data usage
Group data usage
Transforms flat array into grouped structure:Input:Output:Useful for restructuring provider responses into more usable formats.
typecast
Impact: ⚙️ Runtime
Convert data types.
soap_request
Impact: ⚙️ Runtime
Make SOAP API requests. Used primarily for enterprise providers like Workday.
SOAP namespace configuration
SOAP namespace configuration
Namespaces map XML prefixes to URIs:Reference namespaces in field names with the identifier prefix:XML attribute syntax: Use
@_ prefix for XML attributes and #text for text content.static_values
Impact: ⚙️ Runtime
Return predefined static values without making an API request. Useful for enum lookups or constant data.
Static values use cases
Static values use cases
Use
static_values when:- Provider doesn’t have an API endpoint for enum values:
- Combining with dynamic data via multi-step actions:
merge_collections
Impact: ⚙️ Runtime
Merge multiple data collections into a single array.
Merge collections example
Merge collections example
Combine static defaults with API-fetched data:Collections are merged in order—items from the first collection appear first in the result.
code_execution_lambda
Impact: ⚙️ Runtime
Invoke an AWS Lambda function and use the response as the step output. Useful for offloading custom transformations, provider-specific logic, or computation that doesn’t fit other step functions.
Invocation Types
Output
Payload construction and response handling
Payload construction and response handling
The Sent payload:Conditional args:Extracting a nested response:If the Lambda returns
args array is assembled into a single JSON object and sent as the Lambda payload:Input args:{ "result": { "score": 0.9 }, "meta": {...} }, then $.steps.{stepId}.output.data is { "score": 0.9 }.Iterator Steps
Impact: ⚙️ Runtime Iterator steps (foreach) execute step function(s) for each item in an array. Define by adding theiterator property to a step.
Iterator context variables
Iterator context variables
Inside an iterator step, these additional variables are available:Each iteration collects the final step function output. All iteration results are combined into
Multiple step functions per iteration:
$.steps.{stepId}.output.data as an array.