Migrating to ClientFlow from Another System

Applies to: Starter, PRO, and Team · Last reviewed: October 2026

12 min read

Complete guide to moving your client data, payments, and appointments from spreadsheets or other software to ClientFlow. Minimize downtime and maintain data integrity during your transition.

Introduction

Switching client management systems can feel daunting, but with the right approach, migration is smooth and painless. This guide covers migration from:

  • Spreadsheets (Excel, Google Sheets)
  • Generic CRMs (HubSpot, Salesforce, Zoho)
  • Industry Software (Mindbody, Acuity, Pike13, WellnessLiving)
  • Manual Systems (Paper records, notes apps)

How long it takes: The import itself runs from a file you upload. Most of your time goes into cleaning the data beforehand and checking it afterwards, so the larger and messier your old data, the longer you should plan for.

Before you start: Importing is available on the Starter plan and above. It is not available on the Free plan or during the free trial.

Pro Tip: Run ClientFlow in parallel with your old system for 1-2 weeks before fully switching. This validates data integrity and builds confidence.

Pre-Migration Checklist

Before starting, complete these tasks:

1. Audit Your Current Data

Review and clean up:

  • [ ] Remove duplicate client records
  • [ ] Standardize name formats (First Last, not FIRST LAST or first last)
  • [ ] Validate email addresses (remove typos, placeholders)
  • [ ] Correct phone numbers (add country codes: +1, +90, etc.)
  • [ ] Archive inactive clients (not seen in 12+ months)
  • [ ] Verify payment records match bank statements

Pro Tip: Clean data = clean migration. Spend most of your migration time on data cleanup rather than on the import itself.

2. Identify What to Migrate

Priority 1 (Essential):

  • Active client contact information
  • Unpaid payments and invoices
  • Future appointments

Priority 2 (Important):

  • Payment history (last 12 months)
  • Client notes
  • Tags and client segments

Priority 3 (Optional):

  • Old/archived clients
  • Payment history beyond 12 months
  • Historical appointments (completed sessions)

3. Export Data from Current System

ClientFlow imports files (CSV or Excel); it does not connect to other products directly. The menu names below are other vendors' and change over time, so if you cannot find an option, search that product's help for "export clients".

From Spreadsheets (Excel/Google Sheets)

  1. Open your spreadsheet
  2. File → Download → Comma-separated values (.csv) or Microsoft Excel (.xlsx)
  3. Save one file per data type (clients.csv, payments.csv, appointments.csv)

From Mindbody

  1. Manager Tools → Reports → Client Reports → Client List
  2. Select all fields
  3. Export to CSV
  4. Repeat for Sales Report (payments) and Appointments Report

From Acuity Scheduling

  1. Business Settings → Import/Export
  2. Export Clients (CSV)
  3. Export Appointments (CSV)

From Generic CRMs (HubSpot, Salesforce)

  1. Contacts → Export All Contacts
  2. Choose CSV format
  3. Include all properties/fields

Pro Tip: Export backups of ALL data before migration, even if you don't plan to import it all. Better safe than sorry!

4. Backup Everything

Before importing to ClientFlow:

  1. Save original export files in a secure folder
  2. Create a ZIP archive of all export files
  3. Upload backup to cloud storage (Google Drive, Dropbox)
  4. Keep backup for at least 90 days after migration

Migration Strategy: Two Approaches

Timeline: 1 day (complete switch)

Process:

  1. Clean and prepare data (morning)
  2. Import all data to ClientFlow (midday)
  3. Verify data integrity (afternoon)
  4. Turn off old system (end of day)
  5. Start using ClientFlow exclusively (next day)

Pros:

  • ✅ Fast switch
  • ✅ No duplicate entry
  • ✅ Clean break

Cons:

  • ❌ Higher risk if data issues arise
  • ❌ Stressful single cutover

Timeline: 2-4 weeks (parallel operation)

Process:

  1. Week 1: Import clients and payment history, but continue using old system
  2. Week 2: Add new clients/payments to BOTH systems (dual entry)
  3. Week 3: Import appointments, test reminders
  4. Week 4: Verify everything works, turn off old system

