CRM migration

Migrate from Touchpoint MX to Odoo CRM

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 logo

Touchpoint MX

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

75%

9 of 12

objects map 1:1 between Touchpoint MX and Odoo CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Touchpoint MX logo

Touchpoint MX

What's pushing teams away

  • Reporting lacks advanced filtering and segmentation — users must export data to build stakeholder-specific dashboards, and tracking by journey stage or revenue impact is not native.
  • Limited dashboard customization for business cases — reviewers request more flexible reporting to make a stronger ROI case for CX improvements internally.
  • Email delivery speed inconsistencies — at least one reviewer noted emails sometimes take a long time to be delivered, which matters for time-sensitive campaigns.

Choosing

Odoo CRM logo

Odoo CRM

What's pulling them in

  • Teams choose Odoo CRM for its modular architecture — one base install with one-click app additions means they can adopt CRM alone and add accounting, inventory, or sales later as the business grows.
  • Small businesses pick Odoo because the Community edition is free and open-source, with no per-user or contact limits, allowing full evaluation before committing to a paid Enterprise tier.
  • The drag-and-drop Kanban pipeline and AI lead scoring are highlighted across G2 reviews as concrete features that make lead management faster and more visual than spreadsheet-based workflows.
  • Odoo's native integration with email, live chat, SMS, VoIP, and WhatsApp means inbound leads from multiple channels feed into a single pipeline without third-party middleware.
  • Companies in retail, supply chain, and construction value that Odoo's CRM module shares the same PostgreSQL database and UI as its ERP modules, eliminating data silos between sales and operations.

Object mapping

How Touchpoint MX objects map to Odoo CRM

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

maps to

Odoo CRM

Contact

1:1
Fully supported

Touchpoint 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

maps to

Odoo CRM

Company

1:1
Fully supported

Touchpoint 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

maps to

Odoo CRM

Contact + Custom Stage Field

lossy
Fully supported

Touchpoint 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

maps to

Odoo CRM

Contact Custom Field (multi-select)

lossy
Fully supported

Touchpoint 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

maps to

Odoo CRM

Contact Custom Rating Field

1:1
Fully supported

Touchpoint 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

maps to

Odoo CRM

Note (Discussion)

1:1
Fully supported

Touchpoint 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

maps to

Odoo CRM

Note (Reference Inventory)

1:1
Fully supported

Touchpoint 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

maps to

Odoo CRM

User

1:1
Fully supported

Touchpoint 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

maps to

Odoo CRM

IrAttachment

1:1
Fully supported

Attachments 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)

maps to

Odoo CRM

Custom Fields (Contact)

lossy
Mapping required

Touchpoint 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

maps to

Odoo CRM

Integration Inventory (Reference Document)

1:1
Not supported

Touchpoint 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)

maps to

Odoo CRM

Opportunity

1:1
Fully supported

If 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).

Gotchas + challenges

What specifically takes care here

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 logo

Touchpoint MX gotchas

High

No public API documentation in CSV

Medium

Journey Map stage labels require remapping

Medium

Integration tokens and OAuth credentials do not transfer

Low

Custom Fields use permission-gated visibility settings

Odoo CRM logo

Odoo CRM gotchas

High

Odoo.sh version gating blocks assisted migrations from trial

High

Enterprise modules fail to install on Community after database restore

Medium

Custom module view inheritance breaks between Odoo major versions

Medium

Custom fields risk losing their application context on Community

Low

API access for Community is gated behind the Custom Plan

