Tactical

How to migrate from Booksy to ChairHold: the solo beauty operator's guide

Most solo beauty pros who leave Booksy do it twice — once in their head, where they've run the numbers and decided the math doesn't work anymore, and once in reality, where they finally cut over. The gap between those two moments is usually 3–6 months of inertia. This guide is designed to close that gap: a step-by-step migration from Booksy to a ChairHold deposit-first booking link, covering the break-even decision, client list export, cutover timeline, the three client communication templates that make the transition frictionless, and the 60-day post-migration review.

First: is the migration worth it?

Before running any migration, you need to know whether the move is financially justified — and specifically, what you're actually giving up when you leave Booksy.

Booksy charges $29–$39/mo depending on plan. At the base tier, that's $348/yr. ChairHold is $9/mo — $108/yr for the Solo plan. The annual subscription savings of switching is $240–$360. That's the floor benefit: you capture it regardless of what happens to your booking volume.

The harder question is marketplace dependency. Booksy isn't just a booking system — it's a marketplace, and some fraction of your current client base may have originally discovered you through Booksy's directory rather than through your Instagram, Google Business Profile, or referral network. Those marketplace-sourced clients represent a real channel that disappears when you cancel your Booksy account.

Here's the framework for the decision:

The simplest proxy: pull your Booksy client list and check how many of your regulars (clients who've booked 3+ times) you recognize from Instagram engagement, referrals, or direct outreach vs. clients who appeared without any prior relationship. If the second group is fewer than 10–15% of your regulars, your marketplace dependency is low.

The annual cost comparison isn't the whole picture

The 2026 booking platform economics analysis puts Booksy's true annual cost at roughly $1,840 for a solo operator at $50k revenue — once you factor in the 20% marketplace commission on Booksy-sourced bookings and the processing markup on Booksy Pay (required, since you can't connect your own Stripe to Booksy). ChairHold's true annual cost at the same revenue level is $398 — $108 subscription plus standard 2.9% + 30¢ Stripe processing on a typical deposit volume.

That $1,442 annual gap is meaningful. But what matters for the migration decision isn't the gap in isolation — it's the gap minus the value of any Booksy marketplace traffic you'd be giving up. If Booksy-sourced clients represent 10 bookings/yr at $80/booking = $800 in revenue, you're trading $800 in marketplace-acquired revenue for $1,442 in savings. The migration is still clearly positive. If Booksy-sourced clients represent 50 bookings/yr, the math is closer and you need a plan to replace that discovery channel before you cut over.

For the full Booksy vs ChairHold comparison, including payment stack structure and client data portability, read that post first if you haven't. This guide assumes you've already decided to migrate and focuses on execution.

Step 1: Export your client list from Booksy

Before you announce anything or change any link, export your client data. This is the most time-sensitive step — you want this data in your hands before Booksy is in the loop on your plans.

In the Booksy business app, go to Clients → Export. Booksy exports a CSV with the following fields: first name, last name, phone number, email address, and last appointment date. This is the client contact data you own and take with you.

What does NOT transfer from Booksy:

Save the CSV with the date in the filename (e.g., booksy-clients-2026-06-03.csv) and keep it. You'll use it for the communication sequence in Step 4.

Step 2: Set up ChairHold before you announce anything

Set up your ChairHold account and get your booking link live before you communicate any changes to clients or update any of your public links. The sequence matters: if you announce the switch before the new link is ready, you create a window where interested clients have nowhere to book.

The full ChairHold setup guide covers this end-to-end. For the migration context, the key configuration decisions are:

Deposit percent for former Booksy clients

Your current Booksy clients have never paid a deposit through your own Stripe checkout. When they encounter a ChairHold booking page for the first time, they'll hit a Stripe Checkout form requiring a deposit — potentially for the first time with you.

For established clients migrating from Booksy, start at a lower deposit percent than you would for cold-discovery traffic from Instagram:

You can adjust deposit_percent upward after 60–90 days once the deposit is normalized for your former-Booksy client base. The goal in the transition period is minimizing friction for clients who are already yours and just need to update their booking flow.

On how much deposit to charge — the full analysis covers why the non-linear deterrence effect starts above 35% and why going above 40% hurts conversion without improving no-show rates. Stay below 35% for former clients until the relationship is re-established on the new platform.

Policy text in Stripe Checkout

ChairHold lets you set a policy_text field that appears inside the Stripe Checkout screen. This is your refund and cancellation policy, visible at the moment of payment — it's the clause that holds up in Stripe dispute cases. For the migration period, include language acknowledging the platform switch:

"Deposit is non-refundable if cancelled within 48 hours of appointment. Full refund if artist cancels. New booking system — same policy you know, now straight to Stripe."

The last sentence ("same policy you know, now straight to Stripe") reduces confusion for established clients who wonder why they're suddenly on a different checkout screen.

Time-to-live hours

Set time_to_live_hours to 24 for most services (the standard ChairHold default). During the migration period, a shorter TTL is actually beneficial: it means any client who starts the booking process but doesn't complete it gets an automatic slot release, keeping your calendar accurate as you transition away from Booksy. Don't extend TTL during the transition window.

Step 3: Choose your cutover date

The cutover date is the date after which no new bookings are accepted through Booksy. All new bookings go through ChairHold. Existing Booksy appointments run to completion.

Three rules for choosing the right cutover date:

  1. Never cut over while deposit-holding clients have future appointments in Booksy. Check your Booksy appointment calendar and find the last confirmed appointment date. Your Booksy account needs to remain active and functional until that appointment completes. Set the cutover date at least one week after the last existing appointment (not on the day of — give yourself margin for rescheduling).
  2. Minimum 30-day announcement window. Clients need 30 days of notice before the link they've been using stops accepting new bookings. If your calendar books 6–8 weeks in advance, clients should receive the first notice while their current appointment is still in the future — not after they've already completed it and are trying to rebook.
  3. Align with a natural booking lull. If you have seasonal slowdowns (January after the holiday rush, late summer before fall season), use one of those windows for the cutover. Fewer active clients in the booking pipeline means fewer people hitting the old link during the transition.

A practical timeline for most solo beauty pros: announce on Day 0, cutover on Day 30–45, close the Booksy account on Day 60–75 (after the last scheduled appointment completes and a 2-week buffer for any rescheduled holdovers).

Step 4: The three client communication templates

Three messages, sent in sequence. These are SMS/DM templates — keep them short, specific, and action-oriented. Do not send mass emails with vague "we're making changes" language.

Message 1 — 30-day announcement (send to all active clients)

Send to every client who has booked in the last 12 months. The goal is awareness, not panic — keep the tone matter-of-fact.

Hey [first name] — quick heads up: I'm moving my bookings to a new link starting [cutover date]. Your appointment on [date] is confirmed and nothing changes there. For any future bookings after [cutover date], use this link: [ChairHold booking link]. Same deposit policy, same prices — just a new system that goes straight to my Stripe. — [Your name]

Notes: Include the client's existing appointment date to make it personal. Name the new link explicitly. Mention "straight to my Stripe" — this normalizes the Stripe Checkout experience for clients who've only ever paid through Booksy Pay.

Message 2 — 14-day reminder (send to clients with appointments in the next 6 weeks)

Clients with upcoming appointments are the ones most likely to try rebooking through the old link after their current appointment. Catch them before that happens.

Hey [first name] — reminder: after [cutover date] my booking link changes. Your [service] on [date] is still confirmed. For the next one, use: [ChairHold booking link]. Saves it in your favorites now so it's there when you need it. ✓

Notes: The "✓" ending signals completion, not a question. You're not asking them to do anything complicated — just update a link. Keep it brief. Clients who've booked 3+ times will follow instructions without needing a paragraph of explanation.

Message 3 — 7-day final notice (send to all active clients)

