Before conversation design, before latency tuning, before any of the things people optimize first - the number type your agent calls or texts from sets a ceiling on what's even possible. Get this wrong and no amount of script polish fixes it.
Here is what each type actually trades off, and how to pick.
Local numbers (10-digit long codes)
A standard local number, in the same area code format as a personal cell phone. This is the default most teams reach for, and for good reason: it looks familiar, it's cheap, and it supports both voice and SMS.
Where it wins: Recipient trust. A call or text from a number that looks local to the recipient gets more engagement than one that looks obviously commercial. For appointment reminders, personal outreach, or anything where the relationship already exists, this is usually the right default.
Where it struggles: Throughput. Local numbers support meaningfully lower message-per-second limits than short codes, and carriers watch local numbers for volume patterns that look automated. For SMS in the US, this also means registering the number and its use case (10DLC) - unregistered local-number SMS at any real volume gets filtered.
Best for: One-to-one style communication - reminders, confirmations, support conversations, outbound sales calls - where the recipient count per number stays reasonable and the value is in the relationship, not the blast.
Toll-free numbers
The (800), (888), (877) family. Historically associated with customer service lines and inbound support.
Where it wins: Higher throughput than a local number without the short code approval process, and a toll-free prefix reads as "business line" rather than "personal number," which fits some use cases better than a local number would.
Where it struggles: Toll-free numbers require their own verification process before high-volume use, and recipients sometimes screen calls from unfamiliar toll-free numbers more aggressively than local ones, since they're strongly associated with telemarketing in a lot of people's mental model.
Best for: Inbound-heavy use cases - a support or booking line customers are told to call - and outbound SMS at a moderate volume that's too high for a comfortable local-number pattern but doesn't justify a short code.
Short codes
The 5-6 digit numbers (like 83928) used for high-volume SMS - OTP codes, alerts, marketing campaigns.
Where it wins: Throughput, by a wide margin. Short codes are built for volume and carriers treat them accordingly, with much higher messages-per-second limits than any long code.
Where it struggles: Setup time and cost. Short code provisioning involves a carrier approval process that commonly takes weeks, plus an ongoing lease cost that dwarfs a local number. It's also SMS-only - no voice.
Best for: High-volume, one-to-many SMS where the message needs to land fast and reliably at scale - OTP delivery for a large user base, time-sensitive alerts, broad marketing sends. Not worth the setup overhead below a real volume threshold.
The decision, simplified
| Your situation | Best fit |
|---|---|
| Personal-feeling outreach, reminders, support conversations | Local number |
| Inbound support/booking line, moderate outbound volume | Toll-free |
| High-volume OTP or alerts at real scale | Short code |
| Need both voice and SMS on the same number | Local or toll-free (short codes are SMS-only) |
| Launching this week, volume still unknown | Local number - cheapest to start, easiest to change later |
The mistake worth avoiding
The most common misstep is picking a short code by default because it sounds like the "serious" choice, then paying weeks of setup time and an ongoing lease for volume that never arrives. The second most common is the opposite - staying on a local number well past the point where message volume triggers carrier filtering, and debugging a mysterious deliverability drop that was actually a number-type problem the whole time.
Start with what matches today's actual volume and relationship type, not what sounds most enterprise. It's much easier to add a short code later, once the volume justifies it, than to unwind a bad first choice while a real workflow depends on it.