Skip to main content
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

1

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.
2

Copy your Org ID

In Zoho Desk, open Setup, then Developer Space, then API, and copy the Org ID.

2. Create a Self Client and generate a code

1

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.
2

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.
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

1

Open Integrations

Open Integrations → Zoho Desk in the Neo Dashboard. The card is under Other.
2

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.
3

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.
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, 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.