flowstudio-power-automate-monitoring
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePower Automate Monitoring with FlowStudio MCP
基于FlowStudio MCP的Power Automate监控
Monitor flow health, track failure rates, and inventory tenant assets through
the FlowStudio MCP cached store — fast reads, no PA API rate limits, and
enriched with governance metadata and remediation hints.
Requires: A FlowStudio for Teams or MCP Pro+ subscription.Start every session withto confirm tool names and parameters. This skill covers response shapes, behavioral notes, and workflow patterns — thingstools/listcannot tell you. If this document disagrees withtools/listor a real API response, the API wins.tools/list
通过FlowStudio MCP 缓存存储监控流健康状态、跟踪失败率并清点租户资产——读取速度快,无PA API速率限制,还补充了治理元数据和修复建议。
每次会话都以开头来确认工具名称和参数。本技能涵盖了响应结构、行为说明和工作流模式——这些是tools/list无法提供的信息。如果本文档与tools/list或实际API响应存在冲突,以API为准。tools/list
How Monitoring Works
监控工作原理
Flow Studio scans the Power Automate API daily for each subscriber and caches
the results. There are two levels:
- All flows get metadata scanned: definition, connections, owners, trigger
type, and aggregate run statistics (,
runPeriodTotal, etc.). Environments, apps, connections, and makers are also scanned.runPeriodFailRate - Monitored flows () additionally get per-run detail: individual run records with status, duration, failed action names, and remediation hints. This is what populates
monitor: true,get_store_flow_runs, andget_store_flow_errors.get_store_flow_summary
Data freshness: Check the field on to see when
a flow was last scanned. If stale, the scanning pipeline may not be running.
scannedget_store_flowEnabling monitoring: Set via or the
Flow Studio for Teams app
(how to select flows).
monitor: trueupdate_store_flowDesignating critical flows: Use with
on business-critical flows. This enables the governance skill's notification
rule management to auto-configure failure alerts on critical flows.
update_store_flowcritical=trueFlow Studio每天为每个订阅者扫描Power Automate API并缓存结果,分为两个层级:
- 所有流都会扫描元数据:定义、连接、所有者、触发器类型、聚合运行统计数据(、
runPeriodTotal等)。同时也会扫描环境、应用、连接和制作者信息。runPeriodFailRate - 已监控的流()还会额外获取每次运行的详情:包含状态、时长、失败操作名称和修复建议的单独运行记录。这些数据会填充到
monitor: true、get_store_flow_runs和get_store_flow_errors接口中。get_store_flow_summary
数据新鲜度: 可以查看返回的字段确认流的最近扫描时间。如果数据过时,说明扫描管道可能未正常运行。
get_store_flowscanned标记关键流: 对业务关键流调用并设置,这样治理技能的通知规则管理功能就可以为关键流自动配置失败告警。
update_store_flowcritical=trueTools
工具列表
| Tool | Purpose |
|---|---|
| List flows with failure rates and monitoring filters |
| Full cached record: run stats, owners, tier, connections, definition |
| Aggregated run stats: success/fail rate, avg/max duration |
| Per-run history with duration, status, failed actions, remediation |
| Failed-only runs with action names and remediation hints |
| Trigger URL from cache (instant, no PA API call) |
| Start or stop a flow and sync state back to cache |
| Set monitor flag, notification rules, tags, governance metadata |
| All Power Platform environments |
| All connections |
| All makers (citizen developers) |
| Maker detail: flow/app counts, licenses, account status |
| All Power Apps canvas apps |
| 工具 | 用途 |
|---|---|
| 列出流信息,支持按失败率和监控状态筛选 |
| 获取完整缓存记录:运行统计、所有者、层级、连接、定义 |
| 聚合运行统计:成功率/失败率、平均/最大运行时长 |
| 每次运行的历史记录,包含时长、状态、失败操作、修复建议 |
| 仅返回失败的运行记录,包含操作名称和修复建议 |
| 从缓存获取触发器URL(即时返回,无需调用PA API) |
| 启动或停止流,并将状态同步回缓存 |
| 设置监控标记、通知规则、标签、治理元数据 |
| 列出所有Power Platform环境 |
| 列出所有连接 |
| 列出所有制作者(公民开发者) |
| 制作者详情:流/应用数量、许可证、账户状态 |
| 列出所有Power Apps画布应用 |
Store vs Live
存储工具 vs 实时工具
| Question | Use Store | Use Live |
|---|---|---|
| How many flows are failing? | | — |
| What's the fail rate over 30 days? | | — |
| Show error history for a flow | | — |
| Who built this flow? | | — |
| Read the full flow definition | | |
| Inspect action inputs/outputs from a run | — | |
| Resubmit a failed run | — | |
Store tools answer "what happened?" and "how healthy is it?" Live tools answer "what exactly went wrong?" and "fix it now."
If,get_store_flow_runs, orget_store_flow_errorsreturn empty results, check: (1) isget_store_flow_summaryon the flow? and (2) is themonitor: truefield recent? Usescannedto verify both.get_store_flow
| 问题 | 使用存储工具 | 使用实时工具 |
|---|---|---|
| 有多少流运行失败? | | — |
| 30天的失败率是多少? | | — |
存储工具回答“发生了什么?”和“健康状况如何?”的问题 实时工具回答“具体哪里出了问题?”和“立即修复”的问题。
如果、get_store_flow_runs或get_store_flow_errors返回空结果,请检查:(1) 流是否设置了get_store_flow_summary?(2)monitor: true字段是否是近期时间?可以使用scanned验证这两个条件。get_store_flow
Response Shapes
响应结构
list_store_flows
list_store_flowslist_store_flows
list_store_flowsDirect array. Filters: (bool), (bool),
(bool).
monitorrule_notify_onfailrule_notify_onmissingdaysjson
[
{
"id": "Default-<envGuid>.<flowGuid>",
"displayName": "Stripe subscription updated",
"state": "Started",
"triggerType": "Request",
"triggerUrl": "https://...",
"tags": ["#operations", "#sensitive"],
"environmentName": "Default-26e65220-...",
"monitor": true,
"runPeriodFailRate": 0.012,
"runPeriodTotal": 82,
"createdTime": "2025-06-24T01:20:53Z",
"lastModifiedTime": "2025-06-24T03:51:03Z"
}
]format:id. Split on firstDefault-<envGuid>.<flowGuid>to get.andenvironmentName.flowNameandtriggerUrlare optional. Some entries are sparse (justtags+id) — skip entries withoutmonitor.displayNameTags onare auto-extracted from the flow'slist_store_flowsfield (maker hashtags likedescription). Tags written via#operationsare stored separately and only visible onupdate_store_flow(tags=...)— they do NOT appear in the list response.get_store_flow
直接返回数组,支持筛选参数:(布尔值)、(布尔值)、(布尔值)。
monitorrule_notify_onfailrule_notify_onmissingdaysjson
[
{
"id": "Default-<envGuid>.<flowGuid>",
"displayName": "Stripe subscription updated",
"state": "Started",
"triggerType": "Request",
"triggerUrl": "https://...",
"tags": ["#operations", "#sensitive"],
"environmentName": "Default-26e65220-...",
"monitor": true,
"runPeriodFailRate": 0.012,
"runPeriodTotal": 82,
"createdTime": "2025-06-24T01:20:53Z",
"lastModifiedTime": "2025-06-24T03:51:03Z"
}
]格式:id,按第一个Default-<envGuid>.<flowGuid>分割即可得到.和environmentName。flowName和triggerUrl是可选字段。部分条目数据较少(仅包含tags+id)——请跳过没有monitor的条目。displayName返回的标签是从流的list_store_flows字段自动提取的(制作者添加的话题标签,例如description)。通过#operations写入的标签会单独存储,仅在update_store_flow(tags=...)接口可见,不会出现在列表响应中。get_store_flow
get_store_flow
get_store_flowget_store_flow
get_store_flowFull cached record. Key fields:
| Category | Fields |
|---|---|
| Identity | |
| Run stats | |
| Governance | |
| Freshness | |
| Lifecycle | |
| JSON strings | |
Duration fields (,runPeriodDurationAverage,Max) are in milliseconds. Divide by 1000 for seconds.Mincontains the last run error as a JSON string. Parse it:runError— returnsjson.loads(record["runError"])when no error.{}
完整的缓存记录,关键字段:
| 分类 | 字段 |
|---|---|
| 标识信息 | |
| 运行统计 | |
| 治理信息 | |
| 新鲜度 | |
| 生命周期 | |
| JSON字符串字段 | |
时长字段(、runPeriodDurationAverage、Max)单位为毫秒,除以1000即可得到秒数。Min包含最近一次运行错误的JSON字符串,解析方式:runError——无错误时返回json.loads(record["runError"])。{}
get_store_flow_summary
get_store_flow_summaryget_store_flow_summary
get_store_flow_summaryAggregated stats over a time window (default: last 7 days).
json
{
"flowKey": "Default-<envGuid>.<flowGuid>",
"windowStart": null,
"windowEnd": null,
"totalRuns": 82,
"successRuns": 81,
"failRuns": 1,
"successRate": 0.988,
"failRate": 0.012,
"averageDurationSeconds": 2.877,
"maxDurationSeconds": 9.433,
"firstFailRunRemediation": null,
"firstFailRunUrl": null
}Returns all zeros when no run data exists for this flow in the window. UseandstartTime(ISO 8601) parameters to change the window.endTime
指定时间窗口内的聚合统计数据(默认:最近7天)。
json
{
"flowKey": "Default-<envGuid>.<flowGuid>",
"windowStart": null,
"windowEnd": null,
"totalRuns": 82,
"successRuns": 81,
"failRuns": 1,
"successRate": 0.988,
"failRate": 0.012,
"averageDurationSeconds": 2.877,
"maxDurationSeconds": 9.433,
"firstFailRunRemediation": null,
"firstFailRunUrl": null
}如果该时间窗口内没有流的运行数据,所有字段返回0。可以使用和startTime(ISO 8601格式)参数修改时间窗口。endTime
get_store_flow_runs
/ get_store_flow_errors
get_store_flow_runsget_store_flow_errorsget_store_flow_runs
/ get_store_flow_errors
get_store_flow_runsget_store_flow_errorsDirect array. filters to only.
Parameters: , , (array: ,
, etc.).
get_store_flow_errorsstatus=FailedstartTimeendTimestatus["Failed"]["Succeeded"]Both returnwhen no run data exists.[]
直接返回数组,仅筛选的记录。支持参数:、、(数组:、等)。
get_store_flow_errorsstatus=FailedstartTimeendTimestatus["Failed"]["Succeeded"]没有运行数据时两个接口都返回。[]
get_store_flow_trigger_url
get_store_flow_trigger_urlget_store_flow_trigger_url
get_store_flow_trigger_urljson
{
"flowKey": "Default-<envGuid>.<flowGuid>",
"displayName": "Stripe subscription updated",
"triggerType": "Request",
"triggerKind": "Http",
"triggerUrl": "https://..."
}is null for non-HTTP triggers.triggerUrl
json
{
"flowKey": "Default-<envGuid>.<flowGuid>",
"displayName": "Stripe subscription updated",
"triggerType": "Request",
"triggerKind": "Http",
"triggerUrl": "https://..."
}非HTTP触发器的为null。triggerUrl
set_store_flow_state
set_store_flow_stateset_store_flow_state
set_store_flow_stateCalls the live PA API then syncs state to the cache and returns the
full updated record.
json
{
"flowKey": "Default-<envGuid>.<flowGuid>",
"requestedState": "Stopped",
"currentState": "Stopped",
"flow": { /* full gFlows record, same shape as get_store_flow */ }
}The embeddedobject reflects the new state immediately — no follow-upflowcall needed. Useful for governance workflows that stop a flow and then read its tags/monitor/owner metadata in the same turn.get_store_flowFunctionally equivalent tofor changing state, butset_live_flow_stateonly returnsset_live_flow_stateand doesn't sync the cache. Prefer{flowName, environmentName, requestedState, actualState}when you only need to toggle state and don't care about cache freshness.set_live_flow_state
调用实时PA API,然后将状态同步到缓存,返回完整的更新后记录。
json
{
"flowKey": "Default-<envGuid>.<flowGuid>",
"requestedState": "Stopped",
"currentState": "Stopped",
"flow": { /* 完整的gFlows记录,结构和get_store_flow相同 */ }
}内嵌的对象会立即反映新状态——无需后续调用flow。适合需要停止流后在同一次交互中读取其标签/监控状态/所有者元数据的治理工作流。get_store_flow更改状态的功能与等效,但set_live_flow_state仅返回set_live_flow_state且不会同步缓存。如果仅需要切换流状态,不关心缓存新鲜度,优先使用{flowName, environmentName, requestedState, actualState}。set_live_flow_state
update_store_flow
update_store_flowupdate_store_flow
update_store_flowUpdates governance metadata. Only provided fields are updated (merge).
Returns the full updated record (same shape as ).
get_store_flowSettable fields: (bool), (bool),
(number, 0=disabled),
(comma-separated), , ,
, , ,
, , , ,
(bool), , .
monitorrule_notify_onfailrule_notify_onmissingdaysrule_notify_emaildescriptiontagsbusinessImpactbusinessJustificationbusinessValueownerTeamownerBusinessUnitsupportGroupsupportEmailcriticaltiersecurity更新治理元数据,仅更新提供的字段(合并更新)。返回完整的更新后记录(结构与相同)。
get_store_flow可设置字段:(布尔值)、(布尔值)、(数字,0=禁用)、(逗号分隔)、、、、、、、、、、(布尔值)、、。
monitorrule_notify_onfailrule_notify_onmissingdaysrule_notify_emaildescriptiontagsbusinessImpactbusinessJustificationbusinessValueownerTeamownerBusinessUnitsupportGroupsupportEmailcriticaltiersecuritylist_store_environments
list_store_environmentslist_store_environments
list_store_environmentsDirect array.
json
[
{
"id": "Default-26e65220-...",
"displayName": "Flow Studio (default)",
"sku": "Default",
"type": "NotSpecified",
"location": "australia",
"isDefault": true,
"isAdmin": true,
"isManagedEnvironment": false,
"createdTime": "2017-01-18T01:06:46Z"
}
]values:sku,Default,Production,Developer,Sandbox.Teams
直接返回数组。
json
[
{
"id": "Default-26e65220-...",
"displayName": "Flow Studio (default)",
"sku": "Default",
"type": "NotSpecified",
"location": "australia",
"isDefault": true,
"isAdmin": true,
"isManagedEnvironment": false,
"createdTime": "2017-01-18T01:06:46Z"
}
]取值:sku、Default、Production、Developer、Sandbox。Teams
list_store_connections
list_store_connectionslist_store_connections
list_store_connectionsDirect array. Can be very large (1500+ items).
json
[
{
"id": "<environmentId>.<connectionId>",
"displayName": "user@contoso.com",
"createdBy": "{\"id\":\"...\",\"displayName\":\"...\",\"email\":\"...\"}",
"environmentName": "...",
"statuses": "[{\"status\":\"Connected\"}]"
}
]andcreatedByare JSON strings — parse withstatuses.json.loads()
直接返回数组,数据量可能很大(1500+条)。
json
[
{
"id": "<environmentId>.<connectionId>",
"displayName": "user@contoso.com",
"createdBy": "{\"id\":\"...\",\"displayName\":\"...\",\"email\":\"...\"}",
"environmentName": "...",
"statuses": "[{\"status\":\"Connected\"}]"
}
]和createdBy是JSON字符串——使用statuses解析。json.loads()
list_store_makers
list_store_makerslist_store_makers
list_store_makersDirect array.
json
[
{
"id": "09dbe02f-...",
"displayName": "Catherine Han",
"mail": "catherine.han@flowstudio.app",
"deleted": false,
"ownerFlowCount": 199,
"ownerAppCount": 209,
"userIsServicePrinciple": false
}
]Deleted makers haveand nodeleted: true/displayNamefields.
直接返回数组。
json
[
{
"id": "09dbe02f-...",
"displayName": "Catherine Han",
"mail": "catherine.han@flowstudio.app",
"deleted": false,
"ownerFlowCount": 199,
"ownerAppCount": 209,
"userIsServicePrinciple": false
}
]已删除的制作者,且没有deleted: true/displayName字段。
get_store_maker
get_store_makerget_store_maker
get_store_makerFull maker record. Key fields: , , ,
, , , , ,
, , ,
, ,
(JSON string of M365 SKUs).
displayNamemailuserPrincipalNameownerFlowCountownerAppCountaccountEnableddeletedcountryfirstFlowfirstFlowCreatedTimelastFlowCreatedTimefirstPowerApplastPowerAppCreatedTimelicenses完整的制作者记录,关键字段:、、、、、、、、、、、、、(M365 SKU的JSON字符串)。
displayNamemailuserPrincipalNameownerFlowCountownerAppCountaccountEnableddeletedcountryfirstFlowfirstFlowCreatedTimelastFlowCreatedTimefirstPowerApplastPowerAppCreatedTimelicenseslist_store_power_apps
list_store_power_appslist_store_power_apps
list_store_power_appsDirect array.
json
[
{
"id": "<environmentId>.<appId>",
"displayName": "My App",
"environmentName": "...",
"ownerId": "09dbe02f-...",
"ownerName": "Catherine Han",
"appType": "Canvas",
"sharedUsersCount": 0,
"createdTime": "2023-08-18T01:06:22Z",
"lastModifiedTime": "2023-08-18T01:06:22Z",
"lastPublishTime": "2023-08-18T01:06:22Z"
}
]直接返回数组。
json
[
{
"id": "<environmentId>.<appId>",
"displayName": "My App",
"environmentName": "...",
"ownerId": "09dbe02f-...",
"ownerName": "Catherine Han",
"appType": "Canvas",
"sharedUsersCount": 0,
"createdTime": "2023-08-18T01:06:22Z",
"lastModifiedTime": "2023-08-18T01:06:22Z",
"lastPublishTime": "2023-08-18T01:06:22Z"
}
]Common Workflows
常见工作流
Find unhealthy flows
查找不健康的流
1. list_store_flows
2. Filter where runPeriodFailRate > 0.1 and runPeriodTotal >= 5
3. Sort by runPeriodFailRate descending
4. For each: get_store_flow for full detail1. 调用list_store_flows
2. 筛选runPeriodFailRate > 0.1且runPeriodTotal >= 5的流
3. 按runPeriodFailRate降序排序
4. 对每个流调用get_store_flow获取完整详情Check a specific flow's health
检查指定流的健康状态
1. get_store_flow → check scanned (freshness), runPeriodFailRate, runPeriodTotal
2. get_store_flow_summary → aggregated stats with optional time window
3. get_store_flow_errors → per-run failure detail with remediation hints
4. If deeper diagnosis needed → switch to live tools:
get_live_flow_runs → get_live_flow_run_action_outputs1. 调用get_store_flow → 检查scanned(数据新鲜度)、runPeriodFailRate、runPeriodTotal
2. 调用get_store_flow_summary → 可选指定时间窗口获取聚合统计数据
3. 调用get_store_flow_errors → 获取每次运行的失败详情和修复建议
4. 如果需要深度诊断 → 切换到实时工具:
调用get_live_flow_runs → 调用get_live_flow_run_action_outputsEnable monitoring on a flow
为流启用监控
1. update_store_flow with monitor=true
2. Optionally set rule_notify_onfail=true, rule_notify_email="user@domain.com"
3. Run data will appear after the next daily scan1. 调用update_store_flow设置monitor=true
2. 可选设置rule_notify_onfail=true、rule_notify_email="user@domain.com"
3. 下次每日扫描后运行数据就会显示Daily health check
每日健康检查
1. list_store_flows
2. Flag flows with runPeriodFailRate > 0.2 and runPeriodTotal >= 3
3. Flag monitored flows with state="Stopped" (may indicate auto-suspension)
4. For critical failures → get_store_flow_errors for remediation hints1. 调用list_store_flows
2. 标记runPeriodFailRate > 0.2且runPeriodTotal >= 3的流
3. 标记state="Stopped"的已监控流(可能表示自动暂停)
4. 针对严重失败 → 调用get_store_flow_errors获取修复建议Maker audit
制作者审计
1. list_store_makers
2. Identify deleted accounts still owning flows (deleted=true, ownerFlowCount > 0)
3. get_store_maker for full detail on specific users1. 调用list_store_makers
2. 识别仍然拥有流的已删除账户(deleted=true且ownerFlowCount > 0)
3. 对特定用户调用get_store_maker获取完整详情Inventory
资产清点
1. list_store_environments → environment count, SKUs, locations
2. list_store_flows → flow count by state, trigger type, fail rate
3. list_store_power_apps → app count, owners, sharing
4. list_store_connections → connection count per environment1. 调用list_store_environments → 环境数量、SKU、位置
2. 调用list_store_flows → 按状态、触发器类型、失败率统计流数量
3. 调用list_store_power_apps → 应用数量、所有者、共享情况
4. 调用list_store_connections → 每个环境的连接数量Related Skills
相关技能
- — Core connection setup, live tool reference
power-automate-mcp - — Deep diagnosis with action-level inputs/outputs (live API)
power-automate-debug - — Build and deploy flow definitions
power-automate-build - — Governance metadata, tagging, notification rules, CoE patterns
power-automate-governance
- — 核心连接配置、实时工具参考
power-automate-mcp - — 操作级输入/输出深度诊断(实时API)
power-automate-debug - — 构建和部署流定义
power-automate-build - — 治理元数据、标签、通知规则、卓越中心模式
power-automate-governance