CRM migration

Migrate from coreplus to Twenty CRM

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

coreplus logo

coreplus

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

10 of 10

objects map 1:1 between coreplus and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

coreplus is a practice management platform built around clients, practitioners, appointments, service types, and referrers — with a REST API that exposes these as discrete endpoints for server-to-server integration. Twenty CRM models everything as standard objects (People, Companies, Opportunities, Notes, Tasks) with a metadata-driven custom object layer accessible via GraphQL and REST. The migration challenge is translating coreplus's appointment-centric workflow into Twenty's task-based model, mapping referrer relationships into custom objects or company associations, and preserving invoice and service-type metadata as custom fields on People or custom objects. FlitStack sequences the migration so People records are created before their associated Tasks, invoice data is stored as a custom object with a relation to the relevant Person record, and practitioners are matched to Twenty Workspace Members by email before their assigned appointments are imported. We handle the CSV export from coreplus, the field-level transformation against Twenty's schema, and the bulk import via Twenty's REST API — staying within the 100–200 requests-per-minute rate limit on the Pro and Organization plans. Views, workflows, practitioner scheduling rules, and availability logic must be rebuilt manually in Twenty's workflow builder or via external automation tools such as n8n or Zapier.

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

coreplus logo

coreplus

What's pushing teams away

  • Support responsiveness is a recurring complaint — users report slow response times and features taking too long to ship, leading some to evaluate alternatives.
  • The patient notes UI has been flagged as not meeting clinical needs, particularly the body chart placement relative to the rest of the clinical note workspace.
  • Some practices outgrow the platform's feature velocity and report abandoning the software when requested features are not delivered within acceptable timeframes.
  • Customisation limitations have driven practices to seek platforms with more flexible workflow configuration or broader third-party integrations.

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 coreplus objects map to Twenty CRM

Each row shows how a coreplus 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.

coreplus

Client

maps to

Twenty CRM

People

1:1
Fully supported

coreplus Client records map directly to Twenty People. The coreplus client record carries name, email, phone, address, and create date — these map to the corresponding Twenty People fields. coreplus clients without a primary referrer link land as standalone People records. Original coreplus client ID is preserved as Source_System_ID__c for delta-run deduplication.

coreplus

Client → Practitioner link

maps to

Twenty CRM

People → Workspace Member

1:1
Fully supported

coreplus links clients to practitioners via the appointment model. In Twenty, practitioner resolution happens by matching practitioner email to a Twenty Workspace Member. Unmatched practitioners are flagged before migration — your team either creates their Twenty accounts first or assigns records to a fallback member. Once resolved, the practitioner assignment is stored as a custom relation field on the People record.

coreplus

Appointment

maps to

Twenty CRM

Task

1:1
Fully supported

coreplus appointments become Twenty Tasks. Each appointment's date, time, duration, service type, and status (completed, cancelled, no-show) are mapped to Task fields. The Task is linked to the People record representing the client. Appointment status is stored as a custom select field on the Task. Practitioner attribution is preserved via the Workspace Member relation on the Task.

coreplus

Practitioner

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

coreplus practitioner records map to Twenty Workspace Members. FlitStack resolves practitioner email against Twenty user accounts to build the Owner/User relation for tasks and records. coreplus practitioner specialties and position data migrate as custom fields on the Workspace Member record for reference.

coreplus

Referrer

maps to

Twenty CRM

Company

1:1
Fully supported

coreplus referrers (clinics, referring doctors, partner organizations) map to Twenty Companies. Referrer name maps to Company.name, referrer contact details map to standard Company fields, and the referrer relationship to clients is stored as a custom relation field (Referrer_ID__c) linking People to the referral Company. If your coreplus referrers are individual people rather than organizations, they become People records instead.

coreplus

Invoice

maps to

Twenty CRM

Custom Object (Invoice)

1:1
Fully supported

coreplus invoices are stored as a Twenty custom object named Invoice. Fields include invoice number, amount, date, status (paid/unpaid/overdue), and client relation. The Invoice custom object is created via Settings → Data Model before migration. Invoice records are linked to the relevant People record representing the client.

coreplus

Service Type

maps to

Twenty CRM

Custom Object (Service Type)

1:1
Fully supported

