CRM migration
Field-level mapping, validation, and rollback between Planfix and Odoo CRM. We move data and schema; workflows are rebuilt natively in Odoo CRM.
Planfix
Source
Odoo CRM
Destination
Compatibility
10 of 12
objects map 1:1 between Planfix and Odoo CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Planfix to Odoo CRM is a schema-first migration because Planfix lets teams rename almost every object label, so screen-level field names never match underlying API keys. We query Planfix field definitions via API at the start of every project, snapshot the workspace-specific schema, then map that schema to Odoo's typed CRM fields before any record import begins. Planfix Tasks, Projects, and Contacts migrate 1:1, but Planfix's Processes and Scripts reference Planfix-specific field IDs and action types that cannot be replayed in Odoo — we export their configuration as documentation for manual rebuild. We use Planfix's REST API with per-account auth tokens and fall back to the report-based CSV export when API pools are exhausted on lower tiers. Cross-object linkages (task-to-contact, project-to-task) are resolved through internal ID resolution during the transformation phase, and all time logs, file attachments, and comments carry over as structured fields on the parent record.
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 Planfix 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.
Planfix
Contact
Odoo CRM
res.partner
1:1Planfix Contact records map directly to Odoo res.partner. The contact's profile card fields (name, email, phone, address, company) map to typed Odoo partner fields. Custom fields on Planfix contacts migrate to res.partner custom fields created in Odoo Studio before import. We snapshot Planfix's workspace-specific field schema first so that custom contact fields are created before any partner records load. Active/archived status in Planfix maps to Odoo's active boolean on res.partner.
Planfix
Project
Odoo CRM
project.project
1:1Planfix Project records map to Odoo project.project. Planfix's unlimited project allowance on paid tiers means we migrate all active and archived projects. Each project's custom fields (dates, status, description, manager) map to project.project fields or custom fields created in Odoo Studio. Task structure and task dependency links carry over as project.task records under each project.
Planfix
Task
Odoo CRM
project.task
1:1Planfix Task records are the core record type and map 1:1 to Odoo project.task. We bypass the Planner view filter layer by querying tasks directly from the Planfix API endpoint, ensuring no records are missed due to visibility permissions or date filter logic. Task status, priority, assignees, checklists, comments, time logs, and file attachments all migrate as structured fields on the project.task record. The parent project reference resolves to the project.project ID computed during the project import phase.
Planfix
Time Log
Odoo CRM
account.analytic.line
1:1Planfix time logs against tasks (recorded via timers or manual entry) migrate to Odoo account.analytic.line linked to the corresponding project.task. Each time log's duration, date, user attribution, and description migrate. If the destination Odoo instance does not have Timesheets (project_timesheet module) installed, time logs migrate as structured task description notes instead, and the customer can enable timesheet tracking post-migration.
Planfix
File Attachment
Odoo CRM
ir.attachment
1:1File attachments on Planfix contacts, projects, and tasks migrate to Odoo ir.attachment records linked to the corresponding res.partner, project.project, or project.task. We export attachments via Planfix's template variables or direct download URL and store them in Odoo's attachment store. Files that exceed Odoo's default attachment size limit are flagged for alternative storage configuration before import.
Planfix
Comment
Odoo CRM
mail.message
1:1Planfix comments on tasks and contacts migrate to Odoo mail.message records (the Discuss/message history on each record). Comment author, timestamp, and body text transfer. Mentions and emoji reactions do not carry over as these have no Odoo equivalent in the standard message model.
Planfix
Custom Field (workspace-specific)
Odoo CRM
Custom field on target model
lossyPlanfix custom fields (text, number, date, dropdown, checkbox, File types) vary per workspace and require a schema snapshot before any record mapping begins. We query field definitions from the Planfix API to capture field type, label, and ID, then create matching Odoo custom fields via Odoo Studio or data migration field creation. Dropdown fields in Planfix become Odoo selection fields or many2one relations depending on the customer's data model choice. This step adds 3-5 business days to discovery for workspaces with more than 50 custom fields.
Planfix
Workgroup
Odoo CRM
crm.team
lossyPlanfix Workgroups (organizational units grouping users and permissions) map to Odoo crm.team records. Plan X allows up to 100 workgroups. Team membership and roles migrate as crm.team membership records. Workgroup-level permission structures in Planfix (which are Planfix-specific) do not have a direct Odoo equivalent and are documented for manual rebuild in Odoo Access Rights or Team Settings.
Planfix
Report (saved definitions)
Odoo CRM
Report (rebuild required)
1:1Planfix saved reports (built with the Planfix report builder) export as CSV or XLSX data but the saved report definition is not portable. We export the underlying data in structured CSV format for re-import into Odoo's pivot table or custom SQL reporting views. Complex reports with cross-object joins require manual rebuild in Odoo using the database view or Odoo Studio report designer. We deliver a written report inventory listing each Planfix report and its recommended Odoo equivalent.
Planfix
Process and Script
Odoo CRM
Studio Automation (rebuild required)
1:1Planfix Processes (multi-step automated sequences triggered by contact or task events) and Scripts reference Planfix-specific field IDs, action types, and execution contexts. These cannot be exported, mapped, or replayed in Odoo. We export the Process and Script configuration as a written document including trigger conditions, step definitions, action types, and conditional branches. The customer's Odoo admin or an Odoo implementation partner rebuilds these as Studio Automations or Server Actions post-migration.
Planfix
Whiteboard Diagram
Odoo CRM
Not migratable
1:1Planfix Whiteboard content (block-based diagrams stored in the Whiteboard feature) has no documented export format or API access path. Whiteboard records cannot be structured for import into Odoo. We flag these as non-migratable before the migration begins and capture screenshots if the customer requires a visual record of the content.
Planfix
Planner View (saved configurations)
Odoo CRM
Not migratable
1:1Planfix Planner views are calendar-based task displays with user-specific saved filters, groupings, and date ranges. These are tied to the authenticated user's permissions and have no API export path. We export the underlying task data (see Task mapping) but cannot preserve personal Planner layout preferences. The Odoo Calendar and Gantt views replace Planner functionality in the destination.
| Planfix | Odoo CRM | Compatibility | |
|---|---|---|---|
| Contact | res.partner1:1 | Fully supported | |
| Project | project.project1:1 | Fully supported | |
| Task | project.task1:1 | Fully supported | |
| Time Log | account.analytic.line1:1 | Fully supported | |
| File Attachment | ir.attachment1:1 | Fully supported | |
| Comment | mail.message1:1 | Fully supported | |
| Custom Field (workspace-specific) | Custom field on target modellossy | Fully supported | |
| Workgroup | crm.teamlossy | Fully supported | |
| Report (saved definitions) | Report (rebuild required)1:1 | Fully supported | |
| Process and Script | Studio Automation (rebuild required)1:1 | Fully supported | |
| Whiteboard Diagram | Not migratable1:1 | Fully supported | |
| Planner View (saved configurations) | Not migratable1: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.
Planfix gotchas
Custom field schemas vary per workspace
API rate limits are tier-gated and low
Task visibility filters cause apparent data loss
Process and Script objects are not portable
Whiteboard content has no export path
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 workspace schema snapshot
We audit every Planfix workspace in scope, extracting the field schema via the Planfix API field definition endpoint for each workspace. We catalog custom fields (name, type, ID), object labels (noting any renamed objects), active Process and Script configurations, saved report definitions, and Whiteboard records. We also confirm the customer's Planfix plan tier to size the API export strategy and identify whether a CSV fallback will be required. The discovery output is a written migration scope including a complete field mapping table, a list of non-migratable objects, and a Process/Script inventory document for rebuild.
Odoo environment preparation
We provision the target Odoo environment (Odoo Online SaaS or on-premise) and install the required modules: CRM, Project, and Timesheets if time log migration is in scope. We create all custom fields identified in the Planfix schema snapshot using Odoo Studio or direct field creation, matching field types (selection, char, text, date, float, integer, many2one) to their Planfix equivalents. We configure crm.team records to match Planfix Workgroups and set up the Odoo user accounts corresponding to Planfix Owners identified during discovery.
Test migration in Odoo Sandbox
We run a full migration into a staging environment using production-like data volume. We validate record counts (contacts imported, partners created, projects set up, tasks loaded), spot-check 25-50 records against the Planfix source for field accuracy, and confirm that cross-object linkages (task-to-contact, task-to-project) resolved correctly. The customer reviews the staging environment, validates the Odoo custom field labels against Planfix field names, and approves the mapping before production migration begins. Any field type corrections, missing fields, or mapping adjustments happen here.
Production export from Planfix with API throttling and CSV fallback
We export Planfix records in dependency order: Contacts first (as the base for task assignments), then Projects, then Tasks, then Time Logs, then Comments and Attachments. For workspaces on Plan A or Plan B, we apply exponential backoff on API requests and switch to the report-based CSV export when the monthly pool reaches 80% utilization. Planfix Tasks are queried directly from the API endpoint rather than the Planner view to bypass visibility filter logic. We preserve Planfix internal IDs as external ID fields in Odoo for cross-object linkage resolution.
Production import into Odoo CRM
We import records into the production Odoo environment in dependency order: res.partner (Contacts), project.project (Projects), project.task (Tasks), account.analytic.line (Time Logs), ir.attachment (Files), mail.message (Comments). Custom fields are populated from the corresponding Planfix fields using the field mapping approved during sandbox sign-off. Cross-object linkages are resolved using the external ID references carried from the export phase. Each phase emits a row-count reconciliation report comparing the Planfix source count to the Odoo destination count.
Cutover, delta sync, and non-migratable handoff
We freeze Planfix writes during cutover, run a final delta migration of any records modified during the migration window, then switch the system of record to Odoo CRM. We deliver the Process and Script inventory document to the customer's admin team for manual rebuild in Odoo Studio Automations. We deliver the Whiteboard screenshot archive and the Report rebuild guide. We support a one-week hypercare window to resolve any data reconciliation issues. We do not rebuild Planfix Processes or Scripts as Odoo automations; that is a separate engagement or an internal admin task.
Platform deep dives
Planfix
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 Planfix 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
Planfix: Per-account rate limits depend on the paid package tier. Error 9004 is returned for 'Request creation rate limit exceeded'. List endpoints return a maximum of 100 results per request, requiring pagination for larger datasets..
Data volume sensitivity
Planfix 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 Planfix to Odoo CRM migration scoping. Not seeing yours? Book a call.
Walk through your Planfix 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 Planfix
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.