IQ
IQForce.AI Product Roadmap

Building the autonomous
B2B sales machine

AI agents that replace and augment the full commercial cycle — from prospect identification to signed contract and renewal — for SMBs that can't afford a sales team.

Stage MVP · Live in PROD
Updated May 23, 2026 · v3.7 (retention enforcement SHIPPED — purge-expired-records edge fn enforces 3-tier promise in code, pg_cron + pg_net daily 03:00 UTC schedule active · Twilio TF verification submitted, approval async 5-7 business days · public SMS Consent page LIVE on PROD · §11.3 retention 3-tier + §12.1 governing-law filled · Phase 15+16 onboarding-mode selector added to deferred roadmap per D59 · Demo test bed shipped to DEV May 23 per D60)
PROD iqforce.ai
Repo github.com/zalogonza/iqforce
8
AI Agents
5
Done · Live
~25h
Phase 8 — MVP-required
10
Pilot Clients
3
Platform Layers
🚀
LIVE IN PROD SINCE APRIL 25, 2026
iqforce.ai live · 18 tables RLS-secured · 21 edge functions deployed · D0/D3/D7/D14 email sequences with HITL queue · MarIA inbound replies with anti-hallucination guardrails · per-client outbound subdomains · DNS migrated to GH Pages A/AAAA · DEV↔PROD schema parity · public SMS Consent page live
🛡️
COMPLIANCE — RETENTION ENFORCEMENT SHIPPED (MAY 17)
3-tier retention promise (12mo bodies · 4yr consent · indef opt-outs) now enforced in code by purge-expired-records edge fn · pg_cron + pg_net daily 03:00 UTC · Twilio TF verification submitted (5-7d async)
Agent Architecture
9 agents, one autonomous pipeline — click any agent for the drill-down
New client
Nico
Ana
Max
Leo
Sam
3 mo FREE
MarIA
Luna
KPI check
Stripe / Vera
Nico
Enrollment
✓ Live
Ana
GTM Analyst
✓ Live
Max
Reviewer
✓ Live
Leo
Proposal
✓ Live
Sam
Sales
✓ Live
Mia
Outbound Copywriter
✓ Live
MarIA
Prospect Replies
✓ Live
Luna
CX Monitor
Deferred
Vera
Retention
Deferred
Build Plan · v3.4 · Pilot Agreement v1.1 lawyer-accepted
5 phases shipped · Phase 8 mandatory · ~25h to first paying client · Phase 11-14 post-pilot (~64h)
Phase 1
Core Flow — Live
✓ Day 3 · Apr 12, 2026
Landing page (iqforce.ai)Marketing
Auth — sign in/up, password reset, SMTPAuth
Nico — Enrollment chatbot + plan selectionLayer 1
Ana — GTM Analyst + KPI definitionLayer 1
Max — Strategy Reviewer, 7 dimensionsLayer 1
Leo — Proposal generator, accept/rejectLayer 1
Prospects — add/delete/CSV importLayer 2
Email outreach — single send via ResendLayer 2
Telegram outreach — broadcastLayer 2
Phase 2
Sam + Success Agreement
✓ Day 4 · Apr 13, 2026
Sam agent — sales chat, price presentationLayer 1
Success agreement UI — 3 months free + KPI confirmationLayer 1
Internal negotiation — Sam ↔ Max ↔ Leo (1 round)Layer 1
90% off fallback — month-to-month flowLayer 1
Prospect save — rejected clients for future follow-upLayer 1
Phase 3
Sales Execution Completion
✓ Day 6 · Apr 15, 2026
Prospect — search, filters, edit, tags, dedup, detail viewLayer 2
Email — AI templates, merge fields, unsubscribe linkLayer 2
Email sequences — multi-step, auto follow-up day 3/7/14Layer 2
Open/click tracking — Resend webhooksLayer 2
Phase 4
MarIA + Capture (per-client subdomain sender)
✓ Day 25 · May 4, 2026

IQForce sends on behalf of Client from `maria@<client-slug>.iqforce.solutions`. We manage SPF/DKIM/DMARC per subdomain — zero client DNS work. HITL is mandatory in the pilot; US-only targeting; rate-limited 100 sends/tenant/day. Footer: "Sent on behalf of [Client]" + Client physical address + AI disclosure + unsubscribe.

