CRM migration

Migrate from CRM Runner to Odoo CRM

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

CRM Runner logo

CRM Runner

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

58%

7 of 12

objects map 1:1 between CRM Runner and Odoo CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from CRM Runner to Odoo CRM is a transition from an all-in-one field-service and office-management platform into a modular ERP-adjacent CRM with deep customization potential. CRM Runner bundles field-service operations (jobs, dispatch, GPS tracking) with CRM primitives under a single UI, while Odoo CRM presents as a bolt-on module within a broader ERP suite where CRM strength depends heavily on whether the business is already running Odoo's Sales or Accounting modules. We handle the data extraction from CRM Runner's UI-based export environment, map CRM Runner's Jobs to Odoo's Project and Task objects, preserve the Team Member-to-User relationship, and flatten the embedded communications history into Odoo Lead notes or chatter entries. Custom fields, IFTTT automations, and embedded payment records do not migrate as code; we document every automation as a written specification for manual rebuild in Odoo's studio and deliver time-clock data as a separate CSV package for payroll-tool ingestion. The migration timeline is shaped primarily by data volume, custom field count, and how many Odoo modules are being activated alongside the CRM module.

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

CRM Runner logo

CRM Runner

What's pushing teams away

  • Setup requires significant configuration time — the platform's broad feature set means more decisions to make before data is usable.
  • Reviews mention the learning curve for configuring workflows and permissions, particularly for teams without a dedicated admin.
  • Limited documentation and API visibility make it harder for technical teams to extend or integrate the platform beyond its built-in options.
  • As the business scales beyond 20–30 users, the fixed-seat model becomes less competitive versus CRMs with volume discounts or tier-based feature gating.

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

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

CRM Runner

Contact

maps to

Odoo CRM

Lead / Contact

1:1
Fully supported

CRM Runner Contact records map 1:1 to Odoo CRM Lead or Contact depending on qualification status. We extract contact name, email, phone, address, and custom fields during scoping. If the contact has associated Companies, we map to Odoo Contact under a Partner record; if the contact is a standalone prospect, it lands as a Lead. We preserve any CRM Runner custom field definitions as Odoo custom fields on the partner model using Odoo Studio before import.

CRM Runner

Company

maps to

Odoo CRM

Partner (company type)

1:1
Fully supported

CRM Runner Company records map to Odoo Partner records with the Company Type flag set. The Partner record becomes the parent of any related Contact records migrated in the previous phase. We use company name as the Odoo Partner name and preserve the domain, address, and any company-level custom fields. Parent-company hierarchies in CRM Runner map to Contact-type Partner records with parent_id set to the Company-type Partner.

CRM Runner

Job

maps to

Odoo CRM

Project + Task

1:many
Fully supported

CRM Runner Job is the primary field-service record carrying work order details, assigned team members, location, job status, and embedded time entries. We map each Job to an Odoo Project record, with individual job line items or sub-tasks as Odoo Task records within that Project. Job status maps to Project stage; assigned team members map to Odoo Project assignees. Jobs without sub-items map to a single Task under a Project. This split is the most significant structural transformation in the migration and requires careful stage and user mapping during schema design.

CRM Runner

Team Member

maps to

Odoo CRM

User

1:1
Fully supported

CRM Runner Team Members map to Odoo User records. We extract role, department, and permission level during scoping and map them to Odoo's access rights groups. CRM Runner's admin account (which does not count toward seat licenses) maps to an Odoo administrator account with full access rights. Team Members without a clear Odoo role are mapped to the internal user group pending admin assignment. We flag any Team Member records that reference inactive CRM Runner users for manual review.

CRM Runner

Task

maps to

Odoo CRM

Task

1:1
Fully supported

CRM Runner standalone Tasks map directly to Odoo Task records under the customer's Odoo CRM project or under a default pipeline project. Due date, assignee (via Team Member-to-User mapping), status, and description migrate 1:1. Custom fields on tasks map to Odoo custom fields on the project.task model.

