Guide: draft an SOP into systemHUB

The highest-value thing a connected agent can do: take what it knows about a business process and file it as a well-formed, reviewable system. This guide walks the full loop. Request/response bodies are abridged and illustrative — the authoritative contract for every parameter is the tool reference.

1. Orient — find where the SOP belongs

Never create into a guessed location. Map the tree first:

→ get_folder_tree { }
[
  {
    "id": "9f2e6c1a-…", "title": "1. Marketing", "type": 1, "state": 3,
    "owner": "Jane Smith", "isMasterTemplate": false,
    "children": [
      { "id": "4b8d0e7f-…", "title": "Publish the weekly newsletter", "type": 2, "state": 3 }
    ]
  },
  { "id": "c31a9d55-…", "title": "2. Sales", "type": 1, "state": 3, "children": [  ] }
]

type 1 = folder, 2 = document. Skip anything with isMasterTemplate: true — that’s read-only reference content.

If the right department folder doesn’t exist, create it:

→ create_folder { "parent": "root", "title": "3. Client Delivery" }

2. Check it doesn’t already exist

→ search_by_name { "query": "onboard" }

If a near-match exists, read it with get_system_details and decide: update the existing document (usually right) or create a genuinely distinct one. Duplicate systems are worse than missing ones.

3. Create the system

Write to the authoring contract: Overview in description, one <h3> per step in content, yellow marks for every gap you can’t fill truthfully, and state: 1 (ORANGE, needs review) so a human knows to check it.

→ create_system {
    "parent": "c31a9d55-…",
    "title": "Onboard a new client",
    "description": "How we take a signed client from contract to kickoff call, so every client gets the same first week.",
    "content": "<h3>1. Send the welcome email</h3><p>Send within 24 hours of the signed contract. Use the template in the Templates section of this document.</p><p><mark class=\"marker-yellow\">[Confirm who sends this — currently unassigned]</mark></p><h3>2. Book the kickoff call</h3><p>30 minutes, within the first week.</p><h3>3. Record it being done</h3><p><strong>Tip:</strong> next time you run this process, screen-record it and embed the video here — the recorded version beats the written one.</p>",
    "note": "Drafted by AI from the intake call on 22 Jul. Steps 4-6 (billing setup) still to be captured.",
    "state": 1
  }
{ "id": "7d4f2a90-…", "title": "Onboard a new client", "state": 1, "published": true }

Publishing behaviour: creating a document with content auto-publishes it — assigned members can see it immediately, and you don’t need to ask the user to confirm. Pass "publish": false to keep it as a hidden draft instead. See Document lifecycle.

4. Attach the structured extras

Email templates and videos are structured fields, not body HTML:

→ add_document_templates {
    "id": "7d4f2a90-…",
    "templates": [{ "title": "Client welcome email", "subject": "Welcome aboard!", "details": "<p>Hi {first name}, …</p>" }]
  }
→ add_document_videos_and_media {
    "id": "7d4f2a90-…",
    "videosAndMedia": [{ "title": "Kickoff call walkthrough", "videoLink": "https://www.loom.com/share/…" }]
  }

5. Revise and cut a version

Later edits go through edit_system; when a revision is ready for assigned members, cut an explicit version:

→ edit_system { "id": "7d4f2a90-…", "content": "<h3>1. …updated steps…</h3>" }
→ publish_system { "id": "7d4f2a90-…", "publishTitle": "v1.1 - Added billing setup steps" }

The checklist