Skip to content

Latest commit

 

History

History
79 lines (63 loc) · 3.86 KB

File metadata and controls

79 lines (63 loc) · 3.86 KB

FlowStudio MCP — Action Types Reference

Compact lookup for recognising action types returned by get_live_flow. Use this to read and understand existing flow definitions.

For full copy-paste construction patterns, see the flowstudio-power-automate-build skill.


How to Read a Flow Definition

Every action has "type", "runAfter", and "inputs". The runAfter object declares dependencies: {"Previous": ["Succeeded"]}. Valid statuses: Succeeded, Failed, Skipped, TimedOut.


Action Type Quick Reference

Type Purpose Key fields to inspect Output reference
Compose Store/transform a value inputs (any expression) outputs('Name')
InitializeVariable Declare a variable inputs.variables[].{name, type, value} variables('name')
SetVariable Update a variable inputs.{name, value} variables('name')
IncrementVariable Increment a numeric variable inputs.{name, value} variables('name')
AppendToArrayVariable Push to an array variable inputs.{name, value} variables('name')
If Conditional branch expression.and/or, actions, else.actions
Switch Multi-way branch expression, cases.{case, actions}, default
Foreach Loop over array foreach, actions, operationOptions item() / items('Name')
Until Loop until condition expression, limit.{count, timeout}, actions
Wait Delay inputs.interval.{count, unit}
Scope Group / try-catch actions (nested action map) result('Name')
Terminate End run inputs.{runStatus, runError}
OpenApiConnection Connector call (SP, Outlook, Teams…) inputs.host.{apiId, connectionName, operationId}, inputs.parameters outputs('Name')?['body/...']
OpenApiConnectionWebhook Webhook wait (approvals, adaptive cards) same as above body('Name')?['...']
Http External HTTP call inputs.{method, uri, headers, body} outputs('Name')?['body']
Response Return to HTTP caller inputs.{statusCode, headers, body}
Query Filter array inputs.{from, where} body('Name') (filtered array)
Select Reshape/project array inputs.{from, select} body('Name') (projected array)
Table Array → CSV/HTML string inputs.{from, format, columns} body('Name') (string)
ParseJson Parse JSON with schema inputs.{content, schema} body('Name')?['field']
Expression Built-in function (e.g. ConvertTimeZone) kind, inputs body('Name')

Connector Identification

When you see type: OpenApiConnection, identify the connector from host.apiId:

apiId suffix Connector
shared_sharepointonline SharePoint
shared_office365 Outlook / Office 365
shared_teams Microsoft Teams
shared_approvals Approvals
shared_office365users Office 365 Users
shared_flowmanagement Flow Management

The operationId tells you the specific operation (e.g. GetItems, SendEmailV2, PostMessageToConversation). The connectionName maps to a GUID in properties.connectionReferences.


Common Expressions (Reading Cheat Sheet)

Expression Meaning
@outputs('X')?['body/value'] Array result from connector action X
@body('X') Direct body of action X (Query, Select, ParseJson)
@item()?['Field'] Current loop item's field
@triggerBody()?['Field'] Trigger payload field
@variables('name') Variable value
@coalesce(a, b) First non-null of a, b
@first(array) First element (null if empty)
@length(array) Array count
@empty(value) True if null/empty string/empty array
@union(a, b) Merge arrays — first wins on duplicates
@result('Scope') Array of action outcomes inside a Scope