If your support team already works in a helpdesk, WhatsApp does not have to be a separate world. Spun keeps WhatsApp on the number your customers already use and turns each conversation into a ticket in your helpdesk, so the WhatsApp ticketing system is the one your agents already know. Agent replies on the ticket go back to the customer on WhatsApp.
The connection runs through a small n8n workflow that you import into your own n8n, Cloud or self-hosted. There is a setup guide and a ready-made workflow for Zendesk, Zoho Desk, Freshdesk, HubSpot Service Hub and Jira Service Management, and a generic version for any other helpdesk with an API. The workflows are documented step by step; check the first tickets in your own account before you rely on them.
How a WhatsApp support ticket is made: the five moves
Every helpdesk integration does the same five things. What changes from desk to desk is where the phone number is stored and how the helpdesk tells the workflow that an agent replied.
- 1
1. Find or create the contact by phone
When a customer writes in, the workflow looks the requester up in the helpdesk by phone number and creates them if they do not exist yet. Spun's message events carry the customer's number in international format, so no parsing is needed.
- 2
2. Open a ticket
If the customer has no open ticket, the workflow creates one and stores the Spun chat id on it, so later messages find the same ticket.
- 3
3. Append each message
Every new WhatsApp message is added to the open ticket. Media arrives as a link that stays valid for 24 hours.
- 4
4. Send agent replies back
When an agent answers on the ticket, the helpdesk notifies the workflow, and the workflow sends the text to the customer on WhatsApp through Spun's send-message endpoint, from your own number.
- 5
5. Close
Archiving the conversation in Spun closes or resolves the ticket, and unarchiving reopens it. Closing in the helpdesk can archive the conversation in Spun too, as an option you turn on.
Replies your team sends from the Spun inbox are logged on the ticket and kept internal, so both sides can answer and the ticket keeps the whole exchange.
The helpdesks, side by side
- Zendesk: requesters are Zendesk users found or created by phone. Agents answer with a public comment, which a trigger sends to the workflow.
- Zoho Desk: tickets link to Zoho Desk contacts found or created by phone. Agents answer with a public comment, which a Zoho Desk webhook sends to the workflow. Needs a Zoho Desk plan with webhooks.
- Freshdesk: tickets link to Freshdesk contacts matched by phone. Agents answer with a public note, which an automation rule sends to the workflow. Two-way needs the Growth plan or above.
- HubSpot Service Hub: each conversation becomes a ticket in the pipeline you pick. Agents answer by typing into a Spun reply field on the ticket.
- Jira Service Management: each conversation becomes a request in your service project, raised by one integration account. Agents answer with a public comment, which a signed Jira webhook sends to the workflow.
- Any other helpdesk: the generic workflow keeps the helpdesk calls in clearly marked nodes, so the same flow can be pointed at another helpdesk API.
Related: WhatsApp + Zendesk · WhatsApp + Zoho Desk · WhatsApp + Freshdesk · WhatsApp + HubSpot Service Hub · WhatsApp + Jira Service Management
What you need
- A Spun workspace with a connected WhatsApp line and access to the Webhooks page in Settings.
- An n8n instance, Cloud or self-hosted, that both your helpdesk and Spun can reach over HTTPS. The workflows use only the nodes that ship with n8n.
- A helpdesk plan that lets an automation call a webhook, and an admin to set it up once.
- A Spun API key with the Send Messages scope. Add "Close & Reopen Conversations" if closing in the helpdesk should archive the conversation in Spun.
Related: Docs: connect a helpdesk to WhatsApp · WhatsApp + n8n: the API and webhooks underneath
Signed in both directions
- Every event Spun sends is signed with HMAC-SHA256 in the X-Webhook-Signature header, and the workflow rejects anything that does not match.
- Each delivery gets up to three attempts, and every attempt carries the same event id, so the workflow skips duplicates instead of opening a second ticket.
- Each reply is sent with an idempotency key taken from the helpdesk event, so a retried reply is not sent twice.
- Loop guards keep the workflow's own notes and messages from bouncing back as new replies.
What to know before you start
- Group chats are skipped: a group has no single phone number to link to a requester.
- Media goes into the ticket as a link valid for 24 hours, not as a helpdesk attachment. Agent replies go back to WhatsApp as text; attachments on a reply are not forwarded.
- Each delivered event uses AI tokens from your Spun plan. How this is metered for helpdesk use is still being reviewed.
- The Spun API allows 60 requests per minute per key. Each helpdesk has its own API limits, listed on its page.
- Spun can also be the helpdesk itself, with labels as queues, assignment and internal notes, if you do not run a separate one.
Related: WhatsApp as the helpdesk itself · WhatsApp CRM integration: HubSpot · WhatsApp CRM integration: Salesforce · WhatsApp CRM integration: Odoo