missing access_level_updated webhook event

^ 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?
Comments3
Ebrar Berenay Yiğit
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_updatedis 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_expiredandsubscription_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_updatedreflects that auto-renewal was disabled, while access remains active until the end of the current periodwhen that period ends,
trial_expiredorsubscription_expiredis the event that marks access lossThis 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_updatedtogether 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: