CRM migration

Migrate from Practice by Numbers to HighLevel

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

Practice by Numbers logo

Practice by Numbers

Source

HighLevel

Destination

HighLevel logo

Compatibility

100%

10 of 10

objects map 1:1 between Practice by Numbers and HighLevel.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Practice by Numbers stores dental-practice data across patient contacts, practice entities, appointments, treatment records, and custom KPI dashboards built from practice-specific properties. HighLevel models everything in its own Contact–Company–Opportunity graph, supplemented by custom objects for non-standard fields. The migration carries patient records, practice/facility data, appointment timestamps, and treatment history into HighLevel's corresponding objects, while custom dental properties (production metrics, case-type fields, insurance carrier data) require pre-creation of custom fields or a dedicated custom object in HighLevel before data lands. We surface dental KPI structure and patient cohort tags as reference exports for rebuilding HighLevel dashboards after migration. Workflows, automation sequences, and patient-communication templates in Practice by Numbers have no HighLevel equivalent — those get documented and rebuilt in HighLevel's Workflow Builder. The migration runs via Practice by Numbers API export combined with HighLevel's bulk import endpoints, sequenced so contact-to-company lookups resolve before deal/pipeline records are created. A delta-capture window of 24–48 hours after initial load captures any new or updated records from Practice by Numbers, ensuring HighLevel reflects the final state at cutover. All steps are logged and reversible, with rollback capability if reconciliation identifies unexpected gaps.

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

HighLevel logo

HighLevel

What's pulling them in

  • Agencies choose HighLevel to consolidate CRM, email, SMS, scheduling, and funnels into one subscription, eliminating monthly bills for five to ten separate SaaS tools they previously stitched together.
  • The flat-rate pricing model bills per sub-account rather than per contact, so growing a contact database from 1,000 to 100,000 records does not trigger a billing surprise—a common pain point avoided by migrating customers.
  • White-label and sub-account capabilities let agencies resell HighLevel access to their own clients, turning a software cost center into a recurring revenue stream that justifies the subscription.
  • The platform ships a 14-day free trial with no credit card required, giving teams a low-friction entry point to validate fit before committing to the $97/month Starter tier.
  • Marketing agencies managing multiple client accounts use sub-accounts to maintain data isolation per client while operating under a single agency billing relationship with HighLevel.

Object mapping

How Practice by Numbers objects map to HighLevel

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

Practice by Numbers

Patient / Contact

maps to

HighLevel

Contact

1:1
Fully supported

Direct 1:1 mapping for all active patient records. HighLevel Contact stores name, email, phone, and address fields natively. Original patient create date and last-modified date are preserved as custom datetime fields since HighLevel's CreatedDate reflects migration time. All fields are validated for format and completeness before insertion.

Practice by Numbers

Practice / Office

maps to

HighLevel

Company

1:1
Fully supported

Practice-by-Numbers practice or office entity maps to HighLevel Company. Practice name becomes Company name, and address data maps to the standard Company address fields. Multi-location setups produce multiple Company records linked to the same contact roster. Each Company record retains the original office identifier for reporting clarity.

Practice by Numbers

Appointment / Scheduling Record

maps to

HighLevel

Custom Object: Appointment

1:1
Fully supported

Appointment data has no native HighLevel equivalent. We create an Appointments custom object with fields for appointment date, provider, treatment type, status, and linked Contact. If HighLevel's calendar module is in use, appointments may alternatively be stored as Events linked to the Contact.

Practice by Numbers

Treatment Record / Procedure Log

maps to

HighLevel

Custom Object: Treatment History

1:1
Fully supported

Treatment and procedure history maps to a Treatment History custom object with a lookup relationship to Contact. Each record carries procedure name, date, provider, fee, and case type. Historical treatment data that exists as notes or text blobs in Practice by Numbers gets parsed and structured into discrete rows.

Practice by Numbers

Custom KPI Property

maps to

HighLevel

Custom Field on Contact / Custom Object

1:1
Fully supported

Each Practice by Numbers custom property that doesn't match a HighLevel standard field is created as a custom field before migration. Dental-specific fields like production per hour, case acceptance rate, or insurance carrier are pre-created with the correct type — pick-list, number, date, or text — and then populated during the migration run.

Practice by Numbers

Insurance Carrier / Payer Data

maps to

