CRM migration
Field-level mapping, validation, and rollback between openCRX and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.
openCRX
Source
HubSpot
Destination
Compatibility
10 of 11
objects map 1:1 between openCRX and HubSpot.
Complexity
BStandard
Timeline
3–5 days
Overview
openCRX stores data in a Java/openMDX object model with entities like Account, Contact, Lead, Opportunity, Quote, Sales Order, Invoice, and Activity Tracker. HubSpot uses contacts, companies, deals, tickets, and custom objects with a different association model — openCRX supports N:N relationships between contacts and accounts natively, while HubSpot uses primary company associations with optional secondary relationships. The migration extracts openCRX data via its REST API (with XML/JSON serialization), then transforms each entity into HubSpot's contact, company, and deal objects with type-aware field mapping. Lifecycle stages in openCRX (Lead, Qualified, Opportunity) become HubSpot's lifecycle_stage pick-list values. Custom user-defined attributes in openCRX (userXXX fields via DataBindings) migrate to HubSpot custom properties. We do not migrate openCRX workflow processes, Segments, Topics, or groupware calendars — those must be rebuilt in HubSpot workflows or imported separately. A delta-pickup window captures any records modified during cutover, and a sample migration with field-level diff precedes the full run.
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 openCRX object lands in HubSpot, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
openCRX
LegalEntity (Account)
HubSpot
Company
1:1openCRX LegalEntity maps to HubSpot Company. LegalEntity.fullLegalName becomes Company name; primary postal address maps to company address fields. openCRX accounts without a legal name default to a placeholder for review before migration. If an account has multiple locations, the primary address populates the Company address fields, while secondary locations are stored as custom address entries or linked as association records. This ensures no address data is lost during import.
openCRX
Contact
HubSpot
Contact
1:1openCRX Contact maps 1:1 to HubSpot Contact. First name, last name, email, phone, job title, and postal addresses transfer directly. Contacts without email are flagged for manual review — HubSpot requires unique email per contact. Duplicate detection runs post-import to merge any records that share the same email address, ensuring data hygiene in the target system.
openCRX
Contact-to-LegalEntity (N:N)
HubSpot
Contact-Company Association
1:1openCRX supports N:N contact-to-company relationships. HubSpot allows one primary company_id per contact. We migrate the most recently-modified openCRX association as primary; secondary companies surface as Company associations via HubSpot's association API. If multiple associations share the same timestamp, a deterministic tiebreaker (e.g., alphabetical order) selects the primary, ensuring consistent mapping.
openCRX
Lead
HubSpot
Contact (lifecycle_stage)
1:1openCRX Lead objects map to HubSpot Contacts with lifecycle_stage set to 'lead'. openCRX Lead.rating (Cold/Warm/Hot) maps to a HubSpot custom property since HubSpot has no direct rating field — use lead score or custom property for rating. During import, lifecycle_stage defaults to 'lead' for all openCRX Leads; the rating property is populated using the original rating value, and any missing rating defaults to 'unknown' for further qualification.
openCRX
Opportunity
HubSpot
Deal
1:1openCRX Opportunity maps to HubSpot Deal. Opportunity.name becomes Deal name; amount, close date, probability, and stage transfer. openCRX's Opportunity stage values map to HubSpot pipeline stage names per the configured deal pipeline. Owner resolution matches openCRX owner email to HubSpot user; unresolved owners flag records for manual assignment before go-live.
openCRX
Quote / Sales Order / Invoice
HubSpot
Deal + Custom Objects
many:1openCRX's Quote, SalesOrder, and Invoice all inherit from abstract Contract. HubSpot has no native quote/order/invoice objects at the CRM tier. We merge the most recent Quote/SalesOrder values into the Deal as custom properties; line items require a custom object setup plan for rebuilding.
openCRX
Activity Tracker / Activity
HubSpot
Engagement Timeline
1:1openCRX Activity Tracker groups become HubSpot engagements. openCRX activities with type 'call' become HubSpot calls; 'email' becomes emails; 'meeting' becomes meetings. Time entries attach as note content. openCRX activity hierarchies flatten to a single engagement per activity, preserving the original timestamp and owner attribution. Missing activity types are imported as notes for later review.
openCRX
Product
HubSpot
Product
1:1openCRX Product and ProductBundle map to HubSpot Products. openCRX price list entries map to HubSpot product pricing with currency preserved in a custom property since HubSpot multi-currency is limited at the product level. Bundle components are imported as separate product variants, and any pricing rules are documented for rebuilding in HubSpot's product configuration.
openCRX
Segment / Topic (Workflow)
HubSpot
HubSpot Workflows
1:1openCRX Segments, Topics, and Workflow Processes do not migrate. These define event-driven alerts and subscription logic specific to openCRX's servlet-based Workflow Handler. We export the workflow definition as a reference document for rebuilding in HubSpot workflows. Your team will need to translate the event triggers, conditions, and actions into HubSpot's enrollment criteria and workflow steps manually.
openCRX
Custom PropertySet Fields
HubSpot
Custom Properties
1:1openCRX DataBindings PropertySet fields (Custom!fieldName) map to HubSpot custom properties per entity. Each custom field requires HubSpot property creation before migration. Field type mapping: string→single-line text, number→number, date→date, picklist→single-option. We provide a property checklist with exact names, types, and pick-list options to streamline HubSpot setup.
openCRX
Attachment / Document
HubSpot
File (via HubSpot file upload)
1:1openCRX document attachments migrate to HubSpot Files. Files are re-uploaded to HubSpot's file storage and linked to the parent record (contact, company, or deal). openCRX WebDAV file references require re-hosting since HubSpot uses its own file CDN. After upload, each file's HubSpot ID is recorded for audit and association mapping.
| openCRX | HubSpot | Compatibility | |
|---|---|---|---|
| LegalEntity (Account) | Company1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Contact-to-LegalEntity (N:N) | Contact-Company Association1:1 | Fully supported | |
| Lead | Contact (lifecycle_stage)1:1 | Fully supported | |
| Opportunity | Deal1:1 | Fully supported | |
| Quote / Sales Order / Invoice | Deal + Custom Objectsmany:1 | Fully supported | |
| Activity Tracker / Activity | Engagement Timeline1:1 | Fully supported | |
| Product | Product1:1 | Fully supported | |
| Segment / Topic (Workflow) | HubSpot Workflows1:1 | Fully supported | |
| Custom PropertySet Fields | Custom Properties1:1 | Fully supported | |
| Attachment / Document | File (via HubSpot file upload)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.
openCRX gotchas
No public REST API with documented rate limits
WebDAV client quirks block document access on Windows
"Too many open files" on Linux blocks installation and export
Workflow Processes are segment-scoped and non-portable
HubSpot gotchas
Marketing Contacts billing model is migration-critical
Feature tier gating is not visible until onboarding
Mandatory onboarding fees inflate year-one cost
HubSpot CSV importer cannot migrate engagements or attachments
Custom objects require Enterprise and a pre-existing schema
Pair-specific challenges
Migration approach
Inventory openCRX entities and custom DataBindings fields
FlitStack AI connects to your openCRX instance via its REST API and enumerates all LegalEntity, Contact, Lead, Opportunity, Quote, SalesOrder, Invoice, Activity, and Product records. We identify all DataBindings PropertySet custom fields (Custom!*), document their types, and count record volumes per entity. This inventory drives the schema setup checklist for HubSpot and the field mapping spreadsheet that you review before migration runs.
Create HubSpot custom properties and pipeline stages
Based on the openCRX field inventory, FlitStack AI delivers a HubSpot setup checklist: custom properties to create (with types), pipeline stages to configure per deal pipeline, and lifecycle stage values to set. Your HubSpot admin creates these in Settings before data lands. For openCRX DataBindings fields, we provide the exact property name, type, and pick-list options to avoid mapping failures during the import phase.
Resolve owners by email and map contract hierarchy to deals
openCRX owner records are resolved against HubSpot users by email match. Unmatched owners are flagged in a pre-flight report — your team either creates HubSpot user accounts or assigns those records to a fallback owner before migration. openCRX Quote and SalesOrder amounts merge into the corresponding HubSpot Deal as custom properties (quote_amount__c, order_amount__c); line items are noted for manual rebuild in HubSpot Products if needed.
Run sample migration with field-level diff
A representative slice of 100–500 records migrates first, spanning contacts, companies, opportunities, and activities. We generate a field-level diff report comparing source values to HubSpot values for every mapped field. You verify lifecycle stage routing, pipeline stage mapping, owner resolution, and N:N association handling before the full run commits. Adjustments to field mapping or pipeline configuration happen at this stage.
Execute full migration with delta-pickup and rollback
The full dataset migrates into HubSpot. A delta-pickup window (typically 24–48 hours) captures any openCRX records modified during cutover so HubSpot reflects the final state at go-live. FlitStack AI writes a full audit log of every record created, updated, or skipped. One-click rollback reverts the HubSpot instance to its pre-migration state if reconciliation reveals critical issues. Your team tests in HubSpot before decommissioning openCRX.
Platform deep dives
openCRX
Source
Strengths
Weaknesses
HubSpot
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across openCRX and HubSpot.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
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
openCRX: Not publicly documented.
Data volume sensitivity
openCRX 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 openCRX to HubSpot migration scoping. Not seeing yours? Book a call.
Walk through your openCRX to HubSpot migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave openCRX
Other ways to arrive at HubSpot
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.