CRM migration

Migrate from Praktika Australia to Twenty CRM

Field-level mapping, validation, and rollback between Praktika Australia and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.

Praktika Australia logo

Praktika Australia

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between Praktika Australia and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Praktika Australia is a cloud dental practice management system built by Lizard Software for Australian and New Zealand dental practices. It manages patient records, appointment books, treatment plans, clinical charting, HICAPS and Tyro billing integrations, and recall reminders across a per-location subscription model. Twenty CRM is an open-source CRM with standard People, Companies, Opportunities, Notes, and Tasks objects plus full custom object support. It accepts data via CSV import (with column mapping through the UI) or via REST/GraphQL API — the import sequence requires Companies first, then People (with companyId), then Opportunities, then custom objects with relations. FlitStack AI migrates Praktika's patient records into Twenty People objects, practice details into Companies, and treatment plans into Opportunities. Appointment data transforms into Twenty Tasks with a due date from the appointment timestamp. Recall dates become Task records with the recall date as the due date. Provider and practitioner names resolve by email match against Twenty workspace members. Clinical notes and perio charting data store as custom fields on the People object. FlitStack does not migrate Praktika's HICAPS and Tyro billing configurations, appointment book scheduling rules, or sterilisation tracking — those are destination-side workflow configurations that must be rebuilt in Twenty's workflow builder or via integrations. The migration runs on scoped read access against Praktika's export, with a 24–48 hour delta-pickup window capturing records modified during cutover. Audit logging and one-click rollback are included.

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

Praktika Australia logo

Praktika Australia

What's pushing teams away

  • Internet-dependency — without a reliable connection (and a 4G backup), the practice loses access entirely. Practices in regional areas with patchy connectivity flag this regularly.
  • Limited integration ecosystem outside the AU/NZ stack — newer integrations exist but the platform lags larger global competitors on third-party marketing, analytics, and clinical add-ons.
  • Customization options are narrower than larger platforms — workflow and field-level customization is constrained, frustrating practices with non-standard processes.
  • Small vendor team (5–10 employees per LinkedIn) handles all 2,000+ practices, which limits how fast they can respond at peak support windows.
  • No public API or developer portal — practices wanting programmatic data extraction for analytics or BI rely entirely on Praktika's conversion service or in-app exports.

Choosing

Twenty CRM logo

Twenty CRM

What's pulling them in

  • Top open-source CRM on GitHub with 40.6K stars, giving teams full source code access and infrastructure ownership without per-feature licensing surprises.
  • Free self-hosting under AGPL-3.0 means unlimited users and custom objects for the cost of cloud infrastructure alone, typically $20–100/month.
  • Pricing page explicitly mocks competitors for charging add-on fees for API access, webhooks, and workflows — transparency that resonates with RevOps teams burned by Salesforce.
  • Unlimited custom objects and fields with no price impact, letting teams shape the data model to their business rather than forcing business into rigid schemas.
  • Modern TypeScript/React/PostgreSQL stack means developer-led teams can extend, self-host, or integrate without fighting legacy architecture.

Object mapping

How Praktika Australia objects map to Twenty CRM

Each row shows how a Praktika Australia 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.

Praktika Australia

Patient

maps to

Twenty CRM

People

1:1
Fully supported

Praktika patient records map directly to Twenty People. The patient first name, last name, email, phone, address, date of birth, and all custom patient properties migrate as Twenty People fields or custom fields on the People object. Original patient IDs preserve as Source_System_ID__c for traceability and delta-run de-duplication.

Praktika Australia

Patient → Primary Practice

maps to

Twenty CRM

Company

1:1
Fully supported

Praktika stores the dental practice name as a field on the patient record. This practice name becomes a Company record in Twenty, linked to the patient via companyId. If the same practice appears across multiple patients, FlitStack deduplicates to a single Company record and links all associated People records.

Praktika Australia

Treatment Plan

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Praktika treatment plans (proposed procedures, estimated costs, status) map to Twenty Opportunities. The treatment plan name becomes the Opportunity name. Estimated treatment cost maps to Opportunity amount. Plan status (proposed, accepted, in-progress, completed) maps to Opportunity stage values configured per Twenty's pipeline.

Praktika Australia

Appointment

maps to

Twenty CRM

Task

1:1
Fully supported

