# Zoho Desk setup for PopMCP

You paste the Client ID and Client secret of a Server-based Application you register in the Zoho API Console, then sign in with Zoho and pick the Zoho Desk organization to connect.

- Auth: OAuth authorization
- Setup time: 6 min
- API base URL: https://desk.zoho.com/api/v1
- Credentials screen: https://api-console.zoho.com/
- Provider docs: https://desk.zoho.com/DeskAPIDocument

## Before you begin

- A Zoho Desk organization on any edition, the free one included.
- A Zoho Desk user whose profile can see what the AI should work with. An admin reaches everything.
- Knowing which Zoho data center your account lives in: the domain you sign in at, such as zoho.com, zoho.eu, zoho.in or zoho.com.au.
- PopMCP's callback URL from the connect form: https://app.popmcp.com/api/providers/zoho-desk/callback

## Get your credentials

### 1. Open the API Console for your data center

Sign in at api-console.zoho.com as the Zoho user whose Zoho Desk access the AI should have. If your Zoho account lives in another data center, use that data center's console instead, for example api-console.zoho.eu, api-console.zoho.in or api-console.zoho.com.au. Click Get Started on your first visit, or Add Client if you already have clients.

Screen: https://api-console.zoho.com/

### 2. Choose Server-based Applications

Pick Server-based Applications and click Create Now. PopMCP signs you in through a redirect, so the other client types, Self Client included, cannot complete the connection.

Screen: https://api-console.zoho.com/

### 3. Name the client and add PopMCP's redirect URI

Enter a Client Name such as `PopMCP` and any Homepage URL, for example `https://app.popmcp.com`. Paste `https://app.popmcp.com/api/providers/zoho-desk/callback` into Authorized Redirect URI, then click Create.

Screen: https://api-console.zoho.com/

### 4. Copy the Client ID and Client Secret

Open the Client Secret tab and copy Client ID (it starts with `1000.`) and Client Secret. You only need the Settings tab if people in other data centers will sign in through this client: there you can turn on Multi-DC and tick their data centers.

Screen: https://api-console.zoho.com/

### 5. Paste both values into PopMCP, sign in and pick the organization

In PopMCP, paste the values into Client ID and Client secret. Only if you created the client outside zoho.com, open More options and type that data center into Zoho data center, for example `EU`, `IN` or `AU`. Click Sign in with Zoho and accept the permissions. If you have several Zoho Desk organizations, Zoho asks you to choose one on its consent screen: choose the one you want here, because the sign-in only works for that one. PopMCP then lists the organization: pick it and the workspace it belongs in.

## Fields PopMCP asks for

- Client ID (clientId) [required]: The "Client ID" on your app's Client Secret tab.
- Client secret (clientSecret) [required]: The "Client Secret" on the same tab. Stored encrypted and used only on the server.
- Zoho data center (dataCenter): Only when your app was made outside zoho.com: the data center its console is in, e.g. EU (zoho.eu), IN, AU, JP, CA, SA or CN. One of: US, EU, IN, AU, JP, CA, SA, UK, AE, SG, CN.

## Callback URL to register

https://app.popmcp.com/api/providers/zoho-desk/callback

## Scopes requested

