CRM migration
Field-level mapping, validation, and rollback between Bp Premier and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Bp Premier
Source
Twenty CRM
Destination
Compatibility
10 of 10
objects map 1:1 between Bp Premier and Twenty CRM.
Complexity
BStandard
Timeline
48–72 hours of active migration work
Overview
Bp Premier is a medical practice management system built for Australasian healthcare providers — it stores patient demographics, clinical measurements, prescription records, appointment histories, and My Health Record integration. Twenty CRM is an open-source CRM built on TypeScript, NestJS, and PostgreSQL with standard People, Companies, and Opportunities objects plus custom object support on Professional and Organization tiers. The two data models diverge significantly: Twenty has no native clinical field types, so blood pressure readings, BMI values, prescription dates, and MySL prescription identifiers must be created as custom fields in Twenty before migration. We export patient records and associated clinical data from Bp Premier via its built-in export function, transform the schema to Twenty's object structure, and load via Twenty's CSV importer or API using the Companies → People → Opportunities sequence to respect foreign-key dependencies. Workflows, automations, and clinical templates in Bp Premier do not migrate — FlitStack provides a workflow audit export as a rebuild reference for Twenty's workflow builder. Delta-pickup captures any records modified during cutover, and one-click rollback is available if reconciliation fails.
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 Bp Premier object lands in Twenty CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Bp Premier
Patient Record
Twenty CRM
People
1:1Bp Premier patient records map directly to Twenty's People object. Name, date of birth, gender, contact details, and address fields transfer as standard Twenty fields. Clinical measurement fields (blood pressure, pulse, BMI) require custom fields on the People object since Twenty has no native clinical field types. The original Bp Premier record creation date is preserved as a custom datetime field in Twenty.
Bp Premier
Patient Clinical Notes
Twenty CRM
People (custom field)
1:1Bp Premier clinical notes from the patient record map to a long-text custom field (Clinical_Notes__c) on the Twenty People record. Notes are appended as a single concatenated text block with timestamps to preserve context. If notes contain structured data (e.g., SOAP format), individual components may be extracted into separate custom fields per your specification.
Bp Premier
Prescription Record (MySL)
Twenty CRM
People (custom fields)
1:1Bp Premier's MySL module tracks prescriptions with drug name, dosage, directions, and date prescribed. These map to a set of custom fields on the Twenty People record: Prescription_Drug__c, Prescription_Directions__c, and Prescription_Date__c. Each prescription becomes a separate related record if Twenty's custom object model is extended for prescriptions.
Bp Premier
Allergy Record
Twenty CRM
People (custom field)
1:1Allergy data stored in Bp Premier patient records transfers as a custom text or multi-select field (Allergies__c) on the Twenty People object. Multi-select format is used if Bp Premier stores allergies as discrete values; free-text if stored as a single notes field.
Bp Premier
Appointment Book Entry
Twenty CRM
Tasks (custom field link)
1:1Bp Premier appointment records do not map to a native Twenty object. We create a custom task record linked to the corresponding People record, storing appointment date, type, duration, and practitioner as custom fields. This preserves appointment history in Twenty's task model without requiring a separate custom object.
Bp Premier
Document Attachment
Twenty CRM
Notes / File Attachments
1:1Bp Premier file attachments stored against patient records (e.g., scanned referral letters, imaging reports) are downloaded and re-uploaded as Twenty Notes or file attachments linked to the corresponding People record. File size limits are respected; inline images in clinical notes are extracted and rehosted.
Bp Premier
User / Practitioner
Twenty CRM
Workspace Member
1:1Bp Premier staff and practitioner records are mapped to Twenty Workspace Members by email match. Unmatched practitioners are flagged before migration — your team either creates their Twenty user account first or assigns their records to a fallback workspace member. Practitioner specialty and provider numbers are preserved in custom fields on the Workspace Member record.
Bp Premier
My Health Record Identifier (HPI-O / HPI-I)
Twenty CRM
People (custom field)
1:1Bp Premier stores each patient's HPI-O (Healthcare Provider Identifier - Organisation) and each practitioner's HPI-I. These are Australian My Health Record identifiers with no equivalent in Twenty. We preserve both as custom text fields on the People record (My_Health_Record_HPIO__c and My_Health_Record_HPII__c) so the identifiers are searchable post-migration even though Twenty has no native My Health Record integration.
Bp Premier
Custom Field / User-Defined Property
Twenty CRM
Custom Field (same type)
1:1Any Bp Premier custom fields your practice has configured map directly to identically typed custom fields created in Twenty before migration. Text fields to text, date fields to date, pick-list values to select fields. The field name in Twenty may need sanitization (spaces removed, special characters stripped) to comply with Twenty's field-naming constraints.
Bp Premier
Insurance / Billing Details
Twenty CRM
People (custom fields) or Companies
1:1Bp Premier insurance provider and billing reference fields map to custom fields on the People record (Insurance_Provider__c, Insurance_Reference__c). If Bp Premier stores insurance company details as a separate entity, that maps to a Twenty Companies record linked to the People record via companyId.
| Bp Premier | Twenty CRM | Compatibility | |
|---|---|---|---|
| Patient Record | People1:1 | Fully supported | |
| Patient Clinical Notes | People (custom field)1:1 | Fully supported | |
| Prescription Record (MySL) | People (custom fields)1:1 | Fully supported | |
| Allergy Record | People (custom field)1:1 | Fully supported | |
| Appointment Book Entry | Tasks (custom field link)1:1 | Fully supported | |
| Document Attachment | Notes / File Attachments1:1 | Fully supported | |
| User / Practitioner | Workspace Member1:1 | Fully supported | |
| My Health Record Identifier (HPI-O / HPI-I) | People (custom field)1:1 | Fully supported | |
| Custom Field / User-Defined Property | Custom Field (same type)1:1 | Fully supported | |
| Insurance / Billing Details | People (custom fields) or Companies1: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.
Bp Premier gotchas
MySL prescription date-created has inconsistent behavior
My Health Record uploads are immutable and non-extractable
No REST API — migration relies entirely on export tools
Server-to-server migration requires full reinstall
Legacy version data format differences
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
Profile Bp Premier data and create Twenty custom fields
FlitStack audits your Bp Premier schema — patient record fields, clinical measurements, MySL prescription identifiers, appointment structures, and any custom fields your practice has configured. We identify all fields that have no native Twenty equivalent (blood pressure, BMI, HPI-O, HPI-I, prescription data) and deliver a custom field creation plan for Twenty. Your admin (or our team) pre-creates these fields in Twenty before migration begins so the schema is ready when data arrives.
Resolve practitioners and staff by email
Bp Premier practitioner and staff user IDs are matched against Twenty Workspace Members by email lookup. We perform an exact match on email addresses to link Bp Premier practitioners to their corresponding Twenty user accounts. Any practitioners without matching Twenty accounts are flagged in a pre-migration report with clear instructions: either create the Twenty user account beforehand or designate a fallback Workspace Member to own those records. This step ensures that appointment tasks, clinical notes, and prescription records in Twenty are correctly attributed to the responsible practitioner — no record enters Twenty without an assignee confirmed.
Export, transform, and sequence the import by dependency order
We pull patient records and clinical data from Bp Premier via its built-in export function, deconstruct the per-patient export into relational rows, and transform them to match Twenty's object structure. The import follows Twenty's documented dependency chain: Companies first (if insurance providers are stored as separate entities), then People with companyId links resolved, then Tasks for appointment history, and finally custom object rows for prescription records if a custom prescription object is created. Foreign-key dependencies are validated before each batch commits.
Run sample migration with field-level diff
A representative slice of patient records (typically 50–200 spanning different record ages and clinical complexity) migrates first. We generate a field-level diff between the Bp Premier source fields and the corresponding Twenty records so you can verify that blood pressure values, prescription dates, MySL IDs, and HPI-O/HPI-I identifiers landed correctly. Clinical note completeness and appointment linkage are spot-checked before the full run commits.
Cut over with delta-pickup and rollback available
The full migration runs against Twenty. A delta-pickup window (typically 24–48 hours) captures any patient records modified or newly created in Bp Premier during the cutover so Twenty reflects Bp Premier's final state at go-live. Audit log captures every operation, and one-click rollback is available if reconciliation fails. Bp Premier remains accessible and read-only during this window — your team can continue using it until you confirm Twenty is the live system.
Platform deep dives
Bp Premier
Source
Strengths
Weaknesses
Twenty CRM
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 Bp Premier and Twenty CRM.
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
Bp Premier: Not publicly documented.
Data volume sensitivity
Bp Premier 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 Bp Premier to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Bp Premier to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Bp Premier
Other ways to arrive at Twenty CRM
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.