Praktika appointment records (date, time, type, provider, status) transform into Twenty Tasks. The appointment date and time become the Task due date. Appointment type (check-up, hygiene, restorative, emergency) stores as a custom select field on the Task. The assigned Praktika provider resolves by email match to a Twenty workspace member as the Task assignee.

Praktika Australia

Recall

maps to

Twenty CRM

Task

1:1
Fully supported

Praktika recall records (patient, recall type, recall date, provider) migrate as Twenty Tasks with the recall date as the due date. Recall type (6-month hygiene, annual check, perio maintenance) stores as a custom select field on the Task. This preserves the recall workflow without requiring a separate custom object.

Praktika Australia

Clinical Note / Perio Charting

maps to

Twenty CRM

Note

1:1
Fully supported

Praktika clinical notes and perio charting data attach to the patient record. These migrate as Twenty Notes linked to the People record. The original clinical note text and charting data preserve as Note body content with the original creation timestamp. Large perio charting datasets may also require custom fields on the People object for numeric measurement values.

Praktika Australia

Provider / Practitioner

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

Praktika provider and practitioner records (name, email, provider number) map to Twenty workspace members. Resolution happens by email match — FlitStack flags any Praktika provider without a corresponding Twenty user before migration, allowing the practice to invite them first. Unmatched providers can be assigned to a fallback workspace member during migration.

Praktika Australia

Billing Transaction / HICAPS Claim

maps to

Twenty CRM

Custom Field on Opportunity

1:1
Fully supported

Praktika HICAPS and Tyro billing transactions (claim amount, status, health fund, item numbers) have no direct Twenty equivalent. We preserve the transaction data as custom fields on the related Opportunity — Total_Claim_Amount__c, Health_Fund__c, Claim_Status__c — for financial reference. The billing logic itself must be rebuilt in Twenty via integrations or workflow automations.

Praktika Australia

Custom Patient Property

maps to

Twenty CRM

Custom Field on People

1:1
Fully supported

Praktika practices commonly add custom properties to patient records — insurance plan codes, referral source, health fund membership number, or preferred appointment days. Each custom property in Praktika becomes a custom field in Twenty's data model (Settings → Data Model) before the CSV import. The field type matches the source property type: text, number, date, or select.

Praktika Australia

Appointment Note / Treatment Note

maps to

Twenty CRM

Note on Task

1:1
Fully supported

Free-form clinical notes and treatment session observations attached to a specific Praktika appointment or treatment plan migrate as Twenty Notes linked to the corresponding Task record. This preserves the per-visit clinical narrative, procedure details, and patient-specific observations alongside the appointment task in Twenty's timeline view. Each Note retains its original creation timestamp for historical reference.

Praktika Australia

Insurance / Health Fund Record

maps to

Twenty CRM

Custom Field on People

1:1
Fully supported

Praktika patient insurance records (health fund name, membership number, expiry, ancillary limits) have no standard Twenty equivalent. These become custom fields on the People object — Health_Fund__c, Membership_Number__c, Insurance_Expiry__c — ensuring the billing team can reference coverage details directly in Twenty without leaving the CRM.

Praktika Australia

Lab Work / Referral

maps to

Twenty CRM

Custom Object or Note

1:1
Fully supported

Praktika lab work orders and specialist referrals attached to a treatment plan have no direct Twenty CRM equivalent. FlitStack preserves lab work details as Notes on the related Opportunity. If the practice uses lab work tracking frequently, a custom object (Lab_Work__c) with a relation to Opportunity can be created in Twenty's data model — we surface this as a migration planning decision for the practice admin.

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.

Praktika Australia logo

Praktika Australia gotchas

High

No public API means migration is conversion-file only

Medium

Custom per-practice abbreviations in clinical notes

Medium

Recall date logic may differ between Praktika and destination

Low

Multi-location pricing does not include unlimited users

Twenty CRM logo

Twenty CRM gotchas

High

Import order is enforced and critical

High

Export limited to 20,000 records and visible columns only

Medium

Soft-deleted records count toward uniqueness and trigger restores

Medium

API rate limits cap at 200 req/min on Organization tier

Low

No native email sequences — follow-up cadences require external tools

Pair-specific challenges

  • Praktika exports via CSV only — no documented API for programmatic extraction

    Praktika Australia does not publish a documented REST API for data extraction. All migration work begins with CSV exports from Praktika's Settings → Data Management or Reports modules. Practices with large datasets (50,000+ patients across multiple locations) must download exports object-by-object, which can be time-consuming and may require Praktika support assistance for bulk exports. FlitStack AI works directly with the exported CSV files and transforms them into Twenty's import format — this adds a preparation step that API-based migrations do not require. Practices should request their Praktika export 2–3 weeks before the planned migration date to allow time for data audit and transformation planning.

  • Twenty requires custom fields to exist before CSV import — they are not auto-created

    Twenty's CSV import creates records, not fields. If you attempt to import a column for a custom field that does not yet exist in Settings → Data Model, Twenty ignores the column silently and the data is lost. This is a documented Twenty limitation that catches many teams doing manual imports. FlitStack AI's migration process includes a mandatory pre-migration step: we audit every Praktika custom property and create the corresponding custom fields in Twenty's data model (with correct types — text, number, date, select, multi-select) before any CSV import runs. For practices with 50+ custom fields (common in multi-location dental groups with perio charting fields and insurance plan configurations), this step alone can take 2–4 hours of planning and field creation.

  • Praktika multi-entity relationships (patient → appointment → treatment → provider) do not map 1:1 to Twenty's object model

    Praktika stores appointments and treatment plans as separate entities linked to the patient record. Twenty's object model (People → Opportunities → Tasks) uses foreign keys (personId, opportunityId, assigneeId) to create these relationships, but the import sequence must resolve parent records before children. Specifically: Companies must be imported first (for the practice-to-people link), then People (with companyId set), then Opportunities (with personId set), then Tasks. Circular or missing references — such as an appointment linked to a Praktika patient whose record failed to import — are flagged before the full migration runs. FlitStack sequences the import in this order and validates foreign key integrity at each stage before proceeding.

  • HICAPS and Tyro billing configurations do not migrate — payment integrations must be rebuilt in Twenty

    Praktika's HICAPS and Tyro health fund claiming integrations are platform-side configurations tied to the Praktika billing module. Twenty CRM has no native HICAPS or Tyro integration — this is true of virtually all non-dental CRMs. The billing transaction records (claim amount, status, item numbers, health fund response codes) can be preserved as custom fields on the related Opportunity, but the live claiming workflow cannot transfer. Practices must rebuild their payment integration using an Australian payment processor (Stripe with HICAPS gateway, cubiq, or a custom Tyro API integration) and connect it to Twenty via webhook or REST API. FlitStack provides an integration rebuild reference document as part of the migration package.

  • Appointment book scheduling logic (recurrence, session blocks, provider availability) does not export from Praktika

    Praktika's appointment book stores recurring appointment patterns, session blocks, and provider availability rules that drive the visual schedule. These scheduling rules are application configuration, not data records — they do not export as part of the standard CSV data export. Twenty's Tasks object supports individual task records but does not have a native recurring appointment or availability-scheduling feature at this time. Practices that rely on Praktika's visual appointment board for daily scheduling will need to rebuild the scheduling logic either using Twenty's workflow automations (for basic task recurrence) or by integrating a dedicated appointment scheduling tool such as HealthEngine, Dataplus, or a custom-built scheduling component. FlitStack surfaces this gap in the migration plan and provides a scheduling rebuild reference.

Migration approach

