Turn expiring free trials into a ranked sales worklist

By General Input

Every weekday morning, your reps get a ranked list of trials ending in the next five days, with call talking points and a flag on anyone with no card on file.

Integrations

  • Chargebee
  • HubSpot
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Finance

Every weekday at 8am, build a prioritized trial conversion worklist for my sales and customer success team from Chargebee, enrich it with HubSpot, and post it to Slack. The goal is that no trial reaches its end date without a named rep knowing about it and having something specific to say.

Start with Chargebee "List Subscriptions" to pull every subscription whose status is in_trial and whose trial_end falls within the next five days. Chargebee timestamps are Unix epoch seconds and filters use operator suffixes, so filter with status[is]=in_trial together with a trial_end range covering now through five days from now. Page through the results using the next_offset token until the list is exhausted, so a busy week does not get silently truncated at the first page.

For each subscription, read the subscription_items to get the item_price_id and quantity being trialed. This is a Product Catalog 2.0 site, so work from item_prices and not legacy plans. Then call Chargebee "Retrieve Customer" for the subscription's customer to get the billing contact email, the company name, and the payment details embedded on the customer record. Use Chargebee "Retrieve Item Price" for each distinct item price so you know its amount, currency, and billing period, since you need the period to compare plans fairly.

Work out the expected annual value for each trial: multiply the item price amount by the quantity, then normalize to a yearly figure using the item price's billing period, so a monthly price is multiplied by twelve, a quarterly price by four, and an annual price is left as is. Chargebee returns money as integers in the currency's smallest unit, so divide by 100 before showing any figure to a human. Rank the whole list by this annual value, highest first.

Determine whether each trial has a payment method on file. The customer record from "Retrieve Customer" embeds the primary card and payment method, so use that as the primary signal, and confirm with Chargebee "List Payment Sources" for the customer when the record is ambiguous. Treat any trial with no usable payment source as high urgency, because when the trial ends the first invoice fails and the account looks like a billing problem when it was really a missing card.

Enrich every account through HubSpot. Call HubSpot "Get Contact" using the billing contact email with the idProperty parameter set to email, and read the lifecycle stage and the assigned owner id. Then call HubSpot "Get Owner" with that owner id to resolve the rep's real name and email, so every trial in the digest is attributed to a person rather than an opaque id. If no contact matches the email, or the contact has no owner, keep the account in the worklist under an "Unassigned" group and say plainly that the CRM record is missing or unowned, since those are the ones most likely to be dropped.

For each account, draft two or three specific talking points for the conversion call. Base them on the actual plan and quantity they picked and on their CRM lifecycle stage, not generic sales advice. A high seat count on an entry tier is an upgrade conversation, a lead-stage contact on an enterprise tier probably needs a decision maker in the room, and a customer already marked as an opportunity needs a close plan rather than an introduction. Reference the plan name and the trial end date in the points so the rep can open the call with something concrete.

Post the digest to our sales channel with Slack Bot "Send a Message". Lead with a clearly separated urgent section listing every trial ending with no payment method on file, including the account, the end date, and the owner, since those need intervention before anything else. Below that, group the remaining accounts by owner so each rep sees only their own accounts in one place, ordered by annual value within each group. For each account show the company name, the plan and quantity, the normalized annual value, the trial end date, the lifecycle stage, and the talking points. Only include a group for a rep who actually has accounts in the window, and use Slack formatting that stays readable on mobile.

Finally, log the drafted talking points against the CRM record using HubSpot "Create Note", associated to the contact you looked up, so the outreach plan lives in HubSpot rather than only in a Slack post that scrolls away. Include the plan, the normalized annual value, the trial end date, and the payment method status in the note body. Skip the note when no matching contact was found. If Chargebee returns no trials ending in the window, post a short message saying there are no trials ending in the next five days rather than an empty digest.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery boardLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client account