HighLevel

Custom Object: Insurance

1:1
Fully supported

Insurance carrier, policy type, and coverage details stored as a separate custom object with a lookup to Contact. HighLevel's data model doesn't have a native insurance object, so we create one with the fields needed for dental insurance tracking and link it to the patient Contact.

Practice by Numbers

Patient Owner / Assigned Staff

maps to

HighLevel

User / Contact assigned via custom field

1:1
Fully supported

The staff member assigned to the patient in Practice by Numbers is resolved by email against HighLevel users. Unmatched staff are flagged before migration — your team can invite them to HighLevel or assign records to a fallback user so no contact lands without an owner.

Practice by Numbers

Patient Communication Log

maps to

HighLevel

Activity Log / Custom Object

1:1
Fully supported

HighLevel stores communication activity as Tasks and Events on Contact records, but the depth of Practice by Numbers' patient communication history — SMS, reminders, recall messages — may exceed what fits cleanly into the activity model. We map what we can to Tasks and preserve the full log as a JSON blob in a custom long-text field for reference.

Practice by Numbers

Opportunity / Deal Pipeline

maps to

HighLevel

Opportunity (Pipeline)

1:1
Fully supported

If Practice by Numbers tracks case or treatment pipelines as deal records, those map directly to HighLevel Opportunities. Pipeline stages map to HighLevel stage names, and probability percentages are applied per stage. Each pipeline in Practice by Numbers becomes a separate HighLevel pipeline view.

Practice by Numbers

Patient Form Submission

maps to

HighLevel

Custom Object: Form Submission

1:1
Fully supported

Patient intake forms and consent documents stored in Practice by Numbers have no native HighLevel equivalent. We export form submission records as a structured dataset and attach them as a JSON payload in a custom long-text field on the Contact record so the data is accessible without rebuilding the original form.

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

HighLevel logo

HighLevel gotchas

High

Sub-account architecture creates isolated data silos per client

High

Usage-based telecom and AI costs are not in the subscription price

Medium

Workflows have no native equivalent in most destination CRMs

Medium

API rate limits cap bulk migration throughput at 100 requests per 10 seconds per sub-account

Low

White-label configuration and branding assets do not export via API

Pair-specific challenges

  • Custom dental KPI properties require pre-creation in HighLevel before data can map

    Practice by Numbers stores practice-specific KPI properties (case acceptance rate, production per provider, hygiene reappointment percentage) as custom fields on patient and practice records. HighLevel has no native equivalent — these fields do not exist until an admin creates them in HighLevel's field settings. We deliver a field-creation checklist specifying field name, type (number, currency, pick-list, date), and object assignment so your HighLevel admin can pre-create the schema before migration data is loaded. If fields are missing at migration time, those properties land as null and require a supplemental import pass.

  • Workflows, automation sequences, and communication templates do not migrate to HighLevel Workflows

    Practice by Numbers automations — patient recall reminders, appointment confirmations, post-treatment follow-ups, and intake-sequence triggers — are platform-native and cannot be transferred to HighLevel's Workflow Builder. The automation logic lives in Practice by Numbers' event-action model which is architecturally incompatible with HighLevel's trigger-based Workflow Builder. We export your automation definitions as a structured document your HighLevel admin can use as a rebuild reference, but every workflow must be recreated from scratch in HighLevel.

  • Patient communication history does not transfer into HighLevel's activity timeline cleanly

    Practice by Numbers logs SMS, email, and voice interactions against patient records with timestamps and content. HighLevel's activity model (Tasks and Events) stores communication records linked to Contact, but the volume and threading of dental-practice communication — recall sequences, treatment plan explanations, insurance follow-ups — may not fit the flat activity structure. We map what maps to Tasks and attach the full communication log as a structured JSON blob in a long-text custom field on the Contact record, so the data is preserved even if the native activity timeline cannot absorb it.

  • Multi-location practice structures require deliberate Company hierarchy setup in HighLevel

    Dental groups with multiple offices store each location as a separate practice entity in Practice by Numbers. HighLevel's Company object supports a parent-Company hierarchy via the Parent Company field, but by default each office is a flat Company record. If your migration includes more than three locations, we recommend establishing a parent Company for the group and linking each office location as a child Company before contacts are imported, so HighLevel's reporting correctly attributes patients to their home location.

  • Patient form submissions (intake, consent, health history) have no native HighLevel equivalent

    Practice by Numbers stores completed intake forms, health history questionnaires, and consent documents as attachments or structured records. HighLevel has no native form-submission object — forms are used to capture data but the submitted records live in HighLevel's database keyed to the Contact. We export form submission data as structured records and attach the full dataset as a JSON payload in a custom long-text field on the Contact. The original form layout does not transfer; rebuilds of patient-facing intake forms in HighLevel Forms are a separate configuration step.

