> For the complete documentation index, see [llms.txt](https://docs.eesel.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eesel.ai/integrations/helpdesks/zoho-desk.md).

# Zoho Desk

Invite your AI teammate into Zoho Desk so it drafts or sends replies on tickets, tags and routes the rest, and learns from your help center and past tickets.

Invite your AI teammate into Zoho Desk and it works like any other agent on your team. It reads your help center and your past tickets first, so it already knows how your team answers before it handles anything. Then it picks up tickets the way you tell it to: drafting replies for a person to check, answering the routine ones itself, tagging and routing the rest.

You stay in control the whole way. Nothing runs until you create an automation. Then each action can run on its own, ask you first, or stay off.

In this example a customer emailed the support address, that raised a ticket, and the automation left its drafted reply as a private comment for the team.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-0b93a0eb8c41edc9bccc7b393d3565f9cb223e20%2Fzoho-desk-note-on-ticket.png?alt=media" alt="A Zoho Desk ticket with a private comment from eesel holding a drafted reply, marked Private so only the team can see it"><figcaption><p>A Zoho Desk ticket with the drafted reply waiting as a private comment.</p></figcaption></figure>

## Quick start

{% stepper %}
{% step %}

### Ask your agent to connect Zoho Desk

Open the chat in your dashboard and ask it to connect Zoho Desk. Your agent posts a link to approve in Zoho. Prefer to click? **Integrations** in the left sidebar has the same option.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-83402767c37782e906f7857db6944005899decab%2Fzoho-desk-connect-chat.png?alt=media" alt="The dashboard chat where the user asks the agent to connect Zoho Desk, and the agent explains there is one browser authorization and posts the connect link"><figcaption><p>The agent posts the link to approve in Zoho.</p></figcaption></figure>
{% endstep %}

{% step %}

### Approve it in Zoho

Open the link and sign in to Zoho if you are not already. Zoho names the Zoho Desk portal the approval applies to and lists what your agent is asking for. Tick the box, then click **Accept**.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-51b324f23cdd3991ba5bd66d8b7bc04342c4ff82%2Fzoho-desk-authorize.png?alt=media" alt="Zoho&#x27;s authorization screen for a Zoho Desk portal, listing the permissions eesel AI is asking for, with a consent checkbox and Accept and Reject buttons"><figcaption><p>Zoho lists what your agent is asking for before you accept.</p></figcaption></figure>

The list covers reading and updating tickets, creating tickets, reading your settings, searching records, reading help center articles, and managing webhooks. The webhook permission is how your agent hears about new tickets, so accept everything.

Zoho sends you back to the dashboard. Your agent confirms the connection in the chat and starts pulling your content in.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-c893220458b88b260c564471611531be55018bd2%2Fzoho-desk-connected-chat.png?alt=media" alt="The dashboard chat showing a connected event for Zoho Desk, the agent confirming it is connected, and an offer to look at the tickets and help center"><figcaption><p>The agent confirms the connection and offers to look around.</p></figcaption></figure>

**Check it worked.** The chat shows a connected event, and **Integrations > Zoho Desk** reads **Connected** next to your Zoho organization. From a terminal, `eesel status` lists Zoho Desk as connected.
{% endstep %}

{% step %}

### Check what it can read

**Integrations > Zoho Desk** in the left sidebar shows the connection and everything it pulled in. There are two sources, Help Center and Tickets. Each has its own toggle, so you can leave one out without disconnecting. Each shows a document count once its sync finishes.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-185fd351310a2fe8777eea71a625c9cdc0f2dee7%2Fzoho-desk-integration-page.png?alt=media" alt="The connected Zoho Desk integration page in eesel, listing Help Center and Tickets as sources with document counts and toggles, above the Actions groups"><figcaption><p>Each source has its own toggle and its own document count.</p></figcaption></figure>

Below the sources, the same page lists the actions in two groups, **Read** and **Write**. Read actions run on their own from the start, so your agent can answer questions about your tickets in chat straight after connecting. Write actions, the ones that change a ticket, ask you first until you change that.
{% endstep %}

{% step %}

### Try it on a real ticket

Before you automate anything, ask your agent to work a ticket in the chat. Ask which tickets are unanswered, then ask for a draft on one of them. It reads the ticket, searches your help center and past tickets, and shows you the reply it would send.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-b7a63bcd64a24a8a1457ff0ea95bfa24b7f6cd68%2Fzoho-desk-draft-in-chat.png?alt=media" alt="The dashboard chat where the user asks for a draft reply to an open ticket, and the agent returns a full drafted reply after reading the ticket and the help center"><figcaption><p>Ask for a draft and your agent writes the reply it would send.</p></figcaption></figure>

Under the draft it explains its reasoning and names the help center articles it used.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-ffaf292c38d0155711aae10a2762ce230529d938%2Fzoho-desk-draft-sources.png?alt=media" alt="The same chat scrolled down, showing the agent&#x27;s reasoning and the list of help center articles it used as sources"><figcaption><p>Every draft lists the sources behind it.</p></figcaption></figure>
{% endstep %}

{% step %}

### Correct it once and it remembers

Tell it what to change and it rewrites the draft. Tone, sign-off, house rules.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-f2b4bf74333852d5fb98a2d9c6f01af6b737095f%2Fzoho-desk-draft-corrected.png?alt=media" alt="The dashboard chat where the user asks for a different tone and sign-off, and the agent returns the rewritten draft"><figcaption><p>Ask for a change and it rewrites the draft.</p></figcaption></figure>

Then ask it to keep those preferences. It writes them into its own [instructions](/instructions-and-memory/instructions-and-memory.md), so every later draft follows them.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-359fad4528359766c7bf4986ff4c1d98f3c13e2d%2Fzoho-desk-style-saved.png?alt=media" alt="The dashboard chat where the user asks to save the reply style, and the agent confirms it saved the rules and links the instructions page"><figcaption><p>It saves the rules and links you to them.</p></figcaption></figure>

**Check it worked.** Your **Instructions** page holds the rules in plain sentences, and you can edit them there. From a terminal, `eesel instructions` prints the same text.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-e5014ffcb2009d4b613e1a4423ae282457f84356%2Fzoho-desk-instructions.png?alt=media" alt="The Instructions page in eesel showing the saved reply style rules"><figcaption><p>The saved rules on your Instructions page.</p></figcaption></figure>
{% endstep %}

{% step %}

### Create your first automation

Connecting alone does not start your agent. It needs an automation first. Tell it what to handle and it creates an [automation](/automations-and-schedules/automations-and-schedules.md): a Zoho Desk trigger plus instructions. In the instructions you describe which tickets it should handle and what to do with them. It leaves the rest alone.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-e664a02a71dc8d54cdb5e71aaafebf1d69162a70%2Fzoho-desk-automation-chat.png?alt=media" alt="The dashboard chat where the user asks for a drafted internal note on every new ticket, and the agent reports the trigger it chose and what the automation will do"><figcaption><p>Ask in chat for the automation you want, and your agent builds it.</p></figcaption></figure>

It shows up on your Automations page, switched on and ready.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-a9b6e3353f3d670c5367aca1d5be967fa80e042f%2Fzoho-desk-automation-live.png?alt=media" alt="The Automations page in eesel with the new Zoho Desk automation listed and toggled on"><figcaption><p>The new automation on your Automations page, switched on.</p></figcaption></figure>

Open it to read or change the instructions. The trigger event is fixed when the automation is created. So a new automation is required for each different trigger event.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-38c6614b256c2549647f98f133f5917c02add9ba%2Fzoho-desk-automation-editor.png?alt=media" alt="The automation editor showing the Zoho Desk event it runs on and the instructions telling the agent which tickets to take and to draft a reply as an internal note"><figcaption><p>The automation editor, where you change the instructions it follows.</p></figcaption></figure>

**Check it worked.** From a terminal, `eesel automations` lists it as on, with its trigger key from the Triggers table below.
{% endstep %}

{% step %}

### Check automation work in Zoho Desk

This automation wakes when a customer email reaches your portal's support address and Zoho turns it into a ticket. The connection does not include your support address. Find it in Zoho Desk under **Setup > Channels > Email**. Send a test email there, or wait for the next real ticket.

On a fresh connection the write actions ask you first, so the first comment waits in your dashboard for your approval before it posts. Approve it, or set the action to run on its own once you trust it. See [Actions and Approvals](/instructions-and-memory/actions-and-approvals.md).

Then open the ticket in Zoho Desk. Your agent's drafted reply sits there as a comment marked **Private**, for a teammate to review and send.

<figure><img src="https://3732419023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2xXO0947TYoPIhGoBgSE%2Fuploads%2Fgit-blob-0b93a0eb8c41edc9bccc7b393d3565f9cb223e20%2Fzoho-desk-note-on-ticket.png?alt=media" alt="A Zoho Desk ticket with a private comment from eesel holding the drafted reply, marked Private, ready for a teammate to review and send"><figcaption><p>The drafted reply waiting as a private comment on the ticket.</p></figcaption></figure>

Your **Activity** page lists the run, and `eesel activity` shows the same from a terminal.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**From Claude Code, Cursor or a terminal.** The same setup works as commands: `eesel login`, then `eesel integrations connect zoho_desk`, `eesel integrations download start` to copy your sources in, and `eesel automations` to see and switch on the automations. `eesel approvals` lists any comment waiting on you. A person must open the approval link: print it for them, wait for `eesel status` to show Zoho Desk as connected, and do not open it yourself. Trigger keys for this page are in the Triggers table below. Full command reference: [The eesel CLI](/apis-and-developer-resources/cli.md). Step-by-step: [Set up from Claude Code or the terminal](/getting-started/set-up-from-a-coding-agent.md). From a Model Context Protocol client: [Claude Code and MCP clients](/apis-and-developer-resources/claude-code-and-mcp-clients.md).
{% endhint %}

## Sources, triggers and actions

### Sources

Sources are what it learns from:

| Source          | What your agent reads                                         |
| --------------- | ------------------------------------------------------------- |
| **Help Center** | Your published Zoho Desk help center articles                 |
| **Tickets**     | Your past tickets, so it learns how your team already answers |

Every other integration on your agent is also a source, so a Zoho Desk reply can draw on Confluence, your website and your files at once. See [Integrations](/integrations/overview.md).

### Triggers

Triggers are the Zoho Desk events an automation can run on. The last column is the trigger's key, its name in the API and the CLI. You only need it when setting eesel up from a terminal or a script:

| Trigger                                  | Fires when                                               | Best for                                        | Key                         |
| ---------------------------------------- | -------------------------------------------------------- | ----------------------------------------------- | --------------------------- |
| **Only on the customer's first message** | A customer opens a new ticket, before anyone has replied | Drafting the first reply, tagging and routing   | `zoho_desk_ticket_created`  |
| **When a customer sends a message**      | A customer replies on a ticket                           | Answering back and forth through a whole ticket | `zoho_desk_ticket_updated`  |
| **Call @eesel in an internal comment**   | A teammate mentions @eesel in a private comment          | On-demand help                                  | `zoho_desk_eesel_mentioned` |

### Actions

Actions are what it can do. Each action can run on its own, ask you first, or stay off. The integration page groups them as **Read** and **Write**. Read actions run on their own from the start. Write actions ask you first on a fresh connection, until you change that.

|             | Action              | What it does                                                                             |
| ----------- | ------------------- | ---------------------------------------------------------------------------------------- |
| **Respond** | Send ticket reply   | Sends a reply the customer sees                                                          |
|             | Leave internal note | Adds a private comment only your team sees. Start here: the agent drafts, a person sends |
| **Manage**  | Update ticket       | Changes status, assignee, team or priority                                               |
|             | Tag ticket          | Adds tags to the ticket                                                                  |
|             | Create ticket       | Creates a new ticket                                                                     |
| **Look up** | Read ticket         | Reads a ticket and its conversation                                                      |
|             | Search tickets      | Finds tickets by keyword                                                                 |

## Troubleshooting

<details>

<summary>Agent not picking up tickets?</summary>

Check three things on the agent's **Automations** page: the automation is switched on, its instructions cover the tickets you expect, and the action you want is not set to stay off. Your **Activity** page lists every run, and the automation's own activity lists the tickets it looked at and skipped, with the reason for each.

</details>

<details>

<summary>The drafted comment never appeared?</summary>

Look at the run on your **Activity** page, or run `eesel approvals`. On a fresh connection the write actions ask you first, so the comment is usually waiting on your approval, not failing. Approve it there, or set the action to run on its own.

</details>

<details>

<summary>Which email address do customers write to?</summary>

Your agent cannot read that address from Zoho. Find it in Zoho Desk under **Setup > Channels > Email**. An email to that address becomes a ticket, and a new ticket is what wakes your agent.

</details>

<details>

<summary>Help center or tickets missing?</summary>

Check the source is toggled on on the integration page and that its sync has finished. The document count only appears once it has. If the count stays at zero, disconnect and connect again, accepting every permission on Zoho's authorization screen. A dropped permission leaves the connection incomplete.

</details>

## FAQ

<details>

<summary>How do I keep a person in the loop?</summary>

Two ways, and you can use both. Turn on **Leave internal note** instead of **Send ticket reply**, so your agent writes a private comment your team reads, edits and sends. Or leave **Send ticket reply** set to ask you first, so it shows you what it wants to send and waits. When an action asks first, the prepared reply appears in your dashboard with three buttons: Approve runs it once, Always allow stops asking for that action, and Deny discards it.

</details>

<details>

<summary>Does connecting Zoho Desk start replying to customers on its own?</summary>

No. Connecting only gives your agent access to your help center and tickets. It needs an automation before it acts at all, and the write actions ask you first until you change that.

</details>

<details>

<summary>Can I control which tickets my agent handles?</summary>

Yes. In the automation's instructions, describe the tickets you want in plain language, a queue, a tag or a language, and what to do with them. Your agent only runs on those. The automation's activity lists the tickets it took and the ones it skipped, with the reason for each.

</details>

<details>

<summary>Whose name do replies appear under?</summary>

Replies and private comments post as the Zoho Desk user whose account approved the connection. To change the name customers see, change that user's name in Zoho Desk.

</details>

<details>

<summary>Can I connect more than one Zoho Desk portal?</summary>

Yes. Connect each one the same way. Reconnecting the same portal updates the existing connection rather than adding a second one. When more than one is connected, your agent asks which one you mean. Each automation belongs to a single Zoho Desk portal.

</details>

<details>

<summary>How is this billed?</summary>

Pay-as-you-go: a ticket your agent handles is one task, however many replies happen on it, and chats you run yourself from the eesel dashboard are free. See [Pricing](/pricing/overview.md) for rates, the annual commitment, and Enterprise.

</details>

## Related pages

* [Helpdesk](/use-cases/helpdesk.md) for the job your teammate takes on in a ticket queue
* [Automations and Schedules](/automations-and-schedules/automations-and-schedules.md) for triggers, instructions and schedules
* [Actions and Approvals](/instructions-and-memory/actions-and-approvals.md) for setting each action to run on its own, ask you first, or stay off
* [Integrations overview](/integrations/overview.md) for how sources, triggers and actions fit together
* [Set up from Claude Code or the terminal](/getting-started/set-up-from-a-coding-agent.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.eesel.ai/integrations/helpdesks/zoho-desk.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
