Use Case
Run batch data enrichment and automated processing pipelines. Workflows are ideal for processing many records through multi-step pipelines (e.g., validate emails, enrich companies, export to CSV) without manual intervention.Core Concepts
The Workflows API models pipelines as directed acyclic graphs (DAGs):| Term | Description |
|---|---|
| Workflow | A reusable pipeline definition containing blocks and edges |
| Block | A processing step (e.g., webhook input, enrichment, filtering, export) |
| Edge | A connection between blocks that defines data flow |
| Run | An execution instance of a workflow |
| Job ID | A unique identifier for tracking a workflow run |
Execution Flow
- List workflows — Get available workflows in your organization
- Run workflow — Execute with input data; receive a
job_id - Poll live status — Monitor progress until
completed,failed,cancelled, ortimeout - Download results — Get signed URLs for result files (CSV, NDJSON)
For workflows that start with a
webhook block, see Incoming Webhooks.Quick Start
Uploading an input file
Workflows that start with aread_csv block read their rows from a file you upload first.
multipart/form-data with a single file part. Accepts .csv, .json, .jsonl, and .ndjson.
cURL
handle_id:
handle_id as specs_override.resource_handle_id when you call /workflows/run:
cURL
NDJSON input & output
Inputs can be NDJSON or JSONL as well as CSV — upload them the same way (see Uploading an input file). For NDJSON output, addresult_formats=ndjson when running. CSV is always produced regardless; NDJSON is added alongside it. Use NDJSON when you need typed values — numbers, booleans, and nested objects survive instead of being flattened to strings.
cURL
format query parameter selects which output to link — csv (default), json, or ndjson. It defaults to csv, so pass format=ndjson to get the NDJSON links.