Tag: Notion Databases

  • Notion AI API Endpoints for Database Views: A Developer’s Tour

    Notion AI API Endpoints for Database Views: A Developer’s Tour

    Notion AI API Endpoints for Database Views: A Developer’s Tour

    The 60-second version

    Until Notion 3.4 part 2, working with database views via the API meant fetching the underlying database and replicating view logic in code. The new endpoints give direct programmatic access to view configurations — query a view, apply its filters server-side, modify its display properties, all via the API. For developers building agents and integrations, this removes a significant friction point.

    What the new endpoints enable

    1. Query a view directly.
    Fetch the rows a specific view shows, with the view’s filters and sorts already applied. Previously, you fetched the database and re-implemented filtering in client code. Now the server does it.
    2. Read view configuration.
    Inspect what a view’s filters, sorts, and column selections are. Useful for agents that need to understand what a view represents.
    3. Modify view properties programmatically.
    Update filters, sorts, or display settings via API. Useful for dynamic views that adapt based on agent context.
    4. List views per database.
    Enumerate all views attached to a database. Helpful for agents that need to discover the right view to query.

    Three patterns this enables

    1. View-driven agent context.
    Instead of giving an agent the entire database and a complex prompt about filtering, point the agent at a pre-configured view. The view defines the context; the agent works with the filtered subset.
    2. Dynamic view modification.
    An agent that adjusts a view’s filter based on conversation. “Show me last week’s high-priority items” becomes a real query against a view, not a search across the whole database.
    3. View-as-API.
    Treat each view as a parameterized data endpoint. Builders can expose specific views to specific agents, controlling exactly what data the agent sees through the view definition.

    Practical implementation notes

    • Fetching views: Use the database fetch tool first to discover view URLs. View URLs include the view ID after ?v=.
    • Multi-source databases: Views may apply to a specific source.
    • Permissions: API access to views inherits the database’s permission model.

    Where this goes wrong

    1. Treating views as static. Views can be modified by users in the UI. Agents that cache view configurations get stale.
    2. Over-fetching. Querying a view is more efficient than fetching the database and filtering client-side. Migrate.
    3. Confusion between views and data sources. Multi-source databases have both. Don’t mix the API parameters.

    What to read next

    Workers + External APIs, Workers in TypeScript, MCP, Designing Database Schemas for Autofill.

  • Designing a Database Schema for AI Autofill That Stays Trustworthy

    Designing a Database Schema for AI Autofill That Stays Trustworthy

    Designing a Database Schema for AI Autofill That Stays Trustworthy

    The 60-second version

    Most database schemas were designed for humans typing things in. Autofill works differently — it processes one row at a time using row content and a prompt. Schemas designed for Autofill make the prompt’s job easier and the human’s job auditable. Controlled vocabularies. Source attribution. Fill-date stamps. Clear separation between human and agent fields. Get the schema right and Autofill is reliable. Get it wrong and you’ll fight Autofill forever.

    Schema design principles

    1. Controlled vocabularies over free text. A “category” field with five select options outperforms a free-text field. Autofill picks from a list reliably; it improvises inconsistently.
    2. Atomic fields over compound fields. “Customer info” as a single text field is bad for Autofill. Separate fields (name, industry, size, region) each get filled cleanly.
    3. Source attribution columns. Add a “filled by” select (Human / Basic Autofill / Custom Agent) and a “fill date.” The audit trail makes drift visible.
    4. Separate human and agent fields. Don’t let Autofill overwrite human-entered fields. Configure Autofill to only fill empty cells or only specific columns marked for agent use.
    5. Validation columns where stakes are high. A “verified by human” checkbox on agent-filled fields creates a gate where human review happens before the field is trusted downstream.

    Patterns for specific use cases

    Content library: title (human), URL (human), summary (Autofill), category (Autofill from controlled list), tags (Autofill from controlled list), filled-by (auto), fill-date (auto), verified (human checkbox).
    CRM: company name (human), industry (Autofill from list), size (Autofill from list), key contacts (Autofill extraction), notes (human), last interaction (formula from related database).
    Research database: source (human), key claim (Autofill summary), category (Autofill), related projects (Autofill relation), my take (human), filled-by (auto).

    Three schema mistakes

    1. Letting Autofill manage relation properties. Cross-row relationships are judgment calls. Autofill misses context. Keep relations human.
    2. No fill date. Without a date stamp, you can’t tell stale data. After 30 days, Autofill output may not reflect current page state.
    3. Mixing free text with structured fields. A free-text “notes” field next to an Autofill “summary” creates confusion about which is canonical.

    What to read next

    AI Autofill Databases foundation piece, Editorial Surface Area, Second-Brain Architecture, Trust Gap.

  • AI Autofill Databases Explained: The Self-Maintaining Knowledge Base

    AI Autofill Databases Explained: The Self-Maintaining Knowledge Base

    AI Autofill Databases Explained: The Self-Maintaining Knowledge Base

    The 60-second version

    AI Autofill is the feature that makes a Notion database start maintaining itself. Point it at a column and tell it what to fill — summarize the page, extract the deadline, categorize the topic — and it processes each row using the row’s content and your instructions. Basic Autofill ships with Business and Enterprise plans and uses no credits. Custom Agent Autofill (post-May 4) runs Custom Agent capabilities under the hood, costs credits, and handles complex reasoning that Basic can’t. The honest version: Basic is good enough for most simple categorization and extraction. Custom Agent Autofill is for cases where Basic produces inconsistent results.

    What Autofill actually does

    Three categories of work it handles well:
    1. Summarization into a property. Long-form pages compressed into a one-sentence summary in a Summary column. Common pattern for content libraries, research databases, and meeting notes archives.
    2. Categorization. Tagging rows with categories based on content. Works well when categories are well-defined (e.g., “support ticket type,” “lead source”). Works less well when categories overlap or require judgment.
    3. Extraction. Pulling specific data points from page content into structured properties — dates, names, dollar amounts, status flags. Works well when the data is reliably present in the source.

    Where Autofill struggles

    Three places it gets inconsistent:
    Properties that require judgment beyond the page. “Is this lead qualified?” depends on context the page may not contain. Autofill will produce an answer, but consistency is poor.
    Multi-property dependencies. “Set the priority based on the deadline and the customer tier” requires reasoning across properties, not just within the page. Possible with Custom Agent Autofill, unreliable with Basic.
    Free-form output that needs to match a tone. “Write a customer-facing summary in our brand voice.” Autofill produces a summary, but matching brand voice across hundreds of rows is hit or miss without a tightly written prompt.

    Basic vs Custom Agent Autofill

    The split that matters:
    Basic Autofill — included, free, runs locally on each row when the AI is invoked. Good for clear single-step prompts (“summarize this page in 2 sentences”). Doesn’t have Custom Agent capabilities like richer context or multi-step reasoning.
    Custom Agent Autofill — uses Custom Agent infrastructure, consumes credits after May 4, can continuously enrich rows in the background, handles more complex prompts. Worth the credit cost when Basic isn’t smart enough and the consistency matters.
    A useful rule: try Basic first. If output quality is good enough, stop there. Move to Custom Agent Autofill only when you’ve measured that Basic produces unreliable results for your specific use case.

    Three Autofill patterns that work

    1. The intake form pattern. New rows arrive (from a form, an integration, or a manual entry). Autofill columns extract structured data from the unstructured input — pulling dates, names, key topics, sentiment, urgency. The intake desk staffs itself.
    2. The library catalog pattern. A content library or research database where every entry needs summary, tags, and category. Autofill keeps the catalog usable as it grows. Without it, large databases become unsearchable.
    3. The status synthesis pattern. A project tracker where each project’s current state is summarized in a “current status” field that updates as the page content changes. Stakeholders get a quick read without opening each project.

    Three patterns that don’t work

    1. Anything requiring fresh external data. Autofill works on what’s in the row. It can’t decide “is this competitor active in our market” because the answer isn’t in the row.
    2. Cross-row reasoning at scale. Autofill processes one row at a time. “Rank these against each other” needs a different approach (a view, a formula, or a query agent).
    3. Compliance-sensitive categorization. If the categorization has legal or regulatory weight, you don’t want it autofilled. Use Autofill to draft the suggested category; have a human confirm.

    The trustworthy database principle

    Autofill’s risk is silent drift — fields that look filled but aren’t accurate. Three guardrails:
    Always show the source. Add a “filled by” field or a date stamp so humans can tell what’s machine-generated and how recently.
    Spot-check 10% monthly. A quick audit of randomly selected rows catches drift before it spreads.
    Set a re-fill cadence for stale rows. Pages change. The Autofill output reflects the page at fill time. Rows older than 30 days that haven’t been re-checked should be flagged.

    What to read next

    Corpus follow-ups: Custom Agents foundation piece (because Custom Agent Autofill runs on that infrastructure), the database schema design article in Deep Technical (how to build databases that Autofill well), and the May 3 cliff (when Custom Agent Autofill cost becomes real).

  • The Soda Machine Thesis: A Mental Model for Running an AI-Native Business on Notion

    The Soda Machine Thesis: A Mental Model for Running an AI-Native Business on Notion

    The hardest part of running an AI-native business on Notion in 2026 isn’t the tools. The tools are fine. The tools ship regularly and they work. The hard part is that the vocabulary hasn’t caught up with the reality, and when the vocabulary is wrong, your design choices get wrong too.

    Here’s what I mean. When I started seriously composing Workers, Agents, and Triggers in Notion, I found I was making the same kinds of mistakes over and over. Building a worker for something an agent could have handled with good instructions. Attaching five tools to an agent that only needed two. Setting up a scheduled trigger for something that should have fired on an event. After the third or fourth time, I realized the mistakes had a common source: I didn’t have a mental model for when to reach for which piece.

    Notion doesn’t give you one. The documentation is accurate but it’s a list of capabilities. Vendor-shaped — here is what Custom Agents can do, here is what Workers do, here are your trigger types. All true. All useless for the question I actually had, which was given a job I want done, which piece do I build?

    So I made a mental model. It’s imperfect and it’s mine, but it has survived a few months of real use and it has saved me from a dozen architecture mistakes I would have otherwise made. This article is the model.

    I call it the Soda Machine Thesis. It might sound silly. It works.


    The core analogy

    Workers are syrups. Agents are soda fountain machines. Triggers are how the machine dispenses.

    When someone asks for a custom soda fountain — a Custom Agent — three decisions get made, in order:

    1. Which syrups (workers and tools) load into this machine? What capabilities does it need access to? What external services does it need to reach? What deterministic operations does it need to perform?
    1. How is the machine programmed? What are its instructions? What’s its job description? How does it think about what it’s doing? (This is the part where agents diverge most — two machines with identical syrups behave completely differently based on instructions.)
    1. How does it dispense? Does it pour when someone presses a button (manual trigger)? Does it pour on a schedule (timer)? Does it pour when the environment changes — a page gets created, a status flips, a comment gets added (event sensor)?

    That’s the whole model. Three questions, in that order. If you can answer all three cleanly, you have a working agent. If you can’t answer one of them, you have an agent that is going to produce noise and frustrate you.

    I have watched this analogy clarify a dozen conversations that were going nowhere. “I want an agent that…” — and then I ask the three questions, and halfway through the answers it becomes obvious what the person actually wants is a simpler thing. Sometimes they don’t need an agent at all, they need a template with a database automation. Sometimes they need a worker, not an agent. Sometimes they need an agent with zero workers and better instructions.

    The analogy does real work. That’s the whole point of a mental model.


    Where the analogy holds

    The map is cleaner than you’d expect.

    Workers are syrups. Stateless, parameterized, reusable. The same worker — fetch-url, summarize, post-to-channel, whatever — can power a dozen agents. You build it once, you use it everywhere. A worker that sends an email works the same way whether it’s being called by a triage agent, a brief-writer, or a customer-response agent. That’s what syrup means: the ingredient doesn’t care which drink it’s going into.

    Agents are machines. They select, sequence, and orchestrate. An agent knows when to reach for which worker. An agent knows what the job is and reasons about how to do it. An agent can read a database, synthesize what it finds, reach for a tool to do a specific deterministic step, synthesize again, and return a result. An agent is a little piece of judgment on top of a set of capabilities.

    Triggers are how the machine dispenses. This is the cleanest part of the map because Notion’s own trigger types map almost 1:1 onto the analogy:

    • Button press or @mention → manual dispatch (“I’m pressing the button for a Coke”)
    • Schedule → timer (“pour me a drink at 7am every day”)
    • Database event → sensor (“someone just put a cup under the dispenser; fill it”)

    You don’t need to memorize trigger type names. You need to ask “how should this machine know it’s time to pour?” Once you know the answer, the trigger type follows.


    Where the analogy leaks (and what to do about it)

    No analogy is perfect. This one has four honest leaks that are worth knowing before you rely on the model.

    1. Agents have native hands, not just syrups

    A Custom Agent can read pages, search the workspace, write to databases, and send notifications without a single worker attached. Workers are specialty syrups for the things the base machine can’t do natively — external APIs, deterministic writes to strict database schemas, code execution, anything requiring exact outputs every time.

    This means not every agent needs workers. In fact, my highest-leverage agents often have zero workers. They use the base machine’s native capabilities, combined with strong instructions, to do the job.

    The practical consequence: don’t reach for a worker reflexively. Start by asking what the agent can do with just its native hands and good instructions. Only add workers when the agent genuinely needs capability it doesn’t have.

    2. Machine programming matters as much as syrup selection

    The instructions you give an agent — its system prompt, its job description, its operating rules — are doing as much work as the workers you attach. Two agents with identical workers will behave completely differently based on how they’re instructed.

    People tend to under-invest here. They attach five workers, write three sentences of instruction, and wonder why the agent is flaky. The fix is not more workers. The fix is writing instructions the way you’d write onboarding docs for a new employee — specific, scoped, honest about edge cases, clear about what the agent should do when it’s uncertain.

    My rule: if I’m about to attach a worker because the agent “keeps getting it wrong,” I first check whether better instructions would fix the problem. Nine times out of ten they would.

    3. Workers aren’t a single thing

    This is the leak that surprised me when I learned it. There are actually three kinds of worker, and they behave differently:

    • Tools — on-demand capabilities. The classic syrup. An agent calls them when it needs them. Example: a worker that fetches a URL and returns the text.
    • Syncs — background data pipelines that run on a schedule and write to a database. Not dispensed by an agent. These are more like an ice maker — they run on the infrastructure, filling the building up, and the machines use what the ice maker produces.
    • Automations — event handlers that fire when something happens in the workspace. Like a building’s fire suppression — nobody’s pressing a button; the environment triggers it.

    This matters because syncs and automations don’t need an agent to dispatch them. They run autonomously. If you’re building something that feeds a database on a schedule, that’s a sync, not a tool, and it doesn’t need an agent. If you’re building something that reacts to a page being updated, that’s an automation, not a tool.

    Getting this wrong is one of the most common architecture mistakes. People build an agent to dispatch a sync because they think everything has to flow through an agent. It doesn’t. Let the infrastructure do the infrastructure’s job.

    4. Determinism vs. judgment is the design axis

    The thing the soda analogy doesn’t capture well is that workers and agents are not just interchangeable building blocks. They serve fundamentally different purposes:

    • Workers shine when you want deterministic behavior. Same input, same output, every time. Schema-strict writes. External API calls where the shape of the request and response are fixed.
    • Agents shine when you want judgment, composition, and natural-language reasoning. Variable inputs. Fuzzy requirements. Synthesis across multiple sources.

    The red flag: building a worker for something an agent could do reliably with good instructions. You’re over-engineering.

    The green flag: an agent keeps being flaky at a specific operation. Harden that operation into a worker. Now the agent handles the judgment part, and the worker handles the reliable part.


    The “should this be a worker?” test

    When I’m trying to decide whether to build a worker or let an agent handle something, I run a five-point checklist. If two or more are true, build a worker. If fewer than two are true, stay manual or solve it with agent instructions.

    1. You’ve done the manual thing three or more times. The third time is the signal. First time is discovery, second time is coincidence, third time is a pattern worth capturing.
    2. The steps are stable. If you’re still figuring out how to do the thing, don’t codify it yet. You’ll codify the wrong version and have to rewrite.
    3. You need deterministic schema compliance. Writes that must fit a database schema exactly are worker territory. Agents can write to databases, but if the schema has strict requirements, a worker is more reliable.
    4. You’re calling an external service Notion can’t reach natively. This is often the clearest signal. If it’s outside Notion and needs to be reached programmatically, it’s a worker.
    5. The judgment required is minimal or already encoded in rules. If the decisions are simple enough to express as code, a worker is fine. If the decisions need real reasoning, it’s agent territory.

    This test is not a strict algorithm. It’s a gut-check that catches the most common over-engineering mistakes before they happen.


    The roles matter more than the technology

    Here’s the extension of the analogy that actually made the whole thing click for me.

    Every construction project has four roles. The Soda Machine Thesis as I originally described it has three of them. The one I hadn’t named — and the one you’re probably missing in your own workspace — is the Architect.

    Construction roleYour system
    Owner / DeveloperThe human in the chair. Commissions work, approves output, holds the keys.
    ArchitectThe AI-in-conversation. Claude, Notion Agent in chat, whatever model you’re actively designing with.
    General ContractorA Custom Agent running in production.
    SubcontractorA Worker. Called in for specialty work.

    The distinction that matters: the Architect and the General Contractor are the same technology, playing different roles. When you’re chatting with a model about how to design a system, that model is acting as Architect — designing the thing before it gets built. When a Custom Agent runs autonomously against your databases overnight, it’s acting as General Contractor — executing the design.

    Same underlying AI. Completely different role.

    Getting this distinction wrong is how operators end up either (a) over-trusting autonomous agents with design decisions they shouldn’t be making, or (b) under-using conversational AI for the system-design work it’s actually best at. Chat with the Architect. Deploy the GC. Don’t confuse them.


    Levels of automation (what you’re actually doing at each stage)

    Most operators cycle through these levels as they get deeper into the pattern. Knowing which level you’re currently at — and which level a specific problem actually needs — prevents a lot of wasted effort.

    Level 0: The Owner does it. You manually do the thing. This is fine. Everything starts here. Some things should stay here.

    Level 1: Handyman. You’ve built a template, a button, a saved view. No AI involvement. Native Notion helps you do it faster. Still you doing the work.

    Level 2: Standard Build. Notion’s native automations handle it. Database triggers fire on status changes. Templates get applied automatically. Still deterministic, still no AI.

    Level 3: Self-Performing GC. A Custom Agent does the work natively — reading and writing inside Notion, reasoning about context, no workers attached. This is where agents earn their keep for the first time.

    Level 4: GC + One Trade. An agent with one specialized worker. The agent handles judgment; the worker handles a single deterministic step. This is the most common production pattern.

    Level 5: Full Project Team. An agent orchestrating multiple workers in sequence. Real project coordination. A brief-writer agent that calls a URL-capture worker, then a summarization worker, then a publishing worker, all in order.

    Level 6: Program Management. Multiple agents coordinated by an overarching structure. One agent that dispatches to specialist agents. Portfolio-level orchestration. This is where it gets complicated and where most operators don’t need to go.

    The mistake I made early on, and watch other operators make, is jumping to Level 5 when Level 3 would have worked. More pieces means more failure points. Solve it at the lowest level that works.


    Governance: permits, inspections, and change orders

    The analogy extends further than I expected into governance — which is the unsexy part of running real agents in production, but it’s the part that separates operators who keep their agents working from operators whose agents quietly stop working without them noticing.

    • Pulling a permit = Attaching a worker to an agent. You’re granting that specialty trade permission to work on your job. This is not a nothing decision. Be deliberate.
    • Building inspection = Setting a worker tool to “Always Ask” mode. Before the work ships, the human reviews it. For any worker that does something consequential, this is the default.
    • Certificate of Occupancy = The moment a capability graduates from Building to Active status in your catalog. Before that moment, treat it as construction. After, treat it as load-bearing.
    • Change Order = Editing an agent’s instructions mid-project. The scope changed. Document it.
    • Punch List = The run report every worker should write on every execution — success and failure. No silent runs. If you can’t see what your agent did, you don’t know what it did.
    • Warranty work = Iterative fixes after a worker is deployed. v0.1 to v0.2 to v0.3. This never stops.

    The governance layer sounds boring but it’s what makes agents run for months instead of days. An agent without run reports eventually drifts, fails silently, and leaves you discovering the failure weeks later when the downstream thing it was supposed to do quietly stopped happening. The governance rituals — inspections, change orders, punch lists — are not overhead. They’re what makes the system durable.


    The revised one-sentence summary

    Putting it all together, here is the whole thesis in one sentence:

    Notion is the building. Databases are the floors. The Owner runs the project. Architects design in conversation. General Contractors (agents) execute on-site. Subcontractors (workers) run specialty trades. Syncs are maintenance contracts. Triggers are permits, sensors, and dispatch radios.

    If you can hold that sentence in your head, you can design automation in Notion without getting lost in the vocabulary. When you’re about to build something, ask: which role am I playing right now? Which role does this piece need to play? Who’s the Owner, who’s the Architect, who’s the GC, who’s the sub? If you can answer, the architecture writes itself.


    Practical takeaways

    If you made it this far, here are the five things I’d want you to walk away with:

    1. Not every agent needs workers. Start with native capabilities and strong instructions. Add workers only when the agent can’t do the thing otherwise.
    1. The third time is the signal. Don’t build infrastructure for something you’ve only done twice. You’ll build the wrong version. The third time is when the pattern has stabilized enough to capture.
    1. Syncs and automations don’t need an agent. If you’re feeding a database on a schedule, or reacting to a workspace event, let the infrastructure do it. Don’t wrap it in an agent for no reason.
    1. Separate the Architect from the GC. Use conversational AI to design the system. Use Custom Agents to run the system. Don’t let an autonomous agent make design decisions that should be made in conversation.
    1. Write run reports for everything. Silent success is worse than loud failure, because silent success is indistinguishable from silent failure until weeks later. Every agent, every worker, every run — writes a report somewhere readable.

    That’s the model. It is imperfect and it is mine. If you adopt it, make it your own. If you have a better one, I’d honestly like to hear about it.


    FAQ

    What’s the difference between a Notion Worker and a Custom Agent? A Worker is a coded capability — deterministic, reusable, typically written in TypeScript — that a Custom Agent can call. A Custom Agent is an autonomous AI teammate that lives in your workspace, has instructions, runs on triggers, and can optionally use Workers to do specialized tasks. Workers are capabilities. Agents are operators that can use those capabilities.

    Do I need Workers to use Custom Agents? No. Many Custom Agents run perfectly well with zero Workers attached, using only Notion’s native capabilities (reading pages, writing to databases, searching, sending notifications) plus well-written instructions. Workers become necessary when you need to reach external services or enforce strict deterministic behavior.

    What are the three trigger types for Custom Agents? Manual (button press, @mention, or direct invocation), scheduled (recurring on a timer), and event-based (a database page is created, updated, deleted, or commented on). Pick the one that matches how the agent should know it’s time to act.

    When should I build a Worker versus letting an Agent handle something? Build a Worker when at least two of these are true: you’ve done the manual thing three or more times, the steps are stable, you need deterministic schema compliance, you’re calling an external service Notion can’t reach, or the judgment required is minimal. If fewer than two are true, stay manual or solve it with agent instructions.

    What’s the difference between a Tool, a Sync, and an Automation? A Tool is an on-demand capability that an agent calls when needed. A Sync is a background pipeline that runs on a schedule and writes to a database — no agent required. An Automation is an event handler that fires when something changes in the workspace — also no agent required. Tools are dispatched by agents; syncs and automations run on the infrastructure.

    What’s the Architect/GC distinction? When you chat with AI to design a system, the AI is playing Architect — thinking about what should be built. When a Custom Agent runs autonomously in your workspace, it’s playing General Contractor — executing the design. Same technology, different role. Don’t confuse them: let Architects design, let GCs execute.

    Does this apply outside of Notion? The Soda Machine Thesis is written around Notion’s specific implementation of Workers, Agents, and Triggers, but the underlying pattern (deterministic capabilities + judgment layer + trigger mechanism) applies to most modern agent frameworks. The vocabulary may differ. The architecture is the same.


    Closing note

    Mental models earn their place by changing the decisions you make. If the Soda Machine Thesis changes how you decide what to build next in your Notion workspace, it has done its job. If it doesn’t, discard it and find one that does.

    The reason I wrote it down is that the vocabulary available for thinking about AI-native workspaces in 2026 is still mostly vendor vocabulary, and vendor vocabulary optimizes for describing what a product can do rather than helping operators make good choices. The operator vocabulary has to come from operators. This is mine, offered in that spirit.

    If you’re running this pattern and have refinements, they’re welcome. The thesis is a living document in my own workspace. It gets smarter every time someone pushes back.


    Sources and further reading

    This mental model builds on earlier conceptual work across multiple AI tools (Notion Agent, Claude, GPT) contributing to the same thesis over a series of architecture conversations. The framing evolved through disagreement more than consensus, which is how mental models usually get better.

  • The Notion Operating Company: How to Actually Run a Business on a Workspace in 2026

    The Notion Operating Company: How to Actually Run a Business on a Workspace in 2026

    There is a version of Notion most people use, and there is the version a small number of operators have quietly built — and in April 2026 those two versions are now so far apart that they’re barely the same product.

    The version most people use is a wiki. It is a place you put information you intend to come back to, and most of the time you don’t. Pages go stale. Databases grow faster than they get organized. The search gets worse as the content gets larger. You know this because you have seen your own Notion and felt the tug of guilt when you open it, the small calculation of whether it is worth the effort to fix any of this versus just writing the thing you need to write in a fresh page and adding it to the pile.

    The version a smaller number of people have built is an operating company. It runs on Notion. The human in the chair reads briefs written by AI, approves work, watches reports come back, adjusts priorities, and hands the next job out — and the human never leaves Notion. Everything that is expensive to move between tools does not move. The work comes to them.

    Those aren’t the same product anymore. They used to be. Notion was, for years, fundamentally a block editor with databases bolted on. What changed — what actually changed, not what the vendor said changed — is that over the last six months Notion stopped being a place you put things and started being a place you run things. Custom Agents shipped in late February. The Workers framework followed. MCP support matured. The Skills layer made repeatable workflows into commandable capabilities. What used to be a workspace is now closer to an operating system for a small business.

    Most coverage of this shift is either vendor-positive cheerleading or a product tour disguised as a guide. This is neither. This is how an actual operator runs a real, unglamorous business — dozens of properties, content production cycles, client work, all of it — out of Notion in 2026. The shape, the databases, the ritual, what goes inside the workspace and what stays outside, and where it still breaks.

    If you want a product tour you can find one on Notion’s own blog. If you want the honest operator version, keep reading.


    What “operating company” actually means

    The frame matters, so let’s be concrete about what it is.

    An operating company, in the sense I mean it, is the set of decisions, assets, people, and ongoing commitments that make a business actually go. Not the legal entity. The operating layer. In a traditional small business, that operating company lives in someone’s head, a few spreadsheets, a calendar, a CRM, an email inbox, a project tool, a file drive, a slack, a billing system, and the recurring pain of trying to hold all of it in mind at once.

    Running a business on Notion in 2026 means collapsing as much of that operating layer as possible into a single workspace that knows what it is. Not a place where you write things down. A place where the work is actually happening, where the state of the business is legible at a glance, where a decision made on Monday shows up in Thursday’s automatically-generated brief without anyone having to remember to copy it forward.

    The term I have started using is the Notion Operating Company. It captures the thing correctly: Notion is not the tool you use to run the company, it is the operating layer of the company. The humans make the calls, set the priorities, and absorb the parts that cannot be delegated. Everything else lives in the workspace and operates against the workspace.

    If that sounds like a personal productivity system scaled up, it is not. Personal productivity systems are closed loops. The Notion Operating Company is an open system that other humans, AI teammates, and external services read from and write to. The difference is legibility and composability, and in 2026 those are the qualities that separate a workspace that earns its place from a workspace that is a second pile.


    Why this suddenly works in 2026 (and didn’t in 2024)

    A few things had to be true at the same time for this pattern to become reliably available to small teams and solo operators. None of them were true two years ago.

    Custom Agents shipped. On February 24, 2026, Notion released Custom Agents as part of Notion 3.3. These are autonomous AI teammates that live inside your Notion workspace and handle recurring workflows on your behalf, 24 hours a day, 7 days a week. They do not wait for you to prompt them. You give them a job description, a trigger or schedule, and the data they need, and they run. That one change is the hinge the whole operating-company pattern swings on. Before Custom Agents, automation inside Notion was cosmetic — property updates, templated pages, simple reminders. After Custom Agents, a workspace can actually operate itself between human check-ins.

    The pricing makes it viable. Custom Agents are free to try through May 3, 2026, so teams have time to explore and see what works. Starting May 4, 2026, they use Notion Credits, available as an add-on for Business and Enterprise plans. The pricing matters because it turns out many workflows are cheap enough to run continuously, and the ones that aren’t are easy to audit once the dashboards shipped. Custom Agents are now 35–50% cheaper to run across the board, especially ones with repetitive tasks like email triage. They’re even more cost efficient when you pick new models like GPT-5.4 Mini & Nano, Haiku 4.5, and MiniMax M2.5 that use up to 10× fewer credits. The 10× model-routing move means a well-designed agent for an operator’s workspace costs real-world pennies to run daily.

    MCP connects the workspace to everything else. The Model Context Protocol, opened by Anthropic, gives the workspace a standardized way to reach external tools and services. Notion ships MCP support; most serious AI tools do. The practical consequence: a Custom Agent inside Notion can reach into a source-control system, post to a messaging tool, query a database, or trigger an external worker, without anyone writing glue code. Not every integration is seamless, but the floor has lifted.

    Skills turned workflows into commandable capabilities. Skills turn “that thing you always ask Notion Agent to do” into something it can do on command. Save your best workflows as skills like drafting weekly updates, reshaping a doc in your team’s format, or prepping briefs before a meeting. That matters because the skills layer is where institutional pattern-capture lives. The first time you solve a problem in your workspace, you solve it. The second time, you turn it into a skill. The third time, you invoke it by name. A workspace that accumulates skills gets faster over time instead of slower.

    Autofill became real. Use Autofill to keep your data fresh and up to date, now with all the power and intelligence of Custom Agents. Continuously enrich, extract, and categorize information across every row, so your database stays trustworthy without manual review. That changes what a Notion database is. Databases used to rot without manual maintenance. A self-maintaining database is a different kind of object.

    None of these individually would have tipped Notion from workspace to operating system. All of them together, shipped inside a twelve-month window, did.


    The shape of an operating company in Notion

    Let me describe the actual shape. This is not theoretical. This is the operational pattern that works, stripped of the specifics that would identify any one business.

    The Control Center

    At the root of the workspace is a single page called the Control Center. It is the first page you see when you open Notion. It is the page an AI teammate is told to read first when it is helping you with anything. It is the page a new human teammate reads on day one before they read anything else.

    The Control Center does not contain content. It contains pointers. Specifically:

    • Today — a surfaced view of whatever is actively happening today, pulled from the Tasks database, filtered to today or overdue
    • The live business state — three to five sentences updated continuously (by a Custom Agent, actually) describing where the business is, what is being worked on, what is on fire
    • The database index — a linked block for each operational database, in order of how often you touch them
    • The active projects list — rolled up from the Projects database, filtered to in-flight
    • The week — the current week’s focus, the working theme, what “winning the week” looks like
    • Open loops — the short list of unresolved decisions currently parked waiting for input

    The Control Center is roughly two screens long. It tells you what is happening and gives you the jumping-off points to go deeper. Anything that belongs on the Control Center is either updated automatically or so critical that manual maintenance is worth it.

    The database spine

    Under the Control Center live the operational databases. In a functioning operating company, these map directly to the actual entities the business deals with, not to organizational categories.

    For a service business, the spine typically includes: Clients, Projects, Tasks, Leads, Decisions, People (the humans you interact with externally), Assets, and a catch-all Inbox.

    For a content business, the spine typically includes: Properties (the things you publish on), Briefs, Drafts, Published, Distribution, Ideas, and Performance.

    For a product business, the spine looks different again: Features, Customers, Feedback, Roadmap, Releases, Incidents.

    The exact databases depend on the business. The pattern does not. Each database represents a real operational object. Each relation represents a real dependency. Each view answers a question someone actually asks regularly.

    The test for whether a database belongs on the spine is simple: can you describe, in one sentence, what decision this database helps someone make? If the answer is yes, it belongs. If the answer is “it’s where I put stuff about X,” it doesn’t.

    The agents layer

    Running on top of the database spine is the agents layer. This is the part that would not have existed in 2024.

    The operational pattern, in the workspace I actually run, has a handful of agents that each do one job and do it well.

    • The Triage Agent watches the Inbox database. Anything that lands there gets a priority, a category, and a pointer to the database it actually belongs in. It does not make big decisions. It takes the pile and turns it into a sorted pile.
    • The Morning Brief Agent runs once a day. It reads the Control Center state, the active projects, the top of the Tasks database, the calendar, and the unresolved Decisions, and writes a three-paragraph brief at the top of today’s Daily page. You wake up and the state of the business is already synthesized.
    • The Review Agent runs weekly on Fridays. It pulls what was completed, what stalled, and what slipped, and writes the weekly retro. It is not asking you to fill in a form. It is writing the retro and handing it to you to review.
    • The Enrichment Agent runs on database writes. When something new lands in a key database — a lead, a project, a decision — the agent fills in the fields that would otherwise require manual data entry. Research, links, categorization.
    • The Escalation Agent watches for states that require human attention. A project stalled for too long, a task with no owner, a decision parked past its decide-by date. It surfaces them on the Control Center.

    That’s five agents. Some workspaces I’ve seen run more. Most run fewer. The number is not the point; the pattern is: each agent has one job, one data source, one output surface, and a clear signal for when it should run.

    The constraint that keeps this from sprawling into chaos is a rule I’ve internalized: one agent, one job. The moment an agent tries to do three things, it does none of them well.

    The skills layer

    Beneath the agents, you accumulate skills over time. These are not agents; they’re invoked capabilities. “Generate a weekly client report in this format.” “Convert this meeting transcript into tasks.” “Draft a response to this inbound email in my voice.” Skills are the pattern-capture layer — the place where solved-problems become invocable capabilities.

    The skills layer grows by a specific rule: the third time you notice yourself doing the same thing manually, you turn it into a skill. Not the first time, not the second. The third time is the signal that it’s going to happen again, and the cost of capturing it is less than the cost of doing it manually from here forward.

    The source-of-truth boundary

    Here is where most Notion-as-OS writeups go silent, and it’s actually the most important thing in the whole pattern.

    Notion is not the source of truth for everything. It is the source of truth for the operational state of the business — what’s happening, what’s decided, what’s being worked on, what’s next. It is not the source of truth for code, for financial transactions, for legal documents, for anything that needs to survive an outage of Notion itself.

    Code lives in a source-control system. Money data lives in whatever financial system the business uses. Legal artifacts live in signed-document storage. Heavy compute runs outside Notion and reports back. The operating company is inside Notion; the substrate is not.

    The mental model I use: Notion is the bridge of the ship. The bridge runs the ship. The ship is not inside the bridge.

    This distinction is what prevents the whole pattern from collapsing. A workspace that tries to be the whole business eventually becomes unusable because it is bloated with content that doesn’t belong in a control plane. A workspace that is a control plane stays light, stays fast, and stays legible.


    The daily ritual (what it actually looks like)

    The pattern lives or dies in daily use. Let me describe what a normal working day looks like for an operator running on this pattern — the actual sequence, not the aspirational version.

    Open Notion. The Control Center loads. The Morning Brief Agent has already run; the top of today’s Daily page has a three-paragraph synthesis of the state of the business: what’s on fire, what’s progressing, what requires a decision today. Reading that takes ninety seconds.

    Scan the Inbox. The Triage Agent has already sorted whatever landed overnight. Each item has a category, a priority, and a pointer. You’re not doing the sort. You’re spot-checking the sort — agreeing, disagreeing, occasionally fixing, and dispatching the important items into their real databases.

    Check Escalations. The Escalation Agent has flagged the three things that need attention. You make the decisions. This is the part where being a human matters.

    Open today’s active project. Whatever you are actually working on is linked from the Control Center. You go there and do the work. Sometimes the work is writing in Notion. Sometimes the work is in an IDE, a chat window, a document, a call — Notion is where you come back to log what happened and what comes next.

    At a natural stopping point, log. The log is short. Two sentences on what just got done. Notion captures the timestamp. Over time the log becomes the actual record of how the business moves.

    Evening wrap. Five minutes. The day’s work closes out. Anything that didn’t get done gets re-dated. Tomorrow’s active page pre-stages.

    That’s the ritual. It takes under twenty minutes of overhead per day and gives you a fully legible operating record. The agents do the work that would otherwise be overhead. The human does the work that requires a human.

    The difference between an operator running this pattern and an operator running without it is not productivity on any individual task. It is the absence of the context-loss tax — the tax you pay every time you sit down and have to remember where you left off, what’s happening, what’s next. Pay that tax once a day at the beginning of the brief, and the rest of the day runs on continuous context.


    Where it still breaks (the honest part)

    This pattern is not finished. There are specific places where running a real operating company on Notion still hits walls, and pretending otherwise is the kind of dishonesty that catches up to you when the tool fails you at a bad moment.

    Heavy write workloads. Notion is not a database in the performance sense. If you are trying to push hundreds of updates per minute through the API, you are going to hit rate limits and you are going to have a bad time. The operational pattern is aware of this: heavy writes go to a real database first and are reflected into Notion in summary form.

    Reliable external integration. Custom Agents’ ability to reach external systems via MCP has improved a lot in 2026, but it is not ironclad. Agents that must succeed — send this email, charge this card, update this record — still belong in a purpose-built service, not in a Custom Agent. The rule I use: if the cost of the agent silently failing is real money or real trust, it doesn’t belong in Notion.

    Mobile agent management. Building, editing, and configuring Custom Agents requires the Notion desktop or web app. Mobile access for viewing and interacting with existing agents is supported, but agent creation and configuration is desktop/web only. This is fine but worth knowing. Operators who work primarily from phone can interact with agents but cannot build them on the go.

    Prompt injection. Custom Agents can encounter “prompt injection” attempts — when someone tries to manipulate an agent through hidden instructions in content it reads. This risk exists across connected tools, uploaded documents, and even internal communications. Notion has shipped detection, but the attack surface is real and growing. The practical operator response: don’t give agents access to anything they don’t strictly need, and review any external content an agent will read before granting access.

    The shape of the workspace matters more than it used to. A messy Notion workspace was merely annoying in 2024. A messy Notion workspace in 2026 makes your agents worse, because the agents are navigating the same structure you are. Disorganized databases produce disorganized agent outputs. The cost of workspace hygiene used to be cosmetic. It’s now functional.

    Credit economics at scale. Starting May 4, 2026, Custom Agents run on Notion Credits, a usage-based add-on available for Business and Enterprise plans. The pricing is $10 per 1,000 credits. Credits are shared across the workspace and reset monthly. Unused credits do not roll over to the following month. For a small operator, this is fine. Most workflows are cheap. For larger teams running many agents, credit consumption becomes a line item worth watching. Notion has shipped a credits dashboard to help, but budget discipline is a new muscle for Notion-native teams.

    None of these are dealbreakers. All of them are things the pattern has to work around. The honest version of this article tells you that up front.


    Notion Agent vs Custom Agents (the distinction that matters)

    One clarification because the terminology can confuse newcomers to the pattern.

    Custom Agents are team-wide AI teammates that run automatically on schedules or triggers. Notion Agent is a personal AI assistant that works on-demand when you ask. All Notion users get Notion Agent. Business and Enterprise customers get Custom Agents, priced under the Notion credit system.

    The operating-company pattern uses both. Notion Agent is the on-demand assistant — the one you invoke for “rewrite this paragraph” or “summarize this doc” or “find me every page that mentions X.” Custom Agents are the autonomous teammates that run the background rhythms.

    The mistake to avoid: trying to use Notion Agent for the background rhythms. It is not built for that. It runs when you ask. Custom Agents run when the world changes or when a schedule says so. Those are different tools for different jobs.


    Who this pattern is for

    To be clear about who gets the most out of the Notion Operating Company pattern:

    • Solo operators running real businesses. The leverage is highest here because there is no team to argue with about conventions. You decide the shape, you live in it.
    • Small teams (3–15 people) with a strong operational function. The pattern works if one person owns workspace architecture. It breaks if everyone is allowed to add databases and pages ad-hoc without a maintaining hand.
    • Agencies and consultancies running multi-property operations. Anywhere you need to coordinate lots of parallel work and keep the whole portfolio legible to one or two humans.
    • Knowledge-heavy businesses. Law firms, research shops, content operations, advisory services. The operating company pattern rewards businesses where the value is produced by synthesis across prior work.

    Where the pattern fits less well: businesses where most of the work happens outside any tool (field services, physical retail, manufacturing floors). Notion can still run the management layer, but most of the actual operational data lives elsewhere.


    How to start without building a cathedral

    The pattern I’ve described can sound like a project. It isn’t. Or rather, it can be — people build beautiful elaborate versions for a year and never actually use them. The better path is embarrassingly small steps.

    Week one: build the Control Center. Just that page. Two screens long. Link to the databases you already have, even if they’re messy. The Control Center is the anchor; everything else will build against it.

    Week two: add one Custom Agent. Pick the simplest high-frequency job you do manually. The Triage Agent is a good first choice. Let it run for a week. Watch what it gets right. Adjust.

    Week three: add the Morning Brief Agent. This is the one that changes how your days open. If it works, you will know because opening Notion will stop feeling like work and start feeling like a starting line.

    Week four: look at your databases. The ones that matter will be obvious because the agents will be using them. The ones that don’t matter will be collecting dust. Delete or archive the dead ones. Formalize the live ones.

    After that, the pattern compounds. Each thing you do manually three times becomes a skill. Each repeated workflow becomes an agent. Each messy database gets cleaned when an agent trips on it. The workspace gets smarter as a function of use, not as a function of a weekend rebuild project.

    The operators I’ve seen succeed with this pattern have a specific characteristic in common: they started small and kept going. The operators I’ve seen fail had grand plans and never got to week four.


    What “AI-native business” actually means (if we have to use the phrase)

    The term “AI-native” gets thrown around enough to lose meaning. Inside this pattern, it means something specific.

    An AI-native business is one where AI is not a tool you pick up to accomplish a task. It is a teammate that is already in the workspace, already reading the state, already surfacing what matters, already handling the rhythms. The human is not using AI. The human is working with an operating company that has AI embedded into its substrate.

    That is what the Notion Operating Company pattern produces. Not a workspace that is faster because AI is speeding things up. A workspace that operates continuously because the AI is running inside it, and the human shows up to make the calls that only a human can make.

    This is why I wrote at the beginning that the version of Notion most people use and the version a smaller number have built are barely the same product anymore. They are not. They are two different conceptions of what a workspace is for, and in April 2026, one of them is still a place you put things, and the other is a place you run things.

    The whole game is picking the second one on purpose.


    FAQ

    What’s the difference between using Notion as a wiki and running an operating company on Notion? A wiki is where information lives after you’re done with it. An operating company is where the work actually happens — briefs, decisions, run reports, active projects, agents handling recurring rhythms. The operating company pattern treats Notion as a control plane, not an archive.

    Do I need Business or Enterprise plan? For Custom Agents, yes. Custom Agents require Notion’s Business or Enterprise Plan. Notion Agent (the on-demand personal AI) is available to all Notion users. The operating-company pattern benefits substantially from Custom Agents, so most serious implementations are on Business or higher.

    How much does this cost to run? Custom Agents are free to try through May 3, 2026. Starting May 4, 2026, they use Notion Credits, available as an add-on for Business and Enterprise plans — $10 per 1,000 credits, shared across the workspace, reset monthly, no rollover. In practice, for a solo operator or small team running five or so agents, credit costs are modest. Budget discipline becomes relevant at larger scale.

    What AI models can the agents use? Currently available: Auto (Notion selects), Claude Sonnet 4.6, Claude Opus 4.7, and GPT-5. Notion regularly adds new models, so expect this list to evolve. Recent additions include cost-efficient models like Haiku 4.5 and GPT-5.4 Mini/Nano that can cut credit usage significantly.

    How secure is it? Custom Agents inherit your permissions, so they can see what you see. They offer page-level access control. Every agent run is logged with full audit trails. Notion has implemented guardrails to automatically detect potential prompt injection, and has built controls for admins and workspace owners to monitor connections and restrict what agents can access. The honest answer: reasonable security defaults, real attack surface, practical precautions apply (scope agents narrowly, audit connected sources).

    Can I run this pattern solo? Yes. Solo operators get the highest leverage from the operating-company pattern because there’s no team coordination overhead. The pattern scales down cleanly.

    What if I don’t want to use Custom Agents? Does the pattern still work? The database spine and Control Center work without agents. You’ll be doing manually what the agents would be doing — daily briefs, triage, weekly reviews. The pattern is still more legible than a traditional Notion setup; you just don’t get the “workspace operates itself between check-ins” effect.

    How long does it take to build? The honest answer is you never stop building. You never should. A workspace that stops evolving is a workspace that is about to stop working. But the minimum viable version — Control Center, one agent, a handful of databases — is a week of part-time work, not a project.


    A closing observation

    The reason this pattern is worth writing about now, in April 2026, is that the window where it is a genuine edge is probably short. Two years from now, some version of this will be the default way Notion is used, and the advantage will compress. Today, most workspaces are still wikis. The operators who make the switch to operating-company now are buying a year or two of operational leverage that becomes the baseline eventually.

    But for right now, this works, it is real, and almost nobody is doing it. That gap is the thing.

    If you are already running something like this, you know. If you are reading about it for the first time, the starting point is the Control Center and one agent. Build the Control Center this week. Add the agent next week. In a month, you’ll have a workspace that is a different kind of object than the one you started with.

    That’s what we mean by an operating company.


    Sources and further reading

  • SpyFu Competitor Intelligence Dashboard — Notion Template & Automation

    SpyFu Competitor Intelligence Dashboard — Notion Template & Automation

    Wake up Monday morning with a fresh competitive intelligence snapshot already in your Notion workspace. No logging in. No pulling data manually. Just the information you need, already organized.

    The Problem With Manual Competitive Research

    You know you should be monitoring competitors regularly. You rarely do, because it takes 45 minutes to log into SpyFu, run the searches, note the changes, and put them somewhere useful. This system does all of that automatically and deposits a structured report in Notion every Monday before you start your week.

    What You Get

    • Notion database template with competitor profiles, tracked keyword rankings, weekly change logs, and ad activity sections — pre-structured and ready to populate
    • Google Apps Script automation (completely free) that authenticates with the SpyFu API, pulls weekly data for your tracked domains, and writes results to your Notion database automatically
    • Competitor profile pages with historical ranking trend views — see which direction each competitor is moving
    • Alert rules that flag competitors who gained 10 or more positions on your tracked keywords — the moves worth paying attention to
    • Client-ready report templates that pull from the Notion database and format into a presentation-ready competitive summary
    • Setup guide — running end-to-end in under 2 hours, no developer required

    How It Works

    You set up the Google Apps Script once (the setup guide takes you through it step by step). You add your competitor domains and target keywords to the Notion database. Every Sunday night, the script runs automatically, pulls the latest SpyFu data, and writes structured records to Notion. Monday morning, your competitive dashboard is already updated.

    Requires SpyFu Pro plan ($79/mo) for API access. Requires a free Notion account and a free Google account for Apps Script. No ongoing fees beyond your SpyFu subscription.

    SpyFu Competitor Intelligence Dashboard

    $67

    Delivered to your inbox within 24 hours

    Buy Now →

    Secure checkout via Square — all major cards

    Want this customized for your stack? Email will@tygartmedia.com

    FAQ

    How hard is the setup?

    Under 2 hours following the guide. The hardest part is getting your SpyFu API key, which takes 5 minutes. The Google Apps Script setup has screenshots for every step. The Notion template is pre-built — you duplicate it and add your domains.

    Do I need a paid Notion account?

    No. The template works on Notion’s free tier. If you have a lot of competitor domains and keyword history, a Notion Plus account ($10/mo) gives you more block space, but it’s not required to get started.

    What happens if SpyFu changes their API?

    The kit includes plain-English documentation of how each query works, so you can update the endpoint calls if needed. SpyFu’s API has been stable for years, but if something breaks, email will@tygartmedia.com and we’ll send you an updated version.

  • SpyFu API Starter Kit — Python, JavaScript & Notion Template

    SpyFu API Starter Kit — Python, JavaScript & Notion Template

    The SpyFu API is one of the best-kept secrets in SEO tooling. $79/month buys you programmatic access to 10+ years of competitor data. This kit gives you the code to use it immediately.

    The Problem With API Documentation

    SpyFu’s API documentation tells you what’s available. It doesn’t tell you which endpoints actually matter, how to authenticate correctly, what the response objects look like, or how to store and act on the data. Most developers spend a full day getting their first working query. Most marketers never get there at all. This kit skips all of that.

    What You Get

    • Python code for 5 core endpoints: domain overview, organic keyword rankings, competitor keywords, PPC ad history, and keyword metrics — with authentication, error handling, and sample output
    • JavaScript (Node.js) equivalents for all 5 — same endpoints, same structure, same comments
    • Authenticated query templates ready to run against any domain — swap in the domain, run the script, get data
    • Notion database template for storing and organizing results — competitor profiles, keyword tracking, ad history logs
    • Weekly competitive audit automation guide — schedule pulls, store results incrementally, track ranking changes over time using Google Apps Script (free)
    • DataForSEO integration example — combining SpyFu competitor data with DataForSEO rank tracking for a complete picture
    • Plain-English explanation of every endpoint, every field, and what the data actually means

    Who This Is For

    Marketers who want to pull SpyFu data into spreadsheets, Notion, or custom dashboards without building from scratch. Developers who want working code instead of documentation. Operators who want to automate weekly competitive pulls without hiring anyone to build it.

    Requires SpyFu Pro plan ($79/mo) for API access. Works with Python 3.8+ and Node.js 16+. No prior API experience required — the setup guide assumes you’re starting from zero.

    SpyFu API Starter Kit

    $47

    Delivered to your inbox within 24 hours

    Buy Now →

    Secure checkout via Square — all major cards

    Want this customized for your stack? Email will@tygartmedia.com

    FAQ

    Do I need to know how to code?

    Basic familiarity with running a Python or JavaScript script is helpful. The setup guide walks through installing dependencies and running your first query from zero. If you can open a terminal and run a command, you can use this kit.

    Which SpyFu plan do I need?

    SpyFu Pro at $79/month. The Basic plan ($39/mo) doesn’t include API access. Pro includes $100 in API credits per month — more than enough for weekly competitive pulls on multiple domains.

    Can I use this without Notion?

    Yes. The Python and JavaScript code outputs JSON that you can send anywhere — a spreadsheet, a database, a Slack webhook. The Notion template is the recommended storage layer but not required.

    How is this delivered?

    To your inbox within 24 hours of purchase. ZIP file containing all code files, the Notion template duplicate link, and the setup guide PDF.

  • Notion Command Center OS — Single Business Version

    Notion Command Center OS — Single Business Version

    One workspace. Every part of your business, connected.

    Who This Is For

    Built for business owners, consultants, and service providers who are managing their business across a dozen different apps and want everything in one place.

    The Problem

    Most business owners use five or six different tools and still have important things fall through the gaps — because those tools do not talk to each other. A Notion OS solves this not by replacing your tools but by becoming the connective tissue between them: a place where every project, every client, every piece of content, and every piece of knowledge lives together and links to everything else. The problem is that building a good one takes weeks. This one is already built.

    What You Get

    • 6 core databases: Projects, Tasks, Clients, Content Pipeline, Knowledge Base, and Meeting Notes
    • Cross-linked throughout — a client links to their projects, projects link to tasks, tasks link to meeting notes
    • Weekly review system built in: a 15-minute weekly ritual to stay on top of everything
    • AI-ready architecture: structured specifically so Claude can read, update, and act on your workspace via MCP or direct API
    • Setup guide with a recommended configuration sequence — live in one afternoon

    Notion Command Center OS

    $79

    Delivered to your inbox within 24 hours — no shipping, no waiting

    Buy Now →

    Secure checkout via Square — all major cards accepted

    Frequently Asked Questions

    How is this delivered?

    Within 24 hours of purchase via email from will@tygartmedia.com. You will receive a download link for the ZIP file and/or Notion duplicate link immediately.

    Do I need any special software?

    A free Notion account is required. No other software needed.

    Can I customize this for my specific business?

    Yes — that is the point. Everything is built to be edited. Swap in your company name, add your specific workflows, remove anything that does not apply. It is a starting point, not a locked template.

    Is there a refund policy?

    Because this is a digital product, all sales are final. If you have a problem with your purchase, email will@tygartmedia.com and we will sort it out.

  • Building a Notion Second Brain for Restoration CRM Intelligence: Technical Guide

    Building a Notion Second Brain for Restoration CRM Intelligence: Technical Guide

    Who this is for: The person building your knowledge and relationship tracking system — your office manager, a tech-savvy ops person, or a consultant helping you get organized. This brief builds a Notion-based Second Brain layer that sits on top of your existing CRM to capture the relational intelligence that your job management software never will. No coding required. Full setup takes 3–4 hours. The strategy this supports is in Your CRM Is Not a Lead Database.


    What a Second Brain Does That Your CRM Doesn’t

    Your job management software (ServiceTitan, Jobber, or similar) is built to track transactions: jobs, invoices, and technician assignments. It is exceptional at this. What it cannot do is capture the relational layer — who referred whom, who replied to your hiring email, which adjuster said they’d keep you in mind for the next CAT event, which homeowner’s reply mentioned their neighbor’s flooded basement.

    This is the intelligence that determines whether your CRM becomes a community. It lives in email threads, in the notes field of your phone contacts, in your memory after a golf round with an adjuster. It disappears when your office manager leaves, when you switch phone carriers, when the thread buries itself under 400 new emails.

    The Notion Second Brain captures this layer systematically. It’s not a replacement for your CRM. It’s a relationship intelligence layer that your CRM was never designed to hold.


    The Architecture: Four Linked Databases

    The system uses four Notion databases connected by relations. Notion’s free tier supports all of this — you do not need a paid plan for the initial build. If you add more than five members, you’ll need to upgrade to the Plus plan ($10/user/month).

    Database 1: Contacts

    Your master contact registry. Every person in your network gets a record here. This does not replace your CRM contact list — it supplements it with relationship context that belongs in a knowledge management tool, not a job management tool.

    Properties:

    Field Type Notes
    Name Title Full name
    Segment Select Homeowner / Industry / Trade / Other
    Sub-type Select Homeowner past client / Adjuster / Agent / PA / Sub / Supplier / Vendor
    Email Email
    Phone Phone
    Company Text For industry and trade contacts
    Location Text City or zip — for local filter
    Warmth Select Hot / Warm / Cool / Cold — subjective relationship temperature
    Last Touch Date Date Last time you had meaningful contact
    Last Touch Type Select Email campaign / Personal email / Phone / In person
    Times Referred Number How many referrals this contact has ever sent you
    Notes Text Anything important that doesn’t fit a field
    CRM ID Text Matching ID in ServiceTitan or Jobber for cross-reference

    Database 2: Touch Log

    Every meaningful interaction with a contact gets an entry here. Campaign sends, personal replies, phone calls, in-person conversations. This is how you build a timeline of every relationship in your network.

    Properties:

    Field Type Notes
    Touch Summary Title Brief description of the interaction
    Contact Relation → Contacts Links to the contact record
    Date Date
    Touch Type Select Campaign email / Personal email / Phone / In person / Reply received
    Direction Select Outbound (you reached out) / Inbound (they contacted you)
    Signal Select Neutral / Positive / Referral Generated / Lead Mentioned / Complaint
    Follow Up Needed Checkbox
    Follow Up Date Date Only populate if Follow Up Needed is checked
    Notes Text What was said or what happened

    Database 3: Referrals

    Every referral — whether it turned into a job or not — gets a record here. This is where you track the ROI of the community strategy over time.

    Properties:

    Field Type Notes
    Referral Summary Title Brief description
    Referred By Relation → Contacts Who sent it
    Referred Person or Property Text Who or what was referred
    Date Received Date
    Source Touch Relation → Touch Log Which email or interaction triggered the referral
    Outcome Select Job Won / Job Lost / Not Yet Followed Up / Not a Lead
    Job Value Number Estimated or actual job value if won

    Database 4: Campaign Calendar

    This is the full campaign planning and results database from the outreach calendar guide. It lives here in the Second Brain so that every campaign is linked to the contacts and touches it generates.


    Setting Up the System in Notion: Step by Step

    Phase 1: Create the Workspace Structure (30 minutes)

    1. Create a new page in Notion called “CRM Second Brain”
    2. Add four sub-pages, one per database: Contacts, Touch Log, Referrals, Campaign Calendar
    3. On each sub-page, add a full-page database (not inline)
    4. Add all properties to each database as listed above
    5. Set up Relations between databases: Touch Log → Contacts (one contact, many touches), Referrals → Contacts (one contact, many referrals), Referrals → Touch Log (link each referral to the touch that generated it)

    Phase 2: Import Your Seeding Data (1–2 hours)

    1. Take your clean, segmented contact CSV from the segmentation brief
    2. In Notion, on your Contacts database, click the three dots → Import CSV
    3. Map the CSV columns to Notion database properties
    4. Notion will create one database record per row
    5. After import, manually review the first 20 records to confirm mapping is correct
    6. Set the Warmth field for your top 30 contacts manually — this is subjective and cannot be automated

    Phase 3: Set Up Views for Daily Use (30 minutes)

    The database is only useful if you actually open it. Create these four views in your Contacts database:

    • “Super Connectors” view: Filter by Times Referred ≥ 2, sorted by Times Referred descending. This shows you your highest-value network contacts at a glance.
    • “Gone Cold” view: Filter by Last Touch Date is before 6 months ago AND Warmth is Warm or Hot. These are relationships that need attention.
    • “Follow Up Today” view: Filter from Touch Log — Follow Up Needed = true AND Follow Up Date = today. Surfaces what needs action today.
    • “Homeowners — Local” view: Filter by Segment = Homeowner AND Location contains [your city/zip]. Your residential community at a glance.

    Connecting the Second Brain to Your Campaign Workflow

    The Second Brain becomes powerful when it’s updated in real time during campaign execution. Here is the exact workflow for each campaign:

    Before sending: Open the Campaign Calendar database and update the Status to “Scheduled.” Verify that the target audience count in your email platform matches your Contacts database filtered view for that segment.

    Within 48 hours of sending: Log the campaign as a single batch entry in the Touch Log: Touch Type = “Campaign email”, Direction = Outbound, Date = send date. This creates the event anchor for all replies that follow.

    For every reply received: Add a Touch Log entry: Touch Type = “Reply received”, Direction = Inbound, link to the Contact record, set Signal based on content (Referral Generated, Lead Mentioned, or Positive). If a follow-up is needed, check Follow Up Needed and set Follow Up Date.

    For every referral: Add a Referrals database entry immediately. Link to the Contact who sent it and to the Touch Log entry that triggered it. Set Outcome to “Not Yet Followed Up” until the lead is worked.

    After 12 months of this workflow, your Super Connectors view will show you exactly which five to ten people in your network are responsible for the majority of inbound referrals. These are the people to take to coffee, to thank personally, to invite to events. The system surfaces what intuition alone cannot track at scale.


    Advanced: Connecting Notion to Your Email Platform via Zapier

    For teams who want to reduce manual entry, Zapier (zapier.com) can automate the Touch Log entry step. This requires a Zapier account (free tier allows five automated workflows) and basic Zapier setup familiarity.

    The automation: When a contact replies to a Mailchimp campaign → Zapier creates a Touch Log entry in Notion with the reply details, linked to the Contact record by email address.

    The Zap flow:

    1. Trigger: Mailchimp → New Campaign Reply (or Gmail → New Email matching campaign reply-to address)
    2. Action 1: Notion → Find Database Item (search Contacts database for the reply’s email address)
    3. Action 2: Notion → Create Database Item in Touch Log (populate fields from the Mailchimp reply data and the Contact ID found in Action 1)

    This automation removes the manual step of logging each reply. It does not remove the step of reviewing replies and adding qualitative Signal and Notes — that still requires human judgment.

    Zapier setup documentation: zapier.com/apps/mailchimp/integrations/notion and zapier.com/apps/gmail/integrations/notion.


    Notion Pricing for This Use Case

    Scenario Plan Needed Cost
    Solo owner managing the database alone Free $0/month
    Owner + office manager (2 users) Free (up to 5 collaborators on free plan) $0/month
    Owner + office manager + 3 others Free (up to 5 still covered) $0/month
    6 or more users Plus plan $10/user/month

    For most restoration companies running this system, the free tier is sufficient indefinitely. The system described here does not require Notion AI, advanced automations, or enterprise features.


  • Notion for Multi-Client Content Operations: The Pipeline That Manages Dozens of WordPress Sites

    Notion for Multi-Client Content Operations: The Pipeline That Manages Dozens of WordPress Sites

    Tygart Media / Content Strategy
    The Practitioner JournalField Notes
    By Will Tygart
    · Practitioner-grade
    · From the workbench

    Running a content pipeline across twenty-plus WordPress sites from a single Notion workspace is not the obvious use case Notion was designed for. It’s a use case we built — deliberately, iteratively, over the course of operating a content agency where the volume of work made ad hoc management impossible.

    The result is a system where every piece of content, across every client site, moves through a defined sequence from brief to published inside one Notion database. Nothing publishes without a record. Nothing falls through the cracks between clients. The status of the entire operation is visible in a single filtered view.

    Here’s how that pipeline works.

    What is a Notion content pipeline for multi-site operations? A multi-site content pipeline in Notion is a single Content Pipeline database where every piece of content across every client site is tracked through a defined status sequence — Brief, Draft, Optimized, Review, Scheduled, Published — with each record tagged to its client, target site, and publication date. One database, filtered views per client, full operational visibility across all sites simultaneously.

    Why One Database for All Sites

    The instinct is to give each client their own content tracker. Separate pages, separate databases, separate calendars. This feels organized. In practice it means your Monday morning question — “what’s publishing this week?” — requires opening twenty separate databases and manually compiling the answer.

    One database with entity-level partitioning answers that question in a single filtered view sorted by publication date. Every client’s content in motion, every publication date, every status, visible simultaneously. Add a filter for one client and you have their isolated view. Remove the filter and you have the full operational picture.

    The cognitive shift required: stop thinking about the database as belonging to a client and start thinking about the client tag as a property of the record. The database belongs to the operation. The records belong to clients.

    The Status Sequence

    Every content record moves through the same six stages regardless of client or content type: Brief → Draft → Optimized → Review → Scheduled → Published. Each stage transition has a defined meaning and, for key transitions, a quality check.

    Brief: The content concept exists. Target keyword identified, angle defined, target site confirmed. Not yet written.

    Draft: Written. Not yet optimized. Word count and rough structure in place.

    Optimized: SEO pass complete. Title, meta description, slug, heading structure, internal links reviewed and adjusted. AEO and GEO passes applied if applicable. Schema injected.

    Review: Content quality gate passed. Ready for final check before scheduling. This is the stage where anything that shouldn’t publish gets caught.

    Scheduled: Publication date set. Post exists in WordPress as a draft or scheduled post. Date confirmed in the database record.

    Published: Live. URL confirmed. Post ID logged in the database record for future reference.

    The Quality Gate as a Pipeline Stage

    The transition from Optimized to Review is gated by a content quality check — a scan for unsourced statistical claims, fabricated specifics, and cross-client content contamination. The contamination check matters specifically for multi-site operations: content written for one client’s niche should never reference another client’s brand, geography, or specific context.

    Running this check as a formal pipeline stage rather than an informal pre-publish habit is what makes it reliable at scale. When publishing volume is high, informal checks get skipped. A formal stage in the status sequence means the check is either done or the content doesn’t advance. There’s no middle ground where it was probably fine.

    What Notion Tracks Per Record

    Each content pipeline record carries: the content title, the client entity tag, the target site URL, the target keyword, the content type, word count, the assigned writer if applicable, the publication date, the WordPress post ID once published, and the current status. Relation fields link the record to the client’s CRM entry and to the associated task in the Master Actions database.

    The WordPress post ID field is the detail most content trackers skip. With the post ID logged, finding the exact WordPress record for any piece of content is a direct lookup rather than a search. For a pipeline publishing hundreds of articles across dozens of sites, that lookup speed matters every week.

    The Weekly Content Review

    Every Monday, one database view answers the primary operational question for the week: a filter showing all records with a publication date in the next seven days, sorted by date, across all clients. This view drives the week’s content priorities — whatever needs to move from its current stage to Published by the end of the week gets the first attention.

    A second view shows all records stuck in the same status for more than five days. Stale records indicate a bottleneck — something that was supposed to move and didn’t. Finding and clearing those bottlenecks is the second priority of the weekly review.

    Both views take under a minute to read. The decisions they drive take longer. But the information is current, complete, and doesn’t require any compilation — it’s all in the database, updated as work happens.

    How Claude Plugs Into the Pipeline

    The content pipeline database is one of the primary interfaces between Notion and Claude in our operation. Claude reads the pipeline to understand what’s in progress, writes new records when content is created, updates status as work advances, and logs the WordPress post ID when publication is confirmed.

    This write-back capability — Claude updating the Notion database directly via MCP rather than requiring a manual logging step — is what keeps the pipeline current without adding overhead. The database is accurate because updating it is part of the work, not a separate step after the work is done.

    Want this pipeline built for your content operation?

    We build multi-site content pipelines in Notion — the database architecture, the quality gate process, and the Claude integration that keeps it current automatically.

    Tygart Media runs this pipeline live across a large portfolio of client sites. We know what the architecture requires at real operating scale.

    See what we build →

    Frequently Asked Questions

    How do you prevent content written for one client from appearing on another client’s site?

    Two mechanisms. First, every content record is tagged with the client entity at creation — the tag makes it explicit which client owns the content before a word is written. Second, a content quality gate scans every piece for cross-client contamination before it advances to the Review stage. Content referencing geography, brands, or context specific to another client gets flagged and held before it reaches WordPress.

    What happens when content is published — how does the pipeline stay accurate?

    When content publishes, the record status updates to Published and the WordPress post ID gets logged in the database record. In our operation, Claude handles this update directly via Notion MCP as part of the publishing workflow. For operations without that automation, a daily or weekly manual update pass keeps the pipeline accurate. The key is building the update into the publishing workflow rather than treating it as optional.

    Can Notion’s content pipeline replace a dedicated editorial calendar tool?

    For most content agencies, yes. Notion’s calendar view applied to the content pipeline database provides the same visual publication scheduling that dedicated editorial calendar tools offer, plus the full database functionality — filtering by client, sorting by status, tracking by keyword — that standalone calendar tools lack. The combination is more capable than purpose-built tools for agencies already running Notion as their operational backbone.