Beam Help
Get help now

How-to · Zoho CRM

How to retrieve service preferences in Zoho

Access service configuration and preference settings via API.

Retrieving service preferences in Zoho CRM is done through a single authenticated GET request to the /settings/service_preferences endpoint, which returns the current service configuration for your organisation.


Why this matters


When building integrations or automations on top of Zoho CRM, you often need to inspect how services are configured before making downstream decisions. The service preferences endpoint gives you a programmatic snapshot of those settings without navigating the UI. This is especially useful during onboarding audits, environment comparisons, or when debugging unexpected service behaviour. As independent expert support (not official Zoho support), Beam Help documents these patterns so your team can move faster.


Step-by-step


Step 1. Ensure your user has an active, authenticated Zoho CRM connection. Before any API call is made, the system checks the stored connection record and automatically refreshes the OAuth token if it is within 120 seconds of expiry — so you should never need to manually trigger a refresh mid-request. [7]


Step 2. If the access token does need refreshing, the OAuth layer exchanges the stored refresh token for a new one and updates both accesstoken and tokenexpiresat in the connection record. Confirm that accesstoken is present in the response before proceeding; if it is absent, the refresh has failed and the call should be aborted. [8]


Step 3. Instantiate your Zoho CRM API client using the authenticated connection. Pass the apidomain, the current accesstoken, and a token_refresher callback so that any mid-request expiry can be handled transparently without interrupting the call. [2]


Step 4. Call the service preferences endpoint by issuing a GET request to /settings/service_preferences using API version 6. In Python this looks like:


def get_service_preferences(self):
    return self.c.request("GET", "/settings/service_preferences", version=6)

The method returns the full service preferences payload for your CRM organisation. [1]


Step 5. Parse the response body. The returned data reflects the current services configuration. Store or log the result as needed for your audit or integration logic. [1]


Common pitfalls


  • Missing or expired token. If accesstoken is not present after a refresh attempt, the API client will have no valid credentials and the request will fail with a 401. Always validate that the token refresh returned a proper accesstoken key before proceeding. [8]

  • Wrong API version. The getservicepreferences call explicitly targets version 6 of the Zoho CRM API. Using a different version number may return a 404 or an unexpected response structure. [1]

  • No connection record found. If the user has not completed the OAuth flow, getzohoconnection returns None and the API instance cannot be created. Handle this case by prompting the user to reconnect before attempting any settings retrieval. [2] [7]

  • Domain mismatch. Zoho operates across multiple data centres (e.g., .com, .eu, .in). The api_domain stored in the connection record must match the data centre where the CRM organisation is hosted, otherwise requests will be routed incorrectly. [2]

What to check


  • Token validity: Confirm that accesstoken is present and tokenexpires_at is in the future before the request is dispatched. [7]
  • API version: Verify that your client is explicitly passing version=6 when calling /settings/service_preferences. [1]
  • Connection record integrity: Check that apidomain and refreshtoken are both populated in the stored connection; a missing refresh_token will prevent recovery from any token expiry. [7] [8]

Sources cited

  1. [1] GET /settings/service_preferences
  2. [2] server.py: get_zoho_api
  3. [3] server.py: chat
  4. [4] server.py: chat_plan_stream
  5. [5] server.py: chat_plan
  6. [6] server.py: get_zoho_connection
  7. [7] zoho_oauth.py
How to retrieve service preferences in Zoho | Beam Help