Skip to content

HubSpot integration

Vaam’s HubSpot integration keeps your prospects and contacts in sync so your sales team works from one source of truth. Once connected, Vaam matches prospects to existing HubSpot contacts, fills in missing details, and respects ownership and lifecycle rules so reps don’t step on each other.

Looking for which Vaam events you can use as workflow triggers in HubSpot? See HubSpot signals.

The HubSpot integration is team-scoped: one HubSpot account connects to one Vaam team, and every member of the team uses the same connection. A team admin sets it up once and the rest of the team benefits.

To connect:

  1. Go to Settings → Integrations in Vaam.
  2. Click HubSpot → Connect.
  3. Sign in to HubSpot and choose the account you want to link.
  4. Review the permissions Vaam requests and approve them.

Vaam asks for these permissions:

  • Read and write contacts — so Vaam can match prospects to contacts, fill in missing information, and create new contacts when none exist.
  • Read companies — so Vaam can identify the company a contact belongs to.
  • Write timeline events — so Vaam activity shows up on the contact’s HubSpot record.
  • Read owners — so admins can map Vaam users to the matching HubSpot owner.

Grant all of them. If you skip any, parts of the integration stop working — for example, denying write access means Vaam can’t create new contacts or post timeline events, and denying owner access disables the prospect-blocking rules below.

If HubSpot adds new permission scopes, or if your admin needs to refresh the connection, open Settings → Integrations → HubSpot and re-authorize from the same screen. You don’t lose any data by reconnecting.

You can disconnect the integration at any time from Settings → Integrations → HubSpot → Disconnect. Vaam stops reading from and writing to HubSpot immediately. Your existing HubSpot data stays untouched.

Vaam will disconnect the integration automatically if HubSpot returns repeated authentication failures — for example, when a refresh token has expired, the Vaam app has been revoked in HubSpot, or the linked HubSpot account has been deleted.

When this happens, no data is lost in HubSpot. Reconnect from Settings → Integrations → HubSpot and the integration resumes.

When you add or enroll a prospect in Vaam, Vaam looks for a matching HubSpot contact in this order:

  1. Email address — the most reliable match.
  2. LinkedIn profile URL — used when there’s no email match.
  3. Full name — used as a last resort and only when nothing else fits.

If a match is found, Vaam updates the existing contact with any new information without overwriting fields that already have values — so anything your team has manually curated in HubSpot is safe.

If no match is found, Vaam creates a new contact, provided the connection has write permission. The new contact is populated with whatever Vaam knows about the prospect at that point (name, email, LinkedIn URL, company, and any other fields you’ve collected).

If Vaam finds more than one possible match, see Multiple contacts match a prospect under troubleshooting.

When someone watches a Vaam video without identifying themselves, Vaam can often identify the visitor’s company from their network domain. In those cases, Vaam can create or update a matching company record in HubSpot so your team sees which accounts are engaging — even before a contact is known.

This is especially useful for outbound campaigns, where a video view from an unknown viewer is often the first signal that an account is paying attention.

For contacts and companies a Vaam user owns, Vaam writes a small set of account-level properties that are useful for cohort filters and reporting:

  • Account creation date
  • Account language
  • Onboarding status
  • Subscription type
  • Trial status
  • Subscription end date
  • UTM source (when applicable)

These properties update whenever the underlying value changes in Vaam.

  • Owners. Vaam loads the list of HubSpot owners so admins can map each Vaam user to the matching HubSpot owner. This mapping is what powers the prospect-blocking rules below.
  • Lifecycle stage and contact owner on prospects, used by the prospect-blocking rules.
  • Contact lookups when you import prospects from a HubSpot list or view.

Prospect blocking is configured in Settings → Integrations → HubSpot. It runs every time a rep enrolls a contact in a sequence, before any messages are sent. If a rule blocks the prospect, the enrollment is canceled and the reason is shown to the rep.

When this is on, Vaam refuses to enroll a contact whose HubSpot owner is mapped to a different Vaam user. This prevents two reps from working the same contact at the same time.

For this rule to be effective, every rep should be mapped to their HubSpot owner under the integration settings.

Pick the HubSpot lifecycle stages where outreach should not happen — for example, customer or opportunity. Contacts in those stages can’t be enrolled in a Vaam sequence.

You can combine both rules. They run together, and a prospect needs to pass every active rule before enrollment proceeds. If a prospect is blocked, the rep sees the reason on screen and can either pick a different prospect, hand the contact off internally, or — if appropriate — change the lifecycle stage or owner in HubSpot first.

The integration runs in the background. There’s nothing to schedule, and no manual sync button to press.

  • Contact and company writes happen when you create or update a prospect, or when an anonymous viewer is identified by their company.
  • Account property updates run when the underlying value changes in Vaam — for example, when a user’s subscription changes or onboarding completes.
  • Timeline events post immediately when the trigger occurs in Vaam. A short cooldown debounces rapid-fire updates so you don’t see duplicate writes for the same change.

If a write fails — for example, because HubSpot is temporarily unavailable — Vaam retries automatically.

A few habits make the integration much smoother in day-to-day use:

  • Map every Vaam user to a HubSpot owner. Without the mapping, the “block contacts owned by other reps” rule has nothing to compare against and won’t protect your team from collisions.
  • Agree on which lifecycle stages are off-limits for outreach before turning on the lifecycle block, so reps aren’t surprised when enrollments are refused.
  • Keep duplicate contacts under control in HubSpot. Vaam will flag prospects with multiple matches for manual review, and a clean contact database keeps the queue short.
  • Reconnect after HubSpot admin changes. If a HubSpot admin changes the scopes available to apps, or rotates credentials, reconnecting from Vaam is the fastest fix.

Vaam disconnects the integration automatically when HubSpot returns repeated authentication errors. The most common causes are an expired refresh token, the Vaam app being revoked from inside HubSpot, or the linked HubSpot account being deleted.

Fix: reconnect from Settings → Integrations → HubSpot. No HubSpot data is lost.

If account properties aren’t appearing on a contact or company:

  • Confirm the Vaam user is the owner of that prospect or account in Vaam — properties are only written for records owned by a Vaam user.
  • Confirm the HubSpot owner mapping is set under Settings → Integrations → HubSpot.
  • Confirm the HubSpot connection still has write permissions — if a HubSpot admin downgraded the app’s scopes, reconnect to restore them.

If a rep can’t enroll a contact and Vaam shows a blocked-prospect message:

  • Check the prospect-blocking rules under Settings → Integrations → HubSpot.
  • Look at the contact’s HubSpot owner. If it’s mapped to a different Vaam user and “block contacts owned by other reps” is on, that’s why.
  • Look at the contact’s lifecycle stage. If it matches a blocked stage, that’s why.
  • Confirm the HubSpot integration is connected under Settings → Integrations.
  • Confirm the prospect has at least an email address or LinkedIn profile URL — Vaam needs one of those to match or create a contact.
  • If the connection shows as disconnected, reconnect and retry.

Vaam never overwrites a HubSpot field that already has a value — it only fills in blanks. If you need to change an existing value in HubSpot, edit it directly in HubSpot.

When Vaam finds more than one possible match (up to five candidates), the prospect is flagged for manual review. Open the prospect in Vaam, pick the correct HubSpot contact, and Vaam links them. If more than five candidates match, no automatic linking happens — clean up the duplicates in HubSpot or pick the right contact manually.