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

# Add phone numbers for Win-back

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

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

<Note>
  Phone contact should be something your members opt into. Collect that
  consent explicitly. A separate, unchecked checkbox at signup works well.
  Use clear language like "I agree to receive phone calls from \[Your Company]
  about my account, including AI-assisted calls." Store the consent on your
  own records, together with the wording they agreed to. Give people a way to
  opt out.
</Note>

## Where the number has to be

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

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

hyzl does not use a number kept anywhere else. That includes a charge, an invoice, metadata, and a custom RevenueCat attribute. It normalizes numbers to E.164, and it skips anything that cannot be normalized.

## Stripe

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

* **New members (automatic).** Turn on phone number collection for **Checkout** or **Payment Links**. Stripe then saves the number onto the `Customer` for you.
* **One member.** Open their `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

hyzl 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 a one-time password step or at signup. Use the `setPhoneNumber` helper in the RevenueCat software development kit.
* **Existing members.** 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>

## Check your coverage

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

* On the main **Dashboard**, `See where you're losing people` shows a **Who we can chase** figure. That is 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.

## Backfill existing members

Most of your past members may have signed up before you collected phone numbers. You do not have to do it by hand. Reach out from the in-app chat. You can also email [support@atllas.com](mailto:support@atllas.com) directly. We will help you backfill numbers from your own data, or set up collection going forward.
