Skip to main content

missing access_level_updated webhook event

Trial_Flow_without_Successful_Conversion.webp

^ this is a pic from the docs at

https://adapty.io/docs/event-flows

why is there no access_level_updated event when the trial ends? it seems clear that the access level changes at this point. is this an oversight?

3 comments

Comments3

  • Ebrar Berenay Yiğit

    Team•

    Apr 22

    Hello Will, this is Berenay from Adapty Support Team. Thank you for your questions!

    What you’re seeing is expected behavior.

    access_level_updated is used to reflect changes to the access level configuration itself, for example when access is granted, extended, or when auto-renewal status changes after cancellation. When a trial or subscription simply reaches its natural end, Adapty uses the lifecycle completion events, trial_expired and subscription_expired, to indicate that access has ended.

    So for this flow:

    • when the user starts a trial or subscription, access is granted

    • when the user cancels, access_level_updated reflects that auto-renewal was disabled, while access remains active until the end of the current period

    • when that period ends, trial_expired or subscription_expired is the event that marks access loss

    This event model is designed so you can track both:

    • access state changes during the lifecycle, and

    • the final completion of the trial/subscription period

    If your goal is simply to determine whether the user currently has access, the recommended approach is to treat access_level_updated together with the final lifecycle events (trial_expired / subscription_expired) as the source of truth for access transitions.

  • Will Tipton

    •

    Apr 11

    Highest level question — i just want to know whether my users have access or not. This has to be like the most common use case for this protocol. Do I really have to handle like a dozen different events with different fields to figure this out?

  • Will Tipton

    •

    Apr 11

    Same question for ‘subscriptions ends’ point in the subscription cancellation flow:

    Subscription_Cancellation_Flow.webp