Migration playbook

Migrate from spreadsheets to online bookings without losing the week

The hard part is not uploading a CSV. The hard part is proving the next operating week, staff workflow, and member communication path before the public switch.

Lobby product team

Published 2026-05-12 - 7 min read

Product mock

Operator detail,
not stock proof.

The screen below is an illustrative Lobby product mock. It is included to show the implementation shape, not to imply a customer deployment.

book.club.example/admin/import

Import preview

Demo Club · dry run

All checks pass12s
Source fieldTarget fieldRowsStatus
Playtomic.memberslobby.users1 842✓ ok
Playtomic.bookingslobby.bookings18 204 / 24 mo✓ ok
Playtomic.membershipslobby.clients412✓ ok
Playtomic.couponslobby.coupons38✓ ok
Stripe.customer_idspreserved1 842✓ ok
Stripe.past_payoutsreference-onlyread-only
20 496 rows mapped · 0 conflicts · 0 droppedrun.id · mg-2026-04812

Step 01

Export the data that runs the next week

Start with the data that can break operations if it is wrong. Historical cleanup can wait; the next bookable week cannot.

Check

Courts, court groups, opening hours, closures, and class-only blocks

Check

Future bookings, recurring bookings, class rosters, and waitlists

Check

Members, contacts, membership names, status, and access notes

Check

Products, prices, tax labels, coupon references, and payment IDs where available

Step 02

Run a staging import with visible skipped rows

A useful import preview shows accepted rows, corrected rows, skipped rows, and the reason behind every skip. Operators should not have to trust a silent migration job.

Map source columns into court, booking, user, membership, and payment-reference records.

Keep payment history reference-only unless the source exports processor-safe IDs.

Preserve skipped rows as an operator review list instead of hiding them in logs.

Step 03

Verify the calendar with staff before DNS changes

The desk team should compare the staged Lobby calendar against the old source for a normal operating week, including peak hours and recurring programs.

Check

Open the same day in both systems and compare every court row

Check

Create, move, cancel, and refund a test booking in staging

Check

Look up three known members and confirm status, notes, and booking history

Check

Confirm the member-facing URL, email sender, and staff launch script

Step 04

Make one system the write target during soft launch

Parallel systems are useful for lookup, not for writing. During soft launch, Lobby should become the write target while the previous source stays read-only for reference.

Freeze edits in the source tool before the final import.

Switch public booking links only after operator sign-off.

Keep rollback notes in writing for the first staffed launch window.

Constraints

Limits to keep
in the plan.

Constraint

Do not migrate messy history before the future schedule is correct.

Constraint

Do not promise payment reconciliation unless the source export includes usable payment references.

Constraint

Do not switch member-facing links before staff have verified the staged week.

How this was produced

This playbook is based on Lobby product design, import workflow planning, and operator migration constraints. It is not a customer case study and includes no customer outcomes.

Next step

Bring the real workflow.
Review it in a demo.

    Migrate from spreadsheets to online bookings without losing the week | Lobby