Skip to content

Flow Definition Reference

This page documents the YAML schema for Flow definitions used with the Flows TF Provider.

Flowยป

The root object for a flow definition.

Syntaxยป

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
appInstallations:
  Key: AppInstallation
dataTables:
  Key: DataTable
agentPools:
  Key: AgentPool
blocks:
  - Block
notes:
  - Note

Propertiesยป

appInstallationsยป

Type: Map of String to AppInstallation

App installations used by blocks in this flow. Keys are references used by app blocks.

dataTablesยป

Type: Map of String to DataTable

Data tables used by blocks in this flow. Keys are references used by Data Table blocks.

agentPoolsยป

Type: Map of String to AgentPool

Agent pools used by HTTP Request blocks. Keys are local references used by block configs. Each entry identifies a pool by its name or agent pool ID.

blocksยป

Type: Array of Block

List of blocks in the flow.

notesยป

Type: Array of Note

Sticky notes on the canvas.


Blockยป

A block in the flow.

Syntaxยป

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
name: String
description: String
alternativeLookupStrategy: BlockLookupStrategy
type: BlockType
position: Position
config: BlockConfig
inputs: BlockInputs
outputs: BlockOutputs
errorHandler: String
dynamicOutputKeys:
  - String
group: String

Propertiesยป

nameยป

Type: String

The name of the block. Unique within the flow.

descriptionยป

Type: String

Optional description of what this block does.

alternativeLookupStrategyยป

Type: BlockLookupStrategy

Alternative strategy for looking up an existing block (useful when renaming blocks).

typeยป

Type: BlockType

Block type specification. Either a core block or an app block.

positionยป

Type: Position

Canvas position as [x, y] coordinates.

configยป

Type: One of: HTTPEndpointBlockConfig (for httpEndpoint), ScheduleBlockConfig (for schedule), MCPToolBlockConfig (for mcpTool), AppBlockConfig (for app blocks), SpaceliftBlockConfig (for spacelift), DataTableCreateRowConfig (for dataTableCreateRow), DataTableGetRowConfig (for dataTableGetRow), DataTableUpdateRowConfig (for dataTableUpdateRow), DataTableQueryRowsConfig (for dataTableQueryRows), DataTableDeleteRowConfig (for dataTableDeleteRow), DataTableSetRowAssignedUsersConfig (for dataTableShareRow)

Block-specific configuration. Structure depends on the block type.

inputsยป

Type: One of: CoreBlockInputs (for core blocks), AppBlockInputs (for app blocks), SpaceliftBlockInputs (for spacelift), ConcurrencyGroupBlockInputs (for concurrencyGroup), GroupBlockIOConfig (for group blocks)

Input connections and configuration.

outputsยป

Type: One of: CustomizableBlockOutput (for most blocks), GroupBlockIOConfig (for group blocks)

Output configuration and customization.

errorHandlerยป

Type: String

Name of the block to receive error events.

dynamicOutputKeysยป

Type: Array of String

Output keys to pre-create for blocks with dynamically managed outputs.

groupยป

Type: String

Name of the group this block belongs to.


Noteยป

A sticky note on the canvas.

Syntaxยป

1
2
3
4
body: String
position: Position
style: NoteStyleMetadata
alternativeLookupStrategy: NoteLookupStrategy

Propertiesยป

bodyยป

Type: String

Markdown content of the note.

positionยป

Type: Position

Canvas position as [x, y] coordinates.

styleยป

Type: NoteStyleMetadata

Visual style settings for the note.

alternativeLookupStrategyยป

Type: NoteLookupStrategy

Alternative strategy for looking up an existing note.


AppInstallationยป

Describes an app installation referenced by blocks.

Syntaxยป

1
2
3
appName: String
appVersion: String
id: String

Propertiesยป

appNameยป

Type: String

The name of the app.

appVersionยป

Type: String

Version of the app.

idยป

Type: String (UUID)

Installation ID (UUID format).


Expressionยป

Expressions are values or JavaScript code snippets that are evaluated at runtime.

You can use a raw value, as simple as this:

1
body: 'Hello, World!'

To use a dynamic expression, prefix with !expr:

1
2
3
body: !expr '`Hello, ${outputs.endpoint.params.name}`'
condition: !expr outputs.check.value > 10
delay: !expr 5 + outputs.config.extraDelay

Expressions have access to:

  • outputs: Values from connected block outputs (e.g., outputs.myBlock.someField)
  • config: Block configuration values
  • event (for input config fields): The current event being processed
  • Standard JavaScript operators and functions

