
Ghost connection settings in Core Connections showing API keys, URL, and webhook configuration
For initial setup instructions, see Connecting Ghost.
How it works
- You connect Outpost to Ghost using Content API and Admin API keys
- Outpost sets up real-time notifications on your Ghost site to receive member, tag, and site settings events
- When a member is created, updated, or deleted in Ghost, Outpost updates its records automatically
- When Outpost applies or removes a label, it updates the member in Ghost to match
- Tiers, posts, tags, and newsletter segments are read from Ghost to drive Outpost’s automation and targeting
What syncs
Ghost is the source of truth for members, subscriptions, and tiers. Stripe billing flows directly between Stripe and Ghost. Outpost reads that data to drive automation, segmentation, and conversion tools.
Connection settings
The Ghost connection is configured under Core Connections in the left navigation. The settings include:Member sync
Ghost → Outpost
When a member event occurs in Ghost, Outpost automatically:- Creates or updates the matching member record in Outpost
- Syncs subscription status, tier, and payment information
- Applies any matching auto-subscribe rules for newsletters
- Updates segments and triggers any label-based automation flows
- Records the event in the Activity Log
Outpost → Ghost
When Outpost applies or removes a label (via automation, bulk action, or manual change):- Outpost updates the member’s labels in Ghost to match
- Ghost reflects the change in its member portal
- Any Ghost-side automations tied to that label are triggered
Tiers
Tiers are created and managed in Ghost. Outpost reads them so they’re available for:- Member filtering and segmentation
- Offer and access rule configuration
- Automation trigger conditions (e.g., “when a member upgrades to Premium tier”)
- Email campaign targeting
- Subscription schedules and complimentary subscriptions
What Outpost monitors
Outpost sets up notifications on your Ghost site as soon as you connect. These are the events it listens for:
When a paying subscriber cancels or reinstates auto-renewal, Outpost detects the change from Ghost’s member update and from Stripe. Cancellation of auto-renewal triggers the cancellation emails and the staff notification, and both changes are recorded in the Activity Log. When a change arrives from both Ghost and Stripe, Outpost only processes it once.
A site change refreshes your tiers only. Your site’s name, URL, time zone, and site icon come across when you refresh your site settings, described under Manual resync. Ghost’s support email address comes across in the same refresh, but only if Outpost has no sender address of its own. Depending on how your site sends email, that field is Email Reply-to Address or Email from address in Email Design Settings.
Post notifications are set up separately rather than at connection. Outpost adds them when you turn on Typesense search or the deprecated Algolia integration, and when you open your Events list. They cover posts added, updated, and deleted, and Typesense adds the same three for pages. Saving your Ghost connection settings re-registers these post and page notifications too, so they stay in place after you update your API keys or reconnect Ghost.
Sync checks
Day to day, your members and labels stay current through real-time updates from Ghost. To catch anything that falls out of step, a full check against Ghost compares your member counts and labels and repairs what it finds: renamed labels are updated, labels deleted in Ghost are removed, and member counts are resynced. Outpost runs this check automatically every three hours. If you’d rather not wait for the next one, refreshing your site data is the quickest fix for most differences. Each time the check runs, it allows for a small amount of normal variation in member counts (under roughly half a percent of your total, and always at least a couple of members) so it isn’t chasing one or two people who just signed up or changed tiers. Once a gap grows past that, it resyncs. If the difference is very large, it deliberately holds off on fixing everything at once so it doesn’t overwhelm your Ghost site with requests, and the mismatch is flagged for the Outpost team to resync safely instead.Manual resync
If sync gets out of state, refresh your site data from Account → Publication Details. In the Refresh Site Settings card:- Site data: Re-imports your Ghost members, labels, and tags, updating existing records and creating new ones. Outpost emails you when it finishes.
- Site settings: Re-pulls your site’s details from Ghost (URL, name, time zone, tiers, and the site icon Outpost uses as your logo) without touching member data. Ghost’s name, URL, and time zone replace any you changed in Outpost, and so does its site icon if it has one. Your sending address is left as you set it: Outpost takes Ghost’s support email address only while it has no sender address of its own, the Email Reply-to Address or Email from address field in Email Design Settings, depending on how your site sends email. If your site’s URL has changed in Ghost, Outpost also updates the parts of your setup that still point at the old address.
Ghost API version
Outpost uses the Ghost Admin API v5. Your Ghost site must be running Ghost 5.x or later.Large sites
For sites with large member counts, Outpost automatically manages sync performance:- Bulk sync operations are spread out over time
- Member updates are processed in batches
- Failed requests are retried automatically
Related features
Stripe Integration
Stripe works alongside Ghost for subscription billing.
Activity Log
View Ghost sync events and errors.
Spam Filtering
Filter spam members synced from Ghost.
Members
Manage the member records synced from Ghost.
Ghost Compatibility FAQ
Which Ghost versions, themes, and features Outpost works with.
FAQ
Do I need to create a custom integration in Ghost?
Do I need to create a custom integration in Ghost?
Yes. Go to Ghost Admin → Settings → Integrations → Add Custom Integration. This gives you the Content API key and Admin API key that Outpost needs.
What happens if I disconnect Ghost?
What happens if I disconnect Ghost?
Outpost stops receiving member updates. Existing member data in Outpost is preserved, but it will become stale as Ghost members change. Labels applied by Outpost will remain in Ghost.
Why are some members not syncing?
Why are some members not syncing?
Check the Activity Log for sync errors. Common causes include incorrect API keys or connection issues on high-volume sites. Use the manual resync option to re-import all members.
Why is my member count slightly different in Outpost and Ghost?
Why is my member count slightly different in Outpost and Ghost?
A small difference is normal and expected. Here’s why:
- Sync timing and tolerance. Members sync from Ghost in real time, so a total can lag by a member or two while updates arrive. A full count check against Ghost tolerates a tiny gap by design (under about half a percent of your total, and always at least a couple of members) so it isn’t chasing one or two people who just signed up, were removed, or changed tiers. Once a gap crosses that point, the check resyncs. A very large gap (say, right after a bulk import) is flagged for the Outpost team to resync safely instead.
- Marketing campaigns leave out opted-out members. When you build an email campaign and mark it as a marketing email, Outpost automatically excludes anyone who has opted out of marketing (members with the
Marketing_OptOutlabel) when it works out who will receive it. That makes a campaign’s audience smaller than your overall member count, even with the same tier or segment selected. New campaigns are treated as marketing by default, and you can see or adjust the excluded labels in the campaign’s audience settings. - Labels applied in bulk in Ghost. These do not change your member totals, but Ghost’s bulk Add label and Remove label actions do not reach Outpost right away, so audiences filtered on that label can briefly count too few or too many members. Refreshing your site data brings the two back in line. See labels for details.
Can Outpost create members in Ghost?
Can Outpost create members in Ghost?
Usually members are created in Ghost (via signup forms, Stripe checkout, or import) and synced to Outpost automatically. Outpost does create a Ghost member when an Outpost-side action needs one that doesn’t exist yet: for example, when you add a member manually in Outpost or grant a complimentary subscription to someone who isn’t in Ghost.

