
Flowstudio Power Automate Build
Copy-paste OpenApiConnection JSON patterns for SharePoint, Outlook, Teams, and Approvals when authoring Power Automate flows with FlowStudio MCP.
Overview
FlowStudio Power Automate Build is an agent skill for the Build phase that documents SharePoint, Outlook, Teams, and Approvals OpenApiConnection action JSON patterns for Power Automate flows.
Install
npx skills add https://github.com/github/awesome-copilot --skill flowstudio-power-automate-buildWhat is this skill?
- SharePoint GetItems with OData `$filter`, `$top`, and dynamic `@{...}` string interpolation in filters
- Documents `connectionReferences` keys vs GUIDs and standard `runAfter` wiring for OpenApiConnection actions
- Pagination policy guidance for lists larger than default `$top` caps
- Outlook, Teams, and Approvals connector sections in the same pattern catalog (per skill title)
- Result references via `@outputs('ActionName')?['body/value']` for downstream flow steps
Adoption & trust: 1.7k installs on skills.sh; 34.6k GitHub stars; 1/3 security scanners passed (skills.sh audits).
What problem does it solve?
You know which Microsoft 365 action you need but keep mis-wiring `connectionName`, OData filters, or output expressions in Power Automate JSON.
Who is it for?
Solo builders authoring Power Automate cloud flows for SharePoint lists, Teams notifications, or approval steps with agent assistance.
Skip if: Teams that only need generic REST API design without Power Platform, or flows built entirely in the visual designer with no JSON editing.
When should I use this skill?
Authoring or extending Power Automate flows that call SharePoint, Outlook, Teams, or Approvals via OpenApiConnection actions with FlowStudio.
What do I get? / Deliverables
You drop in validated connector action blocks with correct parameters, dynamic filters, and output paths so your flow definition compiles and runs against live connections.
- OpenApiConnection action JSON blocks
- OData filter and pagination snippets
- Expression-ready output references for downstream steps
Recommended Skills
Journey fit
Solo builders wire Microsoft 365 and SharePoint into automations during product and ops integration work, not during launch SEO or validation. Connector action snippets (`GetItems`, filters, pagination) are integration-layer artifacts that belong on the build → integrations shelf.
How it compares
Use instead of guessing connector `operationId` and parameter shapes from scattered Microsoft docs while pair-programming flows in chat.
Common Questions / FAQ
Who is flowstudio-power-automate-build for?
Indie and solo builders (and small ops teams) who automate Microsoft 365 with Power Automate and want agent-ready JSON snippets for standard connectors.
When should I use flowstudio-power-automate-build?
During Build → integrations when you add SharePoint reads, mail steps, Teams posts, or approval actions to a flow definition, especially while using FlowStudio MCP to generate or edit flow JSON.
Is flowstudio-power-automate-build safe to install?
It is documentation-style patterns only; review the Security Audits panel on this page and treat any generated flows like production code before deploying with real connection credentials.
SKILL.md
READMESKILL.md - Flowstudio Power Automate Build
# FlowStudio MCP — Action Patterns: Connectors SharePoint, Outlook, Teams, and Approvals connector action patterns. > All examples assume `"runAfter"` is set appropriately. > Replace `<connectionName>` with the **key** you used in `connectionReferences` > (e.g. `shared_sharepointonline`, `shared_teams`). This is NOT the connection > GUID — it is the logical reference name that links the action to its entry in > the `connectionReferences` map. --- ## SharePoint ### SharePoint — Get Items ```json "Get_SP_Items": { "type": "OpenApiConnection", "runAfter": {}, "inputs": { "host": { "apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline", "connectionName": "<connectionName>", "operationId": "GetItems" }, "parameters": { "dataset": "https://mytenant.sharepoint.com/sites/mysite", "table": "MyList", "$filter": "Status eq 'Active'", "$top": 500 } } } ``` Result reference: `@outputs('Get_SP_Items')?['body/value']` > **Dynamic OData filter with string interpolation**: inject a runtime value > directly into the `$filter` string using `@{...}` syntax: > ``` > "$filter": "Title eq '@{outputs('ConfirmationCode')}'" > ``` > Note the single-quotes inside double-quotes — correct OData string literal > syntax. Avoids a separate variable action. > **Pagination for large lists**: by default, GetItems stops at `$top`. To auto-paginate > beyond that, enable the pagination policy on the action. In the flow definition this > appears as: > ```json > "paginationPolicy": { "minimumItemCount": 10000 } > ``` > Set `minimumItemCount` to the maximum number of items you expect. The connector will > keep fetching pages until that count is reached or the list is exhausted. Without this, > flows silently return a capped result on lists with >5,000 items. --- ### SharePoint — Get Item (Single Row by ID) ```json "Get_SP_Item": { "type": "OpenApiConnection", "runAfter": {}, "inputs": { "host": { "apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline", "connectionName": "<connectionName>", "operationId": "GetItem" }, "parameters": { "dataset": "https://mytenant.sharepoint.com/sites/mysite", "table": "MyList", "id": "@triggerBody()?['ID']" } } } ``` Result reference: `@body('Get_SP_Item')?['FieldName']` > Use `GetItem` (not `GetItems` with a filter) when you already have the ID. > Re-fetching after a trigger gives you the **current** row state, not the > snapshot captured at trigger time — important if another process may have > modified the item since the flow started. --- ### SharePoint — Create Item ```json "Create_SP_Item": { "type": "OpenApiConnection", "runAfter": {}, "inputs": { "host": { "apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline", "connectionName": "<connectionName>", "operationId": "PostItem" }, "parameters": { "dataset": "https://mytenant.sharepoint.com/sites/mysite", "table": "MyList", "item/Title": "@variables('myTitle')", "item/Status": "Active" } } } ``` --- ### SharePoint — Update Item ```json "Update_SP_Item": { "type": "OpenApiConnection", "runAfter": {}, "inputs": { "host": { "apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline", "connectionName": "<connectionName>", "operationId": "PatchItem" }, "parameters": { "dataset": "https://mytenant.sharepoint.com/sites/mysite", "table": "MyList", "id": "@item()?['ID']", "item/Status": "Processed" } } } ``` > `PatchItem` can validate required SharePoint columns even when you are not > changing those fields. Echo unchanged required fields from the trigger or a > prior Get Item action, for example `item/Title`, and use internal field names. --- ### SharePoint — File Upsert (Create or Overwrite in Document Library) SharePoint's `CreateFile` fails if the file