<!-- BusyBot node reference — https://busybot.net/tools/gumroad-trigger/ -->

> Node: Gumroad Trigger (`gumroad_trigger`) · Webhook trigger · v1
> Category: Sales · Credentials: Gumroad (`gumroadApi`)
> Updated: 2026-08-16

# Gumroad Trigger

> Triggers on Gumroad events such as sales, refunds, disputes, and cancellations

## Overview

Receives webhook notifications from Gumroad when commerce events occur on your digital products. Supports five resource subscription types: sale (new purchase), refund (purchase refunded), dispute (chargeback filed), dispute_won (chargeback resolved in seller favor), and cancellation (subscriber cancelled). Gumroad sends webhook payloads as application/x-www-form-urlencoded POST requests containing detailed transaction data including product info, buyer email, price, currency, card details, and subscription metadata. No signature verification is available from Gumroad. Useful for automating order fulfillment, license key delivery, refund processing, churn tracking, and sales analytics workflows.

**Category:** Sales  
**Tool Name:** `gumroad_trigger`  
**Version:** 1

**Appearance:** Icon: `lucide-CircleDollarSign` | Color: `#ff90e8`

## Node Type

**Trigger** — webhook (receives incoming HTTP callbacks)

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | None (trigger node) |
| Output | `Output` |

## Credentials

This tool requires **Gumroad** credentials.
See the [Credentials Guide](https://busybot.net/credentials/gumroad-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Cancellation | `cancellation` |
| Dispute | `dispute` |
| Dispute Won | `dispute_won` |
| Refund | `refund` |
| Sale | `sale` |

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Resource | `options` | Yes | — | The resource type that will fire the webhook event. Each type creates a separate subscription on Gumroad. |
| | | | | Options: `cancellation` (a subscriber cancelled), `dispute` (a chargeback was raised against a sale), `dispute_won` (a sale dispute was won), `refund` (a sale was refunded), `sale` (a new purchase) |

To listen for more than one resource, add one Gumroad Trigger node per resource type.

## Output Data

Each delivery produces one output item. The Gumroad payload fields are placed directly on the item alongside three metadata fields:

```json
{
  "_trigger": "gumroad_webhook",
  "_timestamp": "2026-01-01T00:00:00.000Z",
  "_webhookEvent": "sale",
  "seller_id": "",
  "product_id": "",
  "product_name": "Example Product",
  "permalink": "example",
  "product_permalink": "https://gumroad.com/l/example",
  "email": "buyer@example.com",
  "price": 999,
  "gumroad_fee": 100,
  "currency": "usd",
  "quantity": 1,
  "order_number": 1,
  "sale_id": "",
  "sale_timestamp": "2026-01-01T00:00:00.000Z",
  "purchaser_id": "",
  "subscription_id": "",
  "card": {
    "visual": "**** **** **** 4242",
    "type": "visa",
    "expiry_month": 12,
    "expiry_year": 2027
  },
  "offer_code": "",
  "license_key": "",
  "ip_country": "US",
  "custom_fields": {},
  "variants": {},
  "url_params": {},
  "shipping_information": {},
  "is_recurring_charge": false,
  "test": true,
  "refunded": false,
  "disputed": false,
  "dispute_won": false
}
```

- `_trigger` — always `gumroad_webhook`.
- `_timestamp` — ISO 8601 timestamp of when the delivery arrived.
- `_webhookEvent` — the resource that fired: taken from the payload's `resource_name` when Gumroad supplies it, otherwise derived from the `cancelled`, `dispute_won`, `disputed` and `refunded` flags, defaulting to `sale`.
- `price` is in the currency's smallest unit (for example cents), and `test` is `true` for test purchases.

Field availability depends on the product and the event — subscription fields such as `subscription_id` and `is_recurring_charge` only appear for membership products, and `license_key` only appears when the product issues licences. Reference values downstream by expression, for example `{{ $json.email }}` or `{{ $json.product_name }}`.

## Usage Examples

- Start a workflow when a digital product is sold on Gumroad
- Trigger a license key delivery email when a Gumroad sale occurs
- Automate refund processing when a Gumroad refund is issued
- Track subscriber churn when a Gumroad subscription is cancelled
- Alert on payment disputes from Gumroad customers

## Example Configuration

Fire on every new sale:

```json
{
  "type": "gumroad_trigger",
  "parameters": {
    "resource": "sale"
  }
}
```

Fire when a purchase is refunded:

```json
{
  "type": "gumroad_trigger",
  "parameters": {
    "resource": "refund"
  }
}
```

Track subscription churn:

```json
{
  "type": "gumroad_trigger",
  "parameters": {
    "resource": "cancellation"
  }
}
```

Alert on chargebacks:

```json
{
  "type": "gumroad_trigger",
  "parameters": {
    "resource": "dispute"
  }
}
```

### Trigger Behavior

- **Activation:** When the workflow is activated, a webhook endpoint is registered with the service.
- **Deactivation:** The webhook is automatically unregistered when the workflow is deactivated.
- **Payload:** The incoming webhook payload is parsed and output as workflow items.
- **Verification:** Supports signature verification where applicable.

## Tips

Entry point that fires when Gumroad sends a webhook for a subscribed resource event. Select the resource type to listen for: Sale (new purchase), Refund (purchase refunded), Dispute (chargeback filed), Dispute Won (chargeback resolved), or Cancellation (subscription cancelled). Each resource type creates a separate webhook subscription on Gumroad. Payloads include detailed transaction data such as product info, buyer email, price, currency, and subscription metadata.