Spun keeps WhatsApp on the number your customers already use and connects it to Jira Service Management through a workflow in your own n8n. Each WhatsApp conversation becomes a request in your service project, later messages are added as comments, and a public comment by an agent goes back to the customer on WhatsApp.
This is the Jira Service Management WhatsApp setup for teams that already track support in Jira: agents keep working requests where they are, customers keep messaging where they are. The Jira API token stays in your n8n; Spun never receives or stores it.
What the Jira Service Management WhatsApp workflow does
- The first message of a conversation raises a request of the request type you choose, with the customer's name, number and message in the description and the number in a WhatsApp number field.
- Later messages are added to the open request as public comments, prefixed with the sender's name and number.
- A public comment by an agent is sent to the customer on WhatsApp as text. Internal comments never leave Jira.
- Replies your team sends from the Spun inbox are added as internal comments, so both sides can answer.
- Archiving the conversation in Spun runs your resolve transition, and unarchiving reopens the request when a reopen transition is set. Resolving in Jira can archive the conversation in Spun as well, an option that is off until you turn it on.
Every request is raised by one integration account, an agent on the service project. The workflow does not create or match Jira customers, so Jira's customer notifications for these requests go to that account's mailbox, not to the customer.
Setup, step by step
You need a Jira Service Management site with a service project, an integration account that is an agent on that project (whether the seat is billed depends on your Jira plan), a Jira admin once to create the webhook, and an n8n instance that Jira and Spun can reach over HTTPS.
- 1
Create an API token for the integration account
Signed in as that account, create an API token and store it in n8n as a Basic Auth credential. It stays in your n8n.
- 2
Add a "WhatsApp number" field
A short text field on the request type WhatsApp conversations should use.
- 3
Look up your transitions
The transition that resolves a request and, optionally, one that reopens it.
- 4
Import the workflow
Open its Settings node and paste your site URL, service desk, request type, project key, field id, transitions and the integration account id.
- 5
Create the Jira webhook
As a Jira admin, a webhook to the workflow's reply URL on Comment: created, filtered with JQL to your project and protected with a secret. Jira signs every delivery and the workflow checks it.
- 6
Create a Spun API key
Settings, then Webhooks, then Manage API Keys, with the Send Messages scope. Tick "Close & Reopen Conversations" too if resolving in Jira should archive the conversation in Spun.
- 7
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.
- 8
Send a test message
Message the line from another phone. A request appears in Jira; add a public comment as an agent and the reply reaches the phone.
Related: Docs: Jira Service Management via n8n, the full setup guide · WhatsApp + n8n: the API and webhooks underneath
What to know before you build
- Group chats are skipped.
- Media goes into the request as a link valid for 24 hours, not as a Jira attachment. Replies from Jira are text only; attachments on a comment are not forwarded.
- Jira accepts 20 writes to one request in 2 seconds and 100 in 30 seconds. During a long burst of messages, the extras are not added to the request; they stay in the Spun inbox and the n8n run can be repeated.
- One open request per conversation. Comments longer than 32,000 characters are cut.
- Each delivered event uses AI tokens from your Spun plan. How this is metered for helpdesk use is still being reviewed.
Related: All WhatsApp helpdesk integrations · WhatsApp as the helpdesk itself