Fetching related records in Zoho CRM requires a single GET request that targets a specific parent record and names the related list (sub-module) you want to retrieve — here's how to do it correctly.
Why this matters
When you work with Zoho CRM data, records rarely exist in isolation. A Contact may have linked Deals, a Deal may have associated Activities, and an Account may have multiple open Cases. Knowing how to pull these related lists programmatically lets you build richer integrations, automate follow-ups, and surface the full context of any record without navigating the UI manually.
Step-by-step
Step 1. Identify the three required path parameters before making any call: the module (m), the record ID (rid), and the related list API name (rel). For example, to fetch the Contacts linked to a specific Account, m would be Accounts, rid would be the Account's unique record ID, and rel would be Contacts. [3]
Step 2. Construct your request using the GET /{m}/{rid}/{rel} endpoint pattern. The operation is named getrelatedrecords in the Zoho CRM API layer. A minimal Python call looks like this: [3]
get_related_records(m="Accounts", rid="<record_id>", rel="Contacts")
The method internally fires a GET request to /<m>/<rid>/<rel> and accepts an optional p parameter for additional query options such as pagination. [3]
Step 3. Pass pagination or filter options via the p dictionary argument if you expect a large result set. The p parameter maps directly to query-string options supported by the endpoint, so you can include keys like page or per_page as needed. [3]
Step 4. Once you receive the response, you can build direct browser links to any returned records. The CRM URL pattern follows https://crm.zoho.{dc}/crm/tab/{Module}/{RecordId}, where dc is your data-centre suffix (e.g., com, eu, in). [1] If your organisation uses a non-default data centre, substitute the correct suffix so the links resolve properly. [1]
Step 5. If you are working inside a tool-orchestration layer (such as the one our team at Beam Help builds on top of Zoho CRM), the result from getrelatedrecords can be passed directly into a link-builder utility. That utility accepts the raw result dict, the tool name, the params used, the app type, and the data-centre/org identifiers, then returns a list of named URL objects ready to surface in a chat or dashboard interface. [8]
---
*Beam Help is independent expert support for Zoho — we are not official Zoho support.*
---
Common pitfalls
- Wrong
relname. The related list name must match the API name Zoho expects, not the display label. For instance, the UI may show "Open Activities" but the API name could beActivities. Check the CRM API reference for the exact string. - Missing record ID. Passing an empty or malformed
ridwill cause the request to fail silently or return an error payload. Always validate that the parent record ID is a non-empty string before calling the endpoint. [3] - Data-centre mismatch. If your CRM organisation is hosted on the EU or IN data centre and you hard-code
.comin any constructed URLs, the links will be unreachable. Always derive thedcvalue from your stored connection metadata. [1] - Empty
pparameter. Thepargument defaults to an empty dict when not supplied (p or {}), so omitting it is safe — but forgetting to paginate on large related lists means you will only receive the first page of results. [3]
What to check
- Confirm that the
relvalue you are using matches the exact API name of the related list in your CRM configuration, not just its UI label. [3] - Verify that the
dc(data-centre) value stored in your connection record matches the domain your CRM organisation actually lives on, so any generated record links resolve correctly. [1] - After retrieving results, check that the response contains the expected sub-records and is not an error object — a missing or incorrect
ridis the most common cause of an empty or failed response. [3]