CRM migration

Migrate from SortScape to Odoo CRM

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

SortScape logo

SortScape

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

100%

10 of 10

objects map 1:1 between SortScape and Odoo CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

SortScape is a scheduling and job-management tool built for lawn-care and landscaping businesses. Its data model centers on a client list, job records, and individual job runs — all exportable as CSV but without a public REST API. The platform stores client name, contact details, address, job type, scheduled date, assigned staff, and basic notes. There is no native mechanism for exporting workflow rules or automation logic. Odoo CRM models its sales process differently. The core object is crm.lead, which acts as both a lead record and an opportunity depending on its stage. Contacts are stored as res.partner records and linked to leads via a partner_id field. Opportunities carry an expected_revenue amount and a stage_id that maps to Odoo's pipeline stages. Scheduled activities attach to leads via crm.activity records. We migrate SortScape clients to res.partner, job records to crm.lead, and individual visit entries to crm.activity — preserving original create timestamps and owner assignments. SortScape's custom job-type labels and site-level address fields become custom fields on Odoo's crm.lead model. Scheduling rules and route-optimization logic have no Odoo equivalent and must be rebuilt using Odoo's built-in activity scheduling tools.

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

SortScape logo

SortScape

What's pushing teams away

  • iOS mobile app requires frequent restarts — at least one reviewer notes the iPhone app becomes sluggish and needs regular reloading to stay functional.
  • Mapping features missing from the mobile app — route visualization and map interactions are available on desktop only, forcing field staff to switch devices.
  • Export functionality locked to desktop — only administrators on desktop screens can export data, which creates friction for teams working primarily from mobile devices.
  • Limited platform ecosystem — SortScape integrates primarily with Xero, leaving businesses that use other accounting platforms with manual workarounds.

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

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

SortScape

Client / Customer

maps to

Odoo CRM

res.partner

1:1
Fully supported

SortScape client records map directly to Odoo's res.partner — the universal contact object. Client name maps to name, email to email, phone to phone. The client's primary address maps to street, city, state, zip via Odoo's contact address fields. Partners are imported first as the migration anchor since crm.lead records reference them.

SortScape

Job Record

maps to

Odoo CRM

crm.lead

1:1
Fully supported

SortScape job records map to crm.lead. The job title becomes the lead's name field. Job status (active, completed, cancelled) maps to Odoo's lead_stage stages: New Lead for active jobs, Won for completed, Lost for cancelled. Job amount maps to expected_revenue on the lead. The SortScape client is linked via the partner_id on the lead.

SortScape

Job Run / Visit

maps to

Odoo CRM

crm.activity

1:1
Fully supported

Individual job runs in SortScape — each scheduled visit at a job site — become crm.activity records attached to the parent crm.lead. The original visit date and duration are preserved in the activity's date and duration fields. Staff assignments are resolved by email match to Odoo user records. A visit note in SortScape maps to the activity's note body.

SortScape

Job Type / Property Label

maps to

Odoo CRM

Custom field on crm.lead

1:1
Fully supported

SortScape custom property labels (such as job_category, service_type, or property_size) have no native Odoo equivalent. We create custom fields on crm.lead using Odoo's ir.model.fields API and import the values from the SortScape CSV export. Label names are preserved verbatim as field technical names.

SortScape

Staff / Team Member

maps to

Odoo CRM

res.users

1:1
Fully supported

SortScape staff records are matched by email to Odoo res.users. If a staff member has no Odoo user account, their SortScape records are assigned to a fallback Odoo user designated during migration planning. SortScape's staff role or team label is preserved as a custom field on the user record for reporting.

SortScape

Job Site Address

maps to

Odoo CRM

res.partner (address fields) + crm.lead

1:1
Fully supported

SortScape stores a separate job-site address per job record. This address is stored as a mailing address on the crm.lead using Odoo's street/city/state/zip fields. The job-site address does not create a separate res.partner unless the site is also a billing client — this is flagged for admin review during migration.

SortScape

Xero Invoice Reference

maps to

Odoo CRM

Custom field on crm.lead

1:1
Fully supported

SortScape's Xero integration stores invoice reference numbers on job records. Odoo CRM has no native Xero sync field — the invoice reference is preserved as a custom Char field on crm.lead (x_xero_invoice_ref) for audit traceability. Odoo Accounting is the destination-side module for invoice rebuilds.

SortScape

Job Attachments / Photos

maps to

Odoo CRM

ir.attachment

1:1
Fully supported

SortScape file attachments on jobs are downloaded and re-uploaded to Odoo's ir.attachment table, linked to the corresponding crm.lead via res_model and res_id. Odoo's attachment size limit (default 25MB per file) applies. Inline images in job notes are extracted and stored separately.

SortScape

Job Notes / Internal Comments

maps to

Odoo CRM

mail.message on crm.lead

1:1
Fully supported

SortScape job notes and internal comments migrate to Odoo's mail.message thread on the crm.lead. Original create dates are preserved as mail.message create_date. Author is resolved by email match to Odoo users, with a system-user fallback if no match is found.

SortScape

Workflow / Automation Rules

maps to

Odoo CRM

Not migratable

1:1
Fully supported

SortScape's route-optimization rules, scheduling alerts, and internal notification logic have no Odoo equivalent and cannot be migrated. These must be rebuilt in Odoo using Odoo's activity-scheduling and server-action tools. We provide a written export of SortScape's automation logic as a rebuild reference for your Odoo admin.

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.

SortScape logo

SortScape gotchas

High

Export is desktop-only and admin-restricted

Medium

Route optimization settings do not persist as data

Medium

