CRM migration
Field-level mapping, validation, and rollback between AeronaClinic and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
AeronaClinic
Source
Twenty CRM
Destination
Compatibility
11 of 12
objects map 1:1 between AeronaClinic and Twenty CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
AeronaClinic and Twenty CRM share a relational data model — both use objects, fields, and associations — but their domain focus creates structural divergence that migration planning must address. AeronaClinic is built for dental and health clinic workflows: it combines patient demographics, NHS/SDS identifiers, appointment scheduling, clinical notes, tooth charting, treatment plans, and billing in a single clinical schema. Twenty CRM is a general-purpose open-source CRM that models data around People, Companies, Opportunities, Tasks, and Notes with a custom field extension layer. When you migrate, patient records map directly to Twenty People, clinics and practices map to Companies, appointments and treatment plans map to Opportunities, and invoice records map to custom field extensions on Opportunities. The complications arise with healthcare-specific fields: NHS numbers, SDS numbers, medical history, consent dates, and clinical tooth-charting data have no native equivalent in Twenty — these require custom field creation before data lands. We handle the data layer: extracting from AeronaClinic via API, transforming field formats, resolving owner assignments by email, and bulk-loading into Twenty through its import API. Views, automations, permissions, and payment-processing integrations must be rebuilt manually in Twenty after migration. The delta-pickup window (24–48 hours) captures records modified during cutover so your Twenty workspace reflects the final state of AeronaClinic at go-live.
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 AeronaClinic 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.
AeronaClinic
Patient / Client
Twenty CRM
People
1:1AeronaClinic patient records map 1:1 to Twenty People. Every demographic field (name, DOB, contact details, address) translates directly. NHS number and SDS number migrate as custom fields on the People record — Twenty has no native healthcare identifier fields, so these are pre-created in Settings → Data Model before the import.
AeronaClinic
Patient Consent Record
Twenty CRM
People (custom fields)
1:1GDPR consent flags, opt-in dates, and e-signature timestamps stored in AeronaClinic's consent module have no native equivalent in Twenty. These map to custom select and datetime fields on the People object. Consent type (treatment, marketing, data retention) requires a separate custom pick-list created in Twenty Data Model before migration.
AeronaClinic
Medical History / Clinical Notes
Twenty CRM
People (custom fields) + Notes
1:1AeronaClinic stores structured medical history fields (allergies, conditions, medications, medical alerts) alongside free-text clinical notes. Structured fields migrate as custom fields on People. Free-text clinical notes attach as Twenty Notes linked to the People record. Tooth-charting data (quadrant, tooth number, surface condition) requires custom fields since Twenty Notes does not support structured dental charting notation.
AeronaClinic
Clinic / Practice
Twenty CRM
Company
1:1AeronaClinic's clinic or practice entity maps directly to Twenty Companies. Practice name, address, phone, and website translate to Twenty's standard Company fields. Multi-location clinic groups (parent practice with satellite clinics) map to Twenty Company hierarchy using the parentId field. Each location must be exported as a separate Company record.
AeronaClinic
Appointment
Twenty CRM
Opportunity
1:1AeronaClinic appointments become Twenty Opportunities. The appointment date maps to the Opportunity closeDate field. Appointment status (Booked, Arrived, In Treatment, Completed, No Show, Cancelled) maps via value_mapping to a custom pick-list field (Appointment_Status__c) since Twenty Opportunity StageName is a sales-stage pick-list and not semantically aligned with clinical appointment states.
AeronaClinic
Treatment Plan
Twenty CRM
Opportunity (custom fields)
1:1AeronaClinic treatment plans contain treatment type, prescribed procedures, estimated cost, and clinical notes. These map to a linked Opportunity record with custom fields: Treatment_Type__c (pick-list), Procedures__c (multi-select), Estimated_Cost__c (currency), Treatment_Notes__c (text), and Tooth_Number__c (text for charting notation). Treatment plan status (Proposed, Accepted, In Progress, Completed) maps to the Opportunity StageName with value_mapping.
AeronaClinic
Invoice / Billing Record
Twenty CRM
Opportunity (custom fields)
1:1AeronaClinic invoice records map to Opportunities with custom fields for billing details: Invoice_Number__c, Invoice_Amount__c, Amount_Paid__c, Payment_Method__c (card, cash, direct debit via GoCardless/Stripe), Payment_Status__c (Paid, Partial, Overdue), and Invoice_Date__c. The Opportunity Amount field holds the outstanding balance. Payment integrations must be rebuilt in Twenty.
AeronaClinic
Treatment Record
Twenty CRM
Custom Object + Notes
1:manyAeronaClinic treatment records contain detailed clinical data (procedure performed, tooth number/surface, materials used, clinician, duration, clinical notes). This maps as a custom Treatment_Record object in Twenty linked to the parent Opportunity (appointment). Free-text clinical notes attach as Twenty Notes on the treatment record. Tooth-charting notation (FDI or Palmer) is stored in a custom Tooth_Chart__c field on the treatment record.
AeronaClinic
User / Team Member / Clinician
Twenty CRM
WorkspaceMember
1:1AeronaClinic staff and clinician accounts map to Twenty Workspace Members. Owner resolution happens by email match — each AeronaClinic owner email is matched against invited Twenty workspace members. Unmatched owners are flagged and assigned to a fallback Workspace Member before migration so no record lands without an owner.
AeronaClinic
Attachment / Document
Twenty CRM
Notes (with attachments)
1:1AeronaClinic file attachments (consent forms, treatment plans, X-rays) re-upload as Twenty Notes with file attachments linked to the parent record (People, Opportunity, or custom Treatment_Record object). File size limits apply (Twenty default 25MB per file). Inline images in clinical notes are downloaded and rehosted.
AeronaClinic
Automated Recall / Appointment Reminder
Twenty CRM
No Equivalent
1:1AeronaClinic recall sequences and automated appointment reminders have no direct equivalent in Twenty. These automations must be rebuilt in Twenty Workflows (Settings → Workflows) after migration. FlitStack exports the recall rule definitions as a structured JSON reference document for your Twenty admin to use during the rebuild phase.
AeronaClinic
Payment Integration (GoCardless, Stripe)
Twenty CRM
No Equivalent
1:1AeronaClinic's native GoCardless and Stripe integrations reconcile payments directly within the platform. Twenty has no native payment gateway — this must be rebuilt using a third-party integration (Stripe Connect, GoCardless API) after migration. Payment transaction history and reconciliation records do migrate as custom fields on the relevant Opportunity.
| AeronaClinic | Twenty CRM | Compatibility | |
|---|---|---|---|
| Patient / Client | People1:1 | Fully supported | |
| Patient Consent Record | People (custom fields)1:1 | Fully supported | |
| Medical History / Clinical Notes | People (custom fields) + Notes1:1 | Fully supported | |
| Clinic / Practice | Company1:1 | Fully supported | |
| Appointment | Opportunity1:1 | Fully supported | |
| Treatment Plan | Opportunity (custom fields)1:1 | Fully supported | |
| Invoice / Billing Record | Opportunity (custom fields)1:1 | Fully supported | |
| Treatment Record | Custom Object + Notes1:many | Fully supported | |
| User / Team Member / Clinician | WorkspaceMember1:1 | Fully supported | |
| Attachment / Document | Notes (with attachments)1:1 | Fully supported | |
| Automated Recall / Appointment Reminder | No Equivalent1:1 | Fully supported | |
| Payment Integration (GoCardless, Stripe) | No Equivalent1: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.
AeronaClinic gotchas
Password-protected API limits export options
Large historical record volumes in dental practices
Payment plan instalment schedules require manual sign-off
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
Audit AeronaClinic data export and create Twenty custom field manifest
We connect to AeronaClinic via API or direct database export and inventory every object: patient records, medical history fields, consent dates, appointments, treatment plans, invoices, clinic accounts, and staff accounts. Simultaneously, we generate a custom field manifest listing every NHS number field, SDS number field, consent field, medical alert field, appointment status value, and treatment type pick-list that requires a custom field in Twenty Settings → Data Model. Your Twenty admin pre-creates these fields before any validation runs. We also identify records that exceed Twenty's 20,000-record export limit and generate a batch-split export plan.
Resolve AeronaClinic staff accounts to Twenty Workspace Members
Every owner and clinician in AeronaClinic must have a corresponding Twenty Workspace Member account for record ownership to map correctly. We extract the AeronaClinic user list, match each owner email against invited Twenty workspace members, and flag any AeronaClinic staff without a Twenty account. Your team either invites them to Twenty before migration or designates a fallback Workspace Member to own their records. No record migrates without a resolved owner — this prevents orphaned opportunities that are invisible to pipeline reports in Twenty.
Migrate Companies, then People, then Opportunities in correct load order
Twenty enforces referential integrity: Company records must exist before People can reference them via companyId, and People records must exist before Opportunities can reference them. We sequence the migration as a strict three-pass ETL: (1) Companies — practice names, addresses, phone, website, parentId for multi-location hierarchies; (2) People — patient demographics, NHS/SDS numbers, consent dates, medical alerts, linked to the correct Company via companyId; (3) Opportunities — appointments, treatment plans, invoices linked to the correct People and Company. Custom Treatment_Record objects load last since they reference both People and Opportunities. Every pass preserves original AeronaClinic creation timestamps as custom datetime fields.
Run sample migration with field-level diff and validate custom field mapping
We run a representative sample migration — typically 200–500 records spanning patients, appointments, treatment plans, and invoices across multiple clinics — before committing the full dataset. The field-level diff compares source AeronaClinic values against the corresponding Twenty fields for every mapped record. We verify that NHS numbers and SDS numbers land in the correct custom fields, that appointment status values map to the Appointment_Status__c pick-list without truncation, that tooth-charting data is structured in the Treatment_Record custom object, and that owner assignment resolves by email match. You review the diff before the full migration proceeds.
Execute full migration with delta-pickup window and audit log
The full migration runs against Twenty using batched API calls that respect the 100 calls/min limit (Pro tier). A delta-pickup window — typically 24–48 hours from the start of cutover — captures any records created or modified in AeronaClinic during the migration run. FlitStack generates a complete audit log covering every record written, every field transformed, every owner resolved, and every value mapped. If reconciliation fails, one-click rollback reverts the Twenty workspace to its pre-migration state. After validation, your team is ready to go live in Twenty with the full AeronaClinic dataset — minus workflows, recall sequences, and payment integrations, which require manual rebuild in Twenty Settings → Workflows and a separate payment gateway integration project.
Platform deep dives
AeronaClinic
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 AeronaClinic 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
AeronaClinic: Not publicly documented.
Data volume sensitivity
AeronaClinic 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 AeronaClinic to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your AeronaClinic 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 AeronaClinic
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.