CRM migration
Field-level mapping, validation, and rollback between Gauss Box CRM & Sales and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Gauss Box CRM & Sales
Source
Odoo CRM
Destination
Compatibility
10 of 12
objects map 1:1 between Gauss Box CRM & Sales and Odoo CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Gauss Box CRM & Sales to Odoo CRM addresses two structural constraints that grow with team size: the absence of a public REST API in Gauss Box and the per-user pricing model that scales faster than the bundled feature set justifies. We resolve the export constraint by coordinating CSV extraction through Gauss Box support using their assisted export process, then transform the CSV output into Odoo's crm.lead, res.partner, and crm.lead.line model schemas. The migration sequences parent records first (Organizations to Partners, Products to Product Templates), then child records (Contacts to Partner addresses, Deals to Crm Lead), then Activities (Calls, Meetings, Tasks against the resolved partner and lead records). We do not migrate Gauss Box attribute-set custom fields as code — we enumerate every active attribute during discovery, create matching custom fields in Odoo via Settings > Technical > Custom Fields before import, and map values in the transform layer. Workflow configurations, document templates, and D&B intelligence enrichment do not carry over; we deliver a written inventory of these for the customer's admin to rebuild in Odoo Studio or via the Apps interface.
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 Gauss Box CRM & Sales 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.
Gauss Box CRM & Sales
Organization
Odoo CRM
res.partner (company type)
1:1Gauss Box Organization records map to Odoo res.partner with partner_type set to company. The organization name, industry, size, address fields, and any D&B data (creditworthiness, risk indicators) migrate to partner fields and custom fields we pre-create in Odoo. Organization is the first record type imported because Contacts in Odoo reference the parent partner_id field on the partner record. The Odoo partner.vat field can carry D&B DUNS number if present in the Gauss Box export.
Gauss Box CRM & Sales
Product
Odoo CRM
product.template
1:1Gauss Box Product catalog entries (name, category, type, price, sale tax configuration) map to Odoo product.template records. Product categories map to Odoo product.category. The Gauss Box sale tax field maps to Odoo's account.tax on the product template's seller_ids. Tiered pricing and volume discount rules from Gauss Box Products are not natively supported in Odoo Product Templates — we flag these as Odoo Pricelist Items to configure post-migration.
Gauss Box CRM & Sales
Contact (Person)
Odoo CRM
res.partner (individual type)
1:1Gauss Box Contact records map to Odoo res.partner with partner_type set to individual. We preserve the Contact's name, email, phone, job title, and address fields. The parent Organization reference from Gauss Box resolves to an Odoo res.partner (company) via the partner_id lookup. Custom attribute-set fields on Contacts migrate to custom fields on the partner record after we enumerate them during discovery.
Gauss Box CRM & Sales
Lead
Odoo CRM
crm.lead
1:1Gauss Box Lead records map to Odoo crm.lead with type=lead. The lead's work status, assigned team member, and lead source migrate to Odoo crm.lead fields. If the Gauss Box Lead is already linked to a Contact in Gauss Box, we resolve that Contact's new Odoo partner_id and set the lead's partner_id in Odoo during import. Lead status values from Gauss Box are mapped to Odoo stage_id values in the target team's pipeline.
Gauss Box CRM & Sales
Deal
Odoo CRM
crm.lead (type=opportunity)
1:1Gauss Box Deal records map to Odoo crm.lead with type=opportunity. The Gauss Box deal stage name maps to the target Odoo crm.team's stage. Deal value, budget, owner assignment, and product associations carry over. The product associations from Gauss Box resolve to the imported product.template records. Owner assignment maps via email match to Odoo res.users.
Gauss Box CRM & Sales
Deal Stage
Odoo CRM
crm.stage
lossyGauss Box pipeline stages are configurable per account. We enumerate every active stage name and probability value during discovery and create matching crm.stage records within the target crm.team in Odoo. Stage probability percentages migrate as probability fields on crm.lead. If the customer uses multiple Gauss Box pipelines, each becomes a separate crm.team in Odoo with its own stage sequence.
Gauss Box CRM & Sales
Activity (interaction)
Odoo CRM
mail.activity
1:1Gauss Box Activities (calls, emails, meetings, tasks) tied to Deals and Contacts map to Odoo mail.activity records linked to the migrated crm.lead or res.partner. Activity type, timestamp, description, and the parent object link are preserved. Activity types vary by account in Gauss Box — we map them to Odoo's activity types (Call, Meeting, Email, Upload Document) during the discovery phase. Gauss Box smart notification records embedded in parent metadata are flagged separately for manual recreation.
Gauss Box CRM & Sales
Activity: Meeting
Odoo CRM
calendar.event
1:1Gauss Box Activities of type Meeting migrate to Odoo calendar.event. Start datetime, end datetime, location, and attendee list map directly. Odoo calendar.event records link to the target crm.lead or res.partner via the res_model and res_id fields. Meeting notes migrate as mail.message records attached to the event.
Gauss Box CRM & Sales
Activity: Call
Odoo CRM
mail.activity (activity_type_id=Call)
1:1Gauss Box call activities map to Odoo mail.activity with activity_type_id set to Call. Call duration and disposition from Gauss Box migrate to custom activity fields we add to Odoo's activity model. The owner assignment resolves via email match to Odoo res.users.
Gauss Box CRM & Sales
Document
Odoo CRM
ir.attachment
1:1Gauss Box documents stored per record migrate as ir.attachment records in Odoo, linked via res_model and res_id to the corresponding migrated record (crm.lead or res.partner). Filename and any stored metadata are preserved. Document access permissions from Gauss Box do not carry over — we recommend the customer review Odoo's record-level access rules for the CRM module post-migration.
Gauss Box CRM & Sales
Owner (User)
Odoo CRM
res.users
1:1Gauss Box user accounts referenced on Leads, Contacts, Deals, and Activities resolve by email match to Odoo res.users records. Owners without a matching Odoo user are held in a reconciliation queue for the customer's admin to provision before record import resumes. Inactive Gauss Box users should be deactivated before export to avoid orphaned owner assignments in the CSV.
Gauss Box CRM & Sales
Custom Attributes (Attribute Sets)
Odoo CRM
ir.model.fields (custom)
lossyGauss Box attribute-set custom fields on Contacts, Organizations, Deals, and Products are account-specific and require enumeration during discovery. We create matching custom fields in Odoo via Settings > Technical > Custom Fields (requires Technical Features enabled) before any data import. The field type mapping translates Gauss Box field types to Odoo field types (Char, Text, Selection, Many2one, etc.). Fields that exist only in Gauss Box and have no Odoo equivalent become custom fields with a note in the mapping document for the admin to evaluate post-migration.
| Gauss Box CRM & Sales | Odoo CRM | Compatibility | |
|---|---|---|---|
| Organization | res.partner (company type)1:1 | Fully supported | |
| Product | product.template1:1 | Fully supported | |
| Contact (Person) | res.partner (individual type)1:1 | Fully supported | |
| Lead | crm.lead1:1 | Fully supported | |
| Deal | crm.lead (type=opportunity)1:1 | Fully supported | |
| Deal Stage | crm.stagelossy | Fully supported | |
| Activity (interaction) | mail.activity1:1 | Fully supported | |
| Activity: Meeting | calendar.event1:1 | Fully supported | |
| Activity: Call | mail.activity (activity_type_id=Call)1:1 | Fully supported | |
| Document | ir.attachment1:1 | Fully supported | |
| Owner (User) | res.users1:1 | Fully supported | |
| Custom Attributes (Attribute Sets) | ir.model.fields (custom)lossy | Mapping required |
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.
Gauss Box CRM & Sales gotchas
No documented public API export endpoint
Custom attribute sets are account-specific and require discovery
Per-user pricing creates billing surprises when migrating in
Activity reminders and notification data are not independently exportable
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 Gauss Box export coordination
We audit the source Gauss Box account for active attribute sets, pipeline stage names, product categories, activity types, and owner accounts. In parallel, we coordinate with Gauss Box support to request the CSV export package covering Leads, Contacts (Persons), Organizations, Deals, Activities, and Products. We recommend the customer submit the export request during scoping to avoid timeline delays. The discovery output is a written migration scope, a Gauss Box attribute-set inventory, and a list of export file dependencies.
Gauss Box CSV receipt and transform script build
Upon receipt of Gauss Box CSV files, we validate row counts, check for missing required fields (Contact email, Organization name, Deal stage), and flag any records with incomplete parent references. We build a Python transform script that rewrites Gauss Box column headers to Odoo field API names, maps Gauss Box picklist values to Odoo selection keys, splits the unified Contact file into res.partner (individual) records, and generates external ID cross-reference files for parent record lookups (Organization to Partner, Contact to Partner, Product to Product Template). The transform script is tested against a sample of 100 records before full execution.
Odoo destination schema setup
We configure the destination Odoo CRM environment before any data import. This includes creating crm.team sales channel records (one per Gauss Box pipeline), configuring crm.stage stage values and probabilities per team, enabling the required Odoo Apps (CRM, Contacts, Products, Calendar, Documents), creating custom fields for Gauss Box attribute-set fields via Settings > Technical > Custom Fields, and provisioning res.users for every Gauss Box owner with a matching email. Odoo configuration is validated in a staging environment before production import if the customer uses Odoo On-Premise.
Parent record import in dependency order
We import records in dependency order: Organizations (to res.partner company type), then Products (to product.template), then Contacts (to res.partner individual type with parent_id pointing to the Organization partner), then Leads (to crm.lead type=lead), then Deals (to crm.lead type=opportunity with partner_id and team_id resolved). Each phase emits a row-count reconciliation report. The Odoo external ID cross-reference file is updated after each phase so that child record imports can resolve their parent lookups correctly.
Activity and document import
Activity records (Calls, Meetings, Tasks) from Gauss Box migrate to Odoo mail.activity and calendar.event, linked to the imported crm.lead or res.partner via the cross-reference file. Document files from Gauss Box migrate as ir.attachment records, reattached to the corresponding Odoo record. Gauss Box smart notification flags are preserved in a custom field on the parent record for the customer's admin to evaluate. Any owner assignments that could not resolve to an Odoo user are logged in a reconciliation report for the admin to handle.
Cutover, delta sync, and documentation delivery
We freeze writes in Gauss Box during cutover, run a final delta import of records modified during the migration window, then deliver the Odoo CRM as the system of record. We deliver a written inventory of Gauss Box attribute-set fields and their Odoo equivalents, a stage mapping document, a user reconciliation report, and a Gauss Box feature gap note (D&B enrichment, smart notifications, document permissions) for the customer's admin to address post-migration. We support a three-day hypercare window for reconciliation issues. We do not rebuild Gauss Box workflows or document templates as Odoo automation rules inside the migration scope.
Platform deep dives
Gauss Box CRM & Sales
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 Gauss Box CRM & Sales 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
Gauss Box CRM & Sales: Not publicly documented.
Data volume sensitivity
Gauss Box CRM & Sales 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 Gauss Box CRM & Sales to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Gauss Box CRM & Sales 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 Gauss Box CRM & Sales
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.