8am Business · Automation platform · 2026
8am Agent: the automation platform behind 8am Go
8am Go runs many outbound campaigns for many clients at once. I designed and built 8am Agent to replace the manual checks, inbox searches and spreadsheet reporting behind every campaign with automated audits, work queues and reports. I owned it end to end: product definition, architecture, build, testing and rollout.
- Role
- Product owner, architect and sole engineer
- Timeline
- June to October 2026
- Users
- Campaign operators, account managers and leadership
- Stack
- TypeScript, Next.js, Supabase, AI agent SDK
- Security
- Read-only, least-privilege, row-level security
At a glance
Outcomes
Errors caught the same day
Every outgoing email is checked on the day it is sent, before a client or prospect notices a mistake.
Alerts the team trusts
An evidence-based audit removed almost all false alarms, so every flag the team sees is worth acting on.
No warm lead left waiting
All interested replies land in one queue, and leads who ask for later contact reappear on the right date.
Client numbers that match
Reports reconcile exactly with the campaign platform, so every figure a client sees can be traced.
Context
The problem
The team checked emails by hand, searched for replies across many inboxes and rebuilt client numbers in spreadsheets. Mistakes such as a wrong name in a greeting or a missed reply were found late, sometimes by the client.
My approach
I specified every feature from the team's real workflow and verified it against live data. Two rules came first: the system never changes client campaigns, and every number is reconciled with the source before anyone sees it.
Seven product areas
Outgoing Email Audit
Checks every email sent that day: the greeting against the recipient, including honorifics such as the Thai "Khun", and the target company against the recipient's domain, with an evidence level for each verdict.
Protects the client's brand before an error spreads.
Campaign Intelligence
Scores every campaign on deliverability, engagement, conversion, list quality and content, and explains the root cause in plain language.
Shows each morning which campaign needs attention first.
Interested Leads
Sorts every positive reply into one queue by status and intent, and turns "contact me next month" into a dated reminder.
Turns warm replies into meetings.
Campaign Report
Weekly and monthly client results with a Google Sheet that updates itself and metrics that state exactly what they count.
Replaces hours of manual spreadsheet work.
Zoe, the Slack agent
An AI agent that answers questions in plain language from live data and posts a daily brief every weekday, with action tools limited to named admins.
Brings answers to where the team already works.
Internal area
A live project timeline, a per-division SOP library and a progress dashboard, all kept in the Google Sheets the team already uses.
Gives leadership one view of every division.
Website monitoring
Health, performance and user-flow tests for the 8am product websites, including multi-step onboarding forms.
Finds broken pages before prospects do.
Architecture
One TypeScript monorepo: three applications share a single business-rules package, so the dashboard, the Slack agent and the tests always apply the same logic.
Applications
Web dashboard
Next.js 15 · React · Tailwind · Recharts
Slack agent (Zoe)
Slack Bolt · Claude Agent SDK
Test runner
Node.js · Playwright
Shared logic
Business-rules package
Pure, deterministic functions covered by automated tests
Data and integrations
Supabase
PostgreSQL · row-level security
Instantly.ai API
Read-only access
Google Sheets & Drive
Client reports · SOPs
Slack
Daily briefs · Q&A
Before and after
| Task | Before 8am Agent | With 8am Agent |
|---|---|---|
| Checking sent emails | A few emails spot-checked by hand | Every email audited the same day, with evidence |
| Finding weak campaigns | Opening campaigns one by one | All campaigns ranked by health, with the fix |
| Handling interested replies | Searching many inboxes | One prioritised queue with dated reminders |
| Client reporting | Numbers rebuilt in spreadsheets weekly | Automatic weekly and monthly reports |
| Team updates | Asking around | A daily Slack brief and instant answers |
Security and data safety
- Read-only by design. The platform never changes client campaigns or leads and never posts on its own; a build-time check fails the build if any code tries to.
- Least privilege, deny by default. The Slack agent reads only through the dashboard API, never the database, and action tools are reserved for named admins on a list that starts empty.
- Reduced attack surface. The agent connects outbound through Slack Socket Mode, so there is no public endpoint to probe or attack.
- Data-loss safeguards. Deletions never run from an empty or partial API response, and every manual decision is kept in an audit history that survives each sync.
- Validated, isolated data. Every API route rejects malformed input with a clear 400 response, and all records sit in PostgreSQL protected by row-level security.
- Safe testing in production. Website checks fill forms with synthetic test data and never submit them, so no fake records ever reach live systems.