4a. Per-client subdomain provisioning ✅ FULLY COMPLETE (May 3) · slug helpers · tenant cols · Resend Pro · admin Tenants UI · tenant-onboard-resend · tenant-verify-resend · resend-webhook Svix · forced compliance footer · admin compliance UI · 5/5 DEV deploys · Svix secret setInfra
4b. MarIA reply logic ✅ FULLY COMPLETE (May 3, 2026)
Resend Inbound on replies.<domain> subdomain ✓Infra
Edge function maria-inbound — Svix HMAC + Resend payload ✓Layer 1
Inbound→prospect correlation (4-strategy: tags / In-Reply-To / from-email / unattributed) ✓Layer 1
Intent classifier (interested/question/objection/unsubscribe/wrong-person/OOO/other) ✓Layer 1
MarIA reply generator (Claude Sonnet 4 · AI-disclosed) — drafts only, never sends ✓Layer 1
Conversations writer + deals stage progression (forward-only; lost terminal on unsubscribe) ✓Layer 2
HITL Review Queue UI + send-reply function (RFC-2822 threading, unsubscribe enforcement) ✓UI
Per-tenant Cal.com link + activity_logs handoff entry ✓Layer 1
4c. Compliance enforcement ✅ FULLY COMPLETE (May 4, 2026)
HITL approval logging (approved_by extracted from JWT) ✓Layer 2
US-only ICP filter (CSV import validation + server-side gates) ✓Layer 1
Rate limiter — 100 sends/tenant/day (UTC counter, defer-on-cap) ✓Layer 2
Suppression-list endpoint (HMAC-signed click-link replaces mailto v1) ✓Layer 2
Pilot Agreement v1.1 UI (replaces ToS — tos_version='pilot-v1.1') ✓UI
Phase 7
Tenant Catalog + Sales Playbook
✓ Day 32 · May 11, 2026

Moved MarIA + Mia from "operate from a single email body" to "operate from a per-tenant structured knowledge base." Anti-hallucination rule: agents quote prices/specs only if they appear verbatim in the catalog; the playbook covers everything else. Fully validated end-to-end on DEV May 11.

products table (SKU, price, MOQ, lead time, availability) ✓Layer 2✓ May 7
tenants.playbook_* — 6 free-text fields + staleness timestamps ✓Layer 2✓ May 7
Catalog admin UI — table view, edit modal, soft-delete, CSV import/export, staleness banner ✓UI✓ May 7
Sales Playbook admin UI — 6 textareas with hints, staleness banner ✓UI✓ May 7
AI auto-draft playbook from onboarding (manual + first-visit HITL flow) ✓UI + Layer 1✓ May 7
MarIA reply generator: reads playbook + catalog + anti-hallucination rule + compliance hedge ✓Layer 1✓ May 11
MarIA classifier: pricing_inquiry intent (8th, tie-breaks vs interested) ✓Layer 1✓ May 11
End-to-end pricing_inquiry smoke on DEV: 0.95 confidence, exact catalog quote, zero hallucinations ✓QA✓ May 11
Mia outbound: shared loadTenantContext + formatPlaybookContext + formatCatalogContext helpers ✓Layer 1✓ May 11
Mia defense-in-depth: sanitizeTemplateBody + merge-field warning toast ✓Layer 1✓ May 11
End-to-end Mia outbound smoke: merge fields correct + catalog product referenced + no hallucinations ✓QA✓ May 11
Public roadmap agent drill-down (Nico/Ana/Max/Leo/Sam/Mia/MarIA/Luna/Vera modal) ✓UI✓ May 11
Phase 8 · MVP-required
Multi-channel post-consent — SMS · WhatsApp · voice
BACKEND COMPLETE ✓ · M8 gated on Twilio TF approval (5-7d async)

Phase 8 backend COMPLETE on DEV (May 11): all 8 milestones (M1 schema · M2 MarIA enrichment · M3-M4 SMS layer · M5-M6 WhatsApp layer · M7 channel-aware Review Queue + thread merge · M8 smoke) + M-extra "Compose first SMS/WA" workflow + ADMIN_EMAILS multi-admin refactor shipped & deployed to DEV. ~5000 LOC across 7 new edge functions + 4 modified + 1 migration + app.html. Email-side smoke PASS end-to-end with real reply: extraction + write-back + rule 8(c) sms-preference draft + Review Queue + Initiate AI-draft generation all validated, zero hallucinations. M8 live SMS/WA smoke remains — gated on user-side Twilio account provisioning (10DLC conversational + WABA verification). Architectural rule (D54): IQForce is cold on email + LinkedIn only. SMS + WhatsApp are post-consent and prospect-chosen — same playbook a human SDR uses. Cold WhatsApp/SMS in the US (TCPA, Meta commerce policy, 10DLC marketing reg) is a non-starter; post-consent on shared IQForce 10DLC + WABA is compliant.

