CRM migration

Migrate from Planfix to Twenty CRM

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

Planfix logo

Planfix

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

80%

8 of 10

objects map 1:1 between Planfix and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Planfix to Twenty CRM is a structural migration from a multi-module business platform to a focused open-source CRM. Planfix stores Contacts, Companies, and Deals alongside Tasks, Projects, Processes, and Scripts in a fluid object model where almost every label can be renamed by the workspace admin. Twenty CRM uses a standard Person-Company-Opportunity-Object model with typed fields and an AGPL-3.0 license that returns data ownership to the business. We begin every Planfix migration by querying the field schema from the API before writing a single record, because custom field IDs vary per workspace and using the wrong column reference corrupts the destination data. We preserve cross-object linkages (task-to-contact, project-to-task) by resolving Planfix internal IDs during transformation. Processes and Scripts do not migrate; we deliver a written inventory of every active automation with a recommended Twenty workflow equivalent 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

Planfix logo

Planfix

What's pushing teams away

  • The interface is dense and unintuitive for new users; several reviewers cite a steep learning curve and frequent need for implementation partners.
  • Reports and dashboards are functional but primitive compared to dedicated BI tools, frustrating data-driven teams.
  • Mobile app capabilities are limited to core task and contact viewing; advanced features like script testing and custom report building require desktop.
  • Customer support responsiveness varies; smaller account holders report slower ticket resolution times.

Choosing

Twenty CRM logo

Twenty CRM

What's pulling them in

  • Top open-source CRM on GitHub with 40.6K stars, giving teams full source code access and infrastructure ownership without per-feature licensing surprises.
  • Free self-hosting under AGPL-3.0 means unlimited users and custom objects for the cost of cloud infrastructure alone, typically $20–100/month.
  • Pricing page explicitly mocks competitors for charging add-on fees for API access, webhooks, and workflows — transparency that resonates with RevOps teams burned by Salesforce.
  • Unlimited custom objects and fields with no price impact, letting teams shape the data model to their business rather than forcing business into rigid schemas.
  • Modern TypeScript/React/PostgreSQL stack means developer-led teams can extend, self-host, or integrate without fighting legacy architecture.

Object mapping

How Planfix objects map to Twenty CRM

Each row shows how a Planfix object lands in Twenty 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

maps to

Twenty CRM

Person

1:1
Fully supported

Planfix Contacts map directly to Twenty Person records. We preserve the contact's name, email, phone, and all custom properties as custom fields on the Person object. The email address serves as the dedupe key during import. Linked tasks and files transfer to the Person's activity timeline and attachments. Planfix contact history logs migrate as Note records attached to the Person.

Planfix

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Planfix Companies map directly to Twenty Company records. The company's name, domain, address, and custom fields transfer to matching Twenty Company fields. We create the Company record before any Person import so that Person-Company lookups are satisfied at the moment of Person insert. Companies without contacts in Planfix still migrate as standalone Company records.

Planfix

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Planfix Deals map to Twenty Opportunity records. The deal name, amount, stage, expected close date, and owner transfer to the equivalent Twenty Opportunity fields. Planfix custom deal properties become custom fields on the Opportunity. If the Planfix deal has a linked Contact, we resolve that Person record and attach it to the Opportunity's Person id during migration.

Planfix

Task

maps to

Twenty CRM

Task or Custom Object

1:1
Fully supported

Planfix Tasks map to Twenty Task records when the task tracks an action item (assignee, due date, status). Tasks with sub-checklists migrate with checklist items preserved as custom fields or serialized into a text field. Tasks linked to a Contact or Company resolve the Person or Company id at migration time. Tasks linked to a Project may require a custom Project object in Twenty if the customer's workflow depends on project-level task grouping.

Planfix

Project

maps to

Twenty CRM

Custom Object (Project) or Workspace Tag

lossy
Fully supported

Planfix Projects group tasks and carry their own custom fields, dates, and assignees. Twenty CRM does not have a native Project object. We create a custom Project object in Twenty during schema setup, with fields for project name, dates, status, and a lookup to the responsible Company. Tasks link to their parent Project via the custom lookup. The customer chooses the exact schema during scoping based on how project data is used post-migration.

Planfix

Custom Fields

maps to

Twenty CRM

Custom Fields

lossy
Mapping required

Every Planfix workspace has its own custom field definitions with different names, types, and API IDs. We query the field schema from the Planfix API before mapping any record. We then create matching custom fields in Twenty's Settings → Data Model, using the equivalent field type (text, number, date, select, multi-select, checkbox). We map Planfix field values to Twenty custom field values during the transform phase. Skipping this step means custom field values write to the wrong columns or are silently dropped.

Planfix

Workgroup

maps to

Twenty CRM

Workspace or Role

1:1
Fully supported

