---
title: "Get outbound calls answered"
description: "Keep your numbers from being labeled spam and get more people to pick up, for calls placed through the API and through campaigns."
---

Carriers decide whether your call shows your business name, a plain number
or "Spam Likely". People decide whether to pick up. The label depends
mostly on how each number calls, so most of what helps is in your hands.

## How carriers judge a number

Three analytics companies score US calls for the big carriers: Hiya for
AT&T, TNS for Verizon and First Orion for T-Mobile. They don't publish
their scores, but they weigh the same signals:

- How many calls a number places a day, and whether they come in bursts.
- How many calls end within seconds, and how often a person answers.
- Complaints from the people you call.
- The STIR/SHAKEN attestation on each call, and whether the number is
  registered with them.
- Whether the number takes calls back.

Whether someone picks up also depends on a local area code, a name they
recognize, knowing you'll call, the time of day, and getting past iPhone
Call Screening and Pixel Call Screen.

## Which levers apply to your calls

Some protections apply to every outbound call, whether you place it with
[`POST /v1/call`](/guides/place-outbound-calls) or run a
[campaign](/guides/outbound-campaigns). Others are campaign settings, and
with the API you do the same thing in your own code.

| Lever | Calls through `POST /v1/call` | Campaigns |
|---|---|---|
| 14-second minimum ring | Automatic | Automatic |
| Who answered (`answered_by`) and number health | Yes | Yes |
| Callbacks reach an agent with context | Yes | Yes |
| Caller name and carrier registration | Yes, per number | Yes, per number |
| Voicemail handling | Agent setting | Agent setting |
| Call screener handling | Automatic | Automatic |
| Local area code | You choose the `from_number` | The pool picks one per contact |
| Calls per number per day | You pace your own volume | **Calls per number per day**, with warm-up |
| Contact's local calling hours | You schedule | **Call in each contact's local time** |
| Retries on other days and times | You schedule | **Spread across days and times of day** |
| One quick redial after a ring-out | You redial | **Call twice when there's no answer** |
| A heads-up text | Send with [`POST /v1/sms`](/api-reference/sms) | **Text before calling** |

## Keep each number's daily volume low

Volume per number is the signal you control most directly. Spread your
calls across several numbers instead of pushing them all through one, and
make each of them a number people can trust: caller name set, registered,
and taking callbacks. A large pool of bare numbers reads as evasion.