M1 · Channel preference schema — prospects channel cols + sms_logs + whatsapp_logs tables with RLS day 1Layer 2✓ 1h
M2 · MarIA reply enrichment — extractContactInfo() second-pass Claude + write-back + CHANNEL CONTEXT branching in MARIA_REPLY_SYSTEM rule 8 (buffet · respect-preference · voice=Cal.com+WhatsApp)Layer 1✓ 2h
M3 · send-sms (Twilio 10DLC conversational + admin-JWT + TCPA gates + STOP footer + 1600-char cap + sms_logs + activity_logs)Layer 2✓ 5h
M4 · twilio-sms-inbound (HMAC-SHA1 + STOP/HELP carrier-handled + status callback + SMS-tuned classifier+draft + conversations append + deal stage)Layer 2✓ 5h
M5 · send-whatsapp (Twilio WABA + 24h conversation window enforcement + admin-JWT + consent/suppression + 4096-char cap + status enum with 'read'/blue ticks)Layer 2✓ 5h
M6 · twilio-whatsapp-inbound (HMAC + STOP-equiv canonical set + 'read' status callback + WA-tuned classifier+draft + strips whatsapp: prefix + 300-char target)Layer 2✓ 5h
Voice = Cal.com schedule → client contacts via WhatsApp at the meeting time (no outbound voice infra; AI voice deferred to Phase 10)UI✓ 0h
M7 · Review Queue channel-aware UI — per-channel pill 📧/📱/💬 + per-channel send routing + pre-send compliance warning block + WABA window warning + char counter + state badges + unified thread merge details + subject hidden for SMS/WA + pricing_inquiry pill colorLayer 2 + UI✓ 3h
M-extra · Compose first SMS/WA workflow — admin-compose-message endpoint with AI-draft via new INITIATE prompts + admin-initiate-list filtering + 🚀 Admin · Initiate UI tab + inline compose form + ✨ Generate with AI + staged-confirmation card UXLayer 2 + UI✓ 4h
ADMIN_EMAILS multi-admin refactor — comma-separated list across 10 edge functions + app.html · zalogon + gsgarcia both operate HITL on DEVLayer 2 + UI✓ 1h
Email-side smoke PASS end-to-end on DEV — real reply "text me at +1 555 123 4567 — SMS works best" → extraction + write-back + rule 8(c) draft + Initiate AI-draft + Review Queue all green with zero hallucinationsQA
M8 · Live SMS/WA smoke — full circuit cold email → opt-in → SMS draft+approve+Twilio send → prospect reply → twilio-sms-inbound → WhatsApp pivot → STOP regression. Twilio account provisioned (May 17); toll-free verification submitted with Customer Care category + sms-consent.html Proof-of-Consent URL. Smoke gated on TF approval (5-7 business days async — Twilio drops A2P traffic on unverified TF; T-Mobile especially blocks). Pivot plan: WhatsApp sandbox smoke in parallel (no WABA approval required)QA2h gated
Phase 5 · re-sequenced
Basic CRM — Opportunities
~22h

Re-sequenced May 7 to land after Phase 7 + 8 + pilot client #1. The data layer (deals table, conversations, activity_logs) already exists — the Kanban polish is internal-facing UI and can wait.

Reuses existing PROD `deals` table (15 cols already there)Layer 2✓ schema
New "Opportunities" tab in app.htmlUI3h
Table view — sortable, inline editUI5h
Kanban view — 7 stages, drag-dropUI6h
Toggle table ⇄ kanbanUI1h
Activity timeline per deal (email_events + conversations + activity_logs)UI4h
CSV/XLSX exportUI3h
Phase 6
BYO Data Import polish
~6h

Existing CSV import (P1) covers the BYO need. This is just polish for client-friendly import formats. Centralized Apollo is killed per legal advice — clients use their own Apollo CSV exports if they have a subscription.

