# Number Pools and Rotation

> Edesy Collect caller-ID pools - group 2 to 4 of your numbers, choose round robin, least recently used or sticky-then-rotate, and give each retry to a debtor a fresh caller ID.

Source: https://edesy.in/docs/collect/numbers/number-pools-and-rotation

A number pool is a small group of your caller-ID numbers that a reminder campaign rotates through. Each time Collect calls the same debtor again, it uses a pool number that debtor has not been called from yet, so a debtor who blocked one number can still be reached. Keep pools at 2 to 4 numbers; the maximum is 6.

## Create a pool

**Portal:** open **Number Pools**, enter a name, pick a rotation and click create.

**API:**

```bash
curl -X POST https://voice-api.edesy.in/v1/collect/pools \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"name": "Collections pool", "rotation": "round_robin"}'
```

## Add numbers

- **Buy a number:** on the pool, click **Buy a number**, pick one and click **Buy & add**. The first month is prepaid from your wallet, KYC must be approved, and the number joins this pool.
- **Add a number you own:** enter the number in E.164 (`+91...`) and its phone number ID.

```bash
curl -X POST https://voice-api.edesy.in/v1/collect/pools/POOL_ID/numbers \
  -H "Authorization: Bearer sk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"phone_number_id": "PHONE_NUMBER_ID", "from_number": "+91XXXXXXXXXX"}'
```

A pool holds at most 6 numbers; adding a seventh returns `400 pool is at the 6-number limit`. The same number cannot be added to one pool twice. Pool membership itself is free; each number's monthly rental is charged from your wallet as usual.

## Rotation strategies

| Value | Portal label | How the next caller ID is picked |
|---|---|---|
| `round_robin` (default) | Round robin | The active number used least recently across the pool |
| `least_recently_used` | Least recently used | Same ordering as round robin |
| `sticky_then_rotate` | Sticky, then rotate | The number used most recently, so most first calls go out from one number; a debtor's retry still moves to a number they have not seen |

With every strategy:

- Only numbers with health `active` are used. See [Spam Flag and Health](https://edesy.in/docs/collect/numbers/spam-flag-and-health).
- A number already used for this debtor is skipped.
- Calls running at the same moment get different numbers where possible.

## Pool size and attempts

Because each attempt to a debtor uses a number they have not seen, a debtor can get at most as many attempts as the pool has active numbers. With 4 numbers and a total cap of 6, that debtor gets 4 attempts; after that they are marked `failed` and not called again. Match the total cap to your pool size, or add numbers.

## Use the pool in a campaign

Pick the pool in **New campaign**, or send `number_pool_id` when you create the campaign. The campaign's `from_number` is still required; it is used when no pool is set.

## FAQ

**How many numbers should a pool have?**
2 to 4. Small pools are less likely to be spam-flagged by carriers as a set.

**Can I share a pool between campaigns?**
Yes. Set the same `number_pool_id` on each campaign.

**Can I delete a pool?**
Yes, with `DELETE /v1/collect/pools/:id`.
