|
| 1 | +--- |
| 2 | +title: "Use cases for virtual events webinar APIs in Microsoft Graph" |
| 3 | +description: "List of use cases that can be enabled using virtual events webinar APIs" |
| 4 | +author: "awang119" |
| 5 | +ms.localizationpriority: medium |
| 6 | +ms.subservice: "cloud-communications" |
| 7 | +ms.date: 11/18/2024 |
| 8 | +--- |
| 9 | +# Virtual events webinar API use cases |
| 10 | + |
| 11 | +Microsoft Graph virtual events webinar APIs allow you to get Teams webinar data and programmatically create, update, and cancel a Teams webinar. |
| 12 | + |
| 13 | +For you to make the best use of the Graph virtual events webinar APIs, it’s helpful to understand the personas for the users who access the Teams webinar experience: |
| 14 | + |
| 15 | +- **Organizers** are employees (in your organization) who manage the webinar. They're the authority on schedule and participants. They configure webinar attributes such as title, theme, attendee experience, and email rules. |
| 16 | +- **Presenters** are employees (in your organization) or guests who lead the webinar. |
| 17 | +- **Registrants** are users (in or outside of your organization) who registered for a webinar. They can be registered, waitlisted, or rejected. They can choose to cancel their webinar registration. |
| 18 | +- **Attendees** are registrants who joined the webinar. They need to register through a portal and answer registration questions. |
| 19 | +- **Teams tenant administrator** must authorize custom applications with appropriate permissions. |
| 20 | + |
| 21 | +You can use the following resource types to build your webinar solution: |
| 22 | +- [virtualEventWebinar](/graph/api/resources/virtualeventwebinar) – Used to create, get, update, publish, cancel, and list Teams webinars. |
| 23 | +- [virtualEventRegistration](/graph/api/resources/virtualeventregistration) – Used to create, get, cancel, and list registration records of registrants of a webinar. Provides the unique Teams webinar join URL for the registered registrant. |
| 24 | +- [virtualEventRegistrationQuestion](/graph/api/resources/virtualeventregistrationquestionbase) – Used to create, list, and delete either custom registration questions or predefined registration questions for registrants to answer when they register for a webinar. |
| 25 | +- [virtualEventRegistrationConfiguration](/graph/api/resources/virtualeventwebinarregistrationconfiguration) – Contains information about a webinar registration configuration that stores the registration portal URL of the webinar. |
| 26 | +- [virtualEventPresenter](/graph/api/resources/virtualeventpresenter) – Used to create, get, list, update, and delete a presenter for a Teams webinar. |
| 27 | +- [virtualEventSession](/graph/api/resources/virtualeventsession) – A webinar created via Microsoft Graph APIs only has one session that inherits the properties of online meetings. |
| 28 | +- [meetingAttendanceReport](/graph/api/resources/meetingattendancereport) – Each time a webinar ends, an attendance report is generated for the session but doesn’t include attendee data. |
| 29 | +- [attendanceRecord](/graph/api/resources/attendancerecord) – Provides webinar attendee data in the attendance report. |
| 30 | +- [virtual event webhooks](/graph/changenotifications-for-virtualevent) – Can receive notifications for changes to a webinar, webinar registration, session, attendance report, and so on. |
| 31 | + |
| 32 | + |
| 33 | +## Solutions you can build |
| 34 | +The following table lists some solutions you can build by using the Teams client and Microsoft Graph webinar APIs and webhooks. |
| 35 | + |
| 36 | +| Solutions | Description | |
| 37 | +| ------------- | ------------- | |
| 38 | +| [Create/update/cancel](#createupdatecancel) | Programmatically create, update, and cancel Teams webinars.| |
| 39 | +| [Data sync](#data-sync) | Pull Teams webinar data in a custom application (like attendees, registration questions, attendance report, and more). | |
| 40 | +| [Registration](#registration) | Host your own registration portal experience for a Teams webinar and sync the registration data to the Teams client. | |
| 41 | +| [Email communication](#email-communication)| Use your own email infrastructure to send out webinar-related notification emails. | |
| 42 | + |
| 43 | +> [!NOTE] |
| 44 | +> To build any Microsoft Graph solutions, you need to register and give the right permissions to your application. For more information, see [Authentication and authorization basics](/graph/auth/auth-concepts). |
| 45 | +
|
| 46 | +### Create/update/cancel |
| 47 | + |
| 48 | +- Use the [Create webinar API](/graph/api/virtualeventsroot-post-webinars) to create a draft of the event, followed by the [Publish webinar API](/graph/api/virtualeventwebinar-publish) to complete the creation and make it visible to its audience. |
| 49 | + - The webinar created via Microsoft Graph APIs is a Teams webinar that’s visible and editable in the Teams client. |
| 50 | + - Just like in Teams, only the organizer can create, publish, and cancel webinar events. The create webinar API only supports delegated permissions on behalf of the organizer. |
| 51 | +- Like in Teams, coorganizers can update webinars. To update webinars, use the [Update webinar API](/graph/api/virtualeventwebinar-update) with delegated permissions on behalf of the coorganizer. |
| 52 | +- Subscribe to [change notifications](/graph/changenotifications-for-virtualevent#subscribable-virtual-events) to get updates about any changes made to the webinar. |
| 53 | + |
| 54 | +### Data sync |
| 55 | + |
| 56 | +- Subscribe to [change notifications](/graph/changenotifications-for-virtualevent#subscribable-virtual-events) to get updates about any changes made to the webinar. |
| 57 | +- To get attendance report data for a webinar, use [List attendance records](/graph/api/attendancerecord-list) or [Get attendance record with a query option](/graph/api/meetingattendancereport-get#example-2-get-the-attendance-report-for-a-webinar-session-by-id). |
| 58 | + - To get attendance information of a webinar attendee, after a list or get request, map the **Id** property in [virtual event registration](/graph/api/resources/virtualeventregistration) to the **registrationId** property in [attendance record](/graph/api/resources/attendancerecord) (currently only available in the beta endpoint). |
| 59 | +- Get data for [a specific webinar](/graph/api/virtualeventwebinar-get), [list all the webinar in a tenant](/graph/api/virtualeventsroot-list-webinars), list webinars where the [user is an organizer or coorganizer](/graph/api/virtualeventwebinar-getbyuserrole), list webinars where the [specified user is either the organizer or coorganizer](/graph/api/virtualeventwebinar-getbyuseridandrole). |
| 60 | +- To get the Teams webinar registration portal URL for your webinar, use [Get webinar registration configuration](/graph/api/virtualeventwebinarregistrationconfiguration-get). |
| 61 | + |
| 62 | +### Registration |
| 63 | + |
| 64 | +- Use [Create registration](/graph/api/virtualeventwebinar-post-registrations) to programmatically register users to your webinar. Organizers, coorganizers, and presenters don’t need to register. Whether or not registrants have Microsoft Entra accounts affects the permissions you need to call the API. |
| 65 | +- [CREATE registration questions](/graph/api/virtualeventregistrationconfiguration-post-questions) (predefined or custom) attendees have to answer required questions during registration. |
| 66 | +- After the registrant registers for the webinar, use [List sessions](/graph/api/virtualeventregistration-list-sessions) to get the unique `joinWebURL` for the webinar. |
| 67 | + |
| 68 | +### Email communication |
| 69 | + |
| 70 | +- You can turn off email communications to attendees when you [create the webinar](/graph/api/virtualeventsroot-post-webinars). In the **settings** property, set `isAttendeeEmailNotificationEnabled` to `false`. Emails are still send to organizers, coorganizers, and presenters (internal and external). |
| 71 | +- You can subscribe to [change notifications](/graph/changenotifications-for-virtualevent#subscribable-virtual-events) to build your own customized email communication system. |
0 commit comments