Copy Post
ghost.copy_post
ActionBusiness appsconnection required
Calls the Ghost API with the connection's credentials.
Duplicate a post into a new draft, leaving the original untouched. Useful for templating a recurring newsletter.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- API key
- Providers
- Ghost
- Secret shape
- {"admin_api_key": "<id>:<secret>", "content_api_key": "…"}
- Config it needs
- admin_url, api_version
- Resolved by
- config.connection_id, else node.connection_id
Configuration
4 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
post_id Ghost id of the post — the 24-character ObjectID from a previous step. | string | Yes | — | — | — |
include Extra related data to load, comma-separated. Posts and pages accept 'authors' and 'tags'; without it neither is present in the response. | string | No | — | one of "authors", "tags", "authors,tags" | — |
fields Comma-separated list of fields to return, for a leaner response (for example 'id,title,url'). Does not combine well with include. | string | No | — | — | — |
formats Content formats to return, comma-separated. The Admin API returns 'lexical' by default; ask for 'html,lexical' when the workflow needs rendered HTML. | string | No | — | one of "lexical", "html", "html,lexical" | — |
Output
One shape.
result
| Field | Type | Example |
|---|---|---|
id Ghost id of the record, a 24-character ObjectID. | string | — |
uuid Stable public uuid of the record. | string | — |
title Title Ghost stored. | string | — |
slug URL slug Ghost stored. | string | — |
status Publication status: draft, published, scheduled or sent. | string | — |
visibility Who may read it: public, members, paid or tiers. | string | — |
featured Whether the record is flagged as featured. | boolean | — |
url Public URL on the site; a draft gets its preview URL. | string | — |
excerpt Custom excerpt when one is set, else one Ghost derived. | string | — |
feature_image URL of the feature image, null when there is none. | string | — |
published_at When it was, or will be, published (ISO 8601 UTC). | string | — |
created_at When the record was created (ISO 8601 UTC). | string | — |
updated_at When it last changed — pass this back on the next edit. | string | — |
html Rendered HTML; present only when formats asked for it. | string | — |
lexical Lexical source of the body, as a JSON string. | string | — |
tags Tags on the record; present only with include=tags. | array | — |
authors Authors of the record; present only with include=authors. | array | — |
{
"authors": [],
"created_at": "",
"excerpt": "",
"feature_image": "",
"featured": false,
"html": "",
"id": "",
"lexical": "",
"published_at": "",
"slug": "",
"status": "",
"tags": [],
"title": "",
"updated_at": "",
"url": "",
"uuid": "",
"visibility": ""
}Notes
- POST /ghost/api/admin/posts/{id}/copy; the copy comes back as a draft.
See Copy Post run in a workflow.
In a technical demo we add the Ghost connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.