CRM migration

Migrate from Variable Soft CRM to Odoo CRM

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

Variable Soft CRM logo

Variable Soft CRM

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

58%

7 of 12

objects map 1:1 between Variable Soft CRM and Odoo CRM.

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Variable Soft CRM to Odoo CRM is a file-based migration rather than an API-driven one, because VSCRM exposes no documented REST endpoint, authentication scheme, or rate limit. We work from the customer's CSV exports or database dumps, discover the field schema from the live data itself, and map VSCRM's Lead, Contact, Company, Deal, Pipeline, and Activity objects into Odoo's crm.lead, crm.team, and project.task models. VSCRM's distinction between Leads and Contacts maps to Odoo's lead model, where the same record carries lifecycle stages and converts to a partner (Contact) record with the original lead preserved. Deals migrate as crm.lead records with a won/lost state, and pipeline stage names are recreated as Odoo stage labels in the sales team view. Workflow automations do not export from VSCRM; we document every active automation during discovery and deliver a rebuild checklist for Odoo Automations. Odoo CRM starts at $24.90/user/month for the in-app CRM, or the customer can self-host via the open-source Community edition with per-module paid subscriptions.

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

Variable Soft CRM logo

Variable Soft CRM

What's pushing teams away

  • Geographic focus is India — non-Indian deployments have thinner support coverage, rupee pricing converts unfavorably, and SIM-based calling is India-specific.
  • Public review and community footprint outside Indian SaaS marketplaces is small, making peer benchmarking difficult for non-Indian buyers.
  • Custom integrations and API access are an add-on rather than included in base tiers, raising effective TCO for integration-heavy deployments.
  • API documentation is not publicly published with developer portal depth comparable to global CRMs like HubSpot or Pipedrive.
  • Branding split between variablesoft.com (parent) and vscrm.in (product) muddies discovery and procurement.

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

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

Variable Soft CRM

Lead

maps to

Odoo CRM

crm.lead

1:1
Fully supported

VSCRM Lead records map to Odoo crm.lead. The lead's name, email, phone, source, status, and owner assignment migrate directly. VSCRM lifecycle stage maps to Odoo's lead_stage_id (New, Qualified, Proposal, Negotiation, Won, Lost). VSCRM's custom lead fields are discovered from the export file and created as Odoo Studio custom fields on crm.lead before import. Owner resolution uses email matching against Odoo's res.users table.

Variable Soft CRM

Contact

maps to

Odoo CRM

res.partner

1:1
Fully supported

VSCRM Contact records map to Odoo res.partner with partner_type = 'contact'. The primary company association from VSCRM maps to the partner's parent_id (also res.partner as the Company record). VSCRM lifecycle stage on the contact becomes a custom field partner_lifecycle_stage__c in Odoo. VSCRM contact-phone and contact-email map to phone and email on res.partner. Contacts without a company association are imported as standalone res.partner records and linked to Deals separately.

Variable Soft CRM

Company

maps to

Odoo CRM

res.partner (company type)

1:1
Fully supported

