CRM migration
Field-level mapping, validation, and rollback between Breakcold and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Breakcold
Source
Odoo CRM
Destination
Compatibility
7 of 12
objects map 1:1 between Breakcold and Odoo CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Breakcold to Odoo CRM is a migration from a social-selling-native solo-team tool into an open-source ERP platform with a CRM module. Breakcold organizes B2B data around Contacts with unlimited custom Objects, flat-rate pricing, and a token-based AI enrichment system; Odoo CRM organizes data around Leads and Opportunities tied to a Partner model within a broader ERP context. Breakcold has no self-service export, so we extract via its REST API at 60 requests per 60-second limit, pulling Contacts, Companies, Leads, Pipeline Stages, Activities across all channels, and any custom Object records. Token credit entitlements and Breakcold AI scoring do not transfer; we document the effective token spend at migration time and flag which contacts relied on automated enrichment so the customer can plan equivalent Odoo enrichment. We do not migrate Workflows or automations; we deliver a written inventory of Breakcold automation rules for the customer's Odoo admin to rebuild in Studio or via server actions.
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 Breakcold 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.
Breakcold
Contact
Odoo CRM
Lead or Contact (split by lifecycle)
1:manyBreakcold Contacts with lifecycle stage of prospect or unqualified lead map to Odoo CRM Lead. Contacts with lifecycle stage of qualified lead, customer, or evangelist map to Odoo CRM Contact tied to a Partner record. The original Breakcold lifecycle stage is preserved as a custom field (x_breakcold_lifecycle__c) on both the Lead and Contact for audit and reporting continuity. We apply the split at migration time using Breakcold's lifecycle_stage property.
Breakcold
Lead
Odoo CRM
Lead
1:1Breakcold's distinct Lead object (separate from Contact) maps directly to Odoo CRM Lead. Lead status, source attribution, and any lead scoring value from Breakcold migrate as custom fields on the Odoo Lead. Owner assignment (Breakcold user) maps to Odoo CRM Salesperson (user) by email match.
Breakcold
Company
Odoo CRM
Partner
1:1Breakcold Company records map to Odoo CRM Partner records. The Breakcold company domain becomes the Partner's website field and serves as the deduplication key during import. Partner records are created before any Lead or Contact import so that the contact-company relationship (Breakcold's contact-company link) is satisfied at the moment of Contact insert. Industry, company size, and custom Properties translate to Odoo Partner custom fields or tags.
Breakcold
Pipeline
Odoo CRM
Sales Team (crm.team)
1:1Breakcold Pipelines map to Odoo CRM Sales Teams. Each Breakcold pipeline name becomes an Odoo Sales Team with its own member assignment and pipeline visibility. Odoo supports multiple Sales Teams, matching Breakcold's unlimited pipeline model. We preserve pipeline ordering and color metadata from Breakcold as custom fields or tags on the Odoo team.
Breakcold
Pipeline Stage
Odoo CRM
Stage (crm.stage)
lossyBreakcold Pipeline Stages map to Odoo CRM Stage records within each Sales Team. Stage name, order, and probability percentage migrate from Breakcold to Odoo stage probability. Breakcold's custom stage colors are preserved as stage description or a custom field. Odoo's stage Lost/Won flags are set based on Breakcold stage type if the source pipeline includes terminal stages.
Breakcold
Activity (Email, LinkedIn, WhatsApp, Telegram, Call)
Odoo CRM
Activity (mail.message, crm.phonecall)
1:1Breakcold Activities across all channels (Email, LinkedIn, WhatsApp, Telegram, Call) map to Odoo mail.message records for email and internal messaging, and to crm.phonecall for call records. Channel metadata (the source channel) is preserved in a custom field x_channel__c on the Odoo message. Activity body content, timestamp, and author map directly. LinkedIn-specific metadata (profile URL, connection date) migrates to Contact custom fields rather than as Odoo messages. Note: Odoo does not have a native multichannel inbox equivalent to Breakcold's unified social inbox; channel context is preserved as data but the unified thread view requires Odoo Discuss configuration or a third-party integration.
Breakcold
Custom Object
Odoo CRM
Custom Model (ir.model)
lossyBreakcold unlimited custom Objects map to Odoo custom models created via developer access or Odoo Studio. We pre-create the destination schema including model name, fields, field types, and any lookup relationships to standard models (Contact, Partner, Lead). Text, number, date, boolean, and multi-select field types translate directly. Multi-select values serialize as comma-separated strings in Odoo char fields unless the customer has developer access to create proper many2many or selection fields. Custom Object data imports after the parent Contact and Company records are in place.
Breakcold
Custom Properties (on Contacts, Leads, Companies)
Odoo CRM
Custom Fields on Lead, Contact, Partner
lossyBreakcold custom Properties on standard objects migrate to Odoo CRM custom fields. We create fields via Odoo Studio (if available in the customer's Odoo edition) or via XML data migration. Field types translate: text to char or text, number to float or integer, date to date, boolean to boolean, multi-select to char with serialized values. Required fields in Breakcold may need to be set as optional in Odoo during initial load to avoid rejection on incomplete records.
Breakcold
LinkedIn Data (profile URL, connection date, scraped metadata)
Odoo CRM
Contact Custom Fields
1:1Breakcold's LinkedIn integration data—profile URL, connection date, post engagement data, Sales Navigator prospects—stores as Contact properties in Breakcold. These migrate as Odoo Contact custom fields: x_linkedin_url (char), x_linkedin_connected_date (date), x_linkedin_posts_engaged (integer). The raw scraped LinkedIn metadata (profile fields beyond URL) is flag-stamped as stale or fresh during migration scoping based on the last confirmed sync date. Stale LinkedIn data is migrated as-is with a note for the customer to re-enrich post-migration if needed.
Breakcold
Tag
Odoo CRM
Tags (mail.tag) or Partner Tags
lossyBreakcold flat string tags on Contacts and Leads map to Odoo CRM tags on the Lead or Contact record. Odoo's mail.thread tag system supports multiple tags per record. We apply tags at migration time by resolving the tag name against Odoo's tag vocabulary, creating any missing tags in the destination. Tags used for content classification (rather than lead routing) map to Odoo CRM tags with no structural transformation.
Breakcold
Attachment
Odoo CRM
IrAttachment
1:1File attachments on Breakcold Contact records and Activities migrate as Odoo IrAttachment records linked to the corresponding Lead, Contact, or Partner via res_model and res_id. Attachments are downloaded from Breakcold (if accessible via API) and uploaded to Odoo's filestore during migration. We do not guarantee attachment rendering fidelity in Odoo since Breakcold and Odoo use different attachment storage backends.
Breakcold
User/Team Member
Odoo CRM
User (res.users)
1:1Breakcold workspace Users and their role assignments (Admin, Member) map to Odoo CRM User records by email match. Owner assignment on Breakcold Contacts and Leads maps to Odoo CRM Salesperson (user_id field) during migration. Any Breakcold Owner without a matching Odoo User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Role and permission parity is documented but not enforced during migration since Odoo access rights require separate configuration.
| Breakcold | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | Lead or Contact (split by lifecycle)1:many | Fully supported | |
| Lead | Lead1:1 | Fully supported | |
| Company | Partner1:1 | Fully supported | |
| Pipeline | Sales Team (crm.team)1:1 | Fully supported | |
| Pipeline Stage | Stage (crm.stage)lossy | Fully supported | |
| Activity (Email, LinkedIn, WhatsApp, Telegram, Call) | Activity (mail.message, crm.phonecall)1:1 | Fully supported | |
| Custom Object | Custom Model (ir.model)lossy | Fully supported | |
| Custom Properties (on Contacts, Leads, Companies) | Custom Fields on Lead, Contact, Partnerlossy | Fully supported | |
| LinkedIn Data (profile URL, connection date, scraped metadata) | Contact Custom Fields1:1 | Fully supported | |
| Tag | Tags (mail.tag) or Partner Tagslossy | Fully supported | |
| Attachment | IrAttachment1:1 | Fully supported | |
| User/Team Member | User (res.users)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.
Breakcold gotchas
No data export function blocks self-service migration
Token credit system complicates pricing parity on exit
LinkedIn integration fragility causes stale social data
New API key format required for some endpoints
60 requests per 60-second rate limit throttles large migrations
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 API accessibility audit
We audit the source Breakcold workspace: API credentials, key format (breakcold-usr vs legacy), rate limit status, and which objects are accessible via API. We enumerate Contacts, Leads, Companies, Pipelines, Stages, Activities (by channel), custom Objects, custom Properties, Tags, and Attachments. We identify any workflow or automation rules that exist in Breakcold for documentation. We also confirm the destination Odoo edition (Community or Enterprise), existing Odoo apps installed, and Odoo Studio availability. The discovery output is a written migration scope with record counts per object, a list of objects that cannot be migrated (token history, AI scores, workflow definitions), and a custom Object translation plan.
Destination schema design and stage configuration
We design the Odoo CRM destination schema. This includes configuring Sales Teams (one per Breakcold Pipeline), Stage records with probability percentages (mapped from Breakcold Pipeline Stages), custom fields on Lead and Contact (translated from Breakcold custom Properties), custom models for Breakcold custom Objects (if Odoo Enterprise or developer access available), Partner records (from Breakcold Companies), and tags. We apply a lifecycle split rule: Breakcold Contacts with prospect/unqualified lifecycle stage map to Odoo Lead; all others map to Odoo Contact tied to a Partner. Schema is deployed into a staging environment first for validation before production migration begins.
API extraction with rate-limit pacing
We extract Breakcold data via REST API at 60 requests per rolling 60-second window. For large datasets exceeding 10,000 records, we chunk extraction into rolling windows with exponential backoff, spreading the pull over a longer window to avoid throttling. We use a dedicated migration API key to avoid impacting live users' API access. Each object type is extracted separately and stored in a staging dataset. LinkedIn metadata, activity channel metadata, and custom Object data are extracted in parallel where API parallelism allows. We flag any records that return 403 (key format issue) or empty responses for regeneration before re-extraction.
Data transformation and custom object translation
We transform the extracted Breakcold data into Odoo-compatible format. This includes applying the Lead/Contact lifecycle split, translating field types (Breakcold multi-select to serialized string, Breakcold date to Odoo date format), resolving Breakcold Owner email to Odoo User ID, resolving Breakcold Company ID to Odoo Partner ID for Contact linking, and mapping Breakcold Pipeline and Stage IDs to Odoo Sales Team and Stage IDs. For Breakcold custom Objects, we apply the custom model schema (created in step 2) and translate field types. We apply Breakcold Tags as Odoo CRM tags. Any data that fails transformation (invalid email formats, missing required fields) is quarantined in a reconciliation dataset for customer review.
Staging migration and reconciliation
We run a full migration into a staging Odoo environment (same version as production). The customer's Odoo admin or RevOps lead reconciles record counts: Contacts in vs Leads in vs Partners in, Pipeline stages mapped, Activity count by channel, custom Object record counts. We spot-check 25-50 random records against the Breakcold source for field-level accuracy. Any mapping corrections (wrong field type, missed custom property, stage probability rounding) are applied to the transform logic before production migration. We also validate that the Odoo Discuss app or email integration is configured to receive the migrated channel metadata.
Production migration and cutover
We run production migration in dependency order: Partners (from Breakcold Companies) first, then Leads and Contacts with PartnerId resolved, Sales Teams and Stages, Activities (mail.message and crm.phonecall via Odoo RPC or direct database insert where appropriate), custom Object records, and Attachments. We freeze Breakcold writes during the final cutover window, run a delta migration of any records modified during the migration window, then mark Odoo as the system of record. We deliver a written automation inventory documenting every Breakcold workflow rule with trigger, conditions, and recommended Odoo Studio or server action equivalent for the customer's admin to rebuild post-migration. We support a one-week hypercare window for reconciliation issues raised by the sales team.
Platform deep dives
Breakcold
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 Breakcold 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
Breakcold: 60 requests per 60-second window per user.
Data volume sensitivity
Breakcold 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 Breakcold to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Breakcold 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 Breakcold
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.