Pros:

  • ✅ Low risk (old system still available)
  • ✅ Time to fix issues
  • ✅ Staff can learn gradually

Cons:

  • ❌ Slower transition
  • ❌ Requires dual data entry

Pro Tip: Approach 2 costs an extra stretch of dual entry, but your old system stays available as a safety net while you check the imported data.

Step-by-Step: Migrate Clients

Prepare Client File

Use a CSV or Excel file (.csv or .xlsx, up to 10 MB; an older Excel .xls file is not supported, so open it and save it as .xlsx or .csv first). ClientFlow matches your columns to its fields by their header names, so name the headers as below (common alternatives such as "full name" or "date of birth" are recognised too). Only the name is required:

ColumnRequiredFormatExample
nameYesFirst LastJohn Smith
emailNovalid emaildemo-therapist@clientflow.center
phoneRecommended+[country][number]+15555551234
birthdateOptionalYYYY-MM-DD1985-06-15
notesOptionalPlain textPrefers morning sessions
tagsOptionalcomma-separated (put the cell in quotes)"vip,downtown,pt-client"

The template (see below) also includes group, address, gender, currency, monthly_amount, payment_day, active and external_id.

Example client CSV:

name,email,phone,birthdate,notes,tags
John Smith,demo-therapist@clientflow.center,+15555551234,1985-06-15,Prefers morning sessions,"vip,pt-client"
Sarah Johnson,sarah@clientflow.center,+15555555678,1990-03-22,Injury: right knee,"active,injury-recovery"
Michael Brown,mike@clientflow.center,+15555559012,,Regular Monday 6pm client,"recurring,evening"

