CRM migration

Migrate from DGL Practice Manager to Twenty CRM

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

DGL Practice Manager logo

DGL Practice Manager

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between DGL Practice Manager and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

DGL Practice Manager organizes clinical data around a patient-centric model: contacts, companies, appointments, invoicing, and EDI functions for insurer billing. Its SQL-based architecture stores patient records with referral sources, clinical notes, and financial transactions in tightly coupled tables. Twenty CRM organizes data around People (contacts), Companies (organizations), and Opportunities (deals) using a PostgreSQL-backed relational model with custom object support. The migration carries DGL contacts, companies, appointment histories, and invoicing records into Twenty's standard objects, while custom fields are recreated in Twenty's Settings → Data Model section. DGL's workflows, EDI configurations, and insurer-specific billing rules cannot migrate directly and must be rebuilt in Twenty or handled through integrations. FlitStack AI uses CSV exports from DGL mapped to Twenty's import API, respecting the required sequence: Companies first, then People with companyId links, then Opportunities with personId links. A delta-pickup window captures any records modified during cutover, and audit logs track every operation throughout the migration process.

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

DGL Practice Manager logo

DGL Practice Manager

What's pushing teams away

  • Frequent reliability failures including application crashes, inability to access the patient database, and Word integration breaking without warning erode trust in day-to-day use.
  • Outdated interface and non-intuitive feature placement make routine tasks feel laborious compared to modern browser-based alternatives.
  • Extortionate per-invoice charges for insurer submissions add up significantly for high-volume billing practices and create an ongoing cost burden.
  • Prohibitive data extraction fees charged when leaving make switching away financially punishing and function as a de facto lock-in mechanism.
  • Absence of a patient-facing portal, native dictation integration, and modern workflow automation leaves DGL behind competitors offering these features as standard.

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 DGL Practice Manager objects map to Twenty CRM

Each row shows how a DGL Practice Manager 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.

DGL Practice Manager

Patient / Contact

maps to

Twenty CRM

People

1:1
Fully supported

DGL's patient records map directly to Twenty's People object. Each patient record carries name, email, phone, address, and demographic data that Twenty's standard People fields accept. DGL patients without email receive a placeholder email during migration for Twenty's uniqueness constraint compliance.

DGL Practice Manager

Practice / Clinic

maps to

Twenty CRM

Company

1:1
Fully supported

DGL's practice or clinic entity — the organization the consultant works within — maps directly to Twenty's Companies object. The clinic name, address, phone, and industry classification transfer as standard Company fields. Multi-clinic setups that operate across several locations generate multiple Company records in Twenty, each linked to the appropriate consultant People records to preserve the organizational hierarchy from DGL.

DGL Practice Manager

Referring Physician

maps to

Twenty CRM

People (secondary)

1:1
Fully supported

DGL tracks referring physicians as separate contact records. These map to Twenty People records with a custom 'Referrer' tag or a dedicated People view filtered by source field. Referrer attribution on patient records carries over as a People relation or custom field.

DGL Practice Manager

Appointment / Consultation

maps to

Twenty CRM

Task

1:1
Fully supported

DGL appointment data (date, time, type, duration) migrates as Twenty Tasks linked to the patient People record. The Task 'body' field captures appointment type and notes; due date maps from appointment date. Recurring appointment series generate individual Task records per occurrence.

DGL Practice Manager

Invoice / Bill

maps to

Twenty CRM

Opportunity

1:1
Fully supported

DGL invoicing records (amount, status, insurer, date) map to Twenty Opportunities. Invoice amount becomes Opportunity amount, invoice date becomes Close Date, and payment status (paid/pending/overdue) maps to a custom Opportunity stage. Unpaid invoices become open Opportunities with the original billing date preserved.

DGL Practice Manager

EDI / Insurer Submission

maps to

Twenty CRM

Custom Field on Opportunity

1:1
Fully supported

DGL's EDI submission tracking — including insurer name, submission ID, and acknowledgement status — has no direct equivalent in Twenty's native data model. These fields are recreated as custom fields on the Opportunity object: Insurer_Name__c, EDI_Submission_ID__c, and EDI_Status__c. Your admin configures the pick-list options in Twenty's field settings to match the insurer codes used in DGL, ensuring submission tracking continues without interruption after migration.

DGL Practice Manager

Clinical Note

maps to

Twenty CRM

Note

1:1
Fully supported

DGL clinical notes attached to patient records migrate as Twenty Notes linked to the corresponding People record. The original author, creation date, and note content transfer completely. Rich-text formatting simplifies to plain text for compatibility with Twenty's Note field structure, ensuring all clinical documentation is preserved in readable format.

