CRM migration

Migrate from Dentally to Salesforce Sales Cloud

Field-level mapping, validation, and rollback between Dentally and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.

Dentally logo

Dentally

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

100%

11 of 11

objects map 1:1 between Dentally and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Migrating Dentally to Salesforce Sales Cloud means translating a dental practice-management system into a general CRM schema — there is no native one-to-one object match, so most Dentally entities map to Salesforce custom objects and fields. We map patients to Contacts (via an Account parent), practitioners to Users, appointments to Tasks with custom practitioner and surgery fields, and invoices and treatment plans to custom objects. The harder problems are Dentally's per-surgery pricing not translating to Salesforce per-seat licensing, mapping multi-site Dentally practices to Salesforce Territories, and Dentally's clinical data (tooth charts, medical history) requiring custom fields on the Contact record. FlitStack AI sequences the migration so Accounts resolve before Contacts, Contacts resolve before Tasks, and delta-pickup captures any in-flight appointments during cutover. During the mapping phase we also preserve the original created date in a custom datetime field, map NHS numbers to a custom NHS_Number__c field, and store Dentist_Code__c on the User record. All custom fields are created in Salesforce before data insertion to avoid orphaned records. The migration audit log records every inserted row with its source identifier for traceability. Automations, workflows, and e-referral configurations do not migrate — we export those definitions for your Salesforce admin to rebuild in Flow.

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

Dentally logo

Dentally

What's pushing teams away

  • Multi-site practices report hitting API rate limit ceilings that are not publicly documented and require raising a support ticket to negotiate higher thresholds.
  • Tier-gated advanced features such as full imaging integration and enhanced NHS workflows push growing practices toward the highest pricing tier sooner than expected.
  • Limited public API documentation makes it difficult to scope custom integrations or assess data portability before committing to the platform.
  • Dentally's own migration team manages inbound data transfers, meaning practices cannot self-service an export or cross-check their data independently.
  • Smaller practices on the starter tier report that the 5-user cap becomes restrictive as the team grows, creating pressure to upgrade before the software justifies the cost.

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 Dentally objects map to Salesforce Sales Cloud

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

Dentally

Patient

maps to

Salesforce Sales Cloud

Contact + Account

1:1
Fully supported

Dentally Patient maps to a Salesforce Contact under an Account record. Each unique practice or clinic in Dentally becomes an Account first; Patients without a clinic assignment land under a default 'Unassigned' Account. This two-step pattern (Account → Contact) ensures Salesforce's required AccountId relationship resolves before contacts are created.

Dentally

Patient custom fields

maps to

Salesforce Sales Cloud

Contact custom fields (__c suffix)

1:1
Fully supported

Dentally supports custom fields on Patient records (text, tick-box, dropdown). These require Salesforce custom fields on Contact — created with the __c suffix and matching data types. Multi-select pick-lists in Dentally become multi-select pick-lists in Salesforce; text fields become text fields. We create the Salesforce fields first, then map each one during migration.

Dentally

Practitioner

maps to

Salesforce Sales Cloud

User

1:1
Fully supported

Dentally Practitioner resolves to a Salesforce User by email match. Name maps to FirstName + LastName; role (Dentist, Hygienist, Receptionist) maps to a custom Title or Role field on the User record. Active/inactive status maps to the IsActive flag. Unmatched practitioners are flagged before migration — your team either invites them to Salesforce first or assigns their records to a fallback owner.

Dentally

Appointment

maps to

Salesforce Sales Cloud

Task

1:1
Fully supported

Dentally Appointment maps to a Salesforce Task. The appointment start time maps to ActivityDate; start_time and end_time become custom Time_Start__c and Time_End__c fields. Status maps via value-mapping (Scheduled → Not Started, Completed → Completed, Cancelled → Cancelled). The linked Patient becomes WhoId (Contact lookup); the Practitioner becomes a custom Practitioner__c field since Tasks do not support User as WhatId.

Dentally

Appointment custom fields

maps to

Salesforce Sales Cloud

Task custom fields

1:1
Fully supported

Dentally appointment records may carry treatment_codes, surgery, and recall-type custom fields. These map to custom fields on the Task object (e.g., Treatment_Code__c, Surgery__c, Recall_Type__c). Salesforce Tasks support custom fields natively, so no separate custom object is needed. These custom fields preserve the original treatment codes and location references, allowing reports to filter appointments by surgery or recall type in Salesforce.

Dentally

Invoice

maps to

Salesforce Sales Cloud

Invoice__c (custom object)

1:1
Fully supported

