Skip to main content
Activity holds two tables, each in its own card. Cancellation recovery lists members who had a subscription and lost it. Signup recovery lists people who signed up and never paid. Each card names what starts the recovery it lists, and carries its own search, date filter, outcome filter, and pager. The two cards are independent. A search, a filter, or a date range on one card leaves the other alone. Click any row on either card to open that member’s profile. See Member profiles.

Cancellation recovery

The card reads “Starts when a member cancels or loses access. We call to win them back.” Underneath it lists the workflow triggers that feed the table: A subscriber cancels, A trial ends without converting, and Member loses access. Every member enrolled in one of those workflows gets a row. That includes the ones we never got hold of, whose row reads Couldn’t be reached.

The table

Each row carries the date, the member’s name, their id at the store that bills them, and their plan. It also carries why they cancelled, when their call is due, and a money chip that says exactly where the dollars stand. The id links to that record in Stripe or RevenueCat. Paid carries the amount and means the money is charged. Pending carries the amount and the date it collects, which means the member agreed and nothing is charged yet. Lost means they cancelled again. The Call due column only speaks when there is something to act on:
  • “Access ends · Aug 6” while the call is still ahead.
  • A red “Overdue · Jul 23” when access has already ended and we still never reached them.
  • Nothing at all for someone we did reach.

Filters and paging

Three controls sit inside the card, between its heading and the rows:
  • A search box that finds any member by name, phone, or email
  • A date filter (This week / Last week / Month to date / Last 30 days / All time, every option labeled with the dates it covers)
  • A status filter listing each outcome with how many members are in it
A Called back toggle appears alongside them once anyone has called your recovery number, and a Texted back toggle once anyone has texted it. See below. A Clear all button appears whenever a filter is on. Sort by clicking the Date, Member, or Outcome column headers. Sorting by Outcome puts your strongest results first. The table is paged from the Rows menu underneath it: 10 members per page by default, or 50 or 100. A summary line above that pager still totals the members we couldn’t reach, and how many of them got the offer by text.

Members who called you back

If a member calls your recovery number back, that call shows up here too. Their row carries a small phone marker next to the outcome, with a count when they called more than once. The row jumps to the top as the newest thing that happened. The Called back toggle inside the card narrows to exactly those members. Calling back is treated as contact, not an outcome. Someone who called back and then resubscribed still reads Paid with the amount, and still counts as recovered. The marker sits beside that result rather than replacing it. The only members whose outcome reads Called back are the ones where that call is all that has happened so far. Nobody reached them, and they picked up the phone themselves. Those used to be counted as Couldn’t be reached with no row of their own, which was the least accurate thing on the page. The counts follow that card’s date filter, so “called back” on a This week view means they called this week. Below the Cancellation recovery card, a card lists other calls to your recovery number. These are callers we couldn’t match to anyone in your recovery list, usually because they’re calling from a different number. If Revenue Recovery answers on an AI Receptionist you already had, that card links to your receptionist inbox instead of listing calls here. That number also takes your regular business calls.

Members who texted you back

Texts to your recovery number work the same way. The member’s row carries a small message marker next to the outcome, with a count when they texted more than once. The row moves up as the newest thing that happened. The Texted back toggle narrows to exactly those members. The two toggles combine: turn both on and you get the members who did both. These counts follow that card’s date filter as well. Texting back is contact, not an outcome, for the same reason calling back is. The only members whose outcome reads Texted back are the ones where that text is all that has happened so far. Nobody reached them, and they texted in themselves. That’s what the status filter’s Only texted back option shows. The Texted back toggle is broader: it covers everyone who texted, whatever their outcome turned out to be. The two therefore show different numbers on purpose. A member who replies STOP gets an Opted out badge beside their name. It sits with the member rather than with the result, because it isn’t a result. Someone can opt out of your texts and still have come back and paid. Their row then reads Paid with the amount, and the badge alongside it. On the members nobody ever reached it’s often the answer to why they went quiet. Below that, a second card counts other people who texted your recovery number. These are texters we couldn’t match to anyone in your recovery list. Each one shows the number they texted from, when they last texted, and how many texts they’ve sent. An Opted out badge appears if they sent STOP. It’s one row per person, not per message. If Revenue Recovery answers on an AI Receptionist you already had, that card says so and lists nobody. That number also takes texts from everyone else who contacts your business.

Signup recovery

The second card lists the people who hit your paywall and didn’t pay. It reads “Starts when someone hits your paywall and doesn’t pay. After your wait time, we call them”, over its one trigger: A user signs up but doesn’t pay. See Signup Recovery for the event your backend sends and the wait that follows it. These people are never rows on the Cancellation recovery table. They never had a subscription, so its billing, plan, and cancellation columns would be empty for every one of them.

The table

Four columns: Date, Person, What happened, and Outcome. Person is the name your signup event carried. Without a name it’s their phone number, and without either it reads No contact details yet. What happened is one plain sentence, for example “Waiting on a phone number from your signup flow”. Outcome is the badge beside it: The badge and the sentence come from the same reading of the signup that produces the funnel counts on Analytics. This table can’t tell a different story from those numbers.

Filters and paging

Three controls sit inside this card as well, and they narrow this table only:
  • A search box covering name, phone, and the What happened sentence
  • A date filter, this card’s own, with the same options as the one above
  • An Outcome filter listing each outcome with how many signups are in it
Signups reach out too, so this card carries the same two toggles the card above does. A Called back toggle appears once one of these people has called your recovery number, and a Texted back toggle once one has texted it. Their rows carry the matching phone or message marker beside the outcome, and an Opted out badge beside the name when they sent STOP. Sort by clicking the Date header. The Rows menu pages the table: 10 signups per page by default, or 25 or 50. When your filters match nothing, the card stays put and says so. Clear filters puts the search and the outcome back. When it’s the date range that emptied the table, the card says that instead and offers Show all time. The card is missing altogether for a merchant with no signup recovery at all, rather than showing an empty table.

Members losing access today

A collapsed “N members lose access today” summary sits at the bottom of the page. Expand it for the list. When no lapse-day workflow is set up, it says so plainly rather than implying calls failed today.

Member profiles

Every member’s story (the calls, the texts, the recording, and the transcript) lives right inside Revenue Recovery. Click any row on either Activity table, or in the Analytics recovered list, and the member’s profile drawer opens in place:
  • A timeline of what happened, including every time they called or texted you
  • The call recording with a scrubbable player, plus a player for each of their callbacks
  • The transcript highlighted line-by-line as the recording plays (tap any transcript line to jump the audio there)
  • The text conversation, if they texted your recovery number. It shows both sides, oldest message first, and opens on the latest few with a button for the earlier ones. A note appears when they sent STOP
  • The member’s full contact details (their real phone and email, because these people came from your own billing account)
A signup’s timeline opens on “Signed up, didn’t pay” rather than on a cancellation, because that’s what happened to them. If the member re-cancelled, the drawer says it in one plain sentence: which charge won’t be collected and when it was due.