How to Publish Jinba Outputs to WordPress

How to Publish Jinba Outputs to WordPress

Summary

  • Manual AI-to-WordPress copy-paste is repeatable, error-prone, and lacks an audit trail.
  • The recommended workflow chains an AI generation step to a WordPress publishing step using WORDPRESS_POST_ARTICLE, Jinja2 placeholders, and needs dependencies.
  • Key governance controls include WordPress Application Passwords stored as encrypted workspace secrets, draft: true publishing, Execution History, and workflow versioning; execution logs are retained for at least six months.
  • For teams that need auditable WordPress automation at volume, Jinba Flow provides a controlled draft-first publishing pipeline with human review built in.

Manually copying AI-generated drafts into WordPress is a repeatable, error-prone task. The copy-paste loop between an AI tool and a CMS costs time, introduces transcription errors, and produces no audit trail. For teams publishing at any volume, that gap becomes a bottleneck.

Jinba solves this with its WORDPRESS_POST_ARTICLE tool, which connects directly to a WordPress site and publishes content as a workflow step. The result is a controlled wordpress automation pipeline: an AI model generates the draft, Jinja2 templating wires the output into the WordPress step, and the execution history records every run. Human review stays in the loop by design.

This guide covers the full setup: authentication, workflow construction, step chaining, and the governance controls that make the pipeline auditable.

Prerequisites: Connecting Jinba to WordPress Securely

The connection between Jinba and WordPress requires a WordPress Application Password, not your main account password. Application Passwords are scoped, revocable credentials that do not expose your primary login. Generate one in the WordPress admin under Users > Profile > Application Passwords.

Once generated, store it in Jinba as a workspace secret. The Jinba documentation on variables is explicit: do not hardcode credentials in your workflow configuration. Secrets are encrypted at rest and fetched at runtime from AWS Secrets Manager, as described in the Jinba security documentation.

Reference the secret in your workflow using the Jinja2 placeholder:

{{ secrets.WORDPRESS_APPLICATION_PASSWORD }}

With the credential stored, the workflow configuration can reference it safely without exposing its value in version history or execution logs.

Building the AI-to-WordPress Workflow

The core workflow has two steps: a generation step that produces the article, and a publishing step that sends it to WordPress. The steps are linked by Jinja2 placeholders that pass the output of the first step directly into the inputs of the second.

Step 1: The Generation Step

Add a step using one of Jinba's supported AI tools. Jinba Flow supports Anthropic (Claude), OpenAI, Gemini, Grok, Azure OpenAI, and LlamaCloud. The specific model is a configuration choice; the pattern is the same regardless.

Prompt the model to return a structured response with two properties: title and content. This makes the output predictable and directly usable in the next step. If your prompt instructs the model to return HTML for the body, that content can be passed to WordPress without further transformation.

Step 2: The Publishing Step

The Jinba WordPress tool is identified as WORDPRESS_POST_ARTICLE in the CMS tools documentation. It accepts the following configuration and inputs:

Configuration (config):

  • url: The base URL of your WordPress site.
  • username: Your WordPress username.
  • password: The Jinja2 placeholder referencing your stored secret.

Inputs (input):

  • title: The post title, as a string.
  • content: The post body. Accepts HTML or Markdown.
  • draft: A boolean. Set to true to publish as a draft, false to publish immediately.

The tool's input contract is intentionally narrow. There are no fields for slug, excerpt, categories, tags, SEO metadata, or featured image. That scope is a deliberate design choice: it reserves those decisions for a human editor working inside the WordPress UI.

Step 3: Chaining the Steps with Jinja2

Use Jinja2 placeholders to pass the AI step's output directly into the WordPress step's inputs. The syntax references the upstream step by its id:

{{ steps.<step_id>.result.<property> }}

The needs option in the publishing step declares the dependency explicitly, ensuring the generation step completes before the publishing step runs. The default() filter provides a fallback value if the AI step returns a null or empty result, preventing the workflow from failing silently.

Here is a complete YAML example:

steps:
- id: generate_article
name: Generate Article with AI
tool: OPENAI_COMPLETE_CHAT
config:
# AI tool configuration here
input:
# Prompt instructing the model to return { title, content } as structured output

- id: post_to_wordpress
name: Post Article to WordPress
tool: WORDPRESS_POST_ARTICLE
needs: [generate_article]
config:
url: '<your WordPress site URL>'
username: 'your-wp-username'
password: '{{ secrets.WORDPRESS_APPLICATION_PASSWORD }}'
input:
title: "{{ steps.generate_article.result.title | default('Awaiting Title') }}"
content: "{{ steps.generate_article.result.content | default('<p>Default content.</p>') }}"
draft: true

The needs declaration means that if the generation step fails or is skipped, the publishing step is also skipped. There is no silent publish to WordPress from a broken upstream step. Failures surface in the Execution History for review and manual re-run.

Best Practices: Human Review and Governance

Publish as Draft First

Setting draft: true is the recommended pattern for any wordpress automation pipeline. The workflow generates the article and creates the WordPress draft. A human editor then opens it in WordPress, adds categories, tags, SEO metadata, and a featured image, and publishes it.

This approach directly addresses a concern that is well-established among content teams: that a fully automated generate-and-publish flow produces lower-quality output. The tool's narrow input contract reinforces the pattern. Because WORDPRESS_POST_ARTICLE does not accept taxonomy or metadata fields, those steps must happen in the WordPress UI. The automation handles the transfer; the editor handles the finalization.

Audit Trail with Execution History

