CRM migration

Migrate from CentralStationCRM to Odoo CRM

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

CentralStationCRM logo

CentralStationCRM

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

75%

9 of 12

objects map 1:1 between CentralStationCRM and Odoo CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from CentralStationCRM to Odoo CRM is a structural migration from a lightweight, single-module CRM to an all-in-one ERP platform with CRM as one of dozens of optional apps. CentralStationCRM holds People, Companies, Deals, Leads, and Activities in a flat, unified model; Odoo separates the CRM app into Leads (pre-qualification) and Contacts (post-qualification) with an explicit Convert action. We resolve that split at migration time using CentralStationCRM's Deal attachment as the qualification proxy, preserve the original Hub-style tag vocabulary as Odoo Tags, and walk every nested address route (GET /api/people/{id}/addrs.json) so that no child record is silently omitted. Odoo's per-user pricing plus per-app monthly fees (CRM starts around €19/user/month on top of the base platform) makes the total cost structure materially different from CentralStationCRM's flat per-seat model, so we map the customer's current CentralStationCRM seat count against Odoo's subscription stack during scoping. Workflows, email templates, and custom automations built in CentralStationCRM do not migrate; we deliver a written inventory of every active workflow for Odoo Automated Actions rebuild by the customer's admin.

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

CentralStationCRM logo

CentralStationCRM

What's pushing teams away

  • Small teams that scale beyond 10-25 users find the platform's feature set insufficient for complex sales processes or advanced reporting
  • Reviewers mention the CRM is designed for simplicity, which means features common in Pipedrive or HubSpot (advanced automation, multi-currency, granular permissions) are absent
  • Some users migrating to Pipeline CRM cite a need for stronger visual pipeline management and built-in eSign capabilities that CentralStationCRM lacks
  • A reviewer noted data export felt limited to earlier Excel versions before a support correction clarified the platform supports current Excel exports

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

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

CentralStationCRM

People (Contacts)

maps to

Odoo CRM

Lead or Contact (split required)

1:many
Fully supported

CentralStationCRM People map to Odoo CRM Lead if the record has no attached Deal and is pre-qualification, and to Odoo CRM Contact if the record has an active Deal or has been worked by a sales rep. We apply a Deal-attachment heuristic during scoping: People with at least one non-closed Deal become Contacts; People with no Deal attachment and no contact history become Leads. The original CentralStationCRM record ID is preserved in a custom field csrm_id__c on both Lead and Contact for cross-system audit.

CentralStationCRM

Company

maps to

Odoo CRM

Contact (company type) or Company (res.partner model)

1:1
Fully supported

Odoo uses the res.partner model for both individual contacts and companies; companies are distinguished by the is_company flag set to True. CentralStationCRM Company records map to Odoo Partner records with is_company=True and child contact records created for each related Person. The company name, domain, and address fields transfer directly; website becomes the Partner's website field used as the dedupe key.

CentralStationCRM

Deal

maps to

Odoo CRM

CRM Opportunity

1:1
Fully supported

CentralStationCRM Deals map to Odoo CRM Opportunity. The deal stage maps to an Odoo CRM Stage, and we pre-create stages matching the source pipeline before migration. Deal value, expected close date, and assigned owner transfer to the Opportunity's planned_revenue, date_deadline, and user_id fields. CentralStationCRM Deals attached to a Person without a Company create Opportunities linked directly to the Contact; Deals attached to a Company link to a Company-level Opportunity.

CentralStationCRM

Lead

maps to

Odoo CRM

CRM Lead

1:1
Fully supported

CentralStationCRM's standalone Lead object maps directly to Odoo CRM Lead. Lead status (new, contacted, qualified, lost) maps to Odoo's Lead Status field, and any lead score from CentralStationCRM custom fields transfers to a custom csrm_lead_score__c field on the Odoo Lead. If the destination Odoo instance has no CRM app installed, Leads migrate as Contacts in the base Odoo Contacts module.

CentralStationCRM

Activities (calls, meetings, notes)

maps to

Odoo CRM

CRM Activities (Phone Calls, Meetings, Notes)

1:1
Fully supported

CentralStationCRM Activity records map to Odoo CRM Activity records linked to the migrated Lead or Contact via res_id and res_model. Activity type (call, meeting, note) maps to Odoo's activity_type_id; title becomes the activity's summary; description becomes the note body. Odoo allows one activity type per record, so multi-type CentralStationCRM activities on a single date are split into individual Odoo activity records.

CentralStationCRM

Tags

maps to

Odoo CRM

Tags

1:1
Fully supported

CentralStationCRM's flat tag vocabulary maps to Odoo CRM Tags (crm.tag model). Tags are applied to Leads and Opportunities via crm.tag.rel. The tag vocabulary transfers as-is; Odoo supports unicode tag names so German-language tags from CentralStationCRM import without transformation. Tags with special characters (e.g., ampersands) are sanitized to Odoo's allowed character set.

CentralStationCRM

Custom Fields

maps to

Odoo CRM

Custom Fields (ir.model.fields)

lossy
Mapping required

CentralStationCRM tenant-defined custom fields have no fixed schema and require explicit mapping to Odoo custom fields. We discover all custom fields at the source during scoping, create matching custom fields on the appropriate Odoo model (res.partner, crm.lead, crm.lead) using Odoo's Settings > Technical > Fields interface or XML data, and map each field's type (text, number, date, select) to the closest Odoo field type before migration begins. Custom fields must exist in Odoo before any data containing them is imported.

CentralStationCRM

Tasks

maps to

Odoo CRM

Project Tasks or CRM Activities

1:1
Mapping required

CentralStationCRM Tasks attached to People or Deals map to Odoo CRM Activities (activity type Task) linked to the parent Contact or Opportunity. Task title, due date, and status (open/done) transfer directly. Completed state from CentralStationCRM maps to Odoo's activity's completed status with the completion date preserved. If the destination Odoo instance uses the Project app for task management, tasks attach to a default project created during migration.

CentralStationCRM

Offers

maps to

Odoo CRM

Sale Order (Quotation)

1:1
Mapping required

CentralStationCRM Offers map to Odoo Sale Orders in Quotation state. Offer line items (product, quantity, unit price, discount) map to Odoo sale.order.line records linked to the Sale Order. Offer totals, tax amounts, and validity dates transfer to the corresponding Sale Order fields. Because CentralStationCRM Offers are standalone and not tied to Odoo's product.price.list model, we create Product records during migration for any Offer line items referencing unnamed products.

CentralStationCRM

Addresses (nested child records)

maps to

Odoo CRM

Contact Addresses (res.partner address fields)

1:1
Fully supported

CentralStationCRM addresses live as nested child records fetched via GET /api/people/{id}/addrs.json and are not included in the parent Person record. We traverse each nested address route during export, then write address fields (street, city, zip, country) to the Odoo Partner's address fields (street, city, zip, country_id). Multiple addresses per contact create Odoo Contact records of type contact linked as children of the primary company Partner.

CentralStationCRM

Owner

maps to

Odoo CRM

User

1:1
Fully supported

CentralStationCRM Owners map to Odoo Users by email match against the destination Odoo instance's res.users table. Any Owner without a matching Odoo User is held in a reconciliation queue for the customer's admin to provision before record import proceeds. Odoo Users must be active and have CRM app access assigned for Opportunities to route correctly.

CentralStationCRM

Deals (pipeline configuration)

maps to

Odoo CRM

CRM Stages

lossy
Fully supported

