CRM migration
Field-level mapping, validation, and rollback between Field Force Tracker and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Field Force Tracker
Source
Odoo CRM
Destination
Compatibility
10 of 10
objects map 1:1 between Field Force Tracker and Odoo CRM.
Complexity
BStandard
Timeline
5–10 business days
Overview
Field Force Tracker stores work orders, customers, employees, products, quotes, and attachments across a field-service data model optimized for dispatch and scheduling. Odoo CRM models its world as crm.lead (leads and opportunities) and res.partner (contacts and companies), with a separate product catalog for items. These are fundamentally different schemas: FFT's job identifiers, job types, dispatch notes, and service-status values have no native Odoo CRM equivalent and require custom field creation. Customers map to Odoo partners, quotes map to sale.order, and attachments re-upload to Odoo's document management. Employee records require a decision: whether to store them as contacts, custom fields on a partner record, or a separate model. We handle the full technical translation: API extraction from Field Force Tracker, field-by-field mapping to Odoo custom fields, and load via Odoo's XML-RPC API or CSV import. Workflows, dispatch rules, scheduling automations, GPS coordinates, and route-planning data do not migrate — those require manual rebuild using Odoo's action rules and server actions. We export your FFT configuration definitions as a rebuild reference to accelerate that process.
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 Field Force Tracker 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.
Field Force Tracker
Work Order
Odoo CRM
crm.lead (Lead / Opportunity)
1:1FFT work orders translate to Odoo crm.lead records. Job identifiers, job types, dispatch notes, and service-status values from FFT become custom fields on crm.lead. Active FFT work orders map as Open leads; completed ones map as Won or Lost opportunities based on status.
Field Force Tracker
Customer
Odoo CRM
res.partner
1:1FFT customers with name, email, phone, and address become Odoo res.partner records. FFT's primary-contact flag maps to the partner's is_company toggle. Companies with multiple contact persons split into a parent partner and child contact partners linked via the partner_id field.
Field Force Tracker
Employee
Odoo CRM
res.partner (or custom model)
1:1FFT stores employees as a distinct object with scheduling and availability data. Odoo CRM has no native employee object — users live in the internal res.users model, separate from contacts. Employee records from FFT are migrated as partner contacts with a custom Employee_Type__c flag, while FFT scheduling and availability data becomes custom fields for reference.
Field Force Tracker
Quote / Proposal
Odoo CRM
sale.order (or crm.lead)
1:1FFT quotes and proposals map to Odoo sale.order records when they represent billable line items with quantities and prices. Status values (Draft, Sent, Accepted, Declined) map to Odoo's sale.order state field. Unpriced proposals map as crm.lead with custom Quote_Status__c field capturing the original FFT state.
Field Force Tracker
Product / Inventory Item
Odoo CRM
product.product (or product.template)
1:1FFT product and inventory records with SKU, name, unit price, and cost map to Odoo product.product (storable products) or product.template. Product categories map to Odoo's product.category hierarchy, preserving the original categorization structure. FFT stock-on-hand quantities require Odoo's inventory module installed and properly configured to display correctly in the system.
Field Force Tracker
Attachment / File
Odoo CRM
ir.attachment (Documents)
1:1FFT file attachments on work orders, customers, and quotes re-upload to Odoo's ir.attachment table and appear in the Documents app linked to the corresponding crm.lead or res.partner. Re-uploaded files retain original filenames and are linked by a custom FFT_Source_ID__c field for traceability.
Field Force Tracker
Workflow / Automation / Dispatch Rule
Odoo CRM
Odoo Action Rules (ir.actions.server)
1:1FFT scheduling rules, dispatch automations, and field-service workflows do not have an equivalent in Odoo CRM. They must be rebuilt as Odoo Action Rules and server actions. We export FFT workflow definitions as a structured JSON reference document to accelerate your Odoo admin's rebuild effort.
Field Force Tracker
Pipeline Stage
Odoo CRM
crm.stage (pick-list values)
1:1FFT work order status values (New, Scheduled, In Progress, On Hold, Completed, Cancelled) require value-by-value mapping to Odoo crm.stage pick-list entries. Odoo stages are per-pipeline and scoped by crm.team. Teams with different stage sets in FFT create multiple Odoo pipelines, each with their own stage configuration.
Field Force Tracker
Sales Team / Group
Odoo CRM
crm.team
1:1FFT organizational units and dispatch groups map to Odoo crm.team records. Team members in FFT are assigned as Odoo crm.team members (res.users linked via team membership). This preserves reporting boundaries and team structures across both systems, but requires careful FFT group-to-team mapping upfront to ensure all organizational hierarchies are correctly represented in Odoo.
Field Force Tracker
GPS / Location Data
Odoo CRM
Custom field on res.partner
1:1FFT captures technician GPS coordinates, customer site locations, and route planning data. Odoo CRM has no native geo-coordinate fields. We preserve FFT location data as custom Latitude__c and Longitude__c decimal fields on res.partner and Last_Known_Location__c as a text reference. Native map views require Odoo Field Service module.
| Field Force Tracker | Odoo CRM | Compatibility | |
|---|---|---|---|
| Work Order | crm.lead (Lead / Opportunity)1:1 | Fully supported | |
| Customer | res.partner1:1 | Fully supported | |
| Employee | res.partner (or custom model)1:1 | Fully supported | |
| Quote / Proposal | sale.order (or crm.lead)1:1 | Fully supported | |
| Product / Inventory Item | product.product (or product.template)1:1 | Fully supported | |
| Attachment / File | ir.attachment (Documents)1:1 | Fully supported | |
| Workflow / Automation / Dispatch Rule | Odoo Action Rules (ir.actions.server)1:1 | Fully supported | |
| Pipeline Stage | crm.stage (pick-list values)1:1 | Fully supported | |
| Sales Team / Group | crm.team1:1 | Fully supported | |
| GPS / Location Data | Custom field on res.partner1: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.
Field Force Tracker gotchas
API endpoints and authentication are not publicly documented
Data migration is quoted separately and ranges $500–$3,000
Industry-specific custom fields may not map directly to generic FSM objects
Invoice and attachment formats vary between FSM platforms
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
Audit FFT data landscape
We extract a full inventory of every record type in your Field Force Tracker account via the REST API: work orders, customers, employees, quotes, products, attachments, and custom field definitions. This inventory identifies record counts, custom field names and data types, attachment file sizes, and any FFT modules or add-ons that affect the data model. The audit output becomes the scope document and drives the Odoo-side custom field creation plan.
Configure Odoo CRM schema
We create every required custom field on the crm.lead and res.partner models before data arrives, using Odoo's developer mode or Odoo Studio. This includes FFT job type, priority, dispatch notes, GPS coordinates, actual start/end timestamps, and invoice status as custom fields with appropriate data types (Char, Selection, Text, Float, Date, DateTime). We configure pipeline stages to match FFT work-order status values and set up crm.team records mapped from FFT organizational groups.
Run sample migration with field-level diff
We extract a representative slice from FFT (typically 200–500 records covering work orders in each status, customers with attachments, and quotes) and load it into Odoo via the XML-RPC API. We generate a field-level diff comparing source FFT values against the migrated Odoo record values, highlighting any transformation issues, value-mapping gaps, or records that failed to resolve their foreign keys. You review the diff before the full run commits.
Execute full migration with delta-pickup window
The full dataset migrates in sequenced batches: partners first (customers and employees), then work orders linked to those partners, then quotes and products. A 24–48 hour delta-pickup window runs in parallel, capturing any records created or modified in FFT during the migration window. All operations log to an audit trail. If reconciliation identifies missing or duplicate records, one-click rollback reverts the Odoo state to the pre-migration snapshot.
Post-migration validation and workflow rebuild handoff
We run record-count reconciliation between FFT and Odoo for each object type, spot-checking critical fields (status, customer name, work order ID) against source records. We deliver the FFT workflow definitions as a structured JSON export and a written reference guide mapping each FFT rule to its Odoo action-rule equivalent so your Odoo admin can rebuild scheduling automations without reverse-engineering the source configuration.
Platform deep dives
Field Force Tracker
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 Field Force Tracker 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
Field Force Tracker: Not publicly documented.
Data volume sensitivity
Field Force Tracker 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 Field Force Tracker to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Field Force Tracker 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 Field Force Tracker
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.