Webex Meeting Attendance to CRM
After a Webex meeting (sales demo, webinar), the flow pulls the participant/attendance report, matches attendees to Dataverse contacts/leads, logs attendance and duration on each record, flags no-shows for follow-up, and notifies the owner in Teams. Captures meeting engagement signals directly into the CRM.
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 captures Webex meeting engagement into the CRM. On a daily schedule it pulls recently ended Webex meetings, retrieves each meeting's participant/attendance report and invitee list, matches attendees to Dataverse CRM contacts by email, logs attendance and duration (and flags no-shows) to a dedicated Webex Attendance Log table, and notifies the meeting owner's Teams channel with a per-meeting summary.
Why it matters: Who attended (and for how long) is a strong engagement signal. Writing it to the CRM informs follow-up and lead scoring instead of being lost in Webex reports.
Build note — connector reality: the Webex connector (shared_webex) is messaging/spaces only — it has no meetings, participants, or invitees operations and no meeting trigger. Per the connector-first rule, when no connector operation exists the build falls back to the connector's underlying REST API via the built-in HTTP action. So this flow uses a Recurrence (daily) trigger, calls the Webex REST API (/meetings, /meetingParticipants, /meetingInvitees) via built-in HTTP, and uses Dataverse and Teams connector actions for everything those connectors support.
Use Case
Sales/marketing teams running demos and webinars on Webex want attendance and duration reflected on CRM records, with no-show follow-up and an owner notification — all captured automatically.
Flow Architecture
Recurrence
Recurrence (Day/1)Runs daily to pull recently ended Webex meetings within the lookback window.
Initialize variables
Initialize VariableMint a guid() correlation id and load the Webex base URL, Webex token, contact table, Teams group/channel, and a configurable lookback-hours value (default 24).
Get Recent Meetings
HTTP GET (Webex REST)GET /meetings — meetings ended within the lookback window (Bearer token).
Apply to each Meeting
ForeachProcess each meeting: pull the participant/attendance report and the invitee list.
Per attendee match and log
Dataverse ListRecords + CreateRecordCompute duration, match each attendee email to a Dataverse contact, and log an Attended row (guests without a match are skipped).
No-show detection
Filter array + Dataverse CreateRecordInvitees not present in the attendee list are matched to contacts and logged as No-Show rows (duration 0).
Post Attendance Summary
Teams PostMessageToConversationNotify the owner channel with attended/no-show counts.
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 (meeting:admin_schedule_read + meeting:admin_participants_read scopes). |
| flowlibs_ContactTable | String | contacts | Dataverse entity set to match attendees against. |
| flowlibs_TeamsGroupId | String | <your-team-id> | Owner notification team (group) id. |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Owner notification channel id. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Microsoft Dataverse | shared_commondataserviceforapps | ListRecords CreateRecord |
| Microsoft Teams | shared_teams | PostMessageToConversation |
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.
- Lead scoring
- Add an UpdateRecord on the matched contact to add engagement points proportional to flowlibs_durationminutes.
- Follow-up sequence
- Branch on flowlibs_attendancestatus to trigger different follow-ups for attendees vs no-shows (e.g. Approvals or an email).
- Webinar source
- For large Webex Events/webinars, point Get Meeting Participants at the Webex meetingParticipants endpoint with the webinar id, or add the Webex Events report endpoint.
- Lookback window
- Change Initialize Lookback Hours (e.g. 168 for weekly).
- Event-driven
- Replace the Recurrence trigger with a Webex meeting-ended trigger (or a webhook Request trigger) when available, feeding the meeting id into the existing loop.
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.01Lookback start (UTC)
Start of the lookback window.
EXPR.02Attended duration (min)
Minutes attended from joined/left ticks.
EXPR.03Contact match filter
OData filter to match an attendee to a contact.
EXPR.04No-show test
Invitee not present in the attendee list.
EXPR.05Matched contact id
First matched Dataverse contact GUID.
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.