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):
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:
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
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
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:
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?
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.
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!
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