This message goes to everyone. It's the last reminder before the cutover.

Hey [first name] — one week left on the old booking link. After [cutover date], the only way to book me is: [ChairHold booking link]. Deposit through Stripe, same as always — just a new URL. Save it now. — [Your name]

Notes: "Same as always" is intentionally loose — for former Booksy clients who paid deposits, it's close enough. For clients who never paid a deposit, this is the moment they'll realize something is changing. Don't soften the deposit requirement in this message — the policy_text in Stripe Checkout will handle the moment of truth when they hit the booking page.

Sending mechanics

Send these via SMS if you have phone numbers (which your Booksy export should provide). If a client's phone number is missing, send via Instagram DM — check your DM history for recent conversations. Do not use mass-email tools for this; personal SMS converts 3–5× better than a bulk email announcement for individual service providers.

If your client list has 50+ people, batch the sends over 2–3 days rather than sending all at once. A single day with 50+ inbound booking attempts and questions is manageable; a single day with 50+ confused clients trying to sort out a link change is chaotic.

Step 5: The hybrid-operation window

From the day you announce (Day 0) through the cutover date (Day 30–45), you run two booking systems simultaneously:

The critical action on Day 0 is updating your IG bio link and your Google Business Profile "Website" field to your ChairHold booking URL. Do this first, before you send Message 1. Here's why: the moment you announce the switch, some clients will go directly to your IG bio or Google listing to find the new link. If those still show Booksy on announcement day, you've sent a confusing signal.

The IG bio update is one line in your bio text. The GBP update takes 90 seconds — sign in to Google Business Profile, go to Edit Profile → Contact → Website, replace the Booksy URL with your ChairHold link. The GBP Booking button (the "Book" button that appears directly in your Maps listing) should also point to your ChairHold link — update it under Bookings → Manage links in the GBP dashboard. For the full GBP optimization guide, see GBP for solo beauty bookings.

During the hybrid window, check both calendars daily. Mark Booksy as "closed for new bookings" so that its calendar stops showing available slots to new visitors. In Booksy settings, this is done by removing availability from future dates rather than canceling the account — you need the account active to honor existing appointments.

Step 6: Closing the Booksy account

Close the account after the last scheduled appointment completes and a 2-week holdover buffer has passed. The holdover buffer exists because some appointments get rescheduled at the last minute — you don't want to close the account the day after the "last" appointment and then have a client call you about their rescheduled slot.

Before closing:

  1. Download a final copy of your client list from Booksy (the export may show any appointments you may have forgotten).
  2. Take a screenshot of your Booksy rating and review count — you won't be able to access this after account closure.
  3. Note any clients who never responded to your three communication messages and make a manual outreach list for personal follow-up.

Cancel the subscription through Booksy's billing settings (not just by uninstalling the app). Canceling mid-cycle typically doesn't trigger a prorated refund — time the cancellation for just before your next billing date to avoid paying for an unused month.

Deposit configuration for a migration cohort

The first 30–60 days of ChairHold bookings from former Booksy clients are a calibration period. These clients are encountering your deposit requirement in a new form — Stripe Checkout, a formal policy text, a link they've never used before. The deposit itself may not be new (if you took deposits through Booksy Pay), but the format is.

Two configuration adjustments for the migration window:

Lower the starting deposit percent

Start at 20–25% rather than 30–35%. The goal is to preserve the no-show reduction effect of the deposit (which is present at any deposit level, even 10%) while reducing the financial friction of the platform transition for established clients. The difference in no-show deterrence between a 20% and 30% deposit is smaller than the difference in conversion friction — established clients who balk at 30% deposit on a new platform they've never used are a churn risk, not a commitment signal.

After 60–90 days, once your migration cohort has completed their first ChairHold booking, you can raise deposit_percent to your standard rate. By that point, the platform is familiar and the deposit expectation is set.

Use explicit policy text

