CRM migration

Migrate from Practice by Numbers to Salesforce Sales Cloud

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

Practice by Numbers logo

Practice by Numbers

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

92%

11 of 12

objects map 1:1 between Practice by Numbers and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Practice by Numbers is a dental-practice management platform built around patient records, production tracking, and practice-level KPIs like treatment acceptance rate and production-per-hour. Salesforce Sales Cloud is a general-purpose CRM centered on Account-Contact-Opportunity relationships with pipeline management, forecasting, and workflow automation. The migration carries everything Practice by Numbers stores natively — patients, providers, appointments, treatments, claims, payments, and custom KPI fields — into Salesforce's object model. The harder translation problems are dental-specific: PbN's treatment-acceptance-rate metric requires a custom formula field in Salesforce, its goal-management module has no direct equivalent and must be rebuilt as custom objects with targets and milestones, and appointment data maps to Events with custom fields for procedure codes rather than native Salesforce scheduling. We also map PbN's production tracking (ADHA procedure codes, fee schedules, actual vs. planned production) to a combination of Opportunities, custom fields, and a Production__c custom object that mirrors the source metric hierarchy. Workflows, automations, and goal alerts do not migrate — they require Salesforce Flow rebuilds using PbN's exported definitions as reference. We preserve all timestamps, provider IDs, and patient IDs so Salesforce reports maintain continuity with historical PbN data.

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

Practice by Numbers logo

Practice by Numbers

What's pushing teams away

  • Limited public API documentation makes automated data extraction difficult, forcing practices to rely on manual CSV exports which restrict field selection and historical depth.
  • No free tier or low-cost entry point means the full feature set requires a significant commitment before the practice can validate fit with their specific workflow.
  • The breadth of features creates a steep onboarding curve, and some practices report that staff adoption lags during the first months after implementation.

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 Practice by Numbers objects map to Salesforce Sales Cloud

Each row shows how a Practice by Numbers 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.

Practice by Numbers

Patient

maps to

Salesforce Sales Cloud

Contact

1:1
Fully supported

PbN patients map directly to Salesforce Contacts. The patient's primary provider becomes the Contact's OwnerId (resolved by email match against Salesforce users). PbN patient IDs are preserved as Source_System_ID__c custom field for traceability and delta-run de-duplication. Each Contact also retains the original PbN created date in Original_Create_Date__c to maintain historical reporting continuity.

Practice by Numbers

Provider / Dentist

maps to

Salesforce Sales Cloud

User + Contact (provider-as-contact)

1:1
Fully supported

PbN providers who are also Salesforce users map by email match to User records. Providers without Salesforce user licenses become Contacts with a Provider__c custom checkbox set to true, allowing reporting on provider performance without consuming paid user licenses. This hybrid approach ensures all provider data is accessible in Salesforce while optimizing license costs for organizations with many part-time or referring providers.

Practice by Numbers

Practice / Office

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

PbN offices map to Salesforce Accounts. For multi-location dental groups, the PbN practice hierarchy maps to Salesforce Account hierarchy via ParentId. Each office's location address becomes the Account's billing/shipping address. Office-level production totals roll up to the parent Account via custom rollup fields.

Practice by Numbers

Appointment

maps to

Salesforce Sales Cloud

Event

1:1
Fully supported

PbN appointments map to Salesforce Events with custom fields: Procedure_Code__c (ADHA CDT code), Treatment_Type__c, Provider__c (lookup to User/Contact), and Appointment_Status__c. Original start/end times and patient-provider relationships (WhoId) are preserved. Note that Salesforce Events do not support procedure-code validation — this is enforced via custom validation rules post-migration.

Practice by Numbers

Treatment / Procedure

maps to

Salesforce Sales Cloud

Opportunity + Custom Object (Treatment__c)

many:1
Fully supported

PbN treatment records merge into Salesforce Opportunities for financial tracking and a custom Treatment__c object for clinical detail. Opportunity.Amount captures the fee; Treatment__c stores ADHA procedure code, surface/tooth designation, insurance payment, and patient payment. The Opportunity links to the patient Contact and the provider User.

Practice by Numbers

Claim

maps to

Salesforce Sales Cloud

Custom Object (Insurance_Claim__c)

1:1
Fully supported

PbN insurance claims have no Salesforce standard equivalent. We create an Insurance_Claim__c custom object linked to the Contact (patient) and the Treatment__c record, with fields for Claim_Status__c, Payer_Name__c, Submitted_Amount__c, Paid_Amount__c, and Adjustment_Reason__c. Claim history and status-change timestamps are preserved as custom audit fields.

Practice by Numbers

Payment

maps to

Salesforce Sales Cloud

Custom Object (Payment__c)

1:1
Fully supported

Patient payments map to a Payment__c custom object linked to the Contact and Treatment__c. Fields include Payment_Date__c, Amount__c, Payment_Method__c, and Payment_Type__c (patient payment vs. insurance payment). This preserves the complete payment history that PbN tracks separately from the treatment record.

Practice by Numbers

