Schema Overview
Every flowctl YAML file starts with schema: nebula and describes a single flow or subflow.
Root Fields
Section titled “Root Fields”| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
schema | string | No | nebula | Schema version. Unknown values produce a clear error. |
sys_id | string | No | — | 32-char hex. Set by --export --with-uuid. Required for --update. |
name | string | Yes | — | Flow display name. |
type | string | No | flow | flow or subflow. |
status | string | No | draft | draft or published. |
description | string | No | — | HTML description (same as Flow Designer). |
run_as | string | No | system | system or user. |
access | string | No | public | public or package_private. |
priority | string | No | — | HIGH or MEDIUM. |
active | boolean | No | true | Whether the flow is active. |
scope | string | No | — | Application scope sys_id. |
trigger | object | Flows | — | Required for type: flow. See Triggers. |
inputs | list | No | — | Subflow input parameters. See Variables. |
outputs | list | No | — | Subflow output parameters. |
variables | list | No | — | Scratch variables. |
stages | list | No | — | Service Catalog stages. See Stages. |
steps | list | Yes | — | Flow steps. See Step Types. |
_metadata | object | No | — | Generated by --export --with-uuid. Don’t edit. |
Minimal Flow
Section titled “Minimal Flow”schema: nebulaname: Hello World Flowtype: flowtrigger: type: record_created table: incidentsteps: - action: log inputs: message: "A new incident was created: $trigger.current.number"Full Example
Section titled “Full Example”schema: nebulaname: Incident Auto-Assignmenttype: flowstatus: draftdescription: Assigns new P1 incidents to the on-call group.run_as: systemaccess: publicpriority: 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
Section titled “Variables”Inputs, outputs, and variables share the same format:
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | Yes | Must match ^[a-z][a-z0-9_]*$. |
label | string | No | Display label. |
type | string | No | Data type (see below). |
mandatory | boolean | No | Required field. |
default | string | No | Default value. |
reference | string | No | Reference table name (for type: reference). |
max_length | integer | No | Maximum string length. |
array | boolean | No | Array variable. |
help | string | No | Help text. |
hint | string | No | Placeholder hint. |
Variable Types
Section titled “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
Section titled “Subflow Example”schema: nebulaname: Send Notificationtype: subflowinputs: - name: recipient type: reference reference: sys_user mandatory: true - name: message type: string mandatory: trueoutputs: - name: success type: booleansteps: - action: send_email inputs: to: $input.recipient.email subject: Notification body: $input.message - assign_outputs: "Set result" inputs: success: "true"Schema Versioning
Section titled “Schema Versioning”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.