Your First Workflow

Register your first task and trigger its first run.

Welcome to Render Workflows! Follow these steps to register your first and trigger its first .

1. Install the Render CLI

You'll use the Render CLI to create a starter project with our Hello World template.

Use any of the following methods to install the Render CLI or upgrade to the latest version:

Homebrew installation

Run the following commands:

WinGet installation

Run the following command:

Installing with curl

Run the following command:

Direct download
  1. Open the CLI's GitHub releases page.
  2. Download the executable that corresponds to your system's architecture.

If you use an architecture besides those provided, you can build from source instead.

Building from source

We recommend building from source only if no other installation method works for your system.

  1. Install the Go programming language if you haven't already.

  2. Clone and build the CLI project with the following commands:

After installation completes, open a new terminal tab and run render with no arguments to confirm.

2. Initialize a starter project

  1. From your machine's development directory, run render workflows init to generate a starter project with your first definition:

    Command not found? Make sure you've upgraded to the latest version of the Render CLI.

  2. The init command prompts you for the following, in order:

    PromptDescription

    Language

    Choose whichever supported language you prefer (currently TypeScript or Python).

    Template

    Choose Hello World for this tutorial.

    Output directory

    The CLI creates a new directory for your project at the specified path (default ./workflows-demo).

    Install dependencies?

    Choose Yes.

    Initialize a Git repository?

    Choose Yes.

    Running in non-interactive mode?

    To skip prompts in scripts and agents, you can pass all options directly, like so:

    For details, run render help workflows init.

  3. Commit all of the files in your new project directory to Git:

The anatomy of a workflow

The following excerpts from workflows init starter projects illustrate the bare minimum syntax for defining a workflow:

  • You import task and the TaskContext type from the Render SDK for TypeScript, which is the template's only dependency aside from TypeScript itself.
  • You define by calling task(...) once for each, providing options and a function definition.
    • The function must take a TaskContext object as its first argument. Render provides this object to each task run automatically.
  • No additional initialization is required when using the TypeScript SDK.
  • You define a by first initializing a Workflows app, then applying the @app.task decorator to any function.
    • The function must take a TaskContext object as its first argument. Render provides this object to each task run automatically.
  • You call app.start() on startup to initiate both task registration and run execution on Render.
  • The Workflows class and TaskContext type are imported from the Render SDK for Python, which is the template's only dependency.

3. Push your project

Render will deploy your project by pulling its source from a linked repo on your .

Create a new repository for your project with a supported and push your local repo to it.

4. Create a workflow service

  1. In the Render Dashboard, click New > Workflow:

    Creating a new workflow in the Render Dashboard

    The workflow creation form appears.

  2. Link the repo with your workflow's task definitions.

  3. Complete the remainder of the creation form. See guidance for important fields: