CRM migration

Migrate from Crank CRM to Odoo CRM

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

Crank CRM logo

Crank CRM

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

75%

9 of 12

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

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Crank CRM to Odoo CRM is a migration from a demo-recording platform with optional CRM add-ons to a purpose-built CRM embedded within a full ERP suite. Crank CRM's core entities are screen-sharing and demo session records; its Contacts, Pipelines, and Deals exist only when CRM modules are activated and paid for separately. Odoo CRM uses a Lead-to-Opportunity model with configurable pipeline stages, per-user access controls, and tight integration to Odoo Sales, Accounting, and Inventory modules. We resolve the schema audit first because the existence of CRM objects in Crank cannot be assumed until scoping confirms which modules are active. Demo session records and recording URL references are preserved as CRM Log Notes or linked Documents in Odoo, not as native pipeline objects. Workflows, automations, and Sequences do not migrate; we deliver a written inventory for the customer's Odoo admin to rebuild using Odoo Studio Actions and Automated Actions.

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

Crank CRM logo

Crank CRM

What's pushing teams away

  • Per-feature pricing can grow unexpectedly as teams enable more modules, removing the cost predictability of flat per-seat plans.
  • Limited enterprise-grade features — workflow automation, custom objects, and BI reporting are thinner than at established CRMs like HubSpot or Pipedrive.
  • Small vendor footprint (Oxford-based, founded 2021) means a thinner partner ecosystem, fewer third-party integrations, and smaller review presence on G2/Capterra.
  • Marketing automation and email-campaign features are present but lighter than dedicated marketing CRMs, pushing growth-stage marketers toward Mailchimp, ActiveCampaign, or HubSpot.
  • Reporting and analytics depth is limited compared to established mid-market CRMs, constraining firms that need pipeline forecasting and revenue dashboards.

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

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

Crank CRM

Organization

maps to

Odoo CRM

Partner (res.partner)

1:1
Fully supported

Crank CRM Organizations map to Odoo res.partner records with partner_type = company. The organization name, domain, and any associated session metadata become Partner fields. We preserve the organization identifier as an external reference field for dedupe validation during import. Parent-company relationships in Crank map to the res.partner parent_id field in Odoo if a hierarchy exists.

Crank CRM

Contact

maps to

Odoo CRM

Partner (res.partner) with contact_type = contact

1:1
Fully supported

Crank CRM Contacts map to Odoo res.partner records with partner_type = contact, linked to their parent Organization Partner via the parent_id field. Email, phone, job title, and address fields migrate directly. Any custom fields detected during the schema audit are pre-created in Odoo via Odoo Studio metadata before Contact import begins. Demo interaction history from Crank is preserved as CRM Log Notes on the Contact record.

Crank CRM

Pipeline (if CRM module active)

maps to

Odoo CRM

CRM Team + Sales Process

lossy
Fully supported

Crank CRM Pipelines map to Odoo CRM Teams (crm.team) and the corresponding Sales Process configuration. Each Crank Pipeline becomes a separate CRM Team in Odoo with its own stage sequence and team member assignment. We create the stage names and probabilities from the Crank stage definitions during Odoo configuration, noting that Crank stage probability percentages map to Odoo stage probability fields.

Crank CRM

Deal (if CRM module active)

maps to

Odoo CRM

Opportunity (crm.lead)

1:1
Fully supported

Crank CRM Deals map to Odoo crm.lead records in the Opportunities view. Deal name becomes the Opportunity name, deal amount becomes the Expected Revenue field, and the Crank pipeline assignment determines the Odoo CRM Team and Sales Process. If Crank Deals have a contact or organization link, we resolve the Odoo partner_id reference before inserting the Opportunity record.

Crank CRM

Demo Session

maps to

Odoo CRM

CRM Log Note or Document attachment

lossy
Fully supported

Demo sessions are Crank CRM's primary data entity and have no native Odoo equivalent. We preserve session metadata (timestamp, viewer count, duration, sharing method, recording URL) as a CRM Log Note attached to the related Contact or Organization Partner record in Odoo. The session_id is stored as an external reference. If Odoo Document app is active, recording URL references are stored as ir.attachment records linked to the Partner. Customers should confirm during scoping whether Odoo Document management is part of their target configuration.

Crank CRM

Usage Log

maps to

Odoo CRM

CRM Log Note (mail.message)

1:1
Fully supported

Usage log entries from Crank CRM's API are mapped to Odoo mail.message records with subtype = comment, attached to the relevant Partner or Opportunity. Each log entry's timestamp, activity type (screen share, recording, email campaign), and outcome data become the note body text. We preserve the original usage event type in a custom field if Odoo Studio custom fields have been pre-created.

Crank CRM

Owner/User Assignment

