The Scenario
You set up Ko-fi webhooks three months ago because the CSV export was slowing you down. Smart move — except now column A of your "Ko-fi Webhooks" worksheet has 340 rows of raw JSON payloads, and every time you need to answer "how much did I make last month?" you open the workbook and stare at a wall of {"type":"donation","amount":"5.00","currency":"USD",...}. You've been putting off cleaning it because the last time you tried to write a formula to parse JSON in Excel, you gave up after 20 minutes.
The bad version:
- Open one JSON payload, manually copy the fields you need into a template row, and do it again for the next 339 rows
- Try a combination of LEFT, FIND, and MID formulas to extract the
amountfield — it works for 200 rows, then silently fails on rows where the key order is different - Export the column to a Python script you found online, get a CSV back, import it into Excel, and discover the timestamp format is now ISO 8601 instead of the readable date you had before
The thing is, you're an illustrator, not a data engineer. You have commissions to fulfill. The webhook approach was supposed to save you time, not create a second job of cleaning its output.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Excel workbook. It reads the data in your worksheets and, through its built-in Ko-fi integration, can parse structured fields out of raw JSON payloads and write them to a new sheet — in one step. No formulas, no script, no export.
The "Ko-fi Webhooks" sheet has raw JSON payloads in column A from Ko-fi payment events — parse each row and write structured columns: date, type (donation/subscription/commission/shop_order), amount, currency, supporter_email, and message into a new "Parsed Transactions" sheet
What You Get
- A new "Parsed Transactions" worksheet with one row per webhook event
- Columns: date, type, amount, currency, supporter_email, message — in that order, with correct types (date as a date, amount as a number)
- Rows where column A is blank are skipped automatically
- Rows where the JSON is malformed get an error flag in a dedicated "parse_error" column so you can investigate without losing the rest of the batch
What If the Data Is Not Quite Ready
The type field has unexpected values
Some of your older payloads use "Shop Order" with a capital S and space instead of "shop_order". The parsed column is a mess of inconsistent values.
In the "Parsed Transactions" sheet, normalize the type column so that "Shop Order" becomes "shop_order", "Donation" becomes "donation", "Subscription" becomes "subscription", and "Commission" becomes "commission" — update in place
Some payloads are missing the supporter_email field
Older Ko-fi webhooks didn't always include the supporter's email — some rows in "Parsed Transactions" have a blank supporter_email. You need to flag them without losing the revenue data.
In "Parsed Transactions", add a column called "email_missing" and set it to TRUE for any row where supporter_email is blank — leave all other columns unchanged
You have payloads from two different Ko-fi pages mixed together
You run two Ko-fi pages — one for your illustration commissions and one for your Twitch stream. Both webhook logs ended up in column A of "Ko-fi Webhooks" mixed together, and you need to separate them by the page_id field in the JSON.
Parse column A of "Ko-fi Webhooks" — extract the page_id field along with date, type, amount, currency, and supporter_email — then write two separate output sheets: "Parsed Illustration" for rows where page_id is "abc123" and "Parsed Stream" for rows where page_id is "def456"
The full cleanup-and-summary kill chain
You want to go from raw webhook JSON to a clean revenue summary in one shot — parsing, deduplication, and totals all at once.
Parse all Ko-fi webhook payloads in column A of "Ko-fi Webhooks", skip blank rows and flag malformed rows in a "parse_error" column, write clean structured rows to "Parsed Transactions" with columns date/type/amount/currency/supporter_email, then create a "Revenue Summary" sheet showing total revenue and transaction count per type — sorted by total revenue descending
The pattern: ask for the cleanup and the analysis together. You don't have to finish the parsing before you ask for the summary — SheetXAI handles the sequence.
Try It
Get the 7-day free trial of SheetXAI and open any Excel workbook with Ko-fi webhook payloads in column A, then ask it to parse and structure your transaction data. For more Ko-fi workflows, see how to track membership churn and month-over-month growth or build a full supporter CRM from your webhook history, or go back to the Ko-fi integration overview.
