BLAM8
100%

The whole machine, on one canvas

The BLAM8 architecture — every node is real code.

The canvas above draws BLAM8 the way a workflow tool would — except none of it is a workflow. Every node is a tested function in one deployment; a new customer is a row behind row-level security, not a duplicated pipeline with its own credentials to rotate. The AI proposes, business state decides: every hold goes through the same Postgres capacity check whatever the email says, and six guards run before a single token is spent. Below is the full canvas as text — including the parts that are built but dark and the parts that are not built yet, because hiding them would be lying.

Inbound

four ways in

  • Graph notification — constant-time clientState
  • Gmail push — ACK 204, draft after
  • Gmail poller — shares the push backoff
  • Twilio voice + SMS — HMAC-SHA1 verified
  • You press draft — never auto-sends

Guards

before a single token is spent

  • No-reply / bounce — mailer-daemon · postmaster
  • Payment receipt — links invoice, stops
  • Ignored contact — dropped entirely
  • Self-loop guard — own + sibling mailboxes
  • Suppression — 3 ignored drafts → stop
  • Trial gate — stops before the spend

Context

what it is allowed to know

  • Effective config — tenant ⊕ mailbox
  • Knowledge retrieval — Voyage · pgvector
  • Thread history — provider thread scoped
  • Their bookings — reference, don’t re-offer
  • CRM context — deals · open promises
  • Portal activity — what they did on your site
  • Stock + purchases — storefront tenants
  • Credit limit — arithmetic, not vibes
  • Industry vocabulary — config, not code
  • Tool injection — active modules only

The draft

one call, four refusals

  • Structured output — schema-enforced
  • Tool loop — diary · handoff · shop
  • Corrective retry — one, then it gives up
  • Say-vs-do guard — “booked” with no hold
  • Knowledge gap — admits it, flags it
  • Empty after retry — queues with no text
  • Markdown stripped — plain text out

Label

computed truth overrides the model

  • Model category — needs reply · fyi · auto
  • Computed override — escalation wins
  • Informational → skipped — no queue, no push
  • Legacy derived — at read time

Diary and holds

the only thing that can say yes

  • 15-minute grid — 96 blocks a day source of truth
  • Window modes — all-day · am/pm · slots
  • Required intake — no hold until answered
  • Atomic capacity RPC — six variants, Postgres-side
  • Hold placed — proposed, linked to draft
  • Duplicate webhook — this run’s holds cancelled
  • Offered slots — first to accept wins
  • Pre-expiry nudge — every 30 min
  • Expiry sweep — capacity comes back
  • Reference minted — Postgres, not the model

Approval

the gate

  • Send — as-is or edited human
  • Skip — releases the hold
  • Redraft
  • Correct — teaches the chunk
  • Flag a gap — files it against the KB
  • Grounded-on — shows its sources

Auto-send

off by default

  • Two axes required — config AND caller
  • Tri-state per mailbox — orders@ auto, complaints@ never
  • Escalation keyword — forces the queue
  • Angry sentiment — held, Core and up
  • Dup · sibling · credit — held
  • EU AI Act footer — auto-sent only

After it goes

the part that fills itself in

  • Holds confirmed — proposed → booked
  • Calendar push — only its own events
  • CRM ingest, zero LLM — every tier, even Starter
  • Deals clustered — one Haiku call
  • Promises both ways — yours and theirs

Quote to cash

a second money spine

  • Quote auto-drafts — from the priced reply
  • Public accept page — accept · decline · ask
  • Chase job — day 3, day 7, expiry
  • Invoice + PDF — deposit netted off
  • Xero / QuickBooks — integrate, don’t compete

Money

three rails, three accounts

  • Subscriptions — platform · hosted Checkout
  • They get paid — direct charge, their account
  • Booking deposits — platform account known gap
  • Commission ledger — earned = collected
  • Refund clawback — automatic
  • Partner payout — bank transfer, not Stripe

Seeing what it did

four logs

  • Every model call — prompt + tool rounds
  • Execution trace — proposals · retrievals
  • Your agent log — tenant-facing narrative
  • Cost metering — per call, exportable
  • Retention purge — 90 days, 03:30

Your customer’s side

no login

  • Portal at /c/you — public, no login
  • Identity — ref code, or name + email
  • Same brain, their side — model never sets tenant
  • Reschedule mode — apply now, or ask you

Concierge

five modes, one engine

  • Pre-login Q&A — rate-limited, stateless
  • Onboarding co-pilot
  • Setup help
  • Diagnose and repair
  • Business questions — fixed data catalogue
  • Proposal re-validated — ids owned, windows fit
  • Single-use card — five-minute expiry human
  • Support ticket — secrets redacted

Three more personas

handoff, keeps your voice

  • Transport specialist — ask_transport handoff
  • Engineer desk — the trades twin
  • The 4pm planner — proposes consolidations
  • Planner self-apply — a safe class, if you allow

Built, but dark

waiting on someone else

  • Missed call → text — awaiting carrier + creds dark
  • Gmail — 100 sign-ups till verified capped
  • Partner credit — off behind a flag off

Not built

shown because hiding it would be lying

  • Morning debrief — no code — jobs are global UTC planned
  • WhatsApp · Telegram — no code, no table planned
  • Auto-enrol on triggers — metadata, no engine planned
  • Gone-quiet outreach — a badge, not a sweep planned

This is the machine your £39 buys.

See what it does and doesn't, read how onboarding works, or start the free trial — the full Pro product, no card to start.