maps to

Odoo CRM

User (res.users)

1:1
Mapping required

Crank CRM account owners map to Odoo res.users records by email match. We extract all distinct owner references from Contacts, Organizations, Deals, and Demo Sessions and resolve them against the destination Odoo User table. Any owner without a matching Odoo User is held in a reconciliation queue; the customer's Odoo admin provisions missing Users before record import resumes. Active and inactive status is preserved from the Crank owner record.

Crank CRM

Custom Field (CRM module active)

maps to

Odoo CRM

Custom Field (ir.model.fields)

1:1
Fully supported

Crank CRM custom fields on Contacts and Organizations migrate to Odoo custom fields on res.partner. We pre-create the Odoo field definition (field name, type, required flag, selection options for selection fields) via Odoo Studio or direct metadata before data import. Field type mapping follows: text properties become char or text fields, date properties become date fields, numeric properties become float or integer fields, and multi-select properties become selection fields in Odoo.

Crank CRM

Recording and Attachment

maps to

Odoo CRM

Ir.attachment

1:1
Fully supported

Crank CRM demo recordings are stored on CrankWheel's external infrastructure and referenced by URL in the session record. We extract the recording URL, re-upload the file to Odoo's ir.attachment storage (or a linked document system if the customer has Odoo Document management configured), and link the attachment to the related Contact or Organization Partner record. The migration carries a dependency on recording URL availability at export time; expired or deleted recordings result in broken link notes rather than data loss in the Odoo Partner record.

Crank CRM

Stage (if CRM module active)

maps to

Odoo CRM

Stage (crm.stage)

lossy
Fully supported

Crank CRM pipeline stages map to Odoo crm.stage records within the corresponding CRM Team's stage sequence. Stage name, display order, and probability percentage migrate from Crank to Odoo. Odoo requires at least one stage per team pipeline; if Crank has only a single stage, we create a default three-stage Odoo pipeline (New, Qualified, Won/Lost) to ensure the pipeline view renders correctly.

Crank CRM

Contact Address

maps to

Odoo CRM

Contact Address (res.partner)

1:1
Fully supported

Crank CRM contact addresses map to Odoo address fields on res.partner (street, city, state, zip, country). Multi-address contacts in Crank (billing, shipping, office) map to Odoo's address type distinction via the type field on partner address records. We normalize international address formats during the transform phase to match Odoo's expected format before insertion.

Crank CRM

Activity Timeline Reference

maps to

Odoo CRM

Mail Activity

1:1
Fully supported

Crank CRM engagement timestamps (demo start, demo end, last activity) are preserved as Odoo mail.activity records attached to the relevant Partner or Opportunity. Activity type is set to a custom type identifier derived from the Crank engagement type field. Activity date migrates from the Crank timestamp to the Odoo date_deadline and create_date fields to preserve the original sequence.

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.

Crank CRM logo

Crank CRM gotchas

High

No public bulk export API endpoint

Medium

Modular pricing means data scope is unknown until scoping

Medium

Recording storage is external to the CRM

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

  • Crank CRM has no public bulk export API

    Crank CRM exposes only per-record and session-level endpoints. There is no documented bulk export or batch read endpoint. We iterate through records sequentially, which extends migration timelines proportionally for accounts with high demo volumes or large Contact databases. We estimate session count during scoping and plan accordingly; accounts with over 10,000 demo sessions may require a longer migration window. We advise customers to confirm estimated record counts before migration begins so we can build the sequential extraction schedule.

  • CRM module activation status is unknown until schema audit

    Crank CRM uses modular à la carte pricing, meaning the existence of Pipelines, Deals, custom fields, and CRM-specific stages cannot be assumed. We conduct a schema audit via the API before migration begins to enumerate which objects and fields are present. If CRM modules are not active, we migrate only screen-sharing and contact data. Customers who believe they have CRM data but have not activated those modules will see a reduced migration scope, which we communicate before the migration contract is signed.

  • Demo sessions have no native Odoo equivalent

    Crank CRM's primary data entity is the demo session, which includes viewer count, duration, recording availability, and sharing method. Odoo CRM has no native demo session object; this metadata must be stored as CRM Log Notes, custom fields, or linked Documents. We document the chosen strategy during scoping and flag that the Odoo Activity Timeline will show demo interactions as notes rather than as structured events, which changes how the sales team interprets historical activity at the Contact and Partner level.

  • Recording URLs are external and may expire before migration

    Demo recordings are stored on CrankWheel's external infrastructure. We extract the recording URL at migration time, but CrankWheel does not guarantee permanent availability of demo recording URLs. We re-upload recordings to Odoo ir.attachment storage where possible, but if a recording URL has expired or the recording has been deleted from CrankWheel, the migration creates a log note indicating the broken link rather than data loss. Customers should confirm recording availability before the migration window.

  • Odoo workflows and automations do not migrate from Crank CRM

    Crank CRM's workflow and automation rules (if CRM modules were active) have no direct Odoo equivalent in terms of structure or trigger model. We do not migrate automations as code. We deliver a written inventory of every Crank CRM automation rule, including its trigger conditions, actions, and recommended Odoo Automated Action or Studio Action equivalent. The customer's Odoo admin rebuilds these in Odoo Studio post-migration. This is a manual step that is not included in standard migration scope.

