Platform Architecture Map

Operations Director infrastructure overview. Click any node for details. Prepared for Supabase migration.

๐Ÿงญ Developer Blueprint Back to Platform
Inline tab (JS renders in main shell)
Iframe page (standalone HTML)
Cloudflare Worker
External service
Data store

Pages and Tabs

Leadership

๐Ÿ“Š Leadership Dashboard Inline
Filejs/dashboard.js
ReadsTenancies, Transactions, Costs, Tenants, Properties, Rental Units, Businesses, Categories, Sub-Categories, Accounts
FeaturesFinancial KPIs, portfolio overview, tenancy metrics, 31-day cash flow forecast, AI analysis, balance calculator, strategic KPIs
Depends oncashflow.js, reconciliation.js, arrears.js, sync-bar.js, ai-assistant.js, quick-task.js
๐ŸŽฏ Objective & Strategy Iframe
Fileos/strategy/index.html
ReadsObjective & Strategy, Main Methods, Projects, Businesses
WritesObjective & Strategy, Main Methods, Projects
FeaturesQuarterly OKR wizard, strategy push to projects, AI boardroom mentor
๐Ÿ“‹ Plan Builder Iframe
Fileos/business-plan-builder/index.html
ReadsBusinesses
FeaturesBusiness launch plans with products, pricing, cost modelling per business
๐Ÿšจ Cash Flow Voids Inline
Filejs/cfv.js
ReadsTenancies, Tenants, Transactions
FeaturesOverdue rent detection, arrears pipeline, comments, chase actions
AccessSub-tab of Leadership Dashboard (mega-tab bar)

Operations

โœ… Tasks & Projects Iframe
Fileos/tasks/index.html
ReadsTasks, Projects, Businesses, Team Members
WritesTasks (create, update, complete, comment)
IntegrationsSlack notify worker (DMs on assign/complete)
Internal views:
My Day Task List Kanban Projects Capacity Recurring Contractor Tasks
๐Ÿข Operations Iframe
Fileos/operations/index.html
ReadsTenants, Tenancies, Rental Units, Properties, Businesses
WritesTenants, Tenancies, Rental Units, Properties
Sub-tabs:
Tenants Tenancies Rental Units Properties Customers Compliance
๐Ÿ“จ Inbound Comms Iframe
Filefollow-up.html
FeaturesEmail follow-up tracking, response management
โš™๏ธ Systemisation Iframe
Fileos/systemisation/index.html
ReadsSystemisation Workflows, Workflow Steps
WritesSystemisation Workflows, Workflow Steps
๐Ÿง  Skills Library Inline
Filejs/skills.js, js/skills-data.js
FeaturesClaude Code and Cowork skills catalogue, search, filter

Finance (Accounts mega-tab)

๐Ÿ’ท AR Fixed (Income) Inline
Filejs/income.js
ReadsTenancies, Tenants, Properties, Rental Units, Businesses
FeaturesRent roll, payment status, income breakdown by business
๐Ÿ“ค AR Variable (Outbound Invoices) Inline
Filejs/ar-variable.js
ReadsOutbound Invoices (arVariable), Businesses
FeaturesOutbound invoice tracking, overdue monitoring, customer management
๐Ÿ“‹ AP Fixed (Costs) Inline
Filejs/costs.js
ReadsCosts, Transactions, Categories, Sub-Categories, Accounts
WritesCosts (status backfill, reconciliation fields)
FeaturesFixed cost tracking, reconciliation status, spending breakdown
๐Ÿงพ AP Variable (Invoices) Inline
Filejs/invoices.js
ReadsInvoices (Gmail label "3. to pay"), Businesses
WritesInvoices (approve, mark paid, assign business)
IntegrationGmail Apps Script for invoice extraction
๐Ÿ’ฐ Profit & Loss Inline
Filejs/pnl.js
ReadsTransactions, Costs, Tenancies, Businesses, Categories, Sub-Categories
FeaturesMonthly P&L, business breakdown, category drill-down, trend analysis
๐Ÿ” Transactions Inline
Filejs/transactions.js
ReadsTransactions, Accounts, Categories, Sub-Categories
WritesTransactions (split, categorise, reconcile)
FeaturesTransaction search, AI reconciliation, split management
๐Ÿฆ Bank Accounts Inline
Filejs/fintable.js
ReadsAccounts (bank account sync data via FinTable)
FeaturesBank sync health monitoring, balance tracking, reconnection alerts