Xero invoice links break on migration

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

  • SortScape has no REST API — migration depends on CSV export completeness

    SortScape exposes data only through its web UI's CSV export function, and only administrator accounts can trigger exports. There is no documented public API for programmatic data retrieval. This means custom job properties, multi-year visit histories, and attachment URLs must be extracted manually from the CSV export. If SortScape's export truncates long text fields or drops multi-line notes, those gaps appear in Odoo unless pre-migration data cleanup is performed. We validate export completeness before building the migration map and flag any fields that cannot be sourced from the SortScape export.

  • Odoo collapses SortScape's job-run schedule into activity records — calendar integration requires rebuild

    SortScape's route-optimization and per-job-run scheduling features have no direct Odoo equivalent. Job runs migrate as individual crm.activity records attached to the parent crm.lead, but they do not populate Odoo's calendar or project-scheduling modules. Teams that rely on SortScape's visual day planner for route sequencing must rebuild that workflow in Odoo using the activity queue and calendar views. This is a manual rebuild item — not a data migration limitation we can close automatically.

  • Job-site addresses require partner split decisions during migration

    SortScape stores job-site addresses on job records, and many landscaping businesses have clients where the billing address differs from the job-site address. In Odoo CRM, each address lives on a res.partner record. We store the job-site address on the crm.lead's mailing address fields, but if your team needs separate partner records for each job site — for example, a property manager with multiple maintenance sites — Odoo requires creating multiple res.partner records from a single client. We surface this decision point before the migration runs and let your admin choose the address strategy.

  • Xero integration references become orphaned in Odoo CRM

    SortScape's native Xero integration links job records to Xero invoice IDs. When migrating to Odoo CRM, those Xero references are stored as a custom field (x_xero_invoice_ref) on crm.lead for audit traceability, but the link is broken in the sense that Odoo has no native Xero sync. If your team relies on viewing Xero invoice status from within the CRM record, that workflow must be rebuilt using Odoo's accounting module or a third-party Odoo-Xero connector from the Odoo App Store. We do not migrate the live Xero connection — only the reference data.

  • SortScape custom properties may use non-standard naming that requires Odoo developer access

    SortScape allows administrators to create custom property labels on job records. These property names — stored as column headers in the CSV export — may contain spaces, special characters, or long strings that cannot be used directly as Odoo field technical names. We sanitise these into valid Odoo field names (alphanumeric, underscores, not starting with a digit) but Odoo custom field creation via the UI has a 20-character name limit. Custom properties exceeding this limit require Odoo Studio or developer-mode field creation. We flag these during the pre-migration field audit.

Migration approach

Six steps for a successful SortScape to Odoo CRM data migration

  1. Audit and extract SortScape CSV exports

    FlitStack AI guides your SortScape administrator through exporting client lists, job records, job-run visit histories, and attachments from the SortScape web UI. We validate the export completeness against SortScape's record counts and flag any truncated fields, missing columns, or permission issues (only admin accounts can export). Custom property names are captured from the export headers for Odoo field creation planning.

  2. Create Odoo custom fields and resolve user accounts

    Before data moves, FlitStack AI creates custom fields on Odoo's crm.lead and res.partner models based on SortScape's custom property labels. Staff email addresses from SortScape are matched to Odoo res.users by email — unmatched staff are flagged so your Odoo admin can provision user accounts or assign a fallback owner before migration. The Odoo schema is locked once custom fields are created.

  3. Import res.partner records first, then crm.lead, then crm.activity

    Odoo requires parent records to exist before child records reference them. We sequence the migration: res.partner (clients) first, then crm.lead (jobs linked to partners via partner_id), then crm.activity (individual visits linked to leads via res_id). This foreign-key ordering prevents orphaned lead records. Original create timestamps from SortScape are preserved in custom datetime fields since Odoo's create_date is set at import time.

  4. Run a sample migration with field-level diff

    A representative slice — typically 100–300 records covering a range of job types, visit histories, and staff assignments — migrates into Odoo first. FlitStack AI generates a field-level diff comparing source CSV values against Odoo database values so your team can verify job-type custom field mapping, stage assignment, partner linking, and activity attachment before the full run commits. This dry‑run also checks data‑type compatibility and flags any missing required fields before the main import proceeds.

  5. Execute full migration with delta-pickup window

    The full migration runs against your Odoo instance. A delta-pickup window of 24–48 hours captures any new or modified SortScape records created during the cutover. Audit logs record every imported record's source ID, import timestamp, and Odoo ID. One-click rollback is available if reconciliation fails. Post-migration, we deliver a written summary of any SortScape automation logic that requires manual rebuild in Odoo.

Platform deep dives

Context on both ends of the pair

SortScape logo

SortScape

Source

Strengths

  • iOS-native app tailored for field service workers managing garden and lawn care jobs.
  • Direct Xero integration for real-time invoicing directly from the job schedule.
  • Route optimization feature reorders job runs to minimize travel time between sites.
  • CSV export available for both customer data and scheduled visits from the admin panel.
  • Australian-based customer support with fast response times cited in reviews.

Weaknesses

  • Mobile app (iOS) has stability issues requiring regular restarts according to user feedback.
  • Mapping and route visualization features are desktop-only, not available in the mobile app.
  • Data export restricted to administrators on desktop screens only.
  • No public API documented; integrations are limited to Xero and whatever the platform explicitly supports.
  • Limited scale for larger field service operations — most positive reviews describe solo or very small team usage.
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 SortScape 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

    SortScape: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most SortScape-to-Odoo migrations complete in 48–72 hours of clock time for under 10,000 records. The data extraction phase — preparing the SortScape CSV exports — can add 1–2 days if custom property audits or multi-year visit-history pulls are required. Larger setups with 50,000+ job records or multi-year activity histories extend to 7–10 days. Odoo custom field creation and user-resolver setup are the longest planning steps before data moves.

Adjacent paths

Related migrations to explore

Ready when you are

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