coreplus service types (service category, fee, stock level) become a Twenty custom object. Each Service Type record carries the service name, fee amount, and stock indicator. Service types are linked to Tasks (via appointment mapping) so Twenty reports can filter by service type without relying on external data.

coreplus

Availability Slot

maps to

Twenty CRM

Custom Object (Availability)

1:1
Fully supported

coreplus practitioner availability slots map to a Twenty custom Availability object. Each record holds practitioner (Workspace Member), date, start/end time, and availability status. These are standalone records linked to the practitioner; Twenty's standard calendar views can be filtered or extended to display them alongside Tasks.

coreplus

Draft Note

maps to

Twenty CRM

Note

1:1
Fully supported

coreplus draft notes attached to client records migrate as Twenty Notes. The note body, author, create date, and client relation are preserved. Notes are linked to the relevant People record. Rich-text formatting is converted to plain text where the source format is not fully compatible with Twenty's note storage.

coreplus

Attachment / File

maps to

Twenty CRM

Twenty Files (linked to record)

1:1
Fully supported

coreplus file attachments on clients, appointments, or invoices are downloaded and re-uploaded as Twenty Files. Each file is linked to its parent record (People, Task, or custom Invoice object) using Twenty's attachment relation. File size limits on the destination plan apply — large files are chunked or flagged for manual re-upload.

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.

coreplus logo

coreplus gotchas

High

Supervisor-level access required for data backup

High

No native bulk-export API for appointments or invoices

Medium

MYOB export produces three separate files requiring manual import

Medium

Tier-based API access and undocumented rate limits

Low

Body charts are embedded in notes and not independently exportable

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

  • Availability slot data has no native Twenty equivalent and requires a custom object built before import

    coreplus practitioner availability slots (recurring time windows, override blocks) encode a scheduling logic that Twenty's standard Task model does not replicate. Twenty's task model is event-based — each task has a dueAt timestamp — whereas availability slots are recurring templates. FlitStack creates an Availability custom object via Twenty's Settings → Data Model before migration, storing practitioner (Workspace Member), date, start time, end time, and slot status. Your team should decide whether availability slots are needed as read-only reference records or whether scheduling logic should be rebuilt in an external tool like n8n or Zapier that triggers Twenty Tasks from a linked availability schedule.

  • coreplus CSV export caps at 20,000 records per download — large datasets require multiple exports

    coreplus Instant Data Backup exports records as CSV files, with the primary client export handling up to 20,000 records per run. For organizations with more than 20,000 clients or complex multi-object datasets, the backup must be run in date-range slices or via the API with pagination. FlitStack sequences multi-export scenarios so that referrer, practitioner, appointment, and invoice exports are coordinated with client exports to maintain relational integrity. The 20,000-record export limit on the Twenty side (Command Menu → Export view) applies only to exports from Twenty — it does not constrain imports, which are handled via the API at the 100–200 req/min rate limit.

  • Practitioner-to-Workspace-Member resolution must complete before appointment imports can link correctly

    Twenty requires that Workspace Members exist before user-referenced imports can resolve the assignee relation on Tasks. If practitioner email addresses in coreplus do not match invited Twenty Workspace Members, appointment records import with an unassigned taskAssigneeId. FlitStack flags unmatched practitioners in the pre-migration audit report and holds appointment imports until practitioners are either invited to Twenty or assigned to a fallback Workspace Member. This sequencing prevents orphaned appointment tasks where the practitioner field is blank.

  • Invoice status and MYOB export data from coreplus need a custom object schema in Twenty before data lands

    coreplus invoice records include status (Paid/Unpaid/Overdue), amount, date, and a MYOB export flag that is specific to the coreplus-MYOB integration workflow. Twenty has no native invoice object — the Invoice custom object and its status pick-list values must be created in Settings → Data Model before invoice imports run. FlitStack delivers the full custom object schema definition (field names, types, pick-list values) in the pre-migration plan so your Twenty admin can provision the schema ahead of the data migration. The MYOB-specific export fields are preserved as reference notes on the invoice record rather than re-imported, since Twenty does not have a native MYOB sync.

Migration approach

