Sync Kajabi purchases to HubSpot with VIP Slack alerts

Every 30 minutes, push new Kajabi buyers into HubSpot as enriched customer contacts and ping Slack only when a VIP purchase comes through.

Agentic Task
KajabiHubSpotSlack BotSalesOperationsData SyncNotifications & Alerts

Every 30 minutes, run a cron-triggered agent that syncs new Kajabi purchases into HubSpot and posts a Slack alert only when a VIP customer comes through. Kajabi is not in the poll providers catalog, so cron is the right trigger.

Each run should do the following:

1. Use Kajabi List Purchases to pull every purchase created since the last successful run. Sort by created_at descending and keep a high-water mark plus the set of purchase IDs already processed in the workflow state, so the same enrollment never gets handled twice even if it shows up again in a later page.

2. For each new purchase, look up the buyer in HubSpot with Search Contacts by email. If a contact already exists, use Update Contact to refresh the lifecycle stage to customer, set the latest Kajabi offer name and purchase amount in cents on the contact, and increment a running kajabi_lifetime_value_cents property by the purchase amount. If no contact exists, use Create Contact with email, first name, last name, lifecycle stage = customer, and those same Kajabi properties. Treat kajabi_lifetime_value_cents as a single source of truth for total Kajabi spend by that buyer.

3. Use HubSpot Create Note on that contact summarizing what they just bought (offer name, amount in dollars, purchase date) and, if available, a short list of any prior Kajabi purchases on file. The note should give a CSM instant context the next time they open the contact.

4. Classify the purchase as VIP if any of these are true: the amount in cents is above a configurable threshold (default 50000 cents = $500), the buyer has at least one prior Kajabi purchase (repeat customer), or the offer name matches a configurable VIP keyword list (defaults: coaching, mastermind, vip, 1:1, private).

5. Only for VIP purchases, use Slack Bot Send a Message to post a short alert to a configurable Slack channel with the customer name, email, offer, amount in dollars, the reason it qualified as VIP (high-ticket, repeat buyer, or matched keyword), and a clickable deep link to the HubSpot contact record. Routine non-VIP purchases should sync silently into HubSpot and post nothing to Slack.

Make the cron interval, the VIP cents threshold, the VIP offer keywords, and the Slack channel all easy inputs to change later without editing the workflow.

Additional information

What does this prompt do?
  • Every 30 minutes, brings new Kajabi buyers into HubSpot as fully filled-out customer contacts with their latest offer, purchase amount, and running lifetime value.
  • Adds a fresh CRM note on every purchase summarizing the offer, amount, date, and any prior Kajabi history so a CSM has instant context when they open the contact.
  • Sends a short Slack alert only when a VIP purchase comes through, defined as a high-ticket order, a repeat customer, or a coaching or mastermind product.
  • Stays quiet on routine purchases so your team's Slack stays focused on the buyers that actually need a personal touch.
What do I need to use this?
  • A Kajabi account with the Public API enabled (included on the Pro plan, or available as a $25/month add-on).
  • A HubSpot login with permission to read, create, and update contacts and add notes.
  • A Slack workspace and a channel where you want VIP buyer alerts to land.
How can I customize it?
  • Change the dollar threshold that decides what counts as a high-ticket VIP purchase.
  • Edit the list of offer keywords (for example coaching, mastermind, vip, private) that should always trigger a Slack alert.
  • Pick which Slack channel the alerts post to, or send them as a DM to a specific person on your CSM team.
  • Change how often the sync runs, for example every 15 minutes during a launch week and back to 30 minutes after.

Frequently asked questions

Will this create duplicate contacts if the same customer buys twice?
No. Before creating anything, the workflow looks up the buyer in HubSpot by email. If they already exist, their contact is updated and the running Kajabi lifetime value adds up across purchases instead of creating a duplicate.
Why every 30 minutes instead of right away?
Kajabi does not currently push a live update when a purchase happens, so the workflow checks on a schedule. Thirty minutes keeps the Slack alerts feeling timely without overloading your Kajabi connection. You can shorten it during a launch or stretch it back out the rest of the time.
What counts as a VIP purchase?
By default, a purchase is VIP if it is above $500, the buyer has purchased from you before, or the offer name contains words like coaching, mastermind, or vip. All three rules are configurable, so you can tune them to match how you price and package your offers.
Will Slack get spammed if a hundred people buy during a launch?
No. Only VIP purchases trigger a Slack message. A flash sale on a low-ticket offer to first-time buyers will sync everyone to HubSpot quietly and post nothing to Slack. Big-ticket and repeat buyers still get their own alert.
Does this work on HubSpot Free?
Yes. Contacts, custom contact properties, and notes are available on every HubSpot tier including Free. The workflow uses standard contact fields plus one custom property to track Kajabi lifetime value.

Turn every Kajabi sale into a CRM-ready customer.

Connect Kajabi, HubSpot, and Slack once, and Geni keeps your CRM clean and your team alerted only when a VIP buyer comes through.