# Rotation Numbers

How outbound calls are triggered from a number pool instead of a single from-number. Read the Rotation Numbers guide in Hello Alex documentation.

Canonical HTML: https://docs.helloalex.ai/article/rotation-numbers-overview

Path: [Documentation](/) / [Rotation Numbers](/rotation-numbers)

## Overview

Rotation Numbers is one of the ways Hello Alex places outbound calls. Instead of every dial coming from one caller ID, we pick a number from the pool and send it to Bland as `from`. That is our pooling, not Bland Custom Dialing. Send Call, Batch Call, voice Campaigns, and API launches can use that pool as the from-number. The SMS node's From Number stays the inspector field.

## How it works

- On Send Call, Batch Call, Campaigns, and API, we assign a pool number ourselves, then send Bland `from`. We never send `dialing_strategy` or a Bland custom pool id.
- Hello Alex picks the number from the pool, then sends Bland `from` with that number. We do not send Bland `dialing_strategy` / custom pooling (`custom_pooling` pool_id). Rotation is the voice call's outbound from only — it does not set the SMS node's From Number.
- Add numbers to the pool, and calls are shared between them instead of dialing from one line every time.
- A new number warms up rather than starting at full volume: it takes a small share of calls at first and climbs to its normal share over a set number of days.
- A rotation setup holds one inbound configuration — the pathway that answers a callback — and applies it to every number in the setup.
- When a number stops connecting, Replace swaps it for one that has not been used yet and carries the setup's configuration across to it.
- Call pacing decides how the pool's calls are shared: a set percentage goes to the numbers already at full volume, and the numbers still warming up share the rest evenly. That split is yours to change.

## Important fields

- **What we send Bland:** The chosen E.164 as `from`. Not `dialing_strategy`, not `custom_pooling` / `custom_pool`. SMS node From Number is a separate inspector field and is not filled by rotation.
- **In rotation:** The numbers currently dialing. Each shows what answers a callback on it.
- **Available to swap in:** Numbers you own that are not dialing yet, kept ready to replace one that is struggling.
- **Rotation setup:** One inbound configuration -- calls or SMS -- shared by every number attached to it.
- **Call interval:** The shortest gap between calls from the pool. Five seconds by default; a longer gap paces a campaign more gently.
- **Daily cap per number:** How many calls one number may carry in a day, or unlimited if you would rather not cap it.
- **Warm-up:** The ramp a new number climbs before it takes a full share of the pool's calls.
- **Call pacing:** The share of calls the full-volume numbers take, with the warming-up numbers sharing what is left.

## Tips

- Good to know: a replaced number is never re-used automatically. Replace always reaches for a number that has not dialed yet, which is the point -- swapping in a line that was already tired would repeat the problem you were solving.
- Open any number to see its own record: how many calls it has carried, how many connected, what it did today, and which setup answers it. That page is where a number that has quietly stopped connecting becomes visible.
- The interval is a floor, not a target. A pool paced at one call every ten seconds will not go faster, however many numbers it holds.
- Good to know: the split is what makes a warm-up gentle. A larger share ramps new numbers faster; a smaller one protects a new line for longer.

## How outbound calls get triggered

Rotation Numbers is one of the ways Hello Alex places outbound calls. Instead of every dial coming from one caller ID, we pick a number from the pool and send it to Bland as `from`. That is our pooling, not Bland Custom Dialing. Send Call, Batch Call, voice Campaigns, and API launches can use that pool as the from-number. The SMS node's From Number stays the inspector field.

Add a second number to the pool, give it a few days of warm-up, and compare its connected rate against the rest before leaning on it.

- Hello Alex picks the number from the pool, then sends Bland `from` with that number. We do not send Bland `dialing_strategy` / custom pooling (`custom_pooling` pool_id). Rotation is the voice call's outbound from only — it does not set the SMS node's From Number.
- Add numbers to the pool, and calls are shared between them instead of dialing from one line every time.
- A new number warms up rather than starting at full volume: it takes a small share of calls at first and climbs to its normal share over a set number of days.
- A rotation setup holds one inbound configuration -- the pathway that answers a callback -- and applies it to every number in the setup, so a pool of twenty numbers is configured once rather than twenty times.
- When a number stops connecting, Replace swaps it for one that has not been used yet and carries the setup's configuration across to it.
- **What we send Bland:** The chosen E.164 as `from`. Not `dialing_strategy`, not `custom_pooling` / `custom_pool`. SMS node From Number is a separate inspector field and is not filled by rotation.
- **In rotation:** The numbers currently dialing. Each shows what answers a callback on it.
- **Available to swap in:** Numbers you own that are not dialing yet, kept ready to replace one that is struggling.
- **Rotation setup:** One inbound configuration -- calls or SMS -- shared by every number attached to it.
- **Call interval:** The shortest gap between calls from the pool. Five seconds by default; a longer gap paces a campaign more gently.
- **Daily cap per number:** How many calls one number may carry in a day, or unlimited if you would rather not cap it.
- **Warm-up:** The ramp a new number climbs before it takes a full share of the pool's calls.
- Good to know: a replaced number is never re-used automatically. Replace always reaches for a number that has not dialed yet, which is the point -- swapping in a line that was already tired would repeat the problem you were solving.
- Open any number to see its own record: how many calls it has carried, how many connected, what it did today, and which setup answers it. That page is where a number that has quietly stopped connecting becomes visible.
- The interval is a floor, not a target. A pool paced at one call every ten seconds will not go faster, however many numbers it holds.
- Outbound campaigns that would burn a single caller ID
- Replacing a number that has started going unanswered
- One callback pathway shared across a whole pool

## Next step

Open Phone Numbers, add a second line to the pool, then use that rotation as the from-number on Send Call or Batch Call. Do not place a live call just to read this guide.

## Related documentation

- [More Rotation Numbers guides](/rotation-numbers)
