CRM migration
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
Source
Odoo CRM
Destination
Compatibility
8 of 12
objects map 1:1 between Simple Sales Tracking and Odoo CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
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.
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 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
Odoo CRM
crm.lead (unqualified) or res.partner (qualified)
1:manySimple 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
Odoo CRM
crm.lead
1:1Simple 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
Odoo CRM
res.partner
1:1Simple 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
Odoo CRM
Custom ir.model.fields
lossySimple 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
Odoo CRM
crm.stage
lossySimple 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
Odoo CRM
calendar.event
1:1Simple 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
Odoo CRM
project.task
1:1Simple 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
Odoo CRM
mail.message (note subtype)
1:1Simple 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
Odoo CRM
crm.lead.source
1:1Simple 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
Odoo CRM
ir.attachment
1:1Files 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
Odoo CRM
res.users
1:1Simple 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
Odoo CRM
Custom monetary field on crm.lead
lossySimple 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.
| Simple Sales Tracking | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | crm.lead (unqualified) or res.partner (qualified)1:many | Fully supported | |
| Opportunity | crm.lead1:1 | Fully supported | |
| Account | res.partner1:1 | Fully supported | |
| Custom Sales Record Fields | Custom ir.model.fieldslossy | Mapping required | |
| Custom Pipeline Stages | crm.stagelossy | Mapping required | |
| Appointments | calendar.event1:1 | Mapping required | |
| Tasks | project.task1:1 | Mapping required | |
| Notes | mail.message (note subtype)1:1 | Mapping required | |
| Lead Sources | crm.lead.source1:1 | Mapping required | |
| Files and Attachments | ir.attachment1:1 | Mapping required | |
| Users and Permissions | res.users1:1 | Mapping required | |
| Commission Tracking | Custom monetary field on crm.leadlossy | Mapping required |
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.
Simple Sales Tracking gotchas
Trial import ceiling of 50 records masks true data volume
No public bulk export API requires iterative extraction
Custom field definitions are not exposed via a schema endpoint
Activity Feed is a real-time stream with no historical query API
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
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.
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.
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.
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.
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.
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
Simple Sales Tracking
Source
Strengths
Weaknesses
Odoo CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Simple Sales Tracking and Odoo CRM.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
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
Simple Sales Tracking: Not publicly documented.
Data volume sensitivity
Simple Sales Tracking 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 Simple Sales Tracking to Odoo CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Simple Sales Tracking
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.