CRM migration

Migrate from Dr.DENTES to Twenty CRM

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

Dr.DENTES logo

Dr.DENTES

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

93%

13 of 14

objects map 1:1 between Dr.DENTES and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Dr.DENTES is a dental practice management platform centered on patient records, appointment scheduling, treatment plans, insurance claims, and billing. It does not expose a documented public REST API — migrations from Dr.DENTES to any CRM rely on CSV export of standard report objects, supplemented by any available API credentials provided to FlitStack by the customer. Twenty CRM's data model uses People (contacts), Companies (accounts), Opportunities (deals), Tasks (to-dos), Notes, and custom objects created in Settings → Data Model. The import sequence must load Companies first (the 'one' side of relationships), then People (linked via companyId), then Opportunities, then custom objects last. FlitStack AI maps Dr.DENTES patients to Twenty People records, referring practices to Companies, scheduled appointments to Tasks, and treatment plans to custom objects or Opportunities depending on billing model. Workflows, automations, and notification rules in Dr.DENTES do not migrate — those must be rebuilt in Twenty's workflow builder or via external automation tooling. The migration runs against CSV exports from Dr.DENTES, with a 24–48 hour delta-pickup window capturing any records created or modified during cutover. A sample migration with field-level diff runs before the full commit, and one-click rollback is available if reconciliation detects discrepancies.

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

Dr.DENTES logo

Dr.DENTES

What's pushing teams away

  • Geographic focus is Turkey first; the compliance integrations (USS/e-Nabız, e-Reçete) are irrelevant outside Turkey, and English-speaking dental practices typically need different e-prescribing connectors.
  • Very thin public review footprint — G2, Capterra, Software Advice, and GetApp list the product but with minimal reviewer feedback, so prospective buyers cannot easily compare against Curve, Open Dental, or Dentrix.
  • No documented public API or developer portal limits integration with practice analytics, marketing platforms, or imaging hardware vendors.
  • Single-vendor lock-in for the e-Nabız/USS bridge means migrations off Dr.DENTES require rebuilding the Turkish compliance integration in whatever dental PM replaces it.
  • Lightweight reporting and analytics versus enterprise-tier dental PMs; reviewers and the vendor's own feature page describe analytics as 'detailed reporting' rather than a configurable BI layer.

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 Dr.DENTES objects map to Twenty CRM

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

Dr.DENTES

Patient

maps to

Twenty CRM

People

1:1
Fully supported

Dr.DENTES Patient records map directly to Twenty People. Each patient becomes a People record with name, email, phone, address, and a link to the referring practice as a Company. Original patient create dates are preserved in a custom datetime field since Twenty's createdAt is set at import time.

Dr.DENTES

Patient.Guardian

maps to

Twenty CRM

People

1:many
Fully supported

When a Dr.DENTES patient record includes a guardian or emergency contact, that contact becomes a separate People record linked to the patient record via a custom relation field. Guardian relationships are not native to Twenty's schema and require a custom relation or linked Task note for retrieval.

Dr.DENTES

Practice / Referring Office

maps to

Twenty CRM

Company

1:1
Fully supported

Dr.DENTES practices or referring offices map to Twenty Companies. Company name, address, phone, and domain map directly to Twenty Company fields. If the source stores referring dentist NPI or specialty data, those migrate as custom fields on the Company record. Practice-level identifiers ensure downstream reporting can segment revenue by location or referral source.

Dr.DENTES

Appointment

maps to

Twenty CRM

Task

1:1
Fully supported

Dr.DENTES appointment records (date, time, provider, procedure code, status) transform into Twenty Tasks linked to the Patient People record. Appointment type maps to Task title, scheduled date to due date, provider to assignee (resolved by email match against Twenty workspace members). Status is stored as a custom select field since Twenty Tasks do not have native appointment status workflows.

Dr.DENTES

Treatment Plan

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Dr.DENTES treatment plans — which include procedure codes, estimated costs, and completion status — map to Twenty Opportunities. Treatment plan total fee maps to Opportunity amount, planned start date to Expected Close Date, and procedure status to Opportunity stage (Proposal, Booked, Completed). Each treatment line item becomes a custom Notes attachment for reference.

