CRM migration

Migrate from Touchdown to Odoo CRM

Field-level mapping, validation, and rollback between Touchdown and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.

Touchdown logo

Touchdown

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

69%

9 of 13

objects map 1:1 between Touchdown and Odoo CRM.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Touchdown to Odoo CRM is a marketing automation to operational CRM migration with two structural challenges. First, Touchdown does not publish a public API schema, so we perform authenticated API exploration during discovery to map the actual data model before any export. Second, Touchdown organizes contact data around marketing audience segments and campaign attribution, while Odoo CRM uses the Lead, Opportunity, and Contact pipeline model common to operational sales CRMs. We resolve the campaign-to-pipeline mapping during scoping, preserving campaign source information as a custom field on the Odoo Lead for attribution continuity. Custom fields in Odoo must be created via Odoo Studio before any record import; we handle that schema provisioning as a precondition of the data migration phase. Touchdown Segments do not have a direct Odoo equivalent, so we recreate segment logic as saved filter domains in Odoo and document the mapping for the customer's admin. Workflows, email sequences, and marketing automation rules do not migrate; we deliver a written inventory of every active automation requiring rebuild in Odoo Studio or Odoo's server actions.

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

Touchdown logo

Touchdown

What's pushing teams away

  • No publicly documented public API — integrations live inside the Microsoft ecosystem only, so customers needing external system connections (e-commerce, webinar tools, attribution) hit a ceiling.
  • Feature depth is modest compared with enterprise marketing platforms — multi-touch attribution, advanced scoring, and account-based marketing are limited relative to HubSpot, Marketo, or Salesforce Marketing Cloud.
  • Reliance on Microsoft Dynamics / Power Platform means customers leaving that stack effectively must leave Touchdown too; the product has no standalone CRM mode.
  • Limited public review footprint (small Gartner / G2 sample) makes vendor due diligence harder for buyers who rely on third-party validation.
  • Pricing details beyond the entry tier are not transparently published; buyers must contact sales for larger seat counts and SMS volumes.

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 Touchdown objects map to Odoo CRM

Each row shows how a Touchdown 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.

Touchdown

Contact

maps to

Odoo CRM

Lead

1:1
Fully supported

Touchdown Contact records map to Odoo CRM Lead as the primary record type. Standard contact fields (name, email, phone, company name) map to Odoo's name, email_from, phone, and partner_name fields on crm.lead. We resolve the Touchdown company association from the contact's company_name property and carry it into the Lead's partner_name field for later Account creation. Any lifecycle stage or contact type property in Touchdown migrates as a custom Char or Selection field on the Lead for segmentation continuity.

Touchdown

Contact

maps to

Odoo CRM

Contact + Account (converted Lead)

1:many
Fully supported

Touchdown Contacts that represent active customers or qualified buyers map to Odoo Partner records attached to an Odoo Account (res.partner with partner_latitude populated to flag as a company). We apply a customer-type filter during migration: contacts with a campaign conversion event in Touchdown map directly to res.partner in customer mode. The customer's admin runs the Odoo Lead conversion (crm.lead convert_to_partner action) for in-progress Leads after migration, or we perform the conversion during migration if the customer provides a conversion rule during scoping.

Touchdown

Company/Account

maps to

Odoo CRM

Partner (company mode)

1:1
Fully supported

Touchdown Company records map to Odoo res.partner records in company mode. The company name becomes the partner's name (displayed as company), and the company domain becomes the website field. Touchdown company custom properties migrate as custom fields on the res.partner record. We use company domain as the dedupe key during import. The Partner must exist before any Contact import that references it as a parent company.

Touchdown

Campaign

maps to

Odoo CRM

CRM Campaign

1:1
Fully supported

Touchdown Campaign records map to Odoo CRM Campaign (utm.campaign). Campaign name, description, start and end dates, and status transfer directly. Touchdown campaign audience assignments (contacts associated with a campaign) map to Odoo CRM Campaign lines or to a Tag on the migrated Lead records so that campaign attribution is preserved without requiring a separate campaign-member object that Odoo CRM does not natively support in the same way Touchdown does.

Touchdown

