Log every Gumroad sale to Google Sheets and Slack

The moment a Gumroad sale comes in, drop a full row into your revenue ledger and ping the team channel with the summary.

Deterministic Code
GumroadGoogle SheetsSlack BotSalesFinanceData SyncNotifications & Alerts
PromptCreate

Whenever Gumroad fires a sale webhook (the sale resource_subscription), append a new row to my Google Sheets sales ledger using Append Values, and post a short Slack notification summarising the sale.

Trigger: Gumroad webhook, sale resource. The full sale payload is available on the incoming event, so no extra Gumroad reads are required. Get Sale is available if any field needs enrichment.

Filter first: if the payload indicates the sale was refunded (any refunded flag or refund timestamp) OR is a test purchase (test flag), stop the workflow without writing anything. Only real, non-refunded sales should make it past this step.

Step 1: Google Sheets Append Values on my sales ledger spreadsheet. Append a single new row with these columns in order: sale timestamp (ISO8601 from the payload), buyer email, product name, variant (blank if no variant), price in dollars (convert from cents, formatted like 19.00), currency (uppercase, e.g. USD), quantity, and referrer. Use USER_ENTERED so the timestamp and numbers keep their native types in the sheet.

Step 2: Slackbot Send a Message to the sales alerts channel. Keep the copy short and scannable, one line is fine: product name, price in dollars with currency, and buyer email. Example: "New sale: Indie Handbook — $19.00 USD — buyer@example.com".

This is deterministic fan-out, no AI drafting or judgement calls. Every field is known upfront from the webhook payload. If either step fails, surface the error but do not retry the other step blindly — the sheet is the source of truth for the ledger.

What does this prompt do?

  • Fires the instant a new Gumroad sale is completed, using Gumroad's sale webhook
  • Appends a new row to your Google Sheets ledger with the sale timestamp, buyer email, product name, variant, price in dollars, currency, quantity, and referrer
  • Posts a short Slack message summarising the sale (product, price, buyer email) to the channel your team actually checks
  • Skips refunded sales and test purchases so the ledger and the notifications stay accurate

What do I need to use this?

  • A Gumroad account that is actively taking sales
  • A Google Sheet with a header row ready for the sale columns
  • A Slack workspace and the channel where you want sale pings to land

How can I customize it?

  • Change the Slack channel or route different products to different channels
  • Swap the spreadsheet or tab you write to, or add extra columns (order ID, discount code, tax)
  • Adjust the Slack summary wording, or include the variant and quantity in the ping

FAQs

How fast does the sheet and Slack update after a sale?
Effectively in real time. Gumroad calls the webhook the moment the sale is completed, so the row lands in your sheet and the Slack ping fires within a few seconds.
Will refunded orders or test purchases show up in the ledger?
No. Refunded sales and test purchases are filtered out before anything is written, so your sheet stays clean.
Is the price logged in dollars or cents?
Dollars. Gumroad sends the amount in cents, and the workflow converts it before writing the row and before posting the Slack message.
Can I add or remove columns later?
Yes. The column list is defined in the workflow, so you can add fields like order ID or drop the referrer without rebuilding anything.
Does this replace Gumroad's own analytics?
No, it complements them. This is for teams who want their own running ledger they can pivot, chart, and share, plus the live Slack visibility.

Related templates

Build a credential rotation checklist when someone leaves

When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.

1Password
Rippling
Slack Bot
+1
Agentic Task
Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task

Stop copy-pasting Gumroad sales into a spreadsheet.

Wire your sales ledger and your Slack channel up once and let every future sale log itself.