Best Way to Connect WhatsApp to HubSpot with Conversation History in Contact Records
Connect WhatsApp to HubSpot with a QR scan and OAuth, no Business API. Messages sync to the Contact timeline within seconds, grouped by day; calls log separately.

Connect WhatsApp to HubSpot with a QR scan and OAuth authorization — no Business API required. Messages sync to the Contact's HubSpot timeline within seconds, shown as a WhatsApp activity grouped by day per conversation. Calls log separately as Call Engagements. Setup takes about two minutes.
For a sales team, the Contact record is where a deal actually lives — not the inbox, not a rep's phone. If the WhatsApp conversation that closed, stalled, or lost a deal isn't on that Contact, the record is incomplete no matter how well everything else in HubSpot is set up.
A common trigger for checking this: a rep closes a deal almost entirely over WhatsApp, then a manager opens the Deal in HubSpot expecting to see how it happened — and finds a Contact record with no conversation on it at all, because nothing was ever connected in the first place.
This guide covers what most setup guides skip: exactly how conversation history shows up once it's connected — which object it lands on, how it's grouped, and what to check if it isn't there. If you haven't connected WhatsApp to HubSpot yet, the full setup walkthrough is here; if you're trying to understand why messages aren't reaching HubSpot at all, start here instead.
What "conversation history in Contact records" actually means
A WhatsApp conversation resolves to three places in HubSpot: the Contact's Timeline, an association on the relevant Deal, and — for calls specifically — a separate Call Engagement.

