Updates an existing article's title, content, category, state, metadata, images, tags, and author.
Updates an existing article's title, content, category, state, metadata, images, tags, and author.
When the flow reaches this step, JOrchestrator executes Update 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.
Update 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 Update Article to a flow:
Common patterns on the canvas:
Pick the article on General; leave optional fields empty to keep current values.
Tag labels from payload merge onto the article without removing existing tags when configured.
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 | New Title (optional) | text | No | — | Leave empty to keep current |
| 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 | New alias (optional) | payload-text | No | — | Leave empty to keep current |
|---|---|---|---|---|---|
access | Access (optional) | select (` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8`) | No | — | — |
featured | Featured (optional) | toggle | No | — | — |
note | Note (optional) | text | No | — | Leave empty to keep current |
publish_up | Start publishing (optional) | datetime | No | — | — |
publish_down | Finish publishing (optional) | datetime | No | — | — |
createdByAlias | Author alias (optional) | text | No | — | Leave empty to keep current |
metadesc | Meta description (optional) | textarea | No | — | Leave empty to keep current |
metakey | Meta keywords (optional) | payload-text | No | — | Leave empty to keep current |
state | New State (optional) | select (` | published | unpublished | archived | trashed`) | No | — | — |
| Property key | Label | Type | Required | Visible when | Notes |
|---|---|---|---|---|---|
introtext | New Intro Text (optional) | wysiwyg | No | — | Leave empty to keep current |
fulltext | New Full Text (optional) | wysiwyg | No | — | Leave empty to keep current |
imageIntro | Intro image (optional) | 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 (optional) | payload-text | No | — | — |
imageIntroCaption | Intro image caption (optional) | payload-text | No | — | — |
imageFulltext | Full article image (optional) | 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 (optional) | payload-text | No | — | — |
imageFulltextCaption | Full article image caption (optional) | payload-text | No | — | — |
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 (optional) | email-recipient | No | — | Change displayed author — user ID or select user… Value kind: userId |
| Property key | Label | Type | Required | Visible when | Notes |
|---|---|---|---|---|---|
id | Article to Update | article-select | Yes | — | — |
catid | New Category (optional) | category-select | No | — | Leave empty to keep current |
tagIds | Tags (existing) | tags-multi | No | — | Replace article tags when you select or add labels below |
language | Language (optional) | content-language-select | No | — | Leave empty to keep current |
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 {{update_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. |
Other steps in the same area of the palette:
create-article) — Articlesdelete-article) — Articlespublish-article) — Articlesunpublish-article) — Articles