CRM migration
Field-level mapping, validation, and rollback between HighQ and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
HighQ
Source
Odoo CRM
Destination
Compatibility
12 of 12
objects map 1:1 between HighQ and Odoo CRM.
Complexity
BStandard
Timeline
24–72 hours
Overview
HighQ is a Thomson Reuters collaboration and workflow platform used by legal, financial, and professional services firms. Its core data model revolves around Sites (workspaces), Files (documents with version history), Tasks, Users, and iSheets (structured spreadsheet-like tables). HighQ has no native CRM object model — contact and company data lives in Files, Tasks, and iSheets rather than in a dedicated contacts module. Odoo CRM uses a unified crm.lead model for both Leads and Opportunities, res.partner for Contacts and Companies, ir.attachment for Files, and crm.activity for Tasks. Odoo stores most data in PostgreSQL under res.partner records, with pipeline stages managed via crm.stage on the crm.lead object. Custom fields are created via Odoo Studio or directly in the model definition. FlitStack AI maps HighQ File metadata to ir.attachment records linked to res.partner by email-matched contact records. HighQ iSheet exports are converted to CSV and loaded into Odoo custom fields on res.partner or crm.lead. HighQ task metadata migrates as crm.activity records. HighQ user accounts are matched to res.users by email for owner assignment. HighQ workflows, automations, rule chains, and permission configurations do not migrate — they must be rebuilt in Odoo's automation rules or access control settings. The migration is executed via Odoo's XML-RPC API with batch sequencing to respect API rate limits.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a HighQ object lands in Odoo CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
HighQ
HighQ File
Odoo CRM
ir.attachment
1:1HighQ File records map to Odoo ir.attachment. The file name becomes the attachment name field, file content migrates as a binary attachment, and the original HighQ storage path is preserved as a custom Char field on the attachment record. The migration also captures file size, mime type, and creation timestamps to maintain full metadata fidelity in Odoo.
HighQ
HighQ Contact (from File metadata or Task assignee)
Odoo CRM
res.partner
1:1HighQ contact information found in File metadata, Task assignee fields, or iSheet contact columns maps to res.partner. Email is the primary key used to match to existing Odoo partner records or create new ones during migration. When a matching email is found, the existing res.partner record is updated with additional HighQ-sourced data; if no match exists, a new partner record is created and linked appropriately.
HighQ
HighQ Company (from File metadata or iSheet company column)
Odoo CRM
res.partner
1:1HighQ company text fields are mapped to res.partner records with type='company'. When no matching company partner exists, one is created dynamically during migration. The original company name is stored in the partner name field. Additional company details such as address, phone, and website are mapped to the corresponding res.partner fields where available, ensuring the company record is fully populated in Odoo.
HighQ
HighQ Task
Odoo CRM
crm.activity
1:1HighQ task records migrate to crm.activity entries on the related res.partner record. Task name becomes activity summary, due date maps to date_deadline, and priority maps to activity_type. Completion status and original assignee are preserved as custom fields. The migration also records the original task creation date and any task descriptions as notes on the crm.activity record for complete historical context.
HighQ
HighQ User
Odoo CRM
res.users
1:1HighQ user accounts are matched to Odoo res.users by email address. Unmatched users are flagged before migration so the team can create their Odoo accounts first. The original HighQ user ID is stored as a custom field for audit traceability.
HighQ
HighQ iSheet (structured data table)
Odoo CRM
res.partner or crm.lead custom fields
1:1HighQ iSheet columns are exported as CSV and mapped to custom fields on res.partner or crm.lead depending on the iSheet type. Each iSheet may require a separate custom field group and is validated for data type compatibility before import. The migration process also checks for pick-list values in the iSheet and creates corresponding selection fields in Odoo with mapped option labels, ensuring dropdown data translates correctly.
HighQ
HighQ Site (workspace container)
Odoo CRM
res.users or crm.team
1:1HighQ Sites are workspaces that group Files, Tasks, and Users. Since Odoo has no direct Site equivalent, Site membership is preserved as a custom Char or Many2many field on res.users, and Site name is stored as a custom field for reference.
HighQ
HighQ File folder path
Odoo CRM
ir.attachment (custom path field)
1:1HighQ folder hierarchy is stored as a custom Char field (File_Path__c) on each ir.attachment record. The flat attachment list in Odoo does not replicate the original folder structure — the path field preserves the original location context. This allows users in Odoo to search and filter attachments by the original HighQ folder path, maintaining navigational context even though the native Odoo attachment view does not display a folder tree.
HighQ
HighQ workflow
Odoo CRM
Odoo Automation Rules
1:1HighQ Workflows with rule chains, conditional branching, and task reassignment automations have no direct Odoo equivalent. These must be rebuilt manually using Odoo Studio Automation Rules or server actions. FlitStack exports workflow definitions as a reference document for the Odoo admin.
HighQ
HighQ permission group
Odoo CRM
res.groups
1:1HighQ permission levels (Viewer, Contributor, Admin per Site) are preserved as custom fields on res.users. Odoo's record-level security and access groups differ fundamentally, so the Odoo admin reviews and assigns appropriate res.groups based on the exported permission metadata. The custom fields store the original HighQ permission tier for each user, enabling the admin to map Viewer to internal/public groups, Contributor to user groups, and Admin to manager or administrator groups in Odoo.
HighQ
HighQ sensitive/privacy flag
Odoo CRM
res.partner (custom boolean)
1:1HighQ Files and Contacts may carry an is_sensitive flag indicating restricted access. This maps to a custom Boolean field (Is_Sensitive_Source__c) on ir.attachment or res.partner for compliance reference in Odoo. The flag is set to True when the original HighQ object was marked sensitive, allowing Odoo users to identify restricted records and apply appropriate access controls or data handling procedures within the new system.
HighQ
HighQ source system ID
Odoo CRM
res.partner, ir.attachment, crm.activity (custom Char)
1:1Every migrated HighQ record receives a Source_System_ID__c custom Char field storing the original HighQ object ID. This enables delta-run deduplication, audit traceability, and cross-referencing without relying on the newly assigned Odoo IDs. During subsequent migration runs, the Source_System_ID__c field is used to identify records that already exist in Odoo, preventing duplicate creation and ensuring that updates to HighQ data are correctly applied to the corresponding Odoo records.
| HighQ | Odoo CRM | Compatibility | |
|---|---|---|---|
| HighQ File | ir.attachment1:1 | Fully supported | |
| HighQ Contact (from File metadata or Task assignee) | res.partner1:1 | Fully supported | |
| HighQ Company (from File metadata or iSheet company column) | res.partner1:1 | Fully supported | |
| HighQ Task | crm.activity1:1 | Fully supported | |
| HighQ User | res.users1:1 | Fully supported | |
| HighQ iSheet (structured data table) | res.partner or crm.lead custom fields1:1 | Fully supported | |
| HighQ Site (workspace container) | res.users or crm.team1:1 | Fully supported | |
| HighQ File folder path | ir.attachment (custom path field)1:1 | Fully supported | |
| HighQ workflow | Odoo Automation Rules1:1 | Fully supported | |
| HighQ permission group | res.groups1:1 | Fully supported | |
| HighQ sensitive/privacy flag | res.partner (custom boolean)1:1 | Fully supported | |
| HighQ source system ID | res.partner, ir.attachment, crm.activity (custom Char)1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
HighQ gotchas
Workflow definitions are non-portable between HighQ environments
No off-the-shelf migration path from HighQ to SharePoint Online
iSheet column mapping requires exact sequence ordering in the API
Pricing is fully opaque—contact sales only
Two-factor authentication is mandatory for all HighQ logins
Odoo CRM gotchas
Odoo.sh version gating blocks assisted migrations from trial
Enterprise modules fail to install on Community after database restore
Custom module view inheritance breaks between Odoo major versions
Custom fields risk losing their application context on Community
API access for Community is gated behind the Custom Plan
Pair-specific challenges
Migration approach
Audit HighQ data model and export all source objects via API
FlitStack connects to HighQ using the Thomson Reuters API and inventories all Sites, Files, Tasks, Users, and iSheet definitions. We assess iSheet column types, count unique File metadata fields, identify custom workflow definitions, and map the relationship between iSheet rows and the Contacts, Companies, or Files they reference. The audit produces a migration scope document listing every object, record count, and transformation requirement before any data moves.
Create Odoo custom fields and prepare res.users for owner resolution
We create all required custom fields on res.partner (File_Path__c, Source_System_ID__c, Original_Create_Date__c, Is_Sensitive_Source__c), crm.activity (Done__c, Original_Create_Date__c), ir.attachment (File_Path__c, File_Storage_Location__c, Is_Sensitive_Source__c), and res.users (HighQ_User_ID__c) via Odoo Studio or direct model definition. We also verify the Odoo External API is accessible on the target plan and resolve HighQ user accounts to res.users by email match, flagging any unmatched owners for your team to create before the migration run.
Export iSheet data as structured CSV and map to Odoo field targets
Each HighQ iSheet is exported as a CSV file with column headers matching the iSheet field names. FlitStack analyzes column types (text, number, date, pick-list, user reference) and maps them to either existing Odoo res.partner fields or newly created custom fields. For iSheets containing pick-list values, we build a value-mapping table matching HighQ option labels to Odoo selection key values. User-reference columns are resolved to res.users IDs using the email match from Step 2.
Run a sample migration with field-level diff and validate mapping
A representative sample — typically 200–500 records covering Files, Contacts, Tasks, and one iSheet — migrates first using Odoo's XML-RPC API in batch mode. FlitStack generates a field-level diff comparing the source HighQ values against the target Odoo field values for every mapped column. You review the diff to confirm that file paths, company linkages, task assignees, and iSheet pick-list values map correctly before the full migration commits. Any mapping corrections are applied before the production run.
Execute full migration with delta-pickup window and audit log
The full migration runs in sequenced batches respecting Odoo's API rate limits. A delta-pickup window (24–48 hours) captures any new or modified Files, Tasks, or Contacts created in HighQ during the cutover window so Odoo reflects HighQ's final state at go-live. FlitStack produces an audit log for every record operation (create, update, link) and a reconciliation summary showing record counts by object and any records that failed to migrate. One-click rollback is available if the reconciliation summary reveals data integrity issues.
Platform deep dives
HighQ
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between HighQ and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across HighQ and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between HighQ and Odoo CRM.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
HighQ: Not publicly documented as a single numeric ceiling — limits vary by instance configuration; the developer portal recommends throttling and respecting standard 429 backoff..
Data volume sensitivity
HighQ doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during HighQ to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your HighQ to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave HighQ
Other ways to arrive at Odoo CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.