Skip to content

Flow Definition Reference

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

The root object for a flow definition.

appInstallations:
Key: AppInstallation
blocks:
- Block
notes:
- Note

Type: Map of String to AppInstallation

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

Type: Array of Block

List of blocks in the flow.

Type: Array of Note

Sticky notes on the canvas.


A block in the flow.

name: String
description: String
alternativeLookupStrategy: BlockLookupStrategy
type: BlockType
position: Position
config: BlockConfig
inputs: BlockInputs
outputs: BlockOutputs
errorHandler: String
group: String

Type: String

The name of the block. Unique within the flow.

Type: String

Optional description of what this block does.

Type: BlockLookupStrategy

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

Type: BlockType

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

Type: Position

Canvas position as [x, y] coordinates.

Type: One of: HTTPEndpointBlockConfig (for httpEndpoint), ScheduleBlockConfig (for schedule), MCPToolBlockConfig (for mcpTool), AppBlockConfig (for app blocks)

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

Type: One of: CoreBlockInputs (for core blocks), AppBlockInputs (for app blocks), GroupBlockIOConfig (for group blocks)

Input connections and configuration.

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

Output configuration and customization.

Type: String

Name of the block to receive error events.

Type: String

Name of the group this block belongs to.


A sticky note on the canvas.

body: String
position: Position
style: NoteStyleMetadata
alternativeLookupStrategy: NoteLookupStrategy

Type: String

Markdown content of the note.

Type: Position

Canvas position as [x, y] coordinates.

Type: NoteStyleMetadata

Visual style settings for the note.

Type: NoteLookupStrategy

Alternative strategy for looking up an existing note.


Describes an app installation referenced by blocks.

appName: String
appVersion: String
id: String

Type: String

The name of the app.

Type: String

Version of the app.

Type: String (UUID)

Installation ID (UUID format).


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

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

body: 'Hello, World!'

To use a dynamic expression, prefix with !expr:

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

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

appBlock: AppBlockType
coreBlock: String

Type: AppBlockType

App block type specification.

Type: String (httpEndpoint, httpRequest, condition, sleep, transform, explode, collect, memorySet, memoryGet, memoryList, schedule, mcpTool, group)

Core block type name.


Specification for an app block.

block: String
appInstallation: String
schema: AppBlockSchema

Type: String

The block type name within the app.

Type: String

Reference to an app installation key defined in appInstallations.

Type: Object (app block schema)

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


Configuration for HTTP endpoint blocks.

path: String
methods:
- String
audience: String

Type: String

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

Type: Array of String

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

Type: String (world, organization, project)

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


Configuration for schedule blocks.

definition: ScheduleDefinition

Type: ScheduleDefinition

Schedule definition (cron or frequency-based).


Configuration for MCP tool blocks.

inputSchema: MCPToolInputSchema

Type: MCPToolInputSchema

JSON Schema defining the tool’s input parameters.


Configuration for app blocks.

Type: Map of String to Expression


Input configuration for core blocks.

default: CoreBlockInput

Type: CoreBlockInput

The default input.


A single input with links and configuration.

links:
- BlockIOLink
config: Object

Type: Array of BlockIOLink

Connections from other block outputs.

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)

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


Input configuration for app blocks.

Type: Map of String to AppBlockInput


A single app block input with links and configuration.

links:
- BlockIOLink
config:
Key: Expression

Type: Array of BlockIOLink

Connections from other block outputs.

Type: Map of String to Expression

Input-specific configuration expressions.


Input/output configuration for group blocks.

Type: Map of String to GroupBlockIOLinks


Configuration for a single group input/output socket.

name: String
links:
- BlockIOLink
outputCustomization: Expression

Type: String

Name of the socket.

Type: Array of BlockIOLink

Connections for this socket.

Type: Expression

Expression to transform the output value.


Input configuration for condition blocks.

condition: Expression

Type: Expression

JavaScript expression that evaluates to a boolean.


Input configuration for sleep blocks.

sleep: Expression

Type: Expression

Duration to sleep in seconds.


Input configuration for transform blocks.


Input configuration for HTTP request blocks.

url: Expression
method: String
body: Expression
headers:
Key: Expression

Type: Expression

The URL to send the request to.

Type: String

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

Type: Expression

Request body expression.

Type: Map of String to Expression

HTTP headers as key-value expressions.


Input configuration for HTTP endpoint blocks (response configuration).

statusCode: Expression
body: Expression
headers:
Key: Expression

Type: Expression

HTTP response status code.

Type: Expression

Response body expression.

Type: Map of String to Expression

Response headers as key-value expressions.


Input configuration for explode blocks.

items: Expression
emittedLimit: Integer

Type: Expression

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

Type: Number

Maximum number of items to emit. Maximum of 1024.


Input configuration for collect blocks.

group: Expression
count: Expression
emit: Expression
item: Expression
delay: Integer

Type: Expression

Expression to group items by.

Type: Expression

Trigger based on number of items to collect before emitting.

Type: Expression

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

Type: Expression

Expression to extract the item value from each input event.

Type: Number

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


Input configuration for memory set blocks.

key: Expression
collection: String
value: Expression
ttl: Expression

Type: Expression

Key to store the value under.

Type: String

Collection name for organizing keys.

Type: Expression

Value to store.

Type: Expression

Time-to-live in seconds (optional).


Input configuration for memory get blocks.

key: Expression
collection: String

Type: Expression

Key to retrieve the value for.

Type: String

Collection name for organizing keys.


Input configuration for memory list blocks.

collection: String
limit: Expression
startingKey: Expression

Type: String

Collection name to list keys from.

Type: Expression

Maximum number of keys to return. Maximum of 100.

Type: Expression

Key to start listing from (for pagination).


Input configuration for MCP tool blocks (response configuration).

responseBody: Expression

Type: Expression

Expression for the MCP tool response body.


Output configuration for blocks that support output customization.

Type: Map of String to CoreBlockOutput


Configuration for a single block output.

outputCustomization: Expression

Type: Expression

Expression to transform the output value.


A connection from another block’s output.

block: String
output: String

Type: String

Name of the source block.

Type: String

Name of the output on the source block.


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

id: String
name: String

Type: String (UUID)

Block ID to look up directly.

Type: String

Previous block name to look up by.


Strategy for looking up an existing note.

id: String

Type: String (UUID)

Note ID to look up directly.


Canvas position as [x, y] coordinates.

x: Number
y: Number

Type: Number

Horizontal coordinate of the position.

Type: Number

Vertical coordinate of the position.


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

type: String
cron: ScheduleDefinitionCron
frequency: ScheduleDefinitionFrequency

Type: String (cron, frequency)

Type: ScheduleDefinitionCron

Cron schedule definition.

Type: ScheduleDefinitionFrequency

Frequency schedule definition.


Cron-based schedule configuration.

expression: String
location: String

Type: String

Cron expression defining the schedule.

Type: String

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


Frequency-based schedule configuration.

interval: Integer
unit: String

Type: Number

Interval between scheduled runs, in the given unit.

Type: String (seconds, minutes, hours)

Unit of time for the interval; defaults to ‘seconds’.


Visual style settings for notes.

width: Integer
height: Integer
color: String

Type: Number

Width of the note.

Type: Number

Height of the note.

Type: String

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


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

Type: Map of String to MCPToolInputProperty


Definition of a single MCP tool input parameter.

required: Boolean
type: Object

Type: Boolean

Whether this input is required.

Type: Object (JSON Schema)

The JSON schema document defining this input.