CRM migration

Migrate from Simple Sales Tracking to Odoo CRM

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

Simple Sales Tracking logo

Simple Sales Tracking

Source

Odoo CRM

Destination

Odoo CRM logo

Compatibility

67%

8 of 12

objects map 1:1 between Simple Sales Tracking and Odoo CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Simple Sales Tracking to Odoo CRM is a structural upgrade from an entry-level flat-rate CRM to an open-source ERP platform whose CRM module is one application in a 30-plus application suite. Simple Sales Tracking uses a single Contact object model with unlimited pipeline customization; Odoo CRM splits unqualified prospects into crm.lead records and qualified buyers into crm Opportunity records attached to a res.partner Account. We resolve that split by querying the Contact's status in Simple Sales Tracking, designate the appropriate Odoo lead.scoring fields, and preserve the original stage names as tags on the imported Opportunity. The lack of a bulk export API in Simple Sales Tracking requires paginated iterative extraction; we checkpoint progress between page fetches and handle mid-export session timeouts gracefully. We do not migrate workflows, BCC Email automations, or Commission Tracking rules as code. We deliver a written inventory of Simple Sales Tracking automations with recommended Odoo Studio equivalents for the customer's admin to rebuild post-migration.

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

Simple Sales Tracking logo

Simple Sales Tracking

What's pushing teams away

  • Lack of native integrations with email platforms, calendars, and accounting tools forces teams to maintain workarounds that break over time.
  • No built-in marketing automation, email sequences, or lead scoring means the platform does not scale as the team grows beyond reactive tracking.
  • File storage capped at 1 GB across all users creates a hard ceiling for teams that rely heavily on document attachments.
  • Limited reporting depth compared to mid-market CRMs leaves sales managers without the drill-down analytics needed for pipeline reviews.
  • Absence of a public API changelog or versioned endpoints raises concerns about long-term data portability and integration stability.

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 Simple Sales Tracking objects map to Odoo CRM

Each row shows how a Simple Sales Tracking 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.

Simple Sales Tracking

Contact

maps to

Odoo CRM

crm.lead (unqualified) or res.partner (qualified)

1:many
Fully supported

Simple Sales Tracking Contacts with no associated Opportunity or a pipeline status of New/Prospect map to Odoo crm.lead. Contacts with a closed-won or closed-lost Opportunity map to Odoo res.partner as a customer Contact record. We query the Simple Sales Tracking Opportunity table for each Contact to determine the split, preserving the original contact status in a custom char field sst_original_status__c on the Odoo lead or partner record. Email, phone, address, and custom Contact fields migrate to the corresponding crm.lead or res.partner fields.

Simple Sales Tracking

Opportunity

maps to

Odoo CRM

crm.lead

1:1
Fully supported

Simple Sales Tracking Opportunities map to Odoo crm.lead records in the Pipeline Kanban view. The Opportunity name becomes the lead title (name field), amount maps to expected_revenue, expected_close maps to date_deadline, and stage maps to stage_id with probability recalculated to Odoo's stage probability percentages. Owner assignment from Simple Sales Tracking resolves to Odoo user_id via email match against res.users.

Simple Sales Tracking

Account

maps to

Odoo CRM

res.partner

1:1
Fully supported

Simple Sales Tracking Accounts map to Odoo res.partner records with partner_type set to 'company'. The Account name becomes the partner's display name, industry maps to industry_id (Odoo's industry classification), website maps to website field, and address fields map to street, city, state_id, country_id, and zip. Contacts associated with the Account link to the parent res.partner via parent_id.

Simple Sales Tracking

Custom Sales Record Fields

maps to

Odoo CRM

Custom ir.model.fields

lossy
Mapping required

Simple Sales Tracking custom fields on Opportunities are inspected from a sample export or UI metadata during discovery. Each custom field maps to a new ir.model.field definition in Odoo with the appropriate field type (char, float, selection, date, etc.) created before the Opportunity import. Fields that represent monetary values map to monetary fields with a currency_id reference.

Simple Sales Tracking

Custom Pipeline Stages

maps to

Odoo CRM

crm.stage

lossy
Mapping required

Simple Sales Tracking pipeline stage names and their order are captured from the UI during discovery. Each stage maps to an Odoo crm.stage record in the correct sequence order with probability percentages mapped from the Simple Sales Tracking stage probabilities. Stages with no probability mapping receive a default probability based on position in the sequence. The stage_id assignment on crm.lead uses the named stage mapping established before migration.

Simple Sales Tracking

Appointments

maps to

Odoo CRM

calendar.event

1:1
Mapping required

Simple Sales Tracking Appointments map to Odoo calendar.event records with name, start_datetime, stop_datetime, duration, and location preserved. The linked Contact maps to the calendar.event's partner_ids (many2many to res.partner) and attendee records are created for each linked Contact. If the linked Contact has not yet been migrated, the appointment is held in a deferred queue until the Contact record is present in Odoo.

Simple Sales Tracking

Tasks

maps to

Odoo CRM

project.task

1:1
Mapping required

