Back to Payhip in Google Sheets
SheetXAI logo
Payhip logo
Payhip · Google Sheets Guide

Build a New Subscriber Report From Payhip Webhook Data in Google Sheets

2026-05-14
5 min read

The Scenario

You run a membership community on Payhip and pipe subscription.created webhooks into a Google Sheet via Zapier — it's been running for four months. Column B of the "Subscriptions" tab holds the raw event JSON. Nobody has looked at it in weeks because nobody knows what to do with raw JSON.

This morning you got a Slack message from a co-founder: "Can you send me a breakdown of new subscribers by plan for the last three months? Trying to prep for the investor sync."

The investor sync is at 9 AM tomorrow.

The bad version:

  • Open the first row in column B, parse the JSON manually to find the plan name and the subscription date.
  • Tally it somewhere — a separate tab, a sticky note, a running total in your head.
  • Work through all 400-odd rows in the tab, trying to keep a running count by plan without losing track of which rows you've processed.

You have the data. The output someone needs is a simple table: plan names down one side, months across the top, subscriber counts inside. Getting from A to B should not take until midnight.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads the raw webhook data in column B, extracts the subscriber details, and pivots them into a summary table — all in one pass.

Read the Payhip subscription.created webhook data in column B, extract subscriber email, plan name, and date, then pivot by plan into a summary table on the "Summary" sheet.

What You Get

  • A pivot table lands on the "Summary" sheet with plan names in one axis and subscriber counts grouped by month in the other.
  • The source rows in column B are read but not modified.
  • Any row where the JSON is malformed or missing the expected fields is noted in a separate column rather than silently excluded from the count.

What If the Data Is Not Quite Ready

Some webhook rows are subscription.updated events mixed in with subscription.created

For each row in column B of the "Subscriptions" tab, check whether the Payhip event type is "subscription.created". Process only those rows — extract subscriber email, plan name, and date — and pivot them into a summary table by plan and month on the "Summary" sheet. Skip all other event types.

Plan names in the webhook data use internal slugs instead of display names

Parse the Payhip subscription.created events in column B of the "Subscriptions" tab. Map the plan slugs to display names using this table: "tier_1" → "Starter", "tier_2" → "Pro", "tier_3" → "Enterprise". Then pivot subscriber counts by display plan name and month into the "Summary" sheet.

You want the summary broken down by both plan and acquisition month, plus a totals row

Parse the Payhip subscription.created webhook JSON in column B of the "Subscriptions" tab. Extract plan name and subscription date. Build a pivot table on "Summary" with plan names as rows, calendar months as columns, subscriber counts as values, and a "Total" row at the bottom summing each plan's full count.

Full pipeline — parse events, map slugs, filter to last 90 days, pivot, and add MoM growth

Parse subscription.created events from column B of "Subscriptions". Filter to events from the last 90 days. Map plan slugs to display names. Pivot subscriber counts by plan and month on "Summary". Add a "MoM Growth" row showing percentage change between each adjacent month column.

The investor summary you needed this morning is ready before the sync.

Try It

Get the 7-day free trial of SheetXAI and open the sheet where your Payhip subscription webhook data is accumulating, then ask it to pivot new subscriber counts by plan and month. To understand cancellations in the same dataset, see Track Churn From Payhip Subscription Deleted Events in Google Sheets or return to the Payhip integration overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more