Learn Kestra by Building Your First Workflows

For the complete documentation index, see llms.txt. For a full content snapshot, see llms-full.txt. Append .md to any kestra.io/docs/* URL for plain Markdown.

Use this tutorial to learn Kestra’s core concepts and build flows step by step.

What you can do with Kestra

You can use Kestra to:

  • Run workflows on a schedule, on demand, or triggered by events such as webhooks, file arrivals, or messages on a queue.
  • Execute scripts in any language — Python, Node.js, R, Go, Bash — inside isolated containers.
  • Query databases, call APIs, read and write files in cloud storage, and send notifications.
  • Orchestrate microservices, batch jobs, data pipelines, dbt or Spark jobs, and ETL processes.
  • Provision and manage infrastructure — run Terraform plans, deploy to Kubernetes, and automate cloud resource lifecycle.
  • Build AI pipelines — call LLM APIs, run model training and evaluation jobs, and orchestrate multi-step agent workflows.
  • Pass data between tasks and flows, branch on conditions, run steps in parallel, and loop over dynamic item lists.
  • Handle failures with automatic retries, fallback tasks, and alerts.

If you prefer to generate and deploy flows from an AI coding agent, see AI tools to connect Claude Code, Cursor, or similar tools to Kestra’s MCP server.

This tutorial is a sequence of six modules. Work through them in order — each one builds on the flow you created in the previous module:

  1. Fundamentals – Build your first Hello World flow and learn declarative workflow design.
  2. Inputs – Make flows dynamic and reusable by passing values in at runtime.
  3. Outputs – Pass data between tasks and flows.
  4. Triggers – Run flows automatically on a schedule or in response to events.
  5. Flowable tasks – Control execution logic with branching, loops, and parallel tasks.
  6. Error handling – Make flows resilient with automatic retries and alerts.

After completing this tutorial, you will be able to build, automate, and debug a complete Kestra workflow that takes inputs, passes data between tasks, runs on a trigger, branches its logic, and recovers from failures.

Was this page helpful?