Segment

maps to

Odoo CRM

Saved Filter (Domain)

lossy
Fully supported

Touchdown audience segments do not have a direct Odoo CRM equivalent. We discover each segment's filter criteria via Touchdown's API during schema exploration, then recreate those criteria as saved filter domains in Odoo CRM (ir.filters). The segment name becomes the filter name, and the filter domain is translated from Touchdown's segment logic to Odoo's domain notation (e.g., Touchdown 'country = USA AND lifecycle_stage = MQL' becomes [('country', '=', 'USA'), ('lifecycle_stage', '=', 'mql')]). We document the translation for the customer's admin as a living reference for segment maintenance.

Touchdown

Email Template

maps to

Odoo CRM

Email Template (mail.template)

1:1
Fully supported

Touchdown email templates with merge fields migrate to Odoo mail.template records. We export template body content (HTML), subject line, and merge field tokens, then map them to Odoo's subject and body_html fields using Odoo's QWeb template syntax where personalization tokens are represented as {{ object.field_name }}. The model's model_id on the mail.template record is set to crm.lead for Lead-facing templates or res.partner for Contact-facing templates.

Touchdown

Custom Field (Contact)

maps to

Odoo CRM

Custom Field (crm.lead or res.partner)

lossy
Fully supported

Touchdown custom contact properties discovered during API exploration map to custom fields on Odoo crm.lead (for Lead-scoped properties) or res.partner (for Contact-scoped properties). We use Odoo Studio to pre-create each custom field before the production migration phase. Field type translation follows: Touchdown text becomes Char, long text becomes Text, number becomes Float or Integer, date becomes Date, and multi-select becomes Char (comma-separated) or a dedicated Selection field if the value set is known and bounded. The custom field must be created and deployed to the production Odoo instance before any records referencing it are imported.

Touchdown

Custom Field (Campaign)

maps to

Odoo CRM

Custom Field (utm.campaign)

lossy
Fully supported

Touchdown custom campaign properties discovered via API exploration map to custom fields on Odoo utm.campaign via Odoo Studio. These fields are created during the schema provisioning phase. The same type-translation rules apply as for Contact custom fields.

Touchdown

Engagement: Email

maps to

Odoo CRM

Mail Message (mail.message)

1:1
Fully supported

Touchdown email engagement history migrates to Odoo mail.message records attached to the relevant Lead or Partner (res.partner) record. The email subject, body (HTML), sender, and recipient addresses transfer directly. Activity timeline ordering is preserved by setting mail.message's date field to the original Touchdown timestamp. We link messages to the crm.lead or res.partner record using the model and res_id fields on mail.message.

Touchdown

Engagement: Call

maps to

Odoo CRM

CRM Lead / Note with subtype

1:1
Fully supported

Touchdown call engagements map to Odoo CRM Lead's activity log or to a Note (note.note) attached to the Lead or Partner record. Call duration, disposition, and outcome properties from Touchdown migrate as custom fields on the activity or note. The original call timestamp is preserved in the activity or note body for audit continuity.

Touchdown

Engagement: Meeting

maps to

Odoo CRM

Calendar Event (calendar.event)

1:1
Fully supported

Touchdown meeting engagements map to Odoo calendar.event records. Start datetime, end datetime, location, and description transfer directly. Attendee information from Touchdown migrates to calendar.attendee records linked to the event, with attendee email matched against migrated res.partner or res.users records by email address.

Touchdown

Engagement: Task

maps to

Odoo CRM

CRM Activity / Project Task

1:1
Fully supported

Touchdown task engagements migrate to Odoo CRM Activity records (mail.activity) linked to the Lead or Partner. Task subject, due date, priority, and status transfer directly. Owner assignment resolves Touchdown owner email to Odoo res.users and sets the activity's user_id accordingly. Tasks without a due date or future date become note-style records attached to the Lead.

Touchdown

Owner / User

maps to

Odoo CRM

User (res.users)

1:1
Fully supported

