CRM migration

Migrate from DGL Practice Manager to Salesforce Sales Cloud

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 logo

DGL Practice Manager

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

100%

14 of 14

objects map 1:1 between DGL Practice Manager and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

3–10 days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How DGL Practice Manager objects map to Salesforce Sales Cloud

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

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

DGL 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

maps to

Salesforce Sales Cloud

Contact

1:1
Fully supported

DGL 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

maps to

Salesforce Sales Cloud

AccountContactRelation

1:1
Fully supported

DGL'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

maps to

Salesforce Sales Cloud

Custom Object: Appointment__c

1:1
Fully supported

DGL 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

maps to

Salesforce Sales Cloud

Note

1:1
Fully supported

DGL 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)

maps to

Salesforce Sales Cloud

Task

1:1
Fully supported

Outgoing 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

maps to

Salesforce Sales Cloud

Custom Object: Invoice__c

1:1
Fully supported

DGL 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

maps to

Salesforce Sales Cloud

Custom field on Account

1:1
Fully supported

DGL 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

maps to

Salesforce Sales Cloud

Custom fields on Account

1:1
Fully supported

DGL 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

maps to

Salesforce Sales Cloud

Custom fields on Account

1:1
Fully supported

DGL'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

maps to

Salesforce Sales Cloud

ContentDocument / Salesforce Files

1:1
Fully supported

DGL 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

maps to

Salesforce Sales Cloud

No Equivalent

1:1
Fully supported

DGL'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

maps to

Salesforce Sales Cloud

No Equivalent

1:1
Fully supported

DGL 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

maps to

Salesforce Sales Cloud

No Equivalent

1:1
Fully supported

DGL'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.

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

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • DGL data export may require direct database access or incur vendor fees

    DGL Practice Manager hosts data in a proprietary SQL backend. For cloud-hosted DGL instances, data extraction may require DGL to run a server-side export — and verified reviews indicate the vendor charges a significant fee when a practice requests data portability to leave. If your DGL instance is hosted on-premises, we can connect directly to the database. If it is cloud-hosted, we factor the export method into scoping: either request DGL's export service or explore CSV-based record extraction for key objects. The vendor data-retention fee is outside FlitStack's scope and must be disclosed by the practice before migration begins.

  • DGL appointments have no Salesforce standard equivalent — a custom object is required

    DGL's practitioner diary and appointment records contain rich scheduling data (appointment type, duration, room, status, referring practitioner) that does not map to any Salesforce standard object. Salesforce has no native scheduling engine — the standard objects are Account, Contact, Lead, Opportunity, Case, Task, and Event. We create a custom Appointment__c object with all DGL appointment fields migrated as custom __c fields, but appointment creation, modification, and cancellation after go-live must run through a separate scheduling tool (Salesforce Scheduler, Calendly, Acuity, or similar). The Appointment__c records serve as historical archive only, unless your practice adopts a scheduling tool that integrates with the custom object via API.

  • Clinical notes exceed Salesforce Notes body limit on long letters

    DGL clinical notes and letter content can run to several thousand words — particularly for consultant correspondence, discharge summaries, and multi-page clinical reports. Salesforce Notes have a hard 32KB body limit per record (approximately 8,000–10,000 characters of plain text depending on encoding). During migration, any Note with a body exceeding 32KB is split into a sequence of Salesforce Notes with numbered titles (e.g., 'Letter – 01 of 03 – [Date] – [Author]'). A custom sequence field on each Note fragment allows tools rebuilding the correspondence to reassemble the full letter. This fragmentation is flagged in the migration report so your admin can decide whether to reassemble or treat each fragment as a standalone record.

  • DGL automations and workflows do not transfer — appointment triggers and letter templates must be rebuilt

    DGL Practice Manager includes workflow rules such as automatic letter generation when an appointment is confirmed, insurer claim triggering when an invoice reaches 'Sent' status, and reminder notifications based on appointment type. Salesforce Flow is the equivalent automation engine, but migration from DGL's rule syntax to Flow's declarative or Apex-based logic is a configuration task, not a data migration. FlitStack exports DGL's automation definitions as a structured Word document listing each rule's trigger, condition, and action — your Salesforce admin (or FlitStack's post-migration consulting team) uses this as a rebuild reference. Any automation touching appointments must be aligned with the scheduling tool you adopt post-migration.

  • Salesforce requires AccountId on Contacts — practitioners without a clinic Account need a placeholder

    Salesforce Contacts must have an AccountId (or be flagged as 'Private' in limited cases). DGL practitioners who are external to the primary clinic (e.g., referring GPs from other practices, hospital consultants) have no DGL clinic affiliation to map to a Salesforce Account. We create a default 'External Practitioners' Account record and link all unaffiliated Contact records to it. If your Salesforce org uses Person Accounts (available in Healthcare and Financial Services editions), external practitioners can alternatively be stored as Person Account records — this requires your admin to enable Person Accounts before migration and is flagged in the pre-migration schema planning phase.

Migration approach

Six steps for a successful DGL Practice Manager to Salesforce Sales Cloud data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

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.
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

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 Salesforce Sales Cloud.

  • 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 Salesforce Sales Cloud 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 Salesforce Sales Cloud data migrations

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

Can't find your answer?

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 consultation

For practices with fewer than 5,000 patient records, DGL Salesforce migrations typically complete within 3–10 days: 1–2 days for export and mapping, 1–2 days for custom field creation, 1 day for the sample migration and diff review, and 1–5 days for the full migration run plus delta-pickup. Practices with 50,000–100,000 records or hosted-instance export complexity extend to 4–6 weeks. The longest variable is DGL's export response time for cloud-hosted instances — if DGL charges a fee or requires a support ticket for data export, that timeline is outside FlitStack's control and must be factored into the project plan from the start.

Adjacent paths

Related migrations to explore

Ready when you are

Move from DGL Practice Manager.
Land in Salesforce Sales Cloud, 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