CRM migration
Field-level mapping, validation, and rollback between Touchpoint MX and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Touchpoint MX
Source
Odoo CRM
Destination
Compatibility
9 of 12
objects map 1:1 between Touchpoint MX and Odoo CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Touchpoint MX to Odoo CRM is a platform migration from a multi-channel customer journey and feedback tool into an all-in-one ERP with a native CRM module. Touchpoint MX stores Contacts with custom fields, Journey Map stage labels, multi-channel preferences (Email, SMS, Voice), Satisfaction Scores, and Feedback Records. Odoo CRM stores these as Contacts, Opportunities with pipeline stages, and Notes. We resolve the Journey Map stage taxonomy (defined by each organization in Touchpoint MX) against Odoo's configurable pipeline stages during scoping, flatten Journey Maps into Contact records with stage history stored as a custom field, map Channel assignments to Odoo's optional.contact_update field and a custom multi-select, and land Feedback Records as timestamped Notes attached to the Contact. We do not migrate Touchpoint MX integrations, OAuth tokens, or webhook endpoints. We do not migrate automations or Message Templates as reusable objects; we deliver a written inventory for the customer's admin to rebuild in Odoo Studio or a custom module.
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 Touchpoint MX 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.
Touchpoint MX
Contact
Odoo CRM
Contact
1:1Touchpoint MX Contacts map directly to Odoo CRM Contacts. Standard fields (name, email, phone) map to Odoo's name, email, and phone fields. Custom field values on the Contact record map to Odoo custom fields created in Settings > Technical > User-defined Fields before migration. Owner assignments in Touchpoint MX map to Odoo User records by email match; any unmatched Owner goes to a reconciliation queue for the customer's admin to provision.
Touchpoint MX
Company
Odoo CRM
Company
1:1Touchpoint MX stores Companies as organizational records. These map to Odoo CRM Companies (the same Contact type with is_company=True). Company name maps to Odoo's name field; any domain or address data maps to street, city, state, country fields. If Touchpoint MX does not have a Companies object and all records are personal Contacts, we create a pseudo-Company for each Contact to satisfy Odoo's Contact-Company hierarchy.
Touchpoint MX
Journey Map
Odoo CRM
Contact + Custom Stage Field
lossyTouchpoint MX Journey Maps define custom stage labels (e.g., Awareness, Consideration, Decision) that vary by organization. We detect the complete Journey Map stage taxonomy during scoping, create a custom Contact field journey_stage__c in Odoo to store the original stage label, and map each stage to an Odoo pipeline stage (or a Contact custom field) depending on the customer's Odoo configuration. The full stage transition history flattens into a text or notes field if Touchpoint MX stores stage change timestamps.
Touchpoint MX
Channel
Odoo CRM
Contact Custom Field (multi-select)
lossyTouchpoint MX records active channels (Email, SMS, Voice) per Contact. Odoo CRM has no native channel preference field. We create a custom multi-select field contact_channels__c in Odoo and map each active channel to one selection. If the customer uses Odoo integration with a third-party telephony or SMS provider (Nauta, Twilio), we document the channel field as the opt-in source for the integration configuration.
Touchpoint MX
Satisfaction Score
Odoo CRM
Contact Custom Rating Field
1:1Touchpoint MX Satisfaction Scores (numerical ratings) map to a custom float or integer field on Odoo Contact, named satisfaction_score__c. We preserve the score value, scale (0-10 or 1-5), and the timestamp when the score was recorded. If Touchpoint MX stores multiple satisfaction records over time, we migrate the most recent score and log historical scores as Notes with a score tag for longitudinal reporting.
Touchpoint MX
Feedback Record
Odoo CRM
Note (Discussion)
1:1Touchpoint MX Feedback Records are structured entries with text, date collected, and related Contact. We map Feedback text to Odoo Note.body (as HTML), set Note.create_date to the original Feedback timestamp, and link the Note to the Contact via res_id and res_model=res.partner. This preserves the full feedback history in the Contact's chatter and allows Odoo users to read feedback in context.
Touchpoint MX
Message Template
Odoo CRM
Note (Reference Inventory)
1:1Touchpoint MX Message Templates (reusable outbound content) do not have a direct Odoo CRM equivalent. We export Template content, subject lines, and personalization tokens as a structured Note on the relevant Contact or as a standalone Note tagged with template_type=message_template. The customer's admin uses this as a reference to rebuild templates in Odoo email templates or a custom module.
Touchpoint MX
User / Team Member
Odoo CRM
User
1:1Touchpoint MX Users map to Odoo Users by email match. We extract every distinct user referenced as an Owner on Contact, Journey Map, and Feedback records. Odoo User records must be provisioned manually by the customer's Odoo admin before Contact migration because OwnerId (create_uid) is a required field for activity logging and record assignment in Odoo CRM.
Touchpoint MX
Attachment
Odoo CRM
IrAttachment
1:1Attachments associated with Contacts or Feedback records in Touchpoint MX are exported as files and stored in Odoo's ir_attachment table with res_model=res.partner and the corresponding Contact ID as res_id. Large attachment volumes (over 1,000 files or files exceeding 25 MB) are chunked to avoid timeout; we flag oversized files during scoping and recommend compressing or archiving before migration.
Touchpoint MX
Custom Fields (Contact-level)
Odoo CRM
Custom Fields (Contact)
lossyTouchpoint MX custom fields on Contacts are exported with their values per record. We create matching custom fields in Odoo (Settings > Technical > User-defined Fields) before migration, using Odoo's field types (char, integer, float, selection, boolean, text) to match the source data type. Touchpoint MX visibility settings (Manager-only, Attendee-only, Everyone) do not transfer; we apply the most permissive Odoo access group that includes all roles to avoid data suppression.
Touchpoint MX
Integrations
Odoo CRM
Integration Inventory (Reference Document)
1:1Touchpoint MX integrations (connected apps, OAuth tokens, webhook endpoints) are bound to the source account and cannot be exported or transferred. We export a written inventory of every active integration with its configuration parameters, endpoint URLs, and authentication method. The customer's admin uses this inventory to re-establish integrations in Odoo (via Odoo Apps, REST API, or webhook automation) after migration.
Touchpoint MX
Opportunity / Deal (if applicable)
Odoo CRM
Opportunity
1:1If Touchpoint MX stores deal-like records or if the customer has been using Touchpoint MX for sales-stage tracking alongside journey mapping, these map to Odoo CRM Opportunity. We create Odoo pipeline stages to match the source stage labels, map record-level data to name, partner_id, stage_id, expected_revenue, and probability fields, and link each Opportunity to the migrated Contact (partner_id) and Company (parent_id).
| Touchpoint MX | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Journey Map | Contact + Custom Stage Fieldlossy | Fully supported | |
| Channel | Contact Custom Field (multi-select)lossy | Fully supported | |
| Satisfaction Score | Contact Custom Rating Field1:1 | Fully supported | |
| Feedback Record | Note (Discussion)1:1 | Fully supported | |
| Message Template | Note (Reference Inventory)1:1 | Fully supported | |
| User / Team Member | User1:1 | Fully supported | |
| Attachment | IrAttachment1:1 | Fully supported | |
| Custom Fields (Contact-level) | Custom Fields (Contact)lossy | Mapping required | |
| Integrations | Integration Inventory (Reference Document)1:1 | Not supported | |
| Opportunity / Deal (if applicable) | Opportunity1: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.
Touchpoint MX gotchas
No public API documentation in CSV
Journey Map stage labels require remapping
Integration tokens and OAuth credentials do not transfer
Custom Fields use permission-gated visibility settings
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
Scoping and data export method confirmation
We audit the Touchpoint MX account to identify all objects present (Contacts, Journey Maps, Channels, Satisfaction Scores, Feedback Records, Message Templates, Attachments, Users), estimate record counts per object, and detect all custom fields and their visibility settings. We simultaneously confirm the data export method with the customer: UI-based CSV export, direct database export if available, or any undocumented API access. We also review the Odoo destination environment to confirm the CRM app is installed, check the current Odoo version, and identify any pre-existing custom fields that may conflict with the migration field names.
Schema provisioning in Odoo
We create all required custom fields in the Odoo destination before any data import begins. This includes the journey_stage__c field on Contact for stage history, the satisfaction_score__c field for ratings, and the contact_channels__c multi-select for channel preferences. We also configure Odoo's pipeline stages to approximate the source Journey Map taxonomy or document which stage values map to which Contact custom field. If Odoo Studio is available, we use it for field creation; otherwise we use Settings > Technical > User-defined Fields. All field API names are recorded in the mapping spreadsheet before extraction begins.
Data extraction and transform
We extract data from Touchpoint MX using the confirmed method. For each object, we apply the field mapping transform: standard fields to Odoo equivalents, custom fields to the newly created Odoo custom fields, and Journey Map stage labels to the stage mapping table approved in step two. Feedback Records are transformed to the Odoo Note format (body HTML, create_date from original timestamp, res_model=res.partner). Owner assignments are resolved by email against the Odoo User table. Any Owner without a matching Odoo User is held in a queue.
Sandbox migration and reconciliation
We run a full migration into the customer's Odoo Sandbox environment (or a staging database) using production-equivalent data volume. The customer's admin reviews a reconciliation report comparing record counts in Touchpoint MX against the imported records in Odoo, spot-checks 25-50 records for field-level accuracy, and validates that Channel assignments, Satisfaction Scores, and Feedback Records appear correctly on the Contact form. We correct any mapping errors identified during sandbox review before production migration.
Production migration in dependency order
We run production migration in dependency order: Odoo Users (manually provisioned and validated), Companies (is_company=True), Contacts (with Company assigned, Owner resolved, custom fields populated), Opportunities (if applicable), Journey Map stage values (mapped to contact field), Channel assignments, Satisfaction Scores, and Notes from Feedback Records. Attachments import last. Each phase emits a row-count report before the next phase begins. We freeze Touchpoint MX writes during the final migration window and run a delta pass for any records modified during the cutover window.
Cutover, validation, and integration handoff
We enable Odoo CRM as the system of record after the delta pass confirms zero records modified during cutover. We deliver the integration inventory document (referencing each active Touchpoint MX integration with endpoint, auth method, and reconfiguration steps) and the Message Template reference inventory. We do not rebuild Touchpoint MX automations as Odoo Automations inside the migration scope; that work is documented separately for the customer's admin. We provide a one-week hypercare window to resolve any record-level issues raised by the Odoo users.
Platform deep dives
Touchpoint MX
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Touchpoint MX and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Touchpoint MX and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between Touchpoint MX 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
Touchpoint MX: Not publicly documented.
Data volume sensitivity
Touchpoint MX 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 Touchpoint MX to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Touchpoint MX 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 Touchpoint MX
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.