Every workflow run is recorded in Jinba's Execution History. Each record includes:

  • Execution date and time
  • Status (success, failure, or skipped)
  • Workflow version used
  • Execution duration
  • Full inputs and outputs for each step
  • Any errors raised during the run

This history is filterable and searchable, making it possible to trace any WordPress post back to the exact workflow run that created it. For teams that need to demonstrate control over automated publishing, the Execution History functions as a complete activity log without requiring a separate logging plugin or external audit tool.

Jinba security documentation notes that logs are retained for a minimum of six months, which supports compliance requirements that demand historical records of automated actions.

Workflow Versioning for Traceability

Jinba automatically creates a new version on PUBLISH, RESTORE, and COPILOT_CHANGE_ACCEPTION events, as detailed in the history and versions documentation. Each Execution History record is tied to the specific workflow version that was active at the time of the run.

This means teams can verify exactly which workflow configuration produced a given post, including any prompt changes, model swaps, or input modifications made between runs. That level of traceability is not available in most CMS-native automation setups.

Advanced Controls and Scaling

Conditional Publishing

The when option adds a conditional check before a step runs. Use it to gate the publishing step on a property of the generated content, for example, only sending to WordPress if the AI step returned a non-empty title, or if the generated content meets a minimum length.

Combined with needs, this gives the workflow two layers of flow control: dependency ordering and conditional logic. Both are declared in the workflow YAML and recorded in the Execution History alongside the run result.

Failure Handling

Jinba propagates failures through the needs dependency graph. A skipped or failed step causes all downstream steps that depend on it to be skipped as well. There is no automatic retry at the workflow level; failed runs appear in the Execution History with full error detail and can be re-triggered manually after the underlying issue is resolved.

For AI steps specifically, null outputs are the most common source of downstream failures. The default() filter on every chained input is the direct mitigation.

Scaling with Scheduled and API-Triggered Runs

Once a workflow is published, it can be triggered in three ways: manually from the Jinba interface, via API call, or on a defined schedule. Scheduled triggers support recurring content operations such as daily briefings, weekly summaries, or regular product update posts. API triggers allow the workflow to be initiated from an external system, such as a CMS event, a CI pipeline, or an internal tool.

All three trigger modes produce the same Execution History record, so the audit trail is consistent regardless of how the run was initiated. As noted in the Jinba capabilities overview, scheduled and API-triggered workflows are standard features of the platform.

What to Build Next

The two-step pattern covered here, generate then publish, is the foundation. From it, teams can extend in several directions:

  • Add a third step between generation and publishing to run a content check, for example a prompt that reviews the draft against a style guide before it reaches WordPress.
  • Introduce when conditions to route outputs differently based on content type or length.
  • Connect multiple AI steps in sequence to separate the research, outline, and drafting stages before the WordPress step receives the final content.

Each extension is recorded in the Execution History under the workflow version that introduced it, preserving the full audit trail as the pipeline grows.

The combination of WORDPRESS_POST_ARTICLE, Jinja2 step chaining, and Execution History gives content teams a wordpress automation setup that is auditable by default, controlled at the credential level, and extensible without sacrificing traceability. The draft-first pattern keeps a human editor in the final decision on every published post.

Frequently Asked Questions About Jinba WordPress Automation

How do I connect Jinba to WordPress?

Use a WordPress Application Password, not your main account password. Generate one under Users > Profile > Application Passwords in WordPress admin, store it as a Jinba workspace secret, then reference it with {{ secrets.WORDPRESS_APPLICATION_PASSWORD }} in your workflow configuration.

What is WORDPRESS_POST_ARTICLE in Jinba?

WORDPRESS_POST_ARTICLE is the Jinba CMS tool that publishes a post directly to a WordPress site from a workflow step. It accepts a WordPress URL, username, application password, post title, post content, and a draft flag, and every run is recorded in Execution History.

Can I publish WordPress drafts instead of going live immediately?

Yes. Set the draft input to true in the WORDPRESS_POST_ARTICLE step. This creates a draft in WordPress so a human editor can add categories, tags, SEO metadata, a featured image, and review the content before publishing.

How do I pass AI-generated content to the WordPress step in Jinba?

Use Jinja2 placeholders such as {{ steps.generate_article.result.title }} and {{ steps.generate_article.result.content }} in the WordPress step inputs. The needs option ensures the AI step finishes first, and the default() filter prevents null values from failing the workflow.

Does Jinba automation keep a human in the loop?

Yes, the draft-first pattern is the recommended approach. You automate the transfer from AI to WordPress, but the WordPress tool's narrow input contract intentionally leaves taxonomy, SEO metadata, and final publishing to a human editor, while Execution History preserves an audit trail.

How does Jinba handle failed AI-to-WordPress workflow runs?

If the AI generation step fails or is skipped, the WordPress publishing step is also skipped because of the needs dependency. Failures appear in Execution History with error details, and the run can be re-triggered manually after fixing the underlying issue.

Can I schedule AI-generated WordPress posts with Jinba?

Yes. You can publish a workflow and trigger it on a defined schedule or via API call. Scheduled triggers support recurring content operations, while API triggers allow external systems to initiate the workflow. Every run produces the same Execution History record.

Is it safe to store WordPress credentials in Jinba?

Yes, when you use Jinba workspace secrets. Secrets are encrypted at rest and fetched at runtime from AWS Secrets Manager. You should never hardcode application passwords in workflow configuration, and using Application Passwords instead of your main login adds scoped, revocable access.

Build your way.

The AI layer for your entire organization.

Get Started