Create and track calls with zoom phone zoomphonecall URI and webhooks - questions

We have a few questions about use of the Zoom Phone interface that hopefully someone can help with.

We are building a Zoom Phone interface that needs to do the following while using the application:

  • Allow agent to dial a number selected from a list on a browser page.
  • Associate the call with a application contact record.
  • Determine duration and outcome of the call that was just started by that agent and associate with contact.
  • Locate and process recording associated with that call and contact, when it is available.
  • Locate and process transcript associated with that call and contact, when it is available.

We have not found an API that would allow an application to start a call using Zoom Phone.

A question is whether an API is available to use from an app server, as that would greatly simplify the dialing process .

We found references to the zoomphonecall URI scheme, which would be used in the client browser.

The format of the URI is – zoomphonecall://{phone number to call}?callerid={caller id}

We also found references to Zoom Phone Webhooks that are invoked when specified events occur.

However, there does not seem to be a unique key to tie the zoomphonecall URI requests and corresponding webhook invocations.

The phone number is available, but would not necessarily be unique, such as several agents calling into a PBX at the same time.

The caller id must be an extension or an E.164 number, according to the description, so a unique caller id could not be used.

Another question is whether the caller id in the URI scheme can be used to match the extension_id in the webhooks.

That would be only a partial solution, as the same caller_id and extension_id could be in multiple call requests.

Is there a recommended solution beyond just using the most recent one?

How can the calls that the agent is making directly through the zoom phone be differentiated from those made using zoomphonecall?

We need to process only the calls that the agent is requesting to be started through application.