Zoom recently introduced new Zoom Meeting API which allow us to retrieve the data about on demand participants.
OUR USE CASE:
We use this API to retrieve the data about the participants who watched the recording of our webinars. The crucial part is the number of minutes because based on that our customers receive points in our application to maintain their certifications. We run this API every hour to get the closest to real-time data possible.
PROBLEM:
When running API it returns data for users who haven’t finished watching their webinars. So for example the API is executed at 1:00pm while Attendee01 is watching the recording and he already watched 18mins of the recording. He completed watching the recording at 1:20pm so in total he watched for 38mins. The next execution of the API is at 2:00pm and then we see data for same attendee but the number of minutes is 38. In our database we have two entries: one for 18mins and one for 38mins. We can take the latest value from this day to have the real duration which is 38 mins. However there are use cases where attendees watch first half of webinar, then take a break and then watched the second part. So that’s the reason we are accumulating the number of minutes watched during one day. So as a result we see that attendee watched the recording for 56mins (38+18) but in fact he watched for 38mins. Our application is misled by the entry returned while the attendee was still watching which is 18mins. In my opinion that’s the bug of the API as I cannot see any use case for having the duration of watching while the watching is not finished. Can we have that fixed?
Thank you for your feedback. I can definitely see how the duration can be confusing and cumbersome. Just a general question before diving into specifics here:
When you say your database has two entries, is the first entry the initial time watched and the second the whole duration? Or is the second the initial plus the remaining time? If the latter, have you considered subtracting the first value from the second to get both durations?
Also, I kindly ask can you answer the following questions:
Could you tell me more about why this feature is important to you?
What is the problem that it is causing around your usage of our product?
What benefits would you see from having this built?
Hey Donte,
so the first entry is retrieved while attendee is in the middle of watching the recording and till that point of time he watched 18mins. The second entry is the whole duration. Attendee finished watching the recording before second entry is retrieved. So the first one is not needed and confusing.
Additionally, both those entries have the same date_time value.
Answering your questions:
Our company’s product is the platform on which you can get certified on particular features (similar model to Salesforce). In order to maintain the certification our customers have to collect points. Depends on the certification, it requires more or less points to collect. Also, there are multiple ways to earn those points and one of the way is to attend live webinar or watch the recording of it. Webinars are learning materials which explains new features etc. Attendee will earn the points for the webinar if he watched at least the half of the duration (if the webinar is scheduled for 1 hour or more) or full duration (for webinars that are scheduled for 30mins). So it’s important to get the real duration for the attendee.
The problem is that we cannot ensure the number of minutes (duration) calculated by our application is accurate. This calculation is based on couple of zoom APIs: the ones returning data for live webinars and Zoom Meeting API which is responsible for on-demand webinars (recordings). Also, we have a use case that the attendee can watch the recording in batches, f.e. he watched 20mins of the recording in the morning and the other 20mins in the afternoon. So because of that we are accumulating the number of minutes watched during one day. Due to having these non-consistent entries from Zoom Meeting API the total duration is much higher than real one.
The main benefit is that at the time of retrieving the data from Zoom Meeting API we are ensured that the attendee finished his watching at this point of time. Also when retrieving the data again in the next hour (it’s 1hr job) we’ll see the same entry which we saw one hour ago.
Let me know if you need more explanation! Not sure if it’s clear enough.