Maverix Studio
Prepared for
Brabys Directory Services
Project
Plan
AI Agent Workforce · 3-Week Sprint
Document TypeProject Plan v1.3
DateMarch 2026 (rev. 11 Mar)
Timeline3 Weeks to Live
AuthorsDarren Isaacs & Phineas
Overview

3-Week Sprint to Live

This is a fast-build. Three weeks from kick-off to live data verification calls running against the Brabys database. Phase 2 — the sales agent — kicks off the moment Phase 1 is done.

3
Weeks to Live
4
AI Agents
2
Active Blockers
2
Phases Total
Week 1
Foundations & Core Infra
DB live · General running · Data imported
Week 2
Voice & Processing
Claire calling · Scrub processing · Dashboard live
Week 3
Merge & Go-Live
Pilot run · Informix merge · Production live
Week 4+
Phase 2: Sales
New agent · New script · Separate persona

What's Been Built — As of 11 March 2026

Pipeline v2 is live and E2E proven. Concurrent dispatch, webhook-first chaining, schema-aware Scrub, campaign templates, and the Campaign Creation Wizard are all operational. Records 301, 351, 352 reached APPROVED status with real outbound calls via Twilio → Claire (ElevenLabs) → webhook → Scrub → APPROVED → merge queue. 3CX SIP from Carl still blocked — Claire uses Twilio only for now.

✅ Infrastructure & Data
  • PostgreSQL staging DB — all 13 Informix tables loaded
  • 21,872 subscribers imported (Pretoria / 012 area)
  • subscriber_view — resolves all tables into readable business records
  • Import pipeline fully operational
✅ Operations Dashboard
  • Live at localhost:3500 with auth
  • Companies tab — searchable subscriber list, company modal
  • Activity tab — call history, clickable transcript viewer with field changes
  • Claire tab — agent config and testing
  • General tab — dispatcher status and controls
✅ Claire Voice Agent
  • ElevenLabs agent agent_6101kjdakj41fhq8ptkxffcxcwrz — fully configured
  • LLM: Claude Sonnet 3.5 (switched from Gemini 2.5 Flash, 3 Mar)
  • "Test with Claire" button in company modal — live browser voice session
  • Call logging with full transcript capture
  • General dispatcher agent + scheduler built (scheduler disabled pending 3CX)
✅ Field Extraction & Write-Back
  • Claude Haiku parses transcripts → extracts confirmed field changes
  • Automatic write-back to raw Informix tables: business_name, phone, email, website
  • Address changes flagged for manual review (requires Informix code lookups)
  • Activity tab shows field-level changes per call with transcript viewer
✅ Pipeline v2 — Concurrent & Webhook-First
  • Concurrent dispatch: up to max_concurrent_agents (default 2) calls simultaneously
  • Webhook-first dispatch: ElevenLabs webhook fires → immediately fill open slots via runDispatchCycle()
  • Daily orchestration: runDailyOrchestration() fires at 06:00 UTC
  • Time-learning: getOptimalCallTime(campaignId) queries 30-day answer rate by hour
  • 5-minute fallback poll as safety net
  • dispatcher.js now ~458 lines with full autonomous operation
✅ Campaign Architecture & Dashboard
  • Campaign schemas: config/schemas/verification.json and config/schemas/debt-collection.json
  • Campaign templates: directory-verification, debt-collection, renewal-outreach
  • campaigns table: added agent_id (TEXT) and schema_type (TEXT)
  • Campaign Creation Wizard: 3-step flow — Template picker → Configure → Review & Launch
  • Campaign Call History tab with expandable rows and chat bubble transcript viewer
  • Campaign stat cards fixed: now read from records.status via record_stats API
  • Snitch test agent: agent_1801kkftqqzxe8bvmwm244ash495, 6 scenarios
  • brabys-agents.html page: Claire, Scrub, General, Snitch agents shown
  • General chat: /api/general/chat → Claude Sonnet + live DB context
  • New API endpoints: GET /api/schemas, GET /api/templates, GET /api/campaigns/:id/calls

Design Decisions

Key architectural and process decisions made during the build sprint.

DecisionRationale
No direct Informix connection All data flows via file dumps — Carl's AIX server exports ZIP → Maverix imports into PostgreSQL. Agreed with Carl. Eliminates VPN/JDBC complexity entirely.
ElevenLabs hosts Claire Pure cloud agent — no local process, no Docker, no server costs for Claire herself. ElevenLabs manages uptime and scaling. Maverix manages prompt, script, and integration.
Claire LLM: Claude Sonnet 3.5 Switched from Gemini 2.5 Flash on 3 March 2026 after testing. Claude delivers significantly better conversation quality for this use case.
Field extraction: Claude Haiku Haiku is fast and cheap for structured extraction tasks. Used post-call to parse transcripts and pull confirmed field changes — not for the voice conversation itself.
Address write-back deferred Address changes require resolving human-readable text back to Informix code table values (cosstrdc, cossubrb, costown). Flagged for manual review until code lookup logic is built. All other fields write back automatically.
Browser voice testing before outbound calls "Test with Claire" browser session built before 3CX integration to validate Claire's script and conversation flow end-to-end. Lets both teams hear Claire and refine her behaviour without needing live calls.