Apollo CSV format adapter (clients with own Apollo subscription)UI2h
LinkedIn Sales Navigator export adapterUI2h
Suppression-list-aware import (skip rows already suppressed)Layer 21h
US-country-only validation on importLayer 21h
Phase 9 · post-pilot
LinkedIn cold outreach + reply pipeline
~30-40h

Second cold channel after email (per D54). Sales Navigator / LinkedIn export → outreach automation → MarIA extended to LinkedIn replies. Legality gated on LinkedIn ToS posture; deferred until pilot revenue justifies the regulatory risk. Scope detailed at kickoff.

Scope to be detailed post-pilot — placeholder for D56 orderingLayer 1+2~30-40h
Phase 10 · post-pilot
AI voice calling — Vapi / Bland
~30h

Replaces the Phase 8 "voice = Cal.com link" handoff with real AI-led calling. Two candidate providers under consideration (Vapi and Bland); choice deferred until Phase 8 + pilot data inform the picks. Requires TCPA capture + state-by-state consent flow. Post-pilot per D56.

Scope to be detailed post-pilot — placeholder for D56 orderingLayer 1+2~30h
Phase 11 · post-pilot
Instrumentation & KPI Capture
~20h

Foundational telemetry so every customer-facing KPI is computed live from the DB, not Excel. No UI in this phase — just the event-capture spine. Critical-path for Phase 12 (dashboards) and Phase 13 (billing enforcement).

events table (uniform append-only log, RLS day 1)Schema3h
Instrumentation triggers across send-* + draft lifecycle + repliesLayer 24h
cal-booking-webhook edge fn (HMAC) → meeting_booked + meeting_held eventsEdge fn4h
tenants.first_meeting_booked_at denormalization + backfill scriptSchema2h
v_kpi_* SQL views (reply rate · meetings · time-to-first-meeting · HITL approval rate · hallucination proxy · hours saved · cohort retention)SQL views7h
Phase 12 · post-pilot
Metrics Dashboards — CEO + Tenant ROI
~14h

Two surfaces, same SQL views, different framing — both inside app.html. Reads from Phase 11 v_kpi_* views only (no inline SQL in UI). Depends on Phase 11.

Per-tenant ROI page — "you would have spent $X on a SDR, IQForce charged $Y, saved you $Z"UI8h
Admin CEO dashboard — 3 tenants side-by-side · cohort retention · HITL global + per-tenant · drafts funnelUI6h
Phase 13 · post-pilot
Trial Mgmt + Stripe Billing
~15h

Real billing replaces the manual onboarding flow. 90-day demo → ultra-promo paying tier → standard tiers, via Stripe Checkout + webhook-driven subscription lifecycle.

Trial fields + tenant_status enum + paywall gating across all send-* functionsSchema + Edge fn4h
Stripe Checkout — three tiers (promo / Starter / Growth)Integration6h
stripe-webhook edge fn — subscription lifecycle + invoice eventsEdge fn4h
Plan enforcement (prospects/mo caps) + trial countdown UIUI + Edge fn1h
Phase 14 · post-pilot
Customer-Facing ROI Surfaces
~10h

Friction-zero artifacts that reinforce value for paying tenants. All read from Phase 11 views — single source of truth. Depends on Phase 11 + Phase 13.

Weekly automated tenant report (send-weekly-report) — value-moment anchor before trial expiresEdge fn + cron5h
Cost-per-meeting calculator + SDR comparison slider in per-tenant dashboardUI2h
Time-to-first-meeting hero + HITL approval rate badge ("0% hallucination")UI3h
Deferred · gated behind first paying clients
After MVP revenue is live
Phase 15 · post-pilot · D59
Onboarding mode selector — NBD vs AM
~8h

Binary fork after Nico so prospects who already own a customer base aren't forced through GTM/ICP discovery. NBD (New Business Development) = current default (Ana runs, cold outreach to net-new). AM (Account Management) = skip Ana, upload existing customer base, reuse Phase 7 catalog/playbook, warm-tone outreach to accounts the client already owns. UX + flow branching only; no agent rewrites — Mia + MarIA prompts get a mode-aware preamble. Opens distribution/wholesale/CPG vertical without breaking the NBD default. Gated: ≥3 paying NBD pilots live + ≥2 inbound AM-mode requests.

