CRM migration

Migrate from Pearl Dental Software to Twenty CRM

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

Pearl Dental Software logo

Pearl Dental Software

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

90%

9 of 10

objects map 1:1 between Pearl Dental Software and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Pearl Dental Software organizes dental practice data around patients, appointments, treatments, clinical notes, and invoices — a vertically-specific model that works well in the clinic but offers no native pipeline management, company-account tracking, or extensible task automation for the business side of the practice. Twenty CRM uses a horizontal People-Companies-Opportunities data model with a fully extensible custom-object schema, REST and GraphQL API access, and a workflow builder for task automation. The migration maps Pearl's patient and clinical records into Twenty's People object (for individual patients) and Companies object (for referring practices or DSO parent organisations), with treatment plans and clinical notes preserved as custom objects and Notes respectively. Workflows, automated appointment reminders, and diary rules do not migrate — those must be rebuilt in Twenty's workflow builder. FlitStack AI sequences the migration so Pearl's patient records land in Twenty's People object with original create dates preserved in a custom datetime field, referring-organisation links route to the Companies object, and any custom practice fields become custom fields on the relevant Twenty object. The migration uses a scoped read-access approach with a delta-pickup window capturing in-flight changes during the cutover window.

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

Pearl Dental Software logo

Pearl Dental Software

What's pushing teams away

  • Very limited public API documentation — practices with custom integration needs or automated workflows find themselves unable to extend the platform without vendor involvement.
  • Small review sample (2 verified Capterra reviews, limited G2 presence) makes independent due diligence difficult and raises concerns about enterprise-grade support depth.
  • No published pricing for third-party integrations or onboarding fees — the absence of a public price for these components creates ambiguity during procurement.
  • Pearl is designed for independent practices and small groups; multi-practice brands and DSOs are explicitly told to wait for a next-generation product that has no announced release date.
  • Practices requiring advanced analytics or AI-assisted diagnostics built into the PMS layer may need to layer on third-party tools since Pearl's feature set is primarily operational.

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 Pearl Dental Software objects map to Twenty CRM

Each row shows how a Pearl Dental Software 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.

Pearl Dental Software

Patient Record

maps to

Twenty CRM

People

1:1
Fully supported

Pearl's patient record is the primary entity — maps directly to Twenty's People object. The patient first name, last name, date of birth, contact details, and address transfer as standard People fields. Any referring dentist or DSO parent is mapped separately into the Companies object and linked via a People-Company relation.

Pearl Dental Software

Referring Practice / Organisation

maps to

Twenty CRM

Companies

1:1
Fully supported

Pearl does not have a native company object, but referral letters, NHS contract bodies, and DSO parent organisations stored as free-text on patient records are extracted and promoted to Twenty Companies records. Each unique organisation domain or name becomes a Company record with People records linked via companyId.

Pearl Dental Software

Treatment Plan

maps to

Twenty CRM

Custom Object: Treatment Plan

1:1
Fully supported

Pearl stores treatment plans as structured per-patient records with procedure codes, estimated costs, and completion status. These map to a custom Treatment Plan object in Twenty with a relation to the associated People record. The custom object fields are created under Settings → Data Model before the migration runs.

Pearl Dental Software

Clinical Note

maps to

Twenty CRM

Note (on People)

1:1
Fully supported

Pearl clinical notes and clinical history entries transfer as Twenty Notes attached to the relevant People record. The Note Body preserves the original text, and a custom field records the original clinical note date for temporal accuracy in Twenty's timeline view.

Pearl Dental Software

Appointment Record (historical)

maps to

Twenty CRM

Task

1:1
Fully supported

Pearl's appointment diary cannot be replicated in Twenty's task model — Twenty has no native scheduling or calendar. Past appointment records (date, practitioner, type, status) migrate as completed Tasks with the appointment type stored in the Task Subject. Future appointments require a scheduling tool outside Twenty.

Pearl Dental Software

Invoice / Payment Record

maps to

Twenty CRM

Custom Object: Invoice

1:1
Fully supported

Pearl invoices and payment history map to a custom Invoice object with a relation to the People record. Fields include invoice number, amount, payment date, payment method, and NHS/private flag. Twenty has no native billing — this custom object preserves the financial history for reporting but does not enable invoicing inside Twenty.

Pearl Dental Software

Recall / Reminder Record

maps to

Twenty CRM

Task

1:1
Fully supported

