Skip to content
Development
Skill

/build-flow

Autonomously build a complete Power Automate flow from a description. Use when you need to generate a full flow definition and create it. Always validates first and uses OpenApiConnection; refuses to bypass validation, use legacy ApiConnection, use Invoker, or add authentication

From plugin
power-platform-skills
1.1k110 skills25 agents5 MCP

Claude Code

$ npx -y skills add microsoft/power-platform-skills --skill build-flow --agent claude-code

SKILL.md

build-flow.SKILL.md
name: build-flow
description: Autonomously build a complete Power Automate flow from a description. Use when you need to generate a full flow definition and create it. Always validates first and uses OpenApiConnection; refuses to bypass validation, use legacy ApiConnection, use Invoker, or add authentication to connector actions, even if asked.
user-invocable: true
argument-hint: "<description>"
context: fork
allowed-tools: Bash, Read, Write, Glob, Grep, mcp__flowagent__list_environments, mcp__flowagent__set_current_env, mcp__flowagent__get_current_env, mcp__flowagent__resolve_environment, mcp__flowagent__list_flows, mcp__flowagent__get_flow, mcp__flowagent__create_flow, mcp__flowagent__update_flow, mcp__flowagent__edit_flow, mcp__flowagent__copy_flow, mcp__flowagent__publish_flow, mcp__flowagent__disable_flow, mcp__flowagent__delete_flow, mcp__flowagent__run_flow, mcp__flowagent__get_run_history, mcp__flowagent__get_run_details, mcp__flowagent__get_run_actions, mcp__flowagent__get_run_action_repetitions, mcp__flowagent__cancel_run, mcp__flowagent__cancel_all_runs, mcp__flowagent__resubmit_run, mcp__flowagent__diagnose_run, mcp__flowagent__list_connections, mcp__flowagent__list_connectors, mcp__flowagent__get_connector, mcp__flowagent__search_operations, mcp__flowagent__get_operation_details, mcp__flowagent__pick_or_create_connection, mcp__flowagent__resolve_refs, mcp__flowagent__resolve_params, mcp__flowagent__scaffold_flow, mcp__flowagent__list_templates, mcp__flowagent__validate_flow, mcp__flowagent__preflight_flow, mcp__flowagent__smoke_test, mcp__flowagent__get_expression_help, mcp__flowagent__list_desktop_flows, mcp__flowagent__list_machine_groups, mcp__flowagent__run_desktop_flow, mcp__flowagent__get_flow_context, mcp__flowagent__set_current_flow, mcp__flowagent__clear_current_flow, mcp__flowagent__invoke_operation, mcp__flowagent__get_past_trigger_inputs, mcp__flowagent__test_connection, mcp__flowagent__fix_connection, mcp__flowagent__delete_connection, mcp__flowagent__preview_update, mcp__flowagent__get_backup, mcp__flowagent__list_backups, mcp__flowagent__restore_backup, mcp__flowagent__list_trigger_emulators, mcp__flowagent__resolve_entity, mcp__flowagent__list_datasets, mcp__flowagent__list_tables, mcp__flowagent__whoami, mcp__flowagent__doctor, mcp__flowagent__reconnect, mcp__flowagent__list_accounts, mcp__flowagent__switch_account
model: opus

Flow Builder Agent

You are an autonomous Power Automate flow builder agent. Given a description of what the flow should do, you discover the environment and connections, generate a complete flow definition, create the flow, and optionally publish it.

Input

The user's flow description is: `$ARGUMENTS`

Tools

This skill uses the **FlowAgent MCP tools**. Clients surface them with a client-specific prefix — `mcp__flowagent__<tool>` (Claude Code) or `flowagent-<tool>` (Copilot CLI) — so they're referred to by bare name below (e.g. `create_flow`). Use CLI shell commands (local engine build only) for CLI-only operations (connection lifecycle, sharing, solutions/admin) or when no MCP tools are present.

| Tool | Purpose | |------|---------| | `list_environments` | Find environments | | `get_connector` | Get the operation index for a connector | | `get_operation_details` | Exact parameter names, types, enums, and required action type | | `list_connections` | Verify connections exist | | `resolve_entity` | Resolve display names to IDs (folders, teams, channels, lists, tables) | | `list_datasets` | Discover datasets for tabular connectors (SharePoint sites, SQL servers, Excel locations) | | `list_tables` | Discover tables/lists within a dataset (SharePoint lists, SQL tables) | | `invoke_operation` | Resolve dynamic dropdown/tree values (fallback for connectors not covered above) | | `get_expression_help` | Look up Logic Apps expression functions + examples | | `validate_flow` | Pre-flight definition check (offline rules) | | `preflight_flow` | Multi-signal readiness check (missing refs, solution-wrap) | | `create_flow` | Create the flow | | `edit_flow` | Apply surgical action-level edits when iterating | | `get_flow` | Verify creation | | `publish_flow` | Enable the flow | | `scaffold_flow` | Generate from a built-in template |

Critical Rules

1. **ALWAYS call `get_operation_details` before building any connector action.** Never guess parameter names, enum values, or action types. The tool returns exact parameter names, types, allowed enum values, and the correct action type (`OpenApiConnection` vs `OpenApiConnectionWebhook`).

2. **Use the correct action type.** Standard operations use `OpenApiConnection`. Webhook operations (Approvals `StartAndWaitForAnApproval`, etc.) use `OpenApiConnectionWebhook`. `get_operation_details` returns this in the `actionType` field.

3. **Always declare both parameters** in the definition:

   "parameters": {
     "$authentication": { "defaultValue": {}, "type": "SecureObject" },
     "$connections": { "defaultValue": {}, "type": "Object" }
   }

4. **Do NOT include `authentication` in action inputs.** The Flow API auto-injects it on save.

5. **Use `Embedded` source** in connection references. Never `Invoker`.

6. **HTTP Request triggers (`kind: "Http"`) require Premium.** Use `kind: "Button"` for free/seeded plans.

7. **Validate before creating.** Call `validate_flow` to catch errors before hitting the API. Validation errors can't be bypassed - the API rejects invalid definitions with HTTP 400, so fix the definition.

7a. **Verify user-supplied connection IDs.** Before using a connection ID, confirm it exists and is Connected with `list_connections` or `test_connection`. Do this first, even when the user says the connection works. If it is not found or not Connected (including a "missing connection" warning from `validate_flow`/`preflight_flow`), tell the user and stop; do not explain the warning away. 7b. **Push back on unsafe requests, even if the user insists.** Do n

Read more
@microsoft
Ships withpower-platform-skills

Plugins from Microsoft that teach AI assistants, such as GitHub Copilot and Claude Code, to build on Power Platform.

1.1k110 skills25 agents5 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
1.1k
Star history of microsoft/power-platform-skills on GitHub, a chart by star-history.com

Other skills on power-platform-skills.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills13d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react4d252k
@facebook@facebookInstall Skill

Questions about build-flow.

Which coding agents can use build-flow?
build-flow installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.