Creates a new Joomla article with title, intro/full text, category, publishing options, SEO meta, images, tags, and author.
Creates a new Joomla article with title, intro/full text, category, publishing options, SEO meta, images, tags, and author.
When the flow reaches this step, JOrchestrator executes Create Article against your linked site or an external integration, using the field values you set on General and Design. Downstream steps can read the output payload fields defined for this node.
Create Article is a action step in the Articles group. Action steps run in the middle or end of a flow. They perform work on your CMS, call external services, or transform data for the next step.
Typical reasons teams add Create Article to a flow:
Common patterns on the canvas:
General tab — title, category, state, tags, and metadata. Design tab — intro/full HTML, intro and full article images (path, URL, base64, or {{upload.path}}).
Image fields accept media paths under /images or placeholders from upstream AI/upload nodes.
The designer shows these tabs for this node:
| Tab | Purpose |
|---|---|
| Info | Plain-language description and output payload fields for downstream steps |
| General | Canvas label and read-only node ID |
| AI | Optional assistant to help draft settings from plain language |
| Design | Node-specific configuration fields |
These fields are managed by the designer or runtime — you do not type into them directly:
| Property key | Label | Type | Required | Visible when | Notes |
|---|---|---|---|---|---|
_nodeId | Node ID | node-id | No | — | — |
_payloadFields | Available Fields | payload-panel | No | — | — |
| Property key | Label | Type | Required | Visible when | Notes |
|---|---|---|---|---|---|
label | Label | text | No | — | Node label |
title | Article Title | payload-text | Yes | — | Title or drag a payload field here |
state | State | select (published | unpublished | archived) | No | — | — |
| tagLabels | Tag labels from payload (optional) | payload-text | No | — | ["News","Fashion"] or {{node_id.tags}} Optional JSON array of tag titles after resolving {{placeholders}}, e.g. ["News","Fashion"] or {{node_id.tags}}.
If a title does not exist in Joomla Tags, it is created when the flow runs (same defaults as Create Tag: under root, published). Requires permission to create tags. Values are merged with Tags (existing) above and deduplicated. Leave both empty to leave article tags unchanged on update. |
alias | Alias (optional) | payload-text | No | — | URL segment; auto from title if empty |
|---|---|---|---|---|---|
access | Access | select (1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; default: 1) | No | — | — |
featured | Featured | toggle (default: false) | No | — | — |
note | Note (optional) | text | No | — | Internal note |
publish_up | Start publishing | datetime | No | — | Optional |
publish_down | Finish publishing | datetime | No | — | Optional |
createdByAlias | Author alias (optional) | text | No | — | Displayed author name override |
metadesc | Meta description | textarea | No | — | SEO description (optional) |
metakey | Meta keywords | payload-text | No | — | Comma-separated keywords (optional) |
| Property key | Label | Type | Required | Visible when | Notes |
|---|---|---|---|---|---|
introtext | Intro Text | wysiwyg | No | — | Article intro |
fulltext | Full Text | wysiwyg | No | — | Article content |
imageIntro | Intro image | article-image-source | No | — | {{ai_node.image}} or images/… or data:image/png;base64,… Drag {{node.image}}, {{node.path}}, or {{node.url}} from a prior step, paste data:image/…;base64,…, pick from Joomla media below, or enter images/… path. When the resolved value is image bytes (data URI, raw base64, or https URL), it is saved under /images using the save options below (same rules as Upload Media). |
imageIntroUseRandomName | Intro image: random file name when saving bytes | toggle (default: true) | No | — | On: auto name under folder. Off: use path below as full images/… path. |
imageIntroFolder | Intro image: folder under /images | payload-text | No | — | e.g. articles/2025 — optional when saving bytes from {{placeholders}} |
imageIntroSavePath | Intro image: path under folder | payload-text | No | — | Random name ON: subfolders only (e.g. hero). OFF: full path + filename (e.g. hero/cover.jpg). |
imageIntroRandomSalt | Intro image: name prefix (optional) | random-name-salt | No | imageIntroUseRandomName === true | — |
imageIntroAlt | Intro image alt text | payload-text | No | — | Optional |
imageIntroCaption | Intro image caption | payload-text | No | — | Optional |
imageFulltext | Full article image | article-image-source | No | — | {{ai_node.image}} or images/… or data:image/png;base64,… Drag {{node.image}}, {{node.path}}, or {{node.url}} from a prior step, paste data:image/…;base64,…, pick from Joomla media below, or enter images/… path. When the resolved value is image bytes (data URI, raw base64, or https URL), it is saved under /images using the save options below (same rules as Upload Media). |
imageFulltextUseRandomName | Full article image: random file name when saving bytes | toggle (default: true) | No | — | On: auto name under folder. Off: use path below as full images/… path. |
imageFulltextFolder | Full article image: folder under /images | payload-text | No | — | e.g. articles/2025 — optional when saving bytes from {{placeholders}} |
imageFulltextSavePath | Full article image: path under folder | payload-text | No | — | Random name ON: subfolders only (e.g. hero). OFF: full path + filename (e.g. hero/cover.jpg). |
imageFulltextRandomSalt | Full article image: name prefix (optional) | random-name-salt | No | imageFulltextUseRandomName === true | — |
imageFulltextAlt | Full article image alt text | payload-text | No | — | Optional |
imageFulltextCaption | Full article image caption | payload-text | No | — | Optional |
These fields can pull live options or values from the Joomla/WordPress site linked to the flow:
| Property key | Label | Type | Required | Visible when | Notes |
|---|---|---|---|---|---|
createdBy | Author | email-recipient | No | — | User ID, {{placeholder}}, or select Joomla user… Value kind: userId |
| Property key | Label | Type | Required | Visible when | Notes |
|---|---|---|---|---|---|
catid | Category | category-select | Yes | — | Select category |
tagIds | Tags (existing) | tags-multi | No | — | Select one or more Joomla tags |
language | Language | content-language-select | No | — | Select language (* = all) |
Credentials, API keys, mailers, SMTP, and integration defaults are configured in the CMS plugin under Node Configuration, not per step on this node. Link the flow to a domain before testing CMS-backed fields.
After this step runs, later nodes can reference these fields using placeholders such as {{create_article.id}}.
| Field key | Type | Description |
|---|---|---|
id | string | Primary record identifier. |
title | string | Title text for the created or updated record. |
url | string | Public HTTP URL to a resource on the site. |
link | string | Canonical link URL for the record. |
alias | string | URL-safe alias / slug. |
catid | string | Category ID. |
state | number | Published state (0 = unpublished, 1 = published). |
created_by | number | Numeric value from this node's output. |
introtext | string | Article introduction / teaser HTML. |
fulltext | string | Article main body HTML. |
imageIntro | string | Intro image URL on the article. |
imageFulltext | string | Fulltext image URL on the article. |
tag_ids | object | Tag IDs attached to the article. |
title) must be filled before the flow can be saved.Other steps in the same area of the palette:
delete-article) — Articlespublish-article) — Articlesunpublish-article) — Articlesupdate-article) — Articles