- Contact Timeline — every WhatsApp message, in and out, logs here as a WhatsApp activity.
- Deal association — the same conversation also attaches to the relevant Deal, so a rep reviewing a Deal sees the WhatsApp history without switching to the Contact.
- Call Engagements — WhatsApp voice and video calls log as their own object type, HubSpot's native Call Engagement, not as a Timeline message activity.
Messages sync to the Timeline within seconds of being sent or received. What you see there, though, is grouped: HubSpot's timeline collapses same-day activity from one conversation into a single entry, expandable to the full exchange — the same visual pattern HubSpot uses for other frequently-updated activity types, not something unique to WhatsApp. A message from ten minutes ago and one from this morning can appear inside the same collapsed card, which is a display choice, not a sync delay.
Why it matters: this distinction resolves the single most common confusion people have with this integration. The data has already arrived — it just isn't rendered as a separate line per message inside the Timeline card. Expand the day's entry to see everything.
Install and review signals back this up as more than a claim: the integration's HubSpot Marketplace listing shows 4.4 stars across 53 reviews and roughly 3,000 installs — a meaningfully larger base than the same integration shows on Pipedrive or Bitrix24, and one worth checking directly on HubSpot's own platform rather than taking on trust.
Why account type matters more than most setup guides mention
Most WhatsApp-to-HubSpot tools, including the two most commonly compared against this one, are built on the WhatsApp Business API — which means a dedicated, Meta-approved number is a prerequisite before any Contact syncing can start.
- wati's HubSpot integration requires WhatsApp Business API access, available only on wati's paid plans, alongside a HubSpot Professional plan or higher. It's genuinely capable — native two-way sync, AI conversation summaries, automatic task creation from promises made in chat — but none of it starts until a Business API number is in place.
- respond.io's HubSpot integration is also Business-API-based, though it offers WhatsApp Coexistence as a softer path — an existing number can join in coexistence mode rather than being fully de-registered. That's a real difference from a harder API-only requirement, but it still means Meta Business verification, not a plain QR connection.
Why it matters: if the goal is genuinely to see your team's *existing* WhatsApp conversations — the ones reps have been having on their own numbers for months — a Business-API requirement is a wall, not a setup step. Connecting by QR code, as covered below, is what makes those existing conversations reachable at all.
Before you start
- HubSpot admin rights — to authorize the app via OAuth.
- Any WhatsApp account — regular WhatsApp, the Business app, or the Business API. No Business API approval is required to connect.
- About two minutes — a QR scan plus an OAuth authorization.
Step 1: Connect your WhatsApp account
Scan a QR code from the TimelinesAI workspace, the same way you'd link WhatsApp Web. Full setup steps here if you want the complete walkthrough — this guide picks up from a completed connection.
Why it matters: this step determines which conversations exist to sync at all. Connecting your own number brings its existing conversations into scope; a shared or unstaffed number needs its own connection, covered separately in our guide to shared inboxes for HubSpot teams.
Step 2: Authorize HubSpot via OAuth
Authorize the HubSpot Marketplace app with an admin account. This is a standard OAuth flow — no API keys to generate, no developer setup.
Why it matters: OAuth scope determines what the integration can write to. An admin authorization is what allows Contact, Deal, and Call Engagement objects to all be reachable — a restricted authorizing user can silently narrow what actually syncs.
Step 3: Confirm contact matching is resolving correctly
Every message is matched to a Contact by phone number, with a new Contact auto-created when no match exists — the same matching logic documented for Pipedrive, running on the same underlying mechanism here.
Why it matters: matching and display are two separate mechanisms. A message can be correctly matched to the right Contact the moment it arrives, while still appearing inside a grouped daily Timeline card — troubleshooting a "missing message" by second-guessing the match, when the real issue is just the display grouping from Step 1, is a common dead end.
Step 4: Decide what happens on Deals, not just Contacts
Check that the conversation is genuinely associating with the right Deal, not just the Contact — this is worth a deliberate look rather than an assumption, especially for a Contact with more than one open Deal.
Why it matters: a Contact record with several Deals can leave ambiguity about which one a WhatsApp thread belongs to. Confirming this now avoids a rep reviewing the wrong Deal and missing the context that actually explains it. This matters most for account-based sales, where one Contact might have a renewal, an upsell, and a new-product conversation all open at once — three different WhatsApp threads that need to land on three different Deals, not get flattened into one.
Step 5: Turn on Workflow actions if you want automation
HubSpot Workflows can send a WhatsApp message as a native action inside any automation — a new Deal stage, a form submission, a scheduled follow-up. This is a separate capability from conversation history and worth enabling only if you have an actual automation in mind, covered in detail elsewhere.
Why it matters: Workflow actions and Timeline sync are independent systems. Turning one on doesn't affect the other, and troubleshooting them as if they were the same thing wastes time.
Step 6: Verify history is actually landing on the Contact record
Send a test message and confirm exactly where it appears — this is the only way to know the setup is actually working end to end, rather than assuming it from a green connection status.
- Send a WhatsApp message from a number with an existing HubSpot Contact match.
- Open that Contact record in HubSpot.
- Confirm the message appears in the Timeline, expanding the day's entry if it's collapsed.
- Open the associated Deal and confirm the same conversation is visible there too.
- If it was a call, confirm it appears separately as a Call Engagement, not inside the Timeline message activity.
This walkthrough video shows the sync happening end to end, including how messages, attachments, and reactions land on the Contact and Deal.
Common problems and troubleshooting
A message doesn't seem to be there. Almost always it's inside a collapsed daily Timeline card, not missing. Expand that day's entry before assuming the sync failed.
Messages are landing on the wrong Contact, or duplicating one. This is the matching mechanism, not a display issue — the same root cause documented for Pipedrive: duplicate Contact records already in HubSpot confuse the phone-number match. Dedupe in HubSpot first.
A call doesn't show up where I expected. Calls log as Call Engagements, a different object from the Timeline message activity used for texts. Check the Calls section of the Contact record, not the message Timeline.
Workflow actions aren't firing. This is a separate subsystem from conversation sync. Confirm the Workflow itself is enabled and the trigger conditions are actually being met before assuming it's a connection problem.
Nothing is syncing to HubSpot at all. Check the WhatsApp connection first, not the HubSpot side — a dropped WhatsApp connection looks identical to a HubSpot sync failure from inside the CRM.
Frequently asked questions
Do I need the WhatsApp Business API to connect to HubSpot?
No. Regular WhatsApp, the WhatsApp Business app, and the Business API all work. No Business API approval is required to get started.
Will my existing WhatsApp number work, or do I need a new one?
Your existing number works as-is, connected by QR code — nothing needs to be de-registered or migrated first.
Do messages appear on Deals, or only on Contacts?
Both. The same conversation logs to the Contact's Timeline and associates with the relevant Deal, so a rep reviewing either record sees the history.
How fast does WhatsApp actually sync to HubSpot?
Messages sync within seconds of being sent or received. What appears on the Timeline is grouped by day per conversation for display — a HubSpot UI pattern, not a delay in the underlying sync.
Do WhatsApp calls show up the same way as messages?
No — calls log as HubSpot Call Engagements, a separate object from the Timeline message activity used for text conversations.
Is there a way to check whether this integration is actually reliable?
The HubSpot Marketplace listing shows the install count and review score directly from HubSpot's own platform — a live source that updates itself, unlike any third-party summary, including this one.
Can multiple team members see the same WhatsApp conversation history?
Yes, once it's on the Contact record, anyone with HubSpot access to that Contact sees the full synced history — the same way they'd see any other Timeline activity. Managing who can reply from which number is a separate, shared-inbox concern rather than a history-visibility one.
Can an agency use this across multiple HubSpot portals?
Each HubSpot portal is authorized separately via its own OAuth connection, so an agency managing several client portals connects each one individually rather than sharing a single authorization across accounts.
Get started
Connect WhatsApp to HubSpot and give your Contact records the conversation history they're missing. Start a free trial — no credit card required.