Skip to main content
The User Interaction node pauses workflow execution to request input from a human operator. This enables human-in-the-loop workflows for handling edge cases, approvals, or data that cannot be automated.

Parameters

ParameterTypeRequiredDescription
expected_datamodelobjectYesJSON Schema defining the data to collect from the user
server_messagestringNoMessage to display to the user explaining what input is needed. Supports variable interpolation
timeoutnumberNoMaximum time (ms) to wait for user response. Default: 10000 (10 seconds)
error_messagestringNoCustom error code to throw if interaction times out or fails

Examples

Basic User Input

Request a single piece of information:
{
  "id": "abc123",
  "name": "Get approval code",
  "action": "USER_INTERACTION",
  "parameters": {
    "server_message": "Please enter the approval code shown on your device",
    "expected_datamodel": {
      "type": "object",
      "properties": {
        "approval_code": {
          "type": "string",
          "description": "The 6-digit approval code"
        }
      },
      "required": ["approval_code"]
    },
    "timeout": 300000
  }
}

Using User Input in Subsequent Nodes

The user’s input is stored in the context and can be used in later nodes:
{
  "id": "def456",
  "name": "Enter verified amount",
  "action": "INPUT_TEXT",
  "parameters": {
    "execution": "STATIC",
    "selector": "//input[@id='amount']",
    "text": "{{context.verified_amount}}"
  }
}

Notes

  • User interactions trigger a webhook notification of event type interaction.waiting
  • Use timeout to prevent workflows from hanging indefinitely
  • The server_message supports variable interpolation to show context-specific instructions
  • For submitting user interaction data programmatically, see the Submit User Interaction Data API