CRM migration
Field-level mapping, validation, and rollback between Taguchi and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Taguchi
Source
Odoo CRM
Destination
Compatibility
7 of 12
objects map 1:1 between Taguchi and Odoo CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Taguchi and Odoo CRM have no native object correspondence, which makes this a schema-design migration rather than a record copy. Taguchi organizes its audience around Subscribers with key-value custom fields, List memberships, Organizations, and behavioral Activity logs. Odoo CRM uses Leads, Contacts, Companies, and Opportunities with a different activity model. We resolve this gap during discovery by deciding whether Taguchi Subscribers with Organizations map to Odoo Contacts linked to Companies (if they're customers) or to Odoo Leads (if they're prospects), then build the destination schema accordingly. We extract Taguchi data via cursor-based paginated API iteration because Taguchi has no bulk export endpoint. Bounced and suppressed subscriber flags are written as Contact opt-out properties in Odoo so they do not trigger re-activation. List memberships become tags; Clusters become either tags or custom Contact properties; Activities (opens, clicks, custom events) land as chitchat.message records on the Contact timeline. We do not migrate Taguchi Automation Workflows or SMS send content as workflow logic.
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 Taguchi 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.
Taguchi
Subscriber
Odoo CRM
Contact or Lead (split required)
lossyTaguchi Subscribers map to Odoo CRM Contacts by default. Subscribers with Organizations map to Contacts linked to the corresponding Odoo Company. Subscribers without Organizations map to Contacts with no Company link unless the customer elects to create placeholder Company records. The decision between Contact and Lead is made during discovery based on the subscriber lifecycle stage and the customer's Odoo use case. We preserve the original Taguchi subscriber status (active, bounced, unsubscribed) as Odoo Contact properties and set HasOptedOutOfEmail = True for unsubscribed and bounced records.
Taguchi
Custom Field (key-value)
Odoo CRM
Custom Field on res.partner
lossyTaguchi key-value custom fields map to Odoo res.partner custom fields (ir.model.fields with technical name in the ir.model.fields table). We preserve the original field key as the field name with a taguchi_ prefix to avoid collisions. Field values migrate as typed data (text, date, selection, float, integer). If a Taguchi field was deleted from the UI but values remain on subscriber records, we reconstruct it as an archived custom field with a deprecation flag so data integrity is preserved without cluttering the active Odoo schema.
Taguchi
Organization
Odoo CRM
Company (res.partner with is_company=True)
1:1Taguchi Organizations map to Odoo Company records (res.partner with is_company=True). Organization name becomes Company name, domain becomes Website, and address fields map to Odoo's contact address fields. We create Companies first in the migration sequence so that the Contact-Company lookup is satisfied when Contact records are imported. If Taguchi Organizations have no subscribers attached, they are included but flagged for customer review.
Taguchi
List Membership
Odoo CRM
Tag on res.partner
lossyTaguchi List memberships are append-only associations from Subscribers to Lists. We extract the full list of list names during discovery and map them as tags on the Odoo Contact record. The customer chooses whether list names become Odoo tags, custom Contact properties, or both. Because Taguchi lists cannot be deleted post-import, the tag inventory is fixed at discovery time. Odoo's tag editor supports add and remove operations post-migration, giving teams the mutability Taguchi lacks.
Taguchi
Cluster
Odoo CRM
Tag or Custom Field on res.partner
lossyTaguchi Clusters identify the subscriber segment a contact is most strongly associated with, similar to a primary segment flag. We map Clusters as tags on the Contact record or as a single-select custom field, depending on whether the customer uses clusters as exclusive groupings or overlapping labels. The cluster name becomes the tag or field value. We advise during scoping whether a tag model or field model is more appropriate given the customer's segmentation workflow.
Taguchi
Activity (opens, clicks, custom events)
Odoo CRM
chitchat.message on res.partner
1:1Taguchi logs per-subscriber behavioral events (opens, clicks, custom events) used to drive automation triggers. These have no native Odoo CRM equivalent. We extract the full activity history and write it as chitchat.message records on the Contact timeline, with the event type as subject (e.g., 'Taguchi Event: email_open', 'Taguchi Event: custom_event:webinar_registrant'), a timestamp from the original Taguchi record, and event metadata stored in the message body. Activity records are written after Contacts to ensure the parent Contact ID is resolved.
Taguchi
Campaign
Odoo CRM
crm.campaign
1:1Taguchi Campaigns link subscribers and activities but do not map cleanly to a standalone Odoo CRM object. We extract campaign name, send date, recipient count, and open/click rates as campaign metadata and write them as notes or custom fields on the relevant Contact records. If the customer uses Odoo CRM's native campaign module, we map to crm.campaign with the campaign name, date, and audience size preserved. Content and workflow logic do not migrate.
Taguchi
Broadcast
Odoo CRM
crm.campaign or Note
1:1Taguchi Broadcasts are one-time email sends to subscriber segments. We preserve broadcast metadata (name, send date, recipient count, open rate, click rate) as a linked Note or campaign entry on each Contact record that received the send. Broadcast content and scheduling logic do not migrate because Odoo CRM has no native broadcast send capability at the contact record level.
Taguchi
SMS Message
Odoo CRM
mail.message or Note on res.partner
1:1Taguchi SMS send history migrates as message records on the Odoo Contact. We extract send date, recipient phone number, SMS status (delivered, failed, undelivered), and content snippet, storing these as a chitchat.message or custom note on the Contact. Phone number fields must be validated and present on the Taguchi Subscriber record; records without valid phone numbers are flagged and quarantined for the customer's review before import.
Taguchi
Subscriber Status (bounced, suppressed)
Odoo CRM
Contact opt-out field
lossyTaguchi bounced subscriber flags are permanent and irreversible without Taguchi Support. We extract the bounced and suppressed status for each Subscriber and write it to Odoo Contact's opt_out field and a custom field taguchi_bounce_status__c so that migrated contacts are suppressed from email sends on the new platform immediately. This prevents the customer's Odoo-managed sending domain from landing on blocklists from the first send.
Taguchi
Owner (Taguchi subscriber owner)
Odoo CRM
res.users mapped to Odoo CRM sales team
1:1Taguchi Subscribers can have an assigned owner (typically a marketing user). We extract owner references and map them by email to Odoo res.users. Any owner without a matching Odoo User is held in a reconciliation queue for the customer's admin to provision before record import resumes. Unassigned subscribers default to the admin user or a designated migration placeholder.
Taguchi
Automation Workflow
Odoo CRM
Written inventory document (no code migration)
1:1Taguchi automation workflows and journey logic are rule-driven configurations that do not map to Odoo CRM. We do not migrate automation workflows. We extract the workflow definitions during discovery (triggers, conditions, actions, delays) and deliver a written inventory with recommended Odoo automated action equivalents for the customer's admin or Odoo partner to rebuild post-migration.
| Taguchi | Odoo CRM | Compatibility | |
|---|---|---|---|
| Subscriber | Contact or Lead (split required)lossy | Fully supported | |
| Custom Field (key-value) | Custom Field on res.partnerlossy | Fully supported | |
| Organization | Company (res.partner with is_company=True)1:1 | Fully supported | |
| List Membership | Tag on res.partnerlossy | Fully supported | |
| Cluster | Tag or Custom Field on res.partnerlossy | Fully supported | |
| Activity (opens, clicks, custom events) | chitchat.message on res.partner1:1 | Fully supported | |
| Campaign | crm.campaign1:1 | Fully supported | |
| Broadcast | crm.campaign or Note1:1 | Fully supported | |
| SMS Message | mail.message or Note on res.partner1:1 | Fully supported | |
| Subscriber Status (bounced, suppressed) | Contact opt-out fieldlossy | Fully supported | |
| Owner (Taguchi subscriber owner) | res.users mapped to Odoo CRM sales team1:1 | Fully supported | |
| Automation Workflow | Written inventory document (no code migration)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.
Taguchi gotchas
Bounced subscriber flag is permanent without Taguchi Support
Custom fields persist on deletion and cannot be hard-deleted
List membership is append-only — no deletion via API
No publicly documented bulk export endpoint
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
Discovery and schema design
We audit the Taguchi account across all objects: Subscribers (with status distribution: active, bounced, unsubscribed), Custom Fields (active and soft-deleted), Lists, Organizations, Clusters, Activities, Campaigns, Broadcasts, and SMS history. We pair this with an Odoo CRM edition decision: Community (free, self-hosted), Online (per-user SaaS from ~$30/user/mo), or Enterprise (module-based pricing). The discovery output is a written migration scope document including the Contact-vs-Lead model decision, the Company hierarchy design, the tag strategy for List and Cluster data, and the activity migration approach (chitchat.message or Note). We snapshot the Taguchi custom field schema in full during this phase.
Sandbox extraction and reconciliation
We extract a full data set from Taguchi via paginated API into a staging environment, clean records that fail phone or email validation, and run a reconciliation count against Taguchi's reported subscriber totals. We validate that all List memberships, Organization associations, and Activity records are accounted for in the extracted set. Any gaps from API pagination failures are retried with exponential backoff. The customer reviews the staging extraction and confirms the mapping decisions before any Odoo schema is provisioned.
Odoo schema provisioning
We provision the destination Odoo CRM schema in a Sandbox or staging environment. This includes creating all custom fields on res.partner (with taguchi_ prefixes for migrated Taguchi fields), creating Companies from Taguchi Organizations, designing the tag taxonomy from Taguchi Lists and Clusters, and configuring the Contact opt-out fields to receive bounced and suppressed status. If the customer uses Odoo's crm.campaign module, we create campaign records for Taguchi Broadcast and Campaign metadata. Schema is validated against the extracted data to confirm all field types and picklist values match.
Owner and user reconciliation
We extract every distinct Taguchi owner referenced on Subscriber, Organization, and Activity records and match by email against the destination Odoo res.users table. Any owner without a matching Odoo User goes to a reconciliation queue. The customer's Odoo admin provisions missing Users before the production migration phase begins. Migration cannot proceed past record import because Odoo requires a valid res.users OwnerId reference on Contact and Lead records.
Production migration in dependency order
We run the production migration in record dependency order: Companies (from Taguchi Organizations), Contacts (with Company links resolved, bounced and suppressed status set as opt-out), Tags (created from Taguchi List and Cluster memberships), Activities (chitchat.message records linked to Contacts by partner_id), Campaign and Broadcast metadata (as notes or crm.campaign records), and SMS history (as message records). Each phase emits a row-count reconciliation report before the next phase begins. The Taguchi account is placed in read-only mode during the final production migration window to capture any delta records.
Cutover, validation, and workflow rebuild handoff
We freeze Taguchi writes, run a final delta migration of any records modified during the migration window, then switch the customer to Odoo CRM as the system of record. We deliver a reconciliation report comparing Odoo record counts to Taguchi source counts. We deliver the Automation Workflow inventory document to the customer's admin team with recommended Odoo automated action equivalents for each Taguchi workflow. We support a one-week hypercare window for reconciliation issues. We do not rebuild Taguchi automation workflows as Odoo server actions inside the migration scope; that is a separate engagement.
Platform deep dives
Taguchi
Source
Strengths
Weaknesses
Odoo CRM
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 Taguchi and Odoo CRM.
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
Taguchi: Not publicly documented.
Data volume sensitivity
Taguchi 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 Taguchi to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Taguchi 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 Taguchi
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.