What connecting Ghost does#

PilotDeck researches, drafts and queues content for review. A CMS connection is the last hop: once you approve a draft, PilotDeck sends it to your CMS for you. Without a connection, every article and fix waits for you to paste it in yourself. The example below uses a PilotDeck site named pilotdeck-testwebsite and a Ghost site at https://your-site.example.com.

Two values, no mapping

You give PilotDeck your Ghost site address and the Admin API key of a Custom Integration. PilotDeck creates each article as a Ghost post with its tags, image, excerpt and SEO fields.

Drafts first

The default publish mode is Draft only. Posts arrive in Ghost as drafts, so nothing goes live until you publish it there.

Reversible

You can disconnect at any time from the same screen. Disconnecting stops publishing right away, and you reconnect by entering the two values again.

Before you start#

You needDetails
A Ghost siteGhost(Pro), self-hosted, or a local Ghost all work, as long as PilotDeck can reach it (see below).
A Ghost Admin loginAn account that can open Ghost Admin at https://your-site.example.com/ghost and add a Custom Integration.
A PilotDeck loginPermission to change integrations for the site. Without it the Connect button is unavailable.
A public addressThe Ghost URL is called by the PilotDeck servers, not by your browser. A site that only opens on your own computer or inside a private network cannot be reached, and the test fails.
Treat the key like a password. The Admin API key can create and read posts on your Ghost site. Never paste it into chat, tickets or screenshots. Every credential in this guide is masked, and this guide shows it only as <your-admin-api-key>.

Overview#

  1. 1Sign in to Ghost AdminYou
  2. 2Add a custom integration named PilotDeckYou
  3. 3Copy the Admin API key and the API URLYou
  4. 4Open Settings > Integrations in PilotDeck and pick GhostYou
  5. 5Paste both values and choose a publish modeYou
  6. 6Test the connection, then connect. PilotDeck signs each request with a short-lived tokenPilotDeck
  7. 7Send a test draft and check it in GhostVerify
1

Sign in to Ghost Admin#

You

Open https://your-site.example.com/ghost and sign in with an account that can manage integrations.

Email and password filled in. The email is a placeholder and the password shows dots.
After sign-in you land on the Ghost dashboard.
2

Add a custom integration#

You

In Ghost Admin open Settings, then find Integrations under the Advanced group. Click Add custom integration and name it PilotDeck.

Settings > Advanced > Integrations. The Integrations card has the Add custom integration button.

Ghost opens the integration page. It shows a Content API key and an Admin API key, plus the API URL.

3

Copy the Admin API key and the API URL#

You

Copy the Admin API Key. It is one value made of an id and a secret joined by a colon, and the secret part is a long hex string. Copy the whole value.

The integration page shows the Content API key, the Admin API key and the API URL. Use the Admin API key and the API URL. Every value is masked in this screenshot.

Copy the API URL from the same page. It is your site root, such as https://your-site.example.com. PilotDeck adds the /ghost/api/admin path itself, and it removes a trailing slash if you leave one.

Use the Admin key. Do not use the Content API key. It is read-only and cannot create posts. PilotDeck needs the Admin API key.
4

Open Integrations in PilotDeck#

You

In PilotDeck, make sure the correct site is selected in the top-left site switcher (here, pilotdeck-testwebsite). Go to Settings > Integrations and find the CMS Connection card. With nothing connected it reads "No CMS connected".

Settings > Integrations > CMS Connection, before connecting.

Click Ghost (Admin API key). A short "How to connect Ghost" panel appears next to the form, with these same steps.

The Ghost form: setup notes on the left, API URL, Admin API Key, optional category and publish mode on the right.
5

Paste the values and choose a mode#

You
  1. Paste the API URL into Ghost API URL.
  2. Paste the key into Admin API Key. The field shows dots, so you can't read it back.
  3. Category is optional. Ghost has no categories, only tags, so PilotDeck adds the category to the post as a tag.
  4. Pick a Publish mode. Start with Draft only (see Publish modes).
6

Test, then connect#

PilotDeck

Click Test connection first. PilotDeck asks Ghost for one post, which only works with a valid Admin key, and nothing is saved. You should see "Looks good, credentials work."

A passing test. The key field displays dots only and the URL is a placeholder.

