> ## Documentation Index
> Fetch the complete documentation index at: https://docs.retellai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Zoho agent functions

> Zoho CRM tools for Retell AI agents: identify the caller, read their Deals, update Contacts, and create Tasks, Notes, and Call records on the timeline.

A [connected Zoho org](/integrations/zoho) gives your agents live tools for that org: look up the caller, read the Deals on their record, and create Tasks, Notes, and Calls. Tools run during a conversation or [before and after it](/integrations/agent-workflow), and no [contact sync](/integrations/zoho-contact-sync) is required.

## Available tools

These tools appear in your agent's function menu once the org is connected. Every tool call runs as the [authorizing Zoho user](/integrations/zoho#prerequisites). See [use integration tools in an agent](/integrations/overview#use-integration-tools-in-an-agent) for how to add and configure them.

<Note>
  Records the tools create are owned by the user who authorized the connection, so a dedicated integration user keeps the record owner and the timeline reading "Retell integration" rather than a teammate's name.
</Note>

| Tool                   | What it does                                                                              |
| ---------------------- | ----------------------------------------------------------------------------------------- |
| **Search Contact**     | Find a Contact by phone number — typically the caller's number, to identify who's calling |
| **Get Contact**        | Fetch a Contact's fields by record ID                                                     |
| **Create Contact**     | Create a Contact for a caller who isn't in the CRM yet                                    |
| **Update Contact**     | Update fields the caller confirms or corrects                                             |
| **List Contact Deals** | List the Deals associated with a Contact (up to 100)                                      |
| **Create Task**        | Create a Task on a Contact when a follow-up is agreed                                     |
| **Create Note**        | Attach a Note to a Contact with a summary of what was discussed                           |
| **Log Call Activity**  | Log the call as a Call record on the Contact's timeline                                   |

<Tip>
  **Log Call Activity** is the per-call, agent-driven version of activity logging: the agent decides when to log and what summary to write. **Log activities automatically** in the [sync settings](/integrations/zoho-contact-sync) logs every conversation with a synced contact without the agent doing anything. Use one or the other, or both if you want automatic logs plus richer agent-written ones.
</Tip>

## How the tools address a record

Zoho record IDs are long numeric strings, and Retell rejects anything else before it reaches the API.

* **Get Contact** and **Update Contact** take an `id`.
* **List Contact Deals**, **Create Task**, **Create Note**, and **Log Call Activity** take a `contact_id`, which is required: each one links its record to that Contact, through the `Who_Id` field on Tasks and Calls.
* **Search Contact** takes a `phone_number` and is how you get an ID in the first place. Point the rest at it with a [dynamic variable](/build/dynamic-variables) from its output.

**Search Contact** hands the number to Zoho's search, which matches it against every phone field on the module, and it retries with the number as the caller gave it plus its national and E.164 digit forms, so a number stored as `(415) 555-0142` still matches a caller dialing in as `+14155550142`. It returns a single Contact, preferring one whose Phone, Mobile, Home Phone, or Other Phone digits equal the number you searched.

**List Contact Deals** returns the Deals with a `count` and a `has_more` flag, so your agent can tell "no open deals" apart from "more than fit in one response."

Create and update tools return the record's `id` and a `success` flag. Map the `id` to a dynamic variable when a later tool in the same conversation needs to point at the record you just made.

## What fields can the tools write?

Retell reads the module's field definitions from your Zoho org when you configure a tool, so the input list is your schema, custom fields included. Read-only fields and fields Zoho won't accept on that operation are filtered out, and fields marked mandatory in Zoho come through as required inputs you have to fill.

Field types map the same way they do for [contact sync](/integrations/zoho-contact-sync#which-zoho-fields-can-you-map): text, number, checkbox, date, date-time, and picklist fields are all configurable, while lookups, multi-select picklists, formula fields, subforms, and file uploads aren't offered.

**Log Call Activity** is the one exception to Zoho's required fields. Zoho makes call start time and duration mandatory on a Call record, but Retell fills both in for you, so they stay optional inputs you configure only if you want to override them.

## Required permissions

Consent grants Retell the CRM scopes at connect time, but the authorizing user's Zoho profile decides what each tool can actually do:

| Tool                        | Zoho profile permission                                                          |
| --------------------------- | -------------------------------------------------------------------------------- |
| Search Contact, Get Contact | **View** on Contacts                                                             |
| Create Contact              | **Create** on Contacts                                                           |
| Update Contact              | **Edit** on Contacts                                                             |
| List Contact Deals          | **View** on Contacts and Deals                                                   |
| Create Task                 | **Create** on Tasks                                                              |
| Create Note                 | **Create** on Notes, which Retell posts through the Contact's Notes related list |
| Log Call Activity           | **Create** on Calls                                                              |

Every tool also needs the profile to read the module's field definitions, which is what populates the input list when you configure it. A missing permission doesn't flag the connection, because Zoho answers with a permission error rather than rejecting the token; that one tool fails.

## FAQ

<AccordionGroup>
  <Accordion title="Do the integration tools require contact sync?">
    No. Tools work as soon as the connection is made, and each tool is bound to the specific connection you pick when configuring it. Contact sync, analysis mapping, and automatic activity logging are separate features you opt into.
  </Accordion>

  <Accordion title="How long does a Zoho tool call get before it times out?">
    Between 6 and 10 seconds, depending on the tool (as of August 2026): 6 for **Get Contact**, 8 for the tools that write a record, and 10 for **Search Contact** and **List Contact Deals**, which do more work on Zoho's side. On a timeout or an error the agent carries on talking, so prompt it on what to say when a lookup doesn't come back.
  </Accordion>

  <Accordion title="Can a tool work a Lead or a custom module?">
    Not today (as of August 2026). The tools cover Contacts, Deals, Tasks, Notes, and Calls. Custom fields on those modules are supported and show up in the input list; custom modules and Leads aren't.
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Integration tools for prompt agents" icon="wand-magic-sparkles" href="/build/single-multi-prompt/integration-tools">
    Add Zoho tools to a single- or multi-prompt agent and test them with live requests.
  </Card>

  <Card title="Integration tools in conversation flow" icon="diagram-project" href="/build/conversation-flow/integration-tools">
    Call Zoho tools from a function node and branch on the result.
  </Card>

  <Card title="Zoho contact sync" icon="rotate" href="/integrations/zoho-contact-sync">
    Import your Zoho Contacts, write analysis results back, and log calls on the contact's timeline.
  </Card>

  <Card title="Dynamic variables" icon="code" href="/build/dynamic-variables">
    Map tool responses to variables your agent can use later in the conversation.
  </Card>
</CardGroup>
