Skip to main content
Every workflow has exactly one input node. It’s the source of the run-context input.* object.

Configuration

{
  "id": "in-1",
  "type": "input",
  "data": {
    "label": "Applicant Form Submitted",
    "triggerType": "webhook",
    "description": "What triggers this workflow.",
    "schema": [
      {
        "name": "applicant_id",
        "type": "string",
        "required": true,
        "nullable": false,
      },
      {
        "name": "declared_country",
        "type": "string",
        "required": true,
        "nullable": false,
        "description": "ISO 3166-1 alpha-2",
      },
      {
        "name": "declared_address",
        "type": "object",
        "required": true,
        "nullable": false,
        "description": "{ street, city, state, postal_code, country }",
      },
    ],
  },
}

Schema validation

The schema is enforced at ingest. Required fields missing → 422 with a structured error. Type mismatches → same.
TypeNotes
string, integer, number, boolean, date, datetimeStandard JSON-Schema-ish primitives.
objectFree-form sub-object. Use description to document its shape.
arrayFree-form list.
enumWhen enumValues is set — enumValues: ["deposit", "withdrawal"].
required: true means absent is an error; nullable: false means explicit null is an error. Both apply independently.