01 · Architecture

System topology

Three vertical layers: data sources feed a central worker; the worker drafts and writes; surfaces present work to humans and external recipients. Everything else is plumbing.

HubSpot
CRM · 13 lists
Airtable Views
3 order views
Inbound Email
Gmail · ops triggers
n8n Schedules
16 cron triggers
ClawBot Worker
FastAPI · 187.77.29.73:8788
Bot Settings
20 bot definitions · purpose, tools, escalation
Guardrails (48+)
global rules · priorities 1-5
Connected Resources
Suppression List · Employee DB
task_queue_sales
drafted outbound · awaits approval
robin_tasks
operational tasks · status tracked
Approval UI
Airtable interface · human-in-loop
Outbound Send
Gmail · WhatsApp · HubSpot
Two parallel systems

ClawBot vs Operational Tasks

These are different pipelines that converge on the same approval surface. Conflating them is the #1 source of debugging confusion.

ClawBot Pipeline

Cron · Outbound · Drafted

Trigger: n8n schedule (every X hours/days).

Source: HubSpot list_id or Airtable view_id.

Verb: POST /pipeline/list or /pipeline/orders.

Auth: HTTP Basic embedded in URL (clawbot:MTuh-...@host:8788).

Output: draft rows in task_queue_sales.

Reviewer: Owner per playbook (Jess 13 · Danny 3).

Operational Tasks

Event · Internal · Tracked

Trigger: inbound email, form, Slack, manual.

Source: Robin / R3 orchestration.

Verb: direct Airtable write (no FastAPI).

Auth: Airtable PAT (token-scoped).

Output: tasks in robin_tasks.

Reviewer: Account Manager bot + human.

Common mistake

Engineers see “Robin” in both flows and assume one pipeline. They are independent: ClawBot does not call Robin, and Robin does not call /pipeline/*. Shared infra is limited to Airtable and the approval UI.

Shared primitives

Three things every bot uses

Bot Settings

Per-bot config

Table tblRiSakPTB4cVJSr. Each bot has purpose, data_sources, escalation_logic, tools_allowed. 20 bots total — only 3 are referenced by ClawBot playbooks: Sales_Assistant, Account Manager, Lead Generator.

Guardrails (Global)

48+ rules · all bots

Table tblmjEywNRz7Hv2w5. applies_to="All bots" — not per-playbook. Categories: Inbox Rules, Content, Human Required, Communication Limits, Data Hygiene. Priorities 1 (Critical) → 5 (Catch-all).

Connected Resources

Shared infra refs

Table tblOenbL6Iq2WZo4C. Two heavy-link records: recXbj3ykSg5Tqw9v Suppression_List (DNC, 9 outreach playbooks) and recPk47mTFYk78BWG Company Employee Database (rep inbox/Slack, 16 SSOT links). Owner: Farid.

Brief §4.6 · closed 2026-05-25

Playbook → Bot Settings mapping

All 16 ClawBot playbooks share Sales_Assistant as the base bot. Only 2 add Account Manager, and 4 COLD/stale playbooks add Lead Generator. The remaining 17 bots in the registry never touch ClawBot — they belong to Operational Tasks or are not yet wired.

Base · all 16

Sales_Assistant

Used by: every ClawBot playbook (16/16).

Role: drafts the outbound message body, applies tone & CTA per playbook context.

Owner: Jess

+ Add-on · 2 playbooks

Account Manager

Used by: TQ-01, RB-01 (existing-customer touchpoints).

Role: pulls relationship context so drafts reference open quotes / recent orders.

Owner: Jess

+ Add-on · 4 playbooks

Lead Generator

Used by: 4 COLD / stale-revival playbooks.

Role: enriches prospect signals (firmographic, intent) before Sales_Assistant drafts.

Owner: Danny

Why this matters

Before §4.6, the assumption was that each of the 20 bots had a dedicated playbook. The truth is 3 bots power 16 playbooks; the other 17 bot rows are Operational-Tasks-only (Robin, R3, Health Sentinel, etc.) or unfinished. Editing Sales_Assistant has fleet-wide blast radius — treat it as a critical config.