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

# Twilio

> Connect Twilio so Verify phone workflow steps can check a person's phones and store each one's phone status and line type.

## What This Integration Does

Twilio checks phone numbers. Connecting it lets a workflow's [Verify phone step](https://docs.revyops.com/user-guide/workflows.md#verify-phone-step) look up every phone a person has with [Twilio Lookup](https://www.twilio.com/docs/lookup/v2-api) and store what it learns on the contact: a **Phone Status** and a **Phone Line Type**. The phone itself is never changed.

Twilio is connected per workspace. Each workspace connects its own Twilio account, and Twilio bills that account for each phone checked.

> [!NOTE]
>
> Twilio only appears on the Integrations page when Workflows access is switched on for your agency, because it is used by workflow steps only.
> A super admin can switch Twilio off for an agency. Its tile then shows "Upgrade to Enterprise to Access" and Verify phone steps on Twilio stop with "Twilio is not available on your plan. Ask your agency admin."

## Setup

**1. Get a key**

Sign in at **console.twilio.com** and open **Account**, then **API keys & tokens**. Create an API key and copy its SID (it starts with `SK`) and its secret. The Account SID (`AC…`) and Auth Token work too.

**2. Open the integration**

Go to **Settings → Integrations**, find the **Data Providers** section and open **Twilio**.

**3. Save the key**

Paste the SID and the secret and click **Save key**. RevyOps saves them, then checks them with a basic Twilio lookup, which costs nothing, and shows **Key saved and checked.** If Twilio refuses them or can't be reached, they are still saved and the panel says what went wrong.

The panel shows **API key connected** once a key is saved. Click **Remove**, then **Remove key** to confirm, to delete it; Verify phone steps for that workspace then stop with "No Twilio API key connected" until Twilio is connected again. The **Connect Twilio** link on a Verify phone step opens this panel directly.

## What It Costs

| Check | What it tells you | Twilio's price per phone |
| - | - | - |
| Basic validation | Whether the number is a real, well-formed number | Free |
| Line type | Mobile, landline, VoIP or another kind of line | \$0.008 |
| Line status (beta) | Whether the carrier has the line in service and reachable | \$0.007 |

Every Verify phone step checks the line type. Line status is checked only when the step's **Also check line status (beta)** is on. Prices are Twilio's list prices; your Twilio account may differ.

## Phone Status

| Phone Status | Means |
| - | - |
| **Valid** | A real number. With line status on, also in service (`active` or `reachable`) |
| **Unreachable** | Line status on: the number is in service, but the phone is switched off or out of reach |
| **Invalid** | Not a real number, or line status says it is no longer assigned (`inactive`) |
| **Unknown** | Line status on, and the carrier could not tell; Twilio has no line type for the number (it may not be in use); or the phone is stored without a country code (no `+`), so Twilio can't tell which country it is |

| Twilio line type | Phone Line Type |
| - | - |
| `mobile` | Mobile |
| `landline` | Landline |
| `fixedVoip`, `nonFixedVoip` | VoIP |
| Anything else, such as `tollFree` or `pager` | Other |

Twilio's own words are kept beside each result. Twilio needs approval before it returns the line type of Canadian numbers; without it, a Canadian phone keeps its Phone Status with no line type, and the step's result says why.

## When Twilio Says No

| Twilio answer | What happens |
| - | - |
| The SID or secret is refused | The step fails with "Twilio refused the credentials. Reconnect Twilio under Integrations." |
| Too many requests, or Twilio is down | The step waits and tries again |

Phones checked before a failure are stored, so a retry with **Only phones not checked yet** on doesn't pay for them twice.


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