Manage subscriptions and analyze events for each user

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

  1. Find a user with any ID you have including email and phone number.
  2. Explore the full payment path of a user including billing issues, grace periods, and other events.
  3. Analyze user's properties such as subscription state, total revenue/proceeds, last seen, and more.
  4. Grant the user a subscription.

In a full table of subscribers, you can filter, sort, and find users. The state describes user state in terms of a subscription and can be:

User stateDescription
SubscribedThe user has an active subscription
Active trialThe user has a subscription with an active trial period
Auto renew offThe user turned off auto-renewal. Check events for more info
Subscription cancelledThe user cancelled a subscription. Check events for more info
Trial cancelledThe user cancelled a trial
Never subscribedThe user has never subscribed, i.e. he's a freemium user
Billing issueThe user can't be charged
Grace periodA user entered a grace period

You can group users into Segment to create Promo Campaigns, group analysis, and more.

User properties

Profiles/CRM - Photo 1

You can send any properties that you want for the user.

By default, Adapty sets:

  • Customer user ID. Is a developer ID and can be any string
  • Adapty ID. Internal ID of a user in Adapty
  • IDFA
  • Country. From IP address country of the user
  • OS
  • Device
  • Created at. Profile creation date
  • Last seen

For a better understanding of your user, we suggest sending at least your internal user ID or user email. This will help you to find a user.

After installing SDK, Adapty automatically collects user events from the payment queue and displays them in a user profile.

Custom attributes

You can see custom attributes that were set either from SDK or manually assign them to the user using the Add attribute button in the Attributes section on the profile page.

Profiles/CRM - Photo 2

Grant a subscription

In a profile, you can find an active subscription. At any time you can prolong the user's subscription or grant lifetime access.

Changing paid access level

It's most useful for users without an active subscription so you can grant the individual user or a group of users premium features for some time. Please note that adjusting the subscription date for active subscriptions will not impact the ongoing payments.


Expires at must be a date in the future and can't be decreased ones set.

Profile record creation

Adapty creates an internal profile ID for every user. However, if you have your own authentication system, set your own Customer User ID, a unique identifier for each user in your system. In this case. Adapty will add this ID to the user profile, which will give you several advantages:

  1. All transactions and events will be tied to the same profile.
  2. You can find users by their customer user ID in the Profiles section and view their transactions and events.
  3. You can use the customer user ID in the server-side API.
  4. The customer user ID will be sent to all integrations.

If no customer user ID is passed to Adapty, Adapty will create a new additional internal profile ID in the following cases:

  • When a user launches your app for the first time after installation and reinstallation.
  • When a user logs out of your app.

This means that a user who installs, then uninstalls, and reinstalls your app may have several profile records in Adapty if no customer user ID is used. All transactions in a chain are tied to the profile that generated the first transaction — the "original" profile. This helps keep a complete transaction history — including trial periods, subscription purchases, renewals, and more, linked to the same profile.

A new profile record that generates a subsequent transaction, called a "non-original" profile, may not have any events associated with it but will retain the granted access level. In some cases, you will also see "access_level_updated" events here.

Here is an example of a non-original profile. Notice the absence of events in the User history and the presence of an access level.

What’s Next