Migration approach

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

  1. Schema audit and CRM module detection

    We connect to the Crank CRM API and enumerate all active objects, fields, and CRM modules for the target account. This step determines whether Contacts, Organizations, Pipelines, Deals, custom fields, and stage data exist before we commit to a migration scope. The audit output is a written schema map with object counts and field type definitions, shared with the customer before extraction begins. If no CRM modules are active, we adjust the scope to screen-sharing and contact data only and update the price estimate.

  2. Destination Odoo configuration planning

    We review the target Odoo database configuration: Odoo Online vs self-hosted, installed apps (CRM, Document, Project), existing CRM Teams, and any pre-existing custom fields. We document the custom field definitions that need to be created in Odoo before import (mapped from Crank CRM custom fields), the CRM Team and Stage configuration for each Crank Pipeline, and the contact-address normalization rules for international data. Odoo Studio or direct metadata deployment creates the custom fields in a Sandbox environment first for validation.

  3. Sandbox migration and reconciliation

    We run a full migration into a test environment using production-like data volumes. The customer reconciles record counts (Organizations in, Contacts in, Deals in, Demo Sessions logged), spot-checks 25-50 records against the Crank CRM source, and validates that recording URL references resolve correctly. Schema and mapping corrections happen in the test environment, not in production. The customer signs off the test results before we schedule the production migration window.

  4. Owner reconciliation and User provisioning

    We extract every distinct Crank CRM owner referenced on Contacts, Organizations, Deals, and Demo Sessions and match by email against the Odoo res.users table. Owners without a matching Odoo User go to a reconciliation queue. The customer's Odoo admin provisions any missing Users and confirms active or inactive status. Migration cannot proceed past this step because partner_id and user_id references must be valid at insertion time in Odoo.

  5. Production migration in dependency order

    We run production migration in dependency order: Partners (Organizations first as companies, then Contacts with parent_id resolved), CRM Teams and Stages (configuration records), Opportunities (with partner_id and team_id resolved), Demo Session metadata (as CRM Log Notes with external reference), Usage Logs (as mail.message records), and Recording attachments (as ir.attachment records). Each phase emits a row-count reconciliation report. We use Odoo's batch import API with rate-limit handling and exponential backoff for large record sets.

  6. Cutover, validation, and automation inventory handoff

    We freeze writes to Crank CRM during cutover, run a final delta migration of records modified during the migration window, then mark Odoo as the system of record. We validate record counts and spot-check key Accounts, Contacts, and Opportunities. We deliver the automation inventory document listing every Crank CRM workflow and automation rule with its trigger, conditions, and recommended Odoo equivalent. We do not rebuild automations in Odoo Studio inside the migration scope. We provide a one-week hypercare window for reconciliation issues raised by the sales team.

Platform deep dives

Context on both ends of the pair

Crank CRM logo

Crank CRM

Source

Strengths

  • Pay-per-feature pricing model starting at $7/user/month.
  • Integrations with Gmail, Google Workspace, Stripe, Google Calendar, Xero, and Evernote Teams.
  • Free trial requires no credit card, lowering evaluation friction.
  • Founded with a small-business focus and UK/European market orientation.
  • Email and chat support included in standard plans.

Weaknesses

  • Lighter automation and workflow tooling than established mid-market CRMs.
  • Thinner integration ecosystem and partner network as a recent (2021-founded) vendor.
  • Reporting and analytics features are limited compared to HubSpot or Pipedrive.
  • Per-feature pricing can scale unpredictably as modules are added.
  • Small G2/Capterra review presence makes peer validation harder.
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 Crank CRM 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

    Crank CRM: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Crank CRM 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 four and six weeks for accounts with no active CRM modules on Crank CRM (screen-sharing and contact data only). Migrations where Pipelines, Deals, custom fields, demo session metadata, and recording attachments all exist move to ten to fourteen weeks because the schema audit, Odoo custom field pre-creation, CRM Team and Stage configuration, and recording re-upload add significant complexity. Record volume, international address normalization, and the number of demo sessions to log as CRM Notes are the primary timeline drivers.

Adjacent paths

Related migrations to explore

Ready when you are

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