# Call flows

A call flow tells Nimbata what to do with a call from the moment someone dials one of your tracking numbers. This page explains how call flows work, the actions they are built from, and how to build one from scratch or from a template.

## How call flows work

A call flow is a set of instructions that tells Nimbata what to do from the moment someone dials one of your tracking numbers. Every call that comes in follows the flow you've built, in the exact order you've set up.

You design call flows visually in the **Call Flow Builder**, a canvas where you add and connect actions. The result is a path a call travels through. It might be:

1. Greeted
2. Recorded
3. Filtered by time or keypad input
4. Then connected to a destination number.

### What a call flow can do

Call flows are built from three types of actions: **add-ons**, **filters**, and **routing options**.

**Add-ons** layer features on top of a call without changing where it goes:

- **Record**: records the conversation for training, compliance, or quality monitoring.
- **Greeting**: plays an audio message to the caller before the call connects (for example, "Thank you for calling, please hold.").
- **Whisper**: plays a short private audio cue to the agent the moment they pick up (for example, "Call from Google Ads.").
- **Mask caller ID**: changes the number the agent sees when a call arrives: no number (anonymous, the default), the tracking number the caller dialed, or the destination number. Showing the tracking number tells agents which campaign the call came from.
- **Call survey**: prompts the agent to score or tag the call after it ends.

**Filters** inspect an attribute of the call and branch the flow accordingly:

- **Keypad entry**: prompts the caller to press a key and routes down the matching branch (IVR).
- **Day of week**: routes differently depending on which day the call arrives.
- **Time of day**: routes based on the time of the call (for example, business hours vs. after-hours).
- **Caller ID prefix**: reads the first digits of the caller's number and routes or tags based on area or country code.

**Routing options** decide where the call is connected:

- **Dial**: connects to a single destination number.
- **Multiple**: rings several destinations simultaneously; the first to answer takes the call.
- **Sequential**: rings destinations one at a time in order.
- **Weighted**: distributes calls across destinations by percentage.
- **Voicemail**: sends the call to a recorded mailbox.
- **Hang up**: ends the call immediately.

Every path in a call flow must end in an action that resolves the call: **Dial**, **Multiple**, **Sequential**, **Weighted**, **Voicemail** or **Hang up**. A path without one is marked invalid, and the call flow can't go live until you add one.

### How call flows connect to tracking numbers

A call flow does nothing on its own. It must be assigned to a tracking number (or a swap group) before it takes effect. You can assign the same flow to multiple numbers, or give each number its own flow.

### Call flows vs. workflows

**Call flows** control what happens **during** a call:

- Routing
- Recording
- Greeting
- IVR

**Workflows** control what happens **after** a call ends:

- Sending conversions
- Triggering alerts
- Updating tags
- Pushing data to integrations

The two work together but serve different purposes.