Simple Sales Tracking Tasks map to Odoo project.task records linked to the default CRM project (or a scoped project if tasks are pipeline-specific). Task name, date_deadline, user_id (assignee), and stage_id migrate. Completion status maps to Kanban stage columns. Note that Simple Sales Tracking task history (status-change log) does not migrate because the platform does not expose a task history API; only the current state transfers.

Simple Sales Tracking

Notes

maps to

Odoo CRM

mail.message (note subtype)

1:1
Mapping required

Simple Sales Tracking Notes attached to Contacts or Opportunities migrate as Odoo mail.message records with message_type = 'note'. Body content transfers as HTML. We resolve the parent record reference (res.partner for Contact-level notes, crm.lead for Opportunity-level notes) before inserting the note. Formatting and embedded file links in the original note may not preserve perfectly; we flag this in the migration report.

Simple Sales Tracking

Lead Sources

maps to

Odoo CRM

crm.lead.source

1:1
Mapping required

Simple Sales Tracking lead source labels (Campaign, Referral, Web, etc.) map to Odoo's crm.lead.source taxonomy. We create the source records in Odoo before the lead import if they do not already exist, preserving the original Simple Sales Tracking source name as the source label.

Simple Sales Tracking

Files and Attachments

maps to

Odoo CRM

ir.attachment

1:1
Mapping required

