CRM migration
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
Source
Odoo CRM
Destination
Compatibility
11 of 12
objects map 1:1 between STEL Order and Odoo CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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
Odoo CRM
res.partner
1:1STEL 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
Odoo CRM
res.partner (contact)
1:1STEL 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
Odoo CRM
project.task
1:1STEL 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
Odoo CRM
crm.lead
many:1Where 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
Odoo CRM
sale.order
1:1STEL 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
Odoo CRM
account.move
1:1STEL 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
Odoo CRM
maintenance.equipment
1:1STEL 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
Odoo CRM
product.product
1:1STEL 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
Odoo CRM
product.pricelist
1:1STEL 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
Odoo CRM
res.partner, project.task, account.move (x_stel_*)
1:1STEL 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
Odoo CRM
res.users
1:1STEL 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
Odoo CRM
ir.attachment
1:1STEL 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.
| STEL Order | Odoo CRM | Compatibility | |
|---|---|---|---|
| STEL Order Customer | res.partner1:1 | Fully supported | |
| STEL Order Contact | res.partner (contact)1:1 | Fully supported | |
| STEL Order Job / Work Order | project.task1:1 | Fully supported | |
| STEL Order Job / Work Order | crm.leadmany:1 | Fully supported | |
| STEL Order Quote / Estimate | sale.order1:1 | Fully supported | |
| STEL Order Invoice | account.move1:1 | Fully supported | |
| STEL Order Asset / Equipment | maintenance.equipment1:1 | Fully supported | |
| STEL Order Product / Catalog Item | product.product1:1 | Fully supported | |
| STEL Order Price List | product.pricelist1:1 | Fully supported | |
| STEL Order Custom Fields | res.partner, project.task, account.move (x_stel_*)1:1 | Fully supported | |
| STEL Order User / Team Member | res.users1:1 | Fully supported | |
| STEL Order Notes / Attachments | ir.attachment1:1 | Fully supported |
Gotchas + challenges
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 gotchas
Offline-created records may not sync to cloud before export
Bulk import requires manual CSV/Excel formatting
Payment gateway references do not transfer as linked transactions
Odoo CRM gotchas
Odoo.sh version gating blocks assisted migrations from trial
Enterprise modules fail to install on Community after database restore
Custom module view inheritance breaks between Odoo major versions
Custom fields risk losing their application context on Community
API access for Community is gated behind the Custom Plan
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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
STEL Order
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between STEL Order and Odoo CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across STEL Order and Odoo CRM.
Object compatibility
All 8 core objects map 1:1 between STEL Order and Odoo CRM.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
STEL Order: Not publicly documented.
Data volume sensitivity
STEL Order doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during STEL Order to Odoo CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave STEL Order
Other ways to arrive at Odoo CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.