DataTableยป

Describes a data table referenced by blocks.

Syntaxยป

1
2
3
id: String
name: String
schema: DataTableSchema

Propertiesยป

idยป

Type: String (UUID)

Data table ID (UUID format).

nameยป

Type: String

The name of the data table.

schemaยป

Type: DataTableSchema

Schema of the data table.


DataTableSchemaยป

The columns a data table holds.

Syntaxยป

1
2
columns:
  - DataTableSchemaColumn

Propertiesยป

columnsยป

Type: Array of DataTableSchemaColumn

List of columns in the data table.


DataTableSchemaColumnยป

A single data table column.

Syntaxยป

1
2
3
name: String
type: String
dataTableRef: String

Propertiesยป

nameยป

Type: String

The name of the column.

typeยป

Type: String (string, integer, float, boolean, datetime, json, row_ref)

The type of the column. One of string, integer, boolean, datetime, json, float, object, row_ref.

dataTableRefยป

Type: String

The slug of the data table this column references.


AgentPoolยป

Identifies an agent pool by name or ID, for blocks that run through a private agent pool.

Syntaxยป

1
2
name: String
id: String

Propertiesยป

nameยป

Type: String

The name of the agent pool.

idยป

Type: String (UUID)

Agent pool ID (UUID format). If both id and name are provided, id takes precedence.


BlockTypeยป

Specifies whether the block is a core block or an app block. Exactly one must be set.

Syntaxยป

1
2
3
appBlock: AppBlockType
coreBlock: String
kind: String

Propertiesยป

appBlockยป

Type: AppBlockType

App block type specification.

coreBlockยป

Type: String (condition, sleep, transform, httpRequest, explode, collect, memorySet, memoryGet, memoryList, schedule, httpEndpoint, mcpTool, handleError, group, dataTableCreateRow, dataTableUpdateRow, dataTableGetRow, dataTableQueryRows, dataTableDeleteRow, dataTableShareRow, formOpened, showForm, concurrencyGroup, spacelift)

Core block type name.

kindยป

Type: String

Sub-block of a core block family (required for coreBlock: spacelift, e.g. triggerRun).


AppBlockTypeยป

Specification for an app block.

Syntaxยป

1
2
3
block: String
appInstallation: String
schema: AppBlockSchema

Propertiesยป

blockยป

Type: String

The block type name within the app.

appInstallationยป

Type: String

Reference to an app installation key defined in appInstallations.

schemaยป

Type: Object (app block schema)

Inline block schema (typically not used when appInstallation is set). Filled out automatically when exporting flows.


HTTPEndpointBlockConfigยป

Configuration for HTTP Endpoint blocks.

Syntaxยป

1
2
3
4
path: String
methods:
  - String
audience: String

Propertiesยป

pathยป

Type: String

URL path pattern. Can include parameters like /hello/{name}.

methodsยป

Type: Array of String

HTTP methods to accept (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS).

audienceยป

Type: String (world, organization, project)

Who can access this endpoint. Values: world, organization, project.


ScheduleBlockConfigยป

Configuration for Schedule blocks.

Syntaxยป

1
definition: ScheduleDefinition

Propertiesยป

definitionยป

Type: ScheduleDefinition

Schedule definition (cron or frequency-based).


MCPToolBlockConfigยป

Configuration for MCP Tool blocks.

Syntaxยป

1
inputSchema: MCPToolInputSchema

Propertiesยป

inputSchemaยป

Type: MCPToolInputSchema

JSON Schema defining the tool's input parameters.


AppBlockConfigยป

Configuration for app blocks.

Type: Map of String to Expression


DataTableCreateRowConfigยป

Configuration for Data Table Create Row blocks.

Syntaxยป

1
table: String

Propertiesยป

tableยป

Type: String

Reference to a data table key defined in dataTables.


DataTableGetRowConfigยป

Configuration for Data Table Get Row blocks.

Syntaxยป

1
table: String

Propertiesยป

tableยป

Type: String

Reference to a data table key defined in dataTables.


DataTableUpdateRowConfigยป

Configuration for Data Table Update Row blocks.

Syntaxยป

1
table: String

Propertiesยป

tableยป

Type: String

Reference to a data table key defined in dataTables.


DataTableQueryRowsConfigยป

Configuration for Data Table Query Rows blocks.

Syntaxยป

1
2
table: String
limit: Integer

Propertiesยป

tableยป

Type: String

Reference to a data table key defined in dataTables.

limitยป

Type: Number

