Zoom Phone API - retrieve call logs filtered by the "Call me on" event (1111)

Context

Our company is using the Zoom Phone in Salesforce for Lightning integration.
Our employees uses the “Call Me On” feature when their internet speed is slow.

Currently, this is not supported in the integration with Salesforce (source):

image

We have also confirmed that no Activity/Task are created/logged for this type of call in Salesforce.

Problem

We would like to build our own integration that listens (webhook) or polls Zoom API for these “Call Me On” calls, then upload them to Salesforce ourselves.

However, this doesn’t seem to be possible with the /v2/phone/call_history (docs) or any other API/webhook events we’ve looked into - the main challenge being that there’s no way to differentiate regular calls from “Call Me On”.

Potential Workaround?

When analysing Zoom’s UI, under Admin -> Phone System Management -> Logs , this does appear to be possible:

Although the API being used (from Developer Tools → Network Tab) appears to be:

https://us01pbx.zoom.us/api/v2/pbx/account/<ACCOUNT_ID>/call_log_v3/list?startTime=2025-03-22&endTime=2025-03-28&events=1111&page_number=1&page_size=15

Key parts being:

  • us01pbx.zoom.us/
  • /api/v2/pbx/account/call_log_v3/list
  • events=1111

Is there a way to replicate this using Zoom’s officially documented API?

A lot of our existing code is built on top of

Thank you!

Hey @tamn
Thanks for reaching out to us!
Happy to help here!
Have you tried calling the Get call path endpoint with the specific call log id you are trying to look into?
In the response of the Get call path endpoint, you will receive the “event” field that will indicate the event within the call log

Hi Elisa,

Thank you for responding. I believe what we’re after is the ability to retrieve these calls with "event": "Call Me On" (whose ID are not known), e.g. either through:

  • polling a list API endpoint periodically
  • using a webhook to listen for when a new “Call Me On” call log is created

As our goal ultimately is to track these “Call Me On” zoom calls in our CRM (Salesforce), which isn’t done automatically by the Zoom for Salesforce Integration.

We have also considered listening (subscribing) to all new call events, then using this API to check if it’s a Call Me On and only take action when the event matches before manually creating a corresponding record on Salesforce. However, this means we would be making a lot of unnecessary API requests (to regular calls) which could exceed our API usage limit.

Hey @tamn
I see!!!
Ok, but have you looked into the phone.caller_call_history_completed or the phone.callee_call_history_completed events??? They do have the “event” field in the payload

So with the call_log_id, then you can call directly the Get call path endpoint to get more details about the call

We do not have a way to call endpoints and pass the “call_me_on” in query params

Yep, I saw the webhook events.

However, I believe the event field here in the payload represents something else entirely.

You can see from the schema of the caller webhook that it’s an enum with just one value, phone.caller_call_history_completed:

Likewise for callee, phone.callee_call_history_completed.

Currently we are looking for any way at all to differentiate between regular calls from “Call me on” calls, instead of having to ping our Salesforce Database to check if the call exist (and assume the absence means it was a “Call me on” call).

The worst case workaround is probably webscraping the Admin -> Phone System Management -> Logs UI which calls some internal zoom API mentioned in my original post. If we need to resort to this, do you know if there is a way to authenticate for web from an application rather than requiring username/password? I’ve checked the scopes available for Zoom and there isn’t a web scope like that of services like Salesforce for UI automation.


Update:

Something else I discovered from the UI is when clicking the “Export” button, there is this route:

https://us01pbx.zoom.us/api/v2/pbx/account/<ACCOUNT_ID>/call_log_v3/export?startTime=2025-03-27&endTime=2025-04-02&events=1111&page_number=1&page_size=15

Which gives a CSV with the following headers:

view all headers
  • NO.
  • Direction
  • Call ID
  • From Name
  • From Email
  • From Ext.
  • From Phone Number
  • To Name
  • To Email
  • To Ext.
  • To Phone Number
  • Operator Name
  • Operator Ext.
  • Type
  • Start Time
  • Event
  • Call Result
  • Duration
  • Wait Time
  • Device
  • Recorded
  • Voicemail
  • Department
  • Cost Center

Specifically, both Event and Device has value “Call Me On”.

Unfortunately, the Device value here is not reflected in any official API fields when testing with real data from our Zoom admin account (i.e. caller_device_type and caller_device_type are not defined despite listed in the /phone/call_history_detail/{callLogId} API).

Hey @tamn
Further down in the schema, there is another event field with multiple values, that’s the field I am suggesting. Have you tried and see if you get the “call me on” in that field?

1 Like

Hi Elisa,

Our team has settled for the other solution for now and have implemented it, so I won’t be able to test this in the near future. However, it looks to be the right place to pull the information when compared to the UI, although I think the enum in the documentation may need to be updated for a few missing values.

Thank you for your time and assistance on this matter - I’ve marked the post as resolved.

1 Like

Thanks for sharing that update with me @tamn
I will keep debugging and make a note for our Docs team in case the “call me on” is actually being returned but not documented.
Thanks!

1 Like

Just wanted to update you here @tamn
I set up the “phone.caller_call_history_completed” event and I received the event “call_me_on” in the payload.
I will pass this feedback to our Docs team so it is documented :slight_smile:

1 Like

Thank you for the update @elisa.zoom - much appreciated!

1 Like