Skip to main content
Ghost is Outpost’s primary integration. Your Ghost site is the source of truth for members, subscriptions, tiers, and content. Outpost connects to Ghost to read that data and layer on growth, retention, and automation tools.
Ghost integration settings with Content API key, Admin API key, API URL, and webhook URL fields

Ghost connection settings in Core Connections showing API keys, URL, and webhook configuration

For initial setup instructions, see Connecting Ghost.

How it works

  1. You connect Outpost to Ghost using Content API and Admin API keys
  2. Outpost sets up real-time notifications on your Ghost site to receive member and post events
  3. When a member is created, updated, or deleted in Ghost, Outpost updates its records automatically
  4. When Outpost applies or removes a label, it updates the member in Ghost to match
  5. 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.
Outpost does not create or modify Ghost tiers, subscriptions, or posts. It reads this data and writes labels back to Ghost, and creates a Ghost member when an Outpost-side action (like adding a complimentary member) needs one that doesn’t exist yet.

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:
  1. Creates or updates the matching member record in Outpost
  2. Syncs subscription status, tier, and payment information
  3. Applies any matching auto-subscribe rules for newsletters
  4. Updates segments and triggers any label-based automation flows
  5. Records the event in the Activity Log

Outpost → Ghost

When Outpost applies or removes a label (via automation, bulk action, or manual change):
  1. Outpost updates the member’s labels in Ghost to match
  2. Ghost reflects the change in its member portal
  3. 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:

What Outpost monitors

Outpost automatically listens for the following events from Ghost when you connect:

Sync checks

Day to day, your members and labels stay current through real-time updates from Ghost. If something looks 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. This check runs on request rather than on a fixed timetable. You can start one yourself at any time by refreshing your site data, which is the quickest fix for most differences. The Outpost team can also run a deeper check for you. When the check does run, 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, timezone, tiers) without touching member data.
Turn on the option you need and click Refresh.
A refresh is useful after initial setup, after restoring a Ghost backup, after bulk changes in Ghost (imports or bulk label edits), or any time you suspect members are out of sync. It runs in the background, and on large sites it can take several minutes.

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

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.

FAQ

Yes. Go to Ghost Admin → Settings → Integrations → Add Custom Integration. This gives you the Content API key and Admin API key that Outpost needs.
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.
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.
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 carrying the Marketing_OptOut label) 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.
If the gap is large or doesn’t close on its own, refresh your site data, and check the Activity Log for sync errors.
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.
Outpost reads Ghost’s newsletter segments and member newsletter preferences. It uses this data for targeting but does not send emails through Ghost: all emails are sent via Outpost’s built-in Mailgun infrastructure. No separate Mailgun setup is required.