Touchdown Owner records map to Odoo res.users. We resolve each Touchdown owner by email match against the destination Odoo res.users table. Any Touchdown owner without a matching Odoo user is held in a reconciliation queue for the customer's admin to provision before record import resumes. Odoo does not support inactive users on imported records in the same way Salesforce does, so we require active res.users records for all Touchdown owners referenced in the migration scope.

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.

Touchdown logo

Touchdown gotchas

Low

Catalog website appears mismatched

Medium

Touchdown stores its data inside the Dynamics 365 / Dataverse tenant

Medium

SMS data and consent records require careful handling

Low

Templates and landing pages reference Microsoft-hosted assets

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

  • Touchdown does not publish a public API schema

    Touchdown's API schema is not publicly documented, which means we cannot rely on published endpoint documentation to plan the migration mapping. During the discovery phase we perform authenticated API exploration against the customer's live Touchdown instance to discover the actual field names, data types, object relationships, and custom property definitions. This discovery step adds one to two weeks to the migration timeline and must be completed before field mapping can be finalized. If Touchdown has made recent schema changes, the exploration may surface fields not seen in prior migrations, requiring mapping adjustments before production migration.

  • Odoo custom fields must be created before import

    Odoo CRM requires that custom fields exist in the database schema before any records referencing them can be imported via API. Unlike Salesforce, where custom fields can be created via the same API used for data import, Odoo custom fields must be provisioned through Odoo Studio or directly in the database before the migration script runs. We handle this as a schema pre-provisioning step before any record import. If the customer's Odoo instance has existing custom fields that overlap with Touchdown's custom fields, we check for name conflicts and rename or merge as appropriate during scoping.

  • Odoo CRM post-sales support is a documented weakness

    Reddit discussions on Odoo CRM and multiple review analyses consistently cite post-sales support quality as Odoo's worst-performing category. Companies migrating to Odoo CRM should plan for a period of reduced vendor support during the early months of Odoo usage, particularly for Odoo Community (which relies entirely on community forums and documentation) and for Odoo.sh instances where dedicated support requires a paid tier. We recommend that customers designate an internal Odoo administrator during migration and consider engaging an Odoo partner for post-go-live support before migration begins.

  • Touchdown segments require manual recreation in Odoo

    Touchdown's audience segments are defined using a visual filter builder against contact properties and campaign interactions. Odoo CRM does not have a native segment object. We translate each Touchdown segment into an Odoo saved filter domain (ir.filters) during migration, but the customer must validate each filter in Odoo after migration to confirm that the segment logic produces the expected contact set. Any Touchdown segment that relies on behavioral data (engagement scores, recency, frequency) that cannot be expressed as a static Odoo domain filter requires a rebuild as an Odoo automated activity or server action, which is outside the data migration scope.

  • Odoo REST API rate limits vary by hosting tier

    Odoo's API rate limits differ between Community (self-hosted), Odoo.sh (cloud-hosted by Odoo), and Odoo Online (SaaS). Community instances on customer-hosted infrastructure may have network-level throttling or no throttling at all depending on the web server configuration. Odoo.sh enforces Odoo's internal rate limits on XML-RPC requests. We use Odoo's XML-RPC or REST API depending on the customer's hosting tier, with batch chunking (typically 100 records per batch) and retry logic with exponential backoff on 429 responses. The customer's hosting configuration must be confirmed during scoping to select the correct API method and chunking strategy.

Migration approach

