Content Workflow Tools
Turn a seed into a batch of blog and social posts using a brand's voice, knowledge, and goals.
A content workflow is a spreadsheet-style pipeline that turns a seed — a goal, a trending term, a list of URLs, or free-form notes — into a batch of blog and social posts. Each idea becomes one row; running the pipeline takes every row through outline → post text → quality review, grounded in the brand's voice, knowledge base, and goals.
These tools let an external agent handle the trigger ("when X happens…") and then call Pendium to do the content creation ("…create posts about it").
Typical workflow
- Discover existing workflows with
list_workflowsbefore creating a new one. - Create a workflow with
create_workflow, choosing aseedTypethat matches what you have. - Populate it with ideas —
add_workflow_ideaswhen you already know the titles (no LLM cost), orgenerate_workflow_ideasto have an LLM draft them from the seed. - Run the pipeline with
run_workflow_pipelineto generate content for every pending row.
Tools
| Tool | Auth | Description |
|---|---|---|
list_workflows | Required | List active content workflows for an agent |
create_workflow | Required | Create a new workflow from a seed |
add_workflow_ideas | Required | Add specific post-idea rows (no LLM cost) |
generate_workflow_ideas | Required (paid) | Have an LLM draft idea rows from the seed |
run_workflow_pipeline | Required (paid) | Generate content for every pending row (the whole sheet) |
run_row | Required (paid) | Generate content for a single row |
run_column | Required (paid) | Generate content for a single column across all rows |
update_item | Required | Edit a row's seed fields before it's generated (no LLM cost) |
delete_item | Required | Permanently delete a row |
Workflow authoring
Shape a workflow's structure and defaults. These are synchronous edits with no LLM cost — they change the workflow itself, not its content. Advanced per-column configuration (model, retrieval settings, quality thresholds) stays UI-only.
| Tool | Auth | Description |
|---|---|---|
rename_workflow | Required | Change a workflow's display name |
archive_workflow | Required | Archive a workflow (removes it from the active list) |
add_research_column | Required | Add a research/enrichment column before the generation pipeline |
remove_column | Required | Permanently delete a column and its cells |
set_column_default | Required | Set a workflow-level default (platform, template, media source, publish mode) |
update_workflow_notes | Required | Set the free-text direction threaded into generations |
Post publishing and lifecycle
Once a workflow has generated posts, these tools take a single post from draft to publication and manage its lifecycle. They're synchronous status changes with no LLM cost (publishing itself runs async in the background). Find a post's postId with list_blog_posts.
| Tool | Auth | Description |
|---|---|---|
publish_blog_post | Required | Publish a post now — agent site first, then any connected CMS |
schedule_blog_post | Required | Schedule a post to publish at a future time |
unschedule_blog_post | Required | Cancel a scheduled post and return it to draft |
move_blog_post_to_draft | Required | Move a post back to draft from any status (including published) |
delete_blog_post | Required | Permanently delete a post |
Post editing
Fix a post's text after it was generated — caption, title, or URL slug. These are synchronous edits with no LLM cost. Find a post's postId with list_blog_posts.
| Tool | Auth | Description |
|---|---|---|
update_blog_post_body | Required | Replace a post's caption / body text |
update_blog_post_title | Required | Replace a post's title |
update_blog_post_slug | Required | Change a blog post's public URL slug |
Notes
- Workflows are scoped to a single agent (
syntheticId). - A workflow caps at 100 rows total. Idea additions beyond the cap are rejected.
- Idea generation and pipeline runs are async — the tools return immediately after enqueueing. New rows and generated content appear via
list_workflowsor the Workflows UI when ready.