There are two truthful ways to get WhatsApp working with Zendesk, and they are very different. Route one is Zendesk's own WhatsApp channel: official, built on the Business API, which means a dedicated number, template approvals, per-message Meta fees, and no WhatsApp groups. Route two keeps WhatsApp on the number you already use, with Spun as the WhatsApp workspace, and connects the two systems through Spun's webhooks and REST API where tickets need to know about conversations.
This page documents route two, and is honest about where route one is the better fit: if your entire support operation lives inside Zendesk and you want WhatsApp as one more native ticket channel at API economics, use Zendesk's channel. If WhatsApp is your primary customer channel and Zendesk is one system among several, keeping it on your real number with a team inbox usually serves customers better.
1. Create Zendesk tickets from WhatsApp conversations
Goal: a WhatsApp conversation that needs formal tracking, an escalation, a complaint, a refund case, becomes a Zendesk ticket without copy-pasting.
- 1
Subscribe to the right events
In Spun: Settings, then Webhooks, then Add Webhook, pointed at a Zapier Catch Hook, Make webhook or n8n webhook. Select label-assigned as the event.
- 2
Use a label as the escalation switch
Create a Spun label like "Escalate to Zendesk". Any agent can apply it to a chat; only chats with that label become tickets, so the ticket queue stays clean.
- 3
Create the ticket
In the middleware, call Zendesk's create-ticket action: requester phone from the event payload, subject from the chat, and the message text into the ticket body. Add a tag like "whatsapp" for reporting.
The webhook envelope includes chat id, phone and message text. Agents keep answering in Spun; Zendesk tracks the case.
2. Send WhatsApp updates when tickets change
Goal: when a ticket is solved or needs customer input, the customer hears about it on WhatsApp, where they actually respond.
- 1
Create a Spun API key
Settings, then Webhooks, then Manage API Keys. Scope it to send messages; store the wap_ key in your middleware credentials.
- 2
Fire on ticket events
Use a Zendesk trigger (or the Zapier/Make Zendesk trigger) on the status change you care about, e.g. Solved.
- 3
Call send-message
POST /api/integrations/send-message with the requester's number and the update text. The message arrives from your real business number, in the thread the customer already knows.
POST https://api.spun.com/api/integrations/send-message
Authorization: Bearer wap_YOUR_KEY
Content-Type: application/json
{
"to": "14155552671",
"text": "Good news - your ticket #4521 is resolved. Reply here if anything still looks off."
}What to know before you build
- This is a bridge, not a channel merge: WhatsApp conversations live in Spun, tickets live in Zendesk, and the two reference each other. If you need every WhatsApp message inside the Zendesk agent workspace, that is route one (Zendesk's Business API channel) with its costs and limits.
- No native Zendesk marketplace app exists for Spun today; authentication is a static API key in your middleware.
- Rate limit: 60 API requests per minute per key.
- Many teams discover the ticket layer was the optional part: Spun's labels, assignment and tasks cover chat-native ticketing on their own. See the WhatsApp helpdesk page.
Related: WhatsApp as the helpdesk itself (no Zendesk needed) · WhatsApp + Zapier & Make (the full API surface)