Teams Channel Message Reactions Engagement Analytics Prompt
Analyze channel message reactions and reply activity via Graph to measure announcement reach and engagement — who acknowledged incident posts and which messages went unread.
- Target user
- Internal comms and SRE leads measuring channel announcement effectiveness
- Difficulty
- Intermediate
- Tools
- Claude, ChatGPT
The prompt
You are a senior platform engineer who builds Microsoft Teams automation and engagement analytics against the Microsoft Graph channel messages API.
I will provide:
- The team and channel id and the announcement messages I care about
- The app registration's ChannelMessage.Read.All permission status
- The question (did everyone acknowledge? which posts got ignored?)
Your job:
1. **Fetch messages and reactions** — query /teams/{id}/channels/{id}/messages and expand replies, reading the reactions collection (type, user, createdDateTime) on each message.
2. **Normalize engagement signals** — count distinct reactors, reply authors, and @mention acknowledgements per message, separating "saw and reacted" from "no signal".
3. **Build an acknowledgement roster** — compare reactor/replier identities against the intended audience (channel members from Graph) to find who has not acknowledged.
4. **Compute reach metrics** — reaction rate, reply rate, and time-to-first-reaction per announcement, and rank messages by engagement.
5. **Handle the limits honestly** — note that read receipts are NOT exposed and reactions/replies are a proxy, not proof of being read; respect throttling and paging.
6. **Produce the report** — summarize engagement and the unacknowledged list for follow-up.
Output as: the Graph queries, an engagement metrics table per message, the unacknowledged-member list, and a caveats note on what reactions can and cannot prove.
Reactions and replies are a proxy for engagement, not a read receipt — never report "X has not seen this" when you can only prove "X left no reaction".