Guides

How Do I Connect Orbit to HubSpot for a Heatmap?

Wire Orbit intent audiences into HubSpot so target accounts light up with in-market buyer activity, refreshed every 24 hours.

Elene Marjanidze Elene Marjanidze · · 9 min read
How Do I Connect Orbit to HubSpot for a Heatmap?

Most HubSpot ABM dashboards are static. A rep opens the target account list, sees the same 200 company tiles they saw yesterday, and has no way to tell which of those accounts are actually researching the category this week. The data is in your intent tool. The workflow is in HubSpot. The two never meet.

At Leadpipe we help customers wire Orbit into HubSpot so the target account view becomes a live heatmap. Every 24 hours, the accounts with active intent signals update. Contacts with person-level intent get tagged. Reps see a filtered queue of “who’s actually in-market at my 200 accounts right now.” This guide is the exact recipe.

The short answer

Build an Orbit audience restricted to your target account domains. Save it. Use the Orbit API or CSV export to push two payloads into HubSpot daily: (1) an orbit_intent_score and orbit_intent_topics custom property on the matching Companies, and (2) person-level rows into Contacts with the same fields. Drive your HubSpot dashboard off those properties. When an account’s orbit_intent_score crosses 70, the card lights up. When a contact has a score above 80, the owner gets a Slack ping. That is the whole loop, and it takes about 45 minutes end to end.

Now the step-by-step.

Before you start

You need three things set up before the integration will work.

  1. An active Leadpipe account with Orbit enabled. If you are on the Pro plan at $147 a month or higher, Orbit is included.
  2. A HubSpot account with permissions to create custom properties on Companies and Contacts, and to create/edit workflows. Most HubSpot Professional and Enterprise tiers allow this.
  3. A clean ABM target account list of 50 to 500 domains. If you do not have one yet, start with our 200-account ABM watchlist guide.

Plan on about 45 minutes for the first setup, less than 10 for subsequent audiences.

Step 1: build the Orbit audience

Open Orbit’s audience builder inside Leadpipe. Configure the audience as follows.

FieldValue
Topics2 to 4 topics covering your category and top competitor
Min topic overlap2 (if you picked more than one topic)
Min score70
SeniorityVP, Director, C-Suite
Company domainsYour target account list, one per line
Has business emailtrue

Preview. If you see 50 to 500 people, you are in the right zone. Over 1,000 usually means the topics are too broad. Zero usually means the domain list has www. prefixes or formatting issues.

Name the audience clearly, like “HubSpot Heatmap, Q2 Top 200,” and save. That name will follow you through the API payloads and makes debugging easier later.

If this is your first Orbit audience, read the Orbit person-level intent audiences walkthrough first for the full builder tour.

Step 2: create the HubSpot custom properties

HubSpot needs fields to store the intent data. Create two properties on Companies and three on Contacts.

On Companies:

PropertyTypePurpose
orbit_intent_scoreNumber (1-100)Highest active intent score across people at this company today
orbit_intent_topicsMulti-line textComma-separated topic names currently active at this company

On Contacts:

PropertyTypePurpose
orbit_intent_scoreNumber (1-100)This person’s current intent score
orbit_intent_topicsMulti-line textComma-separated topics this person is researching
orbit_last_seenDate pickerLast day Orbit saw on-topic behavior

These are the fields your dashboard and workflows will key off. Spell the property names exactly as listed so the payloads map cleanly.

Step 3: choose a delivery method

You have three ways to move Orbit data into HubSpot. Pick one based on your stack.

MethodBest forSetup effort
CSV export + HubSpot importTeams with no engineering support10 minutes, done manually or on a daily cron
Zapier / n8n / MakeTeams with light automation, no custom code30 minutes
Orbit REST API + HubSpot APIEngineering teams, high volume, custom logic1 to 2 hours

For most teams, the Zapier/n8n path is the sweet spot. It gives you daily refresh with minimal engineering. For the developer path, see our Intent API walkthrough and the n8n automation guide.

Step 4: build the daily sync

Whichever delivery method you pick, the logic is the same:

  1. Every 24 hours, pull the latest run of your Orbit audience.
  2. For each row, upsert the Contact in HubSpot (match by business email).
  3. Set orbit_intent_score, orbit_intent_topics, and orbit_last_seen on the Contact.
  4. Aggregate to the Company level: for each domain, find the maximum current score across its contacts, collect the union of topics, and upsert the Company.
  5. Set orbit_intent_score and orbit_intent_topics on the Company.

The developer-style version (Orbit API + HubSpot API)

Pull the audience run:

curl -X POST "https://api.aws53.cloud/v1/intent/audiences/{id}/export" \
  -H "X-API-Key: sk_your_key"

