Copy Page

ghost.copy_page
ActionBusiness appsconnection required

Calls the Ghost API with the connection's credentials.

Duplicate a page into a new draft, leaving the original untouched. Useful for building a page from a maintained template.

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.

FieldTypeRequiredDefaultConstraintsExample
page_id
Ghost id of the page — the 24-character ObjectID from a previous step.
stringYes———
include
Extra related data to load, comma-separated. Posts and pages accept 'authors' and 'tags'; without it neither is present in the response.
stringNo—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.
stringNo———
formats
Content formats to return, comma-separated. The Admin API returns 'lexical' by default; ask for 'html,lexical' when the workflow needs rendered HTML.
stringNo—one of "lexical", "html", "html,lexical"—

Output

One shape.

result

FieldTypeExample
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/pages/{id}/copy; the copy comes back as a draft.

See Copy Page 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.