Skip to content

YAML Schema

Complete reference for the letitflow-sn YAML flow definition format.

Root Fields

FieldTypeRequiredDefaultDescription
schemastringNonebulaSchema version codename. See Schema Versions.
sys_idstringNoFlow sys_id (32-char hex). Set by --export --with-uuid. Required for --update.
namestringYesFlow display name.
typestringNoflowflow or subflow.
statusstringNodraftdraft or published.
descriptionstringNoHTML description (same as in Flow Designer).
run_asstringNosystemsystem or user.
accessstringNopublicpublic or package_private.
prioritystringNoHIGH or MEDIUM.
activebooleanNotrueWhether the flow is active.
scopestringNoApplication scope sys_id.
triggerobjectFlowsTrigger definition. Required for type: flow.
inputslistNoSubflow input parameters. See Variables.
outputslistNoSubflow output parameters.
variableslistNoScratch variables.
stageslistNoService Catalog stages. See Stages.
stepslistYesFlow steps. See Step Types.
_metadataobjectNoInternal identity data (generated by --export --with-uuid). Do not edit.

Minimal Example

yaml
schema: nebula
name: Hello World Flow
type: flow
trigger:
  type: record_created
  table: incident
steps:
  - action: log
    inputs:
      message: "A new incident was created: $trigger.current.number"

Full Example

yaml
schema: nebula
name: Incident Auto-Assignment
type: flow
status: draft
description: Assigns new P1 incidents to the on-call group.
run_as: system
access: public
priority: HIGH

trigger:
  type: record_created
  table: incident

variables:
  - name: assigned_group
    type: string

steps:
  - action: lookup_record
    id: find_group
    name: Find On-Call Group
    inputs:
      table: sys_user_group
      conditions: "name=On-Call Support"

  - if: "$trigger.current.priority = 1"
    then:
      - action: update_record
        name: Assign to On-Call
        inputs:
          table: incident
          values:
            assignment_group: $find_group.record.sys_id
      - action: send_email
        inputs:
          to: $find_group.record.email
          subject: "P1: $trigger.current.short_description"
          body: "A new P1 incident requires attention."
    else:
      - action: log
        inputs:
          message: "Non-P1 incident, no auto-assignment."

Variables

Inputs, outputs, and variables share the same format:

FieldTypeRequiredDescription
namestringYesElement name. Must match ^[a-z][a-z0-9_]*$.
labelstringNoDisplay label.
typestringNoData type (see below).
mandatorybooleanNoWhether the field is required.
defaultstringNoDefault value.
referencestringNoReference table name (for type: reference).
max_lengthintegerNoMaximum string length.
arraybooleanNoWhether this is an array variable.
helpstringNoHelp text.
hintstringNoPlaceholder hint.

Variable Types

string, integer, boolean, decimal, float, reference, table_name, glide_date_time, glide_date, html, journal, journal_input, url, email, phone_number, script, conditions, document_id, choice, currency, price, sys_class_name, translated_text, ip_addr

Subflow Example

yaml
schema: nebula
name: Send Notification
type: subflow
inputs:
  - name: recipient
    type: reference
    reference: sys_user
    mandatory: true
  - name: message
    type: string
    mandatory: true
outputs:
  - name: success
    type: boolean
steps:
  - action: send_email
    inputs:
      to: $input.recipient.email
      subject: Notification
      body: $input.message
  - assign_outputs: "Set result"
    inputs:
      success: "true"