Planfix Workgroups group users and set shared permissions. Plan X allows up to 100 workgroups. We export workgroup memberships and roles and map them to Twenty Workspace members or Role assignments. If the customer uses workgroups to segment data access, we document the access model so the customer can configure equivalent Twenty workspace permissions post-migration.

Planfix

Time Log

maps to

Twenty CRM

Custom Field on Task or Activity

1:1
Fully supported

Time logged against Planfix tasks (via timers or manual entry) migrates as structured data. We carry over duration, date, and user attribution as custom fields on the migrated Task record. If the customer tracks billable hours, we create a custom hours field on the Task and a rate field on the Person or Company for time-cost calculations in reporting.

Planfix

Report

maps to

Twenty CRM

Data Export (for rebuild)

1:1
Fully supported

Planfix Reports are built with Planfix's report builder and exportable as CSV or XLSX. The report definitions themselves are not portable. We export the underlying data that feeds each report as a structured CSV during migration. The customer rebuilds complex reports in Twenty or an external BI tool post-migration. Saved report configurations are documented as a handoff artifact.

Planfix

Document Template

maps to

Twenty CRM

Not Migrated (Flagged)

1:1
Fully supported

Planfix Document Templates use XLSX/XLSM files with template variables. The template files can be exported from Planfix. Variable mappings are workspace-specific and cannot be replayed in Twenty without manual reconfiguration. We export the template files as documentation for the customer's admin to reconfigure using Twenty's templating approach (email sequences, PDF generation via integrations).

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.

Planfix logo

Planfix gotchas

High

Custom field schemas vary per workspace

High

API rate limits are tier-gated and low

Medium

Task visibility filters cause apparent data loss

Medium

Process and Script objects are not portable

Low

Whiteboard content has no export path

Twenty CRM logo

Twenty CRM gotchas

High

Import order is enforced and critical

High

Export limited to 20,000 records and visible columns only

Medium

Soft-deleted records count toward uniqueness and trigger restores

Medium

API rate limits cap at 200 req/min on Organization tier

Low

No native email sequences — follow-up cadences require external tools

Pair-specific challenges

  • Custom field schemas vary per Planfix workspace

    Every Planfix workspace has its own custom field definitions with different names, types, and API IDs. There is no global schema export in Planfix. We must query the field definitions from the API before mapping any record. Skipping this step means custom field values write to the wrong columns or are silently dropped during import into Twenty. We always run a field schema snapshot at the start of every Planfix migration project. Twenty's Settings → Data Model requires manual custom field creation before the migration begins, so we coordinate with the customer to pre-create the destination schema based on the snapshot.

  • Planfix API rate limits are tier-gated and can exhaust during export

    Plan A caps API requests at 50,000 per month; Plan X at 100,000 per month. For large workspaces with hundreds of thousands of contacts or tasks, hitting the API ceiling during export is common. We throttle our export jobs using exponential backoff and fall back to Planfix's report-based CSV export when the API pool is exhausted. We confirm the customer's plan tier during scoping and size the export strategy accordingly. If the customer is on the Free plan (5 users, API access limited or unavailable), we may need to rely entirely on CSV exports for the migration.

  • Twenty's standard field model requires custom field creation for Planfix data

    GitHub issue #13953 on the Twenty repository notes that Twenty lacks some standard fields that other CRMs include out of the box (for example, industry on Company, jobTitle on Person). When migrating from Planfix, any standard Planfix fields that have no direct Twenty equivalent require custom field creation before import. We create these fields during schema setup based on the field snapshot. Without pre-creating them, imports fail validation or data lands in the wrong fields. The Twenty field creation UI (Settings → Data Model) requires admin access and must be done before migration begins.

  • Process and Script objects are not portable to Twenty

    Planfix's Process and Script objects define automated multi-step workflows triggered by contact or task events. These objects reference Planfix-specific field IDs and action types that cannot be exported or replayed in Twenty's workflow engine. We export the Process and Script configurations as written documentation for the customer's admin to rebuild manually in Twenty. This is a manual rebuild effort that falls outside standard migration scope; we provide the inventory but do not automate the recreation.

  • Planfix task visibility filters cause apparent data loss

    Planfix's Planner view hides tasks based on user permissions, date filters, and grouping fields. Users routinely report that tasks 'disappear' when filters are misconfigured. We query all tasks using the Planfix API endpoint directly, bypassing the Planner filter layer, so no records are missed during export. We validate the total task count against the customer's reported count before proceeding with migration to ensure no records are filtered out during extraction.

Migration approach

