CRM migration

Migrate from Evatic to Odoo CRM

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

Evatic logo

Evatic

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

91%

10 of 11

objects map 1:1 between Evatic and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Evatic and Odoo CRM take fundamentally different approaches to service data organization. Evatic stores everything — contacts, companies, service contracts, and equipment units — in a single unified model with role-based associations and a flat contract structure. Odoo separates leads and contacts into crm.lead and res.partner, uses a Kanban pipeline keyed by stage_id on leads, and requires the Sale or Subscription app for contract line items. The migration carries Evatic's service contracts, equipment units, contacts, companies, and custom fields into Odoo's corresponding models, flags which records require the Odoo Subscription app for recurring billing lines, and surfaces Evatic workflow definitions for manual rebuild in Odoo's automation tools. FlitStack pulls data from Evatic Connect (ESH) via paginated JSON export, transforms and deduplicates records, then loads them through Odoo's XML-RPC API or CSV import. Owner resolution happens by email match against Odoo res.users, and a 24–48 hour delta pickup window captures any in-flight changes during cutover so your Odoo environment reflects Evatic's final state at go-live.

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

Evatic logo

Evatic

What's pushing teams away

  • Public review footprint is thin — Capterra lists only 2 reviews and SoftwareWorld coverage is shallow, making independent vendor evaluation difficult.
  • API documentation is gated behind partner portal access (docs.asolvi.com), slowing integration projects and self-service evaluation.
  • Pricing is sales-led with only a vague starting point of $175/month per SoftwareFinder; teams cannot model TCO without a vendor call.
  • DATEV-tight accounting flows lock Nordic/German-market customers into regional fiscal tooling that does not export cleanly when migrating to non-DATEV destinations.
  • Narrow industry focus — Evatic's MPS-centric object model is a strength for print but a liability for service organizations outside the office equipment vertical.

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

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

Evatic

Contact

maps to

Odoo CRM

res.partner

1:1
Fully supported

Evatic contact records map directly to Odoo res.partner. The contact name, email, phone, and address fields translate without transformation. Company associations in Evatic map as parent_id links in Odoo, establishing the partner hierarchy that Odoo's CRM and Sale apps rely on for contact-company relationships.

Evatic

Company

maps to

Odoo CRM

res.partner (company_type=company)

1:1
Fully supported

Evatic company records map to Odoo res.partner with company_type set to 'company'. The company name, website, industry, and employee count fields carry over directly. Child contacts from Evatic that are associated with the company link via the parent_id field on the Odoo partner record.

Evatic

Service Contract

maps to

Odoo CRM

crm.lead + sale.order

1:1
Fully supported

Evatic contract headers migrate as Odoo crm.lead records — the contract name becomes the opportunity name, contract value maps to planned_revenue, and contract status maps to stage_id per the value-mapping table. Contract line items require the Odoo Sale app to create sale.order records; we flag this dependency before migration runs.

Evatic

Contract Line Item

maps to

Odoo CRM

sale.order.line

1:many
Fully supported

Each Evatic contract line item splits into a separate Odoo sale.order.line record linked to the parent sale.order created from the contract header. Recurring billing lines are flagged as requiring the Odoo Subscription app — your team decides whether to install it or treat recurring lines as one-time sale.order.line entries.

Evatic

Unit / Equipment

maps to

Odoo CRM

product.product

1:1
Fully supported

Evatic equipment units migrate as Odoo product records with product_type='product'. Serial numbers and model information map to lot/serial tracking fields on the product. The contract link is preserved as a custom field (x_contract_id) on the product so the service history remains traceable to the originating contract.

Evatic

Service Activity

maps to

Odoo CRM

mail.message

1:1
Fully supported

Evatic service activities — technician notes, visit results, status-change logs — migrate as Odoo mail.message records attached to the parent crm.lead or res.partner. Original timestamps, activity type, and technician name are preserved as message metadata so the Odoo chatter reflects the full service timeline.

Evatic

Attachment / File

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

Evatic file attachments on contracts and equipment records are downloaded and re-uploaded to Odoo's ir.attachment table. Each attachment links to the corresponding res.partner, crm.lead, or product.product record via res_model and res_id. Original filenames and MIME types are preserved. Files over 100MB are flagged pre-migration.

