If you use AI daily (Copilot, chat assistants, agents, whatever) you’ve probably noticed the real bottleneck isn’t model quality anymore — it’s operations.
- Where did I put that prompt that worked?
- What did the agent actually change?
- Which tasks are recurring and should be automated?
- How do I keep a clean audit trail so Future Me can debug this?
Notion’s recent push into Custom Agents and developer-friendly markdown-based content APIs makes this a great moment to build a simple “Agent Ops” dashboard in Notion: a place to manage AI-assisted work like you manage code.
This article shows a practical setup you can copy in 30–60 minutes.
Note: Notion has been introducing Custom Agents that can route tasks, answer questions, and generate status updates across connected tools like Slack/Mail/Calendar, with reversible changes and enterprise controls (Releasebot’s Notion timeline).
What is “Agent Ops” (for a solo dev)?
Think of it like a lightweight version of MLOps — but for your personal workflows:
- Inputs: tasks, context, prompts, constraints
- Execution: agent runs (manual or automated)
- Outputs: code changes, docs, decisions, assets
- Feedback: did it work, what should we change next time
The goal is not to over-engineer. The goal is repeatability.
The database schema (4 tables that cover 90% of cases)
Create these 4 databases in Notion:
1) Tasks
Use this to capture work items you’d normally put in an issue tracker.
Properties
| Property | Type | Why it exists |
|---|---|---|
| Title | Title | Task name |
| Status | Select (Backlog / Doing / Blocked / Done) | Basic flow |
| Priority | Select (P0–P3) | Forces tradeoffs |
| Area | Multi-select (Dev / Content / Ops / Sales) | Helps batching |
| Due | Date | Optional |
| Links | URL | PRs, docs, etc. |
2) Prompts
Your prompt library should be treated like code snippets.
Properties
| Property | Type | Why it exists |
|---|---|---|
| Name | Title | A searchable handle |
| Goal | Text | What the prompt is trying to achieve |
| Prompt | Text | The actual prompt |
| Output format | Select (Markdown / JSON / Code / Table) | Helps reuse |
| Tags | Multi-select | Organize by use case |
| Version | Number | So you can iterate |
3) Runs
This is the audit log.
Properties
| Property | Type | Why it exists |
|---|---|---|
| Run ID | Title |
YYYY-MM-DD-### or UUID |
| Task | Relation → Tasks | What it was for |
| Prompt | Relation → Prompts | What you used |
| Model/tool | Select | “Notion Agent”, “Copilot”, etc. |
| Input context | Text | The key context pasted/linked |
| Output | Text | Summary, code, or link to artifacts |
| Outcome | Select (Success / Partial / Failed) | Enables learning |
| Next step | Text | Action item |
4) Artifacts
Anything produced: docs, code snippets, images, decisions.
Properties
| Property | Type |
|---|---|
| Name | Title |
| Type | Select (Doc / Code / Image / Decision / Checklist) |
| Related run | Relation → Runs |
| Link | URL |
| Notes | Text |
The dashboard page (what to pin)
Create a page called Agent Ops Dashboard and add:
- A filtered
Tasksview:Status != Donesorted by Priority, Due. - A filtered
Runsview: last 7 days. - A
Promptsview: grouped by Tags. - A “Today” section with two callouts:
- Focus Block: the single highest-leverage task
- Agent Queue: tasks safe to delegate
Why this works: you stop treating AI output as disposable chat history.
A minimal automation loop (Markdown-first mindset)
Notion’s developer updates have been adding a Markdown Content API that lets integrations create/read/update page content via markdown endpoints (Releasebot’s Notion timeline).
Even if you don’t build a full integration today, you can design your workflow around a simple loop:
-
Capture: create a
Task -
Select a prompt: pick from
Prompts - Run: execute in your tool of choice (Notion Agent, IDE assistant)
-
Log: create a
Runrecord with input/output -
Promote artifacts: save outputs into
Artifacts
This is enough structure to scale from “solo” to “team” later.
Example: a “Daily Standup” agent run
Create a prompt like:
You are my project analyst.
Summarize what changed since yesterday across Tasks (Doing/Done), Runs (last 24h), and Artifacts.
Output:
- Yesterday: (bullets)
- Today: (bullets)
- Blockers: (bullets)
- Questions for me: (bullets)
Keep it under 150 words.
Then:
- Run it manually in your preferred assistant.
- Paste the result into a
Runentry.
Later, you can automate it.
Practical tips (what I wish I did earlier)
Tip 1: Separate “prompt intent” from “prompt text”
If you only store the raw prompt, you’ll forget why it existed. Add a Goal field.
Tip 2: Log failures on purpose
The biggest productivity boost comes from knowing what doesn’t work and not repeating it.
Tip 3: Use “Output format” aggressively
If you want JSON, ask for JSON. If you want a table, ask for a table. Reusability goes up.
Tip 4: Keep the schema boring
If you feel the urge to add your 9th database, don’t. Add a property instead.
Where Notion’s “Agents” direction fits
Notion’s new Custom Agents pitch is basically: set up an agent once, then let it answer repeat questions, route tasks, and generate status updates on schedule (Releasebot’s Notion timeline).
If you already have an Agent Ops dashboard:
- task routing → writes into
Tasks - status updates → writes into
Runs - recurring reports → becomes a saved template in
Prompts
Your future automation has a place to land.
Subtle plug (optional)
If you want a pre-built version of this dashboard (with views, templates, and a clean layout), I keep variants in my DailyAIHustler Notion templates on Etsy (search: dailyaihustler). It’s designed for AI creators/devs who want structure without friction.
Your turn
If you build this, I’d love to hear:
- What’s the one AI workflow you want to make repeatable?
- What fields would you add to
Runsfor your use case?
Drop a comment with your setup or a screenshot description, and I’ll suggest improvements.
Top comments (0)