- [Number health](#watch-each-numbers-health) marks a number **Watch** at
  over 50 calls on its busiest day and **At risk** at over 100, so a
  number used near the campaign default of 75 shows **Watch**.
- Campaigns cap each number at 75 calls in any 24 hours by default
  (**Calls per number per day**, 1–500). The count includes every
  outbound call from that number in your organization, API calls too.
  When every number is at its limit, contacts wait; nothing fails.
- A ThunderPhone number new to outbound calling warms up in campaigns: 20
  calls on its first day, rising to the full limit by day 7.
- No per-number cap applies to API calls. Count calls per
  `from_number` over the last 24 hours and stop well before 100. Don't
  send a whole list from one number in a few minutes.

Size the pool to the list so each number stays under the limit. See
[number pools](/guides/outbound-campaigns#number-pools-and-daily-limits).

## Call from a local number

People answer a familiar area code more often than a distant one.

- **Campaigns** call a new contact from a pool number with the contact's
  area code, else one in the same time zone, else the least used number.
  Retries come from the number that called before.
- **With the API**, keep numbers in the area codes you call most, choose
  the `from_number` that matches the contact, and use the same number
  for every call to that person.

## Show who's calling

Find these on **Phone Numbers**, in the **Caller ID and spam registration**
section. They are free. See
[Caller ID and spam registration](/guides/caller-id-and-spam-registration)
for the steps.

- **Caller name (CNAM).** ThunderPhone numbers show your organization's
  caller name automatically, up to 15 letters, numbers and spaces, once
  your organization has a real name (not the generated "…'s Team"). Numbers
  in your own Twilio or Telnyx account get one when an admin registers
  them. Carriers take 1 to 3 days, and landlines show it more reliably
  than mobile phones. Caller names work on US local numbers only, not
  toll-free.
- **Verified caller ID (STIR/SHAKEN).** Carriers sign each call **A** when
  they know you own the number. Lower attestation gets labeled spam more
  often. Calls from ThunderPhone numbers are signed A. On Twilio,
  registering a number for verified caller ID gets its calls signed A.
  On a manual SIP trunk, ask your carrier for A attestation. Each number's
  health panel shows the attestation to expect.
- **Spam-filter registration.** On Twilio, an admin can have ThunderPhone
  register numbers with the carriers' spam analytics through Twilio Voice
  Integrity; it needs an approved Primary Business Profile. For
  any other number, register it yourself at
  [freecallerregistry.com](https://www.freecallerregistry.com), the free
  registry Hiya, TNS and First Orion share.

## Tell people you're going to call

A person who expects your call is more likely to pick up. A short text a few minutes before
the call, from a number they can see is yours, does that. Only text people
who agreed to it: texts fall under the same consent rules as calls.

- **Campaigns** can text each contact before the first call. Turn on
  **Text before calling**, pick one of your Twilio or Telnyx numbers, and
  set the minutes before the call (1–60, default 2). Retries are never
  texted, and a text that fails never holds up the call. See
  [Text before you call](/guides/outbound-campaigns#text-before-you-call).
- **With the API**, send the text with [`POST /v1/sms`](/api-reference/sms)
  from your Twilio or Telnyx number, then place the call.

ThunderPhone numbers cannot send texts. A US local number needs A2P 10DLC
registration before it can text.

Ask people to save your number. iPhone Call Screening and Silence Unknown
Callers skip numbers in the contact list.

## Call when people pick up

- **Call in the contact's local hours.** Campaigns do it by default: **Call
  in each contact's local time** runs the window by each contact's area
  code. With the API, work out the contact's time zone and schedule the
  call yourself. US marketing calls must fall between 8am and 9pm local
  time; see [outbound calling compliance](/guides/outbound-calling-laws).
- **Retry on another day at another time.** Someone who missed a 10am call
  may be free mid-afternoon. Campaigns spread retries this way by default
  (**Retry timing** → **Spread across days and times of day**). With the
  API, don't redial an unanswered number on a fixed short loop.
- **Redial once, quickly, after a ring-out.** On iPhone, a second call
  from the same number within three minutes rings through Do Not Disturb
  when Allow Repeated Calls is on. Campaigns do this with **Call twice when
  there's no answer**. Never redial more than once, and never after a
  declined call or voicemail.

## Make every call look like a real call

Carriers read short rings and very short calls as robocalls.

- **Let it ring.** Outbound calls ring for at least 14 seconds, whatever
  the agent's **Ring duration**. A call that rings once and drops is what
  one-ring scams do. A shorter setting applies to transfers only, and the
  builder says so.
- **Avoid very short calls.** Number health counts answered calls under
  10 seconds. Have the agent speak first (the default) and open with who
  is calling and why, so the person stays on the line.
- **Leave a voicemail.** People call back numbers that leave a message,
  and callbacks help the number's standing. Under **When voicemail
  answers**, **Let the agent decide** (the default) leaves a short message
  written from your prompt unless the prompt says not to, and **Leave a
  message, then hang up** plays the message you set. **Hang up silently** leaves nothing, and the builder
  warns about it. See [voicemail handling](/guides/agent-settings#voicemail-handling).
- **Get past call screeners.** When iPhone Call Screening or Pixel Call
  Screen answers, the agent states its name and the reason for the call
  in a sentence, then waits for the person. Put your business name and
  the purpose of the call near the top of the prompt so the agent has
  both.

## Take calls back

A number that takes calls back looks like a real business, and a returning
caller is your warmest lead.

When someone calls back a number that called them in the last 30 days,
the answering agent gets a short note on the earlier call: when, which
agent and what happened. If the number has no inbound agent and no
webhook answers, the call goes to the agent that placed the earlier call
instead of ending. This works for API and campaign calls alike.

Give every outbound number an inbound agent or a route you choose.
Caller ID can be faked, so the earlier call's summary and variables are
shared only if an admin turns on **Share the earlier call's details**
under **Organization → General → Callbacks**. See
[callbacks to your outbound calls](/guides/handle-inbound-calls#callbacks-to-your-outbound-calls).

## Watch each number's health

On **Phone Numbers**, each number that placed outbound calls in the
last 30 days shows
**Healthy**, **Watch** or **At risk**. Open **Outbound health** for calls
per day, how often a person answered, voicemail rate, short calls and
short rings over the last day, week and month, with the reasons in plain
English. The status covers the last 7 days, and needs at least 20 calls
before it judges the answer rate and 10 before it judges short calls or
short rings. The same data is at
[`GET /v1/phone-numbers/health`](/api-reference/phone-numbers#outbound-number-health).

| Reason | Watch | At risk |
|---|---|---|
| Calls a day from one number | Over 50 | Over 100 |
| Calls that reach a person | Fewer than 1 in 5 | Fewer than 1 in 10 |
| Answered calls under 10 seconds | Over 30% | Over half |
| Unanswered calls that ring under 12 seconds | Over half | — |

Each outbound call also records who answered as `answered_by`: `human`,
`voicemail`, `screener`, `ivr` or `unknown`. It is on the
[call](/api-reference/calls#call-object), in the completion webhook and
under **Answered by** in call history.

Health reads the same signals carriers use from your own calls. It is a
guide, not any carrier's actual label.

## When a number gets labeled spam

You'll usually see it first as a falling answer rate, a number marked
**At risk**, or people telling you their phone showed "Spam Likely".

1. **Slow down or stop calling from it.** Lower its daily volume, or take
   it out of the campaign pool.
2. **Fix the cause.** Check its health reasons: too many calls a day, too
   many short calls, or too few people answering.
3. **Register it.** Set a caller name and register the number with the
   spam filters as above, or at
   [freecallerregistry.com](https://www.freecallerregistry.com). If the
   label stays, ask the analytics company behind that carrier (Hiya, TNS
   or First Orion) to review the number.
4. **Retire it if the label stays.** Once you've fixed the cause, release
   the number and replace it, and call from the new one at a pace that
   keeps it healthy.

Don't rotate fresh numbers in to hide a labeled one. A pool is for pacing
and local area codes, not for dodging labels. New numbers that call the
same way get labeled the same way.

## Stay within the law

Consent, calling hours and do-not-call rules apply to every outbound call
and text. Read [outbound calling compliance](/guides/outbound-calling-laws)
and talk to your counsel about your calling program.

---

## Next steps

<CardGroup cols={2}>
  <Card title="Outbound campaigns" icon="megaphone" href="/guides/outbound-campaigns">
    Number pools, local calling hours, spread retries and texts.
  </Card>
  <Card title="Place outbound calls (API)" icon="phone-arrow-up-right" href="/guides/place-outbound-calls">
    Call one person at a time from your own code.
  </Card>
  <Card title="Caller ID and spam registration" icon="shield-check" href="/guides/caller-id-and-spam-registration">
    Show your business name and register your numbers.
  </Card>
  <Card title="Outbound calling compliance" icon="scale-balanced" href="/guides/outbound-calling-laws">
    Consent, calling hours and do-not-call rules.
  </Card>
</CardGroup>
