CRM migration

Migrate from STEL Order to Odoo CRM

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

STEL Order logo

STEL Order

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

92%

11 of 12

objects map 1:1 between STEL Order and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

STEL Order is a field-service management platform built around jobs, work orders, assets, quotes, and invoices for home-service and SME businesses across more than 100 countries. It stores customers, contacts, and job history in a flat, service-centric structure. Odoo CRM uses the res.partner model for both companies and contacts, splits leads and opportunities into crm.lead, and connects quotations to sale.order — all within an integrated ERP that can include inventory, accounting, and the maintenance module. We map STEL Order customers to res.partner, work orders to project.task or crm.lead, quotes to sale.order, and invoices to account.move. STEL Order's custom fields and asset records migrate as Odoo custom fields on res.partner and maintenance.equipment respectively. Original timestamps and assigned-technician owners are preserved via email-match resolution against Odoo users. All export runs through STEL Order's CSV/XLS import API on a scoped-read credential — your team continues working in STEL Order during cutover, with a 24–48 hour delta pickup window capturing in-flight records before the full load commits to Odoo.

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

STEL Order logo

STEL Order

What's pushing teams away

  • Limited international documentation and primarily Spanish-language support creates friction for non-Spanish speaking teams evaluating the platform for global use.
  • API documentation is not publicly detailed, making custom integrations and automated data pipelines difficult to implement without direct vendor support.
  • Small review sample size (4 verified reviews) makes it difficult to assess long-term reliability and identify systemic issues before committing to the platform.

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

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

STEL Order

STEL Order Customer

maps to

Odoo CRM

res.partner

1:1
Fully supported

STEL Order stores customers as named entities with addresses, phone numbers, and email. These map directly to Odoo res.partner (configured as company type). The STEL Order customer_code field maps to res.partner.ref for traceability. If the STEL Order record has multiple contacts, each contact becomes a separate res.partner of contact type linked via child_ids.

STEL Order

STEL Order Contact

maps to

Odoo CRM

res.partner (contact)

1:1
Fully supported

STEL Order contact records attached to a customer map to Odoo res.partner entries of type 'contact' with parent_id pointing to the res.partner company record. The contact's name, email, phone, and role/title fields map to the corresponding Odoo fields. Each contact's unique STEL Order ID is preserved in res.partner.ref for delta-run de-duplication.

STEL Order

STEL Order Job / Work Order

maps to

Odoo CRM

project.task

1:1
Fully supported

STEL Order's Jobs module stores scheduled work, technician assignments, status, and service type. We map jobs to Odoo project.task records under a dedicated 'Field Service' project. Job status (Pending, In Progress, Completed) maps to project.task stage values. Technician assignment resolves by email match to Odoo user records. Attachments and client signatures migrate as Odoo ir.attachment records linked to the task.

STEL Order

STEL Order Job / Work Order

maps to

Odoo CRM

crm.lead

many:1
Fully supported

Where STEL Order jobs represent recurring service at a customer site, those records also generate a crm.lead in Odoo so the sales team can track upsell and cross-sell opportunities tied to the same res.partner. The STEL Order job description and service type fields populate the crm.lead description and tag fields. This merged approach ensures both field service and CRM context are available on the same customer record.

STEL Order

STEL Order Quote / Estimate

maps to

Odoo CRM

sale.order

1:1
Fully supported

STEL Order quotes contain line items with product, quantity, price, and tax. These map to Odoo sale.order and sale.order.line records. The STEL Order quote status (Draft, Sent, Accepted, Lost) maps to Odoo sale.order state values (draft, sent, sale, cancel). STEL Order's custom quote template fields migrate as Odoo product.attribute.value lines on the sale order.

STEL Order

STEL Order Invoice

maps to

Odoo CRM

account.move

1:1
Fully supported

STEL Order invoices map to Odoo account.move records of type 'out_invoice'. Invoice lines map to account.move.line entries with account_id resolved from Odoo's chart of accounts based on the STEL Order product's income account. Payment state (Paid, Pending, Overdue) maps to Odoo's payment_state field. The STEL Order payment_reference field populates account.move.ref for bank reconciliation.

STEL Order

STEL Order Asset / Equipment

maps to

Odoo CRM

maintenance.equipment

1:1
Fully supported

STEL Order tracks customer equipment with warranty information, serial numbers, and maintenance history. These map to Odoo maintenance.equipment records linked to the res.partner (as customer location). Equipment warranty dates map to maintenance.equipment.warranty_date fields. Prior maintenance visits from STEL Order migrate as maintenance.request records linked to the equipment.

STEL Order