Production Metric (calculated)

maps to

Salesforce Sales Cloud

Custom Object (Production__c)

1:1
Fully supported

PbN's production-per-hour and production-vs-goal metrics are calculated fields in the source. We create a Production__c custom object keyed by Provider__c and Period__c (month/year), storing Actual_Production__c, Goal_Production__c, and Variance__c. These values are extracted from PbN's report exports and loaded as records, not as live formulas, to preserve historical accuracy.

Practice by Numbers

Goal / Target

maps to

Salesforce Sales Cloud

Custom Object (Goal__c)

1:1
Fully supported

PbN's goal-management module has no Salesforce equivalent. We create a Goal__c custom object with Goal_Type__c (production, acceptance rate, new patients), Target_Value__c, Start_Date__c, End_Date__c, and Status__c (green/yellow/red from PbN). This preserves the goal hierarchy (office > provider > team member) as parent-child relationships via Goal__c lookup fields.

Practice by Numbers

Treatment Acceptance Rate

maps to

Salesforce Sales Cloud

Custom Field on Contact (Treatment_Acceptance_Rate__c)

1:1
Fully supported

PbN calculates treatment acceptance rate as accepted procedures divided by presented procedures per patient. We extract this as a percentage value from PbN reports and store it on the Contact record as Treatment_Acceptance_Rate__c. Ongoing tracking in Salesforce requires a flow to recalculate from Treatment__c records; the migrated value provides historical baseline.

Practice by Numbers

Custom KPI Fields

maps to

Salesforce Sales Cloud

Custom Fields on appropriate objects

1:1
Fully supported

PbN allows practices to create custom KPI fields for specialty tracking (e.g., orthodontic starts, implant case value). Each custom field is analyzed: numeric metrics map to custom Number fields on the relevant object; yes/no flags map to custom Checkbox fields. Custom field metadata (label, data type, pick-list values) is preserved in the field name and help text for the Salesforce admin to finalize labeling.

Practice by Numbers

Attachment / Document

maps to

Salesforce Sales Cloud

ContentDocument / Salesforce Files

1:1
Fully supported

PbN attachments on patient records (e.g., treatment plan PDFs, X-rays referenced via URL) are re-uploaded as Salesforce Files linked to the patient Contact record. File size limits apply (Salesforce default 25MB per file). Inline images are downloaded and re-hosted; external URLs are preserved as custom URL fields if the target system does not permit download.

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.

Practice by Numbers logo

Practice by Numbers gotchas

High

No publicly documented API for automated migration

High

Dental EHR data is inherently messy during extraction

Medium

Goal management metrics require explicit field mapping

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

  • Dental KPIs (acceptance rate, production-per-hour) require custom Salesforce fields with no live recalculation

    Practice by Numbers calculates treatment acceptance rate and production-per-hour as native dashboard metrics. Salesforce has no standard fields for these dental-industry KPIs. We extract the calculated values from PbN reports and store them as custom fields (Treatment_Acceptance_Rate__c on Contact, Production_Per_Hour__c on User), but these are static values at migration time. Ongoing Salesforce tracking requires a Salesforce Flow that queries Treatment__c records and recalculates the metrics per provider per period — this flow must be built separately and is not part of the data migration.

  • Goal management module has no Salesforce equivalent and must be rebuilt

    Practice by Numbers ships with built-in goal management at office, provider, and team-member levels, complete with red/yellow/green status indicators and goal-vs-actual tracking. Salesforce has no native goal-management module. We create a Goal__c custom object that preserves the goal hierarchy (office > provider > team member), target values, and status flags as static records. The ongoing goal-tracking workflow — where a provider's production update automatically recalculates goal status — must be rebuilt as a Salesforce Flow. We export PbN goal definitions as a reference document for the Flow build.

  • Appointment scheduling is not native Salesforce scheduling — procedure codes require custom validation

    PbN's appointment system includes procedure-code assignment (ADHA CDT codes), provider scheduling, and appointment-status tracking. Salesforce Events support start/end times and WhoId/WhatId linking, but procedure codes are not a native concept. We map appointments to Events with a custom Procedure_Code__c text field. Salesforce validation rules must be configured post-migration to enforce CDT code format (e.g., Dxxxx for diagnostic, Exxxx for preventive). Native Salesforce appointment scheduling (Einstein Activity Capture, Sales Cloud Einstein Calendar) is a separate licensing consideration not included in this migration.

  • Insurance claims and payments become custom objects — no standard case model

    PbN tracks insurance claims (submitted, pending, paid, denied) and patient payments as core records. Salesforce has Case objects for support workflows and standard Opportunity/Order for sales processes, but neither maps cleanly to dental insurance claims. We create Insurance_Claim__c and Payment__c custom objects linked to the patient Contact and Treatment__c records. This preserves the financial history but requires Salesforce admin configuration (page layouts, list views, report types) for the dental team to access claim and payment data in Salesforce.

  • Multi-location hierarchy requires Account ParentId planning before data lands

    Dental groups with multiple PbN offices often have parent-company relationships that PbN models as separate practice records. Salesforce Account hierarchy uses ParentId to model corporate structures, but the hierarchy must be decided before migration because circular references (Office A's parent is Office B, but B's parent is A) can break foreign-key resolution. We flag circular references during discovery and deliver a parent-Account mapping plan before the migration run. Each location's Account must be created before its patient Contacts can reference it via AccountId.

