Leave them by Friday. Keep every appointment.
Nobody switches booking systems for a feature list. They switch because somebody made it painless — and find the features afterwards.
Kavita reads Amelia’s, LatePoint’s, BookingPress’s and Bookly’s own database tables. Not a CSV. Not a column-mapping wizard. Their schema, directly — services, practitioners, customers and every appointment, in one pass, while your live booking page carries on running on the old plugin.
Nothing is ever written back to their tables. Rolling back means deactivating ours. That is the whole rollback plan, and it is why there is nothing to be brave about.
Whoever you are leaving
Four migrations, four different reasons.
Nobody leaves a booking plugin in the abstract. Each of these has one specific thing that finally makes people go, and it is not the same thing.
Services, categories, employees with their own weekly hours, customers, every appointment and its payments, plus coupons and custom fields.
Agents, services and service categories, bookings with their statuses, customers, and the transactions attached to them.
Services, staff, customers, appointments, payment logs and the notification templates you spent an evening wording.
Staff, services with their per-staff prices and durations, customers, appointments, and payment records including partial payments.
The inventory
What crosses over, and what does not.
Written down before you start rather than discovered at eleven at night.
| Comes across | |
|---|---|
| Services, categories, durations and prices | ✔ |
| Practitioners and their weekly hours | ✔ |
| Customers, contact details and history | ✔ |
| Every appointment, past and future | ✔ |
| Payment records and amounts | ✔ |
| Coupons and discount rules | ✔ |
| Custom fields and intake answers | ✔ |
| Notification templates | ✔ |
| Their theme and page layouts | — |
| Their licence and your remaining term | — |
| Gateway credentials — you re-enter these yourself, once | — |
Gateway keys are the one thing we deliberately do not copy. Reading another plugin’s stored payment credentials is not a migration feature, it is a security incident with a friendly name.
The afternoon
Four steps, and you can stop after any of them.
Both plugins sit side by side
Install Kavita without touching what you have. Your live booking page keeps running on the old plugin while you work. Nobody notices anything.
Dry run first, always
Counts by service, practitioner, customer and appointment — exactly what would be created, before a single row is written. If a column it expects is missing it refuses by name rather than importing nothing and calling it success.
Import in one pass
Straight from their schema. No CSV export, no column mapping, no reformatting dates in a spreadsheet at eleven at night.
Switch the page when you are ready
Change one shortcode. If anything looks wrong, change it back — the old plugin is untouched and still holds everything it always did.
If you would rather not do it alone, we will do the dry run with you on a call. There is no charge and no upsell at the end of it.
Honestly compared
What you gain, and what you give up.
The right-hand column exists because you will find it out anyway, and we would rather you found it here.
Nobody switches booking systems for a feature list. They switch because somebody made it painless — and find the features afterwards.
What you give up
We would rather you read that before buying than discover it after. If the fourth line is the one that worries you, it should — and the answer is the thirty-day refund, not a paragraph.
Nothing to lose
The dry run costs nothing and changes nothing.
Install it beside what you already run, point it at their tables, and read the report. If the numbers look wrong, deactivate ours and you are exactly where you started.