> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rescueconsole.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Twilio

> Calls and texts to the rescue's own number, through your organization's own Twilio account: setting it up, and what is left to do.

Your organization uses its own Twilio account for the rescue's phone number. You pay Twilio for the number, the calls and the texts, and the number and its registrations are yours. RescueConsole connects to the account, points the number here, and reads back from Twilio what is left to set up.

Open **Settings → Communications → Phone and text**. Only an organization admin can connect Twilio or change how it is set up. Anybody else who opens the page sees the rescue's number.

## Before you start

1. Create a Twilio account at [twilio.com](https://www.twilio.com/try-twilio).
2. Upgrade it from the free trial in the Twilio Console, under **Billing**. A trial account can call and text only the numbers you have verified in Twilio, and says it is a trial on every call.
3. Buy a number in the Twilio Console, under **Phone Numbers**. Choose one that can take calls and send texts. A local number is registered for texting with A2P 10DLC; a toll-free number (800, 833, 844, 855, 866, 877 or 888) with toll-free verification instead. See [Register for texting](#register-for-texting).

## Connecting

On **Phone and text**, enter:

| Field | Where it is |
| - | - |
| **Account SID** | The Twilio Console, under **Account Info**. It starts with AC. |
| **Auth Token** | The same place: press **Show** beside it. |

Press **Connect**. RescueConsole asks Twilio whether they are right before keeping them, and makes an API key called RescueConsole in your account for its everyday requests. The Auth Token is needed as well because Twilio signs every call and text it sends to RescueConsole with it, and that signature is how RescueConsole knows a call really came from your account. Both are kept encrypted and are never shown again.

One Twilio account can be connected to one rescue.

## Choosing the rescue's number

The page lists the numbers on your Twilio account. Under each one it says whether it takes calls and texts, and where its calls go now, such as a Twilio Studio flow or another system.

| Choice | What it means |
| - | - |
| The number | The rescue's number. Its calls and texts come to RescueConsole from now on. |
| **Texts go through** | A Messaging Service, which is how Twilio sends texts from a number. Choose **A new Messaging Service, made for RescueConsole**, or one you already have. If you registered for texting in Twilio already, choose the Messaging Service you registered: the registration belongs to it. |

Press **Use this number**. Before you do, the page says that calls and texts to the number will come to RescueConsole instead of where they go now. What the number and the Messaging Service pointed at before is kept, so that disconnecting puts them back.

To use a different number, press **Change** beside it.

<Note>
  Texts to the number arrive in the inbox (see [Texts](#texts)). Calls go to the queue chosen under [Calls](#calls); until one is chosen, a caller hears that the number is not taking calls yet.
</Note>

## What is left to do

The page reads each step's state from Twilio when you connect, choose a number, or press **Check again**. Each step says **Done**, **To do**, **Waiting on Twilio**, **Needs attention** or **When needed**, with what to do next.

| Step | What it checks |
| - | - |
| **Twilio account** | That the account is active and upgraded from the trial. |
| **The number** | That a number is chosen, is still on your account, and still answers here. If somebody points it somewhere else in the Twilio Console, this says so: choose the number again to bring it back. |
| **Register for texting** | Your A2P 10DLC campaign, or your toll-free verification. |
| **Emergency address** | An emergency address on the number. Needed only once people can call out from an extension, and each extension that calls out gets its own number and address then. |

**This month at Twilio** is what Twilio says the account has cost so far this month.

### Register for texting

US carriers block texts from numbers that are not registered. You register in the Twilio Console, under **Messaging**, **Regulatory compliance**.

**A local number: A2P 10DLC.** You register the rescue as a brand, and the Messaging Service as a campaign: what the texts are for, with examples.

* A 501(c)(3) registers its brand as a **US Non Profit**. Twilio checks the status against IRS records, and a 501(c)(3) can then choose the **Charity** campaign use case, which carriers charge less for.
* A rescue that is not a 501(c)(3) registers as a **Standard** brand. Without an EIN, the **Sole Proprietor** brand allows one campaign and fewer texts a day.
* Campaigns are taking 10 to 15 days to review.
* As of October 2026, Twilio's figures: brand registration $4.50, campaign vetting $15, then $3 a month for a Charity campaign or $10 a month for a Standard one. Check Twilio's own pages for today's.

**A toll-free number: toll-free verification.** Submit it in the same place. Twilio asks for the rescue's EIN.

While Twilio reviews either one, the step says **Waiting on Twilio**. If it fails review, Twilio says why in the Console: correct it there and submit it again.

## Texts

A text to the rescue's number is a conversation in the [inbox](/communications/inbox#texts), beside the email, and is answered by text from there. Under **Texts** on **Phone and text**, choose which inbox **Texts arrive in**: the default inbox unless you choose another. Who can read the inbox can read its texts.

### Consent

Nobody is texted first unless they have agreed to texts. Consent belongs to the phone number, and it is recorded with how it was given and in what words:

* **On a person's record**, under **Texts**, somebody whose role can change People presses **Record their consent** and says how they agreed, such as "Asked at the adoption event on Saturday". See [the person record](/people/record#texts).
* **By the person themselves**, when they turn on [Notifications by text](/settings/your-account#notifications-by-text) for their own account.
* **By texting START** to the rescue's number.

Somebody who texts the rescue can always be answered: they asked.

A number that texts **STOP** (or UNSUBSCRIBE, CANCEL, END, QUIT) is not texted again by anybody, until it texts **START**. Twilio replies to STOP and HELP itself. Nobody on the team can undo a STOP; only the number can.

### How long a text is

A text is sent in segments of 160 characters, or 70 when it has an emoji or a character outside the plain alphabet, and Twilio charges by the segment. The box under a text conversation counts them as you type. A text longer than ten segments is refused.

## Queues

A queue is an inbox that answers calls and texts: Adoptions, Surrenders, Lost and found. Under **Queues** on **Phone and text**, choose an inbox in **Make an inbox a queue** and press **Make it a queue**. Changing a queue needs **Configure** on Communications. Its conversations stay the inbox's: who can read the inbox decides who sees them.

Each queue says **Answering now** and who, **Open, nobody answering**, or **Closed now**. **Change** opens it:

| Setting | What it means |
| - | - |
| **Who answers** | People, and roles (everybody who holds one). Only somebody who can read the inbox can be added: answering a queue you cannot read is answering blind. |
| **And whoever is on a shift of** | A volunteer role, such as Phones: whoever is booked on a shift of it right now answers too, so the shift rota decides who picks up. |
| **When it is open** | The days it is open and the hours, in your organization's time zone, and the days it is closed (holidays). With no days ticked it is always open. |
| **Ring for** | How long a call rings the people answering, 10 to 60 seconds. |
| **Callers wait at most** | How long a caller waits for somebody, up to 15 minutes. |
| **When nobody answers** | **Take a voicemail**, **Try another queue**, or **Play the closed message and hang up**. |
| **The voicemail greeting** | With **Take a voicemail**: words said in the rescue's [voice](#the-voice), or one of your [recorded greetings](#recorded-greetings). |
| **Record calls to this queue** | Off unless you switch it on. See [Recorded calls](#recorded-calls). |
| **A text waits too long after** | Minutes, after which a text nobody has taken is marked **waiting too long** in the inbox. |
| **What callers hear when it is closed** | Said to a caller outside the hours. |

A call to a queue rings everybody answering at once, and the first to pick up takes it. Somebody who says they are **Away** or **Off** in the [inbox](/communications/inbox#answering-a-queue) is not rung, whoever named them.

## Calls

Under **Calls** on **Phone and text**, choose the queue **Calls go to**. A call to the rescue's number then rings everybody answering that queue, every way each of them answers, all at once, and the first to pick up takes it. Twilio rings at most ten at a time: a queue with more people answering rings them ten at a time, in turns.

When nobody picks up in the queue's ring time, the caller hears "Everybody is still busy. Please stay on the line, or press 1 and we will call you back", and the queue rings again, until the caller has waited as long as the queue allows. Then what the queue says happens when nobody answers: the caller can leave a [voicemail](#voicemail), the call tries another queue, or the caller is told to call again later or send a text. Pressing 1 puts a conversation called **Call them back** in the queue's inbox, with the caller's number.

Outside the queue's hours, a caller hears the queue's closed message, and then, when the queue takes a voicemail, can leave one.

Every call is kept: who called (matched to a person by their number), which queue, who answered, how long it lasted and how it ended. See [The call log](#the-call-log).

## The call log

**Calls**, beside **New message** in [Communications](/communications/inbox), lists every call in and out: who it was with, the queue it came to and the way it went through the [phone menu](#the-phone-menu), who answered or placed it, how long it rang and lasted, and how it ended (answered, missed, hung up waiting, left a voicemail, asked to be called back, closed). A call to a queue is shown only to somebody who can read that queue's inbox. A [recorded call](#recorded-calls) has its recording and its words, for whoever may hear it, and a voicemail its words and a link to it.

A call from a number that is exactly one person's is filed against them, and appears in **Calls** on their record. A number nobody has says **Unknown number**: **Link to a person** files that call, and every earlier call from the same number, against the person you choose; **Add a person** makes a new person with the number first.

Anybody who can answer mail can **Add a note** to a call. When a call ends on the browser phone, it asks for one straight away; **No note** closes it.

While a call rings in the browser, the phone shows who it is and what is open with them: their open applications and the animals on them, the animals they adopted or are fostering, and when you last spoke, by phone or in a conversation you can read. Applications and animals are shown only to somebody who can see animals.

For reports, **Calls** is a dataset under Everyday in [your own reports](/everyday/reports#what-you-can-report-on), for admins: calls by queue and hour, how they ended, and seconds to answer.

## Voicemail

A caller leaves a voicemail:

* in a **queue's box**, when nobody answers it or it is closed, if the queue says **Take a voicemail**;
* in a **person's own box**, when their extension is not answered, unless they turned it off under [Voicemail](/settings/your-account#voicemail) in their account;
* at a **Take a voicemail** step in the [phone menu](#the-phone-menu), in the language the caller chose.

A message is up to three minutes; the caller presses the pound key when they have finished. RescueConsole keeps the recording and deletes it from your Twilio account, so it is kept under your organization's own permissions.

Each voicemail is a conversation in the queue's [inbox](/communications/inbox#voicemail), with **Play the voicemail**, the words it said, and a button to call the caller back. It is linked to the caller when their number belongs to exactly one person. A voicemail in a person's own box goes to the inbox calls go to, assigned to them, so whoever can read that inbox can see it.

The words are written out by Cloudflare's speech recognition (Whisper) within a minute or so, in English, or in Spanish when the caller chose Spanish in the menu. A recording with no clear words says so; it can still be played.

Everybody named as answering the queue (people, and everybody holding a role named, but not people only on a shift), or the person whose box it is, is told: in the bell, and by email, by text or both, as each chooses. The email and the text carry the words.

### Missed calls

Under **Missed calls** on **Phone and text**: a caller nobody answered, who left no voicemail and did not ask to be called back, is sent a text a few minutes after the call ends. It is on once texting is set up, and **Configure** on Communications turns it off or changes its words. The default is "Sorry we missed your call to" your organization's name, "Reply here and we will get back to you."

It goes at most once a day to a number, and never to a number that replied STOP. A landline cannot receive it; Twilio refuses it and nothing is sent. Their reply is a conversation in the inbox of the queue they called.

## Recorded calls

Recording is off until you switch it on, for a queue (**Record calls to this queue**) or for a person (**Record their calls** under [Extensions](#extensions), their calls in and out). Switching it on needs **Configure** on Communications.

A recorded call says "This call is recorded." before anybody is rung, and a call out says it to the other side when they answer. Some states require everybody on a call to agree to it being recorded; saying so first is how they are told, and nothing is recorded that was not announced. A call to 911 is never recorded.

Recording starts when somebody answers: in the browser or on a SIP phone, when they pick up; on a mobile, when they press 1, so their own voicemail is never recorded as the call. While it is recorded, the phone in the corner says **Recording**: **Pause recording** while somebody reads out a card number, and **Resume recording** after. Only the person on the call, or an admin, can pause it.

When the call ends, RescueConsole keeps the recording and deletes it from your Twilio account. It is written out with who said what: the caller and the rescue are recorded on separate channels, and each is written out on its own.

Under **Recorded calls** on **Phone and text**: **Play the recording**, and what was said, line by line. Only the queue's people, whoever answered, and admins can hear a recording or read it, and every time somebody plays one is kept: admins see **Who listened**. Recordings are kept for 90 days unless an admin changes **Keep recordings for**, then deleted.

## The phone menu

The phone menu is what a caller hears and chooses before a call rings anybody: a greeting, a menu of choices, opening hours, a language. Open it from **Phone menu** on **Phone and text**. Changing it needs **Configure** on Communications. Until a menu is published, calls go to the queue chosen under [Calls](#calls).

**Start from the rescue starter menu** gives you one to change. It thanks the caller, tells anybody whose animal is in danger to hang up and call 911 or animal control, checks the queue's hours, and offers adoptions, giving up an animal, a lost or found pet, the surrender form by text, and an extension. Every choice starts at the same queue: point each at the queue it belongs to, and put your surrender form's link in the text.

A menu is a list of steps. Each has a name, and says what it does and where the call goes next:

| Step | What it does |
| - | - |
| **Say something, then go on** | Says the words, then goes to the next step. |
| **Play a recorded greeting** | Plays one of your [recorded greetings](#recorded-greetings), then goes to the next step. |
| **A menu: press a key or say a word** | Says the choices and waits. Each choice has a key, a name, words a caller may say instead (such as "adopt"), and the step it goes to. If the caller chooses nothing, the menu is said once more, then the call goes where **Nobody chooses** says. |
| **Open or closed, by a queue's hours** | Goes one way while the queue is open, another while it is closed. |
| **Choose a language** | English or Spanish. Everything after it is said in the language chosen. |
| **Ring a queue** | Rings everybody answering that queue. |
| **Ring an extension** | Rings one person. |
| **Dial an extension** | Asks the caller for an extension and rings it. |
| **Take a voicemail** | For a queue that takes voicemail. |
| **Text the caller a link** | Texts the caller, such as your surrender form's link, then says the words and goes on. |
| **Say goodbye and hang up** | Ends the call. |

**Save the draft** keeps the menu as it is and lists anything to fix. **Publish** makes it the menu calls get, once there is nothing to fix: no step going to a step that does not exist, no step leaving the caller with nowhere to go, no queue or extension that does not exist, and no way round in a circle without the caller being asked anything. Each publish is a new version; a call that began on the old one finishes on it. **Try it on my mobile** rings your own mobile (from [My phone](/settings/your-account#my-phone)) into the draft, so you can hear it before callers do. **Stop using the menu** sends calls to the queue chosen for calls again.

**Answer the first text of a conversation with this menu's choices**: when it is ticked, somebody who texts the rescue for the first time is sent the menu's choices that ring a queue, such as "Reply 1 for Adoptions, Reply 2 for Surrender". Their reply moves the conversation into that queue's inbox, and the rest of it stays there.

## The voice

The menu speaks in the voice chosen for each language, under **Voice** on **Phone and text**. Choosing needs **Configure** on Communications. The voices are Twilio's own, in three kinds that Twilio charges differently for each time words are said, so a long greeting in a generative voice costs more on every call. As of October 2026, per 100 characters:

| Kind | Cost per 100 characters |
| - | - |
| Standard | \$0.0008 |
| Neural | \$0.0032 |
| Generative | \$0.013 |

Twilio has no way to hear a voice without a call, so hearing one is a call:

* **Play a sample**, on a computer with the browser phone, plays your menu's greeting in that voice through your computer's speakers.
* **Call me to hear it** rings your own mobile (from [My phone](/settings/your-account#my-phone)) and says it.

Neither calls anybody else.

### Recorded greetings

A recording of your own voice, played by a **Play a recorded greeting** step in the menu. Under **Recorded greetings** on **Phone and text**:

* **Upload** an MP3 or a WAV file of up to 5 MB, with a name.
* **Record by phone** rings your own mobile: speak after the tone and press the pound key. It is kept as soon as you hang up.

A greeting a menu plays cannot be deleted until it is taken out of the menu.

## Extensions

Under **Extensions** on **Phone and text**, give each person who answers calls an extension of 3 or 4 digits, and say how it rings them:

| Way | What it means |
| - | - |
| **In the browser** | The phone docked in the corner of RescueConsole rings while they are signed in on a computer. Twilio says a phone's browser cannot keep a call going in the background, so this is for a computer. |
| **Their mobile** | Calls are forwarded to their own mobile. Before a call is put through it says "Call for Adoptions, press 1 to take it", so the mobile's voicemail cannot answer for everybody. |
| **On a SIP phone** | A desk phone, or a SIP app on a mobile (one that can wake for calls when closed, such as Groundwire). Ticking it makes a username and a password for the phone, at the rescue's own SIP address in Twilio. The password is shown once: put it in the phone then. **Make a new password** replaces it. |

Only somebody on the team, who signs in, can have an extension, and two people cannot share one. Giving and changing extensions needs **Configure** on Communications. Each person can also change how calls reach them under [My phone](/settings/your-account#my-phone).

### Calling out

An extension can be let call out, from the browser phone, a SIP phone, or by calling through the rescue from a mobile. Calls show the rescue's own number.

**Let this extension call out** (under the extension, for somebody with **Configure** on Communications) buys the extension a number of its own in your Twilio account, and registers an emergency address on it. Choose the address the person calls from: their address on record, one of the rescue's locations, or another. Twilio checks it against the official street database, and says so if it cannot find it; nothing is bought until it can. As of October 2026, the number costs about $1.15 a month and its emergency address $0.75 a month, billed by Twilio. Give an area code to choose where the number is from, or it is in the rescue's own. **Stop calling out** releases the number and its address.

**911.** Your organization operates this phone system, in its own Twilio account, so the rules for 911 from a system like this are its to meet (Kari's Law and RAY BAUM'S Act). RescueConsole does what they ask:

* An extension that calls out dials **911** directly, with no prefix and no menu.
* 911 goes out from the extension's own number, so the dispatcher gets its emergency address, and calling that number back rings the same person.
* When the browser phone starts, it asks **Where are you calling from?**: **Yes** if they are still at the address on file, or **I am somewhere else** to give the address they are at. A new address is registered at Twilio and the number pointed at it.
* The organization's admins are emailed at once, saying who called 911, from which extension and address.

An extension that does not call out cannot call anybody, 911 included. Make sure everybody answering in the browser has a mobile or a landline to hand for an emergency.

**Calling through the rescue** is for somebody whose calls ring their mobile: **Call** beside a person's number rings their own mobile first, and when they answer, connects them to the person, who sees the rescue's number. A 911 call from a mobile is the mobile's own, so it is never made this way.

### Answering in the browser

When a call rings, the phone in the corner says who it is (a person's name when the number is theirs and you can see people, otherwise the number) and which queue it came to. **Answer** or **Decline**. During the call: **Mute**, **Hang up**, and **Transfer**, which hands the call to another extension or a queue and takes it off your phone. A [recorded call](#recorded-calls) also has **Pause recording**.

When your extension calls out, **Call** in the corner opens a box for a number or an extension. A call to a number shows the rescue's number.

## Costs

Twilio bills your organization directly. As of October 2026, a text in or out within the US is \$0.0083 per segment, plus a small carrier fee. A segment is 160 characters, or 70 when the text has an emoji or a character outside the plain alphabet. Calls and the number itself have their own prices at Twilio.

## Changing the Auth Token

If you change the Auth Token in Twilio (in the Console, under **Account Info**), every call and text stops reaching RescueConsole until you enter the new one. On **Phone and text**, press **Changed the Auth Token in Twilio? Enter the new one** and save it. RescueConsole asks Twilio whether it is right before replacing the old one.

## Disconnecting

**Disconnect Twilio** asks first. Then the number's calls go back to where they went before you chose it, a Messaging Service of yours goes back to its own address, and RescueConsole's API key is deleted from your account. A Messaging Service RescueConsole made is left in your account, because a texting registration may belong to it.

If Twilio does not let RescueConsole put something back, the page says what to check in the Twilio Console.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.