Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs
Hi CG,
Thank you for posting your question in the Microsoft Q&A forum.
From your description, I’m unsure which of the two scenarios you need, so I’ll outline both and the correct approach for each:
1) Log call metadata for reporting/analytics (no media recording)
If your goal is to log call metadata (participants, modalities, quality/diagnostics, etc.) for calls that occurred in your tenant, you do not need a bot. Use Microsoft Graph Change Notifications for Call Records to receive webhooks when a call record is created:
- Docs: https://learn.microsoft.com/en-us/graph/changenotifications-for-callrecords
- Important behavior: a call record is created only after the call/meeting ends, and it remains available for 30 days. This means the subscription cannot notify you “at ring” or “at call start” in real time; it’s inherently post-call.
At this time, there isn’t a Graph subscription that will fire tenant‑wide, real‑time notifications for every incoming/outgoing PSTN or 1:1 Teams call unless a bot is a participant in those calls.
2) Record call media (audio/video) in real time
If your intent is to have a bot join a call and record media, use Microsoft’s Policy‑based Compliance Recording model:
- Docs: https://learn.microsoft.com/en-us/microsoftteams/teams-recording-compliance
- Sample: PolicyRecordingBot that demonstrates a recording bot that receives media streams; persisting media is left to you.
With this approach, your organization must:
- Create/configure a ComplianceRecordingPolicy,
- Associate your bot’s application instance with that policy, and
- Assign the policy to the target users.
When users who are in-scope for the policy join calls/meetings, Teams invites your bot; your bot then receives real‑time media for compliant recording.
Additionally, you mentioned setting up a multi‑tenant bot. However, be aware that Microsoft’s recent guidance indicates deprecation of creating new multi‑tenant bots and a move toward single‑tenant apps with per‑tenant onboarding (admin consent + application instance + policy assignment). If you’ve recently created a multi‑tenant bot, this could affect authentication with the Teams channel and future supportability.
Since you also mentioned that you “subscribed to an event but aren’t receiving notifications,” please share exactly what you subscribed to so we can assist you to troubleshoot the issue:
- Resource URI (e.g.,
communications/callRecords,communications/onlineMeetings(...)/meetingCallEvents, etc.) - Subscription payload you posted (redact secrets):
changeType,resource,notificationUrl,expirationDateTime, and whetherincludeResourceData/certs were used - The HTTP response your endpoint returns for validation and for notifications (remember Graph expects a quick 2xx)
I hope the information above helpful.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.