Reference
Step types
Reference for built-in Envoy pipeline steps, their purpose, stream behavior, configuration, and operational cautions.
Step availability is determined by the deployed Envoy build. The following built-in types cover connector calls, transformation, filtering, mapping state, database writes, validation, and file transfer.
Common properties
- name: step_name
type: transform
run_if: "input.enabled = true"
error_handling: fail
concurrency: 1
debug: false
config: |
inputconfig can be a static YAML object or a JSONata expression string. run_if and skip_if are JSONata expressions.
General pipeline steps
call_method
Calls a method on a mapped connector. Use it for list, read, create, update, delete, and connector-specific operations.
type: call_method
config: |
{
"connector": "source",
"method": "find",
"args": {
"table": "tickets",
"limit": 100
}
}Collection methods can stream results. Prefer this step to $callMethod() for large results.
transform
Evaluates JSONata and emits the transformed value:
type: transform
config: |
{
"id": $string(input.id),
"email": $lowercase(input.email)
}An emitted array becomes multiple downstream items.
filter
Keeps the item when its expression is truthy and drops it otherwise:
type: filter
config: "input.active = true"console
Writes an inspection representation for debugging and passes the item through. Keep it disabled or remove it from high-volume production tasks.
Mapping and change detection
compute_hash
Computes a deterministic hash from selected or transformed fields. Normalize values before hashing and use identical logic across initial and delta tasks.
get_destination_id
Looks up an existing source-to-destination mapping and adds the mapped destination identity to the pipeline context.
set_destination_id
Persists a source-to-destination mapping after a confirmed destination write. Guard it against missing write output.
sync_record
Combines mapping lookup, payload hash comparison, destination create/update, and mapping persistence. Prefer it for standard idempotent synchronization.
See Mapping database and sync_record.
Database-oriented steps
ensure_table
Creates or verifies a table used by a task. Keep schemas explicit and run setup before concurrent writes.
upsert_record
Inserts or updates a record according to declared conflict columns. Back the conflict key with a destination uniqueness rule.
lookup
Performs a bounded lookup to enrich or resolve a record. Avoid using it for an unindexed scan per source item.
mark_processed
Records processing state for a source or staging record. Invoke it only after the relevant external operation is known to have succeeded.
Field and source handling
map_fields
Maps source fields to destination fields and can apply per-field transforms. It accepts static mapping or job configuration prepared by a field-mapping editor.
validate_source
Checks required source fields or conditions before later work. Choose whether invalid items should fail the run or move to an explicit exception path.
transfer_file
Streams or transfers a file between compatible connectors. Use a stable destination key, bound file sizes where supported, and ensure container-visible paths.
Batch and spool modifiers
batch and spool are common step wrappers rather than separate step types:
batch: 100Batching sends arrays downstream. Spooling collects the whole incoming stream and can consume unbounded memory or disk depending on runtime behavior.
Error handling
failstops the task.ignorelogs the error and continues other items.ignore_reststops processing the affected item through later steps.
Use conditional guards after ignored writes. See Masking, loops, and error handling.