Flows API
  • Globus Flows
  • Overview
  • Getting Started
    • How to Run a Flow
    • How to Monitor a Flow Run
    • How to Create a Flow
  • Authoring Flows
    • Introduction
    • Actions
    • Expressions
    • Choice States
    • Wait States
    • Fail States
    • Pass States
    • Protecting Secrets
    • Handling Exceptions
    • Performing Actions as Different Users
    • Run Context
    • Validating Flow Definitions
  • Authoring Input Schemas
  • Authentication and Authorization
  • Consents and Resuming Runs
  • Permissions
  • Limits
  • Hosted Action Providers
    • Hello World
    • Globus Search - Ingest Task
    • Globus Search - Delete Task
    • Send Notification Email
    • Wait For User Selection
    • Expression Evaluation
    • DataCite Mint
    • Transfer APs
    • Compute AP
  • Example Flows
    • Simple Transfer
    • Move (copy and delete) files
    • Transfer and Share Files
    • Two Stage Globus Transfer
    • Transfer After Approval
    • Looping Batched Move
    • Tar and Transfer with Globus Compute
Skip to main content
Globus Docs
  • APIs
    Auth Flows Groups Search Timers Transfer Globus Connect Server Compute Helper Pages
  • Applications
    Globus Connect Personal Globus Connect Server Premium Storage Connectors Compute Command Line Interface Python SDK JavaScript SDK
  • Guides
  • Support
    FAQs Mailing Lists Contact Us Check Support Tickets
  1. Home
  2. Globus Services
  3. Globus Flows
  4. Authoring Flows
  5. Introduction

Introduction

Globus Flows provides the ability to define flows: compositions of discrete tasks called actions (e.g., API requests, conditional branching, etc.) that can be invoked as a single, logical operation. Flow definitions are finite state machines written in JSON. A definition must contain two fields:

  • States

  • StartAt

and optionally may contain a Comment.

StartAt is a string, and must match one of the keys in States. States is an object whose keys are state names and whose values are states, each of one of the types documented here.

Terminology: Runs, Flows, and States

A flow is a state machine, declared as a network of states with transitions between them. Each state performs a task of some kind and describes how to transition to the next state.

Every execution of a flow is called a run.

A run refers to a flow for its definition, but it also has

  • a current state — flows are abstract definitions, but runs are concrete

  • a data payload which is passed between states

Data Within Runs

Runs manage a data payload which is passed from each state to the next.

By default, the output of each state is written to the current payload, but this can be manipulated by setting a ResultPath which defines where in the payload the data should be stored.

Data is referred to using JSONPath notation in flow definitions, and evaluated by runs against the current data.

State Types

The following state types are supported:

  • Action

  • ExpressionEval

  • Choice

  • Wait

  • Fail

  • Pass

  • Globus Flows
  • Overview
  • Getting Started
    • How to Run a Flow
    • How to Monitor a Flow Run
    • How to Create a Flow
  • Authoring Flows
    • Introduction
    • Actions
    • Expressions
    • Choice States
    • Wait States
    • Fail States
    • Pass States
    • Protecting Secrets
    • Handling Exceptions
    • Performing Actions as Different Users
    • Run Context
    • Validating Flow Definitions
  • Authoring Input Schemas
  • Authentication and Authorization
  • Consents and Resuming Runs
  • Permissions
  • Limits
  • Hosted Action Providers
    • Hello World
    • Globus Search - Ingest Task
    • Globus Search - Delete Task
    • Send Notification Email
    • Wait For User Selection
    • Expression Evaluation
    • DataCite Mint
    • Transfer APs
    • Compute AP
  • Example Flows
    • Simple Transfer
    • Move (copy and delete) files
    • Transfer and Share Files
    • Two Stage Globus Transfer
    • Transfer After Approval
    • Looping Batched Move
    • Tar and Transfer with Globus Compute
© 2010- The University of Chicago Legal Privacy Accessibility