Dr.DENTES

Treatment Line Item

maps to

Twenty CRM

Custom Object: Treatment Procedure

1:1
Fully supported

Individual procedures within a Dr.DENTES treatment plan (e.g., D7140 extraction, D2750 crown) map to a custom Treatment Procedure object in Twenty. Each record links to the parent Opportunity and the Patient People record. Tooth number and surface data from Dr.DENTES is stored as custom text fields since Twenty has no native dental chart schema.

Dr.DENTES

Insurance Claim

maps to

Twenty CRM

Custom Object: Insurance Claim

1:1
Fully supported

Dr.DENTES insurance claim records (claim ID, payer, submitted amount, status, payment received) migrate to a custom Insurance Claim object linked to the Patient People record. Claim status transitions (Submitted, Pending, Paid, Denied) map to a custom select field. Secondary claim linkage requires a custom relation field or Notes attachment since Twenty has no native claims object.

Dr.DENTES

Insurance Payer

maps to

Twenty CRM

Company

1:1
Fully supported

Dr.DENTES insurance payer records (insurance company name, address, payer ID) map to Twenty Companies with a custom payer_type select field set to 'Insurance Payer'. Linking insurance claims to payer companies enables reporting on revenue by insurance carrier across the patient population.

Dr.DENTES

Billing / Ledger Entry

maps to

Twenty CRM

Custom Object: Billing Ledger

1:1
Fully supported

Dr.DENTES billing ledger entries — charges, payments, adjustments, and write-offs — migrate as records in a custom Billing Ledger object linked to the Patient People record. Each entry stores amount, type (charge, payment, adjustment), date, and payment method. Aging reports must be rebuilt as Twenty views with custom filters on ledger entry dates and types.

Dr.DENTES

Recall / Re-care

maps to

Twenty CRM

Task

1:1
Fully supported

Dr.DENTES recall appointments (6-month hygiene recall, annual exam) migrate as Twenty Tasks with a custom recall_type select field. Due date is set to the recall target date, assignee to the primary provider. Recurrence must be rebuilt manually in Twenty's workflow builder since Twenty Tasks do not have native recurrence rules.

Dr.DENTES

Clinical Note

maps to

Twenty CRM

Note

1:1
Fully supported

Dr.DENTES clinical notes and clinical attachments migrate as Twenty Notes linked to the Patient People record. Rich-text formatting in notes is preserved. If Dr.DENTES supports file attachments, those are downloaded and re-uploaded to Twenty Files linked to the Note or People record.

Dr.DENTES

User / Provider

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

Dr.DENTES provider and staff user records resolve by email match against Twenty workspace members. Users without a matching email are flagged before migration — the practice must invite them to Twenty first or assign their records to a fallback owner. Provider specialties and NPI numbers migrate as custom fields on the workspace member profile.

Dr.DENTES

Custom Form / Survey Response

maps to

Twenty CRM

Custom Object

1:1
Fully supported

Dr.DENTES custom intake forms, health history questionnaires, or satisfaction surveys migrate as custom objects in Twenty. Each response becomes a record linked to the Patient People record. Survey question fields become custom fields on the object — field types are mapped from the source (text, date, select, multi-select) to the closest Twenty field type equivalent.

Dr.DENTES

Inventory / Supply Item

maps to

Twenty CRM

Custom Object: Supply Item

1:1
Fully supported

Dr.DENTES supply or inventory tracking (if exported) maps to a custom Supply Item object in Twenty. Fields include item name, SKU, quantity on hand, reorder level, and supplier Company link. This object is optional and only included if the practice uses Dr.DENTES for supply management and wants to track those records post-migration.

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.

Dr.DENTES logo

Dr.DENTES gotchas

High

Turkish-compliance integrations are not portable

High

No published API

Medium

AI radiograph analysis is configuration, not patient data

Low

