CRM migration
Field-level mapping, validation, and rollback between Acquaint CRM and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Acquaint CRM
Source
Odoo CRM
Destination
Compatibility
12 of 12
objects map 1:1 between Acquaint CRM and Odoo CRM.
Complexity
BStandard
Timeline
3–5 days
Overview
Teams move from Acquaint CRM to Odoo when they need an open-source ERP with flexible per-user pricing, native accounting and inventory, and a modular app architecture that scales from single-user to enterprise. Acquaint targets UK property businesses with a stacked sales-lettings-property management model; Odoo uses a generic crm.lead model that handles both leads and opportunities through stage management, with property-specific data stored as custom fields on res.partner or product.product. The migration carries contacts, companies, property listings, and deals from Acquaint into Odoo's res.partner and crm.lead records, mapping listing status and property type into Odoo custom fields, preserving original create dates and owner emails for Odoo user resolution. Property attachments and images migrate to Odoo's ir.attachment model, preserving parent record links. The harder problems are Acquaint's property-specific fields (listing status, property type, tenure, bedroom count) that have no native Odoo equivalent — those require custom field creation before data lands. Acquaint deal stages (Open, Under Offer, Sold STC, Sold) map into Odoo's crm.stage configuration with probability and forecast category values set per stage. Activity notes and tasks migrate as Odoo CRM notes (mail.message) with original timestamps intact.
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 Acquaint CRM 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.
Acquaint CRM
Acquaint Contact
Odoo CRM
res.partner
1:1Acquaint contacts map to Odoo res.partner records. We set partner_type='contact' for individuals. Primary company link resolves via the Acquaint company association — Odoo parent_id is set to the matched res.partner company record. Contacts without a primary company land as standalone res.partner records. Email, phone, and address fields map directly; custom contact fields migrate to res.partner custom fields.
Acquaint CRM
Acquaint Company
Odoo CRM
res.partner
1:1Acquaint companies map to Odoo res.partner records with partner_type='company'. Multi-branch companies: if Acquaint stores branch-level data, each branch becomes a separate res.partner company record linked via parent_id to the parent company. Company website, industry, and employee count map to custom fields or direct equivalents where Odoo provides them.
Acquaint CRM
Acquaint Property
Odoo CRM
product.product (or crm.lead for development sites)
1:1Acquaint property listings are a property-vertical concept with no direct Odoo equivalent. For sales/letting listings, we migrate to product.product with type='product' and custom fields for listing_status, property_type, tenure, bedrooms, and asking_price. For development sites or land parcels tracked as pipeline items, Acquaint Property migrates to crm.lead as a lead with property details in custom fields and property_address in the standard contact address fields.
Acquaint CRM
Acquaint Deal
Odoo CRM
crm.lead
1:1Acquaint deals map to Odoo crm.lead records. Open and Under Offer deals become active crm.lead entries; Sold and Sold STC deals become crm.lead records with stage set to the Odoo Won stage. Acquaint deal amount maps to Odoo's expected_revenue field. Each Acquaint deal stage requires a corresponding Odoo crm.stage record created before migration runs — stage probability and forecast_category are set per stage in the Odoo stage configuration.
Acquaint CRM
Acquaint Pipeline Stage
Odoo CRM
crm.stage
1:1Acquaint stage names (Open, Under Offer, Sold STC, Sold, Withdrawn) require pre-creation of matching Odoo crm.stage records within the target Odoo sales team. Each crm.stage carries name, sequence, probability, and on_change flags. The Acquaint stage-to-Odoo-stage mapping is a value-mapping step executed during migration — the migration plan specifies which Acquaint stage maps to which Odoo stage ID before data loads.
Acquaint CRM
Acquaint Property Custom Fields
Odoo CRM
x_<fieldname> on product.product or crm.lead
1:1Acquaint property objects carry listing_status, property_type, tenure, number_of_bedrooms, number_of_bathrooms, asking_price, and vendor_source as native fields. These have no Odoo native equivalent and must be created as custom fields on product.product (for listings) or crm.lead (for development deals). Custom field creation on the Odoo side is a prerequisite step — we deliver a field creation spec before migration runs.
Acquaint CRM
Acquaint Notes / Tasks
Odoo CRM
mail.message (CRM Notes)
1:1Acquaint notes and tasks associated with contacts, companies, or deals migrate as Odoo mail.message records with message_type='comment', preserving the original note body, author (by email match to Odoo res.users), and create_date timestamp. Tasks with a due date migrate as Odoo mail.activity records linked to the target res.partner or crm.lead. The migration plan distinguishes notes from tasks and maps them to the appropriate Odoo model.
Acquaint CRM
Acquaint Owner / User
Odoo CRM
res.users
1:1Acquaint owner records (sales staff or branch managers assigned to contacts, companies, or deals) are resolved by email match against Odoo res.users. Unmatched owners are flagged in the migration plan — your team either creates Odoo user accounts for them first or assigns their records to a fallback user (admin or a dedicated migration user). Owner resolution is required before crm.lead records load because Odoo's crm.lead requires a user_id field to be set.
Acquaint CRM
Acquaint Attachments / Files
Odoo CRM
ir.attachment
1:1Files attached to Acquaint contacts, companies, and properties (photographs, floor plans, EPCs, documents) migrate to Odoo ir.attachment records. The file binary is downloaded from Acquaint's API and re-uploaded to Odoo via XML-RPC. We preserve the original filename, mimetype, and parent record links (res_model + res_id pointing to the migrated res.partner or crm.lead). Large files are chunked to stay within Odoo's attachment size limits.
Acquaint CRM
Acquaint Branch / Office
Odoo CRM
crm.team
1:1Acquaint uses branches (offices) as a top-level grouping entity for contacts, properties, and deals. Odoo separates crm.team (sales team/group) from individual user ownership. We map each Acquaint branch to a crm.team record — branch name, location, and primary contact email transfer. Deals and contacts can then be assigned to the crm.team and an individual res.users owner. If Acquaint stores branch-level data (branch-wide targets, branch manager), we surface it for Odoo team configuration.
Acquaint CRM
Acquaint Property Alert / Saved Search
Odoo CRM
res.partner + x_property_alert__c flag
1:1Acquaint property alerts or saved search records are a property-specific concept without a CRM equivalent in Odoo. We migrate them as res.partner records with a custom boolean flag x_property_alert__c set to True, plus the saved search criteria stored in a custom text field x_saved_search_criteria__c. These records are flagged for manual review in Odoo since the alert matching logic cannot be auto-migrated.
Acquaint CRM
Acquaint Multi-Company Contact
Odoo CRM
res.partner + child_ids relation
1:1Acquaint supports N:N contact-to-company associations where one contact belongs to multiple firms. Odoo res.partner uses a single parent_id for the primary company and child_ids for additional contacts. We migrate the most-recently-modified Acquaint company association as the primary company (parent_id), and store remaining company associations as a custom multi-select field x_additional_companies__c for manual reconciliation in Odoo.
| Acquaint CRM | Odoo CRM | Compatibility | |
|---|---|---|---|
| Acquaint Contact | res.partner1:1 | Fully supported | |
| Acquaint Company | res.partner1:1 | Fully supported | |
| Acquaint Property | product.product (or crm.lead for development sites)1:1 | Fully supported | |
| Acquaint Deal | crm.lead1:1 | Fully supported | |
| Acquaint Pipeline Stage | crm.stage1:1 | Fully supported | |
| Acquaint Property Custom Fields | x_<fieldname> on product.product or crm.lead1:1 | Fully supported | |
| Acquaint Notes / Tasks | mail.message (CRM Notes)1:1 | Fully supported | |
| Acquaint Owner / User | res.users1:1 | Fully supported | |
| Acquaint Attachments / Files | ir.attachment1:1 | Fully supported | |
| Acquaint Branch / Office | crm.team1:1 | Fully supported | |
| Acquaint Property Alert / Saved Search | res.partner + x_property_alert__c flag1:1 | Fully supported | |
| Acquaint Multi-Company Contact | res.partner + child_ids relation1: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.
Acquaint CRM gotchas
Property data is split across three distinct modules
eSign and SMS data is exportable only as history, not as active configurations
Accounts and client money are tracked within the CRM rather than in a separate accounting package
Custom fields are per-agency and require manual inventory before migration
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
Validate and clean Acquaint source data
FlitStack audits your Acquaint data before migration begins: duplicate contact records, inactive companies still linked to open deals, property records with missing addresses, and orphaned attachments are flagged. We deliver a data-cleaning checklist with record counts and specific record IDs so your team can resolve duplicates and gaps before migration. Property-vertical data (listing status, property type) is validated against Acquaint's field constraints — malformed or inconsistent values are documented for value-mapping decisions.
Map Acquaint schema to Odoo data model and create custom fields
We produce a schema-alignment document mapping every Acquaint object and field to its Odoo equivalent — identifying direct mappings, value mappings (Acquaint stage names to Odoo crm.stage IDs), custom field requirements (property type, tenure, listing status), and no-equivalent fields that become reference custom fields. Custom field creation specs are delivered for Odoo res.partner, product.product, and crm.lead so your admin creates them before migration data arrives. Stage-mapping configuration for crm.stage is delivered as a separate setup guide specifying sequence, probability, and Won/Lost flags per stage.
Resolve Acquaint owners and branches to Odoo users and teams
Acquaint owner email addresses are matched against Odoo res.users records. Branch names map to crm.team records. Unmatched owners and branches are listed in the migration plan with instructions: create an Odoo user account for each unmatched owner, or assign their records to a fallback user (admin or a dedicated migration user). This step is a prerequisite for loading crm.lead records because Odoo's crm.lead requires a user_id field. We verify all match rates before the migration run commits.
Run test migration with field-level diff
A representative slice of 100–500 Acquaint records migrates first — spanning contacts, companies, property listings, and deals across all stages. We generate a field-level diff showing every Acquaint field value against its mapped Odoo field value so you can verify stage mapping, custom field population, owner resolution, and file attachment links before the full run. Test migration results are reviewed with your team; mapping adjustments are made before the production run commits. At this stage we also validate Odoo ir.attachment creation for property photo sets.
Execute full migration with delta-pickup window
Full migration runs in strict hierarchical order: res.partner company records first (to establish parent_ids), then res.partner contact records (to resolve partner_id lookups), then crm.lead deals (to attach to resolved contacts and configured stages), then ir.attachment files (linked to migrated parent records), and finally mail.message notes and activities. A 48-hour delta-pickup window captures any Acquaint records created or modified during the cutover period. All operations are logged in an audit trail; one-click rollback is available if post-migration reconciliation finds critical gaps.
Post-migration reconciliation and Odoo Enterprise decision
FlitStack validates migrated record counts against Acquaint source totals for each object type. Custom field values are spot-checked against source records — particularly listing_status, property_type, and deal stage. Owner resolution rates are reported; any records assigned to the fallback user are surfaced for manual reassignment. We also deliver the Acquaint workflow export as a reference document for rebuilding automations in Odoo's Studio or ir.actions.server. Finally, we confirm the Odoo edition decision (Community vs Enterprise) based on which Acquaint features remain unmapped and which Odoo modules are required to cover them.
Platform deep dives
Acquaint CRM
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Acquaint CRM and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Acquaint CRM and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between Acquaint CRM 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
Acquaint CRM: Rate limit details are not publicly documented on the pricing or help pages.
Data volume sensitivity
Acquaint CRM 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 Acquaint CRM to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Acquaint CRM 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 Acquaint CRM
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.