Include language in policy_text that names the refund window specifically: "Non-refundable if cancelled within 48 hours of appointment. Full refund if artist cancels." Don't add conditions or exceptions — the cleaner the policy text, the less likely clients are to dispute it in Stripe. For the full analysis of how policy text functions in Stripe disputes, see stripe chargeback response for solo beauty.

Step 7: The 60-day post-migration review

Sixty days after your cutover date, run a structured review. This is not optional — it's the mechanism that tells you whether the migration succeeded or needs course correction.

Metrics to check

Booking volume. Compare the 60-day post-cutover period to the 60-day pre-announcement period. A successful migration lands at 85–100% of pre-migration booking volume within 60 days. If you're at 70–85%, you lost some clients to the link change — see the recovery steps below. Below 70% indicates a significant client base disruption that requires a direct outreach campaign.

No-show rate. Collect from your ChairHold payment history: how many bookings with deposits held resulted in no-shows (client no-showed after the refund window closed, deposit retained). Compare to your historical Booksy no-show rate. For most former Booksy operators, ChairHold's deposit mechanism produces a materially lower no-show rate in the first 60 days because the mandatory deposit is now a universal requirement, not an optional feature.

Former-Booksy client rebooking rate. Of the clients who were in your active Booksy roster (booked in the last 90 days before cutover), what fraction booked through ChairHold in the first 60 days post-cutover? Target: ≥80%. If it's 60–70%, you have a cohort of clients who received the communication sequence but haven't booked yet — they haven't churned, they just haven't needed you yet. A personal re-engagement message to this group at Day 60 will recover most of them.

Deposit compliance rate. Of the first 30 ChairHold bookings post-cutover, how many completed the Stripe Checkout deposit? Target: 100%. If any bookings are appearing in your ChairHold calendar without deposits, something is misconfigured — ChairHold's deposit is mandatory by design, so a zero-deposit booking indicates a setup issue, not a client choice.

What a successful migration looks like at Day 60

Course correction if the review shows gaps

If former-client rebooking rate is below 80%: make a list of the specific clients who haven't rebooked. Send a personal message — not a mass blast — inviting each one to book their next appointment. Include the ChairHold link. Something like:

Hey [name] — been a minute! I moved to a new booking system in [month] and wanted to make sure you had the right link: [ChairHold link]. Drop it in your favorites — same deposit process, new URL. Let me know when you're ready to book. — [Your name]

Personal outreach to 10–15 clients who haven't rebooked recovers roughly 60–70% of them within two weeks. A mass message to the same group recovers 15–25%. The personal framing is worth the extra 20 minutes.

If booking volume is below 70%: run a full analysis of where the loss occurred. Check whether the Booksy marketplace was driving more discovery traffic than you estimated, and whether your IG bio and GBP links are correctly pointing to ChairHold (not to a broken URL or accidentally still showing Booksy). A booking volume drop of that magnitude almost always has a technical cause (wrong link) or a discovery-channel cause (marketplace traffic that didn't migrate), not a deposit-resistance cause.

The migration for operators leaving other platforms

This guide focused on Booksy because it's the most common migration source among solo beauty pros moving to ChairHold. The same framework applies to operators leaving Fresha, Square Appointments, or Acuity Scheduling — with these platform-specific notes:

The full booking system comparison covers all five platforms with a decision framework for which situations each fits best.

The migration in three sentences

Export your client list before you announce anything. Update your IG bio and GBP link to ChairHold on Day 0 of the announcement — before you send Message 1. Run the Booksy account in parallel for existing appointments only, and close it after the last appointment plus a 2-week buffer.

The migration isn't technically difficult. The friction is psychological — the inertia of changing a system that works well enough to one that works better. The communication templates do most of the work; the 60-day review tells you whether the work landed.


Related reading

Hold your chair. Keep the deposit.

ChairHold gives solo stylists, barbers, and nail techs one IG-bio link that books the appointment and collects a deposit — straight to your own Stripe account. $9/mo flat.