Salesforce has no native Invoice object in standard Sales Cloud — invoices from Dentally migrate to a custom Invoice__c object. Fields include invoice_number, invoice_date, total_amount, amount_paid, payment_status, and linked Contact and Account lookups. Payment_status values (Paid, Part Paid, Outstanding, Written Off) require value-mapping to match your Salesforce pick-list.

Dentally

Treatment Plan

maps to

Salesforce Sales Cloud

Treatment_Plan__c (custom object)

1:1
Fully supported

Dentally Treatment Plans — including the plan name, status, proposed_date, and total_price — migrate to a custom Treatment_Plan__c object linked to the Contact record. This preserves the plan's proposed treatment items and pricing without collapsing them into a note field. Status values (Proposed, Accepted, Declined, Completed) require value-mapping to Salesforce pick-list values.

Dentally

Treatment Item

maps to

Salesforce Sales Cloud

Treatment_Item__c (custom object)

1:1
Fully supported

Individual line items within a Dentally Treatment Plan — fee_per_unit, quantity, discount, total — map to a child Treatment_Item__c custom object under Treatment_Plan__c. This preserves the per-item pricing and item description. Link to the Contact for chair-side reference. The Dentally item code and udi_code fields map to custom text fields on the item.

Dentally

Practice / Site

maps to

Salesforce Sales Cloud

Account + Territory

1:1
Fully supported

Dentally multi-site practices (multiple surgeries under one account) map to multiple Salesforce Account records — one per site. For organizations that use Salesforce Territories for multi-location reporting, we deliver a territory-assignment plan as part of the migration package so your Salesforce admin can pre-configure the territory hierarchy before data lands.

Dentally

Attachment / File

maps to

Salesforce Sales Cloud

ContentVersion + ContentDocumentLink

1:1
Fully supported

Files attached to Dentally Patient records, Treatment Plans, or Invoices are downloaded and re-uploaded to Salesforce as Files (ContentVersion + ContentDocumentLink). Each file is linked to the corresponding Salesforce record by type. Salesforce's 25MB per-file limit applies; larger files are flagged before migration.

Dentally

NHS Number / national ID

maps to

Salesforce Sales Cloud

Custom field on Contact

1:1
Fully supported

Dentally Patient records may store NHS_number (UK) or equivalent national health identifiers. Salesforce Contact has no native NHS number field. We create NHS_Number__c as a custom text field on Contact and map the source value directly. If your practice spans multiple countries, equivalent fields (e.g., Health_ID__c) are created per region.

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.

Dentally logo

Dentally gotchas

High

API rate limits are undocumented and require a support request

High

Dentally manages inbound migrations rather than offering self-service export

Medium

Final migration runs the day before go-live, leaving a narrow correction window

Medium

Dentally Vision imaging requires separate product setup

Low

Tier-gated features may be inactive in the migrated environment

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

  • Dentally custom fields on treatment items require Salesforce custom fields

    Dentally lets administrators add custom fields to treatment items (text, tick-box, dropdown) with Level 4 permissions. Salesforce has no Treatment Item object — these custom fields must be created as custom fields on the Contact or a custom Treatment_Item__c object. If Dentally uses multiple field types (multi-select, date, number), each requires a matching Salesforce data type. We inventory every custom field before migration and create the Salesforce schema first so no data lands without a destination.

  • Multi-location Dentally practices need Salesforce Territory configuration

    Dentally supports multiple surgeries under one practice account, priced per surgery. Salesforce Territories are a separate configuration layer — they do not exist in a default Sales Cloud org and require your Salesforce admin to define territory hierarchies, assign criteria, and grant access. We deliver a territory-assignment plan as part of the migration package, but Territory setup itself is a Salesforce admin task before or after data lands. The plan outlines which Accounts should belong to which Territories based on Dentally site identifiers, enabling your admin to pre-configure territory criteria before go-live.

  • Appointments require a Contact lookup before Tasks can be created

    Salesforce Tasks have a required WhoId field pointing to a Contact or Lead. Every Dentally Appointment must resolve to a Patient (Contact) before the Task is created. If a Patient has not yet migrated — or if the Patient email cannot be matched to an existing Contact — the Task creation fails for that row. We sequence the migration as Accounts → Contacts → Tasks so foreign-key dependencies resolve in the correct order.

  • Dentally API rate limits affect export throughput for large practices

    Dentally's API enforces rate limits per account — community posts indicate practices with multiple sites request higher limits. For large practices (5,000+ appointments), API pagination limits can slow the export phase. We implement exponential backoff and chunked extraction during the Dentally export to stay within limits, but this extends discovery and test-migration timelines for high-volume practices. If your practice exceeds these thresholds, we can negotiate an increased rate limit with Dentally or schedule exports during off-peak hours to minimize impact on the migration schedule.

  • Dentally per-surgery pricing has no direct Salesforce equivalent

    Dentally bills per surgery (e.g., £50–£108 per surgery per month) with unlimited users on higher tiers. Salesforce bills per user per month. For multi-location or DSO structures, Dentally's pricing model and Salesforce's licensing model produce different cost curves — Salesforce may cost more or less depending on user count versus surgery count. This is a financial model decision, not a data migration issue, but it surfaces during scoping. We recommend reviewing your current Dentally subscription tier and projecting the Salesforce seat count needed for all staff roles to understand the net cost impact before committing to migration.

