Workflow YAML Schema
Top-Level Properties
title
- Type:
string - Description: Display name shown in the Studio UI.
title: 'Meeting Notes Optimizer'description (optional)
- Type:
string - Description: Detailed explanation of the workflow’s purpose.
description: 'Transforms messy meeting notes into structured format using AI'ui (optional)
- Type: UI Schema object
- Description: Defines widgets rendered in the Studio interface.
UI Widgets
The ui.widgets array defines the interactive components shown to the user.
Form Widget
Renders workflow input fields as an editable form with optional action buttons.
ui:
widgets:
- widget: form
enabledWhen: [waiting]
options:
order: [name, description]
properties:
name:
title: Name
description:
title: Description
widget: textarea
actions:
- type: button
transition: submit
label: 'Submit'Form Options
| Property | Type | Description |
|---|---|---|
order | string[] | Display order of fields |
properties | object | Map of field names to UI configuration |
actions | array | Action buttons |
Action Properties
| Property | Type | Description |
|---|---|---|
type | string | Action type (e.g., button) |
transition | string | Method name of the wait: true transition to trigger |
label | string | Button label text |
position | number | Button position order (optional) |
Prompt-Input Widget
Chat-style text input field.
ui:
widgets:
- widget: prompt-input
enabledWhen: [waiting_for_user]
options:
transition: userMessage
label: Send Message| Property | Type | Description |
|---|---|---|
transition | string | Method name of the wait: true transition to trigger |
label | string | Input label text (optional) |
enabledWhen
Controls when a widget is visible based on the current workflow place:
- widget: form
enabledWhen:
- waiting
- editingThe widget is only shown when the workflow is at one of the listed places.
Complete Example
title: 'Chat Assistant'
description: 'Multi-turn chat with AI'
ui:
widgets:
- widget: form
options:
properties:
subject:
title: Subject
widget: select
enumOptions:
- coffee
- programming
- nature
- widget: prompt-input
enabledWhen:
- waiting_for_user
options:
transition: userMessage
label: Send a messageImportant Notes
- The
transitionvalue must match the method name of await: truetransition, not an arbitrary ID - If no
uisection is defined, the workflow runs without any interactive widgets
Last updated on