Catch the trials quietly dying before the card gets charged
Open one desk each morning to see every account still in a trial, ranked by how much money is at stake against how little they have actually used.
Build me a trial conversion desk that my customer success team opens every morning to see which trials are quietly dying before the card gets charged, instead of finding out on renewal day. The whole point of the surface is the join between billing reality and product reality: how much money is on the line and how many days are left comes from Stripe, what the person has actually done comes from Intercom, and neither one alone tells me who to talk to today.
The main page is a single table of every account currently in a trial. Load it with the Stripe List Subscriptions operation filtered to trialing status, paginating until there are no more, and expand the customer on each subscription so I get the customer name and email without a second round trip. From each subscription work out days left from the trial end date, and trial value from the recurring price and quantity on the subscription items, converting from the smallest currency unit into a normal amount with its currency. Show the billing interval too, so a monthly trial and an annual trial are not ranked as if they were worth the same.
For each trialing customer, join to the matching person in Intercom using Search Contacts filtered on the customer email, and use Get a Contact when I open a row so the detail view has the full profile. Pull that person's product activity with List Data Events for a Contact, and the segments they fall into with List a Contact's Segments. Also check their conversation history with Search Conversations filtered to that contact, so I can see whether they have ever talked to us at all and whether anything is currently open. In the table each row should show the account, the plan and trial value, days left, the number of product events during the trial and how many distinct event types those cover, when the last event happened, their segments, and whether they have ever opened a conversation.
Rank the rows by trial value against activation, so a high value account with days left on the clock and almost no product events floats to the top as the one worth a human touch today. Fully activated trials and low value trials should sink. Make the weighting visible and adjustable in the app rather than buried in code, and let me set which event names count as activation milestones for my product, because that list is what the score and the nudge both lean on. Give me filters for accounts that have never opened a conversation with us, for days left, for a minimum trial value, and for segment, plus a toggle to hide accounts somebody has already nudged.
Opening a row shows the detail: the billing facts from Stripe, a timeline of that person's recent Intercom events, their segments, and any conversation history including the parts of an open thread pulled with Retrieve a Conversation.
Every row has a Draft a nudge button that kicks off a background agent for that person. The agent reads their recent events with List Data Events for a Contact, their segments with List a Contact's Segments, the full segment list with List All Segments so it understands what each one means, and any open conversation through Search Conversations and Retrieve a Conversation. It compares what they have done against my configured activation milestones, works out which setup step they never completed, and writes a short personal in app message referencing that specific gap rather than a generic check in. It writes the draft back into the app along with the gap it identified and a one line reason, so I can see why it wrote what it wrote. The draft lands in the app for me to edit and approve, never sent straight out.
When I approve a draft, send it as a real in app message with the Intercom Send a Message (Admin-Initiated) operation from the admin I pick, then tag the person with Tag a Contact using a trial nudge tag, then leave an internal Create a Note on a Contact recording what we nudged them about. Store the nudge history in the app database with the contact, the gap, the message that went out, who approved it and when, so the next person to open the desk can see who has already been contacted and about what, and the row shows an already nudged state with the previous message one click away.
A few things to get right. Trials with no matching Intercom person should still appear in the table, flagged as unmatched, rather than being silently dropped. Trials already set to cancel at period end should be marked, because that is a different conversation. Handle Intercom rate limits and Stripe pagination gracefully on a first load with hundreds of trials, and cache the joined rows in the app database so opening the desk in the morning is fast, with a refresh action that rebuilds it. Show days left in a way that reads at a glance, so the accounts about to convert or expire stand out from the ones with two weeks to go.
What does this prompt do?
- Lists every account currently in a trial with days left and what the plan is worth, right next to what that person has actually done in the product and which segments they fall into.
- Ranks the list so a valuable trial with almost no activity and only a few days left floats to the top as the one worth a human touch today, and lets you filter down to people who have never once opened a conversation with you.
- A Draft a nudge button sends an assistant off to read that person's recent activity and any open chat, work out which setup step they never finished, and write a short personal message about that specific gap instead of a generic check in.
- When you approve the message it goes out as a real in app message, tags the person, and leaves an internal note, so the next teammate who opens the desk can see who has already been contacted and about what.
What do I need to use this?
- A Stripe account where subscriptions run a free trial before the first charge
- An Intercom workspace where your customers exist as people, ideally with product activity being sent in as events
- Permission in Intercom to send messages, apply tags and add notes
- Customer email addresses that line up between Stripe and Intercom, so billing and product activity can be matched to the same person
How can I customize it?
- Change how the ranking is weighted, so it leans harder on trial value, on days remaining, or on how quiet the account has been
- Set which product events count as your activation milestones, so the assistant knows exactly which setup step is missing
- Change the tag that gets applied on send, and the house rules for the nudge such as length, tone and sign off
FAQs
Does this message customers automatically?
What happens to a trial account that has no matching person in Intercom?
Will this work if we do not send product events into Intercom?
Can the whole customer success team use the same desk?
Does it change anything in Stripe?
Related templates
See every open conversation next to that customer's plan, monthly value and unpaid invoices, so the expensive account never sits waiting all morning.
A board that ranks the people who opened three or more separate support conversations this month, reads their threads, and files the real fix.
Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.
See every page's translation status at a glance, edit translations side by side with the English, and publish only what your team has actually approved.
One place for sales and ops to request an NDA or vendor agreement, watch its status, and let legal launch the contract in a single click.
A board of the questions your buyers ask, showing where your pages land, which competitors show up instead, and what you lost since the last check.
Stop finding out about dead trials on renewal day.
Open one desk each morning, see which trials are still worth saving, and send a nudge that references what that person actually missed.