Log Gumroad and Payhip sales and refunds in a unified Google Sheet
Go to WorkflowDescription
Quick overview
Creators who sell digital products on both Gumroad and Payhip and want one sales ledger instead of two CSV exports.
How it works
Two webhooks receive Gumroad's Ping and Payhip's paid / refunded events.
Each request is verified: Gumroad by your seller_id, Payhip by its signature (SHA-256 of your API key). Anything else is ignored.
Both payloads are mapped to one schema: order ID, platform, status, date, product, quantity, currency, gross, fees, net, buyer email.
Rows are appended or updated by order ID, so webhook retries never duplicate and refunds update the original sale. Payhip fees are included, so net is calculated.
Setup
Create a Google Sheet with a Sales tab and the header row listed in the workflow's main sticky note.
Put your Gumroad seller ID and the SHA-256 hash of your Payhip API key into the two check nodes.
Connect Google Sheets and paste your sheet URL.
Publish, then paste the production webhook URLs into Gumroad (Settings > Advanced > Ping) and Payhip (Settings > Developer > Webhooks).
Requirements
Gumroad and/or Payhip account, Google account, a publicly reachable n8n instance (Cloud or self-hosted).
Customization
Add columns in the two Normalise code nodes.
This workflow was created by Casey Baker and shared publicly on the n8n community template library. n8nFind indexes it for discovery — the workflow remains the property of its original creator.