CRM Runner

Communication: Call

maps to

Odoo CRM

Lead Note / Chatter Entry

lossy
Fully supported

CRM Runner call logs are discrete records attached to Contacts or Jobs. We flatten them into Odoo Lead chatter notes or Project Task chatter entries with a formatted note body (date, duration, disposition, recording reference if present). Call records that reference a Contact linked to a Job project get attached to the corresponding Project via Odoo's chatter thread. We do not create Odoo VoIP call records because that requires the Odoo VoIP module to be active; if VoIP is activated, we can adjust the mapping to use Odoo's crm.phone.call model.

CRM Runner

Communication: SMS

maps to

Odoo CRM

Lead Note / Chatter Entry

lossy
Fully supported

CRM Runner SMS threads map to Lead or Contact chatter entries as formatted notes with sender, recipient, timestamp, and message body. If the Odoo SMS module is active in the destination, we map to the Odoo sms.sms model instead. We preserve the SMS direction (sent/received) as a prefix in the note body for audit clarity.

CRM Runner

Time Entry

maps to

Odoo CRM

Separate CSV Package

1:1
Fully supported

CRM Runner time-clock records tied to Team Members and Jobs are payroll-adjacent and do not map cleanly to standard CRM objects. We export them as a separate structured CSV package with employee name, date, hours, job reference, and clock-in/clock-out timestamps. We recommend pairing the CRM migration with a dedicated payroll or accounting tool migration for this dataset rather than forcing it into Odoo CRM. If Odoo Timesheet module is active, we can map time entries to Odoo account.analytic.line records as a configuration option discussed during scoping.

CRM Runner

Pipeline

maps to

Odoo CRM

CRM Stage Configuration

lossy
Fully supported

CRM Runner pipeline stages map to Odoo CRM stage configuration within the CRM pipeline view. We extract stage names, order, and any custom stage logic during scoping and replicate them in Odoo's pipeline editor. CRM Runner's stage-level automation triggers (IFTTT-style) are documented as written specifications for Odoo Studio automated action rebuild. Stage probability values map to Odoo's probability field if they exist in CRM Runner.

CRM Runner

Custom Field

maps to

Odoo CRM

Custom Field (Studio)

lossy
Fully supported

CRM Runner custom fields on Contacts, Companies, and Jobs are extracted during scoping and recreated as Odoo custom fields using Studio before data import begins. We document the original CRM Runner field name, data type, and any picklist values as a mapping artifact. Custom fields that reference other CRM Runner objects (e.g., a job reference on a contact) are mapped using the CRM Runner record ID preserved as an external identifier in Odoo.

CRM Runner

IFTTT Automation

maps to

Odoo CRM

None (documented for rebuild)

1:1
Fully supported

CRM Runner IFTTT-style automations (trigger-action rules) have no documented export or migration path. We extract every automation during discovery, documenting trigger type, conditions, actions, and any dependent custom fields as a written specification. This document is handed off to the customer's Odoo admin for rebuild using Odoo Studio's automation builder or server actions. Automations are explicitly excluded from the migration deliverable and represent a post-migration implementation step with its own timeline.

CRM Runner

Payment / Transaction

maps to

Odoo CRM

Separate CSV Package

1:1
Fully supported

CRM Runner embedded payment records tied to Jobs or Contacts are accounting-adjacent and migrate best to a dedicated accounting tool. We export them as a separate structured CSV with transaction ID, amount, date, customer reference, job reference, and payment method. If Odoo Accounting is active in the destination, these can be imported as vendor bills or customer payments depending on direction; this requires coordination with the Odoo Accounting module 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.

CRM Runner logo

CRM Runner gotchas

High

No free trial and immediate billing on subscription

High

No publicly documented API or export endpoints

Medium

IFTTT automations must be manually rebuilt post-migration

Medium

