Call flows

Define what happens when someone calls your numbers: who answers, options menus (IVR), forwarding to another number and WhatsApp follow-ups.

Last updated: July 7, 2026

A call flow is what happens from the moment someone dials one of your numbers until the call is answered: who gets the ring, whether there's an options menu, where it's forwarded if nobody picks up. By default, a call rings straight to the available assigned users; with flows you decide, for each number, what happens when a call comes in — adding menus, forwarding or automatic follow-ups. Each number has its own flow, independent of the rest.

In this article

  • How it's configured
  • The templates
  • The actions you can chain
  • The fallback: "if nobody is available or answers"
  • The options menu (IVR) in detail
  • Limits and behavior on failures
  • What happens without a flow
  • Requirements
  • Frequently asked questions
  • What's coming

How it's configured

  1. Go to Calls → Settings → Call flows.
  2. Choose the number you want to give a flow to with the selector at the top (only numbers connected to the Calls channel appear).
  3. Build the flow with Start from scratch or from a template, chaining actions (for example: rings the team → if they don't answer, forward to another number → if still nobody, send a WhatsApp). The editor works with cards: at each step you first choose the Action and only then its fields appear.
  4. Review the plain-language summary the panel shows as you build the flow: it describes what will happen with each call.
  5. Activate the flow with that number's Active toggle and click Save.

Each number has its Active toggle and you can Save or use Delete flow whenever you want. The Save button is enabled only when the flow is complete: if a field is missing in some branch, a notice tells you what's missing.

ℹ️ The Active toggle lets you turn off a flow without deleting it: the number goes back to the default behavior (rings the assigned users) and you can reactivate it later exactly as it was.

💡 Typical example: "Ring Front Desk for 25 seconds → if they don't answer, forward to my cellphone → if still nobody, send a WhatsApp follow-up."

The templates

To avoid starting from scratch, you can start from a template and adjust it:

  • Team + WhatsApp — rings your team; if they don't answer, it sends a WhatsApp follow-up.
  • Options menu (IVR) — an auto-attendant answers and forwards based on the key.
  • Forward to a number — transfers all calls to another number.
  • AI AgentComing soon.

The actions you can chain

ActionWhat it does
A team userRings simultaneously the assigned users who are available at that moment. With the "Rings for" field you define how many seconds it rings (30 by default, between 5 and 120), and you configure the fallback action "If nobody is available or answers".
Options menu (IVR)An auto-attendant says a message ("For reservations, press 1…") and forwards based on the key. You define the voice language and what happens if they press an invalid option or don't press anything. Each option can even open another menu (nested submenus).
Forward to another numberTransfers the call to another external number, in international format (for example, +5491122334455).
Send WhatsApp follow-upSends a WhatsApp with an approved template to the number that called (for example, when nobody answered). Requires an active WhatsApp API connection. One single follow-up per call is sent.
End the callEnds the call, with an optional message that the auto-attendant reads before hanging up (for example, "Thanks for calling. We're outside business hours.").
Have an AI Agent answerComing soon — an AI voice agent that talks with the guest. It appears as an option but is still disabled.

ℹ️ The editor is recursive: each menu option and each fallback action is configured with the same cards. You can nest a submenu inside an option, put a WhatsApp as the fallback for an unanswered menu or chain forwardings.

The fallback: "if nobody is available or answers"

When the action is A team user, you define what happens if the call isn't answered. The system distinguishes two situations:

  • Nobody available — no assigned user can answer at that moment (all outside their working hours or with their presence set to "unavailable"). In this case the call doesn't even ring: it goes straight to the fallback action.
  • Nobody answers — the call rang for the seconds configured in "Rings for" and nobody picked up.

In both cases the action you define in the "If nobody is available or answers" branch is executed: forward to another number, send a WhatsApp follow-up or end with a message.

Each user's availability is configured separately from the flow:

  1. Each user's working hours and time zone, from the team's user management.
  2. The presence (available / unavailable), which each user changes from their own profile.

A user outside their hours, or with their presence set to "unavailable", doesn't get the ring. This is how the classic setup works: during the day the team answers; outside hours, the call is forwarded or triggers a WhatsApp automatically.

The options menu (IVR) in detail

The menu answers with an auto-attendant that reads aloud the text you write and forwards based on the key the caller presses. Its fields:

  • Message the auto-attendant will say — the text that's read (up to 3000 characters), for example "For reservations press 1, for the front desk press 2".
  • Voice language — the language in which the auto-attendant reads that message, with a premium neural voice. Available are Spanish, Portuguese and English, with regional variants (for example, Mexican or Spain Spanish, Brazilian or Portugal Portuguese, US or UK English). By default your panel's language is preselected.
  • Menu options — one per key: digits 0 to 9 work, and also * and #, one key per option. Each option has its own action: ring the team, forward, send WhatsApp, end or open another menu.
  • If they press an invalid option or don't press anything — the fallback action for when they press a key that doesn't exist or don't respond in time.

ℹ️ Retries: if the caller doesn't press anything, the auto-attendant repeats the message up to 3 times before moving to the fallback branch. If they press a key that isn't among the options, you can define an "invalid option" message and the call continues down that same fallback branch.

💡 Each node that speaks (menus and goodbye messages) has its own voice language: new steps inherit the parent step's language and you can change it. This allows, for example, a bilingual menu where option 1 continues in Spanish and option 2 opens a submenu in English.

Limits and behavior on failures

  • Flow depth: you can nest actions and submenus up to 8 levels.
  • One flow per number: each number connected to Calls has at most one flow, independent of the rest.
  • Fail-safe: a disabled, incomplete or invalid flow never cuts a call. If something fails, the call automatically falls back to the default behavior: it rings the available assigned users.
  • Validation when saving the WhatsApp: when saving a flow with Send WhatsApp follow-up, the panel checks that the template exists approved in one of your WhatsApp connections; if it doesn't exist in any, it won't let you save.
  • If the WhatsApp can't be sent at the moment of the call (for example, the WhatsApp API connection disconnected after saving), that step is skipped and the call is logged as missed in the history — the flow doesn't retry the send.
  • Forwardings: the destination number must be in international format, with + and country code.
  • Recordings: calls are recorded when a team member answers them. The segments where only the auto-attendant speaks (menu, goodbye messages) don't generate their own recording.

What happens without a flow

A number without a flow keeps working as always: the call rings in the browser of all users assigned to that number, the first one to pick up answers and, if nobody answers, the call is logged as missed — visible in the history and as an unread conversation in Chats, so you can call back with one click.

Requirements

  • Have VoIP Calls active on your account and at least one purchased or connected number (see Buy numbers).
  • Have users assigned to the number — without an assignment, nobody gets the ring.
  • Each user must have WeSpeak open in the browser and the microphone permission granted: if they close the tab, new calls don't ring for them.
  • The Send WhatsApp follow-up action requires an active WhatsApp API connection and an approved template.

Frequently asked questions

I set up the flow but the call still rings straight to the team.
Check two things: that the flow's Active toggle is on, and that you're editing the flow of the correct number (the selector at the top of the screen). A flow that's off or belongs to another number changes nothing.

Can I have a different menu depending on the time?
The case "during the day the team answers, at night something else" is built with the A team user action and its fallback: outside your users' working hours (or with their presence set to "unavailable"), the call goes straight to the "If nobody is available or answers" branch — that's where you put the forwarding, the WhatsApp or the nighttime closing message.

If the call rings for several people and one answers, what do the others see?
On everyone else's screens the call stops ringing instantly. If two people answer at the exact same time, the first one stays connected and the other's drops immediately; the history shows a single user as the one who answered.

Can the same number have two calls at once?
Yes — the number doesn't get "busy": two simultaneous calls to the same number ring for all the assigned users and can be answered by different users, each with its own record and recording. What one user can't do is answer two at once: while on a call, the second incoming one appears with a notice but without the answer button (a teammate can take it).

I have WeSpeak open in several tabs and the call rings in only one.
That's intentional: each user has a single line, and the most recently connected tab answers it. Work your calls from a single tab; if you close the one that was ringing, another open tab picks the line back up within a few seconds.

The WhatsApp follow-up didn't reach the caller.
Check that the WhatsApp API connection is still active and that the flow's template is still approved. The editor validates the template when saving, but if the connection drops afterward, that step is skipped (the call is logged as missed in the history).

What's coming

  • AI voice agent: a conversational assistant that answers the call, resolves simple queries and transfers to a person when needed — coming soon.

ℹ️ Note: there's no voicemail yet — an unanswered call is logged as missed (and you can cover it with a WhatsApp follow-up inside the flow).