- 15 Aug 2024
- 3 Minutes to read
- Print
- DarkLight
- PDF
Zoom Phone
- Updated on 15 Aug 2024
- 3 Minutes to read
- Print
- DarkLight
- PDF
Zoom Phone API
Any instance where an entry in the below configuration has a leading $ represents a parameter that needs to be replaced with a static value.
Parameters in this document:
- $client_id and $client_secret - The Client ID and Client Secret will be used to authenticate calls to the Zoom Phone API. To create these, you will need to Create an OAuth application, and documentation on how to do this can be found here. Make sure that when registering your application, the
Redirect URL
value is set tohttps://platform.panoply.io/sources/callback.html
. Upon successful registration, you will be provided with a Client ID and Client Secret. - $resource_name - The Resource Name represents the name of the resource to be appended and used as part of the Destination Table name. The value that should be used here can be found in the API Resources table below.
- $endpoint - The Endpoint represents the data that you would like to ingest into Panoply from the Zoom Phone API. The value that should be used here can be found in the API Resources table below.
- $url_parameters - The URL Parameters are used to further specify the a given API call, such as limiting the number of results per page or the timeframe for which data should be collected. The value that should be used here can be found in the API Resources table below.
- $data_key - The Data Key represents the location of the data in the API response from Zoom Phone. The value that should be used here can be found in the API Resources table below.
- $incremental_starting_value - The Incremental Starting Value represents the earliest date that data should be collected for, given in
yyyy-mm-DD
format. For example, if you would like your historical data to go back to the start of 2021, this value would be set to2021-01-01
.
API Resources
For a list of API Resources available for the Zoom Phone API, please refer to the list of endpoints found below:
Resource | $resource_name | $endpoint | Paginate? | $url_parameters | $data_key |
---|---|---|---|---|---|
Auto Receptionists | auto_receptionists | auto_receptionists | Y | page_size=100 | auto_receptionists |
Billing Accounts | billing_accounts | billing_accounts | N | billing_accounts | |
Blocked List | blocked_list | blocked_list | Y | page_size=100 | blocked_list |
Call History | call_history | call_history | Y | page_size=300&from=<<date_format(date_add({incval}, 'days', -1),'%Y-%m-%d')>>&to=<<date_format(utcnow(),'%Y-%m-%d')>> | call_logs |
Common Areas | common_areas | common_areas | Y | page_size=100 | common_areas |
Roles | roles | roles | N | roles | |
Shared Line Groups | shared_line_groups | shared_line_groups | Y | page_size=300 | shared_line_groups |
Sites | sites | sites | Y | page_size=300 | sites |
SMS Campaigns | sms_campaigns | sms_campaigns | Y | page_size=300 | sms_campaigns |
Users | users | users | Y | page_size=100 | users |
Connector configuration
- Base url: https://api.zoom.us/v2/users/phone/$endpoint
- Method: GET
- URL Parameters: $url_parameters
Destination Table naming convention is ultimately up to you as the data owner. One common structure used for the Zoom Phone API is zoom_phone_$resource_name
Authorization
When creating multiple connectors in Panoply to ingest different Resources, be sure to go through the Authorization outlined below rather than cloning an existing connector. This will ensure that a different set of refresh credentials are used, and thus the connectors can all run successfully without revoking each other’s access.
- Authorization: OAuth2
- Authorization URL: https://zoom.us/oauth/authorize
- Access Token URL: https://zoom.us/oauth/token
- Client Id: {client_id}
- Client Secret: {client_secret}
- Scope: phone:read:admin
- Access Token header key: Authorization
- Token prefix: Bearer
- Add to: Headers
- Refresh access token
- Enable:
- Use refresh token once:
- URL: https://zoom.us/oauth/token
- Method: POST
- URL Parameters: grant_type=refresh_token&client_id={client_id}&client_secret={client_secret}
- Headers: {"Host": "zoom.us"}
- Access token response key: access_token
- Refresh token response key: refresh_token
- Use Bearer authentication:
- Error status codes: 401; 403
- Refresh access token
Variables
Variable name | Variable value |
---|---|
client_id | $client_id |
client_secret | $client_secret |
Pagination
Only applies to resources listed in the API Resources table above where the Pagination column is Y
.
- Enable:
- Get next page value: Dynamic (next page value included in the response)
- Next page key in response: next_page_token
- Use next page value: As a URL parameter value
- URL/body key: next_page_token
- Stop iterating when: No next page in response
Advanced Settings
- Data key: $data_key
The Incremental Key is only applicable to the Call History
resource.
Column name | Column value |
---|---|
lastTimeSucceed | $incremental_starting_value |