Evatic

Owner / Salesperson

maps to

Odoo CRM

res.users

1:1
Fully supported

Evatic owner and technician IDs are resolved by email match against Odoo res.users. Unmatched owners are flagged before migration begins so your Odoo admin can either invite them to Odoo or assign their records to a fallback user. No record lands in Odoo without a resolved owner.

Evatic

Contact Role

maps to

Odoo CRM

res.partner.category

1:1
Fully supported

Evatic contact role values (technician, decision-maker, etc.) map to Odoo partner category tags (res.partner.category). Role values that have no direct Odoo category equivalent are stored as a custom tag created during migration so your admin can reorganize tags post-migration.

Evatic

Custom Fields (contracts, units, contacts)

maps to

Odoo CRM

x_ custom fields on crm.lead / product.product / res.partner

1:1
Fully supported

Evatic custom fields on contracts, equipment units, and contacts migrate as x_name custom fields on the corresponding Odoo model. The field definition is created via Odoo's XML-RPC API, and the data populates correctly. However, the field does not appear on form views until an admin places it via the Form Editor. FlitStack delivers a custom field placement checklist listing every migrated field, its target model, and suggested view position.

Evatic

Service Status

maps to

Odoo CRM

crm.lead stage_id

1:1
Fully supported

Evatic service status values (New / In Progress / Resolved / Closed) map to Odoo crm.lead stage_id values per the configured pipeline. The mapping is value-by-value based on the closest semantic match — Closed maps to Won or Lost depending on contract outcome; New maps to the first stage in the target pipeline.

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.

Evatic logo

Evatic gotchas

High

Public API schema and endpoint reference is gated

Medium

DATEV integration locks fiscal data into a regional format

Medium

Managed Print Services (MPS) object hierarchy adds non-standard objects

Low

Very small review corpus limits confidence in migration risk surface

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

  • Evatic API exports in paginated JSON batches that must be assembled before transformation

    Evatic Connect (ESH) returns data via paginated JSON payloads, sometimes splitting one logical object type across multiple API pages depending on the export configuration. FlitStack paginates through all available pages and assembles complete record sets before transformation begins. A separate risk: API token scope must include read access for every target object — contacts, contracts, units, and activities. If token scope is too narrow, those object types silently return zero records. We validate token permissions against all required objects before any data is pulled, flagging any scope gaps immediately so you can update the token configuration before the migration begins.

  • Odoo Community Edition has no native recurring billing model without the Subscription app

    Evatic service contracts with recurring billing lines — monthly maintenance fees, annual support charges, or per-visit billing — have no direct equivalent in Odoo CRM's base model. The Odoo base CRM treats all line items as one-time entries on a sale.order. Recurring contract lines require the Odoo Subscription app, which is a separate installation beyond the CRM module. We identify every Evatic contract that contains recurring line items during the audit phase and surface this as a pre-migration decision point: either install Odoo Subscription before migration or map recurring lines as one-time sale.order.line entries and build renewal workflows manually in Odoo.

  • Odoo's lead/contact split means contract status determines migration record type at migration time

    In Evatic, contacts and contracts are flat records with no distinction between a prospect and a customer. In Odoo CRM, every record entering the pipeline is a crm.lead — it is either type='lead' (unqualified prospect) or type='opportunity' (qualified deal with a linked partner). We determine the record type from the Evatic contract status at migration time: active or won contracts map as type='opportunity' with partner_id populated from the linked Evatic account; contracts with status='New' or no contract at all map as type='lead'. This means the same Evatic contact can appear as a Lead or an Opportunity depending on whether it has a linked signed contract — your sales ops team reviews the type assignment logic before the full run.

  • Odoo custom fields require manual UI placement after migration — they exist but are hidden

    When FlitStack creates x_name custom fields on Odoo models via the XML-RPC API, the field definition is stored in Odoo's ir.model.fields table and the data migrates correctly. However, Odoo does not automatically display new custom fields on form views — an admin must open the Form Editor for each model (crm.lead, product.product, res.partner), drag the field from the Custom Fields section onto the view, and save. We deliver a custom field placement checklist listing every migrated field, its target model, and suggested view position so your Odoo admin can place them without hunting through field lists.

  • Odoo self-hosted deployments require filestore path configuration before attachment re-upload

    Evatic file attachments — service reports, equipment photos, contract scans — are downloaded and re-uploaded to Odoo's ir.attachment filestore during migration. Odoo enforces a 100MB per-file limit (configurable in system parameters). Files exceeding this limit are flagged pre-migration for manual handling. For self-hosted Odoo deployments, the filestore path (ir_attachment.location) must be configured before migration runs — if it points to a local directory that does not exist or lacks write permissions, the attachment re-upload fails silently for some records. We check filestore write access during the pre-migration validation step.