Time entries and payment data require separate export treatment

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

  • CRM Runner has no API; extraction is UI-based

    CRM Runner has no publicly documented API, bulk export endpoint, or developer portal. All data extraction during scoping and migration uses UI-based export methods, which is slower than API-based extraction and depends on the data being accessible through the CRM Runner interface. We recommend requesting a data sample export during the pre-sale scoping conversation before committing to a subscription, so the data shape and any export constraints are understood before migration begins. Migrations involving large record volumes (over 50,000 total records) require extended extraction timelines because UI-based export does not parallelize the way API-based extraction does.

  • Jobs split into Project plus Task requires schema design

    CRM Runner's Job object is the central record for field-service operations, but Odoo CRM does not have a direct Job equivalent. Each Job must map to an Odoo Project record with its work items as Odoo Tasks. This 1:N split requires pre-migration schema design: Odoo Project stages must be configured to match CRM Runner job status values, Odoo Tasks must have the necessary custom fields to carry job-specific data (location, service type, job notes), and Odoo's Project module must be activated before CRM migration begins. Skipping this schema design step results in data landing in Odoo without the structural context that Job records carry in CRM Runner.

  • IFTTT automations must be manually rebuilt in Odoo Studio

    CRM Runner's automation rules (trigger-action workflows configured in the UI) have no documented export format and cannot be migrated programmatically. We inventory every active automation during discovery and deliver a written specification — trigger type, condition logic, action sequence, and any custom field dependencies — so the customer's Odoo admin can rebuild them in Odoo Studio. This rebuild work is outside the standard migration scope and requires Odoo configuration familiarity. Automations that depend on CRM Runner's embedded communication data (e.g., trigger on inbound call) require the Odoo VoIP or SMS module to be active to have an equivalent event source.

  • Time entries and payments are not CRM objects in Odoo

    CRM Runner embeds time-clock records and payment transactions within Jobs and Team Members. Odoo CRM does not store time or payment data as native CRM objects — those sit in Odoo Timesheet and Odoo Accounting respectively. We export time entries and payment records as separate CSV packages for downstream payroll or accounting ingestion rather than forcing them into the CRM. If the customer plans to activate Odoo Timesheet or Odoo Accounting alongside CRM, we can map these records to the appropriate Odoo models, but this requires those modules to be licensed and configured before migration data loads begin.

  • Odoo CRM is a bolt-on module with ERP dependency

    Odoo CRM functions most effectively when the business is already running Odoo Sales, Accounting, or Project modules from the same Odoo database. As noted in community discussions, Odoo's strength is order management, inventory, and accounting, with CRM as a bolt-on. Businesses migrating CRM Runner to Odoo CRM as a standalone module (without activating Odoo Sales or Project) may find the CRM experience less feature-complete than a dedicated CRM like HubSpot or Salesforce. We raise this during scoping and confirm whether the customer is activating Odoo Project alongside CRM, which directly affects how we map the Job-to-Project transformation.

Migration approach

