CRM migration

Migrate from Dispatch to Odoo CRM

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

Dispatch logo

Dispatch

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

91%

10 of 11

objects map 1:1 between Dispatch and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Dispatch is a field-service and service-coordination platform focused on scheduling technicians, managing work orders, and tracking job statuses for service businesses. Teams move from Dispatch to Odoo CRM when they need the open-source flexibility of an all-in-one ERP suite — combining CRM with inventory, accounting, and project management in a single PostgreSQL-backed system. The migration carries Dispatch customer records (contacts and companies), job history, and custom properties into Odoo's crm.lead and res.partner objects. The harder problems are mapping Dispatch's work-order and job-tracking records to Odoo's opportunity model, preserving multi-address location data in Odoo's contact model, and handling Dispatch's custom fields in Odoo's ir.model.fields framework. Odoo CRM does not have native work-order or asset-management modules in its base CRM — those require Odoo Field Service or a custom module. We surface this gap in the migration plan so your team can configure Odoo Field Service or rebuild job-tracking logic after migration. Workflows, automation rules, and scheduling logic in Dispatch do not migrate and must be rebuilt in Odoo using its action-server and automated-action tools. We export your Dispatch workflow definitions as a rebuild reference. The migration uses Dispatch's API for record extraction and Odoo's xmlrpc interface for bulk insertion, with a delta-pickup window capturing any in-flight job updates during cutover.

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

Dispatch logo

Dispatch

What's pushing teams away

  • Software upgrades and major feature changes have caused disruptions to existing workflows, with some users reporting that new versions alter functions they rely on daily.
  • Customers note that Dispatch costs more than they expected given the feature set, particularly when they need capabilities available only in higher tiers.
  • Some users report that Dispatch lacks the depth to function as a true CRM, making it difficult to capture and manage comprehensive customer relationship data over time.
  • The platform does not integrate natively with some third-party tools that businesses already use, leading teams to maintain duplicate records or manual workarounds.

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

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

Dispatch

Contact (Customer)

maps to

Odoo CRM

res.partner

1:1
Fully supported

Dispatch customer records map directly to Odoo res.partner. Email, phone, and address fields translate cleanly, while optional fields such as street2, latitude, and longitude are captured in matching or custom fields. Dispatch contacts without an assigned company land as individual res.partner records with partner_type='contact'. Multiple service locations per Dispatch customer require one res.partner per location, linked to the parent company via the partner relationship.

Dispatch

Company (Business Account)

maps to

Odoo CRM

res.partner (company)

1:1
Fully supported

Dispatch business accounts map to res.partner records with partner_type='company'. Odoo's parent_id field handles company hierarchies, and standard fields such as website, industry_id, and employee_count transfer directly. Dispatch company hierarchies (parent/child relationships) map using Odoo's Parent Partner field. Multi-location Dispatch companies split into one parent res.partner plus child partners per location, each inheriting the company's contact information and storing location-specific details.

Dispatch

Job / Work Order

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Dispatch jobs lack a native Odoo equivalent in base CRM. We map job records to crm.lead as opportunities — job name becomes lead name, job status maps to crm.lead stage_id values, and job description maps to crm.lead description. If Odoo Field Service is installed, jobs map to project.task instead.

Dispatch

Job Status / Stage

maps to

Odoo CRM

crm.lead.stage_id

1:1
Fully supported

Dispatch job stages (New, Scheduled, In Progress, Completed, Cancelled) map to Odoo CRM stage records via value-by-value mapping. Each Dispatch stage requires a corresponding Odoo stage created in Settings > CRM > Stages before migration. Stage probabilities and fold (won/lost) settings re-applied in Odoo CRM pipeline configuration.

Dispatch

Technician / Dispatcher User

maps to

Odoo CRM

res.users

1:1
Fully supported

Dispatch technicians and dispatchers map to Odoo res.users by email match. Dispatch user records carry scheduling and assignment data — Odoo user records carry security and workflow ownership. Unmatched Dispatch users flagged before migration; fallback owner assigned or new Odoo users created.

Dispatch

Service Location / Address

maps to

Odoo CRM

res.partner (address fields)

1:many
Fully supported

Dispatch stores multiple service addresses per customer (street, city, state, zip, GPS coordinates). Odoo res.partner holds one address per partner record. Multiple Dispatch locations split into separate res.partner records linked to the parent company via partner_type='contact' and address type (partner_address_type field). GPS coordinates stored as custom float fields on each location partner.

Dispatch

Job Notes / Attachments

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

Dispatch job notes and uploaded files migrate as Odoo ir.attachment records linked to the corresponding crm.lead (job). File size limits from Odoo apply (default 25MB per file). Inline images in notes extracted and rehosted as attachment records with res_model='crm.lead' and res_id referencing the migrated job.

Dispatch

Custom Fields (Job Properties)

maps to

Odoo CRM

ir.model.fields (custom)

1:1
Fully supported

Dispatch custom properties on jobs require Odoo custom fields created via Settings > Technical > Models before migration. Field type mapping: text → char or text, numbers → float or integer, dates → date or datetime, dropdowns → selection. Custom field creation in Odoo requires Enterprise edition or manual database access for Community. We deliver a custom-field setup plan before data lands.

Dispatch

Custom Fields (Contact Properties)

maps to

Odoo CRM

ir.model.fields (res.partner)

1:1
Fully supported

Dispatch contact-level custom properties map to custom fields on res.partner. Like job custom fields, these require pre-migration setup in Odoo's Technical Settings. Selection-type custom fields in Dispatch map to Odoo selection fields with exact option values preserved. We provide the field-definition JSON so your Odoo admin or consultant creates them before migration.

Dispatch

Activity History (calls, emails, notes)

maps to

Odoo CRM

mail.message / mail.activity

1:1
Fully supported

Dispatch call logs, email records, and notes map to Odoo mail.message records linked to the corresponding crm.lead or res.partner. Original timestamps preserved as mail.message.date. Dispatch activity owners map to Odoo res.users by email match. Odoo's messaging and activity tracking uses the 'mail' module — these migrate cleanly if Dispatch exposes activity history via API.

Dispatch

Workflows / Automation Rules

maps to

Odoo CRM

No equivalent (rebuild required)

1:1
Fully supported

Dispatch automation rules (job-status triggers, scheduling logic, notification rules) have no Odoo equivalent in base CRM. We export your Dispatch workflow definitions as a structured JSON document for your Odoo consultant to rebuild using Odoo's automated actions and action server. This is not a data migration — it is a documentation deliverable to support your post-migration configuration.

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.

Dispatch logo

Dispatch gotchas

High

API export endpoints gated by Dispatch360 tier

Medium

Work Order history split across open and closed states

Medium

Custom fields require discovery mapping before import

Low

Attachment extraction requires separate file-store access

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

  • Work-order and job-tracking records have no native equivalent in base Odoo CRM

    Dispatch's core value is scheduling work orders and tracking job status for field technicians. Odoo CRM's base module has crm.lead and res.partner but no work-order object. Jobs migrate as CRM leads — job name becomes the opportunity name, status maps to CRM stages. But Odoo's kanban view and reporting treat leads as sales opportunities, not service jobs. If your Dispatch use case is primarily service dispatch, Odoo Field Service (a separate Odoo app) provides project.task and map view. We flag whether Field Service is needed during discovery so the schema plan includes the right object model before data lands.

  • Multiple service locations per customer split across res.partner records

    Dispatch allows multiple service addresses per customer — a customer can have a primary office and three field sites, all tied to the same contact. Odoo res.partner holds one address per record. We handle this by splitting each Dispatch location into its own res.partner record with partner_type='contact', linked to the parent company via the partner relationship. GPS coordinates (latitude/longitude) store as custom float fields. This means Odoo's reporting counts each location as a separate contact — your Odoo team should configure a 'parent company' view to roll up multi-location customers.

  • Custom fields in Odoo require pre-migration setup in Technical Settings

    Dispatch custom properties on jobs and contacts map to Odoo custom fields, which must exist before data loads. In Odoo Enterprise, custom fields are created via Settings > Technical > Models. In Odoo Community, custom fields require direct database access or a technical consultant. We deliver a custom-field definition document (field name, type, selection options) after discovery so your Odoo admin creates all required fields before migration. Attempting to load data into non-existent custom fields silently drops those values during import.

  • Dispatch workflow automation does not migrate and must be rebuilt in Odoo

    Dispatch rules engines handling job-status triggers, scheduling notifications, and auto-assignment have no Odoo equivalent that migrates automatically. Odoo's automated actions (action server) handle similar logic but require manual configuration. We export your Dispatch workflow definitions as a JSON document describing each rule's trigger, condition, and action — your Odoo consultant uses this to rebuild automation in Odoo's Automation menu. This is a post-migration configuration step, not a data migration item.

  • Odoo Community vs Enterprise affects custom-field access and support

    If you target Odoo Community (free, self-hosted), custom-field creation requires a technical consultant with database access or module development. Odoo Enterprise includes the Technical Settings UI for non-developer custom-field creation. Migration pricing assumes Odoo Enterprise or pre-arranged technical support for Odoo Community. We confirm your Odoo edition during discovery and adjust the custom-field setup plan accordingly — Community users without a technical resource may need an additional consulting engagement before migration runs.

