CRM migration
Field-level mapping, validation, and rollback between Practice by Numbers and Mailchimp. We move data and schema; workflows are rebuilt natively in Mailchimp.
Practice by Numbers
Source
Mailchimp
Destination
Compatibility
10 of 11
objects map 1:1 between Practice by Numbers and Mailchimp.
Complexity
BStandard
Timeline
24–48 hours
Overview
Moving from Practice by Numbers to Mailchimp is a lateral move in one dimension and a leap in another. Practice by Numbers is a dental practice management platform — it stores patient records, treatment plans, appointments, clinical notes, and communication histories tied to a monthly subscription per provider. Mailchimp is an email marketing platform organized around audiences, contacts, tags, and campaigns. The migration carries everything Mailchimp can represent natively: patient contact information, addresses, and custom properties for dental data. The harder problems are mapping PbN's treatment plans and appointment timestamps to Mailchimp custom fields that cannot trigger native reminders, handling Mailchimp's audience-level contact deduplication rules that may merge contacts from shared household addresses, and getting practice-level custom properties (doctor, specialty, insurance carrier) into Mailchimp as properly typed custom fields before segments can use them. We sequence the migration as a CSV export from PbN → staging → Mailchimp bulk import, with a 24–48-hour delta window for any patient records modified during the cutover.
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 Practice by Numbers object lands in Mailchimp, 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 Record
Mailchimp
Contact (Audience Member)
1:1Each PbN patient record maps to one Mailchimp contact in your primary audience. PbN stores patients with a full name, email address, phone number, and mailing address. These map directly to Mailchimp's standard firstname, lastname, email, phone, and address fields. PbN patients without an email address cannot migrate — FlitStack surfaces these records before the migration runs so your team can collect addresses or flag them as unsubscribable.
Practice by Numbers
Treatment Plan
Mailchimp
Custom Properties (Treatment_History__c, Last_Treatment__c, Next_Appointment__c)
1:1Mailchimp has no native treatment plan or clinical note object. We create Mailchimp custom merge fields (text and date types) to store the treatment history summary, last treatment date, and next scheduled procedure. These fields enable segmentation — for example, a segment for patients whose last treatment was more than six months ago for a recall campaign.
Practice by Numbers
Appointment / Recall Date
Mailchimp
Custom Property (Next_Appointment__c, Date type)
1:1PbN appointment dates are preserved as Mailchimp custom date merge fields. These can be used in segmentation for time-based recall automations, but Mailchimp does not send automated appointment reminders — those require a separate scheduling integration or manual campaign triggering based on the date field.
Practice by Numbers
Provider / Doctor
Mailchimp
Custom Property (Assigned_Doctor__c, Text)
1:1Mailchimp has no native provider assignment field. We map the PbN provider name to a text custom property so you can segment by which dentist or hygienist a patient typically sees. This is useful for targeted promotions such as 'Dr. Smith's patients' specialty offers.
Practice by Numbers
Insurance Carrier
Mailchimp
Custom Property (Insurance_Carrier__c, Text) or Tag
1:1PbN insurance carrier data maps to a text custom property in Mailchimp. Alternatively, we can apply Mailchimp tags per carrier (e.g., tag 'Delta Dental' on all patients with that carrier) for more flexible segmentation without consuming a custom field slot.
Practice by Numbers
Patient Status / Active vs. Inactive
Mailchimp
Tag (Active_Patient, Inactive_Patient, Churned) or Custom Property
1:1PbN active/inactive patient status becomes Mailchimp tags. Active patients receive the Active_Patient tag; patients who have not had an appointment in over 12 months receive the Inactive_Patient tag. This enables one-click filtering in Mailchimp for reactivation campaigns. Tag-based segmentation allows you to build audience segments for targeted email sends without creating complex custom field queries.
Practice by Numbers
Communication History (appointment reminders sent via PbN)
Mailchimp
Campaign Activity History
1:1PbN's communication log — automated appointment reminders, recall emails, and treatment follow-up messages — does not map to any Mailchimp construct. Mailchimp stores campaign send history per contact, but PbN reminder sends are not present. We document the last reminder sent date as a custom field if PbN exposes it in the export.
Practice by Numbers
Forms / Intake Data
Mailchimp
Custom Properties
1:1Patient intake form fields from PbN (e.g., medical history flags, referral source, preferred contact method) map to Mailchimp custom text or radio-button merge fields. The field type in Mailchimp must match the PbN data type — radio-button fields in PbN require value-mapping in Mailchimp.
Practice by Numbers
Practice / Location
Mailchimp
Custom Property (Practice_Name__c) or Mailchimp Audience (multi-location)
1:manyFor single-location practices, the practice name becomes a custom property. For multi-location dental groups, we recommend one Mailchimp audience per practice location to keep contact counts and campaign targeting clean — this splits the PbN multi-location dataset into separate Mailchimp audiences rather than a single audience with a location filter.
Practice by Numbers
Payment / Billing History
Mailchimp
No equivalent in Mailchimp
1:1PbN treatment plan billing data and payment history have no place in Mailchimp's contact model. We do not migrate billing records. If your team needs billing-related segmentation (e.g., 'patients with outstanding balances'), we create a custom property (Balance_Owing__c) as a text field — the actual financial data must stay in PbN or your billing system.
Practice by Numbers
PbN Patient ID
Mailchimp
Custom Property (PbN_Patient_ID__c, Text)
1:1Mailchimp generates its own contact IDs and does not accept external ID values as the primary identifier. We store the PbN patient ID in a custom text property so your team can cross-reference records between systems during the migration verification period and for any future sync workflows.
| Practice by Numbers | Mailchimp | Compatibility | |
|---|---|---|---|
| Patient Record | Contact (Audience Member)1:1 | Fully supported | |
| Treatment Plan | Custom Properties (Treatment_History__c, Last_Treatment__c, Next_Appointment__c)1:1 | Fully supported | |
| Appointment / Recall Date | Custom Property (Next_Appointment__c, Date type)1:1 | Fully supported | |
| Provider / Doctor | Custom Property (Assigned_Doctor__c, Text)1:1 | Fully supported | |
| Insurance Carrier | Custom Property (Insurance_Carrier__c, Text) or Tag1:1 | Fully supported | |
| Patient Status / Active vs. Inactive | Tag (Active_Patient, Inactive_Patient, Churned) or Custom Property1:1 | Fully supported | |
| Communication History (appointment reminders sent via PbN) | Campaign Activity History1:1 | Fully supported | |
| Forms / Intake Data | Custom Properties1:1 | Fully supported | |
| Practice / Location | Custom Property (Practice_Name__c) or Mailchimp Audience (multi-location)1:many | Fully supported | |
| Payment / Billing History | No equivalent in Mailchimp1:1 | Fully supported | |
| PbN Patient ID | Custom Property (PbN_Patient_ID__c, Text)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.
Practice by Numbers gotchas
No publicly documented API for automated migration
Dental EHR data is inherently messy during extraction
Goal management metrics require explicit field mapping
Mailchimp gotchas
Contact count includes unsubscribed and non-subscribed records
Automation workflows cannot be exported
Account suspensions trigger silently during migration
Template HTML is Mailchimp-specific and may not render in other platforms
E-commerce data requires active store connection
Pair-specific challenges
Migration approach
Export and audit PbN patient records
FlitStack connects to your PbN account and extracts the full patient contact export via CSV or API, including all standard fields (name, email, phone, address) and any custom fields your practice has configured (treatment plans, insurance, referral source, recall intervals). We run a pre-migration audit that flags duplicate email addresses, missing email addresses, and fields that will exceed Mailchimp's 30-merge-field limit. You receive a field-prioritization worksheet before any data moves so you can decide which custom fields get merge-tag treatment and which are stored as overflow JSON data.
Create Mailchimp audience and merge fields
Before contacts are loaded, FlitStack provisions the Mailchimp audience and creates every merge field with the correct type — DATE fields for appointment timestamps, NUMBER fields for recall intervals, TEXT fields for treatment summaries and doctor names, ADDRESS fields for mailing addresses. If your migration requires multiple Mailchimp audiences (one per practice location for multi-location groups), we create all audiences and define the audience-specific field configuration. This step also sets the Mailchimp default contact status and applies the unsubscribe status for any patients marked as unsubscribed in PbN.
Run a sample import with field-level verification
A representative slice of patient records — typically 100–500 contacts spanning a range of record types (active patients, inactive patients, patients with and without email addresses) — is imported into the Mailchimp audience first. FlitStack generates a field-level diff comparing source PbN values against the corresponding Mailchimp contact values so you can verify that date fields appear in correct format, text fields carry the right content, and duplicate email addresses were resolved according to your chosen strategy. You sign off on the sample diff before the full migration run commits.
Execute full migration with delta-pickup window
The full patient contact list is bulk-imported into Mailchimp. A delta-pickup window of 24–48 hours runs in parallel: any patient records created or modified in PbN during the import window are captured and loaded into Mailchimp after the initial batch completes. FlitStack generates an audit log of every record created, updated, or skipped, and provides a one-click rollback script that removes all migrated contacts from the Mailchimp audience if reconciliation reveals data integrity issues. After rollback is confirmed, the migration can be re-run with corrected field mappings.
Deliver migration artifact package and rebuild reference
FlitStack delivers a migration artifact package that includes the complete field-mapping specification, the pre-migration PbN audit report, the Mailchimp audience configuration summary, and the PbN workflow export as a rebuilding reference for your team. The workflow export lists every PbN automated sequence, its trigger conditions, and its cadence so your Mailchimp admin can recreate patient recall journeys as Mailchimp automation campaigns. This package also includes the PbN_Patient_ID__c cross-reference so your team can verify completeness against the original PbN export during the go-live reconciliation period.
Platform deep dives
Practice by Numbers
Source
Strengths
Weaknesses
Mailchimp
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Practice by Numbers and Mailchimp.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Practice by Numbers and Mailchimp.
Object compatibility
All 8 core objects map 1:1 between Practice by Numbers and Mailchimp.
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
Practice by Numbers: Not publicly documented.
Data volume sensitivity
Practice by Numbers doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 Practice by Numbers to Mailchimp migration scoping. Not seeing yours? Book a call.
Walk through your Practice by Numbers to Mailchimp migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Practice by Numbers
Other ways to arrive at Mailchimp
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.