Project Timeline

Task
Week 1
Week 2
Week 3
Week 4+
Staging server + repoInfra provisioned ✅ COMPLETE
COMPLETE ✓
PostgreSQL schemarecords · call_log · field_updates ✅ COMPLETE
COMPLETE ✓
CSV import + pilot data21,872 subscribers loaded — all 13 tables ✅ COMPLETE
COMPLETE ✓
General supervisor agentDispatcher built · scheduler built (disabled pending 3CX) ✅ COMPLETE
COMPLETE ✓
3CX ↔ ElevenLabs bridge3CX blocked — Twilio workaround live, E2E proven ⚡ PARTIAL
TWILIO LIVE — 3CX pending
Scrub transcript processorSchema-aware · webhook-chained · confidence thresholds ✅ COMPLETE
COMPLETE ✓
Operations dashboardlocalhost:3500 — Companies · Activity · Claire · General ✅ COMPLETE
COMPLETE ✓
Informix merge enginebusiness_name · phone · email · website done; address deferred ⚡ PARTIAL
PARTIAL — 4 of 5 fields
100-record pilot runReal calls · real data · Informix staging PENDING — awaiting 3CX
PENDING
Production go-liveInformix production · ElevenLabs migrated
Day 15 ✓
Sales agent buildNew persona · warm leads · escalation
Week 4+

Blockers — Status 11 Mar 2026

Infrastructure and data blockers are resolved. E2E pipeline proven via Twilio workaround. 3CX SIP from Carl still blocked (no ETA). Snitch phone number provisioning pending.

#BlockerOwnerStatus — 3 Mar 2026
B13CX SIP credentials — provide SIP account credentials + API access so ElevenLabs can connect via SIP trunk and make outbound calls.Brabys IT / Carl🔴 ACTIVE 3CX SIP still not received (no ETA from Carl). Claire uses Twilio workaround for now — E2E pipeline proven with records 301, 351, 352 reaching APPROVED. Scheduler runs autonomously via Twilio.
B2Informix connectivity — JDBC driver, VPN/network access, read-only credentials.Brabys IT✅ RESOLVED File dump approach agreed. Carl exports ZIP from AIX server → Maverix imports all 13 tables into PostgreSQL. No JDBC needed.
B3Sample data extract — full subscriber database for Pretoria / 012 area.Brabys / Carl✅ RESOLVED All 13 Informix tables loaded. 21,872 subscribers in PostgreSQL staging DB. Import pipeline fully operational.
B4Merge approval — manual dashboard trigger or scheduled nightly window?Mr Isaacs🟡 PENDING Field-level write-back built for 4 of 5 fields. Decision on address write-back and approval workflow pending pilot run.
B5ElevenLabs billing migration — transfer ElevenLabs account to Brabys for production.Brabys🔴 ACTIVE Required before production go-live. Claire currently running on Maverix ElevenLabs account. Billing migration needed when outbound calling starts at scale.
The Plan

Week by Week