Six steps for a successful Touchdown to Odoo CRM data migration

  1. Discovery and Touchdown API schema exploration

    We audit the customer's Touchdown instance via authenticated API exploration to discover the actual data model: all Contact fields (standard and custom), Company fields, Campaign fields, Segment definitions with their filter criteria, email template structures, engagement object schemas (email, call, meeting, task), and Owner records. We simultaneously review the customer's Odoo instance for existing custom fields, active modules, and user count. The discovery output is a written migration scope document that includes the discovered Touchdown schema, the proposed Odoo schema mapping, and a list of Touchdown custom fields that require Odoo Studio provisioning before import. This step takes one to two weeks.

  2. Schema provisioning and sandbox preparation

    We create all required custom fields in the customer's Odoo instance using Odoo Studio (or direct XML-RPC field creation if Studio is unavailable). We configure the Odoo CRM pipeline stages, sales team structure, and tag taxonomy to align with Touchdown's campaign and segment organization. We create a sandbox or staging Odoo environment for migration testing. Any Odoo custom fields that reference selection lists or related models are configured before the migration script is written. This step requires Odoo admin credentials and typically takes one week.

  3. Sandbox migration and reconciliation

    We run a full migration into the staging Odoo environment using production-like data volume. The customer reviews record counts, spot-checks fifteen to twenty random migrated records against the Touchdown source, and validates that custom fields populated correctly. Any field mapping corrections, data type issues, or segment translation problems are resolved in this phase. The customer signs off the sandbox validation before we proceed to production migration. This step takes one to two weeks.

  4. Owner and user provisioning reconciliation

    We extract every distinct Touchdown Owner referenced on Contacts, Companies, Campaigns, and Engagement records and match by email against the Odoo res.users table. Owners without a matching Odoo user go to a reconciliation queue. The customer's Odoo admin provisions any missing users before production migration begins. Odoo requires active res.users records for owner assignment on Leads and Opportunities, so this step must be completed before the production migration run. This step typically takes one to three days depending on how many users need provisioning.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Odoo Users validated first, then Company records (res.partner in company mode), then Contact records (Lead and Partner), Campaigns (utm.campaign), Email Templates (mail.template), Custom field values populated on Leads and Partners, Activity history (mail.message, calendar.event, mail.activity via XML-RPC batch), and Segments (ir.filters as saved domains). Each phase emits a row-count reconciliation report. We use XML-RPC batch operations (default 100 records per batch) with exponential backoff on rate-limit responses. This step takes one to three weeks depending on total record volume.

  6. Cutover, validation, and automation rebuild handoff

    We freeze Touchdown writes during the cutover window, run a final delta migration of any records modified during the migration, then enable Odoo CRM as the system of record. We deliver the Segment translation document (Touchdown segment name to Odoo saved filter domain), the Workflow and automation inventory (Touchdown sequences and campaign rules requiring Odoo Studio rebuild), and the custom field reference guide. We provide a one-week hypercare window for reconciliation issues. We do not rebuild Touchdown automations as Odoo server actions or Studio workflows inside the migration scope; that work is documented and handed off as a separate admin task.

Platform deep dives

Context on both ends of the pair

Touchdown logo

Touchdown

Source

Strengths

  • Lives natively inside Dynamics 365, Power Apps, and Business Central — no third-party sync layer to break.
  • Multi-channel marketing in one suite: email, SMS, landing pages, forms, events, sales automation.
  • European hosting and GDPR-by-design positioning eases EU procurement.
  • Drag-and-drop template builder lowers the cost of running a small marketing team.
  • Entry-level pricing accessible to SMBs migrating off Mailchimp or basic email tools.

Weaknesses

  • No documented public REST API limits non-Microsoft integrations and migration tooling.
  • Feature depth lags enterprise platforms like Marketo, HubSpot Marketing Hub, and Salesforce Marketing Cloud.
  • Tightly coupled to the Microsoft Dynamics ecosystem; standalone use is not a supported deployment.
  • Small public review footprint makes buyer due diligence harder.
  • Pricing beyond the entry tier is not transparently published.
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. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

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

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • 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

    Touchdown: Governed by Dataverse Web API service protection limits (per-user/per-app rate ceilings published by Microsoft). Touchdown does not impose additional documented limits on top..

  • Data volume sensitivity

    B

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

Estimator

Estimate your Touchdown 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 Touchdown to Odoo CRM data migrations

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

Can't find your answer?

Walk through your Touchdown to Odoo CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Migrations land between four and six weeks for accounts under 15,000 Contacts, 50 Campaigns, and no complex custom objects, assuming the Touchdown API exploration completes without discovering unexpected schema variants. Migrations with large engagement histories (over 200,000 activity records), more than twenty Touchdown segments requiring domain recreation, or Odoo installations with integrated Accounting or Project modules move to ten to sixteen weeks because of Odoo custom field pre-provisioning, segment-to-domain translation, and multi-module import sequencing.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Touchdown.
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