Sync new Kajabi form submissions into Google Sheets
Every 15 minutes, append new Kajabi lead form submissions as fresh rows in your tracker spreadsheet so your team always works from one clean list.
Build a code workflow that runs on a cron trigger every 15 minutes and copies new Kajabi form submissions into a designated Google Sheet as new rows. The flow is purely deterministic field mapping, no agent reasoning.
Trigger: cron, every 15 minutes.
Step 1. Call Kajabi List Form Submissions filtered by site_id and by created_at greater than the last successful run timestamp (store the high-water mark in workflow state so subsequent runs only pick up new submissions). Page through results until exhausted, sorted by created_at ascending so we preserve submission order. If this is the first ever run, default the cutoff to now minus 15 minutes.
Step 2. For each submission, build a row of values in this order: submission timestamp (ISO), form name, email, first name, last name, and a concatenated string of any custom answers (label: value pairs joined by semicolons). Skip any submission missing an email.
Step 3. Call Google Sheets Append Values once per run with all the new rows batched together. Target a spreadsheet ID and sheet/tab name the user configures at setup. Use valueInputOption USER_ENTERED so timestamps render as dates and emails stay as text. The sheet is assumed to already have a header row with matching columns.
Step 4. Update the stored high-water mark to the created_at of the latest submission appended, so the next run starts exactly where this one left off. If no submissions were returned, leave the high-water mark unchanged and exit cleanly.
Configurable inputs at setup: Kajabi site ID, optional list of form IDs to include (default: all forms on the site), Google Sheets spreadsheet ID, sheet/tab name, and the column order the user wants. Surface these as workflow inputs so the user can edit them later without re-authoring.
Required integrations: Kajabi (List Form Submissions) and Google Sheets (Append Values).
Additional information
What does this prompt do?
- Checks Kajabi every 15 minutes for any new form submissions across your site.
- Captures the lead's email, name, form name, submission time, and any custom answers.
- Appends each submission as a new row at the bottom of your designated Google Sheet.
- Never duplicates or skips a row, because each run only grabs submissions newer than the previous run.
What do I need to use this?
- A Kajabi account on the Pro plan, or the Public API add-on enabled, with permission to create an API key.
- A Google account that can edit the spreadsheet you want to track leads in.
- A Google Sheet with a header row prepared for the columns you want to capture (email, name, form, submitted at, and so on).
How can I customize it?
- Change how often it runs. Every 5 minutes for hot lead-gen pages, every hour if the volume is low.
- Pick which forms to include. Track every form on the site, or narrow it down to just your high-intent lead magnets.
- Choose which fields land in which columns, including custom form answers, UTM tags, or tags assigned in Kajabi.
Frequently asked questions
How fast will new leads show up in my sheet?
Does this work for every form on my Kajabi site?
Will I get duplicate rows if the workflow runs while a submission is still coming in?
Can I capture custom questions from my Kajabi forms, not just name and email?
What happens to leads that came in before I turned this on?
Stop copy-pasting Kajabi leads into a spreadsheet.
Connect Kajabi and Google Sheets once, and Geni keeps your lead tracker fresh every 15 minutes.