DGL Practice Manager

Document / Attachment

maps to

Twenty CRM

Note Attachments

1:1
Fully supported

DGL document attachments — including referral letters, clinical reports, and supporting files — are re-uploaded to Twenty as Note attachments. File size limits per Twenty's storage configuration apply and should be verified before migration. Inline images embedded within documents are extracted and hosted separately, with the original links preserved in the Note body to maintain document context.

DGL Practice Manager

User / Owner

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

DGL user accounts (consultants, secretaries, admin staff) map to Twenty Workspace Members. Resolution happens by email match — each DGL user email must have a corresponding Twenty account invitation sent before migration so owner assignments on records resolve correctly. Unmatched users are flagged for fallback assignment.

DGL Practice Manager

Custom Property (patient)

maps to

Twenty CRM

Custom Field on People

1:1
Fully supported

DGL custom properties on patient records (e.g., referral source, insurance provider, clinical classification) migrate as custom fields on Twenty's People object. Each custom property requires a corresponding field created in Settings → Data Model before import; field type (text, select, multi-select) matches DGL's data type where determinable.

DGL Practice Manager

Workflow / Automation

maps to

Twenty CRM

Workflow (manual rebuild)

1:1
Fully supported

DGL workflows and automated sequences (appointment reminders, invoice follow-ups, insurer escalation rules) do not migrate to Twenty. These must be rebuilt using Twenty's workflow builder (Settings → Workflows) or via integrations. FlitStack exports your DGL workflow definitions as a configuration reference document for your Twenty admin.

DGL Practice Manager

Report / Dashboard

maps to

Twenty CRM

View (manual rebuild)

1:1
Fully supported

DGL reports and dashboards built on its SQL schema cannot migrate directly to Twenty. Twenty's Views (table, kanban, pipeline) serve a similar purpose — your admin recreates key reports by configuring Twenty Views with the migrated data. The underlying report data (contacts, invoices, appointments) is available in Twenty for rebuilding.

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.

DGL Practice Manager logo

DGL Practice Manager gotchas

High

Per-invoice insurer submission charges inflate costs silently

High

Extortionate data extraction fee creates lock-in barrier

High

No public API means migration relies on DGL's goodwill

Medium

SQL infrastructure update in progress may alter the schema

Medium

Document generation depends on Microsoft Word on the local machine

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

  • DGL patient-to-Twenty People email uniqueness constraint

    Twenty CRM enforces email uniqueness at the People object level — duplicate emails across records are rejected during import. DGL Practice Manager stores patients who may share email addresses (e.g., family members under one household email). FlitStack AI handles this by appending a numeric suffix to duplicate emails (e.g., [email protected] becomes [email protected]) and logs the mapping so your team can verify and consolidate records post-migration. This prevents import failures but requires admin review of duplicate email records to ensure data integrity.

  • Twenty requires pre-created custom fields before CSV import

    Twenty's CSV import creates records but not fields — if a custom field does not exist in Settings → Data Model at import time, the corresponding column in the CSV is silently ignored. DGL Practice Manager custom properties (insurer codes, referral sources, clinical classifications) must be recreated as Twenty custom fields before migration runs. FlitStack delivers a custom field creation plan based on DGL's schema audit, and your Twenty admin pre-creates fields in Settings → Data Model. Fields with select or multi-select types require option lists matching DGL's pick-list values to avoid data loss during import.

  • DGL invoicing to Twenty Opportunities requires custom stage mapping

    DGL Practice Manager tracks invoice payment statuses (Paid, Pending, Overdue, Written Off, Part-Paid) that have no direct equivalent in Twenty's Opportunity stage model. Twenty's default stages (New, Qualified, Proposition, Negotiation, Won, Lost) require customization to reflect medical billing workflows. FlitStack maps DGL statuses to your configured Twenty stage values, but the stage names and probability weights must be set in Settings → Opportunities before migration — otherwise all Opportunities land in the default 'New' stage regardless of DGL payment status.

  • EDI submission tracking has no native Twenty equivalent

    DGL Practice Manager's EDI (Electronic Data Interchange) submission tracking for insurer billing — submission IDs, acknowledgement statuses, rejection codes — stores data in DGL-specific database fields with no corresponding Twenty native object or field. FlitStack migrates this data to custom fields on the Opportunity object (EDI_Submission_ID__c, EDI_Status__c, Insurer__c), but your admin must create these fields and configure the pick-list values matching your insurers' codes. Without pre-configuration, EDI status history is at risk of being omitted from the migration.

  • DGL appointment data loses calendar integration after migration

    DGL Practice Manager appointment records (date, time, consultant, type) migrate as Twenty Tasks linked to patient People records, but DGL's native calendar integration with Microsoft Outlook or Google Calendar does not transfer. Twenty's workflow builder can trigger calendar events, but the existing appointment history in DGL becomes static Tasks — no live sync back to Outlook or Google Calendar. If your team relies on DGL's calendar push for appointment reminders, this workflow must be rebuilt in Twenty using available integrations or the workflow API.

