CRM migration
Field-level mapping, validation, and rollback between DGL Practice Manager and HighLevel. We move data and schema; workflows are rebuilt natively in HighLevel.
DGL Practice Manager
Source
HighLevel
Destination
Compatibility
12 of 12
objects map 1:1 between DGL Practice Manager and HighLevel.
Complexity
BStandard
Timeline
48–96 hours
Overview
DGL Practice Manager is a UK-centric medical practice management system built around consultant workflows — patient records, NHS and private insurer billing, appointment scheduling, clinical correspondence, and EDI claims processing all sit in a single database. HighLevel is an all-in-one CRM platform built for agencies and service businesses; it natively surfaces Contacts, Companies, Opportunities, Pipelines, Tasks, and Workflows with a JSON-based API and a 200,000-request daily rate limit. The two platforms share no common data model heritage, which makes the migration technically interesting: DGL's appointment records must translate to HighLevel Calendar Events or Opportunities, DGL's patient contacts map to HighLevel Contacts with custom fields holding NHS numbers and clinical references, and DGL's billing and EDI records become HighLevel Opportunities or custom objects depending on your practice's reporting needs. FlitStack AI sequences the migration by exporting DGL data via scoped read access (or manual CSV if the API is unavailable), mapping every field against a HighLevel schema plan, running a sample migration with field-level diff, then bulk importing all records before a 24–48-hour delta pickup captures any changes made during cutover. Workflows, automations, EDI billing integrations, and NHS-specific configurations do not transfer and must be rebuilt in HighLevel's Workflow Builder or via API.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a DGL Practice Manager object lands in HighLevel, 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
HighLevel
Contact
1:1DGL patient records map to HighLevel Contacts. The primary name, date of birth, NHS number, and contact details transfer as standard fields plus custom fields. Each patient's primary consultant is stored as a Contact custom field referencing the staff member.
DGL Practice Manager
NHS Number
HighLevel
Custom field on Contact (NHS_Number__c)
1:1HighLevel does not provide a native NHS number attribute, so we define a text custom field named NHS_Number__c on the Contact object. During migration the DGL patient identifier is written into this field, making it available for searches, duplicate detection, and all subsequent CSV and API exports. The field is also included in custom reports and any downstream integrations that require the NHS number for patient matching.
DGL Practice Manager
Practice / Clinic
HighLevel
Company
1:1DGL clinic and LLP practice entries are migrated to HighLevel Company records. The practice name, primary address, phone number, and website are transferred as standard Company fields. In a multi-consultant environment each consultant’s Contact record is linked to the same Company, preserving the relationship that patients belong to a single clinic while enabling each staff member to have individual contact details and appointment ownership.
DGL Practice Manager
Appointment / Diary Entry
HighLevel
Calendar Event + Opportunity
1:1DGL diary appointments become HighLevel Calendar Events with original start/end times and attendee information preserved. Appointment outcome (attended, no-show, cancelled) and clinical notes are stored as Opportunity custom fields linked to the associated Contact. Practices that track appointment revenue use Opportunities for this purpose.
DGL Practice Manager
Invoice / Billing Record
HighLevel
Opportunity / Custom Object
1:1DGL invoices do not map to a native HighLevel object because HighLevel has no medical billing module. We create a DGL_Invoice__c custom object with fields for invoice number, amount, insurer, status, and EDI reference. Invoice data is preserved as a searchable record rather than being collapsed into notes.
DGL Practice Manager
Insurer Reference
HighLevel
Custom field on Contact and Opportunity
1:1DGL's private medical insurer references (BUPA, AXA PPP, Vitality, NHS PDF references) are stored as pick-list or text custom fields on both Contact and the DGL_Invoice__c custom object. We map each insurer name to a consistent value so reporting by insurer is possible in HighLevel.
DGL Practice Manager
Clinical Note / Dictation
HighLevel
Note
1:1DGL clinical notes and dictated correspondence are exported as HighLevel Notes attached to the patient Contact. Original timestamps and author (consultant) are preserved. Microsoft Word documents generated in DGL are downloaded and re-uploaded as HighLevel Documents linked to the Contact.
DGL Practice Manager
Staff / User
HighLevel
User
1:1DGL staff entries for consultants, secretaries, and practice managers are imported as HighLevel Users. The migration matches each staff record to a HighLevel User by email; if no matching User exists, a new User is provisioned with the appropriate role. This alignment ensures that appointment ownership, note authorship, and invoice attribution resolve correctly in HighLevel, and it preserves the original staff hierarchy for reporting and task assignment.
DGL Practice Manager
Referral Source
HighLevel
Tag / Custom field on Contact
1:1DGL referral source codes (GP referral, self-pay, insurance pre-authorisation) map to HighLevel Tags on the Contact record. Where a referral has an associated referral partner (e.g., a GP surgery), that partner is created as a HighLevel Company and linked to the Contact.
DGL Practice Manager
EDI Claim / Billing Status
HighLevel
Custom field on DGL_Invoice__c (EDI_Status__c)
1:1Because HighLevel lacks a native EDI billing module, DGL EDI status codes (submitted, acknowledged, paid, rejected) are stored as pick-list values in the DGL_Invoice__c custom object using the EDI_Status__c field. This preserves status strings for reconciliation against insurer remittance advices and enables HighLevel Workflows or reports referencing these codes. The migration does not replicate the live EDI connection to NHS portals or private insurers; those integrations must be rebuilt separately.
DGL Practice Manager
Workflow / Process Automation
HighLevel
Not migratable
1:1DGL's Workflow Management module defines internal practice processes (e.g., appointment reminder sequences, invoice chasing). HighLevel's Workflow Builder uses a different trigger/action model and cannot import DGL workflow definitions. We export the workflow definitions as a structured PDF for your team to rebuild in HighLevel's automation tool.
DGL Practice Manager
Reporting / Dashboard
HighLevel
Not migratable
1:1DGL's built-in reporting module generates practice performance and billing reports. HighLevel's reporting tools are CRM-centric and do not natively replicate DGL's medical billing reports. We migrate the underlying invoice, appointment, and clinical note data so you can rebuild reports in HighLevel or connect a BI tool.
| DGL Practice Manager | HighLevel | Compatibility | |
|---|---|---|---|
| Patient / Contact | Contact1:1 | Fully supported | |
| NHS Number | Custom field on Contact (NHS_Number__c)1:1 | Fully supported | |
| Practice / Clinic | Company1:1 | Fully supported | |
| Appointment / Diary Entry | Calendar Event + Opportunity1:1 | Fully supported | |
| Invoice / Billing Record | Opportunity / Custom Object1:1 | Fully supported | |
| Insurer Reference | Custom field on Contact and Opportunity1:1 | Fully supported | |
| Clinical Note / Dictation | Note1:1 | Fully supported | |
| Staff / User | User1:1 | Fully supported | |
| Referral Source | Tag / Custom field on Contact1:1 | Fully supported | |
| EDI Claim / Billing Status | Custom field on DGL_Invoice__c (EDI_Status__c)1:1 | Fully supported | |
| Workflow / Process Automation | Not migratable1:1 | Fully supported | |
| Reporting / Dashboard | Not migratable1:1 | Fully supported |
Gotchas + challenges
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 gotchas
Per-invoice insurer submission charges inflate costs silently
Extortionate data extraction fee creates lock-in barrier
No public API means migration relies on DGL's goodwill
SQL infrastructure update in progress may alter the schema
Document generation depends on Microsoft Word on the local machine
HighLevel gotchas
Sub-account architecture creates isolated data silos per client
Usage-based telecom and AI costs are not in the subscription price
Workflows have no native equivalent in most destination CRMs
API rate limits cap bulk migration throughput at 100 requests per 10 seconds per sub-account
White-label configuration and branding assets do not export via API
Pair-specific challenges
Migration approach
Establish DGL data access and export scope
FlitStack AI connects to DGL Practice Manager via scoped read access (or your team's manual export if the API is unavailable). We inventory the full record set: patient contacts, appointment history, invoice and EDI records, clinical notes, documents, staff accounts, and all custom fields. We flag any data that DGL's export utility cannot retrieve, flag any inactive staff records, and surface the data extraction cost DGL may levy so you can authorise that step before we proceed. A migration plan document is produced that lists every object, record count, and field mapping for your sign-off.
Design HighLevel schema and custom objects
Before any data is imported, FlitStack AI creates the HighLevel schema to receive it. We create the DGL_Invoice__c custom object with EDI_Status__c and Insurer__c pick-list fields, add NHS_Number__c and clinical custom fields to the Contact object, and set up a DGL Referrals tag taxonomy matching your referral source codes. Consultant staff accounts are matched by email to existing HighLevel users or created as new Users so appointment ownership resolves correctly. We deliver a schema setup checklist so your HighLevel admin can pre-create the structure before the bulk import runs.
Run sample migration with field-level diff
A representative sample — typically 200–500 records covering contacts, appointments, invoices, clinical notes, and document attachments — is migrated first. We generate a field-level diff showing every source field value against the destination field value so you can verify NHS number mapping, appointment ownership, EDI status preservation, and document linkage before the full run commits. Any field mapping corrections are made to the migration plan at this stage.
Bulk import with dependency sequencing
The full migration runs in dependency order: Companies first (so contacts have a primary organisation), then Contacts, then Calendar Events, then Opportunities and the DGL_Invoice__c custom object, then Notes, then Documents. This sequence ensures that foreign keys — contact to company, invoice to contact, event to contact and owner — resolve correctly on import. HighLevel's Bulk CSV import service handles the data asynchronously, and we monitor progress in the Bulk Actions dashboard.
Delta-pickup and cutover validation
A delta-pickup window of 24–48 hours captures any DGL records created or modified during the migration run — particularly relevant for practices with high appointment volume during the cutover week. We run a final validation comparing total record counts and key field values between the DGL export and the HighLevel import, producing a reconciliation report. Audit logs are generated for every import operation, and one-click rollback is available if the reconciliation reveals unexpected discrepancies.
Platform deep dives
DGL Practice Manager
Source
Strengths
Weaknesses
HighLevel
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a manual workaround.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across DGL Practice Manager and HighLevel.
Object compatibility
1 of 8 objects need a manual workaround.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
DGL Practice Manager: Not publicly documented.
Data volume sensitivity
DGL Practice Manager doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during DGL Practice Manager to HighLevel migration scoping. Not seeing yours? Book a call.
Walk through your DGL Practice Manager to HighLevel migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave DGL Practice Manager
Other ways to arrive at HighLevel
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.