---
title: "Profiles/CRM"
description: "Manage user profiles and CRM data in Adapty to enhance audience segmentation."
---

Profiles is a CRM for your users. With Profiles, you can:

1. Find specific users by profile ID, customer user ID, email, or transaction ID.
2. View the user's event timeline, including billing issues, grace periods, and other [events](events).
3. Analyze user's properties such as subscription state, total revenue/proceeds, and more.
4. Grant the user a subscription.

  <img src="/assets/shared/img/profiles.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

:::link
To understand how Adapty creates and links user profiles, see [How profiles work](how-profiles-work).
:::

## Finding users

In the Profiles list, you can search for a specific user by:

- **Profile ID**: Adapty's internal identifier for the user (also called Adapty ID).
- **Customer user ID**: Your app's identifier for the user, if you've set one.
- **Email**: The user's email, if sent as a custom attribute.
- **Transaction ID**: The store transaction ID from a purchase.

Click any row to open the user's full profile.

## Subscription state

In the Profiles list, you can filter and sort users by subscription state. The state values are:

| User **state**         | Description                                                  |
| :--------------------- | :----------------------------------------------------------- |
| Subscribed             | The user has an active subscription with auto-renewal enabled. |
| Auto-renew off         | The user turned off auto-renewal but still has access to premium features until the end of the subscription period. |
| Subscription cancelled | The user canceled their subscription, and it has fully ended. |
| Billing issue          | The user couldn’t be charged due to a billing issue, either after their subscription or trial expired. |
| Grace period           | The user is currently in a grace period due to a billing issue that occurred when attempting to charge them after their subscription or trial expired. |
| Active trial           | The user has an active subscription that is currently in its trial period. |
| Trial cancelled        | The user canceled the trial and does not have an active subscription. |
| Never subscribed       | The user has never subscribed or started a trial and remains a freemium user. |

## User attributes

  <img src="/assets/shared/img/ce8df4d-CleanShot_2023-06-26_at_20.32.232x.webp"
  style={{
    border: '1px solid #727272',
    width: '700px',
    display: 'block',
    margin: '0 auto'
  }}
/>

You can send additional user properties to Adapty using the SDK.

By default, Adapty sets:

| Property         | Description                                                  |
| ---------------- | ------------------------------------------------------------ |
| Customer user ID | An identifier of your end user in your system.               |
| Adapty ID        | Internal Adapty identifier of your end user, called Profile ID. |
| IDFA             | The Identifier for Advertisers, assigned by Apple to a user's device. Requires App Tracking Transparency (ATT) permission on iOS 14+. Not available on Android. |
| Country          | Country of your end user.                                    |
| OS               | The operating system used by the end user.                   |
| Device           | The end-user-visible device model name.                      |
| Install date     | The date when the user was first recorded in Adapty: <ul><li>The date the user was created. </li><li>If the user installed your app before you integrated Adapty, the install date reflects the date of their first transaction.</li><li>If applicable, the date provided during a historical data import.</li></ul> |
| Created at       | The date the user was created.                               |

Send at least your internal user ID or user email. This lets you find users by these identifiers in the Profiles list.

After you install the SDK, Adapty automatically collects user events from the payment queue and displays them in the user profile. The attributes in the table above are collected automatically — you do not need to send them.

### Custom attributes

In the **Attributes** section of a profile, you can see custom attributes set via the SDK or API. You can also assign attributes manually using the **Add attribute** button.

  <img src="/assets/shared/img/378c1fb-add_attribute.webp"
  style={{
    border: '1px solid #727272',
    width: '700px',
    display: 'block',
    margin: '0 auto'
  }}
/>

## Granting a subscription

In a profile, you can extend an active subscription or grant a user lifetime access to an access level — without requiring them to make a purchase.

  <img src="/assets/shared/img/b1d74fd-edit_paid_access_level.webp"
  style={{
    border: '1px solid #727272',
    width: '700px',
    display: 'block',
    margin: '0 auto'
  }}
/>

This is most useful for:
- Compensating a user after a billing or support issue.
- Running manual promotions or beta programs.
- Testing subscription flows without a real purchase.

To grant access, open the user's profile, go to the **Access levels** section, and click **Edit**. Set the expiration date and save. The expiration date must be in the future and cannot be decreased once set. Adjusting it for active subscriptions does not affect ongoing payments.

:::note
Granting access does not create App Store or Google Play purchase events. The user's event feed and analytics will differ from a real purchase flow.
:::

You can also grant access programmatically using the [Grant access level](api-adapty/operations/grantAccessLevel) API method.

## Sharing paid access between user accounts

:::link
Main article: [Sharing paid access between user accounts](sharing-paid-access-between-user-accounts)
:::

### Access sharing history

When access levels are shared or transferred, the user’s profile shows a link to the connected profile — the profile that shared access, or the profile that received it. To view the connected profile, in the user’s **Profile**, click the link next to the access level.

  <img src="/assets/shared/img/profile-access-level-origin.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

## Next steps

- To understand how Adapty creates and links profiles, see [How profiles work](how-profiles-work).
- To configure the access sharing policy, see [Sharing paid access between user accounts](sharing-paid-access-between-user-accounts).
- To grant access programmatically, see the [Grant access level](api-adapty/operations/grantAccessLevel) API method.