Six steps for a successful Planfix to Twenty CRM data migration

  1. Field schema snapshot and scoping

    We authenticate to Planfix via the REST API using a per-account token and query the field definitions for every active object (Contact, Company, Deal, Task, Project). We capture custom field names, types, IDs, and picklist options per workspace. We also extract the full list of active Processes and Scripts with their trigger conditions and action steps. We pair this with a Twenty workspace audit: checking which standard fields exist, confirming admin access for custom field creation, and documenting any known gaps (industry, jobTitle) that require pre-creation before import.

  2. Twenty schema setup and custom field pre-creation

    We create the destination schema in Twenty based on the Planfix field snapshot. This includes creating custom fields on Person, Company, Opportunity, and Task objects; creating a custom Project object if the customer's Planfix workflow depends on project-level task grouping; and configuring picklist options that match Planfix dropdown values. We create a custom field mapping document that pairs each Planfix field ID to its Twenty equivalent. Schema setup happens in the customer's Twenty instance (self-hosted or cloud) before any data extraction begins.

  3. Test migration and reconciliation

    We run a full migration into the customer's Twenty instance using a representative subset of Planfix data (at least 500 records per object type) to validate field mappings, picklist values, and cross-object lookups. The customer's admin reviews 25-50 randomly sampled records in Twenty against the source data in Planfix and signs off on mapping accuracy. Any field mapping corrections, picklist value mismatches, or relationship resolution failures are documented and corrected before the production migration begins.

  4. Owner and user reconciliation

    We extract every distinct Planfix user referenced on Contact, Company, Deal, Task, and Activity records. We map these to Twenty users by email match. Any Planfix user without a matching Twenty account goes to a reconciliation queue for the customer's admin to provision. Owner lookups on migrated records require a valid Twenty user ID; if the user is not provisioned, the record's owner field must be left blank or set to a system placeholder. Migration cannot proceed past this step for records that require owner assignment.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Twenty users (manual provisioning, validated), Companies (from Planfix Companies), Persons (with Company id resolved), Opportunities (with Person id and Owner id resolved), Tasks (with Person id, Company id, and Project id resolved), Time Logs (as custom fields on Tasks), Activity history (calls, emails, meetings, notes migrated as Timeline events or Notes on Person and Company). Custom Project objects import last if they link to Tasks. Each phase emits a row-count reconciliation report before the next phase begins.

  6. Cutover, validation, and Process rebuild handoff

    We freeze Planfix writes during the cutover window, run a final delta migration of any records modified during the migration, then mark Twenty as the system of record. We deliver the Process and Script inventory document to the customer's admin team with recommended Twenty workflow equivalents for each automation. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's team. We do not rebuild Planfix Processes as Twenty Workflows inside the migration scope; that is documented for the customer's admin or a Twenty implementation partner to handle post-migration.

Platform deep dives

Context on both ends of the pair

Planfix logo

Planfix

Source

Strengths

  • All-in-one platform reduces tool sprawl across CRM, PM, HR, and finance
  • Per-user pricing with unlimited tasks and projects on paid plans
  • Deeply customizable workflows without requiring developer resources
  • Free tier for up to 5 users enables low-risk evaluation
  • Scripting and automation support for non-technical workflow builders

Weaknesses

  • Dense, unintuitive interface creates a steep learning curve for new users
  • Reports and analytics are basic compared to dedicated BI tools
  • Mobile app lacks full feature parity with the desktop version
  • Script and Process objects are not portable between platforms
  • Smaller accounts report slower customer support response times
Twenty CRM logo

Twenty CRM

Destination

Strengths

  • AGPL-3.0 open-source license with full source code on GitHub — no vendor lock-in, no sunset risk.
  • Unlimited users and unlimited custom objects on self-hosted, with no feature gating based on headcount.
  • REST and GraphQL APIs available on all paid tiers, not locked behind an enterprise add-on fee.
  • MCP server and webhooks shipped as standard features, not premium upgrades.
  • Modern PostgreSQL-backed data model that developer teams can query, extend, and self-host.

Weaknesses

  • Recent v1.0 release means limited production hardening compared to CRMs with multi-year operational track records.
  • No native email sequencing or sales engagement tools — follow-up cadences require a separate platform.
  • No native two-way email sync or inbox integration, requiring third-party connectors for full activity logging.
  • Self-hosting 'free' pricing hides real infrastructure and DevOps costs that stack up over time.
  • Workflow automation is functional but lacks the complexity needed for sophisticated multi-step sales motions.

Complexity grading

How hard is this migration?

Standard CRM migration. 2 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 Planfix and Twenty CRM.

  • Object compatibility

    B

    2 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

    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

    B

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

Estimator

Estimate your Planfix to Twenty 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 Planfix to Twenty CRM data migrations

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

Can't find your answer?

Walk through your Planfix to Twenty 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 15,000 Contacts and 3,000 Deals with no custom objects and a straightforward field schema. Migrations with workspace-specific custom field schemas, large task histories (over 200,000 records), multi-workspace consolidation, or extensive Process documentation move to eight to fourteen weeks because of field schema snapshot work, cross-object ID resolution, and custom field pre-creation in Twenty's Data Model settings.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Planfix.
Land in Twenty 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