CRM migration
Field-level mapping, validation, and rollback between DGL Practice Manager and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
DGL Practice Manager
Source
Salesforce Sales Cloud
Destination
Compatibility
14 of 14
objects map 1:1 between DGL Practice Manager and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
3–10 days
Overview
DGL Practice Manager is a UK-based medical practice management system built around the individual consultant — patient records, practitioner diaries, correspondence, and billing flow through a single proprietary database. Salesforce Sales Cloud is a general-purpose CRM organized around Accounts, Contacts, Leads, and Opportunities with a strongly-typed schema and REST/Bulk API for data ingress. The two systems share no native object equivalence: DGL's practitioner-centric model requires a practitioner-as-Contact mapping strategy, and DGL's appointment and clinical-note objects have no Salesforce standard equivalent. FlitStack AI extracts patient demographics, practitioner profiles, referral metadata, correspondence history, and invoice records from DGL, maps them to Salesforce Accounts, Contacts, and custom objects, creates any required __c custom fields in your Salesforce org, and runs a delta-pickup window at cutover. We explicitly do not migrate DGL workflows, automations, or scheduling logic — those require a Salesforce-native rebuild (or a separate scheduling tool such as Calendly or Acuity). DGL's export limitations mean some practices may need CSV extraction or direct database access for hosted instances, which we factor into the scoping phase.
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 Salesforce Sales Cloud, 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 Record
Salesforce Sales Cloud
Account
1:1DGL patient records map to Salesforce Account objects. Each patient becomes one Account with patient type set via a custom Account Type pick-list (e.g., 'Private Patient', 'NHS Patient'). The Account.Name field uses the patient's full name. Address, phone, and email map directly. Original DGL patient ID stored as Source_System_ID__c for traceability.
DGL Practice Manager
Practitioner / Consultant
Salesforce Sales Cloud
Contact
1:1DGL practitioners (consultants, GPs, secretaries) map to Salesforce Contacts under the primary clinic Account. Each practitioner gets one Contact record with specialty, GMC/GDC number (stored in a custom field), and role. Unassigned practitioners (e.g., referring doctors external to the practice) get their own Contact records with no Account link.
DGL Practice Manager
Patient–Practitioner Relationship
Salesforce Sales Cloud
AccountContactRelation
1:1DGL's relationship between a patient record and the responsible practitioner maps to Salesforce's AccountContactRelation junction object. The IsPrimary__c flag marks the lead consultant for each patient. This junction supports N:1 patient-to-practitioner relationships — critical for clinics where patients see multiple consultants.
DGL Practice Manager
Appointment / Diary Entry
Salesforce Sales Cloud
Custom Object: Appointment__c
1:1DGL appointments have no Salesforce standard equivalent. We create a custom Appointment__c object with fields for AppointmentDate__c, StartTime__c, EndTime__c, AppointmentType__c, Status__c, and a lookup to the patient Account and practitioner Contact. If your practice uses a separate scheduling tool post-migration (e.g., Calendly, Acuity), the Appointment__c records serve as historical reference.
DGL Practice Manager
Clinical Note / Letter
Salesforce Sales Cloud
Note
1:1DGL clinical notes and letter content migrate as Salesforce Notes attached to the patient Account. The Note.Title uses a standardized format (e.g., 'Letter – [Date] – [Author]'), and the Body field contains the full note text. Original author, creation date, and last-modified date are preserved. Note: Salesforce Notes have a 32KB body limit per record — very long letters are split into multiple Notes with sequence numbering.
DGL Practice Manager
Correspondence (Emails, Letters Sent)
Salesforce Sales Cloud
Task
1:1Outgoing correspondence from DGL maps to Salesforce Tasks with Type='Correspondence', Subject containing the recipient and date, and Status='Completed'. The Task is linked to the patient Account. Inbound correspondence received via email can be logged as Task records with Subject and Description fields populated from the source.
DGL Practice Manager
Invoice / Billing Record
Salesforce Sales Cloud
Custom Object: Invoice__c
1:1DGL invoice records (including EDI insurer submissions and automatic shortfall calculations) map to a custom Invoice__c object with fields for InvoiceNumber__c, InvoiceDate__c, TotalAmount__c, AmountPaid__c, Balance__c, InsurerName__c, and Status__c pick-list (Draft, Sent, Paid, Partially Paid, Written Off). The invoice is linked to the patient Account and optionally to an Opportunity if the invoice relates to a billable event.
DGL Practice Manager
Referral Source
Salesforce Sales Cloud
Custom field on Account
1:1DGL referral tracking (which GP, hospital, or other source referred the patient) maps to Referral_Source__c (text or pick-list depending on volume) and Referring_Practitioner__c (lookup to the referring practitioner's Contact record) on the patient Account. This preserves referral network intelligence for marketing and reporting in Salesforce.
DGL Practice Manager
Insurance / Payor Details
Salesforce Sales Cloud
Custom fields on Account
1:1DGL insurer billing fields (insurer name, policy number, membership ID, pre-authorization code) map to custom fields on the patient Account: Insurer_Name__c, Policy_Number__c, Membership_ID__c, Preauth_Code__c. These support Salesforce reports on insurer mix and claim tracking without requiring a full insurance module.
DGL Practice Manager
Medical History / Allergies
Salesforce Sales Cloud
Custom fields on Account
1:1DGL's patient flags for allergies, medical conditions, and special notes migrate to custom fields on the patient Account: Patient_Allergies__c (long text area), Medical_Conditions__c (long text area), and Special_Notes__c (text). These are rendered on the Account page via a custom Lightning component if your Salesforce admin activates it.
DGL Practice Manager
Document / File Attachment
Salesforce Sales Cloud
ContentDocument / Salesforce Files
1:1DGL file attachments (scanned documents, PDF letters, imaging referrals) re-upload to Salesforce Files and are linked to the parent patient Account via ContentDocumentLink. File size limits of 25MB per file apply (Salesforce default); files larger than this are flagged and handled as external document links stored in a custom URL field.
DGL Practice Manager
Practitioner Diary / Resource
Salesforce Sales Cloud
No Equivalent
1:1DGL's practitioner diary and resource scheduling configuration (diary templates, room bookings, session types) has no Salesforce standard equivalent and cannot be migrated as structured data. FlitStack exports diary configuration as a structured PDF reference document for manual rebuild in your chosen scheduling tool (e.g., Salesforce Scheduler, Calendly, Acuity).
DGL Practice Manager
DGL System Configuration / Preferences
Salesforce Sales Cloud
No Equivalent
1:1DGL system preferences (letterhead templates, auto-population rules, clinical template defaults) are DGL-specific application configuration that do not map to Salesforce. These must be rebuilt manually in Salesforce's Letterhead, Email Templates, and Flow tools, or reconfigured in your chosen document generation tool.
DGL Practice Manager
DGL Workflow / Automation Rules
Salesforce Sales Cloud
No Equivalent
1:1DGL's workflow rules (e.g., automatic letter generation on appointment confirmation, insurer claim triggering on invoice creation) do not migrate. FlitStack exports DGL workflow definitions as a structured Word document for your Salesforce admin to rebuild in Flow. Any automations involving appointments must be rebuilt in your chosen scheduling tool's automation layer.
| DGL Practice Manager | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Patient Record | Account1:1 | Fully supported | |
| Practitioner / Consultant | Contact1:1 | Fully supported | |
| Patient–Practitioner Relationship | AccountContactRelation1:1 | Fully supported | |
| Appointment / Diary Entry | Custom Object: Appointment__c1:1 | Fully supported | |
| Clinical Note / Letter | Note1:1 | Fully supported | |
| Correspondence (Emails, Letters Sent) | Task1:1 | Fully supported | |
| Invoice / Billing Record | Custom Object: Invoice__c1:1 | Fully supported | |
| Referral Source | Custom field on Account1:1 | Fully supported | |
| Insurance / Payor Details | Custom fields on Account1:1 | Fully supported | |
| Medical History / Allergies | Custom fields on Account1:1 | Fully supported | |
| Document / File Attachment | ContentDocument / Salesforce Files1:1 | Fully supported | |
| Practitioner Diary / Resource | No Equivalent1:1 | Fully supported | |
| DGL System Configuration / Preferences | No Equivalent1:1 | Fully supported | |
| DGL Workflow / Automation Rules | No Equivalent1: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
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Assess DGL data export path and map objects to Salesforce schema
FlitStack's migration engineers review your DGL instance to determine the available export path: direct SQL query for on-premises deployments, DGL server-side export for hosted instances, or CSV-based extraction for individual object types. We then map DGL objects (patient records, practitioners, appointments, correspondence, invoices) to Salesforce objects and custom fields, identifying any __c fields that need pre-creation in your Salesforce org. The result is a detailed Migration Plan document with object-to-object mapping, field-level transformation rules, and a list of Salesforce custom fields to create before data migration begins.
Create Salesforce custom objects and __c fields
Using the Migration Plan, FlitStack creates the Appointment__c and Invoice__c custom objects in your Salesforce org, along with all custom fields (Patient_Allergies__c, Referral_Source__c, GMC_Number__c, and 25+ others) required to receive DGL data. We also configure the pick-list values, validation rules, and page-layout assignments. If your org uses record types for different patient categories (NHS vs. private), we coordinate with your admin to ensure record type assignments are applied during migration. This step requires a Salesforce admin with API-enabled credentials; FlitStack can also deploy via Metadata API using your org's connected app credentials.
Extract data from DGL and load into Salesforce staging objects
FlitStack extracts patient records, practitioner contacts, appointment history, clinical notes, and invoice data from DGL using the agreed export path. Data is validated for completeness, deduplication (against Source_System_ID__c), and referential integrity (all PractitionerID values must resolve to a Contact record before patient records load). For hosted DGL instances, we coordinate with your DGL contact to schedule the server-side export and receive the data file. The extracted data is transformed using the field mapping and loaded into Salesforce via Bulk API 2.0 for large datasets or REST API for smaller volumes. Patient Accounts load first, then practitioner Contacts, then the junction AccountContactRelation records, then appointments, notes, and invoices.
Run sample migration with field-level diff and reconciliation
Before committing the full migration, FlitStack runs a sample migration of 100–500 representative records across all object types — a mix of patients, practitioners, appointments, clinical notes, and invoices. We generate a field-level diff comparing source DGL values to the destination Salesforce field values for every mapped column. You review the diff to confirm field mapping accuracy (e.g., that Patient_Allergies__c contains the correct DGL allergy text, that Appointment_Type__c maps the right pick-list value). Any mapping errors are corrected in the transformation logic and the sample re-runs. Approval of the sample diff is the gate for the full migration run.
Execute full migration with delta-pickup cutover and rollback audit
The full dataset migrates to Salesforce using Bulk API 2.0 with batch monitoring. A delta-pickup window opens at the point of go-live: any DGL records modified or created during the migration run are captured in a second, smaller migration pass. FlitStack maintains an audit log of every record inserted, updated, or skipped, with source record ID, destination record ID, and operation timestamp. If reconciliation identifies missing records or incorrect field values, the audit log enables one-click rollback of the affected object types. After delta-pickup closes, you receive a final Migration Report with record counts by object, error summary, and a list of any records that could not migrate (with reason codes) for manual handling.
Platform deep dives
DGL Practice Manager
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 Salesforce Sales Cloud.
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your DGL Practice Manager to Salesforce Sales Cloud 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 Salesforce Sales Cloud
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.