Create Publication Post

medium.create_publication_post
ActionBusiness appsconnection required

Calls the Medium API with the connection's credentials.

Publish a post under a publication the connected account contributes to.

Connection

Required
Yes — the node will not save without one
Auth type
OAuth 2.0
Providers
Medium
Secret shape
{"client_id": "…", "client_secret": "…", "refresh_token": "…"}, or {"access_token": "…"} for a self-issued integration token
Config it needs
user_id
Resolved by
config.connection_id, else node.connection_id

Configuration

9 fields, 3 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
publication_id
The publication to act on, as the id medium.list_publications returns.
stringYes——b45573563f5a
title
The post's title, used for SEO and in listings. Medium ignores a title longer than 100 characters, and the title only appears on the page if the content repeats it.
stringYes—≤ 100 charactersHard things in software development
content
The body of the post, as a semantic HTML fragment or as Markdown, matching the content format.
stringYes——<h1>Hard things</h1><p>Cache invalidation.</p>
content_format
How Medium should read the content field.
stringNohtmlone of "html", "markdown"—
tags
Tags to classify the post. Medium uses only the first three, and ignores any tag longer than 25 characters.
arrayNo—≤ 3 characters; array of string["development","design"]
canonical_url
The original home of this content, when it was first published elsewhere.
stringNo—url formathttps://blog.acme.com/hard-things
publish_status
Whether the post goes out publicly, stays a draft, or is unlisted.
stringNopublicone of "public", "draft", "unlisted"—
license
The licence the post is published under.
stringNoall-rights-reservedone of "all-rights-reserved", "cc-40-by", "cc-40-by-sa", "cc-40-by-nd", "cc-40-by-nc", "cc-40-by-nc-nd", "cc-40-by-nc-sa", "cc-40-zero", "public-domain"—
notify_followers
Notify the account's followers that it has published.
booleanNofalse——

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "canonical_url": "https://blog.acme.com/hard-things",
  "content": "<h1>Hard things</h1><p>Cache invalidation.</p>",
  "content_format": "html",
  "license": "all-rights-reserved",
  "notify_followers": false,
  "publication_id": "b45573563f5a",
  "publish_status": "public",
  "tags": [
    "development",
    "design"
  ],
  "title": "Hard things in software development"
}

Output

One shape.

result

FieldTypeExample
id
The Medium post id.
string—
title
The post's title, as Medium stored it.
string—
authorId
The Medium user id of the post's author.
string—
tags
The tags Medium kept on the post.
array—
url
The post's URL on Medium.
string—
canonicalUrl
The canonical URL, absent when none was sent with the post.
string—
publishStatus
The publish status the post ended up with.
string—
publishedAt
Publication time in milliseconds since the epoch, absent for a draft.
number—
license
The licence the post is published under.
string—
licenseUrl
The URL of that licence on Medium.
string—
publicationId
The publication the post was created under.
string—
{
  "authorId": "",
  "canonicalUrl": "",
  "id": "",
  "license": "",
  "licenseUrl": "",
  "publicationId": "",
  "publishStatus": "",
  "publishedAt": 0,
  "tags": [],
  "title": "",
  "url": ""
}

Notes

  • A contributor whose role is 'writer' may only create a draft, which stays pending until an editor approves it; an editor may use any publish status.

See Create Publication Post run in a workflow.

In a technical demo we add the Medium connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.