Webex Meeting Quality Alert
On a schedule, the flow pulls Webex meeting-quality metrics (audio/video latency, packet loss, jitter) for recent meetings, flags meetings or sites with poor quality against thresholds, logs them to Dataverse, and alerts the IT/AV team in Teams with the affected participants. Catches conferencing problems proactively.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This flow proactively catches Webex conferencing problems. On an hourly schedule it pulls recent meetings and their per-participant quality metrics (latency, packet loss, jitter) from the Webex REST API, flags any meeting that breaches the configured thresholds, logs a deduped incident to Dataverse, and alerts the IT/AV team in both Microsoft Teams and Outlook.
Why it matters: Poor call quality erodes productivity and is usually noticed too late. A scheduled quality sweep surfaces problem patterns (a host, a network, a device) for proactive fixes, with a durable Dataverse audit trail.
Connector note: The Webex Power Automate connector (shared_webex) is messaging-only — it has no meetings or meeting-quality operations. Meeting and quality data is therefore retrieved with the built-in HTTP action against the Webex REST API (/meetings and /meeting/qualities), authenticated with a Bearer token from the flowlibs_WebexAccessToken environment variable. Teams, Outlook, and Dataverse all use their connector actions.
Use Case
An IT/AV team wants early warning of recurring Webex quality issues, with the data to pinpoint the cause. Each hour the flow scans meetings that ended in the lookback window, evaluates each participant's audio/video metrics against thresholds, and raises one alert per affected meeting (idempotent — it will not re-alert a meeting already logged).
Flow Architecture
Recurrence Scan Schedule
Recurrence (hourly)Runs the quality sweep every hour.
Initialize variables
Initialize VariableMint a guid() correlation id; load the Webex base URL, latency/packet-loss/jitter thresholds, and the lookback-hours window from env vars.
Compose Window Start
ComposeISO 8601 start of the scan window (now − lookback hours).
Get Recent Webex Meetings
HTTP (Webex REST GET /meetings)Lists meetings in the lookback window (Bearer token).
Apply To Each Meeting
ForeachFor each meeting, GET /meeting/qualities for per-participant audio/video metrics and filter participants breaching any threshold.
Dedupe and log incident
Dataverse ListRecords + Condition + CreateRecordIf at least one participant breached and the meeting is not already logged, create the Dataverse quality-incident row.
Alert the IT/AV team
Teams PostMessageToConversation + Outlook SendEmailV2Post the alert to the IT/AV Teams channel and email the team (High importance).
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_WebexApiBaseUrl | String | https://webexapis.com/v1 | Webex REST API base URL. |
| flowlibs_WebexAccessToken | String | <configure> | Webex Bearer token, admin/analytics scope. |
| flowlibs_WebexQualityLatencyThresholdMs | String | 300 | Latency (ms) to flag. |
| flowlibs_WebexQualityPacketLossThresholdPct | String | 5 | Packet loss (%) to flag. |
| flowlibs_WebexQualityJitterThresholdMs | String | 50 | Jitter (ms) to flag. |
| flowlibs_WebexQualityLookbackHours | String | 24 | Hours back to scan each run. |
| flowlibs_TeamsGroupId | String | <your-team-id> | Target Teams team/group id. |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Target Teams channel id. |
| flowlibs_ITAVTeamEmail | String | alerts@yourcompany.com | Alert email recipient (IT/AV team). |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Microsoft Teams | shared_teams | PostMessageToConversation |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords CreateRecord |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Tune thresholds
- Adjust the latency/packet-loss/jitter env vars to your network's tolerances; no flow edits needed.
- Match the Webex response shape
- The quality field paths (latency, packetLoss, jitter) are written for a flat per-participant shape; adjust them if your Webex Meeting Qualities response nests metrics under audio/video resource arrays.
- Scan frequency / window
- Change the Recurrence interval and flowlibs_WebexQualityLookbackHours together to control coverage vs. cost.
- Site rollup
- Aggregate incidents by site/network to find the culprit; chart over time in Power BI.
- Ticketing
- Open a ServiceNow/Jira ticket on recurring incidents (a connector action could be added in the True branch).
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Scan window start
Start of the scan window.
EXPR.02Poor-quality filter (where)
Keeps participants breaching any threshold.
EXPR.03Has poor-quality participants
Proceed only if at least one participant breached.
EXPR.04Not already logged (idempotency)
Avoid re-alerting a meeting already recorded.
EXPR.05Dedup lookup filter
Dedup by Meeting Id.
Customize & download
Generate a ready-to-import copy of this solution with your environment-variable values baked in — available on Base, Pro, or Team.
Upgrade to customize
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.