Blocks

File upload

The file upload trigger: a hosted drop page that fires the workflow with the uploaded files — the front door for document pipelines.

A hosted upload page: someone drops a file, the workflow runs with it. The front door for document pipelines — CV screening, invoice extraction, PDF Q&A.

When it runs

On each upload to the step's page (URL in the Inspector). Active workflows only.

Config

The file upload trigger's Inspector config Accepted types, size cap, single or multiple.

  • Accept — MIME filter (application/pdf, images, …).
  • Max size (MB) — per-file cap.
  • Multiple — one file per run, or a batch.

Output

{
  "files": [
    {
      "filename": "invoice.pdf",
      "content_type": "application/pdf",
      "size": 84213,
      "key": "documents/…",
      "document_id": "…"
    }
  ]
}

Always a list, even single-file — first file is {{ payload.files.0.filename }}. Downstream document steps (the AI agent's extract-from-document task, extract-from-file) find the uploaded document themselves — you rarely pass the key by hand.

Patterns

  • Upload → extract → store — vision-extract the fields, upsert into a store, notify.
  • Upload → classify → route — sort documents by kind, different handling per branch.

Gotchas

  • Verification wants a real sample — the walk opens the upload window and waits for one actual file; synthetic samples don't count as proof here by design.