Maximum number of rows to return.


DataTableDeleteRowConfigยป

Configuration for Data Table Delete Row blocks.

Syntaxยป

1
table: String

Propertiesยป

tableยป

Type: String

Reference to a data table key defined in dataTables.


DataTableSetRowAssignedUsersConfigยป

Configuration for Data Table Share Row blocks.

Syntaxยป

1
table: String

Propertiesยป

tableยป

Type: String

Reference to a data table key defined in dataTables.


CoreBlockInputsยป

Input configuration for core blocks.

Syntaxยป

1
default: CoreBlockInput

Propertiesยป

defaultยป

Type: CoreBlockInput

The default input.


CoreBlockInputยป

A single input with links and configuration.

Syntaxยป

1
2
3
links:
  - BlockIOLink
config: Object

Propertiesยป

Type: Array of BlockIOLink

Connections from other block outputs.

configยป

Type: One of: ConditionBlockInputConfig (for condition), SleepBlockInputConfig (for sleep), TransformBlockInputConfig (for transform), HTTPRequestBlockInputConfig (for httpRequest), HTTPEndpointBlockInputConfig (for httpEndpoint), ExplodeBlockInputConfig (for explode), CollectBlockInputConfig (for collect), MemorySetBlockInputConfig (for memorySet), MemoryGetBlockInputConfig (for memoryGet), MemoryListBlockInputConfig (for memoryList), MCPToolBlockInputConfig (for mcpTool), ConcurrencyGroupBlockInputConfig (for concurrencyGroup), DataTableCreateRowInputConfig (for dataTableCreateRow), DataTableGetRowInputConfig (for dataTableGetRow), DataTableUpdateRowInputConfig (for dataTableUpdateRow), DataTableQueryRowsInputConfig (for dataTableQueryRows), DataTableDeleteRowInputConfig (for dataTableDeleteRow), DataTableSetRowAssignedUsersInputConfig (for dataTableShareRow)

Input-specific configuration. Structure depends on the block type.


AppBlockInputsยป

Input configuration for app blocks.

Type: Map of String to AppBlockInput


AppBlockInputยป

A single app block input with links and configuration.

Syntaxยป

1
2
3
4
links:
  - BlockIOLink
config:
  Key: Expression

Propertiesยป

Type: Array of BlockIOLink

Connections from other block outputs.

configยป

Type: Map of String to Expression

Input-specific configuration expressions.


SpaceliftBlockConfigยป

Block-level configuration for Spacelift blocks, resolved once when saved rather than per event.

Type: Map of String to Expression


SpaceliftBlockInputsยป

Input configuration for Spacelift blocks, keyed by socket name.

Type: Map of String to SpaceliftBlockInput


SpaceliftBlockInputยป

A single Spacelift input socket, with links and the configuration the block's kind declares on it.

Syntaxยป

1
2
3
4
links:
  - BlockIOLink
config:
  Key: Expression

Propertiesยป

Type: Array of BlockIOLink

Connections from other block outputs.

configยป

Type: Map of String to Expression

Input-specific configuration expressions.


ConcurrencyGroupBlockInputsยป

Input configuration for Concurrency Group blocks, which take events on two sockets.

Syntaxยป

1
2
acquire: CoreBlockInput
release: CoreBlockInput

Propertiesยป

acquireยป

Type: CoreBlockInput

Events to queue in the concurrency group.

releaseยป

Type: CoreBlockInput

Release input to mark the active item as processed.


GroupBlockIOConfigยป

Input/output configuration for Group blocks.

Type: Map of String to GroupBlockIOLinks


Configuration for a single group input/output socket.

Syntaxยป

1
2
3
4
5
6
name: String
links:
  - BlockIOLink
outputCustomization: Expression
sensitivePaths:
  - String

Propertiesยป

nameยป

Type: String

Name of the socket.

Type: Array of BlockIOLink

Connections for this socket.

outputCustomizationยป

Type: Expression

Expression to transform the output value.

sensitivePathsยป

Type: Array of String

JSONPath expressions marking sensitive parts of the output.


ConditionBlockInputConfigยป

Input configuration for Condition blocks.

Syntaxยป

1
condition: Expression

Propertiesยป

conditionยป

Type: Expression

JavaScript expression that evaluates to a boolean.


SleepBlockInputConfigยป

Input configuration for Sleep blocks.

Syntaxยป

1
sleep: Expression

Propertiesยป

sleepยป

Type: Expression

Duration to sleep in seconds.


TransformBlockInputConfigยป

