Why duplicate client records happen — and why they matter
Duplicate client records are one of the most common data headaches in any coaching practice. They sneak in when a client books a discovery call under one email address, then signs up for a program with a different one. Or a team member manually adds a lead that already exists. Or a client creates a second account after forgetting their password. Before long, you're looking at split conversation histories, mismatched billing records, and program progress scattered across two profiles.
Cleaning up duplicates isn't just housekeeping. A fragmented client record means you might show up to a session without the full picture — missing notes, missing goals, missing context. It also skews your analytics, inflates your client count, and can cause confusion when automated messages fire to the wrong address. Getting this right protects your client relationships and your business data.
TL;DR — Quick answer
- Coachful does not yet have a one-click "merge" button — client record consolidation is a manual process done through the Clients dashboard.
- The safest approach: identify the primary record to keep, migrate key data (notes, program enrollments, bookings) to it, then archive or delete the duplicate.
- Prevent future duplicates by enforcing a single sign-in method and checking for existing records before creating new leads manually.
- Your AI co-pilot Michelle can help you locate duplicate entries quickly — just ask her to search by name or email across your client list.
Step 1 — Identify duplicate records
Start in your Coachful coach dashboard. Navigate to Clients → All Clients and use the search bar to look up the client by first name, last name, or any email address you know they've used. If two results appear for the same person, you've confirmed a duplicate.
For a broader audit, you can export your client list. Go to Clients → All Clients → Export CSV. Open the file in a spreadsheet, sort by last name or email domain, and scan for obvious matches. Look for slight variations: "jonsmith@gmail.com" vs. "jon.smith@gmail.com", or "Jon Smith" vs. "Jonathan Smith". These are classic duplicate fingerprints.
You can also ask Michelle, the AI assistant built into your coach dashboard, to help surface duplicates. Type something like "Find me clients with similar names to Sarah Johnson" or "Do I have more than one record for the email domain acme.com?" Michelle can query your client database and return a list, saving you the manual scan time.
Step 2 — Decide which record to keep
Before you touch anything, open both profiles side by side in separate browser tabs. Compare the following fields and note which record has the most complete, accurate data:
- Contact details — primary email, phone number, billing address
- Program enrollments — which record shows active progress in a program or squad?
- Session history — past and upcoming bookings logged under each profile
- Notes & intake responses — coach notes, intake call answers, goal records
- Billing & payment history — active Stripe subscriptions or one-time payments
- Chat history — messages in 1:1 or squad conversations
The record with the active Stripe subscription or the furthest program progress should almost always be your primary record — the one you keep. Mark it mentally (or jot it down) before proceeding. Editing the wrong record is the most common mistake coaches make during this process.
Step 3 — Migrate data to the primary record
Coachful stores client data across several interconnected areas. Work through each one systematically.
Notes and intake responses
Open the duplicate record and go to its Notes tab. Copy any notes that don't already exist on the primary record. Then open the primary record and paste them in, adding a timestamp note like "[Migrated from duplicate record — original date: Jan 5, 2025]" so you have an audit trail.
Repeat for any intake form responses visible in the client's profile. These can't be automatically transferred, so a copy-paste is your best option.
Program enrollments
If the duplicate record shows enrollment in a program but the primary does not, you'll need to re-enroll the primary record in that program. Go to Programs → [Program Name] → Members, click Add member, and select the primary client record. Then note the progress level the client had reached in the duplicate record and manually advance them to the correct week and day inside the program editor.
If both records show program enrollment (rare, but possible), keep the enrollment with the most complete progress and note where the other left off.
Bookings and sessions
Navigate to Bookings → Sessions and filter by the duplicate client. Any upcoming bookings tied to the duplicate record will need to be cancelled and re-booked under the primary profile, or you can leave historical sessions as-is and simply stop using the duplicate going forward. At minimum, copy any session notes into the primary record's Notes tab.
Billing and subscriptions
Coachful's billing is powered by Stripe Connect, which means payment records are tied to the client's email address at the Stripe level. If the duplicate record has an active subscription, do not cancel it without coordinating with the client first — this will interrupt their access. Instead:
- Contact the client and ask them to confirm their preferred email address going forward.
- Update the primary record's email to that address under Clients → [Client Name] → Edit Profile.
- In your Stripe dashboard, locate the subscription under the old email and update the customer email there too so receipts reach the right inbox.
If both records show payment history but only one has an active subscription, the inactive record's historical invoices are safe to leave in Stripe as a reference — they don't affect anything operationally.
Pro tip: Coachful's all-in-one coaching platform links bookings, billing, programs, and messaging under a single client profile — which is exactly why cleaning up duplicates early pays dividends. One clean record means one complete view of your client, every time you open their profile.
Step 4 — Archive or delete the duplicate record
Once you've migrated everything valuable, it's time to retire the duplicate. In Coachful, go to Clients → [Duplicate Client Name] → ⋮ (more options) → Archive client. Archiving is safer than deleting — the record disappears from your active client list but remains accessible if you ever need to reference it.
If you're certain the duplicate record contains zero unique data and you want a clean slate, you can choose Delete client from the same menu. Note that deletion is permanent and cannot be undone. Only delete if you've thoroughly audited the record and confirmed there's nothing to preserve.
After archiving or deleting, search for the client by name one more time to confirm only the primary record appears in your active list.
How to prevent duplicate client records going forward
Prevention beats cleanup every time. Here are the most effective habits coaches on Coachful use to keep their client list clean:
Enforce a single sign-in method
When onboarding clients, tell them explicitly which email address to use and which login method (Google, Apple, or email/password). Clients who sign in with Google one day and email the next will create two separate accounts. A simple onboarding instruction — "Always sign in with Google using your work email" — eliminates this entirely.
Check before creating leads manually
Whenever you add a client or lead manually via Clients → Add new client, search for their name or email first. Coachful will warn you if an identical email already exists, but similar-but-not-identical addresses slip through. A two-second search before hitting "Add" costs nothing.
Use a single intake form entry point
If you use intake calls in Coachful, make sure your booking page link and your program enrollment link point clients to the same account creation flow. Sending clients multiple different links increases the chance they'll create a second account when they encounter an unfamiliar page.
Audit quarterly
Set a recurring reminder every quarter to export your client list and do a quick duplicate scan. Five minutes of prevention every three months beats an hour of cleanup every year.
Common mistakes and troubleshooting
I deleted the wrong record
If you deleted the primary record by mistake, contact Coachful support immediately. Depending on how recently the deletion occurred, the team may be able to restore the record from a backup. Do not create a new record manually yet — wait for support confirmation first.
The client has two active Stripe subscriptions
This can happen if a client enrolled in the same offer twice under two different email addresses. Don't cancel either subscription without first checking which one is active and which the client has been paying from. Log into your Stripe dashboard, find both customer records, and identify the subscription with successful recent payments. Cancel the other one and issue a refund if necessary — then update the client's email on the surviving subscription to match the primary Coachful record.
Program progress won't advance manually
When you re-enroll a client in a program on the primary record, you'll need to mark tasks as complete to reflect their actual progress. Go to Programs → [Program Name] → Members → [Client Name] and use the task completion toggles to bring them up to speed. If the program has week-gated content, you may need to temporarily adjust the unlock schedule under Program Settings → Pacing.
Chat history is split across two records
Coachful's messaging is powered by Stream and tied to the client's user account. Chat history from the duplicate account cannot be migrated to the primary account — it will remain visible if you access the archived record, but it won't appear in the primary chat thread. To preserve important context, copy key messages into a pinned note on the primary record before archiving the duplicate.
I'm not sure which email the client actually uses
Just ask them. A quick message — "Hey, I noticed there might be two accounts linked to your profile on my end. Which email address would you like to use going forward?" — takes 30 seconds and makes the whole cleanup process straightforward. Clients appreciate the transparency.
Michelle found duplicates but I don't see them in the client list
If Michelle surfaces a name that doesn't appear in your active client list, the record may already be archived. Go to Clients → All Clients and toggle Show archived to reveal it. From there you can review and permanently delete it if needed.
When to contact Coachful support
Most duplicate situations can be resolved using the steps above, but there are a few scenarios worth escalating to the support team:
- A client's Stripe subscription is in an error state on both records and you're not sure which to cancel.
- You accidentally deleted a record with significant history in the last 24–48 hours.
- A client is locked out of both accounts and can't confirm which email they used.
- You have more than 20 duplicates and want help bulk-auditing your list.
Reach out via the Help widget inside your Coachful dashboard or visit help.coachful.co to open a support ticket. The team typically responds within one business day.
Ready to keep your client data clean and your practice running smoothly?
Duplicate records are a symptom of a growing practice — which is actually a good problem to have. The key is catching them early, cleaning them up systematically, and putting a few simple habits in place so they don't pile up again. With Coachful's centralized client dashboard, program tracking, and AI assistant Michelle, you have everything you need to maintain a single, accurate view of every client from day one.
If you're not yet on Coachful, see how the platform keeps your programs, bookings, billing, and client data in one place — start your free trial at coachful.co. Already a member? Sign in to your workspace and put these steps into action today. For more guides on managing your client list, browse the full knowledge base.