VSCRM Company records map to Odoo res.partner with is_company = True. Company name becomes partner name, domain becomes website, industry maps to industry_id (Odoo's industry reference model), and employee_count maps to a custom field. Res.partner records with is_company = True are imported first so that child Contact records (is_company = False) can reference parent_id at insert time. This parent-child resolution is the critical ordering dependency for the Contact phase.

Variable Soft CRM

Deal

maps to

Odoo CRM

crm.lead (with type = 'opportunity')

1:1
Fully supported

VSCRM Deal records map to Odoo crm.lead with type = 'opportunity'. Deal value maps to planned_revenue, expected_close_date maps to date_deadline, owner maps to user_id, and stage maps to stage_id. The VSCRM pipeline name maps to crm.team (sales team) in Odoo. Open deals with no associated Contact or Company in VSCRM are imported as standalone leads first and reconciled against res.partner records after Contact import. Closed-won deals set active = False in Odoo after migration.

Variable Soft CRM

Pipeline

maps to

Odoo CRM

crm.team + stage configuration

lossy
Fully supported

VSCRM named pipelines map to Odoo crm.team records. Each team gets its own Kanban view with stage columns. VSCRM stage labels within each pipeline are recreated as crm.stage records under the corresponding team. Stages with no associated deals are created as empty container stages to preserve the full pipeline structure. The pipeline-stage mapping matrix is documented during discovery and deployed in Odoo before Deal import begins.

Variable Soft CRM

Deal Stage

maps to

Odoo CRM

crm.stage

lossy
Fully supported

VSCRM deal stages (New, Qualified, Proposal Sent, Negotiation, Closed Won, Closed Lost) map to crm.stage records with sequence ordering preserved. Probability percentages migrate from VSCRM to crm.stage.on_change_state values. VSCRM custom stage properties (stage-specific notification rules, owner-assignment triggers) do not carry over and are documented separately for Odoo Automations rebuild.

Variable Soft CRM

Activities: Calls, Emails, Tasks, Meetings

maps to

Odoo CRM

mail.message + project.task

1:many
Fully supported

VSCRM activities map to a combination of Odoo record types. Calls and meetings migrate as mail.message records with subtype 'mt_comment' and subtype设置 for call/discussion. Tasks migrate as project.task records linked to the parent crm.lead via project_id. Email content migrates to mail.message on the lead's chatter thread. All activity timestamps are preserved as write_date on the migrated record. Activity notes migrate as mail.message body text.

Variable Soft CRM

Custom Fields (Contacts, Companies, Deals)

maps to

Odoo CRM

Custom fields on res.partner and crm.lead

lossy
Fully supported

VSCRM custom fields on Contacts, Companies, and Deals are discovered from the export file header row. We create Odoo Studio custom fields of the closest matching type (Char, Text, Integer, Float, Date, Selection, Many2One) on the respective Odoo model before import. Multi-select or checkbox fields in VSCRM map to Odoo Char with comma-separated values or to selection fields if the set of values is enumerable and bounded.

Variable Soft CRM

Owner/User

maps to

Odoo CRM

res.users

1:1
Fully supported

VSCRM owner assignments on Leads, Contacts, Companies, and Deals map to Odoo res.users records by email address lookup. Any VSCRM owner without a matching Odoo user is placed in a reconciliation queue for the customer's Odoo admin to provision before Deal import. Owner display names are preserved in a custom field on the migrated record to prevent information loss if user provisioning is delayed.

Variable Soft CRM

Workflow Automations

maps to

Odoo CRM

No equivalent (flag for rebuild)

1:1
Not supported

VSCRM workflow automations are not exportable and have no portable format. We enumerate every active automation rule during the discovery call, recording the trigger event (record creation, field change, stage change), the condition logic, and the action taken. This inventory is delivered as a written handoff document for the customer's Odoo admin to rebuild using Odoo Automations. No automation logic migrates as code.

Variable Soft CRM

Tags / Labels

maps to

Odoo CRM

crm.tag

lossy
Fully supported

VSCRM tags on Leads, Contacts, and Deals migrate to Odoo crm.tag records. Tags are normalized (lowercase, stripped whitespace) and deduplicated before import. A tag's association with a specific record type (Lead vs Contact vs Deal) is preserved in a custom field on crm.tag so that tag filtering behaves consistently post-migration. Tags without any associated records are excluded from migration but noted in the handoff document.

Variable Soft CRM

Notes (free-text)

maps to

Odoo CRM

mail.message

1:1
Fully supported

VSCRM notes attached to Leads, Contacts, Companies, or Deals migrate as mail.message records on the Odoo record's chatter thread. The note body migrates as message_body in plain text; attachments migrate as ir.attachment records linked via res_model = 'crm.lead' or 'res.partner' and res_id = the migrated record ID. Note timestamps are preserved as message_date.

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.

Variable Soft CRM logo

Variable Soft CRM gotchas

High

No public REST API documentation exists

High

Workflow automations are not portable

Medium

Data model not externally documented

Medium

Free tier data portability is unclear

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

  • VSCRM has no public API — migration runs on exported data only

    Variable Soft CRM does not publish REST endpoints, OAuth2 or API key authentication schemes, or rate limits. We cannot build an API-driven pipeline to VSCRM. The migration runs from CSV exports or database dumps provided by the customer. We request the full export from VSCRM at the start of discovery, validate the record counts against VSCRM's reported figures, and surface any export gaps (omitted empty fields, missing related records, truncated timestamps) before writing to Odoo. If the customer's VSCRM free tier does not expose an export tool, we escalate to VSCRM support to confirm data availability before proceeding.

  • VSCRM workflow automations do not export and must be rebuilt manually

    VSCRM stores workflow rules server-side with no documented export or portability mechanism. Any email triggers, field-update automations, stage-change notifications, or assignment rules configured in VSCRM will not appear in the exported data file. We document every active automation during discovery by walking through the VSCRM automation interface with the customer's admin. We deliver a written inventory listing each automation's trigger, conditions, actions, and the equivalent Odoo Automations app configuration. The customer's Odoo admin rebuilds the automations post-migration. This is a manual step outside migration scope.

  • VSCRM Lead-Contact split must be designed before Odoo import

    VSCRM maintains separate Lead and Contact objects with distinct lifecycle stages on each. Odoo uses a single crm.lead model where leads can be marked as opportunities and converted to res.partner (Contact) records. We must decide at migration design time how to represent the VSCRM Contact object in Odoo — either as a crm.lead record with a contact-type flag or as a res.partner record directly. The decision affects how deal-contact associations resolve and whether historical contact-level activity appears in Odoo's chatter thread. We present both options to the customer during scoping and implement their chosen architecture before import begins.

  • Odoo's Lead-to-Contact conversion is irreversible

    When a crm.lead converts to a res.partner in Odoo, the original lead record is preserved but the conversion creates new associated records (address, opportunity) that cannot be automatically rolled back. If VSCRM contact records contain open deals or activity history that spans both the Contact and Deal objects, the conversion process in Odoo must be planned carefully to avoid duplicating activity records. We run a pre-migration analysis to identify contacts with attached deals and activity, then import them as crm.lead records with type='opportunity' first, preserving the full history in the lead record's chatter before any res.partner creation occurs.

  • Odoo stage IDs are environment-specific and must be recreated per environment

    Odoo stage IDs (crm.stage records) are database-primary-key values that differ between Odoo Online, Odoo.sh sandbox, and self-hosted instances. Pipeline stage mapping configured in a staging environment cannot be transferred by ID alone — stage_id values must be re-created in the production environment before Deal import. We document the stage creation sequence during sandbox migration and provide a setup script or step-by-step stage creation guide for the customer's admin to deploy in production before the production migration run.

Migration approach

Six steps for a successful Variable Soft CRM to Odoo CRM data migration

  1. Discovery and data export coordination

    We conduct a scoping call with the customer's VSCRM admin to enumerate the record types in scope (Leads, Contacts, Companies, Deals, Activities, Custom Fields), the approximate record counts per object, the active workflow automations, and the pipeline structure. We request the full CSV export or database dump from VSCRM, validate record counts against VSCRM's reported figures, and identify any export gaps (empty fields, missing relationships, truncated timestamps). We also confirm that the target Odoo instance is accessible, has the CRM app installed, and that the customer's admin has Odoo Studio access for custom field creation.

  2. Schema discovery and Odoo custom field creation

    We parse the VSCRM export file header row to discover field names, data types, and the presence of custom fields. We map each VSCRM field to the closest Odoo model and field type (Char, Text, Integer, Date, Many2one, etc.). Custom fields on VSCRM Contacts, Companies, and Deals are created in Odoo Studio before import begins. We design the Lead-Contact architecture decision (lead-first or partner-first) with the customer's input and document it in the mapping specification. Pipeline stages are pre-created in Odoo crm.team and crm.stage records with the correct sequence ordering.

  3. Sandbox migration and reconciliation

    We run a full migration into the customer's Odoo sandbox or staging environment using production-like data volume from the export file. The customer reconciles record counts (Leads in, Contacts in, Companies in, Deals in, Activities in), spot-checks 20-30 records against the VSCRM source for field accuracy and relationship integrity, and reviews the Lead-Contact split result. Any mapping corrections, field type adjustments, or custom field additions are made in the sandbox before production migration begins. No data is written to the production Odoo environment until sandbox sign-off.

  4. Owner and user provisioning validation

    We extract every distinct VSCRM owner (user_id or assigned_to field) from the export file and match by email against the Odoo res.users table. Any VSCRM owner without a matching Odoo user is placed in a reconciliation queue. The customer's Odoo admin provisions the missing users in Odoo (active for current owners, inactive for departed users). Migration cannot proceed past this step because user_id is a required foreign key on crm.lead in Odoo.

  5. Production migration in dependency order

    We run production migration in record-dependency order: res.partner records with is_company = True (Company records first), then res.partner records with is_company = False (Contact records with parent_id resolved), then crm.team and crm.stage (pipeline and stage configuration), then crm.lead records (Leads and Deals with type = 'opportunity'), then mail.message and project.task (Activity history), then crm.tag records, then ir.attachment records for migrated documents. Each phase emits a row-count reconciliation report before the next phase begins. The VSCRM source system is placed in read-only mode during the final cutover window.

  6. Cutover, delta pass, and automation handoff

    We freeze VSCRM writes at cutover, run a delta migration of any records modified during the migration window, then hand the Odoo instance to the customer as the system of record. We deliver the workflow automation inventory document to the customer's Odoo admin with step-by-step rebuild instructions for each automation in Odoo Automations. We support a five-business-day hypercare window to resolve post-migration reconciliation issues. Odoo Studio, Automations, and any Odoo.sh or self-hosted configuration remain the customer's admin's responsibility.

Platform deep dives

Context on both ends of the pair

Variable Soft CRM logo

Variable Soft CRM

Source

Strengths

  • SIM-based calling for reliable Indian local-number outbound.
  • Bulk WhatsApp messaging integrated natively.
  • Affordable rupee-denominated pricing for Indian SMBs.
  • User-defined custom modules without vendor engagement.
  • 250+ integrations advertised across mainstream business tools.

Weaknesses

  • India-centric — non-Indian deployments have thinner support and unfavorable currency conversion.
  • Limited public review and community footprint outside Indian marketplaces.
  • API access is an add-on, not included in base tiers.
  • Developer documentation is shallow compared to global CRMs.
  • Branding split between parent company site and product site.
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?

Moderate CRM migration. 5 of 8 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Variable Soft CRM and Odoo CRM.

  • Object compatibility

    C

    5 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

    Variable Soft CRM: Not publicly documented — typical SaaS limits assumed and confirmed during scoping..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Variable Soft 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 three and five weeks for accounts under 15,000 Contacts, 5,000 Deals, and a single-pipeline structure. Migrations with multi-pipeline structures, large activity histories (over 300,000 records), multiple VSCRM custom fields, or a complex Lead-Contact split design move to eight to twelve weeks because of Odoo Studio field creation iterations, pipeline stage configuration, and the manual automation rebuild planning. The timeline assumes VSCRM data export is accessible and complete at the start of discovery.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Variable Soft 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