Welcome to the first entry of the Automation Diary — a series documenting how we deploy Open Assistant to solve real operational problems, starting with a delightfully meta one: using Open Assistant to market Open Assistant.
The idea is straightforward. Rather than outsourcing content creation or manually wrestling every blog post into shape, we configured an instance of the AI system to manage our entire content pipeline. Not as an autonomous spam cannon — the internet has plenty of those — but as a deeply integrated co-pilot that handles the heavy lifting of turning raw, unstructured input into polished output, while keeping a human firmly in the driver's seat.
Here's a walkthrough of the setup, the integrations, and the deliberate design choices that make it work.
The Content Workflow: Raw Ideas to Published Posts
The bottleneck in content creation for builders isn't a lack of ideas — it's the friction of translation. Raw brain dumps (voice notes, screen recordings, scribbled bullet lists) carry high information density but zero readability. The AI system is designed to eliminate that friction.
[Raw Input: Voice Note / Scribble]
│
▼
[Open Assistant] ──────► Processes, structures, & drafts post
│
▼
[Human Review] ──────► Approves & triggers publish
The pipeline is three steps:
- Input: The operator uploads a rough technical asset — an unedited audio file, a video walkthrough, or a fragmented markdown outline — to the shared environment.
- Transformation: The assistant processes the input, extracts the core technical insights, structures the narrative, and drafts a coherent blog post.
- Review: The assistant notifies the operator that a draft is ready. The operator reviews, applies corrections, and authorizes publication.
This human-in-the-loop architecture is foundational. Fully autonomous AI agents operating without oversight risk losing brand authenticity and generating hallucinated claims. The AI handles the cognitively expensive work — transcribing, structuring, drafting — while the human provides taste, context, and the final editorial judgment.
The Integration Stack: Nextcloud, Notion, and Slack
For an AI assistant to be genuinely useful, it has to live where the work already happens. No one wants to log into a separate proprietary dashboard just to talk to their assistant. The system interfaces with three core platforms:
Nextcloud (File Management)
Nextcloud serves as the secure, self-hosted file repository. Raw audio recordings, video exports, and transcripts land here. The assistant can access files, read metadata, and route content to transcription services — all without data leaving self-hosted infrastructure. No proprietary silos, no vendor lock-in.
Notion (The Digital Scratchpad)
Notion is the collaborative database for raw ideas. Half-baked feature concepts, quick outlines, scattered notes — they all go into Notion. The assistant monitors designated databases, pulls raw notes, and uses them as context for generating drafts.
Slack (The Command Center)
Slack is the primary interface. Instead of building a dedicated UI, the assistant is integrated directly into the workspace. Interacting with it feels like messaging a remote team member: check Nextcloud for new files, request a draft based on a Notion page, get a status update — all within the daily communication channel.
The Plugin System: Turning Any API into an AI Tool
One of the most powerful features of Open Assistant is its plugin architecture. The system isn't limited to a rigid, pre-built list of integrations. Instead, it uses simple JSON-based configurations to register external APIs as executable tools.
If a service exposes an HTTP API, Open Assistant can be configured to interact with it. To prove the point, we registered our own custom blog CMS as a plugin. By defining a straightforward JSON schema that mapped the CMS API endpoints, the assistant instantly gained the ability to read, write, and update posts on the Open Assistant blog.
{
"id": "blog_manager",
"display_name": "Blog Manager",
"description": "Manage blog posts — create, update, publish, and delete posts.",
"icon": "📝",
"base_url": "{blog_url}",
"auth": {
"type": "bearer"
},
"config_fields": [
{
"key": "blog_url",
"display_name": "Blog URL",
"description": "Base URL of your blog (e.g. https://blog.example.com)",
"required": true
}
],
"endpoints": [
{
"name": "list_posts",
"display_name": "List Posts",
"method": "GET",
"path": "/api/posts",
"parameters": [
{
"name": "page",
"in": "query",
"type": "integer",
"required": false,
"default": 1
}
]
},
{
"name": "create_post",
"display_name": "Create Post",
"method": "POST",
"path": "/api/posts",
"parameters": [
{ "name": "title", "in": "body", "type": "string", "required": true },
{ "name": "content", "in": "body", "type": "string", "required": true },
{ "name": "category", "in": "body", "type": "string", "required": false },
{ "name": "is_published", "in": "body", "type": "boolean", "required": false }
]
},
{
"name": "delete_post",
"display_name": "Delete Post",
"method": "DELETE",
"path": "/api/posts/{post_id}",
"parameters": [
{ "name": "post_id", "in": "path", "type": "integer", "required": true }
]
}
]
}
This extensible design means you don't wait for an integration marketplace to catch up. Whether it's a proprietary database, a custom CRM, or a legacy internal tool — define the API schema, and the assistant learns how to use it.
Agent Configuration: The Principle of Least Privilege
When configuring the "Blog Master" agent — the persona responsible for content management — a critical decision was made regarding permissions.
The agent was granted the ability to list, get, create, and update blog posts. It was deliberately not given the ability to delete, publish, or unpublish posts.
ASSISTANT PERMISSIONS:
✅ List Posts
✅ Get Post Details
✅ Create Drafts
✅ Update Drafts
❌ Publish Live
❌ Delete Posts
This is a direct application of the principle of least privilege. Granting an AI agent unrestricted publish access to a production environment introduces real risk: a single hallucination, a prompt injection, or an unhandled edge case could push unfinished content live. A rogue loop could wipe the entire database.
By withholding publication and deletion capabilities, a hard technical guardrail is enforced. The assistant does the heavy preparatory work — formatting markdown, structuring metadata, saving drafts — but the final deployment step always requires explicit human authorization. Collaborative, secure, and stress-free.
Total Transparency and Resilience
Production-grade AI systems require observability. Black-box models that succeed or fail without explanation are a debugging nightmare. Open Assistant is designed with complete execution transparency.
During early testing, a transcription service call failed due to an API authorization mismatch. Instead of failing silently or producing corrupted output, the system handled the exception gracefully and surfaced the precise failure point. The assistant dispatched a structured error report directly to the Slack channel, including the exact API call, the error code, and a clear diagnosis.
The configuration was corrected, a retry was issued, and the pipeline completed successfully on the second attempt. When you can see every API call, payload, and response, troubleshooting shifts from guesswork to standard software debugging. That's the difference between a black box and a system you can actually trust.
This is Just the Beginning
Deploying Open Assistant to manage its own content pipeline is more than a time-saver — it's a living proof of concept. The product is being used to grow the product.
As the system evolves, the assistant's capabilities will expand beyond drafting and formatting — automated distribution across social channels, performance analytics tracking, and community feedback loops are all on the roadmap. Each new capability validates the same architectural principles: open integrations, least-privilege permissions, and human-in-the-loop control.
If you're building something similar — or just want to follow along — stick around.
What workflows would you automate?
Get Started
Ready to set up your own AI-powered content pipeline? Create an Open Assistant instance and start building — or learn more at open-assistant.org.
