Windmill Labs
Windmill

Automate any workflow, visually or as code

For engineering and ops teams who need code-first workflow automation with enterprise controls. Build flows as DAGs with full code flexibility, not low-code limitations.

Full code flexibility — 20+ languages per step, no low-code constraints
Trigger from anywhere — cron, webhooks, Kafka, Postgres CDC, SQS and more
Enterprise-ready — SSO, RBAC, audit logs, Git sync and self-hosting
One platform — scripts, schedules, UIs, agents and pipelines all in one place

Trusted by 4,000+ organizations, including 300+ EE customers at scale:

ZoomZoomKahootInvesting.comCFA InstituteAxiansAxiansPhotoroomPavePanther LabsNocd

Full control flow primitives

Not just linear pipelines. Windmill flows support the control flow you need for real-world automation.

Branching

Conditional branches (if/else) or parallel branches (fan-out). Run multiple paths and collect all results.

Loops

For-loops over lists with configurable parallelism. While-loops for polling, pagination or convergence logic.

Approval steps

Suspend a flow until a human approves. Send approval links via Slack, email or any notification system.

Retries & timeouts

Per-step retry count with exponential backoff. Custom timeouts to prevent hung steps from blocking the flow.

Error handling that doesn't fail silently

Each step can be configured with its own error handling strategy — retries, custom error handlers, early stop, continue on error, or custom timeouts.

Error handlers

Run a custom script when a step fails — send a Slack notification, create a ticket, or trigger a rollback.

Early stop

Stop the entire flow based on a predicate, without marking it as failed.

Continue on error

Mark non-critical steps to continue even on failure — useful for notifications or logging.

Trigger from anywhere

Trigger flows from cron schedules, webhooks, Slack commands, emails, Postgres CDC, Kafka, SQS — or manually from the UI.

Cron schedules

Webhooks

Slack commands

Emails

Postgres CDC

Kafka & SQS

Manual UI

Trigger scripts

Visual editor or workflows as code

Build flows in the visual drag-and-drop editor, or define them programmatically with workflows as code in Python or TypeScript using decorators and the Windmill SDK. Both approaches produce the same OpenFlow JSON format.

Start automating workflows today

Get started for free on Windmill Cloud or self-host the open-source version.