> For the complete documentation index, see [llms.txt](https://help.peoplevine.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.peoplevine.com/products/integrations-overview/setup-twilio.md).

# How to Set Up Twilio

### Before you begin (Prerequisites)

* **Permissions**: You must be an **Administrator** or **Supervisor**. See: [How to Manage Users and Permissions](/products/control-panel-overview/admin-overview/manage-roles-permissions.md).
* **Twilio account** upgraded from trial with billing info added.
* **Twilio phone number** purchased with SMS capability.
* **Twilio credentials**: Account SID, Auth Token, and Address SID (if applicable).
* **US sending only**: A2P 10DLC brand and campaign must be approved before you can send compliant traffic. Allow 2-3 weeks for campaign review.
* **Outside-US sending**: Required Twilio regulatory bundle must be approved.
* **Public website content**: A live business website, public Privacy Policy, public Terms page, and an accessible SMS opt-in flow. Twilio can reject campaigns if these are missing.

> For the full compliance walkthrough — including A2P 10DLC registration, campaign submission, opt-in language, regulatory bundles, and troubleshooting — see [Connect Twilio and Peoplevine](https://docs.peoplevine.com/peoplevine-docs/peoplevine-connect) in Peoplevine Connect. The steps below cover the Peoplevine Control Panel side.

### Instructions

1. Navigate to [**AUTOMATE > Integrated Platforms**](https://control.peoplevine.com/admin_authenticate.aspx).

> **Note (Pro Dash):** Same path — **AUTOMATE > Integrated Platforms**.

2. In the **Messaging** section, select **SMS Provider**.
3. In **Select Provider**, choose **Twilio**.
4. Enter the following credentials:

| Peoplevine Field | Twilio Equivalent                             |
| ---------------- | --------------------------------------------- |
| **Account ID**   | Twilio Account SID                            |
| **Auth Token**   | Twilio Auth Token                             |
| **Address ID**   | Twilio Address SID (required in some regions) |

5. Click **CONNECT**.

#### Register the Sending Number

6. Click your company name to open the advanced settings dropdown.
7. Select [**Settings & Tools > SMS Setup**](https://control.peoplevine.com/admin_authenticate_sms.aspx).
8. Under **Sending Method**, select **Long Code**.
9. Enter an **Area Code**, then click **SEARCH**.
10. Select the number you want to use, then click **USE THIS NUMBER**. (Optionally check **Forward incoming calls to me** first — this charges **1 TouchPoint per minute** of the call.)

#### Configure the Inbound Webhook (Twilio Console)

11. In the Twilio Console, go to **Phone Numbers > Manage > Active Numbers**.
12. Open the phone number you registered in Peoplevine.
13. In the **Messaging** section, set **A message comes in** to **Webhook**.
14. Paste the correct Peoplevine inbound URL and set the method to **HTTP POST**:
    * US: `https://api.peoplevine.com/sms_incoming.ashx`
    * UK/EU: `https://api.peoplevine.co.uk/sms_incoming.ashx`

> **If your number belongs to a Messaging Service:** the number-level webhook above only fires when the Messaging Service is set to use it. In the Twilio Console, open **Messaging > Services > \[your service] > Settings**, and under **Inbound messages** select **Defer to sender's webhook** (uses the webhook from step 14) — or select **Send a webhook** and enter the same `sms_incoming.ashx` URL. If this is set to **Receive the message**, inbound replies are stored in Twilio but never reach Peoplevine.

#### Enable Geo Permissions (Twilio Console)

15. In the Twilio Console, go to **Messaging > Settings > Geo Permissions**.
16. Enable every country you intend to send SMS to, then click **SAVE**.

### What Gets Synced

| Data                            | Direction           | Notes                                            |
| ------------------------------- | ------------------- | ------------------------------------------------ |
| Outbound SMS (campaigns)        | Peoplevine > Twilio | Sent through Twilio as delivery provider         |
| Outbound SMS (1:1 from profile) | Peoplevine > Twilio | Sent from the registered sending number          |
| Inbound SMS replies             | Twilio > Peoplevine | Requires inbound webhook configuration (step 14) |

> **Note**: Twilio is a delivery provider, not a two-way data sync. Peoplevine composes and triggers messages; Twilio delivers them. Inbound replies route back into Peoplevine only when the webhook is configured.

### Best Practice

* **Complete compliance registration before connecting in Peoplevine** — the Peoplevine setup takes minutes, but US A2P campaign approval can take 2-3 weeks. Start the Twilio side first.
* **Use the same phone number everywhere** — the number registered in Peoplevine, attached to the Twilio campaign, and configured with the inbound webhook must all match.
* **Test both directions before go-live** — send an outbound SMS from Peoplevine, reply to it, and confirm the reply appears in Peoplevine.
* **Keep opt-in language compliant** — the SMS consent checkbox on your application form must be unchecked by default and optional. See the Connect guide for recommended disclosure language.

### Common Issues

**Outbound SMS fails immediately:** The Twilio account is still in trial mode, the destination country is not enabled in Geo Permissions, or (US only) the number is not attached to an approved A2P campaign.

**Replies not appearing in Peoplevine:** If members report not receiving inbound SMS — or replies are not landing in Peoplevine — check the Twilio webhook config first. The inbound webhook may be missing, point to the wrong region, or use a method other than HTTP POST. Verify the URL and method in Twilio Console under the phone number's Messaging settings. If the number is attached to a **Messaging Service**, also confirm that service's **Settings > Inbound messages** is set to **Defer to sender's webhook** (or **Send a webhook** with the `sms_incoming.ashx` URL) — when it is set to **Receive the message**, replies stay in Twilio and never reach Peoplevine even though the number-level webhook is configured.

**Twilio campaign rejected:** Common causes: the SMS consent checkbox is pre-selected or required, the opt-in form is not publicly accessible, or the Privacy Policy is missing language about not sharing mobile information with third parties. See the Connect guide for the full rejection checklist.

**Messages failing for specific recipients:** Check Twilio **Monitor > Logs > Messaging** for undelivered messages. Error details in the tooltip identify the specific cause (carrier rejection, invalid number, content violation).

**A member isn't receiving SMS from the Control Panel:** SMS sends only to the **Mobile Phone** field on the CRM profile — a number in the regular Phone field is not enough. Also confirm the member is **Opt-In for SMS**; if they opted out previously, they can reply **Start** to your number to reactivate.

### What Happens Next

* Campaign SMS and 1:1 messages sent from Peoplevine are delivered through Twilio
* Inbound SMS replies from members appear in Peoplevine (when the webhook is configured)
* Delivery status is tracked in Twilio logs; Peoplevine also logs sent and failed messages

*Last updated: 2026-06-26*


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.peoplevine.com/products/integrations-overview/setup-twilio.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
