Workflows migration guide
Workflows will be retired on August 18, 2026. From August 19, 2026 onward, existing workflows will no longer run. Migrate to Squads before then to avoid disruption.
What’s changing
Workflows will be retired by August 18, 2026. From August 19, 2026 onward, existing workflows will no longer run.
We no longer recommend Workflows for new builds — please use Assistants or Squads depending on complexity. This page is retained to help you migrate.
Why we’ve moved away from Workflows
While the Workflows product is fully built, we’ve found that current AI systems aren’t yet capable of acting as truly autonomous agents that can:
- Maintain awareness of the current node’s instructions
- Understand all possible next steps and the conditions required to reach them
In contrast, the Squads pattern has consistently led to better results for customers. We’re now focusing on improving the ergonomics and developer experience around Squads to make this approach even more effective.
If you are no longer using Workflows, no action is required.
What this means
- Existing workflows will continue to run until the deprecation date (August 18, 2026). Users are discouraged from creating any new workflows.
- Afterwards, any workflows still in use will stop running entirely.
- Squads is the recommended replacement.
Understanding the migration
The core mental model shift: instead of a visual graph of nodes and edges, Squads uses specialized assistants that hand off to each other. Each assistant handles one focused part of your conversation, with clear handoff conditions in between.
Here’s how Workflows concepts map to Squads:
Fastest path: migrate with AI (assisted)
You can have an AI assistant draft the equivalent Squad for you. Two options:
Option 1 — Composer (in your dashboard). We’ve added a Composer skill that takes an existing workflow and drafts the equivalent Squad — generating the assistants, handoff tools, and variable extraction automatically. Open Composer in your dashboard and ask it in plain language — for example, “help me migrate my workflows to squads.” Composer will kick off the process and draft the equivalent Squad(s) for you.
Option 2 — Download this guide and use your own AI assistant. Download the agent-friendly .md version below and hand it to any AI coding assistant (Claude Code, Cursor, or any LLM) along with your existing workflow’s configuration. It’s a single, self-contained file — dense concept mapping, the consolidation rules, step-by-step instructions, and a validation checklist — written so a model can draft the equivalent Squad without re-reading the docs.
Either option gives you a starting point, not a finished migration. AI assistance automates the tedious setup, but it is not guaranteed to be correct or complete. Always review and test the generated Squad before going live.
Before you go live, verify:
- Each Conversation Node’s logic is captured (stages may need consolidating — see Step 2)
- Every handoff condition triggers at the right time
- Variable extraction passes the right data between assistants
- Tools, API requests, and transfers are attached to the correct assistant
- Test calls cover all conversation paths, including edge cases
If anything looks off, fix it manually using the steps below.
Prefer full control? Skip the assisted path and follow Steps 1–6.
How to migrate
Step 1 — Map your existing workflow
Before building anything in Squads, document what your workflow does:
- List each node and its purpose
- Note the conditions on each edge
- Identify any variables being extracted and where they’re used downstream
- Note any API calls or transfers to phone numbers
Step 2 — Create an assistant for each Conversation Node
Do not assume a 1:1 mapping between Workflow conversation nodes and Squad members. Some workflows include dozens of nodes (e.g. IVR-style menus where each node asks a question and extracts a variable). In these cases, a 1:1 migration usually creates too many assistants and makes the system harder to maintain.
Start by bundling as much of the workflow as you can into a single assistant. Squads work best for linear, unidirectional flows where the conversation moves forward through a predictable sequence of stages. Only split work into a separate assistant when there’s a clear functional boundary and you don’t expect the conversation to bounce back and forth between the two. If two stages would repeatedly hand off to each other throughout a call, consolidate them into one assistant — frequent cyclical handoffs add latency and can introduce hallucinations.
Then:
- Group related nodes into a small number of well-defined stages (e.g. intake → triage → scheduling → human handoff)
- Create one assistant per stage with a clear responsibility and a focused prompt (1–3 goals max)
- Use Handoff tools to move between stages and extract/pass variables at the boundaries
- Attach tools (API requests, transfers, etc.) to the assistant responsible for that stage
A predictable, one-directional path like triage → voicemail → SDR is a good fit for separate assistants. A pair like SDR ↔ FAQ that would hand back and forth many times within a single conversation is not — consolidate those into one assistant instead.
For an example of this “stage-based” approach, see the Clinic triage & scheduling example.
Step 3 — Add Handoff tools
Replace your edge conditions with Handoff tools. For each transition:
- Create a Handoff tool on the source assistant
- Set the destination to the next assistant (or phone number for transfers)
- Write a clear description of when to hand off — this replaces your edge condition
For AI-based conditions (e.g. “user wants to talk about pricing”), write the condition in plain language in the Handoff tool description.
For logical conditions (e.g. {{ customer_tier == "VIP" }}), use variable extraction to capture the value, then reference it in the Handoff tool description.
Step 4 — Handle variable extraction
Variables extracted mid-conversation in Workflows are available across the full Squad via the Handoff tool’s variable extraction. Configure variable extraction in each Handoff to pass key data to the next assistant.
How extraction differs from Workflows: Squads extracts variables with an LLM at handoff time (a schema-driven extraction against the conversation transcript), then passes them to the next assistant. This handles most cases well, but it’s best-effort, not deterministic. If a value isn’t clearly present in the conversation, or a transient model error occurs, extraction can return empty and the handoff still proceeds. Define clear extraction schemas, and test that business-critical variables are reliably captured before depending on them downstream. For strictly deterministic values, capture them via a tool or API response rather than relying on transcript extraction.
Step 5 — Set up your Squad
Group your assistants into a Squad:
- The first member in the
membersarray is the entry point (equivalent to the Start Node) - Use
memberOverridesto standardize settings across all members if needed (e.g. the same voice throughout). To override a single member instead, useassistantOverrideson that member.
Useful resources
Learn how multi-assistant conversations work.
Build your first Squad step by step.
Configure transitions between assistants.
Pass data between assistants at handoff time.
Control what conversation context carries across handoffs.
FAQs
Why is Workflows being retired?
We’ve found that Squads consistently produces better results for customers. Rather than maintaining two parallel products, we’re going all-in on Squads — it’s already the recommended approach for complex voice agents.
Will my workflows stop working immediately on the deprecation date?
Yes. After August 18, 2026, existing workflows will no longer run. We recommend completing your migration before then to avoid any disruption.
Do I need to rebuild everything from scratch?
Not exactly, since the concepts map closely. Each Conversation Node becomes a Squad member, and each edge becomes a Handoff tool. The main work is rewriting your prompts to be more focused and configuring Handoff tools with clear transfer conditions.
What if I need deterministic routing that Squads doesn't support?
Squads with well-written Handoff tool descriptions handles most routing scenarios reliably. For cases where you need strict logical conditions (e.g. {{ customer_tier == "VIP" }}), extract the relevant variable first and reference it in your Handoff tool description. If you’re hitting a specific edge case, reach out to support@vapi.ai and we can help.
What happens to my workflow data (call logs, variables extracted, etc.)?
Your historical call data remains accessible in your call logs. Workflows-specific post-call data (nodes traversed, extracted variables from Workflow runs) will remain viewable for existing calls.
I'm using Workflows via API — do I need to change my integration?
Yes. If you’re passing a workflowId in your call configuration, you’ll need to switch to passing a squadId instead. See the Squads API reference for details.
Can I get help migrating?
Please reach out to support@vapi.ai and we’ll do our best to help you get unblocked. If you’re a high-volume user, we can set up time to walk through your specific setup.
We’ve also added a Composer skill that auto-drafts a Squad from your existing workflow — just ask Composer “help me migrate my workflows to squads” (see Fastest path: migrate with AI above). It’s a best-effort starting point, so always review and test the result before going live.
Who should I contact if I have questions?
Please reach out to support@vapi.ai.