Leadmetrics v3 — Build Roadmap
Last updated: April 2026
Based on: docs/product-features/index.md · docs/missing-incomplete-features/ · docs/new-features/
Sprint size: 2 weeks · Assumed team: 2 full-stack engineers + 1 AI/ML engineer (unless noted)
How to read this
- Phases are sequential — later phases depend on earlier ones being stable.
- Items within a phase can run in parallel across engineers.
- Sprint estimates are rough. Complex integrations (WhatsApp, Shopify, DataForSEO) will expand; UI-only work will compress.
- Each item links to its detailed spec in the features index or gap doc.
- ⚠️ markers call out decisions or external dependencies that need resolution before the sprint starts.
Phase 0 — Production Stability
Duration: Sprints 1–3 · ~6 weeks
Goal: Fix all 14 🔴 blocking issues. Nothing new ships until these are resolved — the core campaign → agent → approval → publish loop is currently broken end-to-end.
P0 Build Sequence (ordered by unlock value)
| # | Item | Impact | Sprint | Reference |
|---|---|---|---|---|
| P0-1 | Real-time agent status — Socket.IO BullMQ bridge | Users see blank screens during agent runs | 1 | docs/missing-incomplete-features/real-time-agent-status.md |
| P0-2 | Notification hub — Redis Pub/Sub (replace non-existent HTTP hub) | Bell badge never updates | 1 | docs/missing-incomplete-features/notification-hub-sse-service.md |
| P0-3 | Social post platform publishing — wire FB/IG/LinkedIn providers after approval | Agents write posts that go nowhere | 1–2 | docs/missing-incomplete-features/social-post-platform-publishing.md |
| P0-4 | CMS publishing — WordPress/Webflow auto-publish after blog approval | Blog pipeline terminates at approval | 2 | docs/missing-incomplete-features/cms-publishing.md |
| P0-5 | Email newsletter delivery — Mailchimp/Klaviyo send after Email Writer approval | Newsletter pipeline terminates at approval | 2 | docs/missing-incomplete-features/email-newsletter-delivery.md |
| P0-6 | Campaign orchestration — Campaign Strategist agent (decomposes briefs → delegates to workers) | The top-level “run a campaign” flow doesn’t exist | 2–3 | docs/missing-incomplete-features/campaign-orchestration.md |
| P0-7 | Hardcoded connected channels — replace ["facebook","linkedin","instagram"] with DB query | Wrong channels used in every deliverable plan | 1 | docs/missing-incomplete-features/hardcoded-connected-channels.md · apps/api/src/routers/tenant/main.ts:268 |
| P0-8 | Agent plan gating — apply plan-tier check (TODO at line 55) | All tenants see all agents regardless of plan | 1 | docs/missing-incomplete-features/agent-plan-gating.md · apps/api/src/routers/tenant/main.ts:55 |
| P0-9 | Free plan seed — define + seed the free plan in DB | Unsubscribed tenants get Starter access indefinitely | 1 | docs/missing-incomplete-features/free-plan-limits.md |
| P0-10 | Scheduler missing task types — monthly cycle, billing, keyword snapshot crons | 8 of 11 scheduler task types don’t exist | 2 | docs/missing-incomplete-features/scheduler-missing-task-types.md |
| P0-11 | Activity templates steps schema — define the undefined steps schema (OQ-4) | Activity templates silently broken | 2 | docs/missing-incomplete-features/activity-templates.md |
| P0-12 | Razorpay webhook signature bypass — enforce verification when secret is unset | Forged payment events accepted in production | 1 | docs/missing-incomplete-features/razorpay-webhook-signature-bypass.md |
| P0-13 | Credit race condition — add SELECT FOR UPDATE row lock to reserveCredits() | Concurrent agent runs can double-spend credits | 1 | docs/missing-incomplete-features/credit-race-condition.md |
| P0-14 | BillingJobData test type mismatch — add jobId + manual fields | Entire monorepo build currently broken | 1 | docs/missing-incomplete-features/billing-type-mismatch-bug.md |
P0-14 should be fixed before any other work — it blocks the build.
P0-1, P0-2, P0-7, P0-8, P0-9, P0-12, P0-13 can all be parallelised in Sprint 1.
P0-3, P0-4, P0-5 follow once the publishing framework (P0-1) is confirmed stable.
P0-6 is the most complex item; P0-3/4/5 are its prerequisites.
Phase 1 — Pre-Launch Hardening
Duration: Sprints 4–7 · ~8 weeks
Goal: Close the 21 🟡 pre-launch gaps. Required before onboarding any paying tenant.
| # | Item | Area | Sprint | Reference |
|---|---|---|---|---|
| P1-1 | Email verification — verification email + endpoint + access gate | Auth | 4 | docs/missing-incomplete-features/email-verification-missing.md |
| P1-2 | JWT revocation — token blocklist on logout | Auth | 4 | docs/missing-incomplete-features/stateless-jwt-no-revocation.md |
| P1-3 | Razorpay payment failed — notify tenant + set invoice status | Billing | 4 | docs/missing-incomplete-features/payment-failed-no-notification.md |
| P1-4 | Subscription cancellation cleanup — freeze tenant, lock credits, send notification | Billing | 4 | docs/missing-incomplete-features/subscription-cancellation-cleanup.md |
| P1-5 | Overage billing — usage-based charges when Pro cap exceeded (OQ-12) | Billing | 5 | docs/missing-incomplete-features/overage-billing.md |
| P1-6 | OAuth token key rotation — AES-256-GCM key rotation process (OQ-18) | Security | 5 | docs/missing-incomplete-features/oauth-token-key-rotation.md |
| P1-7 | Document security scanning — magic-byte + AV check before Docling extraction (OQ-17) | Security | 5 | docs/missing-incomplete-features/document-security-scanning.md |
| P1-8 | Twitter/X channel detail page | Dashboard UI | 5 | docs/missing-incomplete-features/twitter-zoho-channel-detail-pages.md |
| P1-9 | Zoho channel detail page | Dashboard UI | 5 | docs/missing-incomplete-features/twitter-zoho-channel-detail-pages.md |
| P1-10 | Performance reporting dashboard — client-facing report viewer | Dashboard UI | 6 | docs/missing-incomplete-features/performance-reporting-dashboard.md |
| P1-11 | Report delivery — push to Slack, Notion, Google Drive after approval | Integrations | 6 | docs/missing-incomplete-features/report-delivery-integrations.md |
| P1-12 | Notifications app (apps/notifications) — push + email alerts | Infrastructure | 6 | docs/missing-incomplete-features/notifications-app.md |
| P1-13 | TikTok publishing — wire tiktok-post-writer.worker.ts to TikTok API | Publishing | 6 | docs/missing-incomplete-features/tiktok-gbp-publishing.md |
| P1-14 | GBP post publish — wire GBP post approval to Google Business Profile API | Publishing | 6 | docs/missing-incomplete-features/tiktok-gbp-publishing.md |
| P1-15 | AI chat token management — token counting, history trimming, context window guard | AI Chat | 7 | docs/missing-incomplete-features/ai-chat-token-management.md |
| P1-16 | AI chat executor subagent — build the 16 executor tools (partial, most critical 6 first) | AI Chat | 7 | docs/missing-incomplete-features/ai-chat-executor-subagent.md |
| P1-17 | RAG Qdrant health check — startup check + Docker healthchecks | Infrastructure | 7 | docs/missing-incomplete-features/rag-qdrant-health-check.md |
| P1-18 | Mobile push notifications — FCM registration + delivery | Mobile | 7 | docs/missing-incomplete-features/mobile-push-notifications.md |
| P1-19 | Tenant storage cleanup — delete Spaces files on deactivation/cancellation | Infrastructure | 7 | docs/missing-incomplete-features/tenant-storage-cleanup.md |
| P1-20 | Lead scoring — basic scoring model + nurture sequences | CRM | 7 | docs/missing-incomplete-features/lead-scoring-nurture.md |
| P1-21 | Queue monitoring UI — cross-tenant BullMQ visibility in Manage portal (OQ-2) | Manage | 7 | docs/missing-incomplete-features/queue-monitoring-ui.md |
Phase 2 — Core Value Loop Completion
Duration: Sprints 8–10 · ~6 weeks
Goal: Make the full campaign lifecycle work end-to-end with no manual gaps.
| # | Item | Notes |
|---|---|---|
| P2-1 | Content calendar auto-scheduling — AI selects optimal post times | Feeds into deliverable planner · docs/new-features/content-calendar-auto-scheduling.md |
| P2-2 | Content repurposing agent — transform blogs → social → email → newsletter | High-leverage: 1 piece of content → 5 deliverables · docs/new-features/content-repurposing.md |
| P2-3 | A/B ad variant generation — Google RSA + Meta ad variants | docs/missing-incomplete-features/a-b-ad-variants.md |
| P2-4 | White-label client portal — custom domain + logo for client-facing dashboard | Key for agency sales · docs/new-features/white-label-client-portal.md |
| P2-5 | Brand voice scoring — evaluate content against client brand voice profile | docs/new-features/brand-voice-scoring.md |
| P2-6 | Audience personas & personalisation — persona-aware content generation | docs/new-features/audience-personas-personalization.md |
| P2-7 | Webhook + Public API — allow tenants to integrate Leadmetrics with their own tools | docs/new-features/webhook-public-api.md |
| P2-8 | Multi-language content — Hindi/Tamil/Telugu/Arabic at minimum | docs/new-features/multi-language-localization.md |
Sprint 8: P2-1, P2-2, P2-5 (all content pipeline enhancements)
Sprint 9: P2-3, P2-6, P2-8 (content quality + internationalisation)
Sprint 10: P2-4, P2-7 (platform + API surface)
Phase 3 — Marketing Automation Foundation
Duration: Sprints 11–16 · ~12 weeks
Goal: Build the automation engine — the most critical competitive gap vs. HubSpot, ActiveCampaign, Klaviyo.
This is the largest engineering effort in the roadmap. It unlocks almost every subsequent eCommerce and India-specific feature.
3.1 Automation Workflow Engine (Sprints 11–13)
| Item | Priority | Notes |
|---|---|---|
| Visual workflow builder (drag-and-drop) | 🔴 Table-stakes | Trigger → filter → action canvas; see §17.1 |
| Trigger library | 🔴 | Contact created, email opened, form submitted, URL visited, tag added, date-based |
| Action library | 🔴 | Send email, send WhatsApp, add tag, update contact property, enroll in sequence, assign to owner |
| Branch/filter logic | 🔴 | If/else branching, wait steps, time-delay steps, goal steps (exit on conversion) |
| Sequence / Drip builder | 🔴 | Step-based email sequences with reply detection and goal exit |
| Pre-built automation templates | 🟡 | Welcome series, lead nurture, re-engagement, post-event follow-up |
3.2 Segmentation & Audience Builder (Sprint 14)
| Item | Priority | Notes |
|---|---|---|
| Visual segment builder | 🔴 | Demographic + behavioural + transactional conditions; AND/OR logic |
| Segment AI (natural language → segment) | 🟡 | “Contacts who bought in last 30 days and are in Mumbai” |
| Dynamic segment recalculation | 🔴 | Segments update as contact properties change |
| Segment-based automation enrollment | 🔴 | Entering a segment triggers a workflow |
3.3 Attribution & Revenue Measurement (Sprints 15–16)
| Item | Priority | Notes |
|---|---|---|
| UTM link management | 🔴 | Auto-generate + track UTM parameters across all campaigns |
| Multi-touch attribution engine | 🔴 | All 6 models: First Touch, Last Touch, Linear, Time Decay, U-shaped, Data-Driven ML |
| Revenue attribution dashboard | 🔴 | £/₹ per channel; requires CRM deal or eCommerce order sync |
| Form builder | 🔴 | Drag-and-drop, conditional logic, multi-step; creates Leads; embeds on client sites |
| Social listening | 🔴 | Brand mention monitoring across Twitter/X, Reddit, news |
| Multi-channel marketing dashboard | 🔴 | Unified view: email, social, WhatsApp, ads, SEO performance |
Phase 4 — WhatsApp & India eCommerce
Duration: Sprints 17–20 · ~8 weeks
Goal: Capture the Indian market. WhatsApp is the single largest competitive gap for India.
⚠️ Decision required before Sprint 17: Choose BSP provider — Interakt (SMB/eCommerce), Kaleyra (enterprise volume), or Gupshup (broadest coverage). WABA setup through BSP takes ~3–5 business days vs. 4–8 weeks direct via Meta.
| # | Item | Priority | Notes |
|---|---|---|---|
| P4-1 | WhatsApp provider abstraction — BSP wrapper in packages/providers/whatsapp/ | 🔴 | Abstract over Gupshup/Interakt/Kaleyra; no app code change if BSP swaps |
| P4-2 | WhatsApp broadcast campaigns — segment-targeted messages with HSM templates | 🔴 | Festival templates included; wire to automation engine from Phase 3 |
| P4-3 | WhatsApp automation flows — welcome, abandoned cart, post-purchase, re-engagement | 🔴 | Reuse automation engine from Phase 3; WhatsApp = channel alongside email |
| P4-4 | COD order tracking flows — confirmation, delivery attempt, COD-to-prepaid conversion | 🔴 India | Integrate with Shiprocket for delivery status |
| P4-5 | Festival campaign engine — pre-built templates + calendar-aware scheduler | 🔴 India | Diwali, Navratri, Holi, Eid, Big Billion Day; 2-week advance reminder |
| P4-6 | DPDP Act compliance — consent capture, purpose limitation, data deletion workflow | 🔴 | All India-deployed tenants; 30-day deletion SLA |
| P4-7 | GDPR compliance — lawful basis, right to erasure, data portability, DPA template | 🔴 | All global clients |
| P4-8 | Regional language content — Hindi/Tamil/Telugu minimum in agent prompts | 🟡 | Festival campaigns in regional languages have 2–3× higher engagement in Tier 2/3 cities |
| P4-9 | WhatsApp product catalog + commerce — catalog sync, WhatsApp Cart, UPI payments | 🔴 | Requires Shopify integration from Phase 5 for catalog sync |
| P4-10 | UPI payment links in WhatsApp + email — Razorpay/Paytm payment link API | 🟡 | One-tap payment for service businesses (clinics, salons, coaching) |
| P4-11 | BNPL messaging integration — ZestMoney/LazyPay/Simpl checkout abandonment flows | 🟡 | Surface BNPL option in cart abandonment messages |
| P4-12 | Justdial + IndiaMart lead import — auto-import enquiries into Lead pipeline | 🟡 | Primary B2B inbound sources for Indian SMBs |
Phase 5 — eCommerce Platform Integrations
Duration: Sprints 21–25 · ~10 weeks
Goal: Shopify-first native integration, then WooCommerce. Unlocks the full eCommerce automation stack.
⚠️ Decision required before Sprint 21: Confirm which eCommerce platform most clients use — Shopify (global), WooCommerce (India self-hosted), or Indian platforms (Dukaan/Instamojo). Build Shopify first if global clients are the near-term target; WooCommerce first for Indian SMB focus.
| # | Item | Priority | Notes |
|---|---|---|---|
| P5-1 | Shopify integration — product catalog, orders, customers sync | 🔴 | New packages/providers/shopify/; Shopify OAuth + Webhooks |
| P5-2 | WooCommerce integration — REST API sync for WordPress-hosted stores | 🔴 | Append to existing packages/providers/wordpress/ |
| P5-3 | Abandoned cart + browse abandonment flows | 🔴 | Wire Shopify cart events to automation engine from Phase 3 |
| P5-4 | Back-in-stock + price drop alerts | 🔴 | Inventory webhook from Shopify → segmented notify |
| P5-5 | Post-purchase full sequence | 🔴 | Order confirm → ship → deliver → review request → cross-sell → win-back |
| P5-6 | Win-back / re-engagement flow | 🔴 | 60/90/180-day lapsed buyer detection; configurable per client |
| P5-7 | Welcome series | 🔴 | First purchase or email opt-in trigger; 40–60% open rate |
| P5-8 | RFM segmentation — auto-compute Recency/Frequency/Monetary per contact | 🔴 | Add rfmScore, rfmSegment to Contact model |
| P5-9 | CLV prediction — ML model, weekly retraining | 🔴 | Add predictedClv, clvTier to Contact model |
| P5-10 | Product review collection — automated request flow + moderation + JSON-LD | 🔴 | Email + SMS + WhatsApp review requests; structured data for Google rich results |
| P5-11 | AI cross-sell/upsell engine — ML product recommendations | 🔴 | Real-time inference; surface in post-purchase emails, cart recovery |
| P5-12 | Google Shopping product feed — Merchant Center submission + campaign management | 🔴 | Extend packages/providers/google/src/google-ads.ts |
| P5-13 | Dynamic retargeting ads — show viewed products on Google Display + Meta | 🔴 | Product feed + pixel → dynamic creative assembly |
| P5-14 | Indian eCommerce platforms — Dukaan, Instamojo, Shiprocket integrations | 🟡 | Dukaan/Instamojo for catalog; Shiprocket for logistics tracking |
| P5-15 | Churn risk + ENDO prediction | 🟡 | 90-day churn probability; expected date of next order; fire win-back at high-risk threshold |
| P5-16 | Wishlist abandonment flow | 🟡 | Time-based reminder + price-drop + low-stock notification |
| P5-17 | Replenishment / subscription reminder | 🟡 | Predict next purchase date for consumable products |
Phase 6 — DataForSEO-Powered SEO Suite
Duration: Sprints 26–30 · ~10 weeks
Goal: Full SEO intelligence layer. Competes with AgencyAnalytics, Semrush for agency reporting.
⚠️ Pre-sprint validation required: Test 100+ India vernacular keywords (Tamil, Hindi, Kannada) against DataForSEO vs. Semrush API before starting. If DataForSEO quality is insufficient for regional queries, architect a hybrid (DataForSEO global + Semrush vernacular) before building the UI layer.
| # | Item | Priority | Notes |
|---|---|---|---|
| P6-1 | Rank tracking UI — daily position tracking, history chart, alerts | 🔴 | Add KeywordRanking table; GET /tenant/v1/seo/rankings endpoint; /seo/rankings page |
| P6-2 | Keyword research within content briefs — live data from DataForSEO | 🔴 | Wire into content-brief-writer.worker.ts and /content-briefs UI |
| P6-3 | Keyword gap / content gap analysis — client vs. competitors | 🔴 | Auto-generate ContentBrief from gap items; /seo/keyword-gap page |
| P6-4 | Technical SEO audit UI — surface site-auditor.worker.ts results | 🔴 | Worker exists, no UI; add SiteAuditReport model; /seo/site-audit page |
| P6-5 | SERP feature tracking — featured snippets, PAA, local pack | 🟡 | Alert on gain/loss of rich results |
| P6-6 | Competitor organic traffic estimation | 🟡 | Monthly organic traffic estimates for up to 5 competitor domains |
| P6-7 | Local SEO + citation management — 50+ directory listings; NAP consistency | 🟡 | Critical for Indian brick-and-mortar + service-area businesses |
| P6-8 | AI search visibility — brand mentions in ChatGPT/Perplexity/AI Overviews | 🟡 | Extends existing §6.2 AI visibility feature; DataForSEO AI Optimization Data API |
| P6-9 | Google Shopping product intelligence — competitor pricing + feed health | 🟡 | DataForSEO Merchant API |
| P6-10 | Surfer-style content editor — real-time SEO scoring as user types | 🟡 | TF-IDF term density + content brief coverage gauge inline in editor |
Phase 7 — Customer Data Platform (CDP) & Unified Profiles
Duration: Sprints 31–35 · ~10 weeks
Goal: First-party data ownership. Critical post-third-party-cookie deprecation.
| # | Item | Priority | Notes |
|---|---|---|---|
| P7-1 | First-party event tracking pixel — JS pixel + server-side event API | 🔴 | Page views, product views, add-to-cart, purchase, form; privacy-first (no third-party cookies) |
| P7-2 | Unified customer profile — single view across purchase, email, WhatsApp, web | 🔴 | Aggregate all events per contact; profile enrichment UI on contact detail page |
| P7-3 | Consent management — GDPR + DPDP cookie consent banner + per-contact preferences | 🔴 | Respects consent on every send operation; DPA template for B2B clients |
| P7-4 | Identity resolution — stitch anonymous sessions to known contacts | 🟡 | Merge profiles on identification event (form fill, email click, WhatsApp opt-in) |
| P7-5 | UGC collection + shoppable display — aggregate customer photos/videos + shoppable gallery | 🟡 | Instagram hashtag + tag aggregation; rights management |
| P7-6 | Performance Max campaigns — full multi-surface Google campaign | 🟡 | Asset groups + product feed; extend packages/providers/google/src/google-ads.ts |
Phase 8 — CRO & Personalisation
Duration: Sprints 36–40 · ~10 weeks
Goal: Improve conversion rates on client landing pages and email/WhatsApp campaigns.
| # | Item | Priority | Notes |
|---|---|---|---|
| P8-1 | A/B testing engine — email subjects, send times, body variants, full paths | 🔴 | Sequential likelihood ratio (no-peeking); auto-winner selection; sample size calculator |
| P8-2 | Heatmaps + session recordings — click/scroll heatmaps + rage-click detection | 🟡 | On AI-generated landing pages; builds quality feedback loop for landing-page-writer agent |
| P8-3 | Funnel analysis — drop-off stages in multi-step flows | 🟡 | Landing page → form → checkout; segmented by traffic source and device |
| P8-4 | MVT (multivariate testing) — test combinations of multiple page elements | 🟡 | Interaction analysis; more efficient than sequential A/B tests |
| P8-5 | On-page personalisation engine — dynamic content by visitor attributes | 🟡 | New vs. returning, traffic source, geo, device, CRM segment |
| P8-6 | AI test recommendation — auto-suggest experiments from heatmap + recording data | 🟡 | “30% drop-off at pricing section — test moving it below testimonials” |
Phase 9 — Differentiators & Growth Loops
Duration: Sprints 41–48 · ~16 weeks
Goal: Features that create switching costs, viral loops, and deep client retention.
9.1 Loyalty & Retention (Sprints 41–43)
| Item | Priority | Notes |
|---|---|---|
| Points-based loyalty program | 🟡 | Earn on purchase, review, referral, social share; tiered (Bronze–Platinum); redemption as discount codes |
| Referral program | 🟡 | Unique links per customer; dual-sided incentives; anti-fraud; wire to email/WhatsApp flows |
| Subscription commerce support | 🟡 | Dunning management; pause/skip/swap; churn prevention portal |
| Gamification / spin-to-win pop-ups | 🟢 | 3–5× opt-in rate vs. standard discount pop-ups |
9.2 ABM & B2B Features (Sprints 44–46)
⚠️ Decision required: Confirm whether B2B agencies are a target segment. If yes, upgrade all ABM items to 🔴 Table-stakes and prioritise before Phase 9.
| Item | Priority | Notes |
|---|---|---|
| Company/Account model + grouping | 🟡→🔴 | Account model; link Contact + Lead to account; account engagement score |
| LinkedIn outreach sequences | 🟡→🔴 | Multi-touch LinkedIn connection + message sequences; wire to packages/providers/linkedin/ |
| Deal-stage content mapping | 🟡→🔴 | TOFU/MOFU/BOFU content auto-suggestion based on CRM deal stage |
| CRM deal sync | 🟡→🔴 | Zoho CRM (India), HubSpot, Salesforce bi-directional deal stage sync |
| Intent data integration | 🟡 | Bombora / G2 intent signals; “surging accounts” view |
| Company-level attribution | 🟡→🔴 | Credit content touchpoints to deal revenue at account level |
9.3 Influencer & Social Proof (Sprints 47–48)
| Item | Priority | Notes |
|---|---|---|
| Influencer discovery + outreach | 🟡 | Discovery by niche/audience size/engagement rate; outreach via email + DM |
| Influencer campaign management | 🟡 | Brief → draft → approval → publish; performance tracking (CPE, reach, sales) |
| Employee advocacy module | 🟡 | Branded content library employees share to personal social accounts |
| NPS & customer satisfaction surveys | 🟡 | Trigger post-purchase or post-interaction; wire to automation enrollment |
Phase 10 — Expansion (Post Year 1)
Features that are valuable but not required for market entry or retention.
| Item | Priority | Notes |
|---|---|---|
| Incrementality testing | 🟢 | Holdout experiments; geo-split or randomised groups; true causation vs. correlation |
| Programmatic SEO | 🟢 | Template-driven pages at scale from structured data |
| Pinterest integration | 🟢 | Product pin publishing + Pinterest Analytics |
| RCS messaging | 🟢 | Rich Communication Services as WhatsApp alternative on Android |
| Webinar & event marketing | 🟢 | Zoom/Teams registration flows, attendee nurture, recording repurposing |
| YouTube content publishing | 🟢 | Wire video-script-writer.worker.ts to YouTube API for upload + metadata |
| Bing Webmaster Tools integration | 🟢 | Bing-specific rank tracking and submission |
| Tenant storage cleanup (deactivated tenants) | 🟢 | Delete Spaces files on cancellation; docs/missing-incomplete-features/tenant-storage-cleanup.md |
Summary Timeline
| Phase | Focus | Sprints | Weeks | Cumulative |
|---|---|---|---|---|
| 0 | Production stability (14 blocking issues) | 3 | 6 | 6 weeks |
| 1 | Pre-launch hardening (21 pre-launch issues) | 4 | 8 | 14 weeks |
| 2 | Core value loop completion | 3 | 6 | 20 weeks |
| 3 | Marketing automation foundation | 6 | 12 | 32 weeks |
| 4 | WhatsApp & India eCommerce | 4 | 8 | 40 weeks |
| 5 | eCommerce platform integrations | 5 | 10 | 50 weeks |
| 6 | DataForSEO SEO suite | 5 | 10 | 60 weeks |
| 7 | CDP & unified profiles | 5 | 10 | 70 weeks |
| 8 | CRO & personalisation | 5 | 10 | 80 weeks |
| 9 | Differentiators & growth loops | 8 | 16 | 96 weeks |
| 10 | Expansion | — | ongoing | Year 2+ |
Year 1 realistic scope (2 engineers): Phases 0–5, with Phase 3 (automation engine) running in parallel with Phase 4 (WhatsApp). This delivers: a stable platform, complete publish loop, WhatsApp marketing for India, Shopify integration, and basic eCommerce automation flows. Phases 6–9 slot into Year 2.
Open Decisions (Required Before Sprints)
| Decision | Required by | Options | Impact |
|---|---|---|---|
| WhatsApp BSP choice | Sprint 17 | Interakt (SMB/eComm), Kaleyra (enterprise), Gupshup (coverage) | Affects WABA approval timeline and pre-built template availability |
| eCommerce platform priority | Sprint 21 | Shopify (global), WooCommerce (India self-hosted), Dukaan (Indian SMB) | Determines which integration ships first and which eCommerce features are available first |
| DataForSEO India keyword quality | Sprint 26 | DataForSEO-only, hybrid with Semrush, SE Ranking | Determines architecture of keyword data layer |
| B2B vs. B2C client split | ASAP | B2C/eCommerce focus, B2B/agency focus, or both | Determines whether ABM is Phase 3 or Phase 9; whether deal pipeline is table-stakes |
| CRO tooling approach | Sprint 36 | Build in-house, embed Microsoft Clarity (free), integrate Hotjar/VWO via iframe | Build vs. buy decision affects sprint estimate significantly |
References:
docs/product-features/index.md·docs/missing-incomplete-features/·docs/new-features/· April 2026