Overview
The HubSpot integration connects DealOracle to your HubSpot CRM for bi-directional lead syncing. This means leads flow seamlessly between both platforms, keeping your sales and marketing teams aligned with up-to-date data.
What This Integration Does
- DealOracle → HubSpot — New leads captured in DealOracle are automatically created as contacts in HubSpot. Disposition changes update the contact's lifecycle stage and properties.
- HubSpot → DealOracle — When a contact is updated in HubSpot (e.g., a sales rep marks them as "Sales Qualified"), the change syncs back to DealOracle for ad platform reporting.
- Lifecycle stage mapping — DealOracle dispositions map to HubSpot lifecycle stages, so your CRM always reflects the current lead status.
- Property syncing — Custom properties sync between platforms, including UTM data, ad source, campaign info, and deal values.
Why This Matters
Without this integration, your marketing team runs ads in one system while your sales team works leads in another. Changes in HubSpot don't get reported back to ad platforms. With the DealOracle-HubSpot integration, the loop is closed: every CRM update triggers the right conversion events to your ad platforms.
Prerequisites
Before connecting HubSpot, ensure you have:
- HubSpot account — Any HubSpot plan that includes API access (Starter, Professional, or Enterprise). Free CRM accounts have limited API capabilities.
- Contact create/edit permissions — The HubSpot user authorizing the connection must have permission to create and edit contacts.
- Super Admin or App Marketplace Access role — Required to authorize third-party app connections via OAuth.
Supported HubSpot Plans
| HubSpot Plan | Supported | Notes |
|---|---|---|
| Free CRM | Partial | Limited API rate limits |
| Starter | Yes | Full support |
| Professional | Yes | Full support + workflows |
| Enterprise | Yes | Full support + custom objects |
Tip: If you're on the free HubSpot CRM plan, the integration will work but you may hit API rate limits during high-volume syncing. Consider upgrading for production use.
Connection Steps
Follow these steps to connect HubSpot to DealOracle:
Step 1: Navigate to Integrations
From your DealOracle dashboard, go to Settings → Integrations → HubSpot.
Step 2: Authorize via OAuth
Click Connect HubSpot. You'll be redirected to HubSpot's authorization page. Select the HubSpot portal (account) you want to connect, and grant the requested permissions:
- Read/write contacts
- Read/write companies
- Read/write deals
- Read contact lists
Step 3: Select Properties to Sync
After authorization, DealOracle will display a list of HubSpot contact properties. Select which properties you want to sync:
Standard properties (auto-mapped):
- First Name, Last Name
- Email, Phone
- Lifecycle Stage
- Lead Source
Custom properties (manual mapping):
- Any custom HubSpot properties can be mapped to DealOracle fields
- UTM parameters (source, medium, campaign, content, term)
- Ad platform IDs (GCLID, FBCLID, etc.)
Step 4: Map Fields
For each DealOracle field, select the corresponding HubSpot property. DealOracle will auto-map common fields, but you can customize the mapping.
Step 5: Enable Auto-Sync
Toggle Auto-Sync to enable real-time bi-directional syncing. You can also choose:
- Sync direction — Both ways, DealOracle → HubSpot only, or HubSpot → DealOracle only
- Sync frequency — Real-time (webhook), every 5 minutes, or every 15 minutes
- Duplicate handling — Match by email, phone, or both
Step 6: Test the Sync
Click Send Test Contact to create a test contact in HubSpot. Verify it appears in your HubSpot contacts with the correct properties.
Important: The first sync may take several minutes if you have a large number of existing contacts to import.
Field Mapping & Sync Logic
Default Field Mapping
| DealOracle Field | HubSpot Property | Direction |
|---|---|---|
| First Name | firstname | Bi-directional |
| Last Name | lastname | Bi-directional |
email | Bi-directional | |
| Phone | phone | Bi-directional |
| Disposition | lifecyclestage | Bi-directional |
| Lead Source | hs_analytics_source | DealOracle → HubSpot |
| UTM Source | utm_source (custom) | DealOracle → HubSpot |
| UTM Medium | utm_medium (custom) | DealOracle → HubSpot |
| UTM Campaign | utm_campaign (custom) | DealOracle → HubSpot |
| Deal Value | deal_value (custom) | Bi-directional |
Lifecycle Stage Mapping
DealOracle dispositions map to HubSpot lifecycle stages:
| DealOracle Disposition | HubSpot Lifecycle Stage |
|---|---|
| New Lead | Subscriber |
| Contacted | Lead |
| Qualified | Marketing Qualified Lead |
| Sales Accepted | Sales Qualified Lead |
| Opportunity | Opportunity |
| Closed Won | Customer |
| Closed Lost | Other |
Conflict Resolution
When the same field is updated in both DealOracle and HubSpot simultaneously, the integration uses a last-write-wins strategy:
- The most recent update (by timestamp) takes precedence
- Conflicts are logged in the integration event log for review
- You can configure specific fields to be "source of truth" from one platform (e.g., always trust HubSpot for lifecycle stage)
Sync Frequency Options
| Mode | Latency | Best For |
|---|---|---|
| Real-time (webhook) | < 5 seconds | Most users |
| Every 5 minutes | Up to 5 minutes | High-volume accounts |
| Every 15 minutes | Up to 15 minutes | Very high-volume or rate-limited accounts |
Handling Duplicates
DealOracle checks for existing contacts before creating new ones:
- Primary match: Email address
- Secondary match: Phone number (if email not found)
- No match: Create a new contact
You can customize the matching logic in the integration settings.
Need help? Contact DealOracle support at [email protected] or use the in-app chat.
