You've decided. The SaaS AI you bought 18 months ago has stopped fitting. Your workflow has grown — a second location, a third trade, a routing rule the template can't model — and you're moving to a custom build. Good. Now comes the part nobody talks about: how do you actually move without losing the call data you've accumulated, blowing up customer experience during the transition, or spending three weeks staring at error logs at 11pm?
This playbook is drawn from real migrations across the SimpliScale client base — operators moving off Goodcall, Avoca, ServiceTitan AI, and a handful of legacy answering services into custom builds. The pattern repeats consistently enough that we now run every migration through the same five-step framework. Skip a step and something breaks. Follow it and the cutover is a non-event.
01.Step 1 — Export Your Current Call Data
Do this before you sign the contract with the new vendor. Most SaaS vendors make data export deliberately painful, on the assumption that friction reduces churn. Once you've given notice, the export window often shrinks. Pull the data while you're still a customer in good standing.
What to export, at minimum:
- Call transcripts (last 90-180 days). These become the training corpus for the new build. A custom system trained on your real call patterns ships smarter from day one.
- Call recordings, if available. Some SaaS makes these expensive or impossible to download in bulk. Check before you give notice.
- Metadata. Caller numbers, timestamps, durations, outcome tags, qualification data. This is the raw material for performance benchmarking against the new system.
- Your trained prompts and configuration. If the vendor lets you see them, screenshot or export. If they don't, write down the logic by hand from memory of how the system has behaved.
- Custom field mappings to your CRM. Document every field the AI populates, every webhook payload structure, every integration touchpoint.
The most common gotcha: Goodcall and Avoca both make bulk recording export non-trivial. ServiceTitan AI keeps transcripts inside ServiceTitan, which means you can technically access them but you can't easily pull them out as a clean dataset. Plan for a few days of extraction work, not an afternoon.
02.Step 2 — Document Your Current Flow
Before you build the new thing, write down exactly what the old thing does. This is the most-skipped step and the source of the most regret. The current SaaS handles many small things you've stopped consciously noticing — after-hours routing, weekend handoff, the specific way it qualifies a non-emergency vs an emergency call, the fallback when a CRM lookup fails. Capture all of it.
The artifact you're producing is a one-page call flow document. Top-to-bottom: every entry point, every qualification branch, every routing decision, every escalation rule, every integration touchpoint. Include the unusual cases — what happens to a Spanish-language caller, what happens to an existing customer outside service area, what happens at 2am Sunday during a holiday weekend. These are the cases the new build will get wrong if you don't spec them.
If the new vendor is an agency (like us), they will do this with you during scoping. If you're going DIY on Retell or Vapi, you have to write the doc yourself. Either way, the doc is the spec for the new build. Don't skip.
The SaaS migration that fails is the one where the operator never wrote down what the old system was doing. You can't rebuild what you can't articulate.
03.Step 3 — Parallel Run for 14 Days
Do not cutover cold. Run both systems side by side for at least two weeks. Split your inbound — half of calls go to the old SaaS, half route to the new custom build. (You can also split by day or by call type if your phone system makes parallel routing easier that way.)
During the parallel run, you're watching three things:
- Booking rate. Is the new system converting calls into appointments at the same rate (or better) than the old one? If it's lower in week one, that's expected — but it should converge by week two.
- Customer experience signals. Are callers escalating to humans more often on the new system? Are reviews mentioning the AI experience negatively? Listen to a random sample of recordings every day.
- Edge case coverage. The cases your doc identified should all be tested live during the parallel run. If your spec said "after-hours emergency cooling requests route to the on-call tech," verify that actually happens at 11pm on a Tuesday.
The parallel run also surfaces things you forgot to document. We've never run a migration where week one didn't reveal at least one piece of routing logic that wasn't captured in the spec. That's the entire point of the parallel run — find the gaps before they're production problems.
04.Step 4 — Execute the Cutover Plan
Once parallel run looks clean, schedule the cutover. One controlled window — not a slow leak. The mechanics:
- Port phone numbers. If the old SaaS owned your numbers, this is the most fraught step. Number ports take 7-14 days and require a clean LOA (Letter of Authorization). Start this 3 weeks before your target cutover date. Vendors will sometimes drag their feet on port-out requests; document everything.
- Redirect IVRs and call routing. Anywhere your existing PBX or call routing references the old vendor, update it. Test all entry points — main line, secondary lines, after-hours line, special routing numbers.
- Retire the old vendor's calendar and CRM integrations. Calendar bookings flowing to the old system need to flow to the new one. Disable the old webhooks before the cutover so you don't get duplicate appointments.
- Communicate to your CSR team. They need to know what changed, what to watch for, and how to escalate issues during the stabilization period.
- Keep the old vendor active for 30 days post-cutover. Don't cancel the contract on cutover day. Run it dark — no inbound — but keep the data accessible in case you need to compare during stabilization.
The most common cutover failure is number porting drama. The old vendor takes 12 days instead of 7. Your cutover date slips. You panic. Avoid this by giving yourself a 3-4 week buffer between LOA submission and target cutover date.
05.Step 5 — 30-Day Stabilization
Cutover is not the end. The new system needs 30 days of intensive tuning before it's at full performance. The cadence we run with clients:
- Days 1-7: Daily transcript review. The PM listens to 10-15 random recordings every day, identifies edge cases the AI handled poorly, and tunes the prompts overnight. Most of the early wins come from this.
- Days 8-14: Twice-weekly review. Most of the obvious bugs are caught by now. Now you're tuning for performance — booking rate, qualification accuracy, customer-experience signals.
- Days 15-30: Weekly review. The system is mostly stable. You're running A/B tests on prompt variations, measuring lift, and starting to think about advanced optimizations.
- Day 30: Compare against your baseline. The metrics from your old SaaS deployment are the floor — the new system should match or exceed every one within 30 days. If it isn't, something in the build is wrong and needs to be diagnosed.
06.The Common Pitfalls
Three failure modes account for almost every botched migration we've seen:
Phone number portability denial. Some SaaS vendors play games with port-out requests, claiming the LOA was incorrect or that an active balance prevents the port. Document every interaction. If they truly refuse to port, escalate to your PBX provider and the FCC.
CRM integration mismatch. The new system populates fields slightly differently than the old one, breaking downstream automations and reports. Map every field carefully during spec, and test the integration end-to-end during parallel run, not after cutover.
Insufficient training on historical data. Custom AI trained only on a generic corpus performs noticeably worse than one trained on your actual past calls. This is why Step 1 (data export) matters so much. Skip it and your new system spends weeks learning patterns you could have given it from day one.
Planning a migration off SaaS AI?
Book a free 30-minute audit. We'll walk through your current setup, document the migration risks, and tell you exactly what the cutover plan would look like for your specific situation.
07.The TL;DR
Migrating from SaaS AI to a custom build is straightforward if you follow the five-step framework: export your data while you're still a customer, document your current flow before you build the new one, parallel-run for two weeks, execute the cutover in a controlled window, and stabilize for 30 days. Skip any step and something breaks.
The good news: most migrations net out to 3-4 weeks of project work plus 30 days of stabilization. That's a small investment for a system that scales with your workflow instead of fighting it. The full vendor comparison guide walks the decision of whether to migrate in the first place — start there if you're not sure yet.
Get the full vendor comparison guide
Every major AI voice vendor honestly compared in one 5,200-word reference. Pricing, fit, hidden costs. We'll email it instantly.