Read last active as last_accessed_at
Whop’s member record includes last_accessed_at, the time they last opened the account’s content. Null means they never have. It is not a payment, an email open, or a visit to Discord or Telegram.
On the member record, last_accessed_at is the ISO 8601 time they last opened the account’s content, or null if they never have. Whop’s member reference uses that wording. Sellers often call the same field last active or member activity. The record does not store a separate last-active time.
Holdrate’s free inactive-member audit reads last_accessed_at. You can also sort GET /members with order=last_accessed_at. That sort does not accept “quiet for 14 days.” created_after and created_before filter when they joined, not when they last opened the content. The request and the pages are in how to list inactive members with the Whop API.
Use it when members open Whop itself
Use last_accessed_at when members open Whop itself: a course, Whop chat, a livestream, or another app on the account. If Whop is only checkout for Discord or Telegram, last active will not show the place they use.
last_accessed_at is one timestamp: when they last opened the account’s content. It does not say whether that open was a course, Whop chat, a livestream, or another app on the account, and it does not see Discord or Telegram. A member who paid on Whop and then spent every later day in Discord or Telegram will look quiet here, because they never opened the account’s content after checkout, or because the timestamp never moved.
That is not inactivity in the place they use. Do not message that list as if they had gone quiet. If only part of the product is on Whop, treat last active as “they have not opened the Whop side” and check the other side before you write.
Count quiet members at 7, 14, and 30 days
Count whole days since last_accessed_at. If it is null, count from the join date and mark them as never opened. The 14-day and 30-day groups sit inside the 7-day group. Keep the list to current members.
Seven days is early silence, useful when the first week should already have included a visit. Fourteen days is the same person, still inside the 7-day count, and a fair moment for a more specific note if you have not written yet. Thirty days is inside both shorter counts. Look at that list when a renewal is close, if you know the date.
Only current members belong here. Someone who already cancelled is churned. Mixing them in makes the quiet list look larger than the people still being billed. One-time purchases are not monthly revenue. If you attach money, sum the monthly price of recurring plans for members who still have access and have been quiet for 7 days or more. Keep each currency in its own total. Leave out discounts and tax. The sum is exposure, not a forecast of who will cancel.
The same buckets, including how to build the list by hand, are in how to find inactive Whop members.
Do not treat a billing state as activity
most_recent_action is a lifecycle state such as paid_subscriber or canceling, not a visit. membership_status of inactive means a membership that does not grant access, not that they stopped opening Whop. Last payment is not last active.
membership_status=active means they hold at least one membership that currently grants access. membership_status=inactive means they hold at least one that does not. Neither value means “has not opened the product.” most_recent_action is derived from memberships. A paying member can be paid_subscriber and still have not opened Whop for a month. Guessing from the last payment marks paying-but-absent people as active, which is the opposite of the list you want.
An empty last_accessed_at is not a broken record. Count those members from the join date and mark them as never opened. A timestamp you cannot read, or one that sits in the future, is not a visit. Leave that member unknown rather than marking them active.
Or run the free audit
Sign in on Holdrate, connect the Whop company, and read the silent 7, 14, and 30 day counts plus estimated monthly plan value at risk. The audit uses last_accessed_at. Memberships stay unchanged.
The audit is the short path when members use a course, Whop chat, a livestream, or another content app on the account. It is the wrong path when they do not. The connection reads access times and recurring plan prices. It does not cancel anyone, change a plan, or send a message. You can disconnect the company later in settings.
Silence, even with the right field, is still a lead indicator. A member can be heads-down, away, or already getting what they wanted. The list is a prompt to look before a renewal, not proof they will cancel.
Once you have names, a simple check-in rhythm is more useful than a blast. Notes you can copy for a DM or an email are in Whop win-back message templates.