Migration approach

Six steps for a successful Dispatch to Odoo CRM data migration

  1. Run discovery against Dispatch API and schema export

    FlitStack AI connects to your Dispatch account via API using scoped read access to enumerate all objects: contacts, companies, jobs, work orders, notes, and custom properties. We export the full schema including custom field names, types, and pick-list values. This output becomes the source of truth for the Odoo object-model mapping plan. Your Dispatch account remains fully operational during this step — we only read data.

  2. Design Odoo schema and custom-field setup plan

    Based on discovery, FlitStack delivers an Odoo schema plan: which res.partner and crm.lead fields receive data, which require custom fields, and how Dispatch job stages map to Odoo CRM stages. If you run Odoo Community, we include the custom-field DDL statements your consultant runs against the database before migration. Odoo Enterprise users create fields via the Technical Settings UI. We also identify whether Odoo Field Service is needed for service-dispatch use cases.

  3. Resolve Dispatch users to Odoo res.users by email match

    Technicians, dispatchers, and contact owners in Dispatch map to Odoo res.users. We attempt email-based matching — if a Dispatch user email matches an existing Odoo user email, we link records. Unmatched Dispatch users are flagged in a pre-migration report. Your team either invites them to Odoo before migration or assigns their records to a fallback owner. No migrated record lands in Odoo without a valid user_id.

  4. Execute sample migration with field-level diff

    A representative slice migrates first — typically 100–500 records spanning contacts, companies, jobs, and activities. We generate a field-level diff showing source values against Odoo field values so you can verify stage mapping, location splitting, custom field population, and owner resolution. You approve the sample output before the full run commits. If anything looks incorrect, we adjust the mapping plan and re-run the sample.

  5. Run full migration with delta-pickup window

    Full migration loads all Dispatch records into Odoo using Odoo's xmlrpc bulk-create interface. A delta-pickup window (typically 24–48 hours) captures any Dispatch records modified during cutover so Odoo reflects Dispatch's final state at go-live. FlitStack generates a post-migration audit log listing every record migrated, any that failed, and why. One-click rollback reverts all migrated records if reconciliation uncovers issues. Your Dispatch account remains readable throughout — your team keeps working until you decommission.

Platform deep dives

Context on both ends of the pair

Dispatch logo

Dispatch

Source

Strengths

  • Visual drag-and-drop dispatch board for real-time job scheduling and technician assignment.
  • Automated customer notifications for appointment confirmations, reminders, and technician ETA updates.
  • Integrated asset and equipment tracking linked directly to work orders for field visibility.
  • Real-time technician status updates and GPS-based routing for service dispatch.
  • Tiered pricing from Starter to Enterprise accommodates growing field service businesses.

Weaknesses

  • API access and bulk data export capabilities are tier-gated, making large-scale migrations dependent on the customer's plan level.
  • Customers report that software upgrades occasionally disrupt established workflows and require relearning.
  • Cost increases at higher tiers for advanced features make the platform less competitive for small businesses on a budget.
  • Limited native CRM depth — Dispatch does not function well as a standalone customer relationship management tool.
  • Attachment storage and management on jobs has size and format restrictions that can complicate data export.
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 Dispatch 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

    Dispatch: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Dispatch-to-Odoo CRM migrations complete in 48–72 hours of clock time for under 50,000 records including jobs, contacts, and activities. Larger setups with 500k+ records or complex multi-location configurations extend to 5–7 days. The longest planning step is designing the Odoo custom-field schema and stage-mapping plan — we handle that before migration runs. Odoo Community custom-field setup requires your consultant to run DDL before data lands, which adds 1–3 days depending on custom field count.

Adjacent paths

Related migrations to explore

Ready when you are

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