$ 349.00
In-App Purchases| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
CRM (crm)
• Contacts (contacts) • Discuss (mail) • Invoicing (account) • Sales (sale_management) • Calendar (calendar) |
| Lines of code | 14313 |
| Technical Name |
oh_integration |
| License | OPL-1 |
| Website | https://www.echobitzit.com |
| Versions | 15.0 16.0 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
CRM (crm)
• Contacts (contacts) • Discuss (mail) • Invoicing (account) • Sales (sale_management) • Calendar (calendar) |
| Lines of code | 14313 |
| Technical Name |
oh_integration |
| License | OPL-1 |
| Website | https://www.echobitzit.com |
| Versions | 15.0 16.0 17.0 18.0 19.0 |
Advance Odoo HubSpot
Integration
The Ultimate Bi-Directional Odoo ↔ HubSpot CRM Connector
Transform how your sales and accounting teams collaborate by merging Odoo and HubSpot into a single source of truth. Our Advance integration eliminates manual data entry and third-party middleware bottlenecks by delivering seamless, fully automated, bi-directional synchronization across 6 major modules: Contacts, Companies, Deals, Quotes, Products, and Users.
Configure complex data logic in minutes without a developer. The connector features an intuitive visual dynamic field mapping engine, intelligent dropdown value alignment, hash-based change detection, full HubSpot REST API v3 coverage at every layer and per-field sync direction control (Odoo → HubSpot, HubSpot → Odoo, or both). Powered by flexible triggering - choose between instant manual sync or scheduled background cron batches - your data stays fresh 24/7. Complete with a comprehensive real-time diagnostic logger, you'll have complete visibility and control over every synchronized record.
Why Teams Choose HubSpot Integration
Business Value It Delivers
Key Features
Everything you need to connect Odoo and HubSpot securely and automatically
Our Visual Dynamic Field Mapping interface to map any Odoo field to any HubSpot property - for every module independently. Set the sync direction per field (Odoo → HubSpot, HubSpot → Odoo, or both). Dropdown value alignment lets you map Odoo selection values to HubSpot picklist keys in a visual matrix.
Configurable pagination size (1–100 records/batch) controls HubSpot API throughput. Records are batched and committed in bulk for maximum efficiency during large sync operations.
One-click creation of all required
HubSpot custom properties (odoo_id, sync_odoo) across 6 object
types: Contacts, Companies, Deals, Products, Quotes. Skips already-existing
fields gracefully.
Fetch all available HubSpot properties for each object type directly into Odoo with a single button click per module. Field names and types are stored and made available in the mapping widget automatically.
Receives real-time HubSpot deletion events (contacts, companies, deals, products) via a secure authenticated webhook endpoint. Secret key validation prevents unauthorized calls and instantly mirrors deletions in Odoo.
Connect Odoo to HubSpot in Minutes
Enter your HubSpot Private App token, create the custom HubSpot fields with one click, configure your visual field mappings, then enable sync. Your Odoo data flows to HubSpot automatically - and HubSpot data flows back with no coding required.
What is Advance Odoo HubSpot Integration?
Advance Odoo HubSpot Integration is a native Odoo 19 module that creates a direct, secure, bi-directional data bridge between your Odoo ERP and HubSpot CRM using the HubSpot REST API v3. It eliminates the operational friction of managing two separate systems by keeping all business data perfectly synchronized in real time.
The module provides an intuitive, no-code configuration interface with a visual field mapper, dropdown value aligner, and per-module sync controls - all managed from a single OHI instance record. Sync can be triggered manually, automatically via scheduled cron jobs, or reactively via HubSpot Webhooks for real-time deletions. Every operation is captured by a comprehensive Integration Logger with full payload visibility.
6 Synchronized Modules
Complete coverage across your entire business workflow - from CRM to Finance
res.partner and HubSpot Contacts
object. Includes first/last name split, email-based deduplication, and related activity
sync.
- Email deduplication check before create
- Sync related Notes, Tasks, Emails, Meetings
- Sync associated Companies & Deals
- HubSpot owner auto-linked to Odoo user
res.partner where is_company=True) to
HubSpot Companies object, including all associated contacts and deals.
- Auto-detect company vs contact records
- Sync related Contacts & Opportunities
- Notes, Tasks, Emails, Meetings, Attachments
- Delete in HubSpot when deleted in Odoo
crm.lead) to HubSpot Deals. Probability is
auto-converted to HubSpot deal stage probability format.
- Stage & pipeline mapping with dropdown aligner
- Probability % auto-converted
- Sync related Notes, Tasks, Emails, Meetings
- Linked to Contacts & Companies in HubSpot
sale.order) as HubSpot Quotes. Supports both HubSpot template
types and auto-associates quotes with the correct quote template.
- CUSTOMIZABLE_QUOTE_TEMPLATE & CPQ_QUOTE
- Auto-link to HubSpot Quote Template
- Line items synced with product association
- Linked to Deals in HubSpot
product.template records to HubSpot Product Library. Internal reference
(default_code) is used for deduplication in HubSpot.
- Internal reference deduplication
- Price, description, and category mapping
- Delete propagation to HubSpot product library
- Used as line items in Quote sync
res.users) to HubSpot Users and retrieve HubSpot
Owner IDs for record ownership linking across all modules.
- First name / last name field split
- Email used as match key in HubSpot
- HubSpot Owner ID stored on Odoo user
- Auto-assigned as deal/contact owner
How to Set Up HubSpot Integration
Follow these steps to go from installation to live bi-directional sync with HubSpot.
- Go to HubSpot Integration → Instance in Odoo
- Click New and give the instance a name
- Enter your HubSpot Private App Access Token
- Set your HubSpot Domain, Default Odoo User, and Pagination Size
- Click Test Connection to verify your token is valid
- Only one instance can be active at a time - enforced automatically
- On your OHI Instance, click Create HubSpot Custom Fields
- This auto-creates
odoo_idandsync_odooon all HubSpot object types - Fields that already exist in HubSpot are skipped gracefully
- Covers: Contacts, Companies, Deals, Products, Quotes
- No manual HubSpot setup or developer access needed
- Confirm success in the notification banner
- For each module tab (Contacts, Companies, Deals, etc.), click Import Fields
- All HubSpot property definitions are fetched and stored in Odoo automatically
- Standard and custom HubSpot properties are both imported
- Fields become immediately available in the visual field mapping widget
- Repeat for each module you intend to sync
- Open each module tab and use the drag-and-drop Field Mapper
- Link each Odoo field to its corresponding HubSpot property
- Set the Sync Direction per field: OTH, HTO, or Both
- Use the Dropdown Value Aligner for selection/picklist fields
- Map Odoo stage names, priorities, and statuses to HubSpot enum values
- Save the instance record when all mappings are complete
Enable sync checkboxes per module (OTH and/or HTO). Click Sync Now manually for an immediate sync, or let the Scheduled Cron run every 30 minutes automatically. Monitor all operations in the Integration Logger.
Sync triggers: Manual Button · Scheduled Cron (30 min) · HTO Wizard (by HubSpot ID)
Configure HubSpot to POST deletion events to your Odoo webhook endpoint. Set the Webhook Secret Key on your instance and subscribe to contact, company, deal, and product deletion events in HubSpot Settings.
POST /hubspot/webhook?auth=<your_secret_key>
The auth parameter is validated against the Webhook Secret Key stored on the OHI Instance. Mismatched keys are rejected and logged automatically.
How It Works
From installation to live bi-directional sync between Odoo and HubSpot in four simple steps
Install the module in Odoo 19, enter your HubSpot Private App Access Token, and test the connection with one click.
Click Create HubSpot Custom Fields to auto-generate odoo_id and sync_odoo on all HubSpot object types instantly.
Import HubSpot field schemas per module, then use the visual mapper to link Odoo fields to HubSpot properties and align dropdown values.
Toggle sync checkboxes per module and click Sync Now, or let the 30-minute scheduled cron keep your data fresh automatically 24/7.
Feature Deep Dive
Explore every capability of the Advance Odoo HubSpot Integration in detail
Prerequisites
Install the Module
- Go to Odoo → Apps and search for Advance Odoo HubSpot Integration
- Click Install - no pip packages or external libraries needed
- After installation, a new menu HubSpot Integration appears in the main Odoo menu bar
- The menu contains: Instance, Integration Logger, and HubSpot Explorer
Configure the OHI Instance
- Go to HubSpot Integration → Instance
- Click New and give the instance a name (e.g. Production HubSpot)
- Enter your HubSpot Access Token (from your HubSpot Private App)
- Set your HubSpot Domain
- Set Default Odoo User and Default HubSpot User
- Set Pagination Size (1–100) and click Test Connection
- Note only one instance can be Active (Connected) at a time
Enable Per-Module Sync Settings
- Open the OHI Instance and navigate to each module tab (Contacts, Companies, Deals, etc.)
- Toggle Sync OTH to enable Odoo → HubSpot for that module
- Toggle Sync HTO to enable HubSpot → Odoo for that module
- Toggle Related Data Sync for Notes, Tasks, Emails, Meetings
- Toggle Delete OTH / HTO to enable delete propagation per module
- Check the Last Sync Date fields to confirm last successful sync
- Click Save - settings take effect on the next manual or scheduled sync
Configure Field Mappings
- Click Import Fields on the module tab to fetch HubSpot property schema
- In the Field Mapping widget, drag Odoo fields and link them to HubSpot properties
- Set the Sync Direction per field: OTH, HTO, or Both
- Use the Dropdown Value Aligner for selection/picklist fields
- Map Odoo stage names, priorities, and statuses to HubSpot enum values
- Set Concept Type to DIMENSION or METRIC for each field
- Only mapped fields are included in sync operations
ohi.contacts.lines → Contacts
(res.partner)
ohi.companies.lines → Companies
(res.partner)
ohi.opportunities.lines → Deals
(crm.lead)
ohi.quotes.lines → Quotes (sale.order)
ohi.products.lines → Products
(product.template)
ohi.users.lines → Users (res.users)
Trigger a Manual Sync
- Open the OHI Instance record in Odoo
- For each module tab, click Sync Now OTH to push Odoo → HubSpot
- Click Sync Now HTO to pull HubSpot → Odoo
- Use the HTO Wizard to import specific records by HubSpot ID
- Click Open Scheduler to configure or run the automated cron job
- Monitor all synced records in the Integration Logger
- Resolve pending log entries after reviewing error details and payloads
Validate & Monitor Your Sync
Click "Test Connection" on the OHI Instance
A success/error notification confirms the API status
Integration
Logger for full request/response details on every sync
Users
OTH → Users HTO → Contacts OTH → Contacts HTO → Companies → Deals → Products
→ Quotes → Completed
Last HubSpot ID acts as a pagination cursor for HTO syncs.
Configuration Screenshots
HubSpot Access Token & Security
The integration authenticates with HubSpot via a Private App Access Token stored securely on the OHI Instance. Your token is used as a Bearer token on every HubSpot API v3 request. Only one instance can be active at a time, enforced by a SQL constraint and Python validation.
- CRM Objects API v3 (Contacts, Companies, Deals, Products, Quotes)
- Settings API v3 (Users, Owners)
- Properties API v3 (field schema import)
- Incoming webhooks validated via Secret Key in URL param
- Mismatched keys are logged and rejected instantly
- Per-module delete enable flags control which events are processed
- All operations logged with full payload visibility
Only one OHI Instance can be Active
(Connected) at
a time. This is enforced by a SQL UNIQUE constraint on the
database and a Python
validation method - preventing conflicting sync jobs or accidental
dual-writes.
How OTH Sync Works (Odoo → HubSpot)
- Fetch Odoo records newer than the last sync date from
ohi.records - Compute SHA hash of all mapped field values for each record
- Compare hash against stored
odoo_hash- skip unchanged records - Search HubSpot for existing record by
odoo_idproperty - Create (POST) or Update (PATCH) via HubSpot batch API
- Write-back HubSpot ID and new hash to the Odoo record
- Log result with full request/response payload to ohi.logger
POST /hubspot/webhook?auth=<secret_key>
Content-Type: application/json
[ { "subscriptionType": "contact.deletion", "objectId": 12345 } ]
Field Mapping Configuration
Each module has its own mapper model that stores field-to-field relationships between Odoo and HubSpot. The OWL drag-and-drop widget makes configuration intuitive - no developer needed.
- Odoo Field - technical field name on the Odoo model
- Odoo Field Type - auto-fetched (char, many2one, etc.)
- HubSpot Property - corresponding HubSpot field name
- HubSpot Field Type - HubSpot data type (string, number)
- Sync Direction - OTH, HTO, or Both
A JSON field stores the value translation matrix for selection/enum fields. The OWL widget renders it as an interactive key-value grid for visual alignment.
{
"draft": "DRAFT", "sale": "CLOSED_WON",
"cancel": "CLOSED_LOST"
}
Supported Sync Modules
All 6 modules have independent mapper models. Each module's field mappings, sync direction, and dropdown alignments are fully configured separately.
Contacts
Companies
Deals
Quotes
Products
Users
Model Configuration Screenshots
Integration Logger
Every sync operation - whether triggered manually, by cron, or by webhook - is captured in the ohi.logger model. The logger provides a full audit trail with enough detail to diagnose and resolve any data sync issue.
- Integration Direction - Odoo To HubSpot / HubSpot To Odoo
- Module Name - Contacts, Companies, Deals, etc.
- Operation - Create / Update / Delete / Import Fields
- Record ID - Odoo record ID processed
- Status Code - HTTP response code from HubSpot
- Request & Response Payload - full JSON data
- Resolution Status - Pending / Resolved
- Performed By - Manually / Scheduler / Webhooks
Integration Logger Fields
Every sync operation is automatically logged. Browse the full history from HubSpot Integration → Integration Logger.
| Fields Captured per Sync | |
|---|---|
| Direction | Odoo To HubSpot / HubSpot To Odoo |
| Module | Contacts, Deals, etc. |
| Operation | Create / Update / Delete |
| Record ID | Odoo record processed |
| HTTP Status | 200 / 400 / 404 / 500 |
| Request Payload | Data sent to HubSpot |
| Response Payload | HubSpot API response |
| Performed By | Manual / Scheduler / Webhook |
| Resolution Status | Pending / Resolved |
- Remove Log Scheduler — configurable 1–12 month retention
- Scheduled Sync Cron — runs every 30 min automatically
Log Type Reference
Each log entry is classified by type to make filtering and diagnosis instant. Resolve pending entries after fixing any errors.
| Log Type | Meaning | Resolution |
|---|---|---|
| Success | Sync completed successfully | Auto-Resolved |
| Error | API call failed with error | Pending → Manual |
| Warning | Partial or non-critical issue | Review & Resolve |
| Info | Informational operation log | Auto-Resolved |
Log Configuration Screenshots
HubSpot API Endpoints Used
| HubSpot API | Purpose |
|---|---|
POST /crm/v3/objects/<type>/batch/create |
Bulk create new records |
POST /crm/v3/objects/<type>/batch/update |
Bulk update existing records |
POST /crm/v3/objects/<type>/search |
Search by odoo_id property |
DELETE /crm/v3/objects/<type>/<id> |
Delete record from HubSpot |
GET /crm/v3/properties/<type> |
Import field schema |
POST /crm/v3/properties/<type> |
Create custom properties |
GET /settings/v3/users |
Fetch HubSpot users/owners |
POST /hubspot/webhook |
Receive deletion events |
Sync Engine Architecture & Data Flow
ohi.records— orchestration layerohi.methods— per-module processingohi.utils— HubSpot API calls & write-backs
Fetch HubSpot records paginated
→ Apply mapped fields to Odoo
→ Create or update Odoo record
→ Store hubspot_id on Odoo
→ Log success or error
- Users OTH → Users HTO
- Contacts OTH → Contacts HTO
- Companies → Deals → Products
- Quotes → Completed
Release Notes & Version History
Version 19.0.13.0.0
Latest- HubSpot Playground: Added Response Payload visualization tab to the Explorer Playground.
- UI/UX: Polished interactive Explorer badge alignments and Dropdown Mapper header elements.
- API Fetch Explorer: Extended robust support and queries for HubSpot CMS Domains and Currencies endpoints.
- Documentation formatting and layout adjustments for standard wider screens.
- Sync Architecture: Implemented bi-directional synchronization parameters for record Associations via v4 API.
- Mapper Widget: Added fully dynamic multi-directional attribute mapping rules interface via OWL framework.
- Diagnostic Layer: Enhanced and activated robust logging with direct raw JSON request and response inspection capabilities.
- Configuration UI: Visual Drag & Drop configuration mapping interface component successfully introduced.
- Properties Schema: Upgraded custom properties runtime import schema extraction capability.
- Performance Scale: Implemented multi-threaded batch sync operations for significantly faster CRM queue ingestion.
- Event Bus: Integrated complete webhook listening for real-time CRM hard-deletion synchronizations.
- Quotes Module: Expanding primary connector engine to fully synchronize Quotes and HubSpot Support objects.
- Sales Cycle:Minor bug fixed.
- Companies: Minor bug fixed.
- Security Framework: Advanced Record Rules and security Access Control List (ACL) enhancements deployed for distinct module user profiles.
- Base Integration System: Official launch with bi-directional Contacts & Internal Users integrations topology setup.
- Core Engine: High-performance, zero-middleware hub architecture established.
Frequently Asked Questions
odoo_id as the unique identifier in HubSpot.
Before creating any record, it searches for an existing one by odoo_id
and updates it.
For Contacts, email address is also used as a deduplication key.
helpdesk, mail, crm,
sale_management, account, base_automation,
and bus.
json, hashlib, requests).
No Zapier, Make.com, or any third-party middleware required - direct HubSpot API v3
connection only.
Book a Demo or Watch Advance Odoo HubSpot Integration in Action
Schedule a walkthrough with our team or explore the HubSpot integration demo video.
Scan and Connect with echoBitz
Book a meeting, start a WhatsApp conversation, or reach us by email from one simple visual card. It is the fastest way to move from curiosity to a live HubSpot Integration discussion.
Our Services
Odoo Integration
Seamlessly integrate Odoo with third-party apps, platforms, and tools for better workflow.
Odoo Implementation
We plan, configure, and deploy Odoo tailored to your business processes.
Customization
Get modules and workflows customized to meet your exact needs in Odoo.
Community Apps
Access or develop robust community apps to enhance your Odoo functionality.
Development Outsourcing
Hire dedicated Odoo developers to build solutions efficiently and cost-effectively.
Support & Maintenance
Enjoy peace of mind with our reliable support, updates, and bug fixing services.
Discover More Solutions by echoBitz IT
Explore our other Odoo integration apps
Ready to connect your Odoo and HubSpot with Advance Odoo HubSpot Integration?
Install the Advance Odoo HubSpot Integration, enter your HubSpot Private App token, and start syncing Contacts, Companies, Deals, Quotes, Products, and Users bi-directionally in minutes - no middleware, no manual entry, no code required.
A Powerful Integration App for Odoo and HubSpot
Odoo Hubspot Integration is an innovative integration app that bridges the gap between two industry-leading platforms, Odoo and HubSpot. With its advanced features and intuitive design, it empowers businesses to automate lead synchronization, establish a two-way data flow, facilitate real-time updates, streamline workflows, and eliminate the need for manual synchronization. By Odoo Hubspot Integration integrating these two powerful systems, Odoo Hubspot Integration offers unparalleled efficiency and productivity, allowing businesses to focus on what matters most—growing their customer base and driving revenue.
Installation
- Prerequisites
- Python 3.7 or later
- Odoo 15.0 or later
- Sales Module, CRM Module, Invoicing Module
- we need to create 8 additional fields into hubspot.
- Contacts :
- odoo_id(Single-line text) (This field will contain odoo record id. it Must be Unique)
- sync_odoo(Single checkbox) (This is the checkbox field and based on the selection integration will sync the record from hubspot to odoo)
- Companies :
- odoo_id(Single-line text) (This field will contain odoo record id. it Must be Unique)
- sync_odoo(Single checkbox) (This is the checkbox field and based on the selection integration will sync the record from hubspot to odoo)
- Deals :
- odoo_id(Single-line text) (This field will contain odoo record id. it Must be Unique)
- sync_odoo(Single checkbox) (This is the checkbox field and based on the selection integration will sync the record from hubspot to odoo)
- Products :
- odoo_id(Single-line text) (This field will contain odoo record id. it Must be Unique)
- sync_odoo(Single checkbox) (This is the checkbox field and based on the selection integration will sync the record from hubspot to odoo)
- Installation Steps
- Please find reference documents in the module.
- following two documents are there:
- Installation Guide(Installation_Guide.pdf)
- User Guide(User_guide.pdf)
Credits
Contributors
- echoBitz IT Solutions Pvt Ltd <info@echobitzit.com>
Author & Maintainer
This module is maintained by the echoBitz IT Solutions Pvt Ltd
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module
Module works as described - Fast and helpful service included
Re: Module works as described - Fast and helpful service included
Thank you for your kind words and valuable feedback! It's always a pleasure working with you. Please don't hesitate to reach out if there's anything more we can assist you with!
There are no comments yet!