STEL Order Product / Catalog Item

maps to

Odoo CRM

product.product

1:1
Fully supported

STEL Order product catalog items (products, service descriptions, pricing) map to Odoo product.product records. STEL Order's product type (Product vs. Service) maps to product.product.type (consu vs. service). Product prices from STEL Order's price list map to product.product.list_price. The STEL Order internal reference field maps to product.product.default_code.

STEL Order

STEL Order Price List

maps to

Odoo CRM

product.pricelist

1:1
Fully supported

STEL Order custom pricing tiers and special customer prices map to Odoo product.pricelist records. Each STEL Order price list becomes a separate Odoo pricelist of type 'sale'. Pricelist item rules (product-specific, category-specific, or quantity-based discounts) map to product.pricelist.item records with the corresponding Odoo product or product.category as the applied domain.

STEL Order

STEL Order Custom Fields

maps to

Odoo CRM

res.partner, project.task, account.move (x_stel_*)

1:1
Fully supported

STEL Order custom fields on any entity are exported and recreated as Odoo custom fields with the x_stel_ prefix (following Odoo's x_ custom field convention). Custom pick-list fields require value-by-value mapping to Odoo selection fields or ir.model.fields.selection entries. Date, numeric, and text custom fields map directly with type preservation.

STEL Order

STEL Order User / Team Member

maps to

Odoo CRM

res.users

1:1
Fully supported

STEL Order team members (technicians, sales reps, admins) resolve by email match against Odoo res.users. Unmatched users are flagged before migration — your Odoo admin either creates the user in Odoo first or assigns a fallback user. Role and permission sets from STEL Order (Admin, Technician, Viewer) map to Odoo security groups (Sales / Technician / User) based on the team's workflow requirements.

STEL Order

STEL Order Notes / Attachments

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

STEL Order notes attached to jobs, customers, quotes, or invoices migrate as Odoo ir.attachment records linked to the corresponding Odoo model (project.task, res.partner, sale.order, account.move). File names, MIME types, and binary content are preserved. Inline images from STEL Order notes download and re-upload to Odoo's filestore under the same record context.

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.

STEL Order logo

STEL Order gotchas

High

Offline-created records may not sync to cloud before export

Medium

Bulk import requires manual CSV/Excel formatting

Medium

Payment gateway references do not transfer as linked transactions

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

  • Odoo crm.lead does not natively support multiple simultaneous opportunity links

    STEL Order allows a single job or customer record to link to multiple open work orders simultaneously. Odoo's crm.lead model links to one active opportunity at a time via the opportunity_id field on res.partner — creating a second opportunity for the same customer overwrites the first link. When migrating jobs that represent recurring service contracts, we create separate crm.lead records and flag the customer record with a custom field (x_stel_multi_opportunity) to alert the Odoo admin that manual opportunity management is required post-migration.

  • STEL Order custom fields require Odoo x_ prefix recreation and pick-list value mapping

    STEL Order's custom field editor lets users add properties to customers, contacts, jobs, and invoices with no formal schema export. We read these via the STEL Order API as key-value pairs on each record. Migrating them to Odoo requires creating matching custom fields with the x_stel_ prefix (Odoo's required prefix for user-defined fields). Selection fields with custom pick-list values in STEL Order must be mapped value-by-value to Odoo ir.model.fields.selection entries — the value labels do not auto-transfer. This adds 1–2 hours of mapping work per 10 custom fields.

  • STEL Order asset records need a custom Odoo maintenance module if Enterprise is not licensed

    STEL Order tracks equipment, serial numbers, warranty dates, and maintenance history as a first-class object. Odoo's maintenance.equipment model is part of the Maintenance app, which is included in Odoo Enterprise but not in Odoo Community without a paid upgrade or an OCA Community module. If the destination Odoo instance runs Community edition without the Maintenance app, we create a custom crm.lead extension (x_stel_asset_*) to hold the equipment data as reference fields, and advise that full equipment lifecycle management requires Odoo Enterprise or an OCA module install.

  • STEL Order date formats from European-localized instances require normalization before Odoo import

    STEL Order deployments in Spanish and European markets store dates in DD/MM/YYYY format by default, while Odoo's PostgreSQL backend expects YYYY-MM-DD ISO format for all date fields. We normalize all date values during the extract phase using the locale detected in the STEL Order export. Date fields with no separator (e.g., 20231225) are parsed using pattern detection before writing to Odoo. Date fields left null in STEL Order are set to False in Odoo rather than defaulting to today's date.

  • Odoo project.task stage sequences must be pre-created before job import to preserve Kanban order

    STEL Order job statuses (typically: Pending, Scheduled, In Progress, On Hold, Completed, Cancelled) map to project.task stage records that must exist in Odoo before the task import runs. We deliver a stage-creation playbook as part of the pre-migration schema plan. If the admin has not created matching stages, tasks land in the Odoo default stage and stage-entered timestamps from STEL Order are stored in x_stel_stage_date custom fields for post-migration re-sequencing.

