Beam Help
Get help now

How-to · Zoho CRM

How to retrieve call preferences in Zoho

Fetch call settings and preferences from your Zoho account.

Retrieving call preferences in Zoho CRM is straightforward via the telephony settings API endpoint, which returns your organisation's current telephony configuration in a single request.


Why this matters


When building integrations or auditing your Zoho CRM setup, you may need to programmatically inspect how telephony and call routing are configured. This is especially useful before applying updates, so you can compare existing preferences against intended changes. It also helps support teams — like ours at Beam Help (independent expert support for Zoho, not official Zoho support) — diagnose misconfigured call settings without navigating the UI manually.


Step-by-step


Step 1. Ensure you have a valid, authenticated connection to Zoho CRM. Your access token must be current — the system checks expiry and automatically refreshes the token using a stored refresh token if it is within 120 seconds of expiring, so stale credentials are handled gracefully before the request is made. [5]


Step 2. Issue a GET request to the /settings/telephony endpoint using API version 6. This is the designated operation for fetching call preferences from Zoho CRM. [1]


Step 3. In Python, the call is encapsulated as follows — invoke the getcallpreferences method on your CRM client instance, which internally fires a GET against /settings/telephony at version 6: [1]


result = crm_client.get_call_preferences()

Step 4. Parse the response object returned by the API. This will contain your organisation's telephony configuration data, which you can inspect, log, or use as a baseline before making any updates. [1]


Step 5. If you need to modify the preferences after reviewing them, the corresponding update operation uses a PUT request to the same /settings/telephony endpoint, passing a dictionary of updated values as the request body. [6]


crm_client.update_call_preferences({"key": "value"})

Common pitfalls


  • Token expiry mid-request: If your access token expires exactly as the request fires, you may receive a 401 error. The connection layer attempts to refresh tokens proactively (120 seconds before expiry), but ensure your token storage is up to date and that the refresh token itself has not expired. [5]

  • Wrong API version: The telephony settings endpoint specifically requires version 6. Using a different version number in your request may result in a 404 or unexpected response format. [1]

  • Missing connection record: If no Zoho connection exists for the authenticated user in your system, the API client will return None rather than raising an explicit error, so always validate that a connection is present before attempting the call. [4]

What to check


  • Confirm the response from GET /settings/telephony contains the expected telephony fields for your organisation before treating the data as authoritative. [1]
  • Verify your access token was refreshed successfully if you encounter authentication errors — check that the stored refresh_token is still valid. [5]
  • If you plan to follow up with an update, cross-reference the fields returned by the GET response against the dictionary you intend to pass to updatecallpreferences to avoid overwriting settings unintentionally. [6]

Sources cited

  1. [1] GET /settings/telephony
  2. [2] server.py: chat
  3. [3] server.py: chat_stream
  4. [4] server.py: get_zoho_api
  5. [5] server.py: get_zoho_connection
  6. [6] PUT /settings/telephony
  7. [7] server.py: chat_plan_stream
  8. [8] server.py: chat_plan
How to retrieve call preferences in Zoho | Beam Help — Beam Help