Back to DocsIntegrations

Connecting HubSpot

Install the DealOracle app for HubSpot: connect your portal read-only, map deal stages to Meta and Google conversion events, and sync your leads.

Table of contents

Overview

The DealOracle app for HubSpot connects your HubSpot CRM to DealOracle so your ad platforms finally learn what happens after the click. DealOracle reads contacts and deals from HubSpot, matches them back to the original ad click, and fires the right conversion events to Meta and Google Ads when a deal reaches the pipeline stages you choose.

What this integration does

  • Contacts → Leads — Your HubSpot contacts sync into DealOracle's Lead Manager, enriched with ad attribution (campaign, ad set, ad, and click IDs).
  • Deal stage tracking — When a deal moves to a new stage in the pipeline you select, DealOracle updates the lead's status and can fire a conversion event to Meta and/or Google Ads.
  • Dynamic revenue on Purchase — A stage mapped to Meta's Purchase event (for example, Closed Won) sends the deal's actual amount to Meta instead of a static value, so your ROAS reporting reflects real revenue.
  • Privacy built in — Contact deletions and GDPR privacy-deletion requests in HubSpot automatically scrub the matching lead's personal data in DealOracle.

Read-only by design. DealOracle only reads from your HubSpot portal. It never creates, changes, or deletes anything in HubSpot.

Requirements

  • A DealOracle account with admin access on any plan (all plans include the HubSpot integration and start with a 7-day free trial).
  • A HubSpot account on any tier, including the free CRM. The HubSpot user who authorizes the connection needs permission to install apps (Super Admin or a role with App Marketplace Access).
  • To fire conversion events, at least one ad platform (Meta or Google Ads) connected in DealOracle. You can connect HubSpot first and add ad platforms later.

Data shared

All data flows from HubSpot to DealOracle — never the other direction.

HubSpot dataDirectionWhat DealOracle uses it for
ContactsSync from HubSpotCreating and updating leads
Contact propertiesSync from HubSpotField mapping and click-ID capture
DealsSync from HubSpotStage tracking and deal revenue
Deal pipelinesSync from HubSpotThe pipeline and stage list in the setup wizard

The app requests these read-only OAuth scopes: crm.objects.contacts.read, crm.objects.deals.read, crm.schemas.contacts.read, crm.schemas.deals.read.

Installation

Connecting takes about two minutes.

Step 1: Start the connection in DealOracle

Log in to DealOracle and go to Settings → Integrations, open the CRM tab, find the HubSpot card, and click Connect. (If you're brand new, the onboarding wizard offers the same Connect step.)

Step 2: Authorize in HubSpot

You'll be redirected to HubSpot's authorization page:

  1. Choose the HubSpot account (portal) you want to connect.
  2. Review the requested permissions — all four scopes are read-only (contacts, deals, and their property definitions).
  3. Click Connect app.

Step 3: Land in the setup wizard

After authorizing, HubSpot sends you straight back to DealOracle's HubSpot Setup wizard — no manual API keys, nothing to paste. Until you finish the wizard, the HubSpot card on the Integrations page shows Setup Required; once configured it shows Connected with the pipeline you selected.

Configuration: the HubSpot Setup wizard

The wizard is where you tell DealOracle which contacts become leads and which deal stages fire conversion events.

1. Choose a lead import mode

The first card asks how DealOracle should create leads from your portal:

  • All contacts (default, recommended) — every HubSpot contact becomes a DealOracle lead.
  • Pipeline contacts only — only contacts attached to a deal in the pipeline you select below.
  • Update only — never create new leads; only enrich and stage-track leads DealOracle already has.

Deal-stage tracking runs in every mode.

Optional — contact filter: if one HubSpot portal serves multiple businesses, enable the contact filter to include or exclude contacts by any contact property and value list. Contacts with a blank value are skipped in include mode and kept in exclude mode.

2. Select your deal pipeline

Pick the deal pipeline DealOracle should track. Its stages load automatically from HubSpot.

3. Map stages to statuses and conversion events

Each pipeline stage becomes a lead status in DealOracle. For every stage you can set:

  • Meta event — a standard Conversions API event (Lead, Schedule, Purchase, and so on). Shown only when a Meta account is connected.
  • Google conversion action — chosen from the real conversion actions in your Google Ads account, not a generic list. Shown only when Google Ads is connected.
  • Lead value — the conversion value sent with the event.

Map a stage to Meta Purchase and DealOracle automatically switches that stage to Deal Revenue: the event is sent with each deal's actual amount from HubSpot instead of the static value.

4. Map fields and click IDs (optional)

  • Field mappings — map any HubSpot contact properties onto DealOracle lead fields so synced leads carry the CRM data you care about.
  • Click ID mappings — if your forms store click IDs (GCLID, FBCLID) on HubSpot contact properties, map them here so DealOracle can attribute those leads to the exact ad click.

5. Save

Click Save Configuration. Saving stores your setup but does not import anything yet — importing existing contacts is a separate, deliberate step (next section).

Using the integration

Import your existing HubSpot leads

Back on Settings → Integrations, the HubSpot card now shows a Sync Leads button. Click it to run the first import. This backfill is opt-in on purpose — nothing is imported until you ask — and it also enrolls your account in ongoing automatic syncing.

Ongoing sync

  • Every 15 minutes, DealOracle syncs new and updated contacts and checks for deal stage transitions in your selected pipeline. A stage transition updates the lead's status and fires any conversion events you mapped to that stage.
  • Real-time webhooks handle time-sensitive updates from HubSpot immediately, including privacy deletions.
  • Events are de-duplicated, so a conversion is never sent twice for the same stage change.

Where you'll see it

  • Lead Manager — synced contacts appear as leads with their HubSpot-driven status and mapped fields; each lead's Journey tab shows the conversion events sent.
  • Reporting — conversions fired from deal stages flow into DealOracle's campaign reporting and to Meta/Google, closing the loop between ad spend and CRM revenue.

Disconnecting

To disconnect, go to Settings → Integrations, open the HubSpot card menu, and click Disconnect. You can also uninstall from the HubSpot side under Settings → Integrations → Connected Apps.

What happens when you disconnect:

  • Syncing stops immediately; the stored access token is removed.
  • Leads already created in DealOracle remain (delete them in DealOracle if you wish).
  • Nothing changes in HubSpot — the integration never writes to your portal.

Privacy & data deletion

If a contact is deleted in HubSpot — including a GDPR privacy-deletion request — DealOracle automatically erases the matching lead's personal data. No manual cleanup needed.

Troubleshooting

SymptomFix
Card shows Setup RequiredThe wizard wasn't finished. Open the card and complete Save Configuration.
No leads after connectingRun Sync Leads on the Integrations card — the first import is manual. Also check your lead import mode and contact filter.
Leads sync but no conversion eventsMake sure the stage is mapped to an event in the wizard and the ad platform is connected. Events fire on stage transitions that happen after connecting, not retroactively.
Google column missing in the wizardConnect your Google Ads account in DealOracle first — the event list comes from your real conversion actions.

Need help? Email [email protected] or use the in-app chat — we typically respond within one business day.

#crm#hubspot#integration