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
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
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)