Detailed guide: [Build a call flow](https://help.nimbata.com/call-handling/call-flows#build-a-call-flow)\
Detailed guide: [Add-ons, filters and routing options](https://help.nimbata.com/call-handling/call-flows#add-ons-filters-and-routing-options)\
Detailed guide: [How workflows work](https://help.nimbata.com/workflows/workflows#how-workflows-work)

## Build a call flow

> **Tip:** Before you start: make sure you add at least one destination number before building a call flow: [Add a destination](https://help.nimbata.com/tracking/destination-numbers#add-a-destination)

The Call Flow Builder is a canvas where you design how incoming calls are handled and routed from the moment a tracking number is dialed. Every path in a call flow must end in an action that resolves the call, such as **Dial**, which connects the call to a destination (see [How call flows work](https://help.nimbata.com/call-handling/call-flows#how-call-flows-work)). Everything else (greetings, recording, IVR, whispers, filters) is layered on top.

1. **Open the Call Flow Builder**

   - Go to [Call handling > Call Flows](https://app.nimbata.com/call-handling/call-flows).
   - Click **+ Create**.

2. **Add actions to your call flow**

   Click the **+** button on the canvas to open the action menu. Add any combination of the following:

   - **Dial:** routes the call to a destination number
   - **Record:** starts call recording
   - **Greeting:** plays a message the caller hears before connecting
   - **Whisper:** plays a private audio cue the agent hears when they pick up
   - **Mask Caller ID:** controls what number appears on the agent's screen
   - **Keypad Entry:** creates an IVR menu for caller input
   - **Voicemail:** captures a message when no one answers
   - **Call Survey:** prompts the agent to score or tag the call after it ends
   - **Sequential / Weighted:** distribute calls across multiple destinations
   - **Day of Week / Time of Day / Caller ID Prefix:** conditional routing filters

   > **Tip:** Connect any conditional actions (Keypad Entry, Day of Week, Time of Day, Caller ID Prefix) using path arrows on the canvas to route calls down different branches.

   ![A call flow on the canvas: a Greeting, Keypad Entry branches for 1 and 2, Day of Week filters on the second branch, and a Dial action at the end of each path.](https://help.nimbata.com/_astro/01-image_17ekxxt.DdtSvuRd_10aIrJ.webp)

3. **Assign the call flow to a tracking number**

   Go to [Tracking > Numbers](https://app.nimbata.com/tracking/numbers) and assign the call flow:

   - Either at the **swap group level** (shared across multiple tracking numbers) OR
   - At the **tracking number level** (applies to one number only).

   ![Tracking > Numbers, choosing a call flow in one tracking number's Call Flow field (the tracking number level).](https://help.nimbata.com/_astro/02-image_1pr3a9f.Rxks7GZV_Z1sQeov.webp)

🎉 That's it. Whenever someone calls the tracking number, they'll follow the flow you just built.

Detailed guide: [Mask the caller ID](https://help.nimbata.com/call-handling/whispers#mask-the-caller-id)\
Detailed guide: [Turn on recording](https://help.nimbata.com/call-handling/call-recording#turn-on-recording)\
Detailed guide: [Add a greeting](https://help.nimbata.com/call-handling/greetings-and-ivr#add-a-greeting)\
Detailed guide: [Add a whisper](https://help.nimbata.com/call-handling/whispers#add-a-whisper)\
Detailed guide: [Score calls with surveys](https://help.nimbata.com/workflows/tagging-and-scoring#score-calls-with-surveys)\
Detailed guide: [Route by caller location](https://help.nimbata.com/call-handling/routing-filters#route-by-caller-location)\
Detailed guide: [Build a keypad menu](https://help.nimbata.com/call-handling/greetings-and-ivr#build-a-keypad-menu)\
Detailed guide: [Route by day of week](https://help.nimbata.com/call-handling/routing-filters#route-by-day-of-week)\
Detailed guide: [Route by time of day](https://help.nimbata.com/call-handling/routing-filters#route-by-time-of-day)\
Detailed guide: [Ring several numbers at once](https://help.nimbata.com/call-handling/call-routing#ring-several-numbers-at-once)\
Detailed guide: [Ring numbers in order](https://help.nimbata.com/call-handling/call-routing#ring-numbers-in-order)\
Detailed guide: [Split calls by percentage](https://help.nimbata.com/call-handling/call-routing#split-calls-by-percentage)\
Detailed guide: [Set up and listen to voicemail](https://help.nimbata.com/call-handling/voicemail#set-up-and-listen-to-voicemail)

## Add-ons, filters and routing options

> **Note:** This section covers Call Flow Actions. For Workflow Rules & Tasks, see: [Rules and tasks](https://help.nimbata.com/workflows/rules-and-tasks).

Call flow actions are the building blocks of every call flow. They fall into three groups: Add-ons, Filters, and Routing Options. Combine them in the Call Flow Builder to shape how each inbound call is handled.

You add them in sequence with the **+** button. The menu that appears changes depending on where in the flow you are: before or after the Dial module. Below are the three categories of modules, how they interact, and how the builder guides you toward a valid flow.

### Add-ons

**Add-ons** enhance the call experience for the caller or agent. They layer features on top of a call without changing its destination: they add behavior around the routing.

1. **Mask Caller ID:** shows the agent no number (anonymous, the default), the tracking number or the destination number instead of the caller's real number. Showing the tracking number tells agents which campaign or line the call came from.
2. **Record:** automatically records inbound calls for training, compliance, and quality monitoring. Callers are notified where required by law.
3. **Greeting:** plays a customizable audio message to the caller before the call connects. For example, "Thank you for calling, please hold while we connect you."
4. **Whisper:** plays a short audio cue only to the agent the moment they pick up, providing context such as the campaign source. For example, "Call from Facebook Ads."
5. **Call Survey:** presents an interactive voice survey to the agent after the call ends. Agents can use it to rate quality or confirm lead outcomes.

### Filters

**Filters** inspect an attribute of the incoming call and conditionally split the call flow into separate paths based on what they find. Filters are only available before the Dial module.

1. **Caller ID Prefix:** reads the first digits of the caller's number (area code or country code) and can tag or route the call accordingly. For example, tagging Chicago calls with `[312]`.
2. **Keypad Entry:** prompts the caller to press a key and routes the call down the matching branch. For example, "Press 1 for Sales, 2 for Support."
3. **Day of Week:** routes calls differently depending on which day they arrive. For example, weekdays to the sales team and weekends to voicemail.
4. **Time of Day:** routes calls based on the time they arrive. For example, business hours to live agents and after-hours to voicemail.

### Routing options

**Routing options** decide where the call ends up: they define how and where a call is delivered. Every path in a call flow must end in one of them (or in Voicemail or Hang up). Dial is the default.

1. **Dial:** connects the call to a single destination number.
2. **Multiple:** rings several destination numbers simultaneously. The first to answer takes the call.
3. **Sequential:** rings destination numbers one at a time in a defined order until someone answers.
4. **Weighted:** distributes calls across destinations according to percentages you set. For example, 70% to Team A and 30% to Team B.
5. **Hang Up:** ends the call immediately without connecting to anyone. No further modules run after Hang Up.
6. **Voicemail:** sends the call to a recorded mailbox (a voicemail inbox) so the caller can leave a message.

### What appears before and after Dial

The **+** button above Dial gives you access to:

- **Add-ons:** Mask Caller ID, Record, Greeting
- **Filters:** Caller ID Prefix, Keypad Entry, Day of Week, Time of Day

The **+** button below Dial gives you access to:

- **Add-ons:** Whisper, Call Survey
- **Routing Options:** Voicemail

This separation reflects the logic of a call: you prepare and filter before routing, and you follow up after. To see the full menu of available modules, remove the default Dial module. This reveals all add-ons, filters, and routing options in one view.

### How filters work

Adding a filter creates a module that defines the condition, with a corresponding routing module attached for calls that match it. Calls that do not match fall through to the next module below, including the main Dial.

Use the **Split** option (via the same **+** button on the filter module) to carve off additional paths. Each split handles the calls assigned to it; everything else falls through.

Each filter type partitions calls differently:

- **Day of Week:** splits calls by day. All 7 days are pre-selected on the first path. Add splits to assign specific days to separate paths.
- **Time of Day:** splits calls by time window, using the same pattern as Day of Week.
- **Caller ID Prefix:** creates a path per prefix. Calls matching a given prefix are routed down that path; all others fall through.
- **Keypad Entry:** creates a path per digit or digit sequence pressed by the caller.

Each split path can have its own add-ons and routing options added to it independently.

> **Tip:** Detailed guide: [Build a keypad menu](https://help.nimbata.com/call-handling/greetings-and-ivr#build-a-keypad-menu)

### Execution order

Call flows execute top to bottom, in the order modules appear in the builder. The **+** button only surfaces options that are valid at each position, so the builder steers you toward a structurally sound flow.

A typical flow might look like this:

- A **Greeting** plays to the caller
- A **Day of Week** filter checks which day it is:
  1. Monday to Friday > Dial to the office
  2. Saturday to Sunday > Voicemail
- A **Whisper** plays to the agent when they answer
- A **Call Survey** runs after the call ends

> **Warning:** Filters must be placed before Dial. Add-ons that apply to the agent (Whisper) or follow the call (Call Survey) must be placed after Dial. The builder enforces this by showing only valid options at each + button position.

Detailed guide: [Build a call flow](https://help.nimbata.com/call-handling/call-flows#build-a-call-flow)\
Detailed guide: [Assign a call flow](https://help.nimbata.com/tracking/managing-numbers#assign-a-call-flow)\
Detailed guide: [Mask the caller ID](https://help.nimbata.com/call-handling/whispers#mask-the-caller-id)\
Detailed guide: [Turn on recording](https://help.nimbata.com/call-handling/call-recording#turn-on-recording)\
Detailed guide: [Add a greeting](https://help.nimbata.com/call-handling/greetings-and-ivr#add-a-greeting)\
Detailed guide: [Add a whisper](https://help.nimbata.com/call-handling/whispers#add-a-whisper)\
Detailed guide: [Route by caller location](https://help.nimbata.com/call-handling/routing-filters#route-by-caller-location)\
Detailed guide: [Build a keypad menu](https://help.nimbata.com/call-handling/greetings-and-ivr#build-a-keypad-menu)\
Detailed guide: [Route by day of week](https://help.nimbata.com/call-handling/routing-filters#route-by-day-of-week)\
Detailed guide: [Route by time of day](https://help.nimbata.com/call-handling/routing-filters#route-by-time-of-day)\
Detailed guide: [Ring several numbers at once](https://help.nimbata.com/call-handling/call-routing#ring-several-numbers-at-once)\
Detailed guide: [Ring numbers in order](https://help.nimbata.com/call-handling/call-routing#ring-numbers-in-order)\
Detailed guide: [Split calls by percentage](https://help.nimbata.com/call-handling/call-routing#split-calls-by-percentage)\
Detailed guide: [Set up and listen to voicemail](https://help.nimbata.com/call-handling/voicemail#set-up-and-listen-to-voicemail)

## Start from a template

> **Note:** To build this call flow manually using the full Call Flow Builder instead, see: [Build a call flow](https://help.nimbata.com/call-handling/call-flows#build-a-call-flow)

A Simple Call Flow routes every incoming call straight to one destination number. It's the fastest way to get a tracking number live and is a good starting point before adding greetings, recording, or routing rules.

1. **Open the template picker**

   - Go to [Call handling > Call Flows](https://app.nimbata.com/call-handling/call-flows).
   - Click **+ Create**.
   - Select **From Template**.

   ![The Create a New Call Flow page, with the From Scratch and From Template options.](https://help.nimbata.com/_astro/01-image_1bpu4ex.iLhhOG5y_6qSvG.webp)

2. **Choose the Simple Call Flow template**

   - Hover over **Simple Call Flow**.
   - Click **Use template**.

   ![The Call Flow Templates page, with Use template on the Simple Call Flow card.](https://help.nimbata.com/_astro/02-image_v61j4o.fZxoRz32_1DaDW3.webp)

3. **Select your destination number**

   - The template is created and named automatically.
   - Click the Dial action.
   - Select the destination number you want calls forwarded to.

🎉 Your Simple Call Flow is ready.

Assign it to a tracking number under [Tracking > Numbers](https://app.nimbata.com/tracking/numbers) to go live.

Detailed guide: [Assign a call flow](https://help.nimbata.com/tracking/managing-numbers#assign-a-call-flow)