Input configuration for Transform blocks.


HTTPRequestBlockInputConfigยป

Input configuration for HTTP Request blocks.

Syntaxยป

1
2
3
4
5
6
url: Expression
method: String
body: Expression
headers:
  Key: Expression
agentPool: String

Propertiesยป

urlยป

Type: Expression

The URL to send the request to.

methodยป

Type: String

HTTP method (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS).

bodyยป

Type: Expression

Request body expression.

headersยป

Type: Map of String to Expression

HTTP headers as key-value expressions.

agentPoolยป

Type: String

Reference to an agent pool key defined in agentPools.


HTTPEndpointBlockInputConfigยป

Input configuration for HTTP Endpoint blocks (response configuration).

Syntaxยป

1
2
3
4
statusCode: Expression
body: Expression
headers:
  Key: Expression

Propertiesยป

statusCodeยป

Type: Expression

HTTP response status code.

bodyยป

Type: Expression

Response body expression.

headersยป

Type: Map of String to Expression

Response headers as key-value expressions.


ExplodeBlockInputConfigยป

Input configuration for Explode blocks.

Syntaxยป

1
2
items: Expression
emittedLimit: Integer

Propertiesยป

itemsยป

Type: Expression

Expression that evaluates to an array to explode into individual events.

emittedLimitยป

Type: Number

Maximum number of items to emit. Maximum of 1024.


CollectBlockInputConfigยป

Input configuration for Collect blocks.

Syntaxยป

1
2
3
4
5
group: Expression
count: Expression
emit: Expression
item: Expression
delay: Integer

Propertiesยป

groupยป

Type: Expression

Expression to group items by.

countยป

Type: Expression

Trigger based on number of items to collect before emitting.

emitยป

Type: Expression

Customized trigger to decide if the group is ready to be emitted.

itemยป

Type: Expression

Expression to extract the item value from each input event.

delayยป

Type: Number

Trigger based on delay in seconds before emitting after last item received.


MemorySetBlockInputConfigยป

Input configuration for Memory Set blocks.

Syntaxยป

1
2
3
4
key: Expression
collection: String
value: Expression
ttl: Expression

Propertiesยป

keyยป

Type: Expression

Key to store the value under.

collectionยป

Type: String

Collection name for organizing keys.

valueยป

Type: Expression

Value to store.

ttlยป

Type: Expression

Time-to-live in seconds (optional).


MemoryGetBlockInputConfigยป

Input configuration for Memory Get blocks.

Syntaxยป

1
2
key: Expression
collection: String

Propertiesยป

keyยป

Type: Expression

Key to retrieve the value for.

collectionยป

Type: String

Collection name for organizing keys.


MemoryListBlockInputConfigยป

Input configuration for Memory List blocks.

Syntaxยป

1
2
3
collection: String
limit: Expression
startingKey: Expression

Propertiesยป

collectionยป

Type: String

Collection name to list keys from.

limitยป

Type: Expression

Maximum number of keys to return. Maximum of 100.

startingKeyยป

Type: Expression

Key to start listing from (for pagination).


MCPToolBlockInputConfigยป

Input configuration for MCP Tool blocks (response configuration).

Syntaxยป

1
responseBody: Expression

Propertiesยป

responseBodyยป

Type: Expression

Expression for the MCP Tool response body.


ConcurrencyGroupBlockInputConfigยป

Input configuration for a Concurrency Group block's sockets.

Syntaxยป

1
2
groupKey: Expression
itemKey: Expression

Propertiesยป

groupKeyยป

Type: Expression

Expression to compute the group key. Null means all events share one group.

itemKeyยป

Type: Expression

Expression to compute the item key. Used to match releases to active items.


DataTableCreateRowInputConfigยป

Input configuration for Data Table Create Row blocks.

Syntaxยป

1
2
row: Expression
ttl: Expression

Propertiesยป

rowยป

Type: Expression

Row object to be added to the table.

ttlยป

Type: Expression

Time to live in seconds. The row will expire after this duration.


DataTableGetRowInputConfigยป

Input configuration for Data Table Get Row blocks.

Syntaxยป

1
rowID: Expression

Propertiesยป

rowIDยป

Type: Expression

Expression for the row ID to retrieve.


DataTableUpdateRowInputConfigยป

Input configuration for Data Table Update Row blocks.

Syntaxยป

1
2
3
rowID: Expression
row: Expression
ttl: Expression

Propertiesยป

rowIDยป

Type: Expression

Expression for the row ID to update.

rowยป

Type: Expression