Voice-capture metadata may not transfer

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

  • Dr.DENTES has no publicly documented REST API — migration runs on CSV export only

    Dr.DENTES does not publish a public API in its documentation (per drdentes.com.tr/api — API access requires contacting the vendor directly and is granted only to existing customers). This means all migration runs use CSV export of Dr.DENTES reporting modules. If the practice has never exported reports, they must first build exports in Dr.DENTES before FlitStack can map them. FlitStack requires at minimum: Patient list, Appointment history, Treatment plans, and Insurance claim ledger. Any objects not exported from Dr.DENTES cannot be migrated. Customers should contact Dr.DENTES support to request CSV export templates or API credential provisioning before scoping the migration.

  • Twenty's Pro plan caps custom objects at 10 — Organization plan required for full treatment plan and insurance claim objects

    Dr.DENTES treatment plans and insurance claims require dedicated custom objects in Twenty. The Pro Cloud plan ($9/user/month) includes only 10 custom objects, and custom objects on Pro do not support all field types available on Organization ($19/user/month). Practices migrating full treatment procedure line items, per-tooth records, and insurance claim status histories may exceed the 10-object Pro cap. FlitStack delivers a custom object count before migration and flags if the practice needs to upgrade to Organization plan. Self-hosted Twenty has unlimited custom objects at no additional cost, which may be a factor in the platform switch decision.

  • Twenty has no native dental chart schema — tooth numbers and surface data require custom text fields

    Dr.DENTES stores tooth numbering (ANSI/ADA Universal Numbering System) and surface data (M, O, D, MOD, etc.) as native fields. Twenty CRM has no concept of dental charts or clinical tooth anatomy. Each treatment procedure's tooth number and surface data must be mapped to custom text fields on the Treatment Procedure custom object. This means clinical tooth-level records look like plain text in Twenty — there is no visual dental chart, quadrant visualization, or surface diagram. Practices that rely on tooth-level clinical data for treatment planning or referrals should evaluate whether custom field text is sufficient for their workflow or whether a supplemental clinical tool is needed alongside Twenty.

  • Appointment recall and sequence automations must be rebuilt — Twenty lacks native recall engine on Pro plan

    Dr.DENTES recall engine handles 6-month hygiene reminders, annual exam alerts, and perio maintenance intervals automatically based on procedure completion dates. Twenty's Pro plan workflow builder is limited and does not include a native recall or re-care trigger based on appointment history. The Organization plan ($19/user/month) includes the full workflow builder, but even then, recall logic — calculating next appointment date from last procedure date and triggering a Task or email — requires manual workflow construction. FlitStack exports the Dr.DENTES recall configuration as a rebuild reference document for the Twenty admin. Practices that depend heavily on automated recall should budget time for workflow rebuild as a post-migration step.

  • Insurance billing ledger aging reports must be rebuilt as Twenty custom views

    Dr.DENTES insurance aging reports — tracking submitted vs. paid vs. denied claims by time bucket (30/60/90/120+ days) — are not a native Twenty feature. The custom Insurance Claim object stores claim amounts and status, but aging analysis requires building custom Twenty views with date-based filters and grouping by claim_status__c and entry_date__c. FlitStack migrates the ledger entries accurately, but the practice's accounting team must configure aging views in Twenty after migration. If the practice uses insurance aging for daily AR management, plan for 4–8 hours of Twenty view configuration post-migration.

Migration approach