Pearl's patient recall dates (6-month checkup, annual hygiene) become Tasks with a due date on the People record. The recall type (hygiene, examination, treatment review) is stored in the Task Subject. Completed recall visits update the Task status.

Pearl Dental Software

Radiograph / Imaging Reference

maps to

Twenty CRM

Custom Field on People

1:1
Fully supported

Pearl radiograph IDs and imaging metadata have no direct equivalent in Twenty's standard schema. The most recent radiograph date and a text field containing the imaging reference ID migrate as custom fields on the People record. Full image files require a separate file-storage migration to a tool like AWS S3 or Google Drive.

Pearl Dental Software

NHS Contract / UDA Target

maps to

Twenty CRM

Custom Field on Company

1:1
Fully supported

NHS contract values and UDA/UDC targets are practice-level data tied to the organisation rather than individual patients. These migrate as custom fields on the primary Company record representing the practice itself, with a note flagging the field as historical reference rather than live NHS data.

Pearl Dental Software

Staff / Practitioner Record

maps to

Twenty CRM

WorkspaceMember / People

1:many
Fully supported

Pearl staff records serve two roles: clinical practitioners who appear on appointment records, and admin users who manage the system. Clinical practitioners map to People records with a custom practitioner role field. System admin users must be invited to Twenty separately under Settings → Members before their People records can reference them as assignees on Tasks.

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.

Pearl Dental Software logo

Pearl Dental Software gotchas

High

No public API means migration is file-based, not API-based

Medium

Charges per surgery, not per user — capacity planning matters

Medium

X-ray and image files require separate handling from demographic data

Medium

Custom fields and legacy data variants need explicit review

Low

Onboarding is required and charged separately

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

  • Pearl's patient-centric model has no native company concept, creating a Many-to-One routing problem in Twenty

    Pearl organises everything around the patient record — referring dentists, NHS trusts, and DSO parent organisations are stored as free-text on patient records rather than as separate account entities. Twenty's data model requires a Company record to exist before you can link a People record via companyId. We extract every unique organisation name or domain from Pearl's patient records, deduplicate them, and create Company records first. This sequencing is mandatory: People import fails if the referenced companyId does not exist. The extracted organisation data is often incomplete (inconsistent spelling, missing addresses), so a fuzzy-deduplication step is required before the Companies batch is created.

  • Twenty has no appointment scheduling module — appointment history migrates as completed Tasks, not a live diary

    Pearl's diary module manages live surgery scheduling with room bookings, practitioner availability, and patient recall flags. Twenty's task model has due dates and assignees but no calendar view, no room/surgery concept, and no availability overlap checking. Historical appointment records migrate as completed Tasks with the appointment type in the subject and the original date as the due date. Any future appointments in Pearl at cutover time are captured in the delta window as Tasks, but ongoing scheduling requires a third-party tool (Calendly, SimplyBook, or a dedicated dental scheduling system). This is a process gap, not a data gap — the history migrates; the live diary does not.

  • Clinical notes and treatment plans require custom objects not present in Twenty's standard schema by default

    Pearl stores per-patient clinical notes, periodontal charting, treatment codes, and radiograph references as structured fields. Twenty's standard People object has no clinical fields — treatment plans, invoice history, and clinical note text must be modelled as a Treatment Plan custom object and a custom Invoice object, both created under Settings → Data Model before the CSV import runs. Twenty's documentation explicitly warns: 'Fields must exist before import. The CSV import creates records, not fields.' If custom objects are not pre-created, the import skips those fields silently. We deliver a schema setup plan listing every custom object and field to be created, with field types, before migration validation begins.

  • Pearl's NHS contract values and UDA/UDC targets are practice-level data that require careful routing to the correct Twenty object

    NHS contract data (annual UDA targets, achieved UDA values, contract type) belongs to the practice entity rather than individual patients, but Pearl stores it inconsistently — sometimes as practice-level settings, sometimes as per-patient fields on NHS patients. In Twenty, the practice-level data should sit on the primary Company record representing the dental practice. If this data is stored per-patient in Pearl, we deduplicate and aggregate it to the practice-level Company record. Incorrect routing results in duplicated or missing contract data in Twenty's reporting.

  • Pearl's staff and practitioner records must be split — clinical staff go to People, admin users must be invited to Twenty before migration

    Pearl treats practitioners (dentists, hygienists) and admin staff as staff records in one object. Twenty separates Workspace Members (users who log into Twenty) from People (contacts/patients). Clinical practitioners migrate as People records with a custom practitioner_role field. Admin users who need to access Twenty must be invited under Settings → Members first — their staff records can only reference them as Task assignees after their Twenty accounts exist. We generate a pre-migration checklist of every staff email that needs a Twenty invitation, so no staff record lands in Twenty without a resolvable assignee.

