Call Monitor via API

Description
Curious if we can access details on Phone Monitors via API. Who they are, which calls had one present vs which ones did not, etc. Couldn’t find that readily available on your API documentation, but perhaps I missed it.

@wposson,

Thank you for posting in the Zoom Developer Forum. I am happy to help. To start, could you please clarify what you mean by who they are and which calls had one one present ? If you could provide specific details on what you would like returned in the payload and how you plan to use that information in your workflow, it would help us offer guidance or suggest alternative solutions.

Hey Donte, sure thing. I want to be able to identify which calls had a monitor listening in vs which calls did not. I would also like to know the identity of the monitor…an ID that we can connect to the User API data would likely fit the bill.

@wposson,

Thanks for the details! How does the monitor join the meeting? Is the monitor an actual person or a meeting bot? In both cases, I’d suggest implementing an event-driven workflow, wherein you listen for meeting. start and participants.join meeting Webhook events to identify when the monitor joins the meeting. You can get the userID of the monitor via the Webhook event payload. Here is an example Webhook event payload for reference:

POST meeting.participant_joined

https://developers.zoom.us/docs/api/rest/reference/zoom-api/events/#operation/meeting.participant_joined

Example Payload :

{
  "event": "meeting.participant_joined",
  "event_ts": 1626230691572,
  "payload": {
    "account_id": "AAAAAABBBB",
    "object": {
      "id": "1234567890",
      "uuid": "4444AAAiAAAAAiAiAiiAii==",
      "host_id": "x1yCzABCDEfg23HiJKl4mN",
      "topic": "My Meeting",
      "type": 8,
      "start_time": "2021-07-13T21:44:51Z",
      "timezone": "America/Los_Angeles",
      "duration": 60,
      "participant": {
        "user_id": "1234567890",
        "user_name": "Jill Chill",
        "id": "iFxeBPYun6SAiWUzBcEkX",
        "participant_uuid": "55555AAAiAAAAAiAiAiiAii",
        "date_time": "2021-07-13T21:44:51Z",
        "email": "jchill@example.com",
        "registrant_id": "abcdefghij0-klmnopq23456",
        "participant_user_id": "rstuvwxyza789-cde",
        "customer_key": "349589LkJyeW"
      }
    }
  }
}

Thanks Donte, that makes sense but I’m not sure it would let me identify who joined the phone call as a monitor vs who joined as a participant. Monitors are people, you already have API calls to identify who belongs to a monitor group, pull the list of various monitor groups, etc (https://developers.zoom.us/docs/api/rest/reference/phone/methods/#operation/listMonitoringGroup). My problem is I don’t see anything that will allow me to identify who joins a phone call as a monitor. Open to suggestions on Webhook, but I think your suggestion just identifies people who join, not their role?

Somewhere in your built-in reporting there’s a way to identify these people on each phone call. I can ask our stakeholders how they got to that view if it would help?

Thanks for the clarification, @wposson! Yes, please share a screenshot of the view you are referencing and I can help you figure out how to identify the monitor.

Hi Donte,
Apparently I can’t upload images. It looks like the report is under Admin > Phone System Management > Logs, and then where it says Export, change the middle drop down to “Monitor.” I’m not sure what the default is or what the filter is called. It might be Path. Let me know if that’s helpful, if not please reach out to me via email and I will send you the screenshot.
Thanks

Any thoughts here @donte.zoom?

@wposson ,
My test account doesn’t have any logs for Monitor log export. So I will need some time to set up call monitoring to test on my end as there is no data when I filter for Monitor:

However, when a monitor is using one of the call monitoring functions, it will show as on a call. Therefore, the monitor should appear on the call log. In checking the Phone APIs there are Call Monitor Phone APIs:

Get a list of monitoring groups on an account

https://developers.zoom.us/docs/api/rest/reference/phone/methods/#operation/listMonitoringGroup


Regarding call logs, you can get Account, User, and call details logs via API:

Get account’s call logs

https://developers.zoom.us/docs/api/rest/reference/phone/methods/#operation/accountCallLogs

Get user’s call logs

https://developers.zoom.us/docs/api/rest/reference/phone/methods/#operation/phoneUserCallLogs

Get call details from call log

https://developers.zoom.us/docs/api/rest/reference/phone/methods/#operation/getCallLogMetricsDetails


There is also Callee and Caller call log is completed Webhook you can listen for as well :

Caller call log is completed

https://developers.zoom.us/docs/api/rest/reference/phone/events/#operation/phone.caller_call_log_completed

Callee call log is completed (Webhook)

https://developers.zoom.us/docs/api/rest/reference/phone/events/#operation/phone.callee_call_log_completed

Thanks @donte.zoom , please let me know how the testing goes. I’ve looked at the Monitoring Group API, and I see how I can use that to identify people who are in various Monitoring groups, and I get that from there you can cross walk from who is in a Monitoring group to what calls they were part of, but (unless I’m missing something), that doesn’t tell me if they joined as a Monitor, or as a normal call participant. That’s the piece I’m looking for.

Thank you both for the solution to this problem

Hi @donte.zoom , how is the testing going?

I appreciate your patience on this, @wposson. I am still looking into this and will let you know what I learn when information is available.

@donte.zoom Hey Donte, it’s been about three weeks of testing and I need to be able to update our stakeholders with a go or no-go on the availability of this data. At this point, the lack of knowing one way or the other is holding up our ability to make key business decisions. Let’s call the ball. Is there a way for us to access the data we want via API or Webhook?

Hi @wposson !
Thanks for your patience here, I’m replying on behalf of my colleague Donte since he is out of office.

Unfortunately, there’s no way to get the data you are looking for via API. Feel free to make a feature request here:

Alternatively, you can implement your own naming scheme and use that as a way to identify call monitor Via Webhook payload or as way to trigger to take some programmatic action

And you can tag me on it and I’ll make sure to submit this internally :slight_smile:

Cheers
Elisa

1 Like

Thanks Elisa, appreciate the response. Will submit a request shortly.
Best,
Wes

1 Like