Migration approach

Six steps for a successful DGL Practice Manager to Twenty CRM data migration

  1. Audit DGL data model and export configuration

    FlitStack AI begins every migration with a structured data audit of your DGL Practice Manager instance. We identify all record types (patients, practices, referrers, appointments, invoices, clinical notes), quantify record counts per type, and document any custom properties or EDI configurations. This audit produces a DGL export specification: which objects to export, which fields to include, and export order to support the required import sequencing. We also flag records with missing required fields (e.g., patients without email) that need placeholder values before Twenty import.

  2. Prepare Twenty workspace schema

    Before data moves, your Twenty admin creates the custom fields identified during the DGL audit in Settings → Data Model. FlitStack delivers a field creation checklist mapping each DGL custom property to a Twenty field name, type, and (for select fields) option list values. We also configure Opportunity stages to match your DGL invoice payment statuses, and invite all DGL users to Twenty so owner resolution by email succeeds during import. The Twenty workspace must be schema-ready before migration validation begins.

  3. Run test migration with sample data

    A representative slice of DGL records — typically 200–500 covering patients, practices, appointments, invoices, and clinical notes — migrates first into your Twenty workspace. FlitStack generates a field-level diff report comparing source values against destination fields, flagging any mapping gaps, transform errors, or duplicate email conflicts. You review the diff with your admin, confirm Opportunity stage mapping, and approve the field mapping before the full migration commits. This step catches schema mismatches before thousands of records land in Twenty.

  4. Execute full migration with delta-pickup window

    Once the test migration is approved, FlitStack runs the full export from DGL Practice Manager and import into Twenty following the required sequence: Companies first (referrer organizations), then People (patients and referrers with companyId links), then Opportunities (invoices with personId links), then Tasks (appointments) and Notes (clinical records). A delta-pickup window of 24–48 hours captures any DGL records modified or created during the cutover period. Every operation is logged in an audit trail, and one-click rollback reverts all changes if reconciliation fails.

  5. Deliver reconciliation report and rebuild reference

    Post-migration, FlitStack delivers a reconciliation report comparing DGL record counts and key field totals against Twenty record counts and sums. Mismatches are investigated and corrected. We also deliver a DGL workflow export — a structured document listing your DGL automation rules (appointment reminders, invoice follow-ups, insurer escalations) as a reference for rebuilding in Twenty's workflow builder. The document includes trigger conditions, action sequences, and any third-party integrations DGL used so your admin can reconstruct operational workflows in Twenty.

Platform deep dives

Context on both ends of the pair

DGL Practice Manager logo

DGL Practice Manager

Source

Strengths

  • Integrated clinical records, diary, billing, and document creation in a single cloud-hosted platform.
  • EDI-enabled insurer billing with automatic shortfall detection for insurance-heavy practices.
  • Multi-consultant, multi-diary configuration supports clinic and LLP structures at a single practice level.
  • Microsoft Word integration for letter drafting with customizable letterhead templates.
  • Automatic cloud updates eliminate local installation and maintenance overhead for practices.

Weaknesses

  • No documented public API limits programmatic access and complicates automated migration scoping.
  • No native patient self-service portal forces practices to manage inbound administrative contact manually.
  • Dictation requires a separate Dragon Medical integration rather than being built into the clinical workflow.
  • Ongoing per-invoice charges for insurer submissions add material cost for high-volume billing practices.
  • Frequent reliability issues including crashes and database access failures reported across multiple review sources.
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 manual workaround.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across DGL Practice Manager and Twenty CRM.

  • Object compatibility

    B

    1 of 8 objects need a manual workaround.

  • 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

    DGL Practice Manager: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your DGL Practice Manager 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 DGL Practice Manager to Twenty CRM data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most DGL Practice Manager to Twenty CRM migrations complete in 48–72 hours of clock time for practices with under 25,000 records. Practices with 25,000–100,000 records, complex custom property schemas, or EDI data requiring custom field recreation typically require 5–10 days. The longest planning step is configuring Twenty's Opportunity stages and custom fields to match DGL's invoicing and insurer billing model before import can run. A representative test migration adds 1–2 days but catches schema mismatches before the full run.

Adjacent paths

Related migrations to explore

Ready when you are

Move from DGL Practice Manager.
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