Migration approach

Six steps for a successful Pearl Dental Software to Twenty CRM data migration

  1. Audit Pearl's export scope and build the Twenty schema plan

    FlitStack AI audits your Pearl instance to identify every data object available for export — patient records, appointment history, treatment plans, invoices, clinical notes, staff records, and recall entries. We cross-reference against Twenty's standard objects (People, Companies, Opportunities, Tasks, Notes) and document every custom object and custom field that needs to be created under Settings → Data Model before import. You receive a schema plan listing object names, field names, field types, and select options — your Twenty admin creates the schema while we finalise the field mapping document.

  2. Extract organisations from Pearl patient records and create Twenty Companies

    Pearl has no native company object, so referring practices, NHS trusts, and DSO parent organisations are embedded as free-text on patient records. We run a deduplication pass on organisation names and domains, then create Company records in Twenty before any People data is imported. This sequence is mandatory — Twenty's People.companyId foreign key requires a resolved Company record at import time. Unmatched or ambiguous organisation names are flagged for your team to resolve before the People batch runs.

  3. Invite all staff and practitioners to Twenty before migration

    Any staff record in Pearl that needs to appear as a Task assignee in Twenty requires an active Twenty Workspace Member account first. We generate a staff invitation checklist from Pearl's practitioner and admin records. Clinical practitioners who do not need Twenty access are imported as People records with a custom practitioner_role field but no Workspace Member relation. Task assignees are resolved by email match — uninvited staff cannot be assigned at migration time.

  4. Run a sample migration with field-level diff

    A representative slice — typically 100–500 records across patients, companies, treatment plans, and appointment history — migrates first. We generate a field-level diff between Pearl's source values and Twenty's stored values, showing every direct mapping, value mapping, and custom field transformation. You can verify that NHS numbers, treatment codes, invoice amounts, and recall dates land correctly in Twenty before the full run commits. This step surfaces any missing select options, incorrectly routed organisation links, or date-format issues before they affect the full dataset.

  5. Full migration with delta-pickup window and post-migration reconciliation

    The full dataset runs against Twenty — Companies first (no foreign keys), then People with companyId links resolved, then Treatment Plan and Invoice custom objects with People relations, then Tasks and Notes. A delta-pickup window (typically 24–48 hours) captures any Pearl records created or modified during the cutover. We deliver an audit log of every operation and a reconciliation report comparing Pearl record counts against Twenty record counts per object. One-click rollback is available if the reconciliation fails your acceptance criteria.

Platform deep dives

Context on both ends of the pair

Pearl Dental Software logo

Pearl Dental Software

Source

Strengths

  • Charges by surgery count, not user count — unlimited staff can access the system under a single surgery subscription.
  • Includes Patient Portal, PearlPad, touchscreen check-in, and kiosk modes on every paid tier with no feature gating.
  • Subscription model with no annual contract — practices can exit without penalty if the product no longer meets their needs.
  • UK-based support team with direct access, no automated switchboard, and consistent 5-star ratings for customer service responsiveness.
  • 2GB of online backup storage per surgery included for patient documents and X-ray images.

Weaknesses

  • No documented public API — third-party integrations and custom automation require vendor involvement rather than self-service.
  • Small company (8 employees) with limited published security certifications or enterprise SLA documentation.
  • No published pricing for onboarding, third-party integrations, or additional data storage beyond the included 2GB per surgery.
  • Target market is independent practices only; multi-location or DSO practices are not yet supported and must wait for an unannounced product iteration.
  • Limited independent review volume makes it difficult to benchmark long-term reliability against larger competitors.
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 Pearl Dental Software 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

    Pearl Dental Software: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Pearl Dental Software 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 Pearl Dental Software to Twenty CRM data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Pearl-to-Twenty migrations complete in 48–72 hours of clock time for practices with fewer than 10,000 patient records. Practices with 50,000+ records, multiple custom objects (Treatment Plan, Invoice), and referring-organisation hierarchies requiring Companies deduplication extend to 5–10 days. The longest single step is the organisation extraction and deduplication pass before the Companies batch can be created — that can take 2–3 days for large, inconsistently-named referral networks.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Pearl Dental Software.
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