HR / Admin

๐Ÿ‘ฅ Team Members Iframe
Fileos/team/index.html
ReadsTeam Members, Businesses
Internal tabs:
Directory Org Chart Training Achievements

System

๐Ÿ”— Site Map & Guides Inline
Filejs/sitemap.js
FeaturesPage registry, SOP version tracking, git sync status, integrity checks
โญ AI Assistant Inline
Filejs/ai-assistant.js
IntegrationAnthropic API (via anthropic-proxy worker)
FeaturesContext-aware AI chat, tab-specific prompts, SOP awareness, streaming responses

Automation Flows

Contractor Task Flow (Slack to Airtable)

Slack #property-management
โ†’
contractor-bot Worker
โ†’
Airtable Tasks
contractor-bot Worker
โ†’
Slack DM to Contractor
Intent classification (Claude Sonnet) โ†’ property matching โ†’ task creation โ†’ Slack confirmation + contractor DM

Task Notification Flow (Dashboard to Slack)

Dashboard (Tasks OS)
โ†’
slack-notify Worker
โ†’
Slack DM
Assign / reassign / complete / comment โ†’ lookup Slack user by email โ†’ post DM card

Apple Shortcuts (Voice Tasks / Forwarding)

Apple Watch / iPhone
โ†’
apple-inbound Worker
โ†’
Airtable Tasks
apple-inbound Worker
โ†’
R2 (audio files)
โ†’
Gmail (via Resend)
Voice task โ†’ Airtable | Text/voice forward โ†’ R2 storage + email via Resend

SMS Bridge (GoHighLevel to Gmail)

GoHighLevel (SMS)
โ†’
sms-email-bridge Worker
โ†’
Gmail (via Resend)
Polls GHL every 60 seconds โ†’ deduplicates via KV state โ†’ forwards new SMS to Gmail

AI Assistant

Dashboard AI Panel
โ†’
anthropic-proxy Worker
โ†’
Anthropic API
Gathers tab context + data โ†’ CORS proxy โ†’ Claude streaming response

Cloudflare Workers

๐Ÿค– contractor-bot Worker
URLcontractor-bot.kevinbrittain.workers.dev
TriggerSlack Event Subscriptions (messages)
KVSTATE (10-min session expiry)
R2contractor-bot-attachments
APIsAirtable, Slack, Anthropic (Sonnet)
Actionsnew_job, status_update, list_request, attach_photo
๐Ÿ”” slack-notify Worker
URLslack-notify.kevinbrittain.workers.dev
TriggerHTTP POST from dashboard
CORSchaichoong.github.io only
Actionsassigned, reassigned, completed, comment
๐Ÿ“ฑ apple-inbound Worker
URLapple-inbound.kevinbrittain.workers.dev
TriggerApple Shortcuts (HTTP POST)
R2apple-inbound-attachments
Endpoints/voice-task, /text-forward, /voice-forward, /files/{key}
๐Ÿ’ฌ sms-email-bridge Worker
URLsms-email-bridge.kevinbrittain.workers.dev
TriggerCron (every 60 seconds)
KVSMS_STATE (persistent)
APIsGoHighLevel (poll), Resend (send)
๐Ÿ”„ anthropic-proxy Worker
PurposeCORS relay for Anthropic API calls from the dashboard
TriggerHTTP POST from AI Assistant panel

External Services

๐Ÿ“Š Airtable Core Data
BaseappnqjDpqDniH3IRl
AuthPersonal Access Token (PAT)
Tables20 tables (see Data Model section)
Rate limit5 req/sec, with 4-attempt exponential backoff
MigrationMoving to Supabase (planned)
๐Ÿ’ฌ Slack Messaging
Bot scopeschat:write, users:read, users:read:email, im:history, im:read, channels:history, files:read, im:write
Channels#property-management (contractor tasks)
DMsTask notifications to team members and contractors
๐Ÿฆ FinTable Banking
PurposeBank account sync to Airtable (transactions + balances)
FlowFinTable โ†’ Airtable Accounts table โ†’ Dashboard reads
๐Ÿ“ง Gmail / Google Apps Script Email
PurposeInvoice extraction from Gmail label "3. to pay"
ScriptGoogle Apps Script web app (GMAIL_SCRIPT_URL in config.js)
๐Ÿ“ฑ GoHighLevel CRM / SMS
PurposeSMS inbox (inbound messages from tenants/prospects)
LocationdgsHwbYbp6xrhRGZr9ik
IntegrationPolled every 60s by sms-email-bridge worker
โœ‰๏ธ Resend Email API
PurposeTransactional email dispatch (from workers)
Fromsms@operationsdirector.co.uk
Used byapple-inbound, sms-email-bridge
๐Ÿค– Anthropic API AI
PurposeAI Assistant, AI commentary, intent classification
ModelsClaude Sonnet (contractor-bot), Claude (AI assistant)
AccessVia anthropic-proxy worker (CORS)
๐Ÿš€ GitHub Pages Hosting
URLchaichoong.github.io/leadership-dashboard/
DeployPush to main โ†’ auto-deploy (2-3 min)
CIauto-bump-pagever.yml (bumps PAGE_REGISTRY versions)

Airtable Data Model (20 Tables)

Transactions
tbln0gzhCAorFc3zB
Used by: Dashboard, P&L, Costs, CFV, Reconciliation
Tenancies
tblN51a88qTDB6iMH
Used by: Dashboard, Income, CFV, Operations
Tenants
tblX4elTuu01gwBYh
Used by: Dashboard, Income, CFV, Operations
Costs
tblx5kvhzNEI5TFlS
Used by: Dashboard, AP Fixed, P&L, Reconciliation
Properties
tbl6f0OkAmTC2jbuG
Used by: Dashboard, Operations, Compliance
Rental Units
tblM3mZCR5kiEdWMj
Used by: Dashboard, Operations, Income
Tasks
tblqB8b22hKBL4PF1
Used by: Tasks OS, contractor-bot, apple-inbound
Businesses
tblpqkvWJJo8Uu25q
Used by: Most pages (filter dropdowns)
Categories
tbleWb8ioptnEwPR8
Used by: P&L, Costs, Transactions
Sub-Categories
tblOTdRcPf8AgRz25
Used by: P&L, Costs, Transactions
Accounts
tbl1nr0EcX2T62KME
Used by: Bank Accounts, Dashboard
Invoices
tblkOTKIG2Tyiy9aM
Used by: AP Variable
Outbound Invoices
tblmKRKZMJvUxN4h1
Used by: AR Variable
Objective & Strategy
tblEBvFw8DonwxzGh
Used by: Strategy OS
Main Methods
tbl065D58MBEJhjlp
Used by: Strategy OS
Projects
tblHrpTMd5LNYn8v1
Used by: Tasks OS, Strategy OS, Dashboard KPIs
Recon Audit
tblbfuxYxu4uMMWwT
Used by: Reconciliation engine
Arrears Records
tblzG0B9oRRpszcgC
Used by: CFV (credit control pipeline)
Arrears Contact Log
tblik5VI5Jy6tO2yc
Used by: CFV (audit trail)
Systemisation Workflows
tblLPoRHFBl0vqR24
Used by: Systemisation OS

Storage

๐Ÿ“ฆ Cloudflare KV: STATE KV
Used bycontractor-bot
PurposeMulti-turn conversation state (10-min TTL per session)
๐Ÿ“ฆ Cloudflare KV: SMS_STATE KV
Used bysms-email-bridge
PurposeLast poll timestamp and forwarded count (persistent)
๐Ÿ—„๏ธ R2: contractor-bot-attachments R2
Used bycontractor-bot
PurposePhoto attachments from Slack contractor messages
๐Ÿ—„๏ธ R2: apple-inbound-attachments R2
Used byapple-inbound
PurposeAudio files from Apple Watch voice messages
๐Ÿ’พ Browser localStorage Local
Keys_dlr_pat (auth token), sidebar section state, dashboard cache
Migration notePAT auth will be replaced by Supabase session tokens