Then click Connect. The card turns green with an ACTIVE badge.

Connected. The card shows ACTIVE, the publish mode, an optional category, the test buttons and Disconnect.
How PilotDeck signs in. For every request PilotDeck builds a new signed token from your key. Each token lasts five minutes, which is what Ghost requires. You do not need to refresh or renew anything.
7

Verify with a test post#

Verify

On the connected card, click Send test draft. PilotDeck sends a sample article to Ghost as a draft, and the card shows "Test draft created." with a link to it. In Ghost Admin open Posts > Drafts and look for it.

The card after Send test draft.
The sample article in Ghost under Posts > Drafts, created from PilotDeck.
Send test live publishes the sample for real, so use it only on a site where that is fine. You can delete test posts in Ghost afterwards.
Done. Approved content for this site now goes to Ghost in the mode you chose.

Publish modes#

ModeWhat happensWhen to use it
Draft only (default)Posts are created in Ghost with the status draft. You publish them in Ghost when ready.Recommended while you learn the flow, or when someone reviews on the Ghost side.
Publish livePosts are created with the status published, so they appear on the live site.Once you trust the output and your review step happens in PilotDeck.

You can switch modes on the connected card. PilotDeck asks you to confirm each time. After you switch to Publish live, PilotDeck cannot turn a live post back into a draft. Edit or remove it in Ghost instead.

This is separate from PilotDeck's site publish mode (clone, CMS or copy) and from draft handling (review or auto). A site set to the CMS publish mode with no connected CMS is not ready to publish. Check that the Ghost card shows ACTIVE.

What PilotDeck creates in Ghost#

Each approved article becomes one new Ghost post. PilotDeck sends the article as HTML and Ghost converts it, so the body keeps its headings, links and images.

Ghost fieldWhat PilotDeck sets
Statusdraft in Draft only mode, published in Publish live mode.
Title and slugThe article title and its URL slug.
TagsThe article tags, plus any categories, merged and deduplicated, because Ghost has tags only.
Feature imageThe article hero image, passed as an image address. PilotDeck does not upload a copy.
Excerpt and metaThe meta description becomes the excerpt and the meta description. The SEO title, social card title, description and image are set too.
Canonical URLOnly set when the article points to a different canonical page. Otherwise the Ghost post is its own canonical.
AuthorPilotDeck looks for a Ghost staff user whose slug or name matches the article author and attaches it. If none matches, the post keeps Ghost's default author and a visible author box in the body carries the details.
FAQThe FAQ is added to the body, and FAQ structured data is added through the post's code injection in the head.

PilotDeck always creates a new post. It does not update a post it sent earlier.

Ghost cannot create staff users through its API without an invite. Invite the author in Ghost first if you want the post to carry a native author.

Disconnecting#

On the connected card click Disconnect and confirm. Approved content stops publishing to Ghost right away. This cannot be undone, but you can reconnect by repeating steps 4 to 6. To fully remove access, also delete the PilotDeck custom integration in Ghost Admin, which invalidates its key.

Troubleshooting#

"Test connection" says Ghost rejected the Admin API Key

Check you copied the Admin key, not the Content key, and that you pasted all of it with no spaces. A key without the colon fails before any request is sent, with the message that it must be in the form id, colon, secret. If you deleted or regenerated the integration in Ghost, copy the new key.

"Couldn't reach that address"

PilotDeck could not connect to the Ghost API URL. Check the address, include https:// and the full domain, and make sure the site is online and reachable from the internet. PilotDeck waits 20 seconds for each request.

"Nothing responded at that address"

The address answered but not as a Ghost site. Use the site root, for example https://your-site.example.com, and not a page inside the site.

Ghost refused the key

Ghost answered with a permission error. The key may be wrong, or the integration may no longer exist. Create a new custom integration and copy its Admin key.

Ghost is rate limiting us, or returns a server error

Wait a moment and try again. A server error means Ghost may be down.

The post has no author I expected

PilotDeck can only attach an existing Ghost staff user with a matching slug or name. If a lookup fails, the post is still published without a native author and the author box in the body carries the details.

A post I sent live needs to go back to draft

PilotDeck cannot change it once it is live. Unpublish or delete it in Ghost Admin.