Skip to main content

steps

Impact: ⚙️ Runtime Define the execution flow for the action. Steps run sequentially.

Step Properties

Conditional Steps

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)

The runtime builds requests as follows:
  1. URL: baseUrl + url with path params interpolated
  2. Query: All in: query args joined with &
  3. Body: All in: body args merged into JSON object
  4. Headers: Connector authentication headers + custom headers + in: headers args
Path parameter example:
Resolves to: /employees/123/time-off/456Body construction:
Sends: { "firstName": "John", "lastName": "Doe" }
Use 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
customErrors properties: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

iterator.mode selects how the engine advances:
  • cursor — reads response.nextKey and sends it back as iterator.key on the next request, until no token is returned.
  • offset — advances a numeric offset carried in iterator.key.
  • page — advances a page number in iterator.key; supports startPage and maxPage.
For a next token that arrives in a response header, set nextKeyIn: headers (e.g. nextKey: X-Pagination-Next).Result format:
MCP behavior: When an agent calls a list action, they receive the first page. The next cursor allows fetching subsequent pages by passing it back as an input parameter.

map_fields

Impact: ⚙️ Runtime Transform data between formats.
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 string
  • number - Converts to number
  • boolean - Converts to boolean
  • datetime_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.
With isSingleRecord: true, the output nests each referenced step’s data under its step ID:
Useful for stitching together data fetched across multiple requests (e.g. a base record plus enrichment steps) before a final map_fields.

typecast

Impact: ⚙️ Runtime Coerce fields to declared types. typecast has two versions — set version explicitly to choose:
  • version: '2' (recommended) — takes a fields array (each with a targetFieldKey and type) and a dataSource, and casts those fields in place. Mirrors map_fields v2.
  • version: '1' (default when version is omitted) — takes no parameters. It casts the step’s result using the action’s top-level fieldConfigs instead.
The parameters above apply to version: '2'. If you omit version, the step runs v1, which ignores parameters entirely and casts using the action’s fieldConfigs. Always set version: '2' when using the fields/dataSource form.

soap_request

Impact: ⚙️ Runtime Make SOAP API requests. Used primarily for enterprise providers like Workday.
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.
Use static_values when:
  1. Provider doesn’t have an API endpoint for enum values:
  1. 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

The args array is assembled into a single JSON object and sent as the Lambda payload:Input args:
Sent payload:
Conditional args:
Extracting a nested response:
If the Lambda returns { "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 the iterator property to a step.
Inside an iterator step, these additional variables are available:Multiple step functions per iteration:
Each iteration collects the final step function output. All iteration results are combined into $.steps.{stepId}.output.data as an array.