Integration Recipe

HubSpot Service Hub WhatsApp: turn conversations into HubSpot tickets

Setup guide and importable n8n workflowLast verified October 2026

There are two ways to run WhatsApp with HubSpot Service Hub. HubSpot offers its own WhatsApp channel in its inbox 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 creates HubSpot tickets through a workflow in your own n8n.

This page covers the second route, for HubSpot tickets from WhatsApp: every one-to-one conversation becomes a ticket in the pipeline you pick, every message is logged on the ticket and the contact timeline, and agents reply to WhatsApp from the ticket. It works alongside Spun's HubSpot CRM contact sync, which keeps contacts in step and does not create tickets.

HubSpot tickets from WhatsApp: what the workflow does

  • Every one-to-one WhatsApp conversation becomes a HubSpot ticket in the pipeline and stage your admin picks. Group chats are skipped.
  • Every message is logged on the ticket as a WhatsApp communication and also shows on the contact's timeline, with the speaker named in the text.
  • Replies your team sends from the Spun inbox are logged on the ticket too, so both sides can answer.
  • Archiving in Spun moves the ticket to the closed stage, and unarchiving moves it back to the open stage. Closing in HubSpot can archive the conversation in Spun as well, an option that is off until you turn it on.
How messages are logged on the ticket (illustrative)
[WhatsApp] Maria Lopez (+15550142233): Hi, my order has not arrived yet
[Sent from Spun] Alex: Sorry about that, checking now.
[Sent from HubSpot] It ships today, here is the tracking link.

Replying from the ticket with the Spun reply field

Agents reply by typing into a Spun reply property on the ticket and saving. Within a few seconds the text reaches the customer on WhatsApp, it is logged on the ticket, and the field is empty again. If a reply could not be sent, a note on the ticket says why.

Replies are text only; ticket attachments are not forwarded. HubSpot notes and emails stay internal. Anything written into Spun reply is sent, whoever writes it, so keep that property out of bulk edits, imports and HubSpot workflows.

Working alongside the HubSpot CRM contact sync

Spun's HubSpot CRM contact sync owns contacts; this workflow owns tickets. The workflow uses its own HubSpot key and never edits a contact. With the contact sync connected, it never creates a contact either: a brand-new customer's ticket is linked once the sync has pushed the contact, which happens on Sync Now or a mapped label rather than on every message.

Related: WhatsApp + HubSpot CRM: the contact sync

Setup, step by step

You need HubSpot Service Hub, a user who can create properties, keys and webhook subscriptions, an n8n instance that HubSpot and Spun can reach over HTTPS, and an app to carry the reply webhook: a legacy private app (create it before October 26, 2026, when HubSpot stops new ones for existing accounts) or a project-based app, which is built with the HubSpot CLI and needs a developer.

  1. 1

    Create two ticket properties

    Spun chat id (single-line text) and Spun reply (multi-line text). Add Spun reply to the ticket sidebar so agents see it.

  2. 2

    Create a key for API calls

    A service key or the access token of your legacy private app, with the ticket and contact scopes in the setup guide, stored in n8n as a Header Auth credential.

  3. 3

    Import the workflow

    Run its setup helper once to list your ticket pipelines and stages, and copy the ids into the Settings node.

  4. 4

    Tell it about the contact sync

    Keep the contact sync setting on if Spun's HubSpot contact sync is connected, or if you are unsure.

  5. 5

    Subscribe the app to ticket changes

    Point the app's webhook at the workflow's reply URL with a subscription on the Spun reply property, and paste the app's client secret into the workflow.

  6. 6

    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 HubSpot should archive the conversation in Spun.

  7. 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. 8

    Send a test message

    Message the line from another phone. A ticket appears in HubSpot; type a reply into Spun reply, save, and the reply reaches the phone.

Related: Docs: HubSpot Service Hub via n8n, the full setup guide · WhatsApp + n8n: the API and webhooks underneath

What to know before you build

  • HubSpot webhooks are signed and the workflow checks the signature. Spun's own events are HMAC-signed.
  • Media goes onto the ticket as a link valid for 24 hours, not as a HubSpot file.
  • HubSpot API limits apply per key (100 or 190 requests per 10 seconds, plus a daily limit per account). A new conversation costs four or five calls and a later message two.
  • 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

Frequently asked questions

Can HubSpot Service Hub create tickets from WhatsApp?

Yes. With Spun and the n8n workflow, every one-to-one WhatsApp conversation becomes a ticket in the pipeline and stage you pick, and every message is logged on the ticket and the contact timeline.

How do agents reply to WhatsApp from a HubSpot ticket?

They type the reply into the Spun reply property on the ticket and save. The text is sent to the customer on WhatsApp from your own number, logged on the ticket, and the field clears.

How is this different from the HubSpot CRM contact sync?

The contact sync keeps contacts in step between Spun and HubSpot and does not create tickets. This workflow creates and updates tickets and never edits a contact. They run side by side.

What do I need on the HubSpot side?

Service Hub, two custom ticket properties, a key for API calls, and an app for the reply webhook: a legacy private app created before October 26, 2026, or a project-based app built with the HubSpot CLI, which needs a developer.

Is this a HubSpot marketplace app?

No. It is an n8n workflow that you import into your own n8n, Cloud or self-hosted, with a setup guide in the Spun docs.

WhatsApp conversations as HubSpot tickets

Spun turns your existing WhatsApp number into a shared team inbox with labels, assignment and AI summaries, plus the HubSpot contact sync and the webhooks and API this workflow uses. Free trial.

Start Free Trial

See all integrations