All skills
github avatar

/flowstudio-power-automate-build

@0ccadfd official
by githubgithub/awesome-copilot40k stars
5,040

Build, scaffold, and deploy Power Automate cloud flows using the FlowStudio MCP server. Your agent constructs flow definitions, wires connections, deploys, and tests — all via MCP without opening the portal. Load this skill when asked to: create a flow, build a new flow, deploy a flow definition, scaffold a Power Automate workflow, construct a flow JSON, update an existing flow's actions, patch a flow definition, add actions to a flow, wire up connections, or generate a workflow definition from scratch. Requires a FlowStudio MCP subscription — see https://mcp.flowstudio.app

Use this Skill: https://skilld.dev/gh/github/awesome-copilot/flowstudio-power-automate-build

This session only. Nothing lands on disk.

referencestrigger-types.md

≈1.4k tokens on demand. Your agent reads this file only when SKILL.md points to it.

FlowStudio MCP — Trigger Types

Copy-paste trigger definitions for Power Automate flow definitions.


Recurrence

Run on a schedule.

"Recurrence": {
  "type": "Recurrence",
  "recurrence": {
    "frequency": "Day",
    "interval": 1,
    "startTime": "2026-01-01T08:00:00Z",
    "timeZone": "AUS Eastern Standard Time"
  }
}

Weekly on specific days:

"Recurrence": {
  "type": "Recurrence",
  "recurrence": {
    "frequency": "Week",
    "interval": 1,
    "schedule": {
      "weekDays": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
    },
    "startTime": "2026-01-05T09:00:00Z",
    "timeZone": "AUS Eastern Standard Time"
  }
}

Common timeZone values:

  • "AUS Eastern Standard Time" — Sydney/Melbourne (UTC+10/+11)
  • "UTC" — Universal time
  • "E. Australia Standard Time" — Brisbane (UTC+10 no DST)
  • "New Zealand Standard Time" — Auckland (UTC+12/+13)
  • "Pacific Standard Time" — Los Angeles (UTC-8/-7)
  • "GMT Standard Time" — London (UTC+0/+1)

Manual (HTTP Request / Power Apps)

Receive an HTTP POST with a JSON body.

"manual": {
  "type": "Request",
  "kind": "Http",
  "inputs": {
    "schema": {
      "type": "object",
      "properties": {
        "name": { "type": "string" },
        "value": { "type": "integer" }
      },
      "required": ["name"]
    }
  }
}

Access values: @triggerBody()?['name']
Trigger URL available after saving: @listCallbackUrl()

No-Schema Variant (Accept Arbitrary JSON)

When the incoming payload structure is unknown or varies, omit the schema to accept any valid JSON body without validation:

"manual": {
  "type": "Request",
  "kind": "Http",
  "inputs": {
    "schema": {}
  }
}

Access any field dynamically: @triggerBody()?['anyField']

Use this for external webhooks (Stripe, GitHub, Employment Hero, etc.) where the payload shape may change or is not fully documented. The flow accepts any JSON without returning 400 for unexpected properties.


Manual (Copilot Studio Skills)

Use the Skills trigger when the flow is meant to be called by a Copilot Studio agent tool. Keep the trigger schema explicit so the agent receives predictable input names and types.

"manual": {
  "type": "Request",
  "kind": "Skills",
  "inputs": {
    "schema": {
      "type": "object",
      "properties": {
        "itemId": { "type": "string" },
        "notes": { "type": "string" }
      },
      "required": ["itemId"]
    }
  },
  "metadata": {
    "operationMetadataId": "<stable-guid>"
  }
}

After deploying a production Skills-triggered flow, call add_live_flow_to_solution with the target solutionId; Copilot Studio agent tool discovery expects the flow to be solution-aware. To test it from MCP, call trigger_live_flow with the inputs in body — Skills triggers run through the connector runtime the same way Button and PowerApps triggers do.


Automated (SharePoint Item Created)

