CRM migration
Field-level mapping, validation, and rollback between Marketing Creatio and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Marketing Creatio
Source
Odoo CRM
Destination
Compatibility
12 of 12
objects map 1:1 between Marketing Creatio and Odoo CRM.
Complexity
BStandard
Timeline
5–10 days
Overview
Marketing Creatio stores CRM data across Contacts, Accounts, Leads, Opportunities, and a rich activity log that captures calls, emails, meetings, and notes. Each entity type maps to a corresponding Odoo model: Contacts and Accounts both resolve to Odoo's res.partner model, while Creatio's separate Leads and Opportunities both land in Odoo's crm.lead table — differentiated by the type field (lead vs opportunity). Pipeline stages map to Odoo's crm.stage records with associated probability and sequence values, owner IDs resolve by email match to Odoo res.users, and original timestamps survive as custom datetime fields so reporting continuity holds after cutover. FlitStack AI executes the migration via Odoo's XML-RPC API, handling Many2one lookups, value_mapping for pick-lists, and cross-object foreign-key sequencing. We identify every field that has no Odoo equivalent as a custom field candidate and explicitly document every construct that must be rebuilt — workflows, marketing campaign logic, and custom BPM processes do not migrate automatically and represent the primary post-migration effort.
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 Marketing Creatio 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.
Marketing Creatio
Contact
Odoo CRM
res.partner
1:1Creatio Contacts map directly to Odoo res.partner records. The contact's name splits into firstname and lastname on res.partner; email, phone, and job title map as direct fields. The primary Account link becomes res.partner.parent_id (many companies on one partner handled via the commercial partner link). Multi-company association in Creatio collapses to one primary parent_id with others flagged for manual review.
Marketing Creatio
Account (Company)
Odoo CRM
res.partner
1:1Creatio Accounts also map to res.partner with partner_type='company'. The organization name populates partner.name, website maps to website, and industry maps as a selection field. Parent-child hierarchies in Creatio translate to res.partner.parent_id on the child company record, preserving the corporate structure. Employees and annual revenue migrate as custom float fields since Odoo base doesn't carry these on the partner by default.
Marketing Creatio
Lead
Odoo CRM
crm.lead
1:1Creatio Leads become Odoo crm.lead records with type='lead'. The lead's status maps to the crm_stage_id via value_mapping, and priority maps to Odoo's priority field (0–4 scale). Source information from Creatio's lead_source field migrates as crm.lead.source_id lookup. Unqualified leads retain their create date and assigned owner (resolved by email) so sales managers can trace pipeline entry history.
Marketing Creatio
Opportunity
Odoo CRM
crm.lead
1:1Creatio Opportunities map to Odoo crm.lead records with type='opportunity'. The deal amount populates expected_revenue, close date maps to date_deadline, and the pipeline stage resolves to the matching crm_stage_id. Lost opportunities carry their loss_reason in a custom text field since Odoo stores this on the stage rather than the record. Won/lost state is set via stage probability — stages above 90% probability are marked won.
Marketing Creatio
Pipeline
Odoo CRM
crm.stage
1:1Creatio pipeline definitions become Odoo crm.stage records organized under sales teams (crm.team). Each pipeline in Creatio creates a separate stage sequence in Odoo. Stage display order and probability values are preserved as sequence integers and probability percentages. Teams with multiple Creatio pipelines generate multiple stage sequences under a single team or split across teams depending on your Odoo configuration.
Marketing Creatio
Activity (Call / Email / Meeting / Note)
Odoo CRM
crm.activity
1:1Creatio engagement records — calls, emails, meetings, and notes — all migrate to Odoo's crm.activity log attached to the corresponding crm.lead. The activity's subtype (call, email, meeting) maps to Odoo's activity_type_id via value_mapping. Original timestamps, duration, and body content are preserved. Attachments on activities migrate to ir.attachment linked by res_model='crm.activity' and res_id matching the activity record.
Marketing Creatio
Attachment / File
Odoo CRM
ir.attachment
1:1Creatio file attachments on any record re-upload to Odoo ir.attachment linked to the target record (res_model + res_id). File name, mimetype, and binary content are preserved. Odoo's 25MB per-file limit is enforced; files exceeding this are flagged for manual handling. Inline images in Creatio notes are downloaded and re-hosted as attachment records.
Marketing Creatio
Marketing Campaign
Odoo CRM
crm.tag / custom fields
1:1Creatio marketing campaign membership and campaign statistics have no native Odoo equivalent — Odoo Email Marketing handles active campaigns differently. We preserve campaign names as crm.tag records for reference and surface campaign membership as a custom many2many field on crm.lead. The campaign's automation logic (nurturing sequences, scoring rules) must be rebuilt in Odoo's Email Marketing or using automated actions.
Marketing Creatio
Custom Object
Odoo CRM
Custom fields on crm.lead / new ir.model
1:1Creatio custom objects (Enterprise tier) require Odoo-side schema decisions: either extend crm.lead with custom fields or create a new ir.model via Odoo Studio or Python module. We audit your Creatio custom object schema, map each custom field to an Odoo equivalent (selection, char, float, date, many2one), and deliver a schema setup plan before data loads. N:N custom object relationships become Odoo many2many fields or junction models.
Marketing Creatio
Lead Scoring / Rating
Odoo CRM
Custom fields on crm.lead
1:1Creatio's lead scoring model — whether using explicit numeric scores or grade/rating pick-lists — has no Odoo native equivalent. We migrate the score or rating value to a custom float field (lead_score__c) or selection field (lead_rating__c) on crm.lead. Automated re-scoring based on Odoo activities must be implemented via Odoo's automation rules post-migration.
Marketing Creatio
Owner / User Assignment
Odoo CRM
res.users (via email match)
1:1Creatio owner IDs resolve to Odoo res.users by email address match before migration. Any Creatio owner without a corresponding Odoo user is flagged with a fallback assignment (usually the admin) and a custom partner_id__c field holding the original Creatio owner name. Teams should provision Odoo users before migration so the email match resolves automatically for all active sales reps.
Marketing Creatio
Create / Update Timestamps
Odoo CRM
Custom datetime fields on crm.lead / res.partner
1:1Odoo's write_date and create_date are set at migration time, overwriting original Creatio timestamps. We preserve the original created_on and modified_on values from Creatio in custom datetime fields (original_create_date__c, original_write_date__c) so reporting on record age and modification history remains accurate after cutover.
| Marketing Creatio | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | res.partner1:1 | Fully supported | |
| Account (Company) | res.partner1:1 | Fully supported | |
| Lead | crm.lead1:1 | Fully supported | |
| Opportunity | crm.lead1:1 | Fully supported | |
| Pipeline | crm.stage1:1 | Fully supported | |
| Activity (Call / Email / Meeting / Note) | crm.activity1:1 | Fully supported | |
| Attachment / File | ir.attachment1:1 | Fully supported | |
| Marketing Campaign | crm.tag / custom fields1:1 | Fully supported | |
| Custom Object | Custom fields on crm.lead / new ir.model1:1 | Fully supported | |
| Lead Scoring / Rating | Custom fields on crm.lead1:1 | Fully supported | |
| Owner / User Assignment | res.users (via email match)1:1 | Fully supported | |
| Create / Update Timestamps | Custom datetime fields on crm.lead / res.partner1: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.
Marketing Creatio gotchas
Excel batch export timeout limits large record sets
Custom object schema discovery requires manual specification
.NET 6 migration required for on-premise instances
Relationship integrity across Lookup columns is easily broken
Marketing automation triggers and tracking pixels do not transfer
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
Schema audit and field-level mapping
FlitStack AI inventories every Creatio object, custom field, and pick-list value in your instance via the Creatio API. We compare the source schema against Odoo's crm.lead, res.partner, and crm.activity data models and produce a detailed mapping spreadsheet. This step identifies fields with no Odoo equivalent (which become custom fields), pick-list values requiring value_mapping, and any N:N relationships that need junction models. The mapping spreadsheet is reviewed with your team before any data moves.
Odoo custom field and stage setup
Before records land, your Odoo administrator (or our team via Odoo Studio) creates the custom fields flagged in the mapping audit — lead_score__c, original_create_date__c, source_campaign__c, and others. Stage records in CRM → Configuration → Stages are populated with the Creatio pipeline stage names, probabilities, and sequence values from your source pipelines. This step is completed before the sample migration runs so field validation can proceed cleanly.
Owner resolution and user provisioning
Creatio owner IDs are matched against Odoo res.users by email address. Any owner without an Odoo user account is flagged with a recommendation to create one or assign their records to a fallback user. FlitStack AI will not commit records with unresolved owners — this prevents orphaned assignments in Odoo where activity history belongs to a user that doesn't exist in the destination system. Teams should complete Odoo user provisioning before the full migration run.
Sample migration with field-level diff
A representative slice — typically 200–500 records spanning contacts, accounts, leads, opportunities, and a sample of activities — migrates first. We generate a field-level diff comparing source values against Odoo record values, highlighting any pick-list mismatches, truncated text, or missing lookups. This diff is reviewed by your team before the full run is scheduled. Common catches at this stage include stage probability mismatches and address field parsing artifacts from composite Creatio address fields.
Full migration with delta-pickup and audit log
The full record set migrates in sequenced batches: res.partner first (accounts then contacts), then crm.lead records (leads then opportunities), then crm.activity attachments. A delta-pickup window of 24–48 hours captures records modified in Creatio during the cutover. FlitStack AI maintains a full audit log of every create and update operation. One-click rollback is available if post-migration reconciliation reveals record count or relationship gaps. After validation, your team goes live on Odoo and the Creatio read-access credential is revoked.
Platform deep dives
Marketing Creatio
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Marketing Creatio and Odoo CRM.
Object compatibility
2 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
Marketing Creatio: API call cap applies on the Growth plan — 10,000 calls per full user license per month. Enterprise and Unlimited plans have higher or unlimited ceilings. OData responses are capped at 20,000 lines; OData batch requests may include up to 100 sub-requests..
Data volume sensitivity
Marketing Creatio exposes a bulk API — large-volume migrations stream efficiently.
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 Marketing Creatio to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Marketing Creatio 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 Marketing Creatio
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.