CRM migration
Field-level mapping, validation, and rollback between tab32 and HighLevel. We move data and schema; workflows are rebuilt natively in HighLevel.
tab32
Source
HighLevel
Destination
Compatibility
11 of 12
objects map 1:1 between tab32 and HighLevel.
Complexity
BStandard
Timeline
5–7 days
Overview
tab32 is a dental-specific cloud PMS built for enterprise dental groups and DSOs. Its data model centers on patients (demographics, insurance, treatment history), clinical charting (tooth conditions, periodontal measurements, treatment plans), appointments (provider, operatory, time block), imaging links, and multi-location practice structures. HighLevel is an all-in-one marketing CRM built around Contacts, Companies, Opportunities (pipeline-based), Workflows, and integrated messaging. The two platforms share almost no native object equivalence — tab32's clinical fields (Perio measurements, CDT codes, tooth chart data) have no direct HighLevel counterpart, and HighLevel's pipeline and workflow constructs have no tab32 analogue. We handle this through a combination of direct field mapping where names and types align, custom field creation in HighLevel for dental-specific data, and structured reference-field preservation for data that cannot be rendered natively. Workflows, automations, and appointment-rule logic do not migrate and must be rebuilt in HighLevel's Workflow Builder. We use tab32's API export and bulk CSV where available, cross-referenced against the source system's data warehouse exports for multi-location setups, and load into HighLevel via the HighLevel API v2 with custom-field creation and relationship resolution per sub-account.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a tab32 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.
tab32
Patient
HighLevel
Contact
1:1tab32 Patient maps to HighLevel Contact for all standard demographics: name, date of birth, contact information, address, and primary provider. Insurance subscriber relationship and multi-location patient identifiers carry over as custom fields. The original patient create date is preserved as a custom datetime field since HighLevel's CreatedDate reflects the migration timestamp.
tab32
Patient.insurance_primary
HighLevel
Insurance (Custom Object)
1:1tab32 stores primary and secondary insurance as structured objects on the patient record: carrier name, group number, member ID, subscriber name, and relationship. These have no native HighLevel equivalent, so we create an Insurance custom object with a lookup relationship to Contact and populate carrier, group/member, subscriber, and effective date fields per source record.
tab32
Clinical Chart — Tooth Conditions
HighLevel
Contact (custom fields)
1:1tab32 tooth chart stores per-tooth conditions (Intact, Missing, Filling, Crown, Implant, Root Canal, etc.) in a structured grid. We translate this into a set of HighLevel custom fields — one per tooth surface or using a structured text field — and preserve the chart snapshot as of migration date. Historical chart changes do not carry forward; the final chart state is the migration record.
tab32
Perio Exam — Probing Depths
HighLevel
Contact (custom fields)
1:1Periodontal probing measurements (6-point per-tooth probing depths) stored in tab32 map to a Perio_Exam custom field on the HighLevel Contact. We store the most recent exam date and a serialized JSON snapshot of the probing data as a long-text field. Perio trend history is not traversable in HighLevel's flat record model — the most recent exam snapshot is preserved.
tab32
Treatment Plan
HighLevel
Opportunity (line items)
1:1tab32 treatment plans list procedures with CDT codes, tooth numbers, surfaces, fees, and provider. We map each treatment plan to a HighLevel Opportunity named by patient + plan date, with CDT codes stored as Opportunity custom fields and fee amounts mapped to the Opportunity Amount field. Incomplete treatment plans preserve recommended-but-not-started procedures as a custom field note.
tab32
Appointment
HighLevel
Calendar Event / Task
1:1Scheduled appointments map to HighLevel Calendar Events with the patient (Contact) linked, provider assigned, time block set, and operatory location tagged as a custom field. Past appointment records migrate as read-only Task entries with type='Completed Appointment' so the patient's activity history is visible in HighLevel's timeline.
tab32
Provider / Staff
HighLevel
HighLevel User
1:1tab32 providers (dentist, hygienist, assistant) and administrative staff are mapped to HighLevel users by email match. tab32 role assignments (Provider, Admin, Front Desk) map to HighLevel staff permissions and sub-account roles. Users without a matchable email are flagged before migration so they can be invited to HighLevel first.
tab32
Practice Location
HighLevel
Sub-Account
1:manyEach tab32 practice location becomes a HighLevel sub-account. All patients, appointments, and contacts belonging to a location are assigned to that sub-account. The location's fee schedule, provider list, and operatory configuration are stored as custom fields on the sub-account settings page. This requires pre-creation of sub-accounts before data is loaded.
tab32
Imaging / Radiographs
HighLevel
Contact (file attachment)
1:1tab32 imaging file references (X-ray URLs, intraoral photos) are stored as file attachments linked to the patient record. We re-upload available images to HighLevel as Contact file attachments. Large imaging volumes may require a separate cloud storage reference field since HighLevel has per-file size limits for CRM attachments.
tab32
Fee Schedule
HighLevel
Custom Object
1:1tab32 fee schedules vary per location and specialty. We create a Fee_Schedule custom object in HighLevel linked to the location's sub-account, storing CDT code, description, and fee amount. This preserves the schedule structure for future treatment plan报价 but is not automatically tied to Opportunities — it is a reference object for staff to consult.
tab32
tab32 Workflow / Recare Automation
HighLevel
No equivalent — rebuild reference
1:1tab32 appointment reminder rules, recall triggers (e.g., perio maintenance every 6 months), and recare campaign logic have no HighLevel equivalent. We export the rule definitions (trigger conditions, timing, message content) as a JSON reference document that maps directly to HighLevel Workflow triggers (Date/Time, Contact Field Change, Tag Added) so your admin can rebuild each automation in HighLevel's Workflow Builder.
tab32
Billing / Claims History
HighLevel
Custom Object (reference only)
1:1tab32 A/R records, claim submission history, payment history, and remaining benefits data do not map into HighLevel's contact/opportunity model. We preserve this as a read-only Billing_History custom object for reference and audit continuity, but we do not attempt to render active claims or open balances in HighLevel. Active RCM should continue in tab32 or a dedicated billing system during the transition.
| tab32 | HighLevel | Compatibility | |
|---|---|---|---|
| Patient | Contact1:1 | Fully supported | |
| Patient.insurance_primary | Insurance (Custom Object)1:1 | Fully supported | |
| Clinical Chart — Tooth Conditions | Contact (custom fields)1:1 | Fully supported | |
| Perio Exam — Probing Depths | Contact (custom fields)1:1 | Fully supported | |
| Treatment Plan | Opportunity (line items)1:1 | Fully supported | |
| Appointment | Calendar Event / Task1:1 | Fully supported | |
| Provider / Staff | HighLevel User1:1 | Fully supported | |
| Practice Location | Sub-Account1:many | Fully supported | |
| Imaging / Radiographs | Contact (file attachment)1:1 | Fully supported | |
| Fee Schedule | Custom Object1:1 | Fully supported | |
| tab32 Workflow / Recare Automation | No equivalent — rebuild reference1:1 | Fully supported | |
| Billing / Claims History | Custom Object (reference only)1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
tab32 gotchas
Data quality inheritance blocks clean migration
DSO multi-location structure requires explicit office mapping
Imaging data lives outside the standard export path
Fee schedule consolidation is a pre-migration prerequisite
Training and support model assumes daytime availability
HighLevel gotchas
Sub-account architecture creates isolated data silos per client
Usage-based telecom and AI costs are not in the subscription price
Workflows have no native equivalent in most destination CRMs
API rate limits cap bulk migration throughput at 100 requests per 10 seconds per sub-account
White-label configuration and branding assets do not export via API
Pair-specific challenges
Migration approach
Audit tab32 data inventory and create HighLevel sub-account structure
FlitStack AI pulls a full data inventory from tab32 covering patients, appointments, clinical charts, treatment plans, insurance records, providers, and location identifiers. We produce a record-count and custom-field inventory per location. Concurrently, your team (guided by our sub-account setup plan) creates one HighLevel sub-account per tab32 practice location, configures the initial pipeline stages, and invites providers and staff. No data moves until the sub-account structure is confirmed.
Create custom objects and fields in HighLevel for dental data
Using the inventory from Step 1, FlitStack creates the required custom objects (Insurance, Fee_Schedule, Billing_History) and custom fields (Tooth_Chart_Snapshot, Perio_Exam_Date, CDT_Code, Operatory, Assigned_Provider, etc.) in each HighLevel sub-account. We deliver a schema plan showing every custom field, its data type, pick-list values, and the sub-account it belongs to. FlitStack also defines lookup relationships, validation rules, and default values for each custom field. The schema documentation includes field-level descriptions, usage notes, and sample values to guide your team during the migration and post-launch configuration. You approve the schema before any data is loaded.
Resolve providers and staff by email match to HighLevel users
tab32 provider and staff records are matched to HighLevel users by email. Unmatched providers are flagged before migration — your team either creates the HighLevel user account or assigns their records to a fallback user. No appointment or contact lands without an assigned HighLevel owner. For multi-location setups, we verify that each matched user is assigned to the correct sub-account.
Run a sample migration across one location with field-level diff
A representative slice of patient records (typically 100–300) from one practice location migrates first — covering demographics, insurance, a clinical chart, an appointment, and a treatment plan. We generate a field-level diff showing the source tab32 value and the resulting HighLevel field value for every mapped property. You verify tooth chart mapping, insurance object linking, CDT code storage, and provider assignment before the full run commits. Any mapping adjustments are made and a second sample validates before go-ahead.
Execute full migration with delta-pickup window and rollback on demand
Full migration runs against all sub-accounts simultaneously. A delta-pickup window (typically 24–48 hours) captures any new patients or appointment changes made in tab32 during the cutover. An audit log records every operation — record created, updated, linked, or skipped. If reconciliation fails (record count mismatch, missing foreign key, or custom object linkage error), one-click rollback reverts the HighLevel sub-accounts to their pre-migration state. After rollback confirmation, you can re-run with corrected mapping.
Deliver workflow rebuild reference and post-migration validation
FlitStack exports your tab32 automation definitions — recall triggers, recare rules, appointment reminders — as a structured JSON and Markdown reference document. Each tab32 rule is mapped to a suggested HighLevel Workflow trigger and action pair so your admin can rebuild them in the Workflow Builder. We run a post-migration validation pass confirming record counts per sub-account, foreign key linkage integrity (Insurance → Contact, Opportunity → Contact), and custom field completeness on a 5% sample.
Platform deep dives
tab32
Source
Strengths
Weaknesses
HighLevel
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across tab32 and HighLevel.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
tab32: Not publicly documented.
Data volume sensitivity
tab32 exposes a bulk API — large-volume migrations stream efficiently.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during tab32 to HighLevel migration scoping. Not seeing yours? Book a call.
Walk through your tab32 to HighLevel migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave tab32
Other ways to arrive at HighLevel
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.