Pair-specific challenges

  • Touchpoint MX has no confirmed public API

    Research did not surface any public API reference, authentication method, rate limits, or bulk export endpoints for Touchpoint MX. Before we scope a migration, we request the customer provide any internal API documentation or confirm the data export method (UI-based export, CSV download, or direct database access). Without a programmatic extraction path, we fall back to UI-driven or CSV-based extraction, which limits the volume and field coverage we can guarantee and may extend the migration timeline because each object requires a separate export cycle. We flag this upfront in the scoping call and adjust the price range accordingly.

  • Journey Map stage labels require manual remapping

    Touchpoint MX Journey Maps use a custom stage taxonomy defined by each organization. When migrating to Odoo CRM, which uses Opportunity pipeline stages (or a custom stage field on Contact) with no native journey concept, we must map each source stage to the nearest Odoo stage. Stage labels that do not map cleanly to deal stages (e.g., Post-Sale, Retention, Advocacy) require a custom Contact field and documented category. We produce a stage mapping table for customer approval before data lands, to prevent Contacts landing in the wrong lifecycle bucket.

  • Odoo CRM requires manual import preparation

    Odoo CRM imports require CSV files formatted with specific column headers and a header row (name,email,phone without quotes) to map correctly via Settings > Import. Import buttons may be hidden in the Favorites menu in some Odoo versions. We use Odoo's native CSV import for standard objects and the xmlrpc API for custom fields and Notes. We also recommend the customer install the base_import module in their Odoo instance before migration if it is not already present, as it is required for custom field population during import.

  • Channel fields need custom Odoo field creation

    Touchpoint MX records Email, SMS, and Voice channel assignments per Contact. Odoo CRM has no native channel preference field, so we create a custom multi-select field contact_channels__c. Odoo custom fields must be created in the technical settings by an admin user before migration; we provide the exact field name, type, and selection values in the pre-migration checklist. If the customer later adds a telephony or SMS integration (Twilio, Nauta, or another VoIP provider), the channel field feeds into the integration's opt-in configuration.

  • Feedback Records import as Notes not structured records

    Odoo CRM has no native Feedback or Survey Response object. Feedback Records from Touchpoint MX land in Odoo as Notes attached to the Contact record, preserving text, date, and related Contact. This is functional but lacks the structured field layout of a dedicated feedback module. If the customer requires structured feedback records with rating fields, custom fields, or survey response logic, they need to install an Odoo survey or feedback app (e.g., website_sale_feedback, or a custom module) post-migration, which we document in the handoff inventory.

Migration approach

Six steps for a successful Touchpoint MX to Odoo CRM data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

Touchpoint MX logo

Touchpoint MX

Source

Strengths

  • User-friendly interface praised across multiple review sources for minimal learning curve
  • Strong customer support ratings with responsive onboarding assistance
  • Multi-channel messaging capability (Email, SMS, Voice) from one platform
  • Centralized feedback collection and journey mapping for cross-team alignment
  • Competitive pricing with contact-vendor model, positioned below HubSpot on per-user cost

Weaknesses

  • Native reporting lacks advanced filtering, segmentation, and customization
  • No native stakeholder dashboard builder — users export to BI tools for custom views
  • Email delivery speed is inconsistent according to at least one reviewer
  • Integration setup requires manual reconfiguration when migrating platforms
  • Limited review volume (3 on Capterra) makes it harder to validate fit before purchase
Odoo CRM logo

Odoo CRM

Destination

Strengths

  • Modular open-source architecture lets teams start with CRM and add ERP apps as needs grow, all sharing one PostgreSQL database.
  • Free Community edition with no contact limits and full source code access means zero licensing cost for evaluation and small deployments.
  • Drag-and-drop Kanban pipeline with AI lead scoring gives a visual, prioritized view of the sales funnel without requiring custom configuration.
  • Native integrations with email, live chat, SMS, VoIP, WhatsApp, and social media feed all inbound leads into a single unified inbox.
  • Active Odoo Community Association (OCA) maintains dozens of community-maintained modules on GitHub for extended functionality.

Weaknesses

  • Gmail and email integration reliability is a recurring complaint — threads drop and conversations scatter across inboxes, disrupting sales team workflows.
  • Enterprise edition pricing stacks quickly: multiple apps at per-user rates ($25–$50/user/month) plus Odoo.sh hosting costs more than many SMBs anticipate.
  • Setup and configuration complexity increases significantly once custom fields, automation rules, and multiple installed modules are in play.
  • Odoo.sh trial databases run on a version (e.g., 18.3) that is not directly migratable to Odoo.sh, blocking the assisted migration path Odoo advertises.
  • Version upgrades between major Odoo releases (e.g., 17→18) frequently break custom module view definitions and XPath expressions, requiring manual remediation.

Complexity grading

How hard is this migration?

Standard CRM migration. All 8 core objects map 1:1 between Touchpoint MX and Odoo CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Touchpoint MX and Odoo CRM.

  • Object compatibility

    A

    All 8 core objects map 1:1 between Touchpoint MX and Odoo CRM.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Touchpoint MX: Not publicly documented.

  • Data volume sensitivity

    B

    Touchpoint MX doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Touchpoint MX to Odoo CRM migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Touchpoint MX to Odoo CRM data migrations

Answers to the questions buyers ask most during Touchpoint MX to Odoo CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most migrations land between three and five weeks for accounts under 10,000 Contacts with standard custom fields and a single Journey Map taxonomy. Migrations with high Feedback record density (over 100,000 entries), multiple Journey stage taxonomies, large attachment volumes, or export methods limited to UI-based CSV extraction move to eight to fourteen weeks because each object requires a separate export cycle and the stage remapping requires explicit customer approval before data lands.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Touchpoint MX.
Land in Odoo CRM, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day