Migration approach

Six steps for a successful Dentally to Salesforce Sales Cloud data migration

  1. Discover Dentally schema and export via API

    We connect to the Dentally API using scoped read access and enumerate all objects: Patient records (with custom fields), Practitioner accounts, Appointments (with status, practitioner, surgery, and treatment codes), Invoices, and Treatment Plans. We pull the full Dentally export — respecting API pagination and rate limits — and inventory every custom field definition. Any multi-site configuration in Dentally is noted for Salesforce Territory planning. The export output becomes the source-of-truth for field mapping.

  2. Clean data and pre-create Salesforce custom objects and fields

    Before any data moves, we run a data-quality pass: duplicate Patient records by email or NHS number are flagged for your team to resolve; missing required fields (LastName, AccountId) are flagged; date formats are normalized to Salesforce datetime standards. Simultaneously, your Salesforce admin (or our team) creates the custom objects (Invoice__c, Treatment_Plan__c, Treatment_Item__c) and custom fields identified in discovery. We deliver a Salesforce setup checklist so the schema is ready before validation runs.

  3. Document field mapping and sequence migration

    Every Dentally field is mapped to its Salesforce counterpart in a field-level mapping document. Multi-select pick-lists, date/time splits, and value-mapped status fields are documented with transformation logic. We sequence the migration as: Accounts first (parent for Contacts), then Contacts (requires AccountId), then Practitioners-as-Users (for Task lookups), then Invoices and Treatment Plans, then Appointments-as-Tasks (requires Contact and User resolved). This order respects Salesforce's foreign-key constraints.

  4. Run sample migration with field-level diff

    A representative slice — typically 100–300 Patient records, 200–500 Appointments, and all Invoice and Treatment Plan records — migrates to a Salesforce sandbox first. We generate a field-level diff between Dentally source values and Salesforce destination values so you can verify: NHS_Number__c populated correctly, Appointment status value-mapping correct, Invoice payment_status values matching Salesforce pick-list, and Practitioner lookup resolved. Your team validates the diff before we proceed to full migration.

  5. Full migration with delta-pickup and rollback

    Full migration runs against Salesforce production. Accounts and Contacts migrate first; then Practitioners are resolved to Users by email match; then Appointments (as Tasks) link to Contact WhoId and Practitioner__c. Invoices and Treatment Plans link to Contacts. A delta-pickup window (24–48 hours) captures any new Patients, Appointments, or Invoice changes made in Dentally during the run. Every operation is logged in an audit trail. One-click rollback reverts all Salesforce changes if reconciliation fails.

Platform deep dives

Context on both ends of the pair

Dentally logo

Dentally

Source

Strengths

  • Strong UK market presence with over 12,000 subscribed practices providing peer credibility and local support networks.
  • Consolidates appointment scheduling, clinical records, NHS referrals, and payments in a single cloud-based platform without on-premise hardware.
  • Native integrations with Xero, DenGro, and NHS e-referrals reduce the need for middleware or manual data re-entry.
  • Patient-facing Dentally Portal and integrated Dentally Vision imaging add capability without requiring separate vendor contracts.

Weaknesses

  • API rate limits are not publicly documented and practices with multi-site or high-volume integrations report needing to request increases through support.
  • Public API documentation is limited, making custom development and third-party integration scoping difficult before commitment.
  • Advanced features including full imaging and enhanced NHS workflows are gated behind higher pricing tiers, increasing cost as practices grow.
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 mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Dentally and Salesforce Sales Cloud.

  • 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

    Dentally: Not publicly documented; practices requiring higher limits must request them via Dentally support.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Dentally 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 Dentally to Salesforce Sales Cloud data migrations

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

Can't find your answer?

Walk through your Dentally to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

No. FlitStack AI migrates data and schema only. Dentally workflows (appointment reminders, recall sequences, NHS e-referral triggers) run on Dentally's automation engine and have no Salesforce equivalent. They must be rebuilt in Salesforce Flow or Apex after migration. We export your Dentally workflow definitions as a reference document for your Salesforce admin to use during the rebuild phase. The exported file includes trigger points, criteria, and action steps for each workflow, allowing your admin to replicate logic in Flow using the same entry conditions and delays.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Dentally.
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