Row object with updated fields.

ttlยป

Type: Expression

Time to live in seconds. The row will expire after this duration.


DataTableQueryRowsInputConfigยป

Input configuration for Data Table Query Rows blocks.

Syntaxยป

1
2
3
filter: Expression
queryOrders: Expression
continuationToken: Expression

Propertiesยป

filterยป

Type: Expression

Expression for the query filter.

queryOrdersยป

Type: Expression

Expression for the query sort orders.

continuationTokenยป

Type: Expression

Continuation token for paginated queries.


DataTableDeleteRowInputConfigยป

Input configuration for Data Table Delete Row blocks.

Syntaxยป

1
rowIDs: Expression

Propertiesยป

rowIDsยป

Type: Expression

Expression for the row IDs to delete.


DataTableSetRowAssignedUsersInputConfigยป

Input configuration for Data Table Share Row blocks.

Syntaxยป

1
2
rowID: Expression
assignees: Expression

Propertiesยป

rowIDยป

Type: Expression

Expression for the row ID to assign users to.

assigneesยป

Type: Expression

Expression for user emails to assign. Can use 'stored' variable.


CustomizableBlockOutputยป

Output configuration for blocks that support output customization.

Type: Map of String to CoreBlockOutput


CoreBlockOutputยป

Configuration for a single block output.

Syntaxยป

1
2
3
outputCustomization: Expression
sensitivePaths:
  - String

Propertiesยป

outputCustomizationยป

Type: Expression

Expression to transform the output value.

sensitivePathsยป

Type: Array of String

JSONPath expressions marking sensitive parts of the output.


A connection from another block's output.

Syntaxยป

1
2
block: String
output: String

Propertiesยป

blockยป

Type: String

Name of the source block.

outputยป

Type: String

Name of the output on the source block.


BlockLookupStrategyยป

Strategy for looking up an existing block (useful when renaming).

Syntaxยป

1
2
id: String
name: String

Propertiesยป

idยป

Type: String (UUID)

Block ID to look up directly.

nameยป

Type: String

Previous block name to look up by.


NoteLookupStrategyยป

Strategy for looking up an existing note.

Syntaxยป

1
id: String

Propertiesยป

idยป

Type: String (UUID)

Note ID to look up directly.


Positionยป

Canvas position as [x, y] coordinates.

Syntaxยป

1
2
x: Number
y: Number

Propertiesยป

xยป

Type: Number

Horizontal coordinate of the position.

yยป

Type: Number

Vertical coordinate of the position.


ScheduleDefinitionยป

Schedule definition. Either cron-based or frequency-based.

Syntaxยป

1
2
3
type: String
cron: ScheduleDefinitionCron
frequency: ScheduleDefinitionFrequency

Propertiesยป

typeยป

Type: String (cron, frequency)

Type of the schedule definition.

cronยป

Type: ScheduleDefinitionCron

Cron schedule definition. Required when type is 'cron'.

frequencyยป

Type: ScheduleDefinitionFrequency

Frequency schedule definition. Required when type is 'frequency'.


ScheduleDefinitionCronยป

Cron-based schedule configuration.

Syntaxยป

1
2
expression: String
location: String

Propertiesยป

expressionยป

Type: String

Cron expression defining the schedule.

locationยป

Type: String

IANA time zone name defining the schedule's time zone, e.g., 'America/Los_Angeles'. Defaults to 'UTC'.


ScheduleDefinitionFrequencyยป

Frequency-based schedule configuration.

Syntaxยป

1
2
interval: Integer
unit: String

Propertiesยป

intervalยป

Type: Number

Interval between scheduled runs, in the given unit.

unitยป

Type: String (seconds, minutes, hours)

Unit of time for the interval; defaults to 'seconds'.


NoteStyleMetadataยป

Visual style settings for notes.

Syntaxยป

1
2
3
width: Integer
height: Integer
color: String

Propertiesยป

widthยป

Type: Number

Width of the note.

heightยป

Type: Number

Height of the note.

colorยป

Type: String

Color of the note, in hex format (e.g. #18181b).


MCPToolInputSchemaยป

Input schema for MCP tools. Maps parameter names to their definitions.

Type: Map of String to MCPToolInputProperty


MCPToolInputPropertyยป

Definition of a single MCP tool input parameter.

Syntaxยป

1
2
required: Boolean
type: Object

Propertiesยป

requiredยป

Type: Boolean

Whether this input is required.

typeยป

Type: Object (JSON Schema)

The JSON schema document defining this input.