Skip to main content

Patreon Integration

Dispatch integrates with Patreon to receive webhook events when patrons join, pledges change, or posts are published on your campaign.

Connecting Patreon​

  1. Navigate to your project's Sources page
  2. Click Add Source and pick Patreon
  3. Authorize the Dispatch Patreon app (scopes: identity, campaigns, w:campaigns.webhook)
  4. Pick the campaign you want to receive events from
  5. Choose which triggers to receive (members, pledges, posts)

Dispatch will:

  • Create a webhook on your Patreon campaign pointing at the Dispatch ingress URL
  • Persist the per-webhook signing secret returned by Patreon so signatures can be verified
  • Create a provider = "patreon" endpoint configured for the selected triggers

Supported Triggers​

The event type is extracted from the X-Patreon-Event header on each delivery.

TriggerDescription
members:createA new patron joins (only fires the first time there is no prior payment with the creator)
members:updateMembership state changes — including renewal, payment status, or tier change
members:deleteMembership is removed (only when no prior payment exists)
members:pledge:createA pledge is created
members:pledge:updateAn existing pledge is upgraded, downgraded, or otherwise modified
members:pledge:deleteA pledge is cancelled
posts:publishA new post is published on the campaign
posts:updateA post is edited
posts:deleteA post is removed

Signature Verification​

Patreon webhooks include an X-Patreon-Signature header containing an HMAC-MD5 hex digest of the request body, signed with the per-webhook secret returned by the Patreon API when the webhook was created. Dispatch verifies this on every delivery; requests with a missing or invalid signature are rejected.

X-Patreon-Signature: <hex-encoded-hmac-md5>
X-Patreon-Event: members:pledge:create

The signing secret is set automatically when you connect Patreon through Dispatch. If you create a Patreon source manually without a signing secret, deliveries are not accepted unsigned — each request must carry a project API key, or the source must be explicitly marked Public in its settings.

Auto-Formatted Embeds​

When no custom template is assigned, Dispatch auto-detects Patreon payloads and renders specialised embeds covering every field documented in the Patreon API v2 reference.

Member events​

Field surfacedSource attribute
Title / namefull_name (falls back to email)
Statuspatron_status (Active / Declined / Former) or is_follower
Membership typeis_free_trial / is_gifted (rendered as headline)
Pledgecurrently_entitled_amount_cents + pledge_cadence (monthly / annual)
Next charge amountwill_pay_amount_cents (only shown when it differs from current pledge — e.g. mid-cycle upgrade)
Lifetimecampaign_lifetime_support_cents (with legacy fallback to lifetime_support_cents)
Last chargelast_charge_status — every documented status (Paid, Declined, Deleted, Pending, Refunded, Refunded by Patreon, Partially Refunded, Fraud, Free Trial, Refund Pending, Refund Declined, Other)
Charged onlast_charge_date
Next chargenext_charge_date
Pledged sincepledge_relationship_start
Emailemail (when the campaigns.members[email] scope is granted)
Tiersresolved from relationships.currently_entitled_tiers via the included array

Pledge events​

FieldSource attribute
Title / patronresolved from relationships.patron via included
Amountamount_cents
Cappledge_cap_cents
Createdcreated_at
Declineddeclined_since (turns the embed red)
Feespatron_pays_fees

Post events​

FieldSource attribute
Title (linked)title + url
Descriptioncontent with HTML tags stripped and entities decoded; falls back to teaser_text when empty
Authorresolved from relationships.user via included
Publishedpublished_at
Visibilityis_public → Public / Patrons only
Billingis_paid (post incurs a charge)
Processingapp_status when not published
Tiersresolved from relationships.tiers via included
Embedembed_url

Disconnecting​

To disconnect a Patreon campaign:

  1. Open Sources and find the Patreon endpoint
  2. Click Disconnect
  3. Dispatch deletes the webhook from your Patreon campaign and removes the endpoint