Daily Kajabi churn-rescue briefing with Gmail save drafts

Every weekday at 8am, get a Slack triage of Kajabi customers who just churned or had a payment fail, plus a personalized save draft ready to send.

Agentic Task
KajabiGmailSlack BotSalesCustomer SupportDaily DigestsEmail AutomationNotifications & Alerts
PromptCreate

Every weekday at 8am in my timezone, build a Kajabi churn-rescue briefing for my retention team. The goal: surface every customer who churned or whose subscription payment is failing in the last 24 hours, draft a save email for each one in Gmail, and post a single triage thread to Slack so a CSM can review and send.

Step 1: Pull at-risk purchases from Kajabi. Call Kajabi List Purchases filtered to purchases that were deactivated, cancelled, refunded, or have a failing/past-due payment status in the last 24 hours. Deduplicate by customer (one entry per customer, keeping the highest-severity reason).

Step 2: Enrich each at-risk customer. For every customer in the list, call Kajabi Get Customer Details to fetch their name, email, and lifetime offers, and call Kajabi Get Offer Details for the specific offer tied to the failing or cancelled purchase. Estimate lifetime value from their past purchases (sum of paid amounts across their offers).

Step 3: For each at-risk customer, use Gmail Create a Draft to draft a personalized save email from me, addressed to the customer. The email should be short and warm, never discount-led. Name the specific offer they're losing access to, acknowledge what happened (failed payment vs. cancellation vs. refund), ask what changed, and offer two concrete paths: update their payment method, or pause instead of cancel. Sign it from me. Do not send the email — leave it as a draft.

Step 4: Post one Slack Bot Send a Message to a configurable retention channel (default #retention). Format:

• A header line with totals broken out by reason: failed payments, cancellations, refunds.

• One bullet per customer, grouped by reason, sorted highest lifetime value first. Each bullet shows: customer name, offer they're walking away from, lifetime value, suspected reason in plain English (for example, "card declined, 2nd retry"), and a link to the Gmail draft so the CSM can open it, edit, and hit send.

• A closing line with what to do next (review the drafts and send the ones that look right).

Deduping rule: keep a record of which customers were surfaced in yesterday's briefing and skip them in today's. Do not create a duplicate Gmail draft for a customer already drafted in the last 48 hours.

Edge case: if there are zero at-risk customers, still post a short Slack message confirming the check ran and the count is zero, so the team knows the workflow is healthy.

Configurable inputs: the retention Slack channel, the sender name/signature on the email, the at-risk lookback window (default 24 hours), and the timezone for the 8am trigger.

What does this prompt do?

  • Spots Kajabi customers in the last 24 hours who cancelled, were deactivated, or whose subscription payment is failing, so your team sees every at-risk account in one place.
  • Writes a short, warm save email to each customer, named to the specific offer they are losing, with a path to update payment or pause instead of cancel.
  • Posts a single morning thread to your retention Slack channel with totals by reason, the highest lifetime-value customers first, and a link to each Gmail draft so the team can review and hit send.
  • Skips anyone already surfaced the day before so the same customer is not emailed twice.

What do I need to use this?

  • A Kajabi account on the Pro Plan (or the Public API add-on) with permission to read customers, offers, and purchases.
  • A Gmail account for the person who should appear as the sender of the save emails.
  • A Slack workspace with a channel for your retention or customer success team (for example, #retention).
  • Roughly which Slack channel to post in, and the name and signature you want on the outgoing emails.

How can I customize it?

  • Change the send time or the days it runs (for example, 7am Monday through Friday, or seven days a week).
  • Point it at a different Slack channel, or send a DM to one owner instead of a channel post.
  • Tune the email voice and offer: keep it discount-free, add a one-time win-back coupon, or swap pause for a downgrade option.
  • Adjust the at-risk window (last 24 hours by default), the priority order, or the rule that hides repeat customers.

FAQs

Does this actually send the save emails automatically?
No. It creates a Gmail draft for each at-risk customer and links to it from Slack. A human reviews the draft and clicks send, so nothing goes out without you signing off.
Will it email the same customer two days in a row?
No. The briefing remembers who appeared in yesterday's list and skips them, so a customer with a multi-day payment retry only gets one outreach from this workflow.
Do I need to be on a paid Kajabi plan?
Yes. Kajabi's Public API is included with the Pro Plan or available as a paid add-on on other plans. Only account owners or subowners can generate the credentials.
What if no one churned yesterday?
The Slack message still posts so your team knows the check ran. It just reads as a clean day with zero at-risk customers.
Can I change the Slack channel it posts to?
Yes. The channel is a setting on the workflow. Point it at any public or private channel where the retention bot has been added.

Related templates

Win back LiveChat visitors whose chats went unanswered

Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.

LiveChat
Gmail
Slack
Agentic Task
A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
Slack Bot
Agentic Task

Stop losing Kajabi customers to silent payment failures.

Connect Kajabi, Gmail, and Slack once, and Geni runs your churn-rescue briefing every weekday at 8am.