There are two ways to run WhatsApp with Zoho Desk. Zoho Desk offers its own WhatsApp channel through the WhatsApp Business API, which means a number registered on the API, approved templates for messages outside the 24-hour window, and per-message fees. The other way keeps WhatsApp on the number your customers already use, with Spun as the WhatsApp workspace, and connects WhatsApp and Zoho Desk through a workflow in your own n8n.
This page covers the second route. Every WhatsApp conversation becomes one Zoho Desk ticket, later messages are added as comments, and a public comment by an agent goes back to the customer on WhatsApp. If your whole support operation already lives in Zoho Desk and you are happy with Business API pricing, Zoho's own channel is the simpler choice.
What the WhatsApp Zoho Desk workflow does
- The first message of a conversation creates a ticket in the department you choose, linked to a Zoho Desk contact found or created by phone number. The ticket stores the Spun chat id in a custom field.
- Later messages are added to the open ticket as public comments, prefixed with the sender's name and number. Media arrives as a link that stays valid for 24 hours.
- Replies your team sends from the Spun inbox are added as private notes, so the agent in Zoho Desk sees the whole exchange and both sides can answer.
- A public comment by an agent is sent to the customer on WhatsApp as text. Private notes and the workflow's own comments are never sent.
- Archiving the conversation in Spun closes the ticket, and unarchiving reopens it. Closing in Zoho Desk can archive the conversation in Spun as well, an option that is off until you turn it on.
Subject: WhatsApp: Hi, my order has not arrived yet
[WhatsApp] Maria Lopez (+15550142233): Hi, my order has not arrived yet
[Sent from Spun] Alex: Sorry about that, checking now.Setup, step by step
You need a Zoho Desk plan that includes webhooks (Zoho offers them on Professional and Enterprise), an n8n instance that Zoho Desk and Spun can reach over HTTPS, and a dedicated Zoho Desk agent for the integration, such as "WhatsApp (Spun)". The setup guide lists every value and where to find it.
- 1
Create a Zoho API client
In the Zoho API console, create a self client and add an OAuth2 credential in n8n with Zoho's URLs for your data centre and the scopes in the setup guide.
- 2
Find your Zoho identifiers
The organisation id, the department that should receive WhatsApp tickets, and the id of the integration agent.
- 3
Add two custom ticket fields
One for the Spun chat id (required) and one for the Spun line (optional). The workflow needs their API names, not their labels.
- 4
Import the workflow
Open its Settings node and paste the Zoho values, the ticket channel value and the status your portal uses for open tickets.
- 5
Create a Spun API key
Settings, then Webhooks, then Manage API Keys, with the Send Messages scope. Tick "Close & Reopen Conversations" too if closing in Zoho Desk should archive the conversation in Spun.
- 6
Subscribe Spun to the workflow
Add a webhook for incoming messages, outgoing messages, conversation closed and conversation reopened, with the payload template set to raw, and paste its signing secret into the workflow.
- 7
Create the Zoho Desk webhook
In Developer Space, point a webhook at the workflow's reply URL for new ticket comments in your department.
- 8
Send a test message
Message the line from another phone. A ticket appears in Zoho Desk; answer it with a public comment and the reply reaches the phone.
Related: Docs: Zoho Desk via n8n, the full setup guide · WhatsApp + n8n: the API and webhooks underneath
What to know before you build
- Group chats are skipped: a group has no phone number to link to a contact or a ticket.
- One active ticket per conversation. A message after the ticket was closed starts a new ticket.
- Media goes in as a 24-hour link, not as a Zoho attachment. Replies from Zoho Desk are text only; attachments on an agent comment are not forwarded.
- Closing in Zoho Desk archives the conversation in Spun only after you turn that option on and give the API key the Close & Reopen Conversations scope.
- Each delivered event uses AI tokens from your Spun plan. How this is metered for helpdesk use is still being reviewed.
- The workflow remembers tickets and contacts in n8n, which keeps it well within Zoho's API limits.
Related: All WhatsApp helpdesk integrations · WhatsApp as the helpdesk itself