Each CentralStationCRM Deal pipeline maps to an Odoo CRM Stage sequence. We pre-create the stage names, sequence order, and fold status (whether the stage appears collapsed in Odoo's pipeline Kanban view) matching the source before Deals are imported. Stage probability percentages are stored on a custom stage_probability field per stage if the customer requires granular forecasting.

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.

CentralStationCRM logo

CentralStationCRM gotchas

High

50 req/10s rate limit causes 429 errors on fast exports

Medium

Nested routes required for child object exports

Low

No OAuth — API key only with header authentication

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

  • CentralStationCRM has no bulk export endpoint

    CentralStationCRM's API exposes only individual record endpoints (GET /api/people.json, GET /api/deals.json, etc.) with no bulk export or CSV dump capability. The platform enforces a 50 req/10s rate limit, which means large record sets require pagination with cooldown delays between requests. We track request counts during migration, throttle exports to stay within the limit, and honour Retry-After headers on 429 responses. Large migrations with over 5,000 records require multiple export sessions and careful delta-tracking to avoid silent truncation of the final pages.

  • Lead versus Contact split requires explicit business logic

    Odoo CRM separates pre-qualification Leads from post-qualification Contacts, unlike CentralStationCRM's unified People model. We apply a Deal-attachment heuristic during migration scoping to determine which CentralStationCRM People become Odoo Leads versus Contacts, but this heuristic is a proxy, not a definitive rule. Records without Deals in CentralStationCRM may be active customers that should become Contacts, not Leads. We flag all ambiguous records in a reconciliation report for the customer's sales manager to review and classify before final import.

  • Odoo custom fields must exist before import

    Odoo only allows import of fields that already exist in the database schema. If CentralStationCRM contains custom fields that have no Odoo equivalent, the customer must first create matching custom fields in Odoo via Settings > Technical > Fields or by installing a custom module before migration data is loaded. We provide a custom-field creation checklist during scoping that maps each CentralStationCRM custom field to an Odoo field type (char, text, float, date, selection, many2one) so that schema creation happens before any import begins.

  • CentralStationCRM workflows and automations do not migrate

    CentralStationCRM's custom workflows and email templates (Business plan and above) have no structural equivalent in Odoo. We do not migrate automation logic. We deliver a written inventory of every active CentralStationCRM workflow, its trigger conditions, actions, and a recommended Odoo Automated Actions or Studio configuration as a rebuild reference. The customer's Odoo administrator rebuilds these post-migration; Odoo's automated actions use a different trigger model (record creation, write, or on-change) that requires manual reconstruction.

  • Nested routes must be traversed individually for child records

    CentralStationCRM uses RESTful nested routes for 1-n relationships: addresses require GET /api/people/{id}/addrs.json, and activities require a similar nested pattern. We traverse each nested route during export so that every address and activity is captured with its parent reference. If a parent record exists but the child route fails (e.g., deleted or inaccessible address), we flag the incomplete relationship and log it for manual follow-up. This traversal adds one API request per parent record per child type, multiplying against the rate limit.

Migration approach

Six steps for a successful CentralStationCRM to Odoo CRM data migration

  1. Discovery and Odoo app provisioning review

    We audit the source CentralStationCRM account across all record types (People, Companies, Deals, Leads, Activities, Offers, Tasks, Tags) and custom fields. We pair this with an Odoo readiness review: confirming whether the CRM app is installed, what other Odoo apps are planned (Sales, Invoicing, Project), and whether the destination is Odoo Online, Odoo.sh, or on-premises. We also map the CentralStationCRM seat count against Odoo's per-user base platform fee plus per-app fees to produce a post-migration cost comparison document. The discovery output is a written migration scope with a per-record-type count estimate.

  2. Lead-Contact split rule definition

    We define the business logic for converting CentralStationCRM People to Odoo Leads versus Contacts. The default heuristic uses Deal attachment as the qualification proxy: People with at least one non-closed Deal become Odoo Contacts; People with no Deal and no activity history become Odoo Leads. We present this heuristic to the customer's sales manager for validation and adjustment before any data is exported. We also define the Odoo CRM Stage mapping (one Odoo stage per CentralStationCRM pipeline stage) and pre-create stages in the destination Odoo instance.

  3. Custom field schema creation in Odoo

    We create all required custom fields in Odoo before any data import begins. This includes mapping each CentralStationCRM custom field's data type to the closest Odoo field type, creating the fields on the correct Odoo model (res.partner for People, crm.lead for Leads, crm.lead for Opportunities), and documenting any fields that have no Odoo equivalent as candidates for Odoo Studio customization or exclusion from migration.

  4. Sandbox migration and reconciliation

    We run a full migration into an Odoo test database or Sandbox (for Odoo.sh) using a representative data sample. The customer's Odoo administrator reconciles record counts per object (People in, Leads in, Contacts in, Deals in, Activities in), spot-checks 20-30 records against the CentralStationCRM source for field accuracy, and validates that the Lead-Contact split heuristic produced the expected distribution. Any mapping corrections happen in this phase before the production migration begins.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Odoo Users (manual provisioning validated first), Companies (from CentralStationCRM Company records, with is_company flag set), Contacts and Leads (with the split heuristic applied and Company link resolved), Opportunities (with Contact/Lead link, Owner link, and Stage resolved), Activity history (calls, meetings, notes traversed via nested routes), Tasks, Offers (as Sale Orders in draft state), Tags (created first so they can be linked during import), and Custom Fields (applied during the relevant object import). Each phase emits a row-count reconciliation report before the next phase begins.

  6. Cutover, validation, and automation rebuild handoff

    We freeze CentralStationCRM writes during a defined cutover window, run a final delta migration of any records modified during the migration run, then set Odoo as the active system of record. We deliver the CentralStationCRM workflow and automation inventory document to the customer's Odoo administrator as a rebuild reference. We do not rebuild CentralStationCRM workflows as Odoo Automated Actions or Studio configurations within migration scope; that work is handled by the customer's admin or an Odoo implementation partner. We support a five-business-day hypercare window for reconciliation issues raised during the first week of live use.

Platform deep dives

Context on both ends of the pair

CentralStationCRM logo

CentralStationCRM

Source

Strengths

  • German servers and DSGVO compliance satisfy EU data-residency requirements out of the box
  • Free tier covers the full feature set with no artificial limitations, letting teams evaluate before paying
  • Per-user pricing is competitive: Small Office at €75/month for 10 users beats comparable Pipedrive seats
  • Ease of use is the primary design principle, reflected in consistent high ratings for interface simplicity
  • Customer support rated 5.0 by reviewers on Capterra, with fast response times cited across multiple accounts

Weaknesses

  • Feature set is intentionally minimal, lacking advanced automation, multi-currency, and granular role-based access controls found in Pipedrive or HubSpot
  • API has no bulk import endpoint; migrations must loop through individual records at the 50 req/10s rate limit
  • No native campaign or marketing automation features, making the platform unsuitable for marketing-led growth strategies
  • Smaller ecosystem means fewer third-party integrations than major CRM platforms, with Zapier as the primary integration path
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 CentralStationCRM 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

    CentralStationCRM: 50 requests within 10 seconds; returns HTTP 429 with Retry-After header when exceeded.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Straightforward migrations under 10,000 People, 2,000 Deals, and no custom objects land between three and five weeks. Migrations involving custom fields, large activity histories (over 100,000 records), or multi-app Odoo destinations (CRM + Sales + Invoicing) move to eight to twelve weeks because of nested route traversal time, custom field schema creation, and the Odoo Automated Actions rebuild planning. Odoo.sh deployments require an additional one to two weeks for Git-based deployment configuration.

Adjacent paths

Related migrations to explore

Ready when you are

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