Six steps for a successful coreplus to Twenty CRM data migration

  1. Audit coreplus data model and export all objects in dependency order

    FlitStack begins by querying coreplus's API endpoints for all object types — clients, practitioners, appointments, referrers, invoices, service types, and availability slots — and downloading the corresponding CSV exports. We verify record counts, check for NULL values in required fields (email, name, date), and flag duplicate client records. This audit output becomes the source-of-truth record manifest used throughout the migration to validate completeness and detect delta records created during the cutover window.

  2. Provision Twenty schema: custom objects, fields, and Workspace Members

    Before any data is imported, FlitStack delivers a schema setup plan specifying the Invoice and Service Type custom objects (field names, types, pick-list values), the Availability custom object for practitioner slots, and any custom fields on People (Source_System_ID__c, Coreplus_Create_Date__c) or Workspace Members (Specialty__c). We also deliver a practitioner-to-Workspace-Member resolution table so your team can invite practitioners to Twenty and confirm their email addresses match the coreplus practitioner records before appointment imports run.

  3. Migrate core entities first: People, Companies, then Tasks

    Twenty requires that relation targets exist before records referencing them can import. We sequence the migration as: (1) Companies from referrers, (2) People from clients and practitioners, (3) Tasks from appointments linked to People by email-resolved IDs, (4) custom object records (Invoice, Service Type, Availability). Tasks are created with status=open by default; appointment status from coreplus is stored in a custom Task status field for post-migration review.

  4. Run a sample migration with field-level diff and relationship validation

    A representative slice — typically 200–500 records spanning clients, practitioners, appointments, referrers, and invoices — migrates into Twenty via the API. FlitStack generates a field-level diff comparing source values against destination fields, verifying that email lookups resolved correctly, appointment practitioner assignments resolved, and custom object relations linked properly. You review the diff and approve the field mapping before the full migration commits.

  5. Execute full migration with delta-pickup window and one-click rollback

    The full migration runs against Twenty's REST API, staying within the 100–200 req/min rate limit by pacing batch requests. A delta-pickup window (typically 24–48 hours) captures any new clients, appointments, or invoice records created or modified in coreplus during the cutover. Audit logs capture every operation, and one-click rollback reverts the Twenty workspace to its pre-migration state if reconciliation finds data integrity issues. Post-migration, your team rebuilds appointment-based scheduling workflows in Twenty's workflow builder or via n8n.

Platform deep dives

Context on both ends of the pair

coreplus logo

coreplus

Source

Strengths

  • Dedicated MYOB invoice export function for Australian accounting workflows without requiring a native direct integration.
  • Instant Data Backup feature produces a CSV of all client records at no extra cost, accessible to Supervisor-level users.
  • Multi-tier pricing with a low entry point (A$5/month Basic) lets small practices validate the platform before committing to CORE or PLUS tiers.
  • REST API with sandbox environment allows developers to build server-to-server integrations and test against a trial account before production deployment.
  • Position and specialty fields on practitioners support team-based practice structures with differentiated service delivery.

Weaknesses

  • No native bulk-export endpoint for appointments, practitioners, or invoices — all non-CSV record types require individual API calls per object, increasing migration timeline for large datasets.
  • Support responsiveness is a known pain point — slow feature delivery has been cited as a reason practices abandon the platform.
  • Patient notes usability is considered deficient by some clinical users, particularly the body chart placement relative to the note text.
  • No public documentation of API rate limits by tier — the Intuit App Partner tier system implies tiered API caps, but the exact limits are not published.
  • coreplus does not offer automated MYOB sync — the export workflow requires manual steps and a separate import into MYOB AR.
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. 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 coreplus and Twenty 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

    coreplus: Not publicly documented. Intuit App Partner tiers imply Builder tier caps with upgrade to Silver for higher quotas..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your coreplus to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most coreplus-to-Twenty migrations complete in 48–72 hours for under 50,000 records. Larger setups with 500,000+ records or complex custom-object schemas (invoice history, availability slots, multi-location practitioners) extend to 5–10 days. The longest planning step is provisioning the Twenty custom object schema — Invoice, Service Type, and Availability custom objects must be created in Settings → Data Model before data imports can reference them. FlitStack delivers the schema definition in the planning phase so your admin can build it in parallel.

Adjacent paths

Related migrations to explore

Ready when you are

Move from coreplus.
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