Import Clients to ClientFlow

  1. Go to Import/Export in the sidebar and click "Import from File"
  2. Choose the Customers tab (ClientFlow's data type for clients)
  3. Click "Download Template" (optional - see the correct format)
  4. Drag your file into the box, or click to select it
  5. Review the preview: it shows how many rows are valid, duplicates or invalid, which of your columns were matched to which fields, and which columns were left out. If a column was not matched, rename its header and upload again.
  6. Choose your options (see "Handle Duplicates" below)
  7. Confirm the import and wait for the result

Import Results:

  • ✅ Created / Updated / Merged: Records that were added or changed
  • ⚠️ Skipped: Duplicates you chose to skip
  • ❌ Failed: Rows with invalid data (for example a missing name)

Each failed row is listed with the reason. Fix those rows in your file and import them again. If something went wrong, "Undo Import" on the result screen (or in the History tab) reverts the import.

Pro Tip: Import a small sample first (10-20 rows) to confirm the columns matched, then import the rest. If you are unsure, the Undo option is there as a safety net.

Handle Duplicates

In the options step you choose how ClientFlow recognises a record that already exists (the match strategy; for clients the default is the phone number, and other strategies such as email are offered where they apply) and what to do when it finds one:

Phone numbers are compared by their digits, not by how they are written: +90 555 111 22 33, 0555 111 22 33 and 905551112233 are the same number, and a number with fewer than 7 digits is never matched. A second row in the same file whose phone number or email an earlier new row already used is skipped.

Option 1: Skip

  • Keep the existing record and ignore the new data
  • Use when updating existing clients separately

Option 2: Update

  • Overwrite the existing record with the data from your file
  • Use for data cleanup or field updates

Option 3: Merge

  • Fill in only the fields that are empty on the existing record
  • Use when your file has extra detail but you do not want to overwrite what is already there

Pro Tip: Choose "Skip" on the first import. Fix errors, then re-import with "Update" or "Merge" for corrections.

Step-by-Step: Migrate Payments

Prepare Payment File

Payments are attached to clients that already exist, so import your clients first. Each row identifies its client by name, phone or email, and records the billing month and year:

ColumnRequiredFormatExample
customer_name (or customer_phone / customer_email)Yes (at least one)must match an existing clientJohn Smith
amountYesdecimal100.00
monthYes1-123
yearYesYYYY2024
statusRecommendedunpaid / partial / paid / overduepaid
payment_methodOptionaltextCash
due_dateOptionalYYYY-MM-DD2024-03-15
paid_atOptionalYYYY-MM-DD2024-03-15
notesOptionaltextMarch PT Sessions

Download the template from the import screen to see every column ClientFlow understands.

Example payment CSV:

customer_name,customer_email,amount,month,year,status,payment_method,notes,paid_at
John Smith,demo-therapist@clientflow.center,100.00,3,2024,paid,Cash,March PT Sessions,2024-03-01
Sarah Johnson,sarah@clientflow.center,150.00,3,2024,unpaid,Bank Transfer,March sessions,
Michael Brown,mike@clientflow.center,75.00,2,2024,overdue,Cash,February Session,

Import Payments to ClientFlow

  1. Go to Import/Export and click "Import from File"
  2. Choose the Payments tab
  3. Upload your file and review the preview, including which columns were matched
  4. Choose how to recognise existing payments and what to do with duplicates (Skip, Update or Merge)
  5. Confirm the import

Rows whose client cannot be found fail with "Customer not found" and are listed with the other errors.

Pro Tip: Only import unpaid payments and the last 3-6 months of paid payments. Old paid history isn't critical for day-to-day operations.

Step-by-Step: Migrate Appointments

Prepare Appointment File

ColumnRequiredFormatExample
titleYestextPersonal Training
start_timeYesdate and time, for example YYYY-MM-DD HH:MM2024-04-15 14:30
end_timeOptionalsame format (or use a duration column in minutes)2024-04-15 15:30
customer_name (and/or customer_phone, customer_email)RecommendedtextJohn Smith
locationOptionaltextDowntown Studio
statusOptionalscheduled / confirmed / completed / cancelledscheduled
description, notesOptionaltextInitial meeting

If a row has no end time or duration, ClientFlow makes the appointment one hour long.

Example appointment CSV:

title,start_time,end_time,customer_name,customer_phone,location,status
Personal Training,2024-04-15 14:30,2024-04-15 15:30,John Smith,+15555551234,Downtown Studio,scheduled
Injury Recovery Session,2024-04-16 09:00,2024-04-16 10:30,Sarah Johnson,+15555555678,Online via Zoom,confirmed

Important - time zones: Times written without a UTC offset (like the ones above) are read in the time zone set in your profile under Settings → Account, and the import does not ask for one, so check it before you import. A time that carries its own offset, for example 2024-04-15T14:30:00+03:00, is read exactly as written. Check a few imported appointments before importing the rest.

Import Appointments

  1. Go to Import/Export and click "Import from File"
  2. Choose the Appointments tab
  3. Upload your file and review the preview
  4. Choose how to handle duplicates
  5. Confirm the import

Pro Tip: Only import future appointments. Past/completed appointments are historical data that clutters your calendar.

Special Cases

Migrating from Mindbody

Client Fields Mapping:

Mindbody FieldClientFlow Field
First Name + Last Namename (combine into one column)
Emailemail
Mobile Phonephone
Birth Datebirthdate
Notesnotes
Member Typetags
Status (Active/Inactive)active (yes/no)

Payment History:

  1. Export Sales Report (last 6 months)
  2. Filter for "Completed" sales only
  3. Rename Item Name to notes
  4. Rename Payment Type to payment_method
  5. Split each sale date into month and year columns
  6. Import to ClientFlow

Appointments:

  • Export only future appointments
  • Mindbody times carry no UTC offset, so they are read in your profile time zone: set it under Settings → Account before import (see "Import Appointments")
  • Rename Service Name to title

Migrating from Google Sheets

Common Issues:

  1. First and last name in separate columns (ClientFlow expects one name column)

- Combine them into a single name column: =A2&" "&B2

  1. Phone without country code

- Add country code column: +1 (US/Canada), +90 (Turkey), etc.

- Combine: =CONCATENATE("+1", B2)

  1. Date format issues

- Format the column as a date and use the YYYY-MM-DD pattern

- Check a few rows in the downloaded file before importing

  1. Currency symbols in amount

- Remove $ or € symbols

- Use: =VALUE(SUBSTITUTE(A2,"$","")) to clean

Migrating from Paper Records

Process:

  1. Digitize first: Type client info into Google Sheets template
  2. Start with active clients: Don't waste time on inactive records
  3. Prioritize contact info: Name, email, phone (skip birth dates, addresses if not critical)
  4. Use your phone: Type clients in on the go with the iOS app or the installable web app
  5. Import in batches: 10-20 clients at a time, verify each batch

Pro Tip: If you have a lot of paper records, consider asking a colleague or a virtual assistant to type them up.

Post-Migration Verification

After importing, verify data integrity:

Client Verification Checklist

  • [ ] Client count matches (old system vs ClientFlow)
  • [ ] Random sample of 10 clients - verify all fields correct
  • [ ] Check for duplicate clients (same person imported twice)
  • [ ] Verify tags imported correctly
  • [ ] Test client search by name, email, phone

Payment Verification Checklist

  • [ ] Total unpaid balance matches old system
  • [ ] Random sample of 10 payments - verify amount, date, status
  • [ ] Check for orphaned payments (client not found - should be 0)
  • [ ] Verify payment method mapping correct
  • [ ] Compare revenue totals (old system vs ClientFlow Analytics)

Appointment Verification Checklist

  • [ ] Count of future appointments matches
  • [ ] Random sample of 10 appointments - verify date, time, client
  • [ ] Check timezone (appointments should be in YOUR local time)
  • [ ] Verify appointment statuses correct
  • [ ] Test calendar sync (if using Google Calendar integration)

Pro Tip: Export data from ClientFlow and compare side-by-side with original export. Spot-check a sample of records for accuracy.

Common Migration Issues

Issue 1: An Email Is Left Blank ("Invalid email format")

Cause: The email address in your file has a typo or is a placeholder. An invalid email never makes a row fail: the client is still imported, without an email, and the import result lists the value as "Invalid email format: ... (left blank)" with its row number.

Fix:

  1. Read the list shown after the import and note the rows that say "(left blank)"
  2. Fix those emails in your original file
  3. Re-import the file with Update or Merge so the corrected emails are added to the clients that already exist (with Skip they would be ignored)

Values that are left blank:

  • john@examplecom (no . after the @)
  • N/A, none, unknown (placeholder, not an email)

Issue 2: Phone Numbers Don't Import

Cause: Missing country code or an unusual format. A number that cannot be read is left blank and listed in the result with "(left blank)". Phone numbers are also what ClientFlow uses by default to recognise existing clients; it compares their digits, so the way a number is written does not matter, but a number with fewer than 7 digits is never matched.

Fix:

  1. Add country code: +1 for US/Canada, +90 for Turkey, +44 for UK
  2. Remove spaces and dashes: 555-123-4567 → 5551234567
  3. Combine: +15551234567

Cause: The client named in the payment file (by name, phone or email) doesn't match a client record

Fix:

  1. Read the error list shown after the payment import
  2. Look for "Customer not found" errors
  3. Verify the name, phone or email in the payment file matches the client record exactly
  4. Update the payment file with the correct value
  5. Re-import

Issue 4: Dates Import as Numbers (Excel)

Cause: Excel converts dates to serial numbers (e.g., 44562)

Fix:

  1. Select date column in Excel
  2. Format Cells → Date → YYYY-MM-DD
  3. Re-save the file
  4. Re-import

Issue 5: Appointments Import at the Wrong Time

Cause: Times in the file have no UTC offset, so ClientFlow read them in the time zone set in your profile, which is not the zone the file was written in

Fix:

  1. Undo the import ("Undo Import" on the result screen or in the History tab), or delete the imported appointments
  2. Set the right time zone under Settings → Account, or write each time with its UTC offset, for example 2024-04-15T14:30:00+03:00
  3. Re-import

Pro Tip: For timezone confusion, import ONE test appointment first. Verify it shows the correct time in ClientFlow and Google Calendar. Then import the rest.

Training Your Team

If you have staff using the new system:

Week Before Migration

  • [ ] Share this migration guide with team
  • [ ] Create a test client or two and practise the flow before importing everything
  • [ ] Hold 30-minute training session covering:
  • - How to add clients

    - How to record payments

    - How to schedule appointments

    - How to send reminders

Day of Migration

  • [ ] Import data (admin only)
  • [ ] Verify data (admin + one staff member)
  • [ ] Give team access to ClientFlow accounts
  • [ ] 15-minute walkthrough of actual client data (not demo)

First Week After Migration

  • [ ] Daily check-ins (10 min) to answer questions
  • [ ] Document common questions in internal wiki/doc
  • [ ] Monitor for duplicate entries (staff creating records that already exist)

Pro Tip: Assign one staff member as "ClientFlow Champion" - they get advanced training and become the go-to person for questions.

Parallel Operation Best Practices

If running both systems simultaneously:

Dual Entry Rules

Old System (Weeks 1-2):

  • ✅ Continue normal operations
  • ✅ Primary source of truth

ClientFlow (Weeks 1-2):

  • ✅ Add new clients
  • ✅ Add new payments
  • ✅ Add new appointments
  • ⚠️ Secondary system (learning mode)

Week 3+:

  • ClientFlow becomes primary
  • Old system in read-only mode
  • Refer to old system only for historical lookup

Daily Checklist During Parallel Operation

  • [ ] Add new clients to BOTH systems
  • [ ] Record payments in BOTH systems
  • [ ] Schedule appointments in BOTH systems
  • [ ] Compare daily totals (new clients, revenue) between systems
  • [ ] Document any discrepancies

Pro Tip: Set a hard cutoff date (e.g., "March 31 is last day of dual entry"). Stick to it. Otherwise, dual entry drags on for months.

Final Cutover

When you're ready to switch fully to ClientFlow:

Day Before Cutover

  • [ ] Export final backup from old system
  • [ ] Compare totals: clients, unpaid balance, appointments
  • [ ] Notify team: "Tomorrow we go ClientFlow-only"
  • [ ] Update email templates with ClientFlow branding

Cutover Day

  • [ ] Turn off automatic reminders in old system
  • [ ] Enable automatic reminders in ClientFlow
  • [ ] Update website booking link (if applicable) to ClientFlow
  • [ ] Change email signature to mention ClientFlow (optional)
  • [ ] Celebrate! 🎉

First Week After Cutover

  • [ ] Monitor for missed appointments (reminder issues)
  • [ ] Check unpaid and overdue payments against your old system
  • [ ] Survey team on any confusion/questions
  • [ ] Keep old system credentials handy (read-only access for 30 days)

Pro Tip: Don't delete old system data immediately. Keep read-only access for 90 days, just in case you need to verify historical data.

Migration Checklist Summary

Print this checklist and check off each item:

Pre-Migration

  • [ ] Audit and clean current data
  • [ ] Export data from old system
  • [ ] Backup all export files
  • [ ] Sign up for ClientFlow account
  • [ ] Configure business settings

Migration

  • [ ] Import clients
  • [ ] Verify client data
  • [ ] Import payments
  • [ ] Verify payment data
  • [ ] Import appointments
  • [ ] Verify appointment data

Post-Migration

  • [ ] Run comparison reports
  • [ ] Train team on ClientFlow
  • [ ] Parallel operation (1-2 weeks)
  • [ ] Final cutover
  • [ ] Monitor first week closely

30 Days After Migration

  • [ ] Delete old system (optional)
  • [ ] Archive old system backups
  • [ ] Document lessons learned
  • [ ] Optimize ClientFlow workflows

Migration complete! Welcome to ClientFlow.

Getting Help with Migration

Migration Support

All plans: Email contact@clientflow.center with your question. For import problems, include the data type, the row numbers and the error messages shown after the import.

PRO and above (a valid trial included):

  • Open a support ticket from Support in the sidebar

Pro Tip: Importing needs the Starter plan or above, so if you are on the Free plan or a trial, subscribe before migration day, and run a small test import first.

Next Steps

Migration complete! Optimize your ClientFlow setup:

  1. Quick Start Guide - Post-migration configuration
  2. Appointment Scheduling Mastery - Set up reminders and automation
  3. Creating Your First Intake Form - Collect new client info professionally
  4. Organizing with Tags - Segment your imported clients

Congratulations on a successful migration!

Was this helpful?