Flows API
  • Globus Flows
  • Overview
  • Getting Started
    • How to Run a Flow
    • How to Monitor a Flow Run
    • How to Create a Flow
    • How to Manage High Assurance Flows
  • Authoring Flows
    • Introduction
    • Actions
    • Expressions
    • Choice States
    • Wait States
    • CreateWebInput States
    • AwaitWebInput States
    • Fail States
    • Pass States
    • Protecting Secrets
    • Handling Exceptions
    • Performing Actions as Different Users
    • Run Context
    • Validating Flow Definitions
    • High Assurance Flows
  • Authoring Input Schemas
  • Registered APIs
    • Feature Overview
    • Tutorials
    • Explanations
    • How-tos
    • Reference
    • The Globus Registered API CLI
  • Web Inputs
    • Feature Overview
    • Controlling Access
    • Notifying Respondents
    • Responding
  • Authentication and Authorization
  • Consents and Resuming Runs
  • Permissions
  • Limits
  • Hosted Registered APIs
    • Usage notes
    • Globus Groups Registered APIs
    • Globus Search Registered APIs
  • 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
  • Getting Started
    Getting Started

    Getting Started and Tutorial docs cover how to perform some activity or provide an introduction to a feature. They are not comprehensive, but help you get started with Globus or with new Globus features.

    • Users
    • Admins
    • Developers
  • Reference
    Reference
    • Service
      • Auth
      • Groups
      • Transfer
      • Timers
      • Flows
      • Compute
      • Search
    • Agents
      • Globus Connect Server
      • GCS CLI
      • Globus Connect Personal
      • Globus Compute
    • SDK
      • Python
      • JavaScript/TypeScript
    • Clients
      • CLI
    • Security and Compliance
      • Product Security
      • Privacy
      • Solutions for Sensitive Data
      • FAQs
  • Solutions & Guides
    Solutions & Guides

    Find practical approaches for leveraging Globus in research environments, integrating with platforms, and building science gateways. Access hands-on guides, integration instructions, and real-world scenarios for advanced usage.

    • Portals/Science Gateways
    • Guides
  • Support
    Support

    Find answers to frequently asked questions, connect with the community by joining our mailing lists, or reach out directly to Globus support.

    • FAQs
    • Mailing Lists
    • Contact Us
    • Check Support Tickets
  • Site Search
  1. Home
  2. Globus Services
  3. Globus Flows
  4. Web Inputs
  5. Notifying Respondents

Notifying Respondents

Since web inputs are created by a user and typically request a response from a different user, flows does not email respondents itself notifying them that web inputs are awaiting their response (to avoid undesirable and unsolicited email blasts from globus).

This page demonstrates how a flow author could implement custom automatic email notifications using their own email credentials alongside the builtin web input functionality.

Example Flow

The following flow will create a web input, notify its respondent using SMTP credentials, then wait for a response.

This flow assumes a Globus group of approving sysadmins exists with UUID aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee and can be reached at sysadmins@university.edu. It holds placeholder values for a false SMTP server at smtp.university.edu with sending email automations@university.edu.

To use this yourself, replace these values with your own valid ones. See Action Provider: Send Notification Email for more specifics on using the notify action provider.

{
  "StartAt": "CreateApprovalRequest",
  "States": {
    "CreateApprovalRequest": {
      "Comment": "Create a web input.",
      "Type": "CreateWebInput",
      "Parameters": {
        "InputType": "Selection",
        "Options": [
          {
            "Value": "approve",
            "Label": "Approve"
          },
          {
            "Value": "deny",
            "Label": "Deny"
          }
        ],
        "Context": {
          "Title": "Approval Required",
          "PresentationStyle": "Text",
          "Text": "A flow run requires your approval before it can continue."
        },
        "RespondentUrns": [
          "urn:globus:groups:id:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
        ]
      },
      "ResultPath": "$.create_result",
      "Next": "NotifyRespondents"
    },
    "NotifyRespondents": {
      "Comment": "Email respondents, notifying them of an awaiting response.",
      "Type": "Action",
      "ActionUrl": "https://actions.globus.org/notification/notify",
      "Parameters": {
        "body_mimetype": "text/plain",
        "body.=": "'A flow run requires your approval.\n\nVisit the Globus Web App at https://app.globus.org/flows/web-inputs/' + $.create_result.web_input_id + ' to respond.'",
        "destination": "sysadmins@university.edu",
        "subject": "Action required: flow run awaiting your approval",
        "sender": "automations@university.edu",
        "__Private_Parameters": [
          "send_credentials"
        ],
        "send_credentials": [
          {
            "credential_type": "smtp",
            "credential_value": {
              "hostname": "smtp.university.edu",
              "username": "email@.university.edu",
              "password": "password_or_api_key",
              "port": 587
            }
          }
        ]
      },
      "ResultPath": "$.notify_result",
      "Next": "WaitForApproval"
    },
    "WaitForApproval": {
      "Comment": "Wait for a response to the web input.",
      "Type": "AwaitWebInput",
      "Parameters": {
        "WebInputId.$": "$.create_result.web_input_id"
      },
      "ResultPath": "$.await_result",
      "End": true
    }
  }
}
  • Globus Flows
  • Overview
  • Getting Started
    • How to Run a Flow
    • How to Monitor a Flow Run
    • How to Create a Flow
    • How to Manage High Assurance Flows
  • Authoring Flows
    • Introduction
    • Actions
    • Expressions
    • Choice States
    • Wait States
    • CreateWebInput States
    • AwaitWebInput States
    • Fail States
    • Pass States
    • Protecting Secrets
    • Handling Exceptions
    • Performing Actions as Different Users
    • Run Context
    • Validating Flow Definitions
    • High Assurance Flows
  • Authoring Input Schemas
  • Registered APIs
    • Feature Overview
    • Tutorials
    • Explanations
    • How-tos
    • Reference
    • The Globus Registered API CLI
  • Web Inputs
    • Feature Overview
    • Controlling Access
    • Notifying Respondents
    • Responding
  • Authentication and Authorization
  • Consents and Resuming Runs
  • Permissions
  • Limits
  • Hosted Registered APIs
    • Usage notes
    • Globus Groups Registered APIs
    • Globus Search Registered APIs
  • 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