📖 Glossary

What is a sub-flow?

Updated 2026-09-19 · 5 min read · By the Convo360 team

In short

A sub-flow is a self-contained piece of conversation logic, such as checking an order status or sending a payment reminder, that other flows call into using a Call Sub-flow step rather than being rebuilt inside every one of them. It has its own trigger, set to 'only when another flow calls it', so it never runs on its own.

Key takeaways
  • A sub-flow is built once and reused across many parent flows, chat and voice alike.
  • Its trigger must be set to 'Only when another flow calls it' — it never starts by itself.
  • Editing a published sub-flow changes behaviour everywhere it is called, so test changes before publishing.
  • Common sub-flows: order status, payment reminder, FAQ lookup, appointment rescheduling.
  • Sub-flows keep a bot maintainable as it grows, instead of duplicating the same logic across dozens of flows.

The definition

A sub-flow is a reusable segment of a conversation, kept as its own flow, that other flows jump into using a Call Sub-flow step instead of repeating the same steps inside every flow that needs them. It behaves like a shared drawer of conversation logic that any main flow can open when it needs to.

The one rule that makes a flow a sub-flow rather than a regular one is its trigger: it must be set to "Only when another flow calls it". This means it never starts on its own, even if a customer's message happens to match something inside it. It only ever runs when explicitly invoked.

How it works, in plain terms

If you have built software before, this is the same idea as a function or subroutine: write the logic once, call it from wherever you need it, and fix it in one place when something changes. If you have not, think of it as a laminated instruction card kept behind the counter: any staff member handling any customer can pull out the "how to check an order" card instead of memorising the steps separately for every situation.

Mechanically, a parent flow reaches a Call Sub-flow step, hands control to the sub-flow (optionally passing variables like the customer's phone number or order ID), the sub-flow runs its own steps, and then returns control back to the parent flow, often carrying results back with it.

Real examples

Sub-flows tend to appear first around the handful of questions that show up across almost every conversation a business has, regardless of how that conversation started. A few patterns come up again and again:

Why it matters as your bot grows

A business that starts with one simple flow rarely stays that way for long: new keywords, new campaigns, new channels all add flows. Without sub-flows, the same order-status or FAQ logic gets copy-pasted into each new flow, and a small change, like a new order status label, has to be made in every single copy. Miss one, and customers start getting inconsistent answers depending on which flow they happened to land in.

Sub-flows fix this by giving that logic exactly one home. Update the sub-flow once, republish it, and every parent flow that calls it picks up the change immediately, which is powerful, but also means a careless edit can affect many flows at once.

This becomes especially valuable once a business runs more than one bot, or the same automation across more than one channel. A business that supports customers on WhatsApp, a website widget and a voice line can keep exactly one order-status sub-flow behind all three, rather than maintaining three separate versions that inevitably drift apart over time as each is tweaked independently.

Common mistakes with sub-flows

Versioning: what changes when you publish a sub-flow

Like any flow, a sub-flow has drafts and a published version, with roll-back available. Because several parent flows may depend on it, treat a published sub-flow with a bit more caution than a one-off flow: use Preview / Try-it to test a draft change before publishing, and consider testing it through at least one real parent flow, not only in isolation, since the variables a sub-flow expects to receive have to match what each parent actually sends it.

Regular flowSub-flow
TriggerNew conversation, keyword, group, call, etc.Only when another flow calls it
Starts on its ownYesNo
Typical useThe main conversation a customer hasA reusable piece several flows share

Building one on Convo360

On Convo360, in the Flow Builder, create a new flow, set its trigger to "Only when another flow calls it", and build the reusable steps as normal, and a sub-flow can use any block, including HTTP request, Google Sheets, Set Variable or a payment link. In any parent flow, drop in a Call Sub-flow step and pick it from the list. Because chat and voice flows are built in the same Flow Builder, the same sub-flow structure works for both a WhatsApp conversation and a voice call, keeping your order-status or payment logic identical across channels, a genuine advantage for a business running the same enquiries through more than one channel at once.

Example conversation

What's the status of order 10452?
Let me check that for you. Order 10452 was dispatched yesterday and is expected to reach Pune by tomorrow evening. Would you like the tracking link?

Build a reusable sub-flow

Start free in minutes — no code, no credit card. Bring your own AI keys and pay no per-message markup.

Frequently asked questions

Can a sub-flow call another sub-flow?

Yes, sub-flows can nest, calling into another sub-flow for a smaller shared piece. Keep the chain shallow and easy to follow, since deeply nested sub-flows become harder to test and debug.

Do sub-flows work on voice calls, not just chat?

Yes. Since Convo360 uses the same flow builder for chat and voice, a sub-flow built for order status or payment reminders can be called from both a WhatsApp flow and a voice agent's call flow.

What happens if I edit a sub-flow that several flows already use?

The change applies everywhere the sub-flow is called, the moment you publish it. Test the change with Preview / Try-it first, since a mistake here affects every parent flow at once, not just one.

Can a sub-flow pass information back to the flow that called it?

Yes, using a Flow Output step or shared variables, a sub-flow can return results — such as an order status or a calculated total — back to the parent flow to use in its own next steps.

Why would I use a sub-flow instead of just copying the same steps?

Copying steps means every copy has to be updated separately when something changes, and it is easy to miss one. A sub-flow keeps that logic in exactly one place, so updates are instant and consistent everywhere it is used.

Related reading

Available across India — see WhatsApp & AI calling automation by state and city.