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

# Connecting Zoho Desk to Neo

> Create a Self Client in the Zoho API Console, generate a code, and save it with your Org ID in Neo

You connect Zoho Desk once at the MSP level, with a Self Client: an app in your own Zoho account that Neo uses to call Zoho Desk.

## 1. Find your data center and Org ID

<Steps>
  <Step title="Note your data center">
    Look at the address you sign in to Zoho Desk at: `desk.zoho.com` is United States, `desk.zoho.eu` is Europe, `desk.zoho.in` is India, `desk.zoho.com.au` is Australia, and so on. Neo asks for it, because each data center has its own servers.
  </Step>

  <Step title="Copy your Org ID">
    In Zoho Desk, open **Setup**, then **Developer Space**, then **API**, and copy the **Org ID**.
  </Step>
</Steps>

## 2. Create a Self Client and generate a code

<Steps>
  <Step title="Create the Self Client">
    Sign in to the Zoho API Console of your data center (`api-console.zoho.com`, `api-console.zoho.eu` and so on) as a Zoho Desk administrator. Click **Get Started** (or **Add Client**), choose **Self Client**, and click **Create**. Copy the **Client ID** and **Client Secret** from the **Client Secret** tab.
  </Step>

  <Step title="Generate a code">
    Open the **Generate Code** tab. In **Scope**, paste the scopes for what your agents do:

    * To report on tickets and read them: `Desk.tickets.READ,Desk.search.READ,Desk.basic.READ,Desk.contacts.READ,Desk.settings.READ,Desk.departments.READ,Desk.fields.READ`
    * To also work tickets, contacts, tasks and custom modules: `Desk.tickets.ALL,Desk.search.READ,Desk.basic.READ,Desk.contacts.ALL,Desk.settings.READ,Desk.departments.READ,Desk.fields.READ,Desk.tasks.ALL,Desk.modules.READ,Desk.custommodule.ALL`

    For each other permission group you give an agent, add its Zoho scope too, such as `Desk.articles.READ` for the Knowledge Base or `Desk.InstantMessages.READ` for Instant Messaging; Zoho's API documentation names the scope of every call. `Desk.basic.READ` and `Desk.contacts.READ` are needed in every case: Neo checks your organization with the first and maps your accounts with the second. When an agent reports that Zoho refused a call for a missing scope (`SCOPE_MISMATCH`), generate a new code with that scope added and save it again. Choose the longest **Time Duration** (10 minutes), enter "Neo" as the description, and click **Create**. When Zoho asks, pick your Zoho Desk portal. Copy the code.
  </Step>
</Steps>

Neo also checks the permission groups you set per agent, so a scope alone never lets an agent change something.

## 3. Save it in Neo

<Steps>
  <Step title="Open Integrations">
    Open [**Integrations → Zoho Desk**](https://dashboard.neoagent.io/integrations?tab=directory\&open=zoho_desk) in the Neo Dashboard. The card is under Other.
  </Step>

  <Step title="Save the values">
    Pick your **Data Center**, paste the **Client ID**, **Client Secret**, the code in **Code or Refresh Token**, and your **Org ID**, and click **Save** before the code expires. Neo exchanges the code for a refresh token and checks your organization before it saves, so a wrong value is rejected straight away. If the code expired, generate a new one.
  </Step>

  <Step title="Check the account mapping">
    After the next sync, open the **Organization Mapping** tab and confirm the matches between your Zoho Desk accounts and your PSA companies. Agents use only confirmed matches.
  </Step>
</Steps>

The refresh token does not expire. It stops working when you delete the Self Client or revoke Neo under **Connected Apps** in your Zoho account; then generate a new code and save it again.

## 4. Turn Zoho Desk on per agent

Open the agent from [**Agents**](https://dashboard.neoagent.io/agents), go to the Integrations section, and configure the Zoho Desk block. Pick a profile, then change any group. For a weekly ticket trend report, set **Reports & Dashboards** and **Tickets** to Read Only, which the first scope list covers; give a group beyond those its scope too. Give the agent **Customer Replies** only when it should email the ticket's contact.

### Changes that always ask a technician

See Safety Controls in [Zoho Desk API](/agents/tools/management/zoho-desk-api).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.