Six steps for a successful CRM Runner to Odoo CRM data migration

  1. Discovery and scoping

    We conduct a structured discovery session covering CRM Runner's object inventory (Contacts, Companies, Jobs, Team Members, Tasks, Pipelines), custom field definitions, IFTTT automation inventory, embedded communications volume, and time-entry and payment record counts. We also confirm the Odoo destination: which Odoo apps are active (CRM, Project, Timesheet, Accounting), which Odoo version (Odoo Online, Odoo.sh, or on-premise), and whether Odoo Studio is available for custom field creation. The discovery output is a written migration scope with object-level mapping, a record-count estimate, and a go/no-go on the UI extraction feasibility given the data volume.

  2. Data extraction from CRM Runner

    We perform UI-based data extraction from CRM Runner across all core objects. Contacts and Companies are exported as structured CSV or spreadsheet packages. Jobs are extracted with all associated sub-fields (status, assigned team members, location, notes) and are tagged with a unique CRM Runner record identifier for later cross-reference. Team Members are extracted with role, department, and permission level. Communication history (calls, SMS, chat) is extracted as discrete records with timestamps and content. Time entries and payment records are extracted as separate packages. Custom field definitions and pipeline stage configurations are documented as mapping artifacts.

  3. Odoo schema pre-creation and stage design

    We pre-create the Odoo destination schema before any data is imported. This includes activating the CRM and Project apps, creating custom fields on the res.partner model (Contacts and Companies), creating custom fields on crm.lead, configuring CRM pipeline stages to match CRM Runner pipeline stage names and order, and designing the Job-to-Project mapping with stage alignment. If Odoo Timesheet or Accounting is active, we create the necessary analytic account structure for time entry mapping. The schema is validated in an Odoo staging database before production migration begins.

  4. Sandbox migration and reconciliation

    We run a full migration into an Odoo staging environment using production-equivalent data volume. The customer's admin reviews record counts (Partners in, Leads in, Projects in, Tasks in), spot-checks 20-40 records against CRM Runner source data, and validates that the Project-Task hierarchy reflects the original Job structure. Any field mapping corrections, custom field gaps, or stage alignment issues are resolved at this stage. The customer signs off on the staging migration before production cutover is scheduled.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Partners (Company-type first, then Contact-type as children), then Leads (for unqualified prospect records), then Projects (from CRM Runner Jobs), then Tasks (from CRM Runner Job sub-items and standalone Tasks), then Team Members-to-User mapping, then communication history flattened into Lead and Project chatter. Each phase emits a row-count reconciliation report. Time-entry and payment CSV packages are delivered as separate artifacts for downstream payroll or accounting ingestion. CRM Runner's legacy record IDs are preserved as external identifiers on Odoo records for cross-system reference.

  6. Cutover, validation, and automation rebuild handoff

    We freeze CRM Runner write access during cutover, run a delta migration of any records modified during the migration window, then designate Odoo CRM as the system of record. We validate critical record relationships (Contacts under correct Partners, Tasks under correct Projects, Team Members assigned to correct Projects) and deliver the IFTTT automation inventory document to the customer's Odoo admin for studio rebuild. We support a five-business-day hypercare window for reconciliation issues. We do not rebuild CRM Runner automations as Odoo Studio actions inside the migration scope; that rebuild is a separate engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

CRM Runner logo

CRM Runner

Source

Strengths

  • Fixed 10-user base price simplifies budgeting for small teams versus per-seat scaling.
  • All-in-one platform consolidates field service, CRM, communications, and payments under one vendor relationship.
  • Built-in VoIP and SMS keep communication history attached to contact records without third-party integration.
  • GPS tracking and time-clock features are included for field-workforce management without add-on costs.
  • Online booking generates leads directly into the CRM pipeline, reducing manual entry friction.

Weaknesses

  • No publicly documented API limits or endpoints, making programmatic migration and ongoing integration speculative.
  • IFTTT-style automations are not exportable or migratable — all workflow logic must be manually rebuilt in the destination.
  • Setup and configuration complexity is a recurring theme in reviews, suggesting the platform rewards careful initial planning.
  • No free tier and no trial period — billing starts immediately upon subscription, increasing commitment risk.
  • Custom field and pipeline configuration lacks the flexibility of established CRMs like HubSpot or Salesforce.
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 CRM Runner 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

    CRM Runner: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 5,000 Contacts, 2,000 Companies, and 1,000 Jobs with no parallel Odoo ERP module activation. Migrations with large embedded communications histories (over 200,000 call or SMS records), extensive custom field sets, time-entry data for payroll migration, or a simultaneous Odoo Project and Accounting module setup move to seven to twelve weeks. The primary timeline driver is UI-based data extraction from CRM Runner, which is slower than API-based extraction and does not parallelize the way REST API extraction does.

Adjacent paths

Related migrations to explore

Ready when you are

Move from CRM Runner.
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