Skip to content

Schema Overview

Every flowctl YAML file starts with schema: nebula and describes a single flow or subflow.

FieldTypeRequiredDefaultNotes
schemastringNonebulaSchema version. Unknown values produce a clear error.
sys_idstringNo32-char hex. Set by --export --with-uuid. Required for --update.
namestringYesFlow display name.
typestringNoflowflow or subflow.
statusstringNodraftdraft or published.
descriptionstringNoHTML description (same as Flow Designer).
run_asstringNosystemsystem or user.
accessstringNopublicpublic or package_private.
prioritystringNoHIGH or MEDIUM.
activebooleanNotrueWhether the flow is active.
scopestringNoApplication scope sys_id.
triggerobjectFlowsRequired for type: flow. See Triggers.
inputslistNoSubflow input parameters. See Variables.
outputslistNoSubflow output parameters.
variableslistNoScratch variables.
stageslistNoService Catalog stages. See Stages.
stepslistYesFlow steps. See Step Types.
_metadataobjectNoGenerated by --export --with-uuid. Don’t edit.
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"
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."

Inputs, outputs, and variables share the same format:

FieldTypeRequiredNotes
namestringYesMust match ^[a-z][a-z0-9_]*$.
labelstringNoDisplay label.
typestringNoData type (see below).
mandatorybooleanNoRequired field.
defaultstringNoDefault value.
referencestringNoReference table name (for type: reference).
max_lengthintegerNoMaximum string length.
arraybooleanNoArray variable.
helpstringNoHelp text.
hintstringNoPlaceholder hint.

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

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"

The schema field uses celestial codenames. The current version is nebula.

Files without a schema field are treated as nebula. If a file uses a version newer than your tool supports, you’ll see: unknown schema version "xyz"; upgrade flowctl.

When the format changes in a breaking way, a new version will be added with migration guidance.