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

# Adding Phone Numbers for Win-back

> How to get customer phone numbers into Stripe and RevenueCat so Atllas can call and text the people who cancel.

Atllas can only call or text a customer who left if there is a phone number on their billing record. This page shows where that number has to live for each provider, how to add it, and how to check your coverage.

<Note>
  Phone contact should be something your customers opt into. Collect that consent
  explicitly (a separate, unchecked checkbox at signup works well), store it on
  your own records, and give people a way to opt out. See
  [Cancellation Recovery Calls](/docs/integrations/cancellation-recovery) for the
  consent details.
</Note>

## Where the number has to be

When a customer cancels or a payment fails, Atllas reads their phone number from one specific place per provider:

| Provider       | Field Atllas reads                                   |
| -------------- | ---------------------------------------------------- |
| **Stripe**     | The **Phone** field on the Stripe **Customer**       |
| **RevenueCat** | The reserved **`$phoneNumber`** subscriber attribute |

A number kept anywhere else (on a charge, an invoice, in metadata, or in a custom RevenueCat attribute) is not used. Numbers are normalized to E.164. Anything that cannot be normalized is skipped.

## Stripe

Atllas reads the **Phone** field on the Stripe Customer. Three ways to get it there:

* **New customers (automatic).** Turn on phone number collection for **Checkout** or **Payment Links**. Stripe then saves the number onto the Customer for you.
* **One customer.** Open the customer in Stripe, choose **Edit**, and fill in the **Phone** field.
* **In bulk.** Set `customer.phone` in E.164 format (for example `+15551234567`) through the Stripe API.

## RevenueCat

Atllas reads the reserved **`$phoneNumber`** subscriber attribute. Other custom attributes are not used.

* **In your app.** Set `$phoneNumber` as soon as you have the number (after an OTP step or at signup) using the SDK's `setPhoneNumber` helper.
* **Existing subscribers.** Set the `$phoneNumber` attribute through the RevenueCat subscriber attributes API.
* **Format.** Use E.164 (for example `+15551234567`). Free-text numbers are normalized where possible and skipped when they cannot be.

<Note>
  `$phoneNumber` is a reserved RevenueCat attribute, not a custom one you create.
  Set it with the reserved `setPhoneNumber` helper (or the reserved `$phoneNumber`
  key) so it lands in the right place.
</Note>

## Checking your coverage

Two places in the portal show how many of your customers are reachable:

* On the main **Dashboard**, **Where you're losing people** shows a **Who we can chase** figure: the share of people who left that have a phone we can call or text.
* On the **Integrations** page, the connected **Stripe** card shows your overall **phone coverage**.

When coverage is low, the dashboard's **Add phones** button opens the same Stripe and RevenueCat steps shown above.

## Backfilling existing customers

If most of your past customers signed up before you collected phone numbers, you do not have to do it by hand. Reach out from the in-app chat or email [support@atllas.com](mailto:support@atllas.com) and we will help you backfill numbers from your own data or set up collection going forward.
