One Quo number is fine to start. Once you're sending more than ~50 texts a day — or running multiple campaigns in parallel — adding a second or third number rotates outbound sends automatically and keeps each number's reputation healthy.
How many numbers can I connect?
The cap depends on your plan:
- Free: 1 number
- Starter: 3 numbers
- Pro: 10 numbers
- Scale: Unlimited
So number rotation is available from Starter up — only Free is limited to a single number. If you downgrade and you're over the new cap, your existing numbers keep working — you just can't add a new one until you remove one or upgrade.
1. Buy or attach the extra number(s) inside Quo
This part happens entirely in your Quo dashboard, not Direct REI:
- Open Quo →
Settings → Phone numbers → + Add phone number - Pick a local area code that matches the market you're texting
- Complete any carrier registration steps Quo asks for (10DLC, brand/campaign approval, etc.)
In Direct REI, each connected number is its own account with its own Quo API key — so for every number you add, you'll generate a separate key in Quo. Keep that in mind for the next step.
2. Add each number to Direct REI as a separate account
Direct REI treats each connected Quo number as its own "SMS account" row, each with its own Quo API key.
- Go to
Settings → Phone → SMS Accounts → + Add Quo Account - In Quo, generate a separate API key for this number (Quo → API → Generate new key) and paste it here
- Click Test connection — Direct REI lists every Quo number the key can access
- Pick the specific number for this row from the dropdown
- Label it ("Texas main", "Florida campaign", etc.) so the rotation log is readable
- Set the daily cap (50 is a safe start per number) and save
- Repeat for each additional number — generate a new API key in Quo and pick a different number each time
3. Register webhooks per number
Each Quo number sends its own inbound webhooks, so each one needs its own SMS + call signing secrets registered in Quo and pasted into Direct REI.
- In Direct REI
Settings → Phone— every row has its own SMS webhook URL and Call webhook URL. They're slightly different per row. - In Quo
Settings → Webhooks → + Add webhook— register each URL separately, subscribe tomessage.receivedfor SMS andcall.completedfor calls - Open each webhook's ⋯ menu → Webhook details and copy its signing secret
- Paste each secret into the matching SMS Account row in Direct REI → Edit → Save
You'll end up with one signing secret per number per webhook channel — so two numbers using both SMS + call webhooks means four secrets stored against two accounts.
4. How rotation actually works
When you queue an SMS send to a list:
- Direct REI picks the next number using a least-recently-used round-robin (the number that hasn't sent in the longest wins the next send)
- Numbers at or over their daily cap are skipped until midnight resets the count
- Each contact's reply lands back on the number that texted them — so threading stays consistent per contact
- If a number gets disabled (carrier suspension, you toggle it off), its share of the queue is redistributed to the remaining healthy numbers automatically
You don't pick the rotation order — Direct REI does it. Just keep all the numbers you want in rotation enabled.
One number per contact — the number they know you as
Rotation balances load across contacts. Within a single contact, the opposite rule applies: they should keep hearing from the same number. Getting a text from a fourth unknown area code is how a real lead decides you're a spammer.
So every contact remembers one number, set the first time you reach out and used by default from then on — for both texts and calls. If they've replied, that's the number they replied to; otherwise it's the last number you contacted them from. Calling a lead and then texting them later uses the same number they already have in their phone.
You can always override it, and when you do, the app says so rather than letting it slip past:
- Picking a different number in any From dropdown shows an inline note — "⚠ This will send from (512) 555-0143, but they know you as (713) 555-0198" — with a one-click Use theirs link.
- Dialing from a different number pops a one-time warning per contact per session (not once per call — a deliberate rotate-through-numbers run shouldn't be a wall of toasts).
Both stay silent when there's nothing to act on: when you haven't contacted them yet, when the number matches, or when their number isn't usable in that context (texted from Quo, calling through Telnyx).
One gap worth knowing: calls handed to your computer's phone app or the Quo app don't record a number, because the operating system or provider picks the caller ID and a guess would be worse than nothing. In-browser calling always records it.
Local caller ID (Oliver)
If you have Oliver build an SMS campaign for a specific state, he restricts it to whichever of your numbers are local to that state — a Texas campaign texts from your Texas area codes. If none of your numbers match, or if all of them do, he leaves rotation wide open and tells you which happened rather than quietly shrinking your capacity.
Area codes are a hint, not proof — numbers are portable — so the worst case is a less-local sender, never a missed send.
5. Per-number daily caps
Each Quo account row has its own daily_limit. The technical 10DLC ceiling for a Low Volume Standard campaign is ~6,000 messages/day per number — you'll never get close to that. The real ceiling for cold real-estate texting is opt-out rate (T-Mobile auto-throttles if you exceed 0.5%), so build reputation slowly:
- Days 1-7 (warmup): 30-50/day per number
- Days 8-14 (ramp): 50-100/day per number
- Day 15+ (sustainable): 100-150/day per registered (10DLC-approved) number — this is the carrier-safe target
- Day 30+ (push tier, monitor opt-out weekly): 150-200/day if your opt-out rate stays under 0.5%
- Unregistered numbers: stay at 50/day max — carrier filtering on unregistered traffic is aggressive
Total daily capacity across all your numbers = sum of their individual caps. Three warmed numbers at 150/day gives you 450 SMS/day of sustainable capacity — enough for serious campaign volume.
6. Outbound calls also rotate
The same number rotation applies to outbound calls placed through the dialer (when you route calls through Quo desktop instead of your phone's native dialer). Calls show "from" whichever number won the rotation for that contact.
Which of the contact's numbers gets the text
Everything above is about your numbers. Separately, each contact can hold up to three phone numbers — a primary plus two more, which is what skip tracing usually returns.
By default campaigns text the primary and nothing else. To change that, open the campaign's sequence editor and use the Send texts to dropdown (SMS campaigns only):
- Number 1 (primary) — default — the standard choice, and what every existing campaign keeps doing.
- Number 2 only / Number 3 only — texts that slot instead. Contacts without a saved number in that slot are skipped when enrolling and sending, so the campaign quietly stays smaller than your list.
- All saved numbers — one text each — every step texts every number the contact has.
Texting a specific number by hand
Anywhere you can text a contact — the dialer's text box, their contact card, the Inbox — a To picker appears when they have more than one number, defaulting to whichever they last replied on. Contact cards also show a 💬 beside each saved number to text that one directly.
You can only send to a number saved on that contact — arbitrary numbers aren't allowed, because their opt-out status and consent are tracked per contact.
When to NOT add more numbers
- You're under 50 sends/day total. Rotation has nothing to balance.
- You haven't completed 10DLC registration on your first number yet. Get one number fully approved before duplicating the work.
- You don't have separate use cases. Two numbers both blasting cold outreach to the same lists offers no advantage over one number — same recipients, same risk.
Removing a number
Settings → Phone → row's 🗑 Delete button. The audit trail (sms_logs) stays — only the connection is removed. Pending outbound queue items belonging to that number get redistributed across the remaining numbers automatically.
What's next
Once you have rotation set up, head to Reading cross-channel attribution to see which campaigns and numbers are producing the most replies.