"When_an_item_is_created": {
  "type": "OpenApiConnectionNotification",
  "inputs": {
    "host": {
      "apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline",
      "connectionName": "<connectionName>",
      "operationId": "OnNewItem"
    },
    "parameters": {
      "dataset": "https://mytenant.sharepoint.com/sites/mysite",
      "table": "MyList"
    },
    "subscribe": {
      "body": { "notificationUrl": "@listCallbackUrl()" },
      "queries": {
        "dataset": "https://mytenant.sharepoint.com/sites/mysite",
        "table": "MyList"
      }
    }
  }
}

Access trigger data: @triggerBody()?['ID'], @triggerBody()?['Title'], etc.


Automated (SharePoint Item Modified)

"When_an_existing_item_is_modified": {
  "type": "OpenApiConnectionNotification",
  "inputs": {
    "host": {
      "apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline",
      "connectionName": "<connectionName>",
      "operationId": "OnUpdatedItem"
    },
    "parameters": {
      "dataset": "https://mytenant.sharepoint.com/sites/mysite",
      "table": "MyList"
    },
    "subscribe": {
      "body": { "notificationUrl": "@listCallbackUrl()" },
      "queries": {
        "dataset": "https://mytenant.sharepoint.com/sites/mysite",
        "table": "MyList"
      }
    }
  }
}

Automated (Outlook: When New Email Arrives)

"When_a_new_email_arrives": {
  "type": "OpenApiConnectionNotification",
  "inputs": {
    "host": {
      "apiId": "/providers/Microsoft.PowerApps/apis/shared_office365",
      "connectionName": "<connectionName>",
      "operationId": "OnNewEmail"
    },
    "parameters": {
      "folderId": "Inbox",
      "to": "monitored@contoso.com",
      "isHTML": true
    },
    "subscribe": {
      "body": { "notificationUrl": "@listCallbackUrl()" }
    }
  }
}

Child Flow (Called by Another Flow)

"manual": {
  "type": "Request",
  "kind": "Button",
  "inputs": {
    "schema": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": { "type": "object" }
        }
      }
    }
  }
}

Access parent-supplied data: @triggerBody()?['items']

To return data to the parent, add a Response action:

"Respond_to_Parent": {
  "type": "Response",
  "runAfter": { "Compose_Result": ["Succeeded"] },
  "inputs": {
    "statusCode": 200,
    "body": "@outputs('Compose_Result')"
  }
}

Source: SKILL.md on GitHub

1 alert16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    The skill facilitates management of Power Automate flows via an external MCP server. It performs network requests to the service provider's domain and processes environmental data, which introduces low risks related to network communication and indirect prompt injection.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: MEDIUM · 1 issue

  • Runlayer6mo

    4/7 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 0ccadfd. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 4 weeks ago
  • MCP
  • power-automate
  • power-automate-cloud
  • flowstudio
  • workflow-automation
  • flow-deployment
  • connector-actions
  • azure

README badge

README badge for github/awesome-copilot/flowstudio-power-automate-build

Constructs and deploys Power Automate cloud flows via the FlowStudio MCP server, handling flow definition JSON, connector wiring, and environment setup without opening the portal. Use this skill when asked to create, scaffold, or deploy Power Automate workflows programmatically, or to wire connections and build flow definitions from scratch. Requires an active FlowStudio MCP subscription and valid JWT token.

Generated from the current SKILL.md.

What is FlowStudio MCP and do I need a subscription?
FlowStudio MCP is a server that lets you build and deploy Power Automate cloud flows programmatically. Yes, a FlowStudio MCP subscription is required — see https://mcp.flowstudio.app
Can I create a flow without opening the Power Automate portal?
Yes. This skill constructs flow definitions, wires connections, deploys, and tests entirely through the MCP server, without requiring portal access.
What connectors does this skill support?
The skill supports any connector available in your environment (SharePoint, Outlook, Teams, Approvals, OneDrive, Excel, Dataverse, Forms, etc.). You call `list_live_connections` to discover which authenticated connections are available before building.
Does this skill handle both creating new flows and updating existing ones?
Yes. The `update_live_flow` tool creates a new flow when you omit the `flowName` parameter, and updates an existing flow when you provide it.
What if required connector connections don't exist in my environment?
The skill will stop and prompt you to create the missing connections in the Power Automate portal (they require browser OAuth consent), then re-run the build.

Generated from the current SKILL.md. These answers refresh after source changes.