Migration approach

Six steps for a successful Practice by Numbers to HighLevel data migration

  1. Audit Practice by Numbers data inventory and export structure

    We connect to Practice by Numbers via scoped read access to enumerate all patient records, appointment records, treatment history entries, custom properties, and practice/facility entities. We identify which fields are standard versus custom, flag any multi-value fields or unstructured data (notes, communication logs), and assess the total record count per object. This inventory drives the HighLevel schema setup checklist and migration mapping document.

  2. Create HighLevel schema: custom fields, custom objects, and pipeline stages

    Before any data moves, we deliver a schema setup plan specifying every custom field and custom object that needs to exist in HighLevel — including field name, data type, pick-list values, and object assignment. Your HighLevel admin (or our team) creates the fields so that the migration load can write directly to them. We also map Practice by Numbers case or deal pipelines to HighLevel Opportunity pipeline stages and configure stage probabilities per pipeline.

  3. Export from Practice by Numbers and transform to HighLevel format

    We export patient, practice, appointment, and treatment data from Practice by Numbers via the platform's export interfaces. Each record is transformed to match HighLevel's field schema — email addresses resolved to user lookups, date formats standardized, multi-value fields flattened, and communication log data structured into JSON. A pre-flight validation checks for missing required fields and duplicate records before the load begins.

  4. Run sample migration with field-level diff

    A representative slice — typically 100–300 records spanning patients, appointments, and treatment history — migrates first into a staging HighLevel sub-account. We generate a field-level diff between the source export and the destination records so you can verify custom property mapping, appointment date preservation, and owner resolution. You approve the sample before the full run commits. This staged approach minimizes risk and gives you confidence in data integrity before committing the full dataset.

  5. Execute full migration with delta-pickup window

    The full dataset loads into your production HighLevel account. A delta-pickup window (24–48 hours) captures any new or modified patient records created in Practice by Numbers during the cutover window. All operations are logged to an audit trail, and one-click rollback is available if reconciliation identifies unexpected gaps. After go-live, we validate record counts, field population rates, and Company-to-Contact relationship integrity.

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.
HighLevel logo

HighLevel

Destination

Strengths

  • Consolidates CRM, marketing automation, email, SMS, scheduling, and funnels into one platform at a predictable flat monthly rate.
  • Supports unlimited contacts and unlimited users on all paid tiers, removing per-record billing anxiety as databases grow.
  • Offers white-label and sub-account capabilities that let agencies resell access and manage multiple client environments under one billing relationship.
  • Includes built-in review management, reputation monitoring, and AI agents as native features rather than third-party add-ons.
  • Exports Contacts and Companies via a scalable async bulk CSV system that handles multi-million-row datasets without blocking the UI.

Weaknesses

  • The breadth of features creates a steep learning curve; advanced automations and Workflow configuration require significant time investment that smaller teams may not recover.
  • The platform charges usage-based fees for telecommunications and AI features that are not included in the base subscription, leading to bill surprises.
  • Recurring user reports on Reddit and G2 describe bugs, errors, and slow support response times that disrupt live marketing and sales operations.
  • Sub-account architecture, while powerful for agencies, adds migration complexity when identifying which client data lives in which isolated environment.
  • The platform is designed for agencies and SMBs; larger enterprises requiring deep reporting, custom objects at scale, or complex role-based access may outgrow its capabilities.

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

  • 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 HighLevel 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 HighLevel data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Practice by Numbers to HighLevel migrations complete in 48–72 hours for datasets under 25,000 patient records. Larger migrations with over 100,000 records, multi-location practice structures, or extensive custom KPI properties extend to 5–8 days. The longest planning step is pre-creating the HighLevel custom field schema so the load can write directly to named fields. Additional time may be needed for delta-capture and final validation before go‑live.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Practice by Numbers.
Land in HighLevel, 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