Files attached to Contacts, Opportunities, and Notes in Simple Sales Tracking are downloaded individually (the platform's 1 GB total storage cap limits total attachment volume) and re-attached in Odoo as ir.attachment records linked to the corresponding res.partner, crm.lead, or project.task. We maintain the original filename and attachment date. Large attachment sets may require Odoo filestore allocation planning.

Simple Sales Tracking

Users and Permissions

maps to

Odoo CRM

res.users

1:1
Mapping required

Simple Sales Tracking user records and role assignments export by email and role name. We map Simple Sales Tracking role names (Admin, Manager, Rep) to the closest Odoo access rights group (Sales / Sales Manager / Administration / Settings). The customer's Odoo admin provisions users in the destination before migration, and we link by email match. Any Simple Sales Tracking user without a matching Odoo user is flagged in the reconciliation report.

Simple Sales Tracking

Commission Tracking

maps to

Odoo CRM

Custom monetary field on crm.lead

lossy
Mapping required

Simple Sales Tracking Commission Tracking stores a percentage or fixed amount per Opportunity. We migrate this as a custom float field (commission_percentage or commission_amount) on the crm.lead record. Odoo does not have native commission tracking; the customer's admin must decide whether to use the base_commission module from the Odoo Apps store or implement a custom field and report for commission management.

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.

Simple Sales Tracking logo

Simple Sales Tracking gotchas

Medium

Trial import ceiling of 50 records masks true data volume

High

No public bulk export API requires iterative extraction

Medium

Custom field definitions are not exposed via a schema endpoint

Low

Activity Feed is a real-time stream with no historical query API

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

  • Unified Contact model requires an explicit split rule for Odoo's Lead-Opportunity schema

    Simple Sales Tracking uses one Contact object regardless of qualification status. Odoo CRM splits unqualified prospects into crm.lead and qualified contacts into res.partner attached to a crm.lead with an Opportunity. We define the split rule during scoping by checking whether each Simple Sales Tracking Contact has an associated Opportunity in a closed-won or active stage (maps to Odoo crm.lead in an open stage) versus no Opportunity (maps to Odoo crm.lead in a New stage). Skipping this step produces crm.lead records without a clear pipeline placement or res.partner records that should have remained as open leads.

  • No bulk export API forces iterative paginated extraction with undocumented rate limits

    Simple Sales Tracking exposes individual record endpoints but documents no bulk export endpoint. For migrations exceeding a few hundred records, we implement paginated polling against each object endpoint. The platform has no public rate limit documentation, so we use conservative request pacing (one request per two seconds) and checkpoint progress between page fetches. Mid-export session timeouts require a resumption strategy that we validate before production migration. Large attachment sets may exhaust the 1 GB account storage ceiling before extraction completes, which we flag during discovery.

  • Custom field definitions have no schema endpoint — discovery requires UI metadata inspection

    Simple Sales Tracking allows users to define custom fields on Opportunities and Sales Records but exposes no API schema endpoint to retrieve these definitions programmatically. We address this by requesting a screen capture of the custom field configuration page during discovery, then cross-referencing a sample API response against the captured definitions to build the complete field map. If the customer cannot provide the configuration screenshot, we inspect a full export to infer field names and types, which adds scope to discovery.

  • Commission Tracking migrates as a data field, not an active calculation engine

    Simple Sales Tracking's Commission Tracking feature calculates expected commission per Opportunity based on percentage rates set per account or globally. Odoo CRM has no native commission calculation module in the base CRM install. We migrate the commission percentage and amount as static custom fields on the crm.lead record, preserving the historical data. Active commission calculation (triggering payouts when a stage changes to Closed Won) requires the customer's admin to configure Odoo's base_commission module or a custom module post-migration. We document this gap in the migration report.

  • Activity Feed has no historical query API and does not migrate

    Simple Sales Tracking's Activity Feed is a real-time event stream displayed in the UI rather than a queryable history table. No API endpoint returns historical feed entries. For customers who rely on the feed for audit trails or team activity visibility, we explain that historical feed entries cannot be migrated and recommend exporting any critical feed entries as Notes attached to the relevant Contact or Opportunity before the migration date. Odoo's crm.activity model provides a forward-looking activity tracking replacement post-migration.

Migration approach

Six steps for a successful Simple Sales Tracking to Odoo CRM data migration

  1. Discovery and data-volume audit

    We audit the Simple Sales Tracking account for record counts across Contacts, Opportunities, Accounts, Appointments, Tasks, and Notes, and request a screen capture of all custom field definitions and custom pipeline stage configurations. We estimate file attachment volume against the 1 GB account storage cap and flag if the account is near the limit. We also inventory active Commission Tracking settings, BCC Email automations, and daily reminder configurations to scope the automation inventory handoff. The discovery output is a written migration scope, field map, and stage mapping table.

  2. Odoo environment provisioning and schema pre-configuration

    We provision the target Odoo environment (Community edition or pre-configured Enterprise trial) and pre-create all custom fields on crm.lead and res.partner using Odoo Studio or direct field definition before any data import. Pipeline stages are created in the correct sequence with probability percentages matched from the Simple Sales Tracking stage definitions. The crm.lead.source taxonomy is populated with the Simple Sales Tracking lead source labels. If the customer uses Odoo multi-company or team structures, we configure sales teams and their access rights groups before user mapping.

  3. Sandbox migration and reconciliation

    We run a full migration into the Odoo environment using a representative data sample (all record types at 10-20% volume) to validate the field map, stage mapping, and parent-record lookups. The customer reviews 25-50 randomly selected records against the Simple Sales Tracking source and confirms the Lead-versus-partner split logic is accurate. Any mapping corrections are applied before production migration begins. Sandbox migration typically runs over one to two days.

  4. Owner and user reconciliation

    We extract every distinct Simple Sales Tracking user referenced on Opportunities, Tasks, and Appointments and match by email against the Odoo res.users table. Users without a matching Odoo account go to a reconciliation queue for the customer's admin to provision. Migration cannot proceed past the Opportunity import phase because user_id assignment on crm.lead requires an active res.users record.

  5. Production migration in dependency order

    We run production migration in record-dependency order: res.partner (Accounts as company partners first), crm.lead (Contacts as leads or directly as leads from Opportunities), custom field data on crm.lead, calendar.event records (with Contact attendee resolution), project.task records, mail.message note records, and ir.attachment records for files. Each phase emits a row-count reconciliation report before the next phase begins. The iterative API extraction from Simple Sales Tracking runs concurrently with Odoo import to minimize the total migration window.

  6. Cutover, validation, and automation inventory handoff

    We freeze writes in Simple Sales Tracking during cutover, run a delta migration of any records modified during the migration window, then confirm the Odoo environment is the system of record. We deliver the automation inventory document listing all Simple Sales Tracking BCC Email automations, daily reminders, and Commission Tracking configurations with recommended Odoo Studio equivalents (email templates, reminder rules, scheduled actions). We do not rebuild automations as Odoo Server Actions or Automated Actions inside the migration scope; that work is handled by the customer's admin or an Odoo implementation partner.

Platform deep dives

Context on both ends of the pair

Simple Sales Tracking logo

Simple Sales Tracking

Source

Strengths

  • Single flat price of $15/user/month with unlimited Leads, Opportunities, Contacts, Tasks, and Notes.
  • Custom Sales Record fields and custom Pipeline stage definitions allow small teams to model their exact process.
  • Multi-level user permissions support hierarchical sales team structures without requiring admin overhead.
  • Smart BCC Email integration and daily reminders provide lightweight automated nudges for reps.
  • Real-time activity feed surfaces team-wide updates without requiring a separate communication layer.

Weaknesses

  • No public rate limit documentation for the API makes it difficult to estimate migration throughput before scoping.
  • No documented bulk export endpoint means large record sets require iterative API polling during extraction.
  • File storage capped at 1 GB total per account limits the volume of document attachments that can be migrated.
  • No native email sequencing or marketing automation restricts the platform to reactive sales tracking only.
  • Language-specific API kits are limited to a small set; most integrations require custom HTTP wrapper code.
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 Simple Sales Tracking 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

    Simple Sales Tracking: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Simple Sales Tracking 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 Simple Sales Tracking to Odoo CRM data migrations

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

Can't find your answer?

Walk through your Simple Sales Tracking 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 5,000 Contacts, 2,000 Opportunities, and fewer than ten custom fields. Migrations with 10+ custom fields, Commission Tracking data that requires field-level remapping, appointment histories over 1,000 records, or a multi-stage pipeline with probability recalculation move to eight to fourteen weeks because of schema pre-configuration, stage probability mapping, and the iterative API extraction cadence from Simple Sales Tracking.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Simple Sales Tracking.
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