Guides · Gumroad

Get a Mac notification for every Gumroad sale

Gumroad's Ping posts to a URL of yours the moment someone buys. Point it at EventBar and every sale pops up in your menu bar, with today's and this month's count a glance away, without refreshing the Gumroad dashboard. Ping is form-encoded rather than JSON; EventBar reads it either way.

Needs: the free EventBar app on your Mac, an EventBar account, and a Gumroad account. About five minutes. Gumroad preset, signature verified.

Steps

  1. Create the webhook URL. In the EventBar dashboard, open the Webhooks tab, pick the group this belongs to (one group per site or app is the usual shape), choose the provider Gumroad, name it, and press Create. Copy the URL; it stays visible and can be rotated any time.
  2. Paste it into Gumroad. In Gumroad: Settings, then Advanced, then the Ping section. Paste the URL into Ping endpoint and save. To have pings signed, turn on Sign pings in the same section and paste the secret Gumroad shows into the hook card in EventBar. Send test ping to URL then resends your latest sale with test set, and it shows up as sale.test.
  3. Trigger one. Most services offer a test delivery; otherwise do the real thing once. It shows up in the dashboard's Events tab within a second and in the menu bar, as an undefined type named after the event. That first one is your proof the wiring works.
  4. Make it read well. Press Define on the new type and give it a title and a body template. Fields come from the payload, nested ones with dots. The table below is a starting point.

This preset is on Plus and Pro. Free can do the same with a Generic JSON hook and a type field of resource_name, without the signature check, but a retried ping can count twice and a test ping counts as a sale: Gumroad sends no id field for a Generic JSON hook to dedupe on.

What you'll see

TypeTitleBody template
saleSale{product_name} · {price} US cents · {email}
sale.testTest ping{product_name} · {email}
refundRefund{product_name} · {price} US cents · {email}
cancellationCancellation{product_name} · {user_email}

Every type has its own switch in the menu bar, so a noisy one can be quiet on this Mac and still counted. Counts cover the last hour, 24 hours, 7 days, 30 days and all time.

Worth knowing

The full contract, including how each preset reads a payload and what the answers mean, is in the API docs. Something about Gumroad's payload changed? Tell us and we'll fix the guide.