That returns a signed download URL for today’s CSV. Parse it, iterate rows, and call the HubSpot Contacts API to upsert by email, then the HubSpot Companies API to upsert by domain with the aggregated score and topics.

If you already have the Leadpipe Clay + HubSpot integration wired up, you can route Orbit data through the same Clay workflow by adding the audience export as a new source.

The no-code version (Zapier / n8n)

In Zapier or n8n, build a scheduled daily workflow:

  1. Trigger: every day at a fixed time.
  2. Action: HTTP request to the Orbit export endpoint.
  3. Action: iterate CSV rows.
  4. Action: HubSpot “create or update contact” with business email as the unique key.
  5. Action: group rows by company domain, compute max score and topic union.
  6. Action: HubSpot “create or update company” with the domain as the unique key.

Total build time: about 30 minutes if you know your way around Zapier. The webhook payload format is standard and covered in the webhook payload reference.

Step 5: build the heatmap view in HubSpot

This is the payoff. Inside HubSpot, create a new Companies view with these filters:

  • orbit_intent_score is known
  • orbit_intent_score is greater than or equal to 70
  • Lifecycle stage is (your relevant stages: Lead, MQL, SQL, Opportunity)

Sort descending by orbit_intent_score. Save the view as “Live Account Heatmap, In-Market Today.”

Reps open this view every morning. The top of the list is the accounts with the strongest active intent. Drilling into a Company shows the Contacts who are actually researching (because their Contact record has the same score and topic fields).

The view refreshes in real time as the daily sync updates properties. No more stale ABM dashboards.

Step 6: set up Slack alerts

Heatmaps get looked at once a day. Slack alerts get looked at immediately. Build two HubSpot workflows.

Workflow 1: Company crosses intent threshold.

  • Trigger: orbit_intent_score on a Company changes and is now greater than or equal to 80.
  • Action: Send Slack message to the account owner: “Acme Corp just hit intent score 84 on topics: CRM Software, Salesforce Alternatives. Open the account.”

Workflow 2: Contact crosses threshold.

  • Trigger: orbit_intent_score on a Contact changes and is now greater than or equal to 85.
  • Action: Send Slack DM to the Contact’s owner: “Sarah Chen at Acme is at score 87 on CRM Software. Reach out.”

If you already run Leadpipe Slack visitor alerts, route Orbit alerts through the same channel so reps have a single pipe.

Step 7: close the loop with attribution

HubSpot has native attribution reporting. Use it.

Create a custom report: opportunities created in the last 90 days, grouped by whether the primary Contact had orbit_intent_score greater than or equal to 70 in the 14 days before the opp was created.

This is your intent-sourced pipeline report. Over time it will tell you:

  • What percentage of pipeline is sourced from Orbit-surfaced intent.
  • Which topics produce the highest-converting accounts.
  • Whether raising or lowering your score threshold helps or hurts.

For the broader framing on ABM ROI, see the abm with visitor identification post and the marketing ROI proof guide.

Troubleshooting

A few failure modes you will see in the first week.

Company properties not updating. Check that your aggregator is keyed off domain, not company name. HubSpot matches by domain.

Too many Contacts upserted. If you are seeing thousands of new Contacts per day, your audience is too broad. Raise the score floor to 75 or add ICP filters. Target accounts only should produce dozens to hundreds of Contacts, not thousands.

Scores not decaying. Each daily sync should overwrite the score, not append. If your workflow appends, stale scores pile up. Set the HubSpot action to “replace” the property value on every run.

Slack noise. If the alerts fire too often, raise the threshold. 80 is busy, 85 is manageable, 90 is urgent.

Comparison: native HubSpot intent vs Orbit

HubSpot has its own intent product (Breeze Intelligence, formerly Clearbit). Here is how they stack up for an account heatmap use case.

CapabilityHubSpot Breeze / ClearbitOrbit in HubSpot
Intent resolutionCompany-levelPerson-level
Topic breadthLimited category signals20,810 topics
RefreshContinuous on your siteDaily across 5M sites
Data sourceHubSpot pixel + Clearbit signalsCross-site pixel network + identity graph
Contact data in payloadPartialName, email, phone, LinkedIn included
Additional costBreeze add-on pricingIncluded in Leadpipe ($147/mo)

HubSpot’s native option is convenient if you live entirely inside HubSpot and only care about accounts that visit your own site. Orbit gives you off-site intent with person-level resolution, which is the point of an ABM heatmap: knowing who is researching in the wider category, not just who has already shown up on your homepage.

For the full category framing, see intent data vs visitor identification and person-level intent data, how it works.

Spin up an Orbit watchlist for the accounts you actually care about and see who is researching your category right now. Get started with Orbit →