Migration approach

Six steps for a successful Evatic to Odoo CRM data migration

  1. Validate Evatic API access and audit object inventory

    FlitStack authenticates to Evatic Connect (ESH) using your API credentials and runs a pre-export validation. We test read permissions for all target object types — contacts, companies, service contracts, units, and activities — and verify that the token scope covers every object. Any missing permissions are flagged with the specific objects affected so you can update the token configuration. We then pull a full inventory of record counts and field schemas from each object to build the transformation map.

  2. Map Evatic objects to Odoo models and create custom fields

    Using the object mapping plan, FlitStack generates the Odoo custom field definitions (x_name) for all Evatic custom fields on contracts and equipment units. Custom fields are created via Odoo's XML-RPC interface before data import begins. Your Odoo admin receives the custom field placement checklist and a draft value-mapping table for status-to-stage translation. The Odoo side schema must be confirmed before FlitStack begins the sample migration.

  3. Run sample migration with field-level diff

    A representative slice — typically 100–300 records per object type — migrates first covering contracts, units, contacts, and activities. We generate a field-level diff report showing source values, mapped values, any unmapped fields, and the applied status-to-stage mapping per record. You verify contract-to-lead type assignment, serial number placement, owner resolution rates, and custom field population before the full run commits. Any mapping adjustments are made before the final migration begins.

  4. Full migration with owner resolution and delta pickup

    The complete dataset migrates with owner resolved by email match to Odoo res.users. Contract status maps to crm.lead stage_id per the approved value-mapping table. File attachments re-upload to Odoo's ir.attachment table with original filenames and parent record links. A delta-pickup window of 24–48 hours captures any records created or modified in Evatic during the cutover. FlitStack applies write operations exclusively to Odoo — no changes are made to your Evatic environment during this phase.

  5. Post-migration audit and rollback readiness

    FlitStack generates a post-migration audit report: record counts per object, owner resolution rate, a sample of populated custom fields, and attachment re-upload success rate. If reconciliation identifies discrepancies — missing records, incorrect stage mapping, or owner resolution failures — one-click rollback reverts the Odoo environment to its pre-migration state so the migration can be re-run with corrected mappings. The rollback plan is confirmed before the full migration begins, not after.

Platform deep dives

Context on both ends of the pair

Evatic logo

Evatic

Source

Strengths

  • Industry-specific MPS data model (Asset / Unit / Meter Read / Contract / Work Order) maps directly to print dealer workflows.
  • Telemetry integration via device collection agents enables proactive preventive maintenance scheduling.
  • Integrated contract entitlement enforcement at the dispatch and service report stages.
  • Documented integrations with Salesforce (CRM), DATEV (accounting), Princity (ITSM), and ServiceNow.
  • Owned by Asolvi, a 30+ year specialist in the office print and equipment service vertical.

Weaknesses

  • Public review corpus is very small — Capterra lists only 2 reviews, limiting independent validation.
  • API documentation is gated behind partner credentials at docs.asolvi.com.
  • Pricing is sales-led with only a $175/month starting reference and no detailed tier breakdown.
  • DATEV accounting integration creates regional lock-in that complicates non-European migrations.
  • Industry narrowness — outside MPS/equipment service the data model is overkill or misaligned.
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 Evatic 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

    Evatic: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Evatic-to-Odoo CRM migrations complete in 48–72 hours of clock time for under 25,000 records. Larger setups with 100k+ records, multiple contract types, or heavy equipment custom field volumes extend to 5–7 days. The longest planning step is deciding whether to install the Odoo Subscription app for recurring contract lines — that is a pre-migration decision that affects the field mapping for all contract line items.

Adjacent paths

Related migrations to explore

Ready when you are

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