- Desk.InstantMessages.READ
- Desk.accounts.READ
- Desk.activities.calls.READ
- Desk.activities.events.READ
- Desk.activities.tasks.READ
- Desk.agents.READ
- Desk.articles.READ
- Desk.automations.READ
- Desk.basic.READ
- Desk.channels.email.READ
- Desk.channels.helpcenter.READ
- Desk.community.READ
- Desk.contacts.READ
- Desk.contracts.READ
- Desk.custommodule.READ
- Desk.departments.READ
- Desk.events.READ
- Desk.featuresettings.READ
- Desk.fields.READ
- Desk.integrations.READ
- Desk.layouts.READ
- Desk.modules.READ
- Desk.organization.READ
- Desk.permissions.READ
- Desk.privacysettings.READ
- Desk.products.READ
- Desk.sandbox.READ
- Desk.search.READ
- Desk.settings.READ
- Desk.tasks.READ
- Desk.teams.READ
- Desk.templates.READ
- Desk.tickets.READ
- Desk.InstantMessages.CREATE
- Desk.InstantMessages.UPDATE
- Desk.accounts.CREATE
- Desk.accounts.DELETE
- Desk.accounts.UPDATE
- Desk.activities.calls.CREATE
- Desk.activities.calls.DELETE
- Desk.activities.calls.UPDATE
- Desk.activities.events.CREATE
- Desk.activities.events.DELETE
- Desk.activities.events.UPDATE
- Desk.activities.tasks.CREATE
- Desk.activities.tasks.DELETE
- Desk.activities.tasks.UPDATE
- Desk.agents.CREATE
- Desk.agents.DELETE
- Desk.agents.UPDATE
- Desk.articles.CREATE
- Desk.articles.DELETE
- Desk.articles.UPDATE
- Desk.automations.CREATE
- Desk.automations.DELETE
- Desk.automations.UPDATE
- Desk.basic.CREATE
- Desk.basic.UPDATE
- Desk.channels.email.CREATE
- Desk.channels.email.DELETE
- Desk.channels.email.UPDATE
- Desk.channels.helpcenter.CREATE
- Desk.channels.helpcenter.DELETE
- Desk.channels.helpcenter.UPDATE
- Desk.community.CREATE
- Desk.community.DELETE
- Desk.community.UPDATE
- Desk.contacts.CREATE
- Desk.contacts.DELETE
- Desk.contacts.UPDATE
- Desk.contracts.CREATE
- Desk.contracts.UPDATE
- Desk.custommodule.CREATE
- Desk.custommodule.UPDATE
- Desk.departments.CREATE
- Desk.departments.UPDATE
- Desk.events.CREATE
- Desk.events.DELETE
- Desk.events.UPDATE
- Desk.featuresettings.UPDATE
- Desk.fields.CREATE
- Desk.fields.DELETE
- Desk.fields.UPDATE
- Desk.integrations.CREATE
- Desk.integrations.UPDATE
- Desk.layouts.CREATE
- Desk.layouts.DELETE
- Desk.layouts.UPDATE
- Desk.modules.CREATE
- Desk.modules.UPDATE
- Desk.organization.UPDATE
- Desk.permissions.CREATE
- Desk.permissions.DELETE
- Desk.permissions.UPDATE
- Desk.products.CREATE
- Desk.products.DELETE
- Desk.products.UPDATE
- Desk.sandbox.CREATE
- Desk.sandbox.UPDATE
- Desk.settings.CREATE
- Desk.settings.DELETE
- Desk.settings.UPDATE
- Desk.tasks.CREATE
- Desk.tasks.DELETE
- Desk.tasks.UPDATE
- Desk.teams.CREATE
- Desk.teams.DELETE
- Desk.teams.UPDATE
- Desk.templates.CREATE
- Desk.templates.DELETE
- Desk.templates.UPDATE
- Desk.tickets.CREATE
- Desk.tickets.DELETE
- Desk.tickets.UPDATE

## Verify

PopMCP shows Zoho Desk as Connected under your organization's name, and zoho_desk_get_my_info returns the agent you signed in as while zoho_desk_list_tickets lists your tickets.

## Troubleshooting

### "Zoho did not accept the Client ID and Client secret for the United States data center"

Cause: The client was created in another data center's console, such as api-console.zoho.eu, while **Zoho data center** was left empty, or one of the values was mistyped.

Fix: Type that data center (EU, IN, AU, JP, CA, SA, UK, AE, SG or CN) into **Zoho data center** under **More options**, or turn on Multi-DC on the client's **Settings** tab. Recopy both values from the **Client Secret** tab.

### "Zoho rejected the redirect URI"

Cause: The client's **Authorized Redirect URI** does not exactly match PopMCP's callback.

Fix: Open the client in the API Console, correct **Authorized Redirect URI** on the **Client Details** tab to `https://app.popmcp.com/api/providers/zoho-desk/callback`, save, and connect again.

### "The Zoho sign-in expired before it could be completed"

Cause: Zoho's authorization codes last two minutes, and the consent screen was left open too long.

Fix: Click **Sign in with Zoho** again and accept the consent screen without waiting.

### "This Zoho account has no Zoho Desk organization"

Cause: You signed in with a Zoho account that has no Zoho Desk organization in that data center.

Fix: Sign in with the Zoho account you use for Zoho Desk, or start a Zoho Desk organization first.

### "Zoho tied this sign-in to a different Zoho Desk organization"

Cause: You have several Zoho Desk organizations and chose another one on Zoho's consent screen.

Fix: Connect again and choose the same organization on Zoho's consent screen as in PopMCP. To connect a second organization, connect it in another workspace.

### "Zoho Desk refused to list your organizations"

Cause: The permissions were not all accepted, or the Zoho user has no Zoho Desk seat.

Fix: Connect again and accept every permission on the consent screen, or ask an admin to connect.

### A working connection stops with "Zoho no longer accepts this connection's authorization"

Cause: The refresh token was revoked, the password changed, or more than 20 connections were made for the same Zoho user, which makes Zoho retire the oldest.

Fix: Disconnect and reconnect Zoho Desk.

### A tool says this portal has used its API credits for today

Cause: Zoho Desk counts API credits per portal per day, by edition and number of users, and resets them at midnight in its data center's time zone. Reading one record costs 1 credit and a list costs 3 or more, rising the deeper it reaches.

Fix: Wait for the reset, filter lists rather than paging deep, or ask your Zoho Desk super admin to buy more credits. **Setup, Developer Space, APIs** shows what has been used.

### A tool says it needs Desk.exports.CUSTOM, Desk.imports.CUSTOM, Desk.sandbox.deploy.CUSTOM or a Desk.qaautomation scope

Cause: PopMCP does not ask Zoho for these permissions yet, so bulk export, import, sandbox deployment and QA automation tools are refused.

Fix: Contact PopMCP support if you need them.

---

Source: https://www.docs.popmcp.com/docs/integrations/zoho-desk/