Migration approach

Six steps for a successful Practice by Numbers to Salesforce Sales Cloud data migration

  1. Audit PbN data model and extract schema inventory

    We connect to PbN via its export interface (CSV/Excel reports) and inventory all active objects: patients, providers, appointments, treatments, claims, payments, production metrics, and custom KPI fields. We assess data quality (duplicate patients, missing provider emails, null procedure codes) and produce a schema map showing each PbN field's data type, sample values, and target Salesforce object/field. This audit also surfaces the goal-management configuration and appointment-procedure-code taxonomy so we can size the custom-object build accurately.

  2. Design Salesforce schema: custom objects, fields, and hierarchy

    Before data moves, your Salesforce admin (or our team) creates the custom objects (Treatment__c, Insurance_Claim__c, Payment__c, Production__c, Goal__c) and custom fields needed for dental-specific metrics. We deliver a Salesforce schema setup plan based on the PbN audit — including Account hierarchy for multi-location setups, Contact field additions, Event custom fields for procedure codes, and Opportunity stage mapping for treatment statuses. This ensures the Salesforce side is ready before validation runs.

  3. Resolve providers and patients by email and ID match

    Provider records are matched to Salesforce Users by email for those receiving licenses; remaining providers become Contacts with Provider__c = true. Patient records are matched to Contacts by email address (and fallback by firstname + lastname + date of birth). PbN internal IDs are preserved as Source_System_ID__c on every record for traceability and delta-run de-duplication. Unmatched records are flagged before migration so your team can resolve (e.g., invite providers to Salesforce, merge duplicate patient contacts) before data lands.

  4. Run sample migration with field-level diff

    A representative slice migrates first — typically 100–500 records spanning patients, providers, appointments, treatments, and production metrics across multiple offices. We generate a field-level diff between PbN source values and Salesforce destination values so you can verify dental KPI mapping, provider-owner resolution, Account hierarchy assignment, and goal-record completeness before the full run commits. Sample results are reviewed by your team and any mapping adjustments are made before the final migration.

  5. Execute full migration with delta-pickup window

    Full migration runs against Salesforce using Bulk API 2.0 for high-volume patient and treatment records. A delta-pickup window (typically 24–48 hours) captures any PbN records created or modified during the cutover so Salesforce reflects PbN's final state at go-live. Audit logs capture every operation, and one-click rollback is available if reconciliation identifies data integrity issues. Post-migration, we deliver a field-level reconciliation report showing record counts per object, error rates, and unmatched records for manual resolution.

Platform deep dives

Context on both ends of the pair

Practice by Numbers logo

Practice by Numbers

Source

Strengths

  • Bi-directional integration with major dental PMSs (Open Dental 15.4+, Dentrix, Dentrix Ascend, EagleSoft, Practice-Web) — PbN writes SMS, email, call and note activity back into the PMS CommLog so the PMS remains the system of record.
  • Dentist-founded product with a 9.8/10 G2 support rating and 99.99% advertised uptime — reviewers consistently call out responsive support and quick feature delivery.
  • Real-time Practice IQ dashboards cover production, collections, case acceptance, new-patient, hygiene reappointment and other dental KPIs that horizontal BI tools do not pre-build.
  • PbN Voice native phone system (call tracking, recording, analytics) plus payments, digital forms and insurance verification consolidate vendors small practices would otherwise stitch together.
  • Modular plan structure lets practices add Voice, Payments or specific modules incrementally rather than paying for everything in tier 1.

Weaknesses

  • Only the Core plan ($249/month) has publicly listed pricing — higher tiers (Flow, Scale, Thrive) require sales contact, complicating self-serve evaluation.
  • Reports are not customisable enough for some practices — granular per-practice metric configuration often requires support involvement.
  • Single-location practices report PbN can feel expensive relative to features they actually use — pricing is more competitive at multi-location and DSO scale.
  • Some digital-form and online-scheduling flows have reliability gaps — reviewers cite forms occasionally failing to send and patients struggling to open them.
  • PbN is a layer on top of the PMS, not the PMS itself — practices migrating need to plan PMS-side data extraction (Open Dental, Dentrix) in parallel.
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 Practice by Numbers 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

    Practice by Numbers: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Practice by Numbers to Salesforce migrations complete in 48–72 hours for under 50,000 patient records with standard field mapping. Larger setups with 500,000+ records, multi-location Account hierarchies, or heavy custom KPI fields extend to 5–10 business days. The longest planning step is designing the Salesforce custom objects for dental-specific metrics (production, claims, payments) and getting provider-to-User email resolution confirmed before migration runs.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Practice by Numbers.
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