Six steps for a successful Praktika Australia to Twenty CRM data migration

  1. Audit Praktika CSV exports and data model

    FlitStack AI downloads CSV exports from Praktika for all active objects: patients, appointments, treatment plans, recalls, providers, and any custom patient properties. We run a data quality audit comparing record counts, identifying missing required fields (email, phone, name), detecting duplicate patient records, and flagging custom properties that have no standard equivalent in Twenty. The audit output is a Praktika Data Health Report shared with the practice admin before migration planning begins. Any gaps in the export (such as missing provider email addresses needed for user resolution) are escalated immediately.

  2. Create Twenty custom fields before import

    Before any CSV data lands in Twenty, FlitStack creates all required custom fields in Settings → Data Model based on the Praktika data audit. This includes: Health_Fund__c, Membership_Number__c, Preferred_Provider__c, Source__c, and Source_System_ID__c on the People object; Clinical_Notes__c on the Opportunity object; and Task_Type__c on the Task object. We also configure the Opportunity stage pick-list values to match Praktika's treatment plan statuses (Proposed → Accepted → In Progress → Completed). Custom field creation is validated by attempting a test import with one sample record before the full migration run.

  3. Invite and resolve workspace members by email

    Praktika provider and practitioner records are matched against Twenty workspace members by email address. All Praktika providers must have a corresponding Twenty user account created (Settings → Members) before the migration runs — if a Praktika provider has no email match in Twenty, FlitStack flags the record before migration and the practice admin either invites the provider to Twenty or designates a fallback assignee. No Task or Opportunity lands in Twenty without a resolved assignee. This step prevents orphaned records in Twenty's timeline view.

  4. Run a sample migration with field-level diff

    A representative sample of 100–500 records migrates first — spanning patients, treatment plans, appointments, and recalls across multiple providers. FlitStack generates a field-level diff report comparing source values in the Praktika CSV against the destination values in Twenty for every mapped field. The practice admin reviews the diff to verify: patient names and contact details are correct, treatment plan amounts and stages map accurately, appointments are assigned to the correct provider, and custom fields (health fund, recall type) populate correctly. Any mapping errors are corrected and the sample re-runs before the full migration commits.

  5. Full migration with delta-pickup and audit log

    The full dataset migrates into Twenty with FlitStack AI maintaining a complete audit log of every record created, every foreign key resolved, and every transformation applied. A 24–48 hour delta-pickup window runs after the initial migration, capturing any Praktika records modified or created during the cutover period (new appointments scheduled, treatment plans updated, patients recalled). The delta is applied to Twenty and a final reconciliation report is generated comparing Praktika record counts against Twenty record counts per object. If reconciliation identifies discrepancies above the agreed threshold (default: 0.1%), one-click rollback is available to restore the pre-migration state in Twenty.

Platform deep dives

Context on both ends of the pair

Praktika Australia logo

Praktika Australia

Source

Strengths

  • Australian-owned and operated since 2007 with over 2,000 practices and 25,000 users
  • Cloud-based access from any device with 24-hour support from qualified dental professionals
  • Integrated HICAPS and Tyro for real-time health fund claims at the point of service
  • Multi-location pricing that reduces per-practice cost for groups with 2 or more locations
  • Includes Perio and Restorative charting, treatment planning, quotes, and clinical notes in a single platform

Weaknesses

  • No publicly documented API — all data exits must go through their supported conversion process
  • Pricing is per location rather than per user, which can become expensive for large multi-location groups
  • Support team is small (approximately 5-10 employees based on LinkedIn data)
  • Limited public review presence makes independent quality assessment difficult
  • Electronic form and sterilisation log data may not export cleanly or at all
Twenty CRM logo

Twenty CRM

Destination

Strengths

  • AGPL-3.0 open-source license with full source code on GitHub — no vendor lock-in, no sunset risk.
  • Unlimited users and unlimited custom objects on self-hosted, with no feature gating based on headcount.
  • REST and GraphQL APIs available on all paid tiers, not locked behind an enterprise add-on fee.
  • MCP server and webhooks shipped as standard features, not premium upgrades.
  • Modern PostgreSQL-backed data model that developer teams can query, extend, and self-host.

Weaknesses

  • Recent v1.0 release means limited production hardening compared to CRMs with multi-year operational track records.
  • No native email sequencing or sales engagement tools — follow-up cadences require a separate platform.
  • No native two-way email sync or inbox integration, requiring third-party connectors for full activity logging.
  • Self-hosting 'free' pricing hides real infrastructure and DevOps costs that stack up over time.
  • Workflow automation is functional but lacks the complexity needed for sophisticated multi-step sales motions.

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 Praktika Australia and Twenty CRM.

  • 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

    Praktika Australia: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Praktika Australia to Twenty CRM 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 Praktika Australia to Twenty CRM data migrations

Answers to the questions buyers ask most during Praktika Australia to Twenty CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Praktika Australia to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Praktika to Twenty migrations complete in 48–72 hours of clock time for practices with under 50,000 patient records. The longest phase is pre-migration planning — specifically the custom field creation step in Twenty's data model, which can take 2–4 hours for practices with 30+ custom properties. Multi-location practices with 200,000+ records across all locations extend to 5–10 days. The delta-pickup window adds 24–48 hours to the cutover timeline regardless of record count.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Praktika Australia.
Land in Twenty CRM, 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