Actions8
Post → Create
AI-generatedSummary
Creates a new Ghost post via the Admin API, converting a JSON array of simple typed content blocks into Ghost's Lexical format. Optionally sets metadata, SEO fields, and sends the post as a newsletter on creation.
Inputs
- title (required) — Post title. Only sent if non-empty.
- content — JSON array of block objects (or a JSON string of one), default
{{ $json.blocks }}. Each block has atype: paragraph, heading (level 1-6), quote, image, gallery, divider, button, bookmark, callout, toggle, header, email_cta, email_content, signup, paywall, call_to_action, html, markdown, codeblock, embed, video, audio, file, product. Text fields support inline markdown (bold, italic, code, links). Invalid JSON or an unknown block type causes an error. Empty content omits the Lexical body. - additionalFields — Optional collection: status (draft/published/scheduled), visibility (public/members/paid), featured, slug, feature image URL/alt/caption, canonical URL, email only, published at (needed for scheduled), excerpt (sent as custom_excerpt), tags (comma-separated names; creates tags by name, # prefix = internal), authors (comma-separated emails).
- seo — Optional collection: meta title/description, OG title/description/image, Twitter title/description/image. Empty values are skipped.
- newsletter — Optional collection: Send (boolean), Newsletter Slug, Segment. The post is sent as a newsletter only if Send is true and a slug is set; the segment is passed as the email segment filter if provided.
Output shape
One item per input item containing a summary of the created post: id, uuid, url, status, title, slug, created_at, updated_at, published_at.
The full post body (HTML/Lexical) is not returned. Requires Ghost Blocks API credentials (site URL and Admin API key). With Continue on Fail enabled, failed items return {error: message}. Status defaults to Ghost's default (draft) if not set.
Examples
Example 1: Publish an AI-generated article as a draft with tags
Title from upstream; Content = {{ $json.blocks }}; Additional Fields: Status=draft, Tags='news, ai'.
Example 2: Publish a post and email it to a subset of subscribers
Additional Fields Status=published; Send as Newsletter: Send=true, Newsletter Slug='default-newsletter', Segment='status:free'.
Example 3: Schedule a post with SEO metadata
Status=scheduled, Published At=2026-11-01T09:00:00Z; SEO Meta Title and Meta Description set.