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. The iterator block describes the outgoing request and the response block describes what comes back.
iterator
response
Pagination modes
Pagination modes
iterator.mode selects how the engine advances:cursor— readsresponse.nextKeyand sends it back asiterator.keyon the next request, until no token is returned.offset— advances a numeric offset carried initerator.key.page— advances a page number initerator.key; supportsstartPageandmaxPage.
nextKeyIn: headers (e.g. nextKey: X-Pagination-Next).Result format: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
Combine the outputs of several previous steps into a single grouped structure, keyed by step ID.
Group data usage
Group data usage
With Useful for stitching together data fetched across multiple requests (e.g. a base record plus enrichment steps) before a final
isSingleRecord: true, the output nests each referenced step’s data under its step ID:map_fields.typecast
Impact: ⚙️ Runtime
Coerce fields to declared types. typecast has two versions — set version explicitly to choose:
version: '2'(recommended) — takes afieldsarray (each with atargetFieldKeyandtype) and adataSource, and casts those fields in place. Mirrorsmap_fieldsv2.version: '1'(default whenversionis omitted) — takes no parameters. It casts the step’s result using the action’s top-levelfieldConfigsinstead.
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:
- Providing defaults that a later step reads via its
dataSource:
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 }.soap_paginated_request
Impact: ⚙️ Runtime
The paginated variant of soap_request walks through paged SOAP responses automatically. The iterator block describes the outgoing request and the response block describes what comes back.
All other parameters (
baseUrl, url, method, authorization, namespaces, soapOperation, soapAction, useSoapContext, args, customErrors) match soap_request.
upload_file
Impact: ⚙️ Runtime
Upload a file to the provider as a multipart request. The file is described by a structured file object.
upload_binary
Impact: ⚙️ Runtime
Upload raw binary content as the request body (rather than multipart form data). Use when the provider expects the file bytes directly.
download_file
Impact: ⚙️ Runtime
Download binary content from the provider and expose it as the step output. Supports downloading into memory (buffer, default) or returning a stream, plus extracting file content wrapped in a JSON response.
emit_event
Impact: ⚙️ Runtime
Emit a normalized event from within an action — used by webhook/event actions to hand a processed payload to the events pipeline.
browser_use
Impact: ⚙️ Runtime
Drive a headless browser agent for providers without a usable API. Any action containing a browser_use step must declare executionMode: async — it is dispatched to the Temporal workflow runtime rather than run inline. The runtime user instruction is supplied by the caller and merged with the action’s systemPrompt.
sign_jwt
Impact: ⚙️ Runtime
Create a signed JWT (e.g. for providers using JWT-bearer auth or service-account assertions). The signed token becomes available as the step output for use in a subsequent request.
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.