Skip to main content

Sender Pools

A sender pool is a named group of from addresses (E.164 numbers, short codes, or alphanumeric sender IDs) that Orbit picks from automatically at send time, instead of you hardcoding a single number on every send. Pools exist to solve two problems: spreading volume across more than one number so no single number gets overloaded or over-flagged by carriers, and picking a local number for a recipient so your messages don’t arrive from an obviously foreign long code. For the full request/response schema, see the Sender Pools API reference.

When to use a pool

  • High-volume sending — spread messages across several numbers so throughput and carrier reputation aren’t concentrated on one sender.
  • Conversation continuity — a support or marketing thread should always reply from the same number the contact already has in their inbox (sticky).
  • Local presence — a recipient in France should see a French number, a recipient in Brazil a Brazilian one (geomatch).
  • Deliverability rotation — swap out numbers whose reputation has degraded without changing anything in your send code.

Configure in the dashboard

Prefer a console over curl? Every pool operation above is also in the dashboard under Settings → Channels → SMS → Sender Pools.
  • Create a pool — click Create pool. In the panel that opens, name the pool, pick a strategy (the radio options describe each one’s behavior in one line before you commit), and select the sending DIDs. The selector contains your tenant’s numbers that aren’t already in another pool — a given sender can belong to only one pool, so a new pool stocks only untouched numbers, and alphanumeric sender IDs and short codes you add via the API still carry over when you edit later. A one-click Use all verified inventory action stocks the pool with every eligible sender at once.
  • Edit members — click Edit on a pool row to change the name, strategy, or membership. Members a different pool owns are excluded from the selector, so two pools can never claim the same sender.
  • Inspect a pool — expand a row’s Preview panel. It ships three analytics blocks:
    • Member health & rotation alerts — each member’s deliverability score with a health tier, plus a banner when degraded members are queued for auto-rotation, so you see the same signal the rotation scheduler acts on.
    • Verified inbound inventory — which members count as send-eligible numbers of yours, with the exact gate a member fails (number not in your inventory, not active, or missing the inbound SMS route) so you can fix the row instead of rotating through nothing.
    • Preview — run the sender a given recipient would get. Note the console warns that previewing a sticky pool commits that assignment — use the preview endpoint below from the API when you need a strictly read-only check.
The console covers the full pool lifecycle. For automation — CI-provisioned pools, scripted member rotation, or bulk management — call the endpoints in the table below; the console and API operate on the same pools.

Creating a pool via the API

sender_dids accepts a mix of E.164 long codes, numeric short codes, and alphanumeric sender IDs in the same pool — useful if you operate in a market that requires an alphanumeric sender ID as a fallback alongside long codes. Up to 50 entries per pool, no duplicates.

Selection strategies

Pick sticky for anything conversational (support, two-way SMS), geomatch for international campaigns where local presence matters, and round_robin or random for pure volume distribution with no continuity requirement.

Previewing a selection

Before you route real traffic through a pool, preview which sender a given recipient would get — without committing any selection state (a preview never advances a round-robin counter or writes a sticky assignment):
A pool with no DIDs configured returns 422 SENDER_POOL_EMPTY — add at least one DID before previewing or sending through it. The full symptom-cause-fix walkthrough is on Fix an empty sender pool.

Deliverability health

Each sender in a pool accumulates a health score from delivery outcomes. GET /messaging/sender-pools/{id}/health returns the per-member tier so you can see which senders are degraded before they cause delivery problems — the same signal Orbit’s rotation scheduler uses to auto-swap a degraded sender for a warmed replacement.

Endpoints

See also