Migration approach

Six steps for a successful STEL Order to Odoo CRM data migration

  1. Inventory STEL Order data and define migration scope

    We connect to STEL Order using scoped-read API credentials and export a full inventory of customers, contacts, jobs, quotes, invoices, assets, products, and price lists. We identify all custom fields added to each entity, count total record volumes per object, and assess data quality — flagging duplicate customer names, null email addresses, and orphaned job records that have no linked customer. This inventory produces the migration scope document and the record-count-based pricing confirmation before any data movement begins.

  2. Build Odoo target schema and stage creation playbook

    Before importing any data, we deliver a schema setup playbook for the Odoo instance. This includes: creating project.task stages that mirror STEL Order job statuses, configuring the Field Service project in Odoo project module, setting up product.product and product.pricelist records to receive STEL Order catalog data, and creating all x_stel_ custom fields on res.partner, project.task, sale.order, and account.move. For Odoo Community instances, we also document the OCA Maintenance module installation steps if assets are in scope.

  3. Resolve STEL Order users and technicians to Odoo res.users by email

    STEL Order team members (admins, technicians, sales reps) are matched to Odoo res.users by email address. Any STEL Order user without a corresponding Odoo account is flagged in the pre-migration report with the user's role in STEL Order. The Odoo admin either creates the user in Odoo before migration or assigns a fallback user — no task, quote, or invoice migrates without a resolved owner. For technicians with multiple email aliases, we use the primary email on file as the match key.

  4. Run a sample migration of 100–500 representative records

    We migrate a representative slice — typically 100–200 customers, 200–400 contacts, 50–100 jobs, 30–50 quotes, and 20–40 invoices — spanning a range of statuses, technicians, and custom field combinations. We generate a field-level diff comparing STEL Order source values against the Odoo destination values for every mapped field. The diff report is shared with the client for verification before the full migration run commits. Any field mapping adjustments are applied before proceeding.

  5. Execute full migration with delta-pickup window and post-migration audit

    The full migration loads all STEL Order records into Odoo following the sequence: res.partner (customers and contacts first), product.product and product.pricelist, project.task (jobs), sale.order (quotes), account.move (invoices), and maintenance.equipment (assets). A 24–48 hour delta-pickup window runs in parallel, capturing any records created or updated in STEL Order during the cutover period. We generate an audit log of every record inserted, updated, or skipped, and a one-click rollback script is available if reconciliation finds unexpected gaps. The final reconciliation report confirms record counts match per object and validates foreign-key integrity.

Platform deep dives

Context on both ends of the pair

STEL Order logo

STEL Order

Source

Strengths

  • Comprehensive FSM suite combining scheduling, invoicing, inventory, and CRM in a single platform
  • Offline-capable mobile apps for Android and iOS enable field technicians to work without internet
  • Bulk CSV and Excel import for rapid data onboarding from spreadsheets or legacy systems
  • Stripe and PayPal payment integration provides immediate online payment collection
  • Per-user pricing with 1-on-1 onboarding and 24/7 support offers accessible entry for small businesses

Weaknesses

  • Limited publicly available API documentation restricts custom integration development
  • Primarily Spanish-language documentation and support may hinder non-Spanish speaking users
  • Small verified review sample (4 reviews) makes platform reliability assessment difficult
  • File-based bulk import (CSV/Excel) lacks real-time sync capabilities for ongoing data movement
  • Equipment and asset management features are functional but less mature than dedicated CMMS platforms
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. All 8 core objects map 1:1 between STEL Order and Odoo CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across STEL Order and Odoo CRM.

  • Object compatibility

    A

    All 8 core objects map 1:1 between STEL Order and Odoo CRM.

  • 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

    STEL Order: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most STEL Order to Odoo CRM migrations complete in 48–72 hours of clock time for setups under 10,000 records across all objects. Migrations exceeding 50,000 records, or those that include asset history, multi-tier price lists, and over 20 custom fields, extend to 5–8 days. The longest phase is typically building the Odoo schema and stage-playbook before any data moves — that planning step runs concurrently with the STEL Order data inventory.

Adjacent paths

Related migrations to explore

Ready when you are

Move from STEL Order.
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