Mode selector step after Nico — two cards (NBD / AM); default NBDUI2h
tenants.use_case_mode enum (nbd | am) NOT NULL DEFAULT 'nbd' + backfillSchema0.5h
AM path: skip Ana → customer-base upload (reuses Phase 6 importer with AM column hints)UI2h
Mia + MarIA mode-aware preamble (NBD = cold framing; AM = warm-account framing)Layer 12h
Pilot Agreement addendum §A2 for AM clients (existing-relationship warranty + CAN-SPAM commercial classification)Legal + UI1.5h
Phase 16 · post-Phase 15 · D59
Account Management deepening — order parsing + RFM + Accounts view
~22h

AM-specific tooling beyond "skip Ana." Build only after Phase 15 ships AND ≥2 paying AM-mode pilots are live (avoids speculative build). Reuses ~70% of the existing platform (catalog/playbook, MarIA, CRM, email infra, HITL, per-client subdomains, Phase 8 multi-channel).

MarIA order_request intent (9th) — extracts {sku_refs, quantities, delivery_window} against tenant catalog; HITL "Order draft" card variant with line items + totalLayer 1 + UI8h
RFM scoring view on customer base — nightly recency/frequency/monetary per account; segments active/dormant/at-risk/churnedSQL view6h
Accounts board view — Phase 5 Kanban variant with RFM segments as columns; toggle by use_case_modeUI5h
AM-specific KPI tiles in Phase 12 dashboard — reorder rate, % inbound auto-processed, AOV lift, dormant-account reactivationsUI3h
Deferred
Luna · Vera · Stripe · Internal Dashboards · PDF
~40h
Luna — CX KPI agent, months 1-3Layer 110h
Vera — Retention agent, month 3+Layer 112h
Stripe auto-billing at month 3Billing6h
C-Level Dashboard (internal)Layer 18h
Proposal + Strategy PDF exportUI4h
Deferred indefinitely
Telegram outreach
~12h

Telegram cold + inbound — same compliance profile as cold WhatsApp/SMS so out of pilot scope. Existing scaffolding stays in-tree (telegram_contacts, telegram_logs, send-telegram, telegram-webhook) and provides the pattern reused by Phase 8's SMS/WhatsApp integrations. WhatsApp is now part of Phase 8 (post-consent, MVP-required). LinkedIn cold moved to Phase 9. AI voice moved to Phase 10.

Telegram outreach — kept on the shelf; not in pilotLayer 2~12h
Post-MVP
Demand Generation Engine — IQForce's own marketing
~50h
Data enrichment — Enrich.so, ICP match scoringLayer 38h · $49/mo
AI content generation — Copy.ai, blog/social/adsLayer 310h · $49/mo
Social media automation — Ocoya, LinkedIn/X/FB/IGLayer 38h · $29/mo
SEO + GEO — Surfer SEO, AI search optimizationLayer 36h · $89/mo
Paid ads — Meta + Google Ads API, budget AILayer 312h · free APIs
Demand Gen Dashboard — CPL, ROI, budget trackerLayer 36h
Chat Strategy
One chat per module
Phase 8 · NEXT · MVP Vamos a construir Phase 8 — Multi-channel post-consent... copy
Phase 5 · post-pilot Vamos a construir Phase 5 — Basic CRM (Opportunities)... copy
Phase 6 Vamos a construir Phase 6 — BYO Data Import polish... copy
Phase 9 · post-pilot Vamos a construir Phase 9 — LinkedIn cold... copy
Phase 10 · post-pilot Vamos a construir Phase 10 — AI voice calling (Vapi/Bland)... copy
Phase 11 · post-pilot Phase 11 — Instrumentation & KPI Capture... copy
Phase 12 · post-pilot Phase 12 — Metrics Dashboards (CEO + Tenant)... copy
Phase 13 · post-pilot Phase 13 — Trial Mgmt + Stripe Billing... copy
Phase 14 · post-pilot Phase 14 — Customer ROI Surfaces... copy
Phase 15 · post-pilot · D59 Phase 15 — Onboarding mode selector (NBD vs AM)... copy
Phase 16 · post-Phase 15 · D59 Phase 16 — AM deepening (order parsing + RFM + Accounts)... copy
Deferred Luna — CX Agent (deferred until paying clients)... copy
Deferred Vera — Retention Agent (deferred)... copy
Deferred Stripe auto-billing (deferred)... copy
Deferred Telegram outreach (deferred indefinitely)... copy
Post-MVP Demand Generation Engine (post-MVP)... copy