Six steps for a successful Dr.DENTES to Twenty CRM data migration

  1. Audit Dr.DENTES exports and configure Twenty custom objects

    FlitStack requests CSV exports from Dr.DENTES covering all record types: Patient list, Appointment history, Treatment plans, Treatment procedures, Insurance claims, Insurance payers, Billing ledger, Recall records, and Provider/Staff list. We verify record counts per object and flag any missing objects. Simultaneously, the practice creates custom objects in Twenty (Settings → Data Model) for Treatment Procedure, Insurance Claim, and Billing Ledger — plus custom fields on People, Task, and Opportunity. FlitStack delivers a field creation checklist so Twenty's schema is ready before data import begins. All workspace members must be invited to Twenty and accept invitations before import so owner resolution works.

  2. Resolve providers and staff by email against Twenty workspace members

    Dr.DENTES provider and staff IDs are resolved by email match against Twenty workspace members. FlitStack generates a pre-flight owner report listing every Dr.DENTES user with their email and Twenty match status. Unmatched users — those without a Twenty account — are flagged before migration. The practice either creates their Twenty account first or assigns their records to a fallback owner. No appointment, task, or treatment record lands in Twenty without a valid assignee.

  3. Import Companies and Insurance Payers first

    Following Twenty's import order requirement, FlitStack imports the Dr.DENTES referring practice records as Twenty Companies first, then insurance payer companies. This establishes Company IDs needed for foreign key resolution in the subsequent People import. Practice name, NPI number, address, and phone are mapped per the field mapping. Insurance payer companies receive the payer_type__c custom field value 'Insurance Payer' via value mapping.

  4. Import People (patients) linked to Companies

    Dr.DENTES patient records are imported as Twenty People, with the referring_practice_id resolved to the Company ID created in step 3. Guardian and emergency contacts are imported as separate People records with a custom relation back to the primary patient. Original Dr.DENTES create dates are preserved in original_create_date__c, and the Dr.DENTES patient ID is stored in source_system_id__c for traceability and delta-run de-duplication.

  5. Import Opportunities, Tasks, and custom objects

    Treatment plans are imported as Twenty Opportunities linked to the Patient People record and Company. Appointments are imported as Twenty Tasks linked to People with provider resolved to assignee. Recall records become Tasks with a custom recall_type__c field. Insurance claims are imported as Insurance Claim custom objects linked to People and the Insurance Payer Company. Billing ledger entries are imported as Billing Ledger custom objects linked to People. Treatment procedure line items are imported last as the Treatment Procedure custom object, linked to the parent Opportunity and People record.

  6. Run sample migration with field-level diff and delta-pickup cutover

    A representative slice — typically 100–500 records spanning patients, appointments, treatment plans, and insurance claims — migrates first. FlitStack generates a field-level diff report comparing source Dr.DENTES values against the Twenty destination fields, showing every transformation applied. The practice reviews and approves the mapping. Full migration then runs, followed by a 24–48 hour delta-pickup window capturing any records created or modified in Dr.DENTES during cutover. An audit log records every operation. One-click rollback reverts to the pre-migration state if reconciliation detects discrepancies.

Platform deep dives

Context on both ends of the pair

Dr.DENTES logo

Dr.DENTES

Source

Strengths

  • Cloud-based, multi-device (phone, tablet, PC, smart TV) access with unlimited users, devices, and patients.
  • Long product tenure since 1992 inside Sanal Software, giving a stable feature catalogue.
  • Built-in Turkish-compliance integrations (USS/e-Nabız, e-Reçete, e-Invoice).
  • AI-based radiograph analysis, voice-driven photo capture, and multi-language UI (9 languages) included.
  • Subscription pricing from $120/year with a no-credit-card free trial.

Weaknesses

  • Geography- and compliance-tied to Turkey; less relevant for clinics outside that market.
  • Minimal public review footprint compared with Western dental PMs.
  • No documented public API or developer portal; integrations rely on the vendor.
  • Reporting is descriptive rather than a configurable BI layer.
  • Turkish-compliance bridges are non-portable and must be rebuilt in the destination during migration.
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 Dr.DENTES 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

    Dr.DENTES: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Dr.DENTES 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 Dr.DENTES to Twenty CRM data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Dr.DENTES-to-Twenty migrations complete in 48–72 hours for practices with under 25,000 exported records. The longest phase is typically configuring Twenty's custom objects (Treatment Procedure, Insurance Claim, Billing Ledger) and custom fields before import. Practices with over 100,000 records — or those with multi-provider appointment histories spanning several years — extend to 5–10 business days. The delta-pickup window runs 24–48 hours after the initial bulk import to capture in-flight changes.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Dr.DENTES.
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