CRM migration

Migrate from Open Dental to HubSpot

Field-level mapping, validation, and rollback between Open Dental and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.

Open Dental logo

Open Dental

Source

HubSpot

Destination

HubSpot logo

Compatibility

100%

10 of 10

objects map 1:1 between Open Dental and HubSpot.

Complexity

BStandard

Timeline

2–4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Open Dental is a dental practice management system built around patients, providers, appointments, procedures, insurance plans, and claims. HubSpot is a CRM organized around contacts, companies, deals, and lifecycle stages. These are fundamentally different data models — Open Dental tracks clinical and billing workflow; HubSpot tracks marketing and sales relationships. FlitStack AI migrates Open Dental patient records as HubSpot contacts, providers as HubSpot users (matched by email), appointments and procedures as custom activity records, and PatFields (Open Dental's custom field system) as HubSpot custom contact properties. Insurance carriers, referral sources, and recall schedules become custom HubSpot properties or custom objects that your team configures post-migration. Open Dental has no native HubSpot integration — FlitStack reads from Open Dental's REST API (paginated, up to 100 records per call) and writes to HubSpot via the Contacts API and bulk import. The migration does not move Open Dental's internal workflows, e-prescriptions, imaging bridges, or billing automation logic — those require HubSpot workflow rebuilds using HubSpot's workflow builder and your clinical data as reference. A delta-pickup window captures any Open Dental changes made during cutover so HubSpot reflects your final patient state at go-live.

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

Open Dental logo

Open Dental

What's pushing teams away

  • Open Dental runs on a local Windows server that the practice must maintain; offices without dedicated IT staff experience server crashes, slowdowns, and update failures as operational risk.
  • The interface and feature set have a dated UX that newer staff find unintuitive compared to cloud-first alternatives, leading to training overhead and reduced staff satisfaction.
  • Scaling beyond two or three locations requires significant configuration work (Replication, CEMT, Enterprise features) that demands technical expertise most solo or small-group practices lack.
  • Performance degrades with large patient bases and years of transaction history stored in the same database, causing slow queries and screen delays during peak hours.

Choosing

HubSpot logo

HubSpot

What's pulling them in

  • Lowest barrier to entry of any major CRM — the free tier with unlimited contacts lets teams validate fit before committing to a paid plan, according to G2 and Capterra reviewers.
  • Native integration between the CRM and sales engagement tools (sequences, email tracking, dialer) means no separate sync configuration, a theme across G2 Sales Hub reviews.
  • Pipeline visualization, deal tracking, and automated workflows are consistently praised as intuitive and easy to set up without developer involvement.
  • Strong onboarding for new team members — reviewers on Capterra and G2 highlight how quickly new reps become productive without formal training.
  • The HubSpot platform ecosystem (Marketing, Sales, Service, CMS hubs) allows growing companies to consolidate tools without building new integrations.

Object mapping

How Open Dental objects map to HubSpot

Each row shows how a Open Dental object lands in HubSpot, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Open Dental

Patient

maps to

HubSpot

Contact

1:1
Fully supported

Open Dental Patient (PatNum, FName, LName, Email, Phone, Address, City, State, Zip, Birthdate) maps directly to HubSpot Contact (firstname, lastname, email, phone, address fields, date of birth). Open Dental PatStatus (patient active/inactive classification) maps to HubSpot lifecyclestage via a value-mapping table — Active patients become Subscriber, archived patients retain their original status as a custom property for reference.

Open Dental

Provider

maps to

HubSpot

User / Contact Property

1:1
Fully supported

Open Dental Provider (ProvNum, FName, LName, Email, Specialty) maps to HubSpot User account matched by email address. HubSpot users are the owners of contact and deal records. Providers without email addresses in Open Dental receive a generated placeholder email and are flagged for your HubSpot admin to map to real user accounts before the migration commits. Provider specialty is preserved as a custom contact property (Provider_Specialty__c) for reporting segmentation.

Open Dental

PatField (custom field)

maps to

HubSpot

Custom Contact Property

1:1
Fully supported

Open Dental's PatFields (text, picklist, date, checkbox, currency types) each require a corresponding HubSpot custom contact property. We create these properties in HubSpot before migration using the same field label and appropriate HubSpot data type. Picklist PatFields require value-by-value mapping to HubSpot picklist options. Checkbox fields map to HubSpot single-checkbox properties. Currency fields map to HubSpot number properties formatted as currency.

Open Dental

Appointment

maps to

HubSpot

Custom Object / Engagement

1:1
Fully supported

Open Dental appointments (ApptNum, PatNum, ProvNum, AptDateTime, Confirmed, ProcDescript, Length) do not have a native HubSpot equivalent. We create a HubSpot custom object (Appointment__c) with fields for patient, provider, appointment date/time, status, and procedure description. Each appointment record is linked to the corresponding HubSpot contact via a lookup relationship. Appointment status (Confirmed, Unconfirmed, Broken) maps to a custom picklist on the custom object.

Open Dental

ProcedureLog

maps to

HubSpot

Custom Object / Engagement Note

1:1
Fully supported

Open Dental procedures (ProcNum, PatNum, ProvNum, ProcCode, ToothNum, Surface, Fee, ProcDate) contain the clinical treatment history. These map to a HubSpot custom object (Procedure__c) with fields for procedure code, tooth number/surface, fee, provider, and date. The procedure object is associated to the HubSpot contact record so treatment history is accessible from the patient contact timeline. Original procedure codes are preserved as a custom text property for insurance and referral documentation.

Open Dental

InsPlan

maps to

HubSpot

Custom Object / Contact Property

1:1
Fully supported

Open Dental insurance plans (InsPlanNum, CarrierName, SubscriberID, GroupNum, Benefits) contain per-patient insurance details. These map to a HubSpot custom object (Insurance__c) linked to the contact record. Fields include CarrierName, SubscriberID, GroupNumber, EffectiveDate, and BenefitSummary. Open Dental PatPlan (which links a patient to an insurance plan with subscriber relationship, relationship to subscriber, and sequence) is represented as a custom property on the Insurance__c custom object indicating subscriber role (Self, Spouse, Child, Other).

Open Dental

Recall

maps to

HubSpot

Custom Contact Property + HubSpot Workflow

1:1
Fully supported

Open Dental's recall system tracks the next recommended hygiene appointment per patient (RecallType, DateDue, Intervals). This is a dental-specific concept with no HubSpot equivalent. We migrate recall data as custom contact properties: Recall_Type__c, Recall_Due_Date__c, and Recall_Interval_Months__c. A HubSpot workflow (to be built post-migration) triggers outreach when Recall_Due_Date__c approaches current date — this replaces Open Dental's built-in recall reminders with HubSpot automation.

Open Dental

Document / Attachment

maps to

HubSpot

HubSpot Files / Notes

1:1
Fully supported

Open Dental documents (images, PDFs, scanned forms attached to patient records via /documents API) re-upload to HubSpot Files associated with the contact record. Document category names from Open Dental map to HubSpot file tags for organization. X-rays and radiographs are excluded from the standard migration payload and must be handled separately via your imaging software's export tools — this is documented in the pre-migration checklist.

Open Dental

Referral / ReferringProvider

maps to

HubSpot

Custom Contact Property

1:1
Fully supported

Open Dental referral sources (referring dentist or doctor name, referral date) attach to the patient record. HubSpot has no native referral tracking field. We create Referral_Source__c and Referral_Date__c custom properties on the contact record. If your Open Dental setup tracks referring provider NPI or clinic name, those map as additional custom properties to support referral-source reporting in HubSpot dashboards.

Open Dental

Payment / PaySplit

maps to

HubSpot

Custom Object / Activity Note

1:1
Fully supported

Open Dental payment records (PayNum, PatNum, PayDate, PayAmt, PayType, Provider) and PaySplit detail (splitting payments between insurance and patient portions) have no HubSpot equivalent. We create a Payment__c custom object linked to the contact with fields for payment date, amount, payment type, and provider. Payment splits are represented as sub-fields on the payment record (Insurance_Portion__c, Patient_Portion__c). This preserves billing history in HubSpot for front-desk and administrative reference.

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.

Open Dental logo

Open Dental gotchas

High

X-ray images do not migrate between systems

Medium

Scanned documents require a separate image conversion with additional cost

High

Server must run MySQL with myISAM engine, not InnoDB

Medium

API pagination is limited to 100 records per request

Medium

Custom sheets use proprietary XML that only imports to Open Dental

HubSpot logo

HubSpot gotchas

High

Marketing Contacts billing model is migration-critical

High

Feature tier gating is not visible until onboarding

Medium

Mandatory onboarding fees inflate year-one cost

Medium

HubSpot CSV importer cannot migrate engagements or attachments

Medium

Custom objects require Enterprise and a pre-existing schema

Pair-specific challenges

  • Provider-to-user email matching is the single most common migration blocker

    Open Dental providers are identified by ProvNum — a numeric internal key with no direct HubSpot equivalent. HubSpot records are owned by User accounts identified by email. If your Open Dental provider records lack email addresses, or if multiple Open Dental providers share one email address, owner resolution fails silently during bulk import. FlitStack flags every unmatched provider before the migration commits, but you must ensure every Open Dental provider has a unique, deliverable email address before extraction begins. Providers without email addresses require admin-created HubSpot user accounts as a prerequisite.

  • Open Dental's clinical and billing data model has no native HubSpot equivalent — custom objects and workflows are mandatory, not optional

    Open Dental tracks recall intervals, procedure codes with tooth numbers and surfaces, insurance plan benefits with effective dates, and payment splits between insurance and patient portions. HubSpot's native objects (Contact, Company, Deal) do not model any of these. Every clinical record migrates to a HubSpot custom object that your team must design and create in HubSpot before data lands. The recall system — one of the most operationally critical features in Open Dental — must be rebuilt in HubSpot's workflow builder using the Recall_Due_Date__c property as the trigger. If your practice relies heavily on Open Dental's recall reminders for hygiene revenue retention, budget HubSpot workflow build time as part of the migration scope.

  • Many-to-many provider-patient relationships collapse to one HubSpot owner per contact

    Open Dental allows a patient to have multiple assigned providers across different appointments — a general dentist, a hygienist, a specialist, and a referring doctor can all be associated with one patient record simultaneously. HubSpot contacts have a single owner (User) and a single primary company association. When Open Dental patient records are migrated to HubSpot contacts, only the primary provider (PriProv) resolves to a HubSpot owner. All other provider associations are preserved as custom contact properties (Additional_Provider__c) but do not assign HubSpot record ownership. Review these additional provider links in HubSpot post-migration to ensure your staff can identify the full care team from the contact record.

  • X-rays, radiographs, and DICOM files do not migrate via standard API export

    Open Dental stores x-rays and radiographs in its document management system. The /documents API endpoint can export attached files, but x-ray file formats (DICOM, JPEG, TIFF from imaging sensors) require specific handling that differs from standard document migration. FlitStack migrates text-based documents (PDFs, forms, scanned insurance cards) via the /documents API, but imaging bridges from Open Dental to dedicated imaging software (Dexis, Schick, XDR, Trophy) must be reconfigured independently. Your imaging workflow integration with Open Dental must be rebuilt with your imaging software's HubSpot-compatible bridge or alternative integration tool post-migration.

  • PatFields with picklist type require manual value mapping setup in HubSpot before migration runs

    Open Dental PatField definitions include picklist types where FieldType is PickList — the available options are defined in patfielddef and stored as PatField values per patient. When these map to HubSpot custom contact properties with picklist type, HubSpot requires the same option values to be created manually in HubSpot Settings before the import. If Open Dental picklist values are not pre-created in HubSpot, the import either rejects those records or strips the picklist property entirely. FlitStack generates a PatField inventory report before migration that lists every picklist field, its options, and a HubSpot setup template so your HubSpot admin can pre-create the property options before the migration begins.

Migration approach

Six steps for a successful Open Dental to HubSpot data migration

  1. Open Dental data audit and API inventory

    FlitStack connects to your Open Dental database via the REST API (using your Open Dental API credentials) and inventories every object: Patient count, Provider count, Appointment volume, ProcedureLog records, PatField definitions, InsPlan and PatPlan records, Recall data, and Document attachments. We also audit data quality — duplicate patients, missing email addresses on providers, and PatField consistency across patients are flagged in a pre-migration health report that your team reviews before extraction begins.

  2. HubSpot custom object and property creation

    Before any data is migrated, FlitStack creates all required HubSpot custom objects (Appointment__c, Procedure__c, Insurance__c, Payment__c) and custom contact properties (Recall_Type__c, Recall_Due_Date__c, Recall_Interval_Months__c, Provider_Specialty__c, Source_Patient_ID__c, Original_Create_Date__c, Referral_Source__c, and all PatField mappings) in your HubSpot portal. For picklist properties, we generate a setup template listing every option value from Open Dental so your HubSpot admin can create the picklist options before the migration import runs. Provider email addresses are cross-referenced against HubSpot user accounts to identify which Open Dental providers need new HubSpot user accounts created as a prerequisite.

  3. Provider-to-user resolution and owner mapping

    Open Dental providers are matched to HubSpot users by email address. FlitStack generates an owner mapping report showing every provider, their email address (or lack thereof), and the corresponding HubSpot user status. Any provider without a HubSpot user account is flagged as a prerequisite — your team creates those accounts before the migration runs. For multi-location Open Dental setups using Clinics, FlitStack maps each Open Dental ClinicNum to a HubSpot team so contacts land in the correct team-scoped pipeline.

  4. Test migration with field-level diff

    A representative sample — typically 200–500 patient records spanning multiple providers, appointment types, and PatField configurations — is migrated to HubSpot first. FlitStack generates a field-level diff report comparing source values from Open Dental against destination values in HubSpot for every mapped property. You verify that PatField picklist values resolved correctly, recall dates landed in the right property, provider ownership assigned as expected, and custom object records linked to the correct contact. Any mapping errors are corrected in the migration plan before the full run commits.

  5. Full migration with delta-pickup window

    The full dataset is migrated using Open Dental's paginated API (up to 100 records per call) mapped to HubSpot's Contacts API and bulk import process. A delta-pickup window of 24–48 hours runs after the initial load to capture any Open Dental records modified during the cutover window. FlitStack uses PatNum and SecDateTEdit timestamps to identify changed records and re-import only the delta. An audit log captures every operation (insert, update, link) so your team can trace any record back to its source. One-click rollback reverts the HubSpot portal to its pre-migration state if reconciliation uncovers critical mapping errors.

Platform deep dives

Context on both ends of the pair

Open Dental logo

Open Dental

Source

Strengths

  • One-time license fee with no per-seat recurring cost after the first year, making it the lowest total cost of ownership for stable practices.
  • Open-source codebase means the database schema is publicly documented and independent developers can build integrations without vendor dependency.
  • Multi-location support through Clinics, Replication, and CEMT scales from a single practice to a DSO with 30+ locations on a single database.
  • API with REST endpoints for Patients, Appointments, Claims, Payments, PayPlans, Documents, and Setup gives third-party tools a reliable integration surface.
  • Strong practitioner community and independent trainer ecosystem produce extensive documentation, forum support, and video walkthroughs for self-service learning.

Weaknesses

  • Server-based deployment requires the practice to own or rent server infrastructure and maintain Windows Server, MySQL, and .NET dependencies locally.
  • No cloud-hosted SaaS option built and supported directly by Open Dental Software; third-party hosting providers add variable cost and support tiers.
  • Interface design reflects its 2003 origins and has not undergone the UX modernization that cloud competitors have invested in heavily.
  • Performance degrades noticeably as the database grows to hundreds of thousands of patients and millions of procedure rows, requiring periodic database maintenance.
HubSpot logo

HubSpot

Destination

Strengths

  • Genuinely useful free CRM tier with no seat limit on contact records.
  • All-in-one sales engagement layer (sequences, email tracking, calling, dialer) embedded natively in the CRM, eliminating a separate integration.
  • Intuitive interface and fast onboarding for individual reps, per G2 and Capterra reviews.
  • Workflow automation triggers across contacts, deals, and tickets with a visual builder.
  • API coverage for all standard objects including custom objects at Enterprise tier.

Weaknesses

  • Pricing model is contact-based at the marketing layer — importing all records as marketing contacts can multiply the monthly bill by 4×.
  • Feature tier cliffs are frequent surprises: sequences, calling, advanced reporting, and quoting are all gated, often requiring plan upgrades mid-implementation.
  • Mandatory onboarding fees at Professional ($1,500) and Enterprise ($3,500) are not prominently disclosed on the pricing page.
  • API rate limits are restrictive for bulk migration — burst limits of 100-200 req/10sec and search endpoint limits of 4 req/sec require careful job queuing.
  • Custom objects, additional pipelines, and advanced forecasting are Enterprise-only, making cost projections difficult for growing teams.

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 Open Dental and HubSpot.

  • 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

    Open Dental: Remote mode: 1,000 elements; Local/Service mode: 10,000 elements; Enterprise tier doubles Remote mode limits.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Open Dental to HubSpot 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 Open Dental to HubSpot data migrations

Answers to the questions buyers ask most during Open Dental to HubSpot migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Open Dental to HubSpot migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Open Dental to HubSpot migrations complete within 2–4 weeks of clock time for practices with under 10,000 patient records and fewer than 30 PatField custom properties. Multi-location Open Dental setups with separate provider databases, heavy insurance plan data, or more than 50,000 patient records extend to 5–8 weeks. The longest planning step is designing the HubSpot custom object schema for appointments, procedures, and insurance records — your HubSpot admin should create those before data lands. FlitStack provides a pre-migration checklist and custom object template to compress that planning phase.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Open Dental.
Land in HubSpot, 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