Week 1
Foundations & Core Infrastructure
Goal: PostgreSQL live. General agent running. 100 records imported and queued.
🎯 Milestone: General operational
Maverix — starts Day 1
1.1
Provision staging server + project repo
Linux server for PostgreSQL, Node.js agents, and dashboard. Git repo structured: /agents, /db, /dashboard, /scripts.
Maverix
Day 1
1.2
Deploy PostgreSQL schema
Three tables: records (working copy), call_log (one row per call), field_updates (delta layer). Row-level access per agent role enforced.
Maverix
Day 1–2
1.3
CSV import script + pilot import
Ingest Brabys CSV into records table. Maps columns, validates fields, inserts as NEW status, outputs import report. Run with sample 100-record batch.
Needs B3 (sample CSV from Brabys)
Maverix
Day 2–3
1.4
General supervisor agent
Node.js loop: polls queue, assigns records to CALLING status, spawns Claire instances, retries failed calls (max 3), respects calling hours (08:00–17:00 SAST). Daily summary report to Brabys ops.
Maverix
Day 2–4
1.5
Test General in simulation mode
Run against imported records with mocked Claire responses. Verify status transitions, retry logic, and reporting. No live calls yet. Week 1 sign-off gate.
Maverix
Day 5
Week 2
Voice Agent & Call Processing
Goal: Claire making real calls. Scrub processing transcripts. Dashboard live.
🎯 Milestone: First live call end-to-end
Gated on B1 (3CX) — build in simulation if delayed
2.1
3CX ↔ ElevenLabs bridge
SIP/WebRTC bridge: General triggers call → 3CX dials number → ElevenLabs Claire handles conversation. Capture call IDs from both systems. If 3CX delayed, mock with test number first.
Needs B1 (3CX credentials)
Maverix
Day 6–8
2.2
Dynamic field injection into Claire
Before each call, General injects the record's actual field values into Claire's session — so Claire reads this business's real data, not placeholders.
Maverix
Day 7
2.3
Scrub transcript processor
Reads call transcripts, extracts field corrections, validates each field (email format, phone, URL, address), assigns confidence score 0–100. Auto-approves ≥80% confidence. Routes <80% to human review. DNC → quarantine.
Maverix
Day 7–8
2.4
Operations dashboard
Live view: queue by status, calls in progress, today's stats, QA queue, DNC count. Auto-refreshes 30s. Human review UI: old vs new values, transcript excerpt, one-click approve/reject.
Maverix
Day 8–10
2.5
First real call — end-to-end test
Claire calls a test number. Full cycle: General assigns → Claire calls → transcript captured → Scrub processes → record moves to APPROVED or HUMAN_REVIEW. Both teams review call quality. Week 2 gate.
Both
Day 10
Week 3
Merge, Pilot & Go-Live
Goal: Informix merge engine built. 100-record pilot run complete. Production live.
🚀 Milestone: Data verification live
Gated on B2 (Informix access)
3.1
Informix merge engine
Reads APPROVED records from field_updates. Connects to Informix via JDBC. Field-level updates only — subscriber ID is the immutable anchor. Logs every write. Conflict detection: never overwrites newer Informix data. Rollback script included.
Needs B4 (merge approval decision). Data via file dump from Carl (B2 resolved).
Maverix
Day 11–13
3.2
End-to-end integration test
20-record full cycle: import → General assigns → Claire calls → Scrub processes → approve → merge to Informix staging (not production). Verify all 20 records updated correctly.
Maverix
Day 13–14
3.3
100-record pilot run
Real calls. Real data. Live merge to Informix staging. Both teams review results: call quality, data accuracy, approval rates, DNC handling. Sign-off required from Mr Isaacs.
Both
Day 14–15
3.4
Production go-live
Switch Informix target to production. ElevenLabs billing transferred to Brabys account. Dashboard access handed to Brabys ops. Ongoing call volume agreed. Phase 2 scoping begins.
Needs B5 (ElevenLabs billing migration)
Both
Day 15
Phase 2
Next Build Items
Goal: Human Review actions, Snitch v2, Merge wiring, Training.
📋 Queued
Queued — Priority Order
P2.1
Human Review Actions
Edit+Approve, Reject+Call Again, Reject+Eject — three action buttons on the Human Review page with backend wiring.
Maverix
Ready
P2.2
Snitch v2 — Pre-Call Briefing + Post-Call Grading
Snitch receives campaign context before calling Claire, then grades the call against the schema's expected fields. Automated QA loop.
Maverix
Ready
P2.3
Snitch Phone Number Provisioning
Provision a dedicated phone number for Snitch via ElevenLabs dashboard (no API for number purchasing). Required for outbound Snitch → Claire test calls.
Brabys
Blocked
P2.4
Status Terminology Cleanup
Consolidate campaign_queue.statusrecords.status consistency across all dashboard views and API endpoints.
Maverix
Ready
P2.5
Merge Page Backend Wiring
Connect the Merge dashboard page to the write-back pipeline. Trigger merge for APPROVED records, show merge history and conflict resolution.
Maverix
Ready
P2.6
Training Videos
Record walkthrough videos for Brabys ops team: campaign creation, dashboard usage, human review workflow, merge process.
Both
Pending
What Comes Next

Phase 2: The Sales Agent

The moment data verification is live, Phase 2 begins. The infrastructure is already built. The only new work is a separate agent persona, a new script, and a warm-lead trigger from Claire's call data.

Critical Architecture Decision

The sales agent must be a completely separate persona from Claire. Claire has built trust — "this is not a sales call." That trust cannot be compromised. The sales agent gets a different name, different voice, and is never described as the same system. Warm leads from Claire's calls are the trigger — but the connection is invisible to the business being called.

Phase 2 Scope

Timeline estimate: Phase 2 is faster than Phase 1 — the infrastructure already exists. New agent persona + script + warm-lead queue is roughly 1 week of build. First sales calls within 2 weeks of Phase 1 go-live.

Risk Register

RiskLikelihoodMitigation
3CX not available / incompatible Medium Build call logic in simulation mode. Twilio or Vonage as fallback — 2-week decision window before switching providers.
Informix connectivity complex or delayed Medium CSV import/export as interim workaround — pilot can run without direct DB access. Not permanent but unblocks Weeks 1–2 entirely.
Call quality / Claire voice unacceptable Low Alternative ElevenLabs voices pre-tested. Script refined on early samples. Human listen-test before any calls to real customers.
Scrub accuracy too low (too much human review) Medium Confidence threshold is tunable. Start strict, loosen as accuracy is proven. Human review load decreases as system is calibrated.
POPIA / telecoms compliance (South Africa) Low DNC register enforced strictly. Brabys legal to confirm compliance posture before any live calls to real subscribers.
Prepared by
Maverix Studio
darren@maverixstudio.com · maverixstudio.com
Read alongside: Brabys AI Agent Workforce — Project Outline v1.0