How to Create a Flow

This overview will show you how to use the Globus web app or Globus automate command line client to create and deploy a flow.

A flow is a series of steps that are performed in a specified order. The Globus Flows service provides managed and reliable execution of flows. You can create your own flows and allow other users and groups to see, run, or manage them.

1. Write a flow definition

A flow definition is a document that describes the actions that will occur when running a flow and the details necessary to perform them. Some steps in a flow—called actions—may interact with an action provider. Action providers can allow flows to access and modify resources within Globus or externally managed services.

You can incorporate Globus resources and capabilities in your flows by using Globus-provided action providers. You can also define and run your own custom action provider to expand the set of tools available to your flows.

A flow definition may be written in JSON or YAML. You can write and edit this file on your local workstation, which you will need when you are ready to register, or deploy, your flow with Globus. These resources will help you get started with writing your flow definition:

  • You can start experimenting by creating a simple flow to move and share data using our Jupyter notebook.

  • You can use these example flow definitions of some simple operations as starting points for developing your own flows.

  • You can access several simple flow definitions in this GitHub repository.

  • You can view flow definitions that others have shared with you. To use one of these flow definitions to start building your own flow, login to the Globus Web App and select Flows from the navigation menu. Open the Library tab to find a flow you are interested in, selecting the flow to open up its Overview page. Open the Definition tab and expand the Definition section to view the flow’s definition. If you’d like to use this as the basis of a new flow, you can copy the definition and paste it into a new JSON file on your local workstation.

  • Our flow authoring guide provides detailed instructions for how to write a flow definition.

You can use the Globus automate command line interface (CLI) to parse and validate a flow definition with the command:

$ globus-automate flow lint --definition FLOW_DEFINITION_FILE

See Quick Start and Using the CLI for installation instructions and an overview of CLI usage, respectively. Our CLI Reference provides a complete description of CLI commands and their options.

2. Write an input schema

An input schema is a document that describes settings (called parameters) a user can provide to customize a flow run. An input schema is written in JSON or YAML. As with the flow definition, you will write and edit this file on your local workstation, only uploading it once you are ready to register your flow with Globus. We provide some sample input schemas to get you started or you can use the Globus web app to browse input schemas written by others.

3. Deploy the flow

Once you have written your flow definition and input schema, you are ready to register your flow with the Globus Flows service—a step called deploying.

You can use the Globus Web App to deploy your flow. Login to the Globus Web App ( Open the Flows management page from the navigation menu, select the Deploy a Flow tab, and then select the Deploy Flow button.

screenshot of flows management page with 3 steps

Fill out the form and select the Deploy Flow button.

screenshot of /flows/deploy

Alternatively, you can deploy your flow from the CLI using the command:

$ globus-automate flow deploy --definition FLOW_DEFINITION_FILE –-input-schema INPUT_SCHEMA_FILE --title "FLOW_TITLE"

where FLOW_DEFINITION_FILE should be replaced with the name of the file containing your flow definition, INPUT_SCHEMA_FILE with the file containing your flow’s input schema, and FLOW_TITLE with the name of your flow.

If you would like to perform basic validation on your flow beforehand, you can add the --dry-run option to the above command. For a complete list of flow deploy options, see the CLI Reference.

4. Update the flow and set flow roles

Using the command below, you may update an existing flow’s definition and input schema as well as metadata, such as the flow’s title, keywords, and description. You may also use this command to assign flow roles, which determine who can see, run, or manage your flow. For a complete list of flow update options, see the CLI Reference.

$ globus-automate flow update [OPTIONS] FLOW_ID

The Globus Web App may also be used to update flow metadata and assign flow roles. To update a flow’s metadata or roles using the Globus Web App, select Flows from the navigation menu. In the Library tab, find your flow and select it to open the flow’s Overview page.

5. Next steps

Please see our How to Run a Flow a flow guide for a description of how to run your flow using the Globus Web App.