Patreon is the one provider on this list you might already be using. If you have a campaign with patrons on it, the pitch here is narrow and specific: keep the audience and the billing where they are, and let Ghost hold the content behind a gate that opens by itself.
There is one behaviour worth understanding before you map more than one tier, so it goes first.
The cancellation behaviour
When a patron cancels, every tier PayGlue granted them is revoked, not just the one they left.
The reason is in Patreon’s payload rather than in anybody’s choice. On cancellation, Patreon does not reliably say which tier the patron was on. Faced with that, PayGlue removes every active Patreon-sourced mapping for that member rather than guessing one and getting it wrong half the time.
For most campaigns this never comes up, because a patron holds one tier. If you map several and expect somebody to hold two at once, this is the thing to design around. Everything else about Patreon behaves the way you would expect.
The other thing: no checkout link
Patreon has no checkout URL to generate. Patrons join through your campaign page, always.
That is not a gap in the integration, it is how Patreon works. In the Buy Button editor you turn off “Link to a product” and paste your campaign’s join URL. The button then links to Patreon, and the Ghost access still arrives automatically through the webhook once somebody pledges.
What you need
- A Ghost site you administer
- A Patreon creator account with an active campaign
- Admin access to both
Connect Ghost first
In Ghost, open Settings, then Integrations, then Add custom integration. Name it PayGlue and copy the Admin API key along with your site URL.
Register a client on Patreon
In the Patreon developer portal at patreon.com/portal, register a client for your campaign and generate a Creator’s Access Token.
Make sure the token carries the campaigns.members[email] scope. This is the single most common thing to get wrong, and it fails in two places at once: without it PayGlue can neither read your tier list nor see patron email addresses. The symptom is an empty dropdown where your tiers should be, which looks like a connection problem and is not.
Paste the token into the Access Token field on the Patreon connection page in PayGlue.
That same token is what fetches your tiers, so they appear as a dropdown when you map. No typing tier names by hand, unlike Ko-fi.
Register the webhook
Still in the developer portal, register a webhook pointing at the Webhook URL shown on your Patreon connection page, and enable three triggers:
members:pledge:createmembers:pledge:updatemembers:pledge:delete
Patreon then shows a Webhook Secret. Copy it into PayGlue and click Save credentials.
Both values are needed. With only the token, the connection stays incomplete.
Run a health check, and know its limits
Green means the webhook secret is saved. It does not mean Patreon is delivering anything, because Patreon has no endpoint PayGlue can ping to find out.
For a real check, send a test webhook from the developer portal, then open Analytics, then Webhook Events.
Which events do what
Patreon puts the event type in the X-Patreon-Event header rather than in the body, which is unusual but only matters if you are debugging raw deliveries.
| Patreon event | What happens in Ghost |
|---|---|
members:pledge:create, members:create |
Access granted for the patron’s current tiers |
members:pledge:update with status active |
Access granted for the patron’s current tiers |
members:pledge:update with status former or declined |
All Patreon access revoked |
members:pledge:delete, members:delete |
All Patreon access revoked |
Note the third row. A declined payment revokes access the same way a cancellation does. That is the correct behaviour and it will occasionally surprise a patron whose card bounced, so it is worth a line in your own onboarding email.
Map a tier to a Ghost tier
Open Mappings and pick a Patreon tier from the dropdown. Choose which Ghost newsletter the patron should be subscribed to and which welcome email they get, then save.
From then on, every pledge, tier change and cancellation moves Ghost access on its own.
Test it
Send a test webhook from the developer portal, or wait for a real patron. The event should appear as Processed and the patron’s email should turn up as a member in Ghost Admin.
If the member is not created, open the event and read the error. A missing email in the payload is the token scope again.
Then test a cancellation. Given the revoke-everything behaviour above, that is the half worth confirming with your own eyes rather than assuming.
Where Patreon fits
Choose it when the audience is already there. Moving patrons to a new billing relationship costs you some of them, and if Patreon is working, the sensible move is to add Ghost behind it rather than to replace it.
Look elsewhere when you are starting fresh and would rather not hand over Patreon’s cut, or when you want the tax handled for you. Patreon is not a merchant of record, so VAT stays your problem. What that means.