Skip to Content
Leadmetrics v3 — Product Features Index

Leadmetrics v3 — Product Features Index

Last updated: April 2026
Platform: AI-driven marketing automation SaaS — pnpm monorepo
Portals: Dashboard (client, :3000) · DM Portal (reviewer, :3002) · Manage (superadmin, :3001) · Knowledgebase (docs, :3004)
Backend: Fastify API (:3003) · 5 BullMQ worker servers · Prisma/PostgreSQL · Qdrant · Typesense · Redis
Build roadmap: docs/roadmap.md — phased build plan derived from §15–§17 of this document


Status Key

SymbolMeaning
CompleteLive and verified in the running app
🔶 PartialBuilt but incomplete — specified gaps documented
🚧 In ProgressActive development (recent commits)
📋 PlannedSpecified in docs/code scaffolding, not yet built
🔴 Has Blocking IssuesExists but breaks core value or security
🟡 Has Pre-launch IssuesWorks but has known gaps needed before first real tenant

Priority markers on known issues:

  • 🔴 Blocking — required before the system delivers core value
  • 🟡 Pre-launch — needed before first real tenant
  • 🟢 Post-MVP — deferrable

Table of Contents

  1. Authentication & Onboarding
  2. Dashboard Portal — Core
  3. Dashboard Portal — Content
  4. Dashboard Portal — SEO
  5. Dashboard Portal — CRM & Campaigns
  6. Dashboard Portal — AI Features
  7. Dashboard Portal — Settings & Billing
  8. DM Portal
  9. Manage Portal
  10. AI Agent Layer
  11. Infrastructure & Platform Services
  12. Integrations & Channels
  13. Mobile App
  14. Knowledgebase App
  15. Planned & Unbuilt Features
  16. Known Issues Summary

1. Authentication & Onboarding

1.1 Dashboard Auth (JWT)

Status: ✅ Complete (Better Auth removed April 2026 — now uses Fastify JWT via @leadmetrics/middleware)

ResourcePath
Pagesapps/dashboard/src/app/(auth)/login/page.tsx · (auth)/forgot-password/ · (auth)/reset-password/ · (auth)/register/ · (auth)/signup/
APIapps/api/src/routers/auth.ts
Docsdocs/apps/dashboard/screens.md (A1–A3)

Email/password login · registration · password reset · tenant-scoped session via TenantMember · secure httpOnly cookies

Known gaps:

  • 🟡 Email verification: users created with emailVerified: false; no verification email, no endpoint, no access gate — docs/missing-incomplete-features/email-verification-missing.md
  • 🟡 JWT logout has no server-side revocation; stolen tokens valid until expiry — docs/missing-incomplete-features/stateless-jwt-no-revocation.md
  • 📋 Social OAuth (Google, Microsoft, LinkedIn) — buttons exist, redirect logic not implemented

1.2 Self-Signup Wizard

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(auth)/signup/page.tsx · signup/company/ · signup/location/ · signup/plan/ · signup/expired/
Docsdocs/apps/dashboard/screens.md (S1–S4) · docs/project/self-signup-flow.md

4-step signup: account → company → location → plan · searchable comboboxes · Razorpay bypass for E2E

1.3 DM Portal Auth (Custom JWT)

Status: ✅ Complete

ResourcePath
Pagesapps/dm/src/app/(auth)/login/page.tsx · (auth)/forgot-password/ · (auth)/reset-password/
Middlewareapps/dm/src/middleware.ts
Docsdocs/apps/dm-portal/screens.md (A1)

15-minute access token + refresh cookie · middleware silently refreshes · roles: reviewer, admin, super_admin

1.4 Manage Portal Auth (Custom JWT)

Status: ✅ Complete

ResourcePath
Pagesapps/manage/src/app/(auth)/login/page.tsx
Middlewareapps/manage/src/middleware.ts

Superadmin-only login · same JWT refresh pattern as DM

1.5 Onboarding Wizard

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/onboarding/page.tsx
Actionsapps/dashboard/src/app/(dashboard)/onboarding/actions.ts
Workerpackages/agents/src/workers/setup.worker.ts
Docsdocs/project/onboarding-wizard.md · docs/project/onboarding-flow.md

4-step wizard: Brand Voice → Brand Assets → Docs → Launch · completeOnboarding() triggers setup agent chain · /onboarding route gate · 32 E2E/unit/integration tests


2. Dashboard Portal — Core

2.1 Home / Dashboard (/dashboard)

Status: ✅ Complete

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/dashboard/page.tsx
APIapps/api/src/routers/tenant/main.tsGET /api/dashboard/stats
Docsdocs/apps/dashboard/screens.md (D1) · docs/project/dashboard-pipeline-stages.md

Pipeline stage detection (1/2/4/5) · GettingStartedView for stages 1–4 · RegularDashboard for stage 5+ · real-time stats · goal/activity/deliverable tiles · agent status banner

Note: Leads tile shows ”—” — leads feature not yet wired to dashboard home.

2.2 Strategy (/strategy, /strategy/deliverable-plan, /strategy/versions/[id])

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/strategy/page.tsx · strategy/deliverable-plan/page.tsx · strategy/versions/[id]/page.tsx
Actionsapps/dashboard/src/app/(dashboard)/strategy/actions.ts · strategy/deliverable-plan/actions.ts
Workerpackages/agents/src/workers/strategy.worker.ts · packages/agents/src/workers/strategy-writer.worker.ts
APIapps/api/src/routers/dm/strategy.ts · apps/api/src/routers/tenant/main.ts
Docsdocs/apps/dashboard/screens.md (D2) · docs/agents/strategy-writer.md

AI-generated strategy document · MarkdownRenderer · status: draft → pending_review → approved / rejected · PDF export (cover + TOC + content + footer) · version history · right sidebar: Timeline, Details, Revise tabs · Deliverable Plan: goals, monthly deliverables, credit estimates

2.3 Client Context (/context, /context/versions/[id])

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/context/page.tsx · context/versions/[id]/page.tsx
Actionsapps/dashboard/src/app/(dashboard)/context/actions.ts
Workerpackages/agents/src/workers/content.worker.ts (context-file-writer role)
APIapps/api/src/routers/dm/context.ts
Docsdocs/apps/dashboard/screens.md (D9) · docs/project/client-context-page.md

AI-generated client context doc · full-pipeline revision trigger · cycle filtering · version numbering · PDF export · ? help icon

2.4 Goals (/goals, /goals/archived)

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/goals/page.tsx · goals/archived/page.tsx
APIapps/api/src/routers/admin/goals.ts · apps/api/src/routers/dm/strategy.ts
Docsdocs/apps/dashboard/screens.md (D3, D3b) · docs/project/goals-page.md

Goals from latest approved DeliverablePlan only · stat cards: Total, Ahead, On Track · progress bars · archived goals accordion

2.5 Deliverables (/deliverables)

Status: ✅ Complete

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/deliverables/page.tsx
Docsdocs/apps/dashboard/screens.md (D5) · docs/project/deliverables-page.md

Period picker · expandable rows with per-item deliverable cards · planning notes as plain prose · 4-status flow: pending_review → dm_approved → approved → archived

2.6 Activities (/activities, /activities/[id], /activities/history)

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/activities/page.tsx · activities/[id]/page.tsx · activities/history/page.tsx
Actionsapps/dashboard/src/app/(dashboard)/activities/[id]/actions.ts
Workerpackages/agents/src/workers/activity.worker.ts
APIapps/api/src/routers/dm/activities.ts
Docsdocs/apps/dashboard/screens.md (D6) · docs/project/activities-multiview.md · docs/project/activity-detail-page.md

4 views: list / grouped / calendar / kanban · URL-persisted state · cursor pagination · dueDate throughout · ContentPreviewCard per type · “Add Activity” button for manual tasks · force-remount with key={listKey}

2.7 Content Calendar (/calendar)

Status: ✅ Complete

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/calendar/page.tsx
Componentpackages/ui/src/ContentCalendar.tsx
APIapps/api/src/routers/calendar.ts
Docsdocs/apps/dashboard/screens.md (D8) · docs/project/calendar-page.md · docs/project/content-calendar-component.md

react-big-calendar · left sidebar checkbox filters (type + platform) · floating popup with type-specific previews · blog, social, newsletter events · accessible via topbar CalendarDays icon

2.8 Channels (/channels, /channels/[id])

Status: 🔶 Partial

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/channels/page.tsx · channels/[id]/page.tsx
APIapps/api/src/routers/channels.ts · apps/api/src/routers/channel-connect.ts
Providerspackages/providers/google/ · packages/providers/meta/ · packages/providers/linkedin/
Docsdocs/apps/dashboard/screens.md (D7, D7b) · docs/project/linkedin-oauth-channels.md

Channel list · 8 channel types (GA, GSC, LinkedIn, Facebook, Instagram, GBP, Google Ads, Meta Ads) · channel detail with Insights tab · LinkedIn OAuth (CORS null-origin fix, v202504 API)

Known gaps:

  • 🔴 Twitter/X and Zoho channel detail pages fall through to NotImplementedDetail placeholder — docs/missing-incomplete-features/twitter-zoho-channel-detail-pages.md
  • 🔴 Connected channels list hardcoded to ["facebook","linkedin","instagram"] in deliverable planner — docs/missing-incomplete-features/hardcoded-connected-channels.md
  • 🟡 No OAuth token key rotation for AES-256-GCM encryption — docs/missing-incomplete-features/oauth-token-key-rotation.md

2.9 Insights (/insights, /insights/[insightId])

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/insights/page.tsx · insights/[insightId]/page.tsx
Workerspackages/agents/src/workers/insights/ga-insights.worker.ts · gsc-insights.worker.ts · gbp-insights.worker.ts · google-ads-insights.worker.ts · meta-ads-insights.worker.ts · facebook-insights.worker.ts · instagram-insights.worker.ts · linkedin-insights.worker.ts
Basepackages/agents/src/workers/insights/insight-worker-base.ts
APIapps/api/src/routers/insights.ts · apps/api/src/routers/tenant/main.ts/tenant/v1/insights
Docsdocs/apps/dashboard/screens.md (D7, I1–I3) · docs/project/insights-feature.md

ChannelInsight model · 8 BullMQ workers · insight list + detail · Insights tab on 6 channel detail pages · 46 tests passing (April 2026)

2.10 Reports (/reports, /reports/detail/[id])

Status: 🔶 Partial

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/reports/page.tsx · reports/detail/[id]/page.tsx
Workerspackages/agents/src/workers/custom-report-writer.worker.ts · packages/agents/src/workers/report-writer.worker.ts
APIapps/api/src/routers/dm/reports.ts
Docsdocs/apps/dashboard/screens.md (D8) · docs/project/reports-feature.md · docs/agents/report-writer.md

3 sources: agent-generated / DM upload / AI-generated via custom-report-writer · generate modal in dashboard + DM · AI Chat tool integration

Known gaps:

  • 🟡 Full client-facing report viewer incomplete — docs/missing-incomplete-features/performance-reporting-dashboard.md
  • 🟡 Push to Slack, Notion, Google Drive — not built — docs/missing-incomplete-features/report-delivery-integrations.md

2.11 Notifications

Status: 🔴 Has Blocking Issues

ResourcePath
Componentspackages/ui/src/ (notification dropdown)
Serverapps/servers/notifications/src/
APIapps/api/src/routers/admin/notifications.ts
Docsdocs/project/notification-dropdown.md · docs/project/notifications-arch.md

Notification dropdown in all 3 portals · Dashboard: Socket.IO real-time · DM: activeTenantId prop + tenant:join emit · Manage: REST polling

Known gap:

  • 🔴 Notifications server publishes to a non-existent HTTP hub instead of Redis Pub/Sub — bell badge never updates — docs/missing-incomplete-features/notification-hub-sse-service.md

2.12 Peer-to-Peer Chat

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/... · apps/dm/src/app/(dm)/chat/page.tsx · apps/manage/src/app/(manage)/chat/page.tsx
Componentpackages/ui/src/chat/ChatProvider.tsx
Docsdocs/project/chat-feature.md

Socket.IO · sound / dark mode / offline display · shared in packages/ui · duplicated per app


3. Dashboard Portal — Content

3.1 Blog Posts (/blog, /blog/[id])

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/blog/page.tsx · blog/[id]/page.tsx
Actionsapps/dashboard/src/app/(dashboard)/blog/actions.ts
Workerpackages/agents/src/workers/blog-writer.worker.ts · packages/agents/src/workers/blog-faq-writer.worker.ts · packages/agents/src/workers/seo-optimizer.worker.ts
APIapps/api/src/routers/blog.ts · apps/api/src/routers/dm/blog.ts · apps/api/src/routers/admin/content.ts
Docsdocs/apps/dashboard/screens.md · docs/project/blog-flow.md · docs/agents/blog-writer.md · docs/project/seo-optimizer-feature.md

Status: draft → dm_review → client_review → client_approved · rejection re-run · RAG auto-ingest on approval · generate from ContentBrief · SEO score + AI suggestions via seo-optimizer (BlogPost.seoScore, seoAnalysis fields)

3.2 Social Posts (/social, /social/[id])

Status: 🔶 Partial

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/social/page.tsx · social/[id]/page.tsx
Actionsapps/dashboard/src/app/(dashboard)/social/actions.ts
Workerspackages/agents/src/workers/social-post-writer.worker.ts · packages/agents/src/workers/social-post-designer.worker.ts · packages/agents/src/workers/gbp-post-writer.worker.ts
APIapps/api/src/routers/social.ts · apps/api/src/routers/dm/social.ts
Providerspackages/providers/meta/ · packages/providers/linkedin/ · packages/providers/openai-images/
Docsdocs/apps/dashboard/screens.md · docs/project/social-post-pipeline.md · docs/agents/social-post-writer.md · docs/project/platform-post-preview.md

Status: draft → dm_review → design_pending → client_review → client_approved → publishing · GPT Image 1.5 via Azure · GBP posts skip design phase · per-platform mockup previews · RAG auto-ingest on approval

Known gaps:

  • 🔴 Facebook/Instagram/LinkedIn providers built but no worker publishes posts after approval — docs/missing-incomplete-features/social-post-platform-publishing.md
  • 🟡 TikTok API provider not built — docs/missing-incomplete-features/tiktok-publishing.md

3.3 Landing Pages (/landing-pages, /landing-pages/[id])

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/landing-pages/page.tsx · landing-pages/[id]/page.tsx
Actionsapps/dashboard/src/app/(dashboard)/landing-pages/actions.ts
Workerpackages/agents/src/workers/landing-page-writer.worker.ts
APIapps/api/src/routers/landing-pages.ts · apps/api/src/routers/dm/landing-pages.ts
Commonpackages/common/src/landing-page-html.ts
Providerpackages/providers/wordpress/ (built, not wired for auto-publish)
Docsdocs/apps/dashboard/screens.md · docs/agents/landing-page-writer.md

landing-page-writer BullMQ worker · detail page with preview and approve/reject

Known gap: CMS auto-publish (WordPress/Webflow) not wired — docs/missing-incomplete-features/cms-publishing.md

3.4 Newsletters (/newsletters, /newsletters/[id])

Status: 🔶 Partial

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/newsletters/page.tsx · newsletters/[id]/page.tsx
Actionsapps/dashboard/src/app/(dashboard)/newsletters/[id]/actions.ts
Workerpackages/agents/src/workers/newsletter-sender.worker.ts · packages/agents/src/workers/email-writer.worker.ts
APIapps/api/src/routers/newsletters.ts · apps/api/src/routers/dm/newsletters.ts
Providerpackages/providers/sendgrid/ · packages/providers/ses/ · packages/providers/smtp/
Docsdocs/apps/dashboard/screens.md · docs/project/newsletter-feature.md · docs/agents/email-writer.md

EmailNewsletter model · status: draft → dm_review → approved → sending → sent · list + calendar toggle (orange tiles) · Resend-based delivery · unsubscribe via token

Known gaps:

  • 🔴 Mailchimp & Klaviyo send after newsletter approval — not built — docs/missing-incomplete-features/email-newsletter-delivery.md

3.5 Media Library (/media)

Status: ✅ Complete

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/media/page.tsx
APIapps/api/src/routers/media.ts · apps/api/src/routers/media-library.ts · apps/api/src/routers/dm/media.ts
Providerpackages/providers/spaces/ · packages/providers/unsplash/ · packages/providers/pixabay/
Docsdocs/apps/dashboard/screens.md · docs/providers/aws-s3.md

Brand images/logos per tenant in DigitalOcean Spaces · upload/delete · asset picker for social post designer · Unsplash/Pixabay stock image providers integrated

Known gap:

  • 🟡 No antivirus scan or magic-byte validation on uploads — docs/missing-incomplete-features/document-security-scanning.md

3.6 Content Briefs (/content-briefs, /content-briefs/[id])

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/content-briefs/page.tsx · content-briefs/[id]/page.tsx
Actionsapps/dashboard/src/app/(dashboard)/content-briefs/actions.ts
Workerpackages/agents/src/workers/content-brief-writer.worker.ts
APIapps/api/src/routers/dm/content-briefs.ts
Componentpackages/ui/src/ContentBriefCard.tsx
Docsdocs/apps/dashboard/screens.md · docs/project/content-briefs.md · docs/agents/content-brief-writer.md

ContentBrief model · keyword auto-link on create · generate blog from brief (⋯ menu) · preview card on activity detail


4. Dashboard Portal — SEO

4.1 Keywords (/seo/keywords)

Status: ✅ Complete

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/seo/keywords/page.tsx
Actionsapps/dashboard/src/app/(dashboard)/seo/keywords/actions.ts
Workerpackages/agents/src/workers/keyword-researcher.worker.ts
APIapps/api/src/routers/dm/keywords.ts
Docsdocs/project/keywords-feature.md · docs/agents/keyword-researcher.md

Keyword model · sources: agent / manual / content_brief · add/edit/delete · auto-created from content briefs · findFirst + create pattern

4.2 Keyword Groups (/seo/keyword-groups, /seo/keyword-groups/[id])

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/seo/keyword-groups/page.tsx · seo/keyword-groups/[id]/page.tsx
APIapps/api/src/routers/dm/keywords.ts
Docsdocs/project/keywords-feature.md

KeywordGroup / KeywordGroupItem models · approval flow: pending_review → approved (DM approves) · add/remove keywords

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/seo/backlinks/page.tsx · seo/backlinks/[id]/page.tsx
Workerspackages/agents/src/workers/backlink-researcher.worker.ts · packages/agents/src/workers/website-crawler.worker.ts · packages/agents/src/workers/backlink-outreach-writer.worker.ts
Utilspackages/agents/src/workers/backlink-researcher.utils.ts · website-crawler.utils.ts
Docsdocs/project/backlink-pipeline.md · docs/agents/backlink-researcher.md · docs/agents/backlink-outreach-writer.md

3-agent pipeline: researcher → crawler → writer · backlink prospect table with search/status filter · 5-step timeline on detail · editable status/notes · campaign + email cards · dashboard: read-only; DM: editable

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/seo/link-building/page.tsx · seo/link-building/[id]/page.tsx · seo/link-building/[id]/emails/[emailId]/edit/page.tsx
Actionsapps/dashboard/src/app/(dashboard)/seo/link-building/[id]/emails/[emailId]/edit/actions.ts
Workerpackages/agents/src/workers/seo-outreach-optimizer.worker.ts
Docsdocs/project/backlink-pipeline.md

Outreach campaigns linked to backlink prospects · email editing/sending · per-prospect email history

4.5 SEO Optimizer (Blog SEO Scoring)

Status: 🚧 In Progress

ResourcePath
Workerpackages/agents/src/workers/seo-optimizer.worker.ts
DB fieldsBlogPost.seoScore · BlogPost.seoAnalysis
Docsdocs/project/seo-optimizer-feature.md

10-dimension SEO score + AI suggestions per blog post · auto-runs after blog generation

Note: GEO/AEO dashboard portion (/ai-search) is in progress — see §6.2

4.6 Search Term Classifier

Status: ✅ Complete (worker) / 📋 No dedicated UI

ResourcePath
Workerpackages/agents/src/workers/search-term-classifier.worker.ts
Jobpackages/agents/src/workers/jobs/gsc-keywords-snapshot.job.ts
Testspackages/agents/src/workers/__tests__/search-term-classifier.test.ts · gsc-keywords-snapshot.test.ts

Classifies GSC search terms · snapshot job for keyword tracking · no dedicated dashboard page


5. Dashboard Portal — CRM & Campaigns

5.1 Leads (/leads)

Status: 🔶 Partial

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/leads/page.tsx
APIapps/api/src/routers/leads.ts
Docsdocs/apps/dashboard/screens.md (D4)

Mini CRM · 4 stat tiles (Monthly, Total, Qualified, Conversion Rate) · leads table with status/source/spam tabs · Lead model in DB

Note: Lead capture integrations (website forms, paid ads, WhatsApp) not yet wired; no active ingestion pipeline.

Post-MVP gaps:

  • 🟢 Lead scoring model + automated nurture sequences — docs/missing-incomplete-features/lead-scoring-nurture.md

5.2 Contacts (/contacts, /contacts/[id], /contacts/lists)

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/contacts/page.tsx · contacts/[id]/page.tsx · contacts/new/page.tsx · contacts/lists/page.tsx · contacts/lists/[id]/page.tsx
Actionscontacts/[id]/actions.ts · contacts/new/actions.ts · contacts/lists/actions.ts
APIapps/api/src/routers/dm/contacts.ts
Docsdocs/apps/dashboard/screens.md

Contact and contact list models · create/view/edit contacts · contact list membership management · unsubscribe token on Contact

5.3 Campaigns (/campaigns, /campaigns/[id], /campaigns/analytics)

Status: 🔶 Partial

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/campaigns/page.tsx · campaigns/[id]/page.tsx · campaigns/new/page.tsx · campaigns/analytics/page.tsx
Workerspackages/agents/src/workers/campaign-brief-writer.worker.ts · packages/agents/src/workers/campaign-optimizer-runner.worker.ts · packages/agents/src/workers/review-campaign-writer.worker.ts · packages/agents/src/workers/review-campaign-optimizer.worker.ts
APIapps/api/src/routers/campaigns.ts · apps/api/src/routers/dm/campaigns.ts
Docsdocs/apps/dashboard/screens.md

Campaign model linked to activities · create/view/analytics page · 5 campaign types defined

Known gaps:

  • 🔴 Campaign orchestration (decompose brief → delegate to sub-workers → synthesise) — docs/missing-incomplete-features/campaign-orchestration.md
  • 🟢 A/B variant generation for Google RSA and Meta ads — docs/missing-incomplete-features/a-b-ad-variants.md

6. Dashboard Portal — AI Features

6.1 AI Chat (/ai-chat/chat)

Status: 🔶 Partial

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/ai-chat/page.tsx
Componentspackages/ui/src/ai-chat/AiChatClient.tsx · ChatInput.tsx · ChatMain.tsx · MessageBubble.tsx · ThreadSidebar.tsx · ToolCallIndicator.tsx · WelcomeScreen.tsx · useChatStream.ts
APIapps/api/src/routers/ai-chat.ts
Docsdocs/project/agent-chat.md · docs/project/langgraph-ts-build.md

Phases 1+2+5 live · LangChain + LangGraph supervisor · JWT auth · thread ID architecture · streaming via SSE · analytics + RAG search tools wired

Known gaps:

  • 🟡 Executor subagent: orchestrator references it but only analytics wired; 16 tools not built — docs/missing-incomplete-features/ai-chat-executor-subagent.md
  • 🟡 No token counting, history trimming, or context window management — docs/missing-incomplete-features/ai-chat-token-management.md

Status: 🚧 In Progress

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/ai-search/page.tsx · ai-search/prompts/page.tsx · ai-search/settings/page.tsx · ai-search/history/page.tsx · ai-search/competitors/page.tsx
Actionsapps/dashboard/src/app/(dashboard)/ai-search/actions.ts
Workerspackages/agents/src/workers/ai-visibility-seeder.worker.ts · packages/agents/src/workers/ai-visibility-monitor.worker.ts
APIapps/api/src/routers/ai-visibility.ts · apps/api/src/routers/competitors.ts
Docsdocs/project/ai-visibility-feature.md · docs/project/seo-optimizer-feature.md · docs/new-features/ai-seo-optimization-aeo-geo.md

Phase 1 complete: Competitor model seeded · 4 workers built · /settings/competitors live · GEO dashboard in progress

6.3 Content Repurposing (/analytics/repurposing)

Status: 🔶 Partial

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/analytics/repurposing/page.tsx
Workerpackages/agents/src/workers/content-repurposer.worker.ts
Manageapps/manage/src/app/(manage)/templates/repurposing/
Docsdocs/agents/content-repurposer.md · docs/new-features/content-repurposing.md

content-repurposer worker · repurposing templates in Manage · analytics page · no end-to-end trigger UI yet


7. Dashboard Portal — Settings & Billing

7.1 Profile (/settings/profile)

Status: ✅ Complete

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/settings/profile/page.tsx

7.2 Users (/settings/users)

Status: ✅ Complete

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/settings/users/page.tsx
Docsdocs/apps/dashboard/screens.md

7.3 Agent Settings (/settings/agents, /settings/agents/[agentId])

Status: ✅ Complete

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/settings/agents/page.tsx · settings/agents/[agentId]/page.tsx
Docsdocs/project/adapter-selection.md

Per-tenant agent enable/disable · model override · tenantAgentConfig table

7.4 Brand Voice (/settings/brand-voice)

Status: 🔶 Partial

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/settings/brand-voice/page.tsx
APIapps/api/src/routers/brand-voice.ts
Docsdocs/new-features/brand-voice-scoring.md

Brand voice config UI complete · context regeneration not triggered on brand voice update (TODO at brand-voice.ts:130)

7.5 Competitors (/settings/competitors)

Status: ✅ Complete

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/settings/competitors/page.tsx
APIapps/api/src/routers/competitors.ts

7.6 Usage & Costs (/usage, /costs, /transactions)

Status: 🔶 Partial

ResourcePath
Pagesapps/dashboard/src/app/(dashboard)/usage/page.tsx · costs/page.tsx
Packagepackages/billing/src/credits.ts · credit-rates.ts · credit-reset.ts · credit-topup.ts
APIapps/api/src/routers/tenant/billing.ts · apps/api/src/routers/tenant/credits.ts · apps/api/src/routers/dm/costs.ts · apps/api/src/routers/dm/credits.ts
Docsdocs/project/credits-billing.md · docs/missing-incomplete-features/cost-dashboard.md

@leadmetrics/billing package · 26 credit types · all 26 agents wired · /usage + /costs screens

Known gaps:

  • 🟡 Cost dashboard graphs not fully rendered — docs/missing-incomplete-features/cost-dashboard.md
  • 🔴 Free plan not defined or seeded; unsubscribed tenants get Starter indefinitely — docs/missing-incomplete-features/free-plan-limits.md
  • 🔴 Overage billing when plan cap exceeded — not built — docs/missing-incomplete-features/overage-billing.md
  • 🔴 reserveCredits() race condition: no row lock → double-spend possible — docs/missing-incomplete-features/credit-race-condition.md
  • 🟡 Subscription cancellation: status-only; no freeze, credit lock, or notification — docs/missing-incomplete-features/subscription-cancellation-cleanup.md
  • 🟡 Payment failure webhook: updates invoice JSON but doesn’t notify tenant — docs/missing-incomplete-features/payment-failed-no-notification.md

7.7 Audit Log (/audit-log)

Status: ✅ Complete

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/audit-log/page.tsx
APIapps/api/src/routers/admin/audit.ts

MongoDB-backed · cross-tenant in Manage · tenant-scoped in Dashboard/DM

7.8 Business Info (/client-info)

Status: ✅ Complete

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/client-info/page.tsx

7.9 Docs Upload (/docs)

Status: ✅ Complete

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/docs/page.tsx
APIapps/api/src/routers/docs.ts · apps/api/src/routers/knowledge.ts
Workerpackages/agents/src/workers/rag-ingestion.worker.ts
Docsdocs/project/rag-pipeline.md · docs/features/rag-architecture.md · docs/features/rag-integration.md

Document upload for RAG ingestion · Docling extraction pipeline

7.10 Notifications Settings (/settings/notifications)

Status: ✅ Complete

ResourcePath
Pageapps/dashboard/src/app/(dashboard)/settings/notifications/page.tsx

7.11 Help Center (/help + 24 topic pages)

Status: ✅ Complete

ResourcePath
Componentpackages/ui/src/HelpCenter.tsx · packages/ui/src/HelpPage.tsx
Pagesapps/dashboard/src/app/(dashboard)/help/page.tsx + 24 topic pages
Typespackages/common/src/help-types.ts
Docsdocs/project/help-pages.md

8. DM Portal

8.1 Mission Control (/overview)

Status: ✅ Completeapps/dm/src/app/(dm)/overview/page.tsx · docs/apps/dm-portal/screens.md (P1)

Stat cards + pending approvals (max 10) + running agents (max 10) · polls every 60s

8.2 Activities (/activities, /activities/history)

Status: ✅ Completeapps/dm/src/app/(dm)/activities/page.tsx · activities/history/page.tsx · docs/apps/dm-portal/screens.md (P2)

4 views: list / grouped / calendar / kanban · API: apps/api/src/routers/dm/activities.ts

8.3 Activity Detail (/activities/[id])

Status: 📋 Plannedapps/dm/src/app/(dm)/activities/[id]/page.tsx · docs/apps/dm-portal/screens.md (P3) · docs/missing-incomplete-features/real-time-agent-status.md

Route exists · live SSE streaming from agent not yet built

8.4 Approvals Queue (/approvals)

Status: ✅ Completeapps/dm/src/app/(dm)/approvals/page.tsx · docs/apps/dm-portal/screens.md (P4)

Unified blog + social dm_review queue · type filter tabs

8.5 Blog Review (/blog, /blog/[id])

Status: ✅ Completeapps/dm/src/app/(dm)/blog/page.tsx · blog/[id]/page.tsx · API: apps/api/src/routers/dm/blog.ts

8.6 Social Posts (/social, /social/[id])

Status: ✅ Completeapps/dm/src/app/(dm)/social/page.tsx · social/[id]/page.tsx · API: apps/api/src/routers/dm/social.ts

List/calendar toggle · violet tiles · approve (advances to design_pending)

8.7 Landing Pages (/landing-pages, /landing-pages/[id])

Status: ✅ Completeapps/dm/src/app/(dm)/landing-pages/page.tsx · landing-pages/[id]/page.tsx · API: apps/api/src/routers/dm/landing-pages.ts

8.8 Newsletters (/newsletters, /newsletters/[id])

Status: ✅ Completeapps/dm/src/app/(dm)/newsletters/page.tsx · newsletters/[id]/page.tsx · API: apps/api/src/routers/dm/newsletters.ts

8.9 Agent Monitoring (/agents, /agents/[agentId])

Status: ✅ Completeapps/dm/src/app/(dm)/agents/page.tsx · agents/[agentId]/page.tsx · API: apps/api/src/routers/dm/agents.ts

Cross-tenant grid with Socket.IO · per-agent detail: milestones + activities scoped to active tenant · docs/project/agent-run-stats.md

8.10 Context (/context)

Status: ✅ Completeapps/dm/src/app/(dm)/context/page.tsx · API: apps/api/src/routers/dm/context.ts

Read-only · DM can request revision · cannot approve

8.11 Strategy (/strategy, /strategy/deliverable-plan)

Status: ✅ Completeapps/dm/src/app/(dm)/strategy/page.tsx · strategy/deliverable-plan/page.tsx · API: apps/api/src/routers/dm/strategy.ts

Status dropdown: draft / pending_review / rejected only (DM cannot approve)

8.12 Goals (/goals, /goals/archived)

Status: ✅ Completeapps/dm/src/app/(dm)/goals/page.tsx · goals/archived/page.tsx

8.13 Deliverables (/deliverables)

Status: ✅ Completeapps/dm/src/app/(dm)/deliverables/page.tsx

8.14 Activity Log (/activity-log)

Status: ✅ Completeapps/dm/src/app/(dm)/activity-log/page.tsx

Read-only timeline · last 100 entries

8.15 Content Calendar (/calendar)

Status: ✅ Completeapps/dm/src/app/(dm)/calendar/page.tsx · component: packages/ui/src/ContentCalendar.tsx

Read-only · no approve button · topbar icon only

Status: ✅ Complete

apps/dm/src/app/(dm)/seo/ — keywords, keyword-groups/[id], backlinks/[id], link-building/[id] · API: apps/api/src/routers/dm/keywords.ts

8.17 Content Briefs

Status: ✅ Completeapps/dm/src/app/(dm)/content-briefs/ · API: apps/api/src/routers/dm/content-briefs.ts

8.18 Media Library

Status: ✅ Completeapps/dm/src/app/(dm)/media/page.tsx · API: apps/api/src/routers/dm/media.ts

8.19 Reports (/reports, /reports/[id])

Status: 🔶 Partial (unverified against running app) — apps/dm/src/app/(dm)/reports/ · API: apps/api/src/routers/dm/reports.ts

8.20 Contacts (/contacts, /contacts/lists)

Status: ✅ Completeapps/dm/src/app/(dm)/contacts/ · API: apps/api/src/routers/dm/contacts.ts

8.21 Billing (/billing/costs, /billing/usage, /billing/transactions)

Status: 🔶 Partialapps/dm/src/app/(dm)/billing/ · API: apps/api/src/routers/dm/costs.ts · apps/api/src/routers/dm/credits.ts

Pages exist; tied to same billing gaps as dashboard (§7.6)

8.22 Users, Profile, Chat

Status: ✅ Completeapps/dm/src/app/(dm)/users/page.tsx · profile/page.tsx · chat/page.tsx

8.23 Help Center (/help + 18 topic pages)

Status: ✅ Completeapps/dm/src/app/(dm)/help/ · component: packages/ui/src/HelpCenter.tsx


9. Manage Portal

9.1 Overview (/overview)

Status: 📋 Plannedapps/manage/src/app/(manage)/overview/page.tsx · docs/apps/manage/screens.md (M1)

Real-time platform pulse: agent activity, LLM spend, queue health — page route exists but content not built

9.2 Tenants (/tenants, /tenants/[tenantId])

Status: ✅ Complete

ResourcePath
Pagesapps/manage/src/app/(manage)/tenants/page.tsx · tenants/create/ · tenants/[tenantId]/page.tsx · tenants/[tenantId]/datasets/[datasetId]/page.tsx
Actionstenants/[tenantId]/actions.ts · tenants/create/actions.ts
APIapps/api/src/routers/admin/tenants.ts
Docsdocs/apps/manage/screens.md (M2, M3) · docs/project/manage-tenant-detail.md · docs/project/tenant-lifecycle.md

Tenant list · create form · tenant detail: 13-tab vertical sidebar (Progress, Pipeline, Context, Strategy, Subscriptions, Invoices, Activities, Goals, Users, Deliverables, Audit Logs, Credits & LLM, Settings) · pocPhone/country/currency fields

Planned tabs (not yet built): Config (plan, feature flags, spending limits) · Agents (per-tenant overrides) · Knowledge Base (dataset summary, re-index)

9.3 Users (/users)

Status: ✅ Completeapps/manage/src/app/(manage)/users/ · API: apps/api/src/routers/admin/users.ts

9.4 Agents (/agents, /agents/[agentId])

Status: ✅ Complete

ResourcePath
Pagesapps/manage/src/app/(manage)/agents/page.tsx · agents/[agentId]/page.tsx · agents/[agentId]/edit/ · agents/[agentId]/runs/ · agents/[agentId]/runs/[runId]/
APIapps/api/src/routers/admin/agents.ts
Docsdocs/project/agent-analytics.md · docs/project/agent-run-stats.md

Master agent config · analytics tab (period selector, adapter/model breakdown, top agents table) · run history + individual run detail · skill mapping

9.5 Skills (/skills)

Status: ✅ Complete

ResourcePath
Pagesapps/manage/src/app/(manage)/skills/page.tsx · skills/new/ · skills/[skillId]/ · skills/[skillId]/edit/
APIapps/api/src/routers/admin/...
Docsdocs/project/skills-architecture.md · docs/features/skills-system.md

Skill + AgentSkill DB models · createSkillsDir() · 15 seeded platform skills · 28 agent mappings · list/create/edit/archive

9.6 Plans (/plans, /plans/[planId])

Status: ✅ Completeapps/manage/src/app/(manage)/plans/ · docs/apps/manage/screens.md

9.7 Invoices (/invoices)

Status: ✅ Complete

ResourcePath
Pagesapps/manage/src/app/(manage)/invoices/page.tsx · invoices/create/ · invoices/[invoiceId]/ · invoices/[invoiceId]/edit/
Actionsinvoices/actions.ts · invoices/[invoiceId]/actions.ts · invoices/create/actions.ts
APIapps/api/src/routers/admin/billing.ts
Commonpackages/common/src/invoice.ts
Docsdocs/project/tenant-lifecycle.md

draft → issued flow · GST/PAN/SEZ fields · Zoho sync · TDS 2%

9.8 Email Templates (/templates/email)

Status: ✅ Completeapps/manage/src/app/(manage)/templates/email/ · API: apps/api/src/routers/admin/templates.ts

51 email templates in dev seed

9.9 Telegram Templates (/templates/telegram)

Status: ✅ Completeapps/manage/src/app/(manage)/templates/telegram/page.tsx

9.10 Repurposing Templates (/templates/repurposing)

Status: 🚧 In Progressapps/manage/src/app/(manage)/templates/repurposing/ (actions updated April 2026)

9.11 Blog Posts (/blog-posts)

Status: ✅ Completeapps/manage/src/app/(manage)/blog-posts/ · API: apps/api/src/routers/admin/content.ts

Cross-tenant blog review · multi-status tabs · detail panel

9.12 Social Posts (/social-posts)

Status: ✅ Completeapps/manage/src/app/(manage)/social-posts/

9.13 Push Notifications (/push-notifications)

Status: ✅ Completeapps/manage/src/app/(manage)/push-notifications/page.tsx · API: apps/api/src/routers/admin/push.ts

Firebase FCM · PushDeviceToken model · broadcast + tenant notify UI

9.14 Audit Logs (/audit-logs)

Status: ✅ Completeapps/manage/src/app/(manage)/audit-logs/page.tsx · API: apps/api/src/routers/admin/audit.ts

9.15 RAG Config (/system/rag-config)

Status: ✅ Completeapps/manage/src/app/(manage)/system/rag-config/page.tsx · API: apps/api/src/routers/rag-config.ts

9.16 Usage, Costs, Transactions

Status: 🔶 Partialapps/manage/src/app/(manage)/usage/ · costs/ · transactions/ · API: apps/api/src/routers/admin/billing.ts

Pages exist; tied to same billing gaps as dashboard (§7.6)

9.17 LLM Providers (/providers)

Status: 📋 Planneddocs/apps/manage/screens.md (M9)

Provider health · rate limits · model availability — not yet built

9.18 System Health (/system)

Status: 📋 Planneddocs/apps/manage/screens.md (M15)

Service status · queue depths · DB metrics · recent errors — not yet built

9.19 Queue Monitoring UI

Status: 📋 Planneddocs/missing-incomplete-features/queue-monitoring-ui.md

Cross-tenant BullMQ queue visibility — 🟢 Post-MVP

9.20 Help Center (/help + 15 topic pages)

Status: ✅ Completeapps/manage/src/app/(manage)/help/ · component: packages/ui/src/HelpCenter.tsx


10. AI Agent Layer

10.1 Setup Chain (Onboarding)

Status: ✅ Complete

Workers: packages/agents/src/workers/setup.worker.tscontent.worker.ts (client-researcher → competitor → context-file-writer)
Triggered by: completeOnboarding() in apps/dashboard/src/app/(dashboard)/onboarding/actions.ts
Docs: docs/project/onboarding-flow.md

10.2 Strategy Pipeline

Status: ✅ Complete

Workers: strategy.worker.tsstrategy-writer.worker.tsactivity.worker.tssocial-calendar-planner.worker.ts
API: apps/api/src/routers/dm/strategy.ts
Docs: docs/agents/strategy-writer.md · docs/features/agent-execution-engine.md

10.3 Blog Pipeline

Status: ✅ Complete

Workers: content.worker.ts (activity-planner) → blog-writer.worker.ts → (dm_review) → (client_review) → (client_approved)
Workers also: blog-faq-writer.worker.ts · seo-optimizer.worker.ts
Docs: docs/project/blog-flow.md · docs/agents/blog-writer.md

10.4 Social Post Pipeline

Status: 🔶 Partial

Workers: social-post-writer.worker.tssocial-post-designer.worker.ts (image) → (client_review)
Also: gbp-post-writer.worker.ts · social-calendar-planner.worker.ts
Provider: packages/providers/openai-images/ (GPT Image 1.5 via Azure)
Docs: docs/project/social-post-pipeline.md · docs/agents/social-post-writer.md

Gap: Posts never auto-publish (§3.2)

10.5 Landing Page Pipeline

Status: ✅ Complete

Worker: landing-page-writer.worker.ts
Docs: docs/agents/landing-page-writer.md

Gap: CMS auto-publish not wired (§15.1)

10.6 Newsletter / Email Pipeline

Status: 🔶 Partial

Workers: email-writer.worker.ts · newsletter-sender.worker.ts
Docs: docs/agents/email-writer.md

Gap: Mailchimp/Klaviyo delivery not built (§3.4)

10.7 Keyword Research

Status: ✅ Complete

Worker: keyword-researcher.worker.ts
Job: jobs/gsc-keywords-snapshot.job.ts
Docs: docs/agents/keyword-researcher.md

Status: ✅ Complete

Workers: backlink-researcher.worker.tswebsite-crawler.worker.tsbacklink-outreach-writer.worker.ts
Utils: backlink-researcher.utils.ts · website-crawler.utils.ts
Docs: docs/project/backlink-pipeline.md · docs/agents/backlink-researcher.md · docs/agents/backlink-outreach-writer.md

10.9 Insights Pipeline

Status: ✅ Complete

Workers: insights/ga-insights.worker.ts · gsc-insights.worker.ts · gbp-insights.worker.ts · google-ads-insights.worker.ts · meta-ads-insights.worker.ts · facebook-insights.worker.ts · instagram-insights.worker.ts · linkedin-insights.worker.ts
Base: insights/insight-worker-base.ts
Also: insights/brand-narrative-analyst.worker.ts
Docs: docs/project/insights-feature.md

10.10 AI Visibility / Competitor Monitoring

Status: 🚧 In Progress

Workers: ai-visibility-seeder.worker.ts · ai-visibility-monitor.worker.ts
API: apps/api/src/routers/ai-visibility.ts
Docs: docs/project/ai-visibility-feature.md · docs/new-features/ai-seo-optimization-aeo-geo.md

Phase 1 complete; GEO dashboard in progress

10.11 Reports Generation

Status: 🔶 Partial

Workers: custom-report-writer.worker.ts · report-writer.worker.ts
Docs: docs/project/reports-feature.md · docs/agents/report-writer.md

Generator UI complete; delivery integrations not built (§2.10)

10.12 Campaign Orchestration

Status: 🔴 Has Blocking Issues

Worker: campaign-brief-writer.worker.ts · campaign-optimizer-runner.worker.ts
Docs: docs/missing-incomplete-features/campaign-orchestration.md

Worker exists; orchestration logic (decompose brief → delegate to sub-workers → synthesise) incomplete

10.13 Ads Writers & Optimizers

Status: ✅ Complete (workers) / 📋 No dedicated UI trigger

Workers: google-ads-writer.worker.ts · meta-ads-writer.worker.ts · linkedin-ads-writer.worker.ts · meta-ads-optimizer.worker.ts · linkedin-ads-optimizer.worker.ts · ads-analyst.worker.ts
Providers: packages/providers/google/src/google-ads.ts · packages/providers/meta/ · packages/providers/linkedin/src/linkedin-ads.ts
Docs: docs/agents/google-ads-writer.md · docs/agents/meta-ads-writer.md

Workers built but no UI screen to trigger or review ad copy

10.14 Review Response Writer

Status: ✅ Complete (worker) / 📋 No dedicated UI

Worker: packages/agents/src/workers/review-response-writer.worker.ts
Also: review-campaign-writer.worker.ts · review-campaign-optimizer.worker.ts

Generates responses to customer reviews (Google/etc.); no dashboard UI surface

10.15 RAG / Knowledge Base

Status: 🔶 Partial

Workers: rag-ingestion.worker.ts
Providers: packages/providers/qdrant/ (vector store) · packages/providers/typesense/ (text search)
API: apps/api/src/routers/rag-config.ts · apps/api/src/routers/knowledge.ts
Docs: docs/project/rag-pipeline.md · docs/features/rag-architecture.md · docs/features/rag-integration.md

Pre-loaded datasets vs skill-scripts · role → dataset mapping · auto-ingest from API + server actions

Known gap:

  • 🟡 RAG engine starts without checking Qdrant health; no Docker healthchecks — docs/missing-incomplete-features/rag-qdrant-health-check.md

10.16 Activity Templates

Status: 🔴 Has Blocking Issues

Manage page: apps/manage/src/app/(manage)/templates/...
API: apps/api/src/routers/admin/templates.ts
Docs: docs/missing-incomplete-features/activity-templates.md

Flat list import exists; activity_templates.steps schema undefined (OQ-4)

10.17 Scheduler / Cron Jobs

Status: 🔴 Has Blocking Issues

Job: packages/agents/src/workers/jobs/gsc-keywords-snapshot.job.ts
Docs: docs/missing-incomplete-features/scheduler-missing-task-types.md

Handles only 3 signup email tasks; monthly cycle, billing cron, keyword snapshots, AI visibility monitor, anomaly check all missing

10.18 Agent Plan Gating

Status: 🔴 Has Blocking Issues

Code: apps/api/src/routers/tenant/main.ts line 55 (TODO comment)
Docs: docs/missing-incomplete-features/agent-plan-gating.md

agentsForPlan() exists but never applied to responses; all tenants see all agents regardless of plan

10.19 Real-Time Agent Status (SSE)

Status: 🔴 Has Blocking Issues

Docs: docs/missing-incomplete-features/real-time-agent-status.md · docs/features/real-time.md

BullMQ → Socket.IO bridge partially built; activity detail live SSE streaming not complete

10.20 Content Repurposing

Status: 🔶 Partial

Worker: content-repurposer.worker.ts
Docs: docs/agents/content-repurposer.md · docs/new-features/content-repurposing.md

Worker + templates in Manage; no end-to-end trigger UI yet

10.21 Audience Analyst

Status: ✅ Complete (worker) / 📋 No dedicated UI

Worker: packages/agents/src/workers/audience-analyst.worker.ts

Audience analysis for strategy generation; no standalone dashboard page

10.22 Topic Researcher

Status: ✅ Complete (worker) / 📋 No dedicated UI

Worker: packages/agents/src/workers/topic-researcher.worker.ts
Docs: docs/agents/topic-researcher.md

10.23 Research Note Writer

Status: ✅ Complete (worker) / 📋 No dedicated UI

Worker: packages/agents/src/workers/research-note-writer.worker.ts
Docs: docs/agents/research-note-writer.md

10.24 Site Auditor

Status: ✅ Complete (worker) / 📋 No dedicated UI

Worker: packages/agents/src/workers/site-auditor.worker.ts
Docs: docs/agents/site-auditor.md

Technical SEO site audit; no dashboard results page

10.25 Anomaly Detector

Status: ✅ Complete (worker) / 📋 No dedicated UI

Worker: packages/agents/src/workers/anomaly-detector.worker.ts
Docs: docs/agents/anomaly-detector.md

Detects metric anomalies; no dashboard alert surface; not in scheduler yet (§10.17)

10.26 Brand Narrative Analyst

Status: ✅ Complete (worker) / 📋 No dedicated UI

Worker: packages/agents/src/workers/insights/brand-narrative-analyst.worker.ts

10.27 GitHub Source Sync

Status: ✅ Complete

Worker: packages/agents/src/workers/github-source-sync.worker.ts
Provider: packages/providers/github/
Tests: packages/agents/src/workers/__tests__/github-source-sync.test.ts

Syncs GitHub repo content into RAG datasets

10.28 Blog Image Generator

Status: 📋 Planned — no worker file exists

Docs: docs/agents/blog-image-generator.md

Hero + inline images for blog posts via Azure GPT Image; brand-matched styles; not yet implemented (worker documented but not built)

10.29 Content Auditor

Status: 📋 Planned — no worker file exists

Docs: docs/agents/content-auditor.md

Post freshness audit · health score · refresh workflow · cannibalisation detection


11. Infrastructure & Platform Services

11.1 Global Search (Typesense)

Status: ✅ Complete — Live April 2026

ResourcePath
Providerpackages/providers/typesense/src/client.ts · collections.ts · schemas.ts (🚧 recently updated)
Workerpackages/agents/src/workers/... (search-indexer; search__sync BullMQ queue)
Componentpackages/ui/src/GlobalSearch.tsx
APIapps/api/src/routers/admin/search.ts · apps/api/src/routers/dm/search.ts
Docsdocs/project/search-feature.md

13 collections · Ctrl+K modal · tenant-filtered · 11 router files wired

11.2 Notifications Server

Status: 🔴 Has Blocking Issues

ResourcePath
Serverapps/servers/notifications/src/
Providerspackages/providers/sendgrid/ · packages/providers/ses/ · packages/providers/smtp/ · packages/providers/firebase/ · packages/providers/telegram/
APIapps/api/src/routers/admin/notifications.ts
Docsdocs/project/notifications-arch.md · docs/missing-incomplete-features/notifications-app.md

Email: DEV filter in place · SMS: stub (not_implemented, providers not built) · Push: Firebase FCM wired

Blocking gap: Publishes to non-existent HTTP hub instead of Redis Pub/Sub — docs/missing-incomplete-features/notification-hub-sse-service.md

11.3 Billing & Credits

Status: 🔴 Has Blocking Issues

ResourcePath
Packagepackages/billing/src/credits.ts · credit-rates.ts · credit-reset.ts · credit-topup.ts
Providerpackages/providers/razorpay/
APIapps/api/src/routers/tenant/billing.ts · apps/api/src/routers/tenant/credits.ts · apps/api/src/routers/admin/billing.ts
Docsdocs/project/credits-billing.md · docs/project/tenant-lifecycle.md · docs/project/multi-subscription.md

@leadmetrics/billing package · 26 credit types · all 26 agents wired · Subscription / Invoice models · Razorpay · GST/PAN/SEZ · Zoho sync · TDS 2% · multiple subs per tenant

See §7.6 for all known gaps

11.4 File Storage (DigitalOcean Spaces)

Status: ✅ Complete

Provider: packages/providers/spaces/
Config: DO_SPACES_ENDPOINT required (6 vars total); missing it silently fails designer

Post-MVP gap: Deactivated tenant files never cleaned up — docs/missing-incomplete-features/tenant-storage-cleanup.md

11.5 Real-Time (Socket.IO)

Status: ✅ Complete

Docs: docs/features/real-time.md · docs/project/chat-feature.md

/tenant namespace · per-tenant rooms · reviewer tenant:join handshake · notification events · agent progress events · peer-to-peer chat

11.6 BullMQ Queue System

Status: ✅ Complete

Docs: docs/features/task-queue-orchestration.md · docs/project/shared-queues.md

One queue per agent role (agent__{role}) · shared across tenants · tenantId in payload · timestamp IDs (dedup bug fixed April 2026) · maxStalledCount: 2 (Windows DLL cold-start fix)

11.7 LLM Adapters (Dynamic Dispatch)

Status: ✅ Complete

Worker: packages/agents/src/workers/setup.worker.ts
Docs: docs/project/adapter-selection.md · docs/providers/claude.md · docs/providers/openai.md · docs/providers/google-gemini.md · docs/providers/ollama.md

claude_local / codex_local / gemini_local · dynamic dispatch · per-tenant model override

11.8 RAG (Qdrant + Typesense)

Status: 🔶 Partial — see §10.15

ResourcePath
Providerspackages/providers/qdrant/src/client.ts · collections.ts · search.ts · packages/providers/typesense/
Docsdocs/features/rag-architecture.md · docs/features/rag-integration.md

11.9 Audit Logging (MongoDB)

Status: ✅ Complete

Provider: packages/providers/... (nosqldb)
Docs: docs/project/nosqldb-nextjs-connection.md

connectMongo() auto-called inside audit.ts (idempotent)

11.10 Agent Governance & Observability

Status: ✅ Complete

Docs: docs/features/governance-guardrails.md · docs/features/observability.md · docs/features/session-memory-management.md · docs/features/cost-usage-tracking.md


12. Integrations & Channels

IntegrationProvider PackageWorker(s)API RouterPublishStatus
Google Analyticspackages/providers/google/src/google-analytics.tsga-insightschannels.ts✅ Complete
Google Search Consolepackages/providers/google/src/google-search-console.tsgsc-insights, gsc-keywords-snapshotchannels.ts✅ Complete
Google Business Profilepackages/providers/google/src/google-business-profile.tsgbp-insights, gbp-post-writerchannels.ts🔶 Not wired🔶 Partial
Google Adspackages/providers/google/src/google-ads.tsgoogle-ads-writer, ads-analystchannels.ts🔶 No UI🔶 Partial
Bing Webmasterpackages/providers/microsoft/src/bing-webmaster.ts📋 Provider only
Meta Adspackages/providers/meta/src/meta-ads-writer, meta-ads-optimizerchannels.ts🔶 No UI🔶 Partial
Facebookpackages/providers/meta/src/facebook.tsfacebook-insightschannels.ts🔴 Not wired🔴 Issue
Instagrampackages/providers/meta/src/instagram.tsinstagram-insights, social-post-writerchannels.ts🔴 Not wired🔴 Issue
LinkedInpackages/providers/linkedin/src/linkedin.tslinkedin-insights, linkedin-ads-writerchannel-connect.ts🔴 Not wired🔴 Issue
Twitter/X📋 Placeholder only
TikTok📋 Planned
Zoho CRMpackages/providers/zoho/src/zoho-books.ts📋 Placeholder only
WordPresspackages/providers/wordpress/src/wordpress.ts— (not wired)📋 Provider only
Resend / Sendgridpackages/providers/sendgrid/ · ses/ · smtp/newsletter-sender, email-writernewsletters.ts✅ Complete
Mailchimp📋 Planned
Klaviyo📋 Planned
Slack (reports)📋 Planned
Notion (reports)📋 Planned
Google Drive (reports)📋 Planned
Firebase FCMpackages/providers/firebase/src/messaging.tsnotification-workeradmin/push.ts✅ Complete
Telegrampackages/providers/telegram/notification-workeradmin/notifications.ts✅ Complete
WhatsApppackages/providers/whatsapp/— (not wired)📋 Provider only
Razorpaypackages/providers/razorpay/tenant/billing.ts🔴 Security issue
GitHubpackages/providers/github/github-source-sync✅ Complete
Pixabaypackages/providers/pixabay/media workersmedia.ts✅ Complete
Unsplashpackages/providers/unsplash/media workersmedia.ts✅ Complete
OpenAI Imagespackages/providers/openai-images/social-post-designersocial.ts✅ Complete
Qdrantpackages/providers/qdrant/rag-ingestionknowledge.ts🔶 Partial
Typesensepackages/providers/typesense/search-indexeradmin/search.ts✅ Complete

13. Mobile App

Platform: React Native (Expo)
Target: Client/dashboard users only — DM portal remains web-only
Docs: docs/project/mobile-build-status.md · docs/project/mobile-feature-parity.md · docs/project/mobile-patterns.md · docs/project/android-emulator-setup.md

PhaseFeatureStatus
Phase 1Auth (login / logout / unlockSession)✅ Complete
Phase 1Home dashboard (pipeline stage view)✅ Complete
Phase 1Activities list & detail✅ Complete
Phase 1Goals list✅ Complete
Phase 1Strategy viewer✅ Complete
Phase 1Context viewer✅ Complete
Phase 2Blog posts list + detail✅ Complete
Phase 2Social posts list + detail✅ Complete
Phase 2Deliverables list✅ Complete
Phase 2Reports list✅ Complete
Phase 2Push notifications (FCM co-dispatch)✅ Complete
Phase 3More screens (Contacts, Channels, Insights, etc.)📋 Pending
Biometric auth (Face ID / fingerprint)📋 Planned
In-app FCM registration (live push delivery)🟢 Post-MVP — docs/missing-incomplete-features/mobile-push-notifications.md

Notes: Metro restart needed before emulator login · Android: JDK 17, 10.0.2.2 host · SSE pre-refresh, AbortController timeout, crypto.randomUUID patterns


14. Knowledgebase App

Status: 🔶 Partial

ResourcePath
Appapps/knowledgebase/
Contentdocs/ (junction)
Docsdocs/project/knowledgebase.md

Nextra v4 docs site · port 3004 · _meta.ts navigation · Google auth: 📋 pending


15. Planned & Unbuilt Features

Features that are specified in documentation or have provider/worker scaffolding but no working end-to-end implementation.

15.1 CMS Auto-Publish (WordPress / Webflow)

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/cms-publishing.md
Provider: packages/providers/wordpress/src/wordpress.ts (built, not wired)

Auto-publish to WordPress/Webflow after blog/landing page approval. Needs: blog-publisher.worker.ts, cms-connections UI in Settings, publish_pending status, republish on edit.

15.2 Social Post Auto-Publishing

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/social-post-platform-publishing.md
Providers: packages/providers/meta/ · packages/providers/linkedin/ (built, not wired)

After approval, posts must be dispatched to FB/IG/LinkedIn/GBP. Needs: social-publisher.worker.ts, platformPostId on SocialPost, token resolution, multi-image carousel, retry UI.

15.3 Email Newsletter via Mailchimp / Klaviyo

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/email-newsletter-delivery.md

Mailchimp + Klaviyo OAuth connect, campaign push, audience selector, merge tag instructions; Klaviyo campaign submit.

15.4 Campaign Orchestration Agent

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/campaign-orchestration.md
Worker (stub): packages/agents/src/workers/campaign-brief-writer.worker.ts

Campaign Strategist manager agent: decomposes brief into typed tasks, delegates to sub-workers (blog-writer, ads-writer, etc.), synthesises output. Needs: CampaignTask model, BullMQ child jobs, campaign-strategist.worker.ts.

15.5 Real-Time Agent Status (Socket.IO + BullMQ Bridge)

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/real-time-agent-status.md · docs/features/real-time.md

BullMQ → Redis Pub/Sub bridge → Socket.IO agent.progress events → Dashboard live SSE hook → activity detail streaming. DM Portal: live output panel for P3.

15.6 Activity Template Schema

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/activity-templates.md

activity_templates.steps JSON schema undefined (OQ-4). Needs: schema definition, global seed (1703 templates), tenant customisation, versioning, pipeline step resolver.

15.7 Scheduler — Missing Task Types

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/scheduler-missing-task-types.md

8 missing cron task types: deliverable.period.create, content.calendar.weekly, billing.credits.reset, billing.invoice.generate, seo.keywords.snapshot, ai.visibility.monitor, analytics.anomaly.check, campaign.optimizer.run.

15.8 Agent Plan Gating

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/agent-plan-gating.md
Code: apps/api/src/routers/tenant/main.ts:55

Apply agentsForPlan() to API responses; add execution guard in workers; add locked UI in agent settings.

15.9 Notification Hub (Redis Pub/Sub Fix)

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/notification-hub-sse-service.md

Replace HTTP hub publish with Redis Pub/Sub; wire API subscriber; connect bell badge to real-time events.

15.10 Free Plan Definition & Seeding

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/free-plan-limits.md

Free plan not in DB seed; unsubscribed tenants get Starter access indefinitely. Needs plan record, credit limits, middleware check.

15.11 Credit Race Condition Fix

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/credit-race-condition.md
Code: packages/billing/src/credits.ts

reserveCredits() needs SELECT ... FOR UPDATE or optimistic locking to prevent double-spend.

15.12 Razorpay Webhook Signature Verification

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/razorpay-webhook-signature-bypass.md
Provider: packages/providers/razorpay/

Verification skipped when RAZORPAY_WEBHOOK_SECRET unset; forged events accepted and processed.

15.13 Hardcoded Connected Channels Fix

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/hardcoded-connected-channels.md
Code: apps/api/src/routers/tenant/main.ts:268

Replace hardcoded ["facebook","linkedin","instagram"] with real DB query of OAuth channel connections.

15.14 BillingJobData Build Fix

Priority: 🔴 Blocking
Docs: docs/missing-incomplete-features/billing-type-mismatch-bug.md

BillingJobData test missing jobId + manual fields; breaks monorepo build.

15.15 Manage Platform Overview (/overview)

Priority: 🟡 Pre-launch
Docs: docs/apps/manage/screens.md (M1)

Real-time pulse: active agent runs, LLM spend (past 24h), queue depths, recent errors, slow queries.

15.16 Manage LLM Providers (/providers)

Priority: 🟡 Pre-launch
Docs: docs/apps/manage/screens.md (M9)

Provider health, rate limits, model availability, latency/cost per model.

15.17 Manage System Health (/system)

Priority: 🟡 Pre-launch
Docs: docs/apps/manage/screens.md (M15)

Service uptime, queue depths, DB metrics, recent errors, quick restart actions.

15.18 Performance Reporting Dashboard

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/performance-reporting-dashboard.md

Client-facing report viewer rendering report-writer output in structured layout; channel performance charts.

15.19 Cost Dashboard Graphs (/costs)

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/cost-dashboard.md

LLM cost charts by agent/model/day; budget alerts; export to CSV.

15.20 Report Delivery Integrations (Slack, Notion, Drive)

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/report-delivery-integrations.md

Push approved reports to Slack channels, Notion pages, Google Drive.

15.21 Twitter/X and Zoho Channel Detail Pages

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/twitter-zoho-channel-detail-pages.md

Currently fall through to NotImplementedDetail. Needs provider packages and insight workers.

15.22 TikTok Publishing

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/tiktok-publishing.md

TikTok API provider + social-post-writer TikTok path + publish worker.

15.23 GBP Post Publishing

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/gbp-publishing.md
Worker (stub): packages/agents/src/workers/gbp-post-writer.worker.ts (writes post, doesn’t publish)

Wire google-business-profile.ts provider to publish after GBP post approval.

15.24 Email Verification Flow

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/email-verification-missing.md

Verification email on registration; /auth/verify-email endpoint; restrict access until verified.

15.25 JWT Token Revocation on Logout

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/stateless-jwt-no-revocation.md

Server-side token blocklist (Redis) or refresh-token rotation to invalidate stolen tokens.

15.26 AI Chat Executor Subagent (16 tools)

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/ai-chat-executor-subagent.md

12 DM executor tools + 4 client tools (approve content, trigger agents, manage activities, etc.); orchestrator references them but only analytics is wired.

15.27 AI Chat Token Management

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/ai-chat-token-management.md

Token counting per message, sliding window history trimming, context budget management, streaming token display.

15.28 Qdrant Health Check on Startup

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/rag-qdrant-health-check.md

RAG engine should wait for Qdrant readiness; add Docker healthchecks for MongoDB/Qdrant.

15.29 Subscription Cancellation Cleanup

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/subscription-cancellation-cleanup.md

On cancellation: freeze tenant, lock credits, send notification, schedule data export.

15.30 Payment Failed Notification

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/payment-failed-no-notification.md

Payment failure webhook should update invoice status + notify tenant via email + notification.

15.31 OAuth Token Key Rotation

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/oauth-token-key-rotation.md

No key rotation process for AES-256-GCM OAuth token encryption; rotation procedure needed.

15.32 File Upload Security Scanning

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/document-security-scanning.md

No antivirus scan or magic-byte validation before Docling extraction; needed before accepting tenant uploads.

15.33 Overage Billing

Priority: 🟡 Pre-launch
Docs: docs/missing-incomplete-features/overage-billing.md

Usage-based overage charges when Pro credit cap exceeded; overage rate per credit type; invoice line items.

15.34 Brand Voice Scoring & Compliance

Priority: 🟡 Pre-launch (new feature)
Docs: docs/new-features/brand-voice-scoring.md

Structured brand voice definition (tone, personality, vocabulary use/avoid, writing style, examples) · 0–100 compliance scoring pass after every agent generation · flag off-brand content · optional brand compliance audit dashboard

15.35 Audience Personas & Personalization

Priority: 🟡 Pre-launch (new feature)
Docs: docs/new-features/audience-personas-personalization.md

AudiencePersona model (demographics, psychographics, channel preferences, buyer stage) · persona-aware content generation (inject into agent context) · auto-persona generation from CRM + GA4 data · personas page + persona selector on content creation · persona performance analytics

15.36 Content Calendar Auto-Scheduling

Priority: 🟡 Pre-launch (new feature)
Docs: docs/new-features/content-calendar-auto-scheduling.md

Analyse past channel performance → engagement heatmap per channel · auto-pick optimal posting times · scheduling rules (spacing, frequency) · scheduledAt field on posts · social.post.publish BullMQ task at scheduledAt · calendar shows green optimal slots · “Best Times” analytics page

15.37 Competitor Social Monitoring

Priority: 🟡 Pre-launch (new feature)
Docs: docs/new-features/competitor-social-monitoring.md

CompetitorSocial model (platform, followerCount, postFrequency, avgEngagement) · weekly Playwright scraping (latest 20 posts per competitor) · competitor-social-analyst agent (monthly or on-demand) · side-by-side comparison charts · top posts + theme analysis · engagement delta alerts

15.38 AI SEO Optimization — AEO/GEO (Phase 2–4)

Priority: 🟡 Pre-launch (new feature — Phase 1 live)
Docs: docs/new-features/ai-seo-optimization-aeo-geo.md · docs/project/seo-optimizer-feature.md

Phase 2: AEO optimization (Q&A structure, quotable answers, structured data, citations) · Phase 3: GEO monitoring dashboard (brand mention tracking in ChatGPT/Perplexity/Google AI vs competitors) · Phase 4: seo-optimizer agent for guided in-editor content suggestions

15.39 Blog Image Generator Agent

Priority: 🟡 Pre-launch (new feature)
Docs: docs/agents/blog-image-generator.md · docs/new-features/...

Hero + inline images per blog post via Azure GPT Image; brand-matched styles; logo overlay; auto-triggers after blog approval. Worker not yet created.

15.40 Content Auditor Agent

Priority: 🟡 Pre-launch (new feature)
Docs: docs/agents/content-auditor.md

Post freshness audit · content health score · refresh workflow trigger · keyword cannibalisation detection. Worker not yet created.

15.41 WhatsApp Lead Capture

Priority: 🟡 Pre-launch
Provider: packages/providers/whatsapp/src/whatsapp.ts (built, not wired)
Docs: docs/providers/whatsapp-business.md

WhatsApp Business API for lead capture; provider package built but no worker or UI wires it.

15.42 Multi-Language Content & Localization

Priority: 🟢 Post-MVP
Docs: docs/new-features/multi-language-localization.md

language field on all content models · contentLanguages[] on Tenant · content-translator agent · language selector on content creation · side-by-side view · hreflang tags for SEO · Priority languages: EN, HI, TA, ML, AR, TE

15.43 White-Label Client Portal

Priority: 🟢 Post-MVP
Docs: docs/new-features/white-label-client-portal.md

clientUser role with read-only portal · TenantBranding model (agencyName, logo, colors, domain) · custom domain + CNAME + auto-SSL (Nginx/Caddy) · branded reports + emails (SendGrid domain verification) · limited AI Chat for clients

15.44 Webhook & Public API

Priority: 🟢 Post-MVP
Docs: docs/new-features/webhook-public-api.md

ApiKey model (prefix lm_live_/lm_test_, permissions, expiry) · public /api/v1/ endpoints · WebhookEndpoint model (HMAC signing, 3× retry + backoff) · events: blog., social., lead., agent., invoice., subscription. · OpenAPI/Swagger at docs.leadmetrics.app · Zapier integration

15.45 Lead Scoring & Nurture Sequences

Priority: 🟢 Post-MVP
Docs: docs/missing-incomplete-features/lead-scoring-nurture.md

Lead scoring model + score bands + auto nurture sequence trigger

15.46 A/B Ad Variant Generation

Priority: 🟢 Post-MVP
Docs: docs/missing-incomplete-features/a-b-ad-variants.md

A/B variants for Google RSA and Meta ads · variant tracking in Campaign model

15.47 Queue Monitoring UI (Manage)

Priority: 🟢 Post-MVP
Docs: docs/missing-incomplete-features/queue-monitoring-ui.md

Cross-tenant BullMQ queue depth visibility in Manage portal (OQ-2)

15.48 Tenant Storage Cleanup on Cancellation

Priority: 🟢 Post-MVP
Docs: docs/missing-incomplete-features/tenant-storage-cleanup.md

Deactivated/cancelled tenant files remain in Spaces indefinitely; scheduled cleanup job needed.

15.49 Manage Tenant Detail — Config, Agents, Knowledge Base Tabs

Priority: 🟡 Pre-launch
Docs: docs/apps/manage/screens.md (M3 planned tabs)

3 tabs not yet built on tenant detail: Config (plan, feature flags, LLM providers, spending limits) · Agents (per-tenant agent enable/disable override) · Knowledge Base (dataset summary, file counts, re-index controls)

15.50 Activity Templates — Visual Pipeline Editor

Priority: 🟡 Pre-launch
Docs: docs/apps/manage/screens.md (M11 enhancement)

Split templates into Pipeline Templates + Recurring Task Templates tabs · visual drag-and-drop pipeline editor · cron-based recurring task editor · variable substitution preview

15.51 Bing Webmaster Integration

Priority: 🟢 Post-MVP
Provider: packages/providers/microsoft/src/bing-webmaster.ts (built)
Docs: docs/providers/bing-webmaster-tools.md

Provider package complete; no worker, insight, or channel detail page yet.


16. Known Issues Summary

🔴 Blocking (14 items)

#IssueDoc
1CMS auto-publish (WordPress/Webflow) not wiredcms-publishing.md
2Mailchimp/Klaviyo newsletter delivery not builtemail-newsletter-delivery.md
3Campaign orchestration logic incompletecampaign-orchestration.md
4Agent progress SSE not complete; activity detail no live streamingreal-time-agent-status.md
5activity_templates.steps schema undefined (OQ-4)activity-templates.md
6BillingJobData test missing jobId+manual — breaks buildbilling-type-mismatch-bug.md
7Social posts (FB/IG/LinkedIn) never auto-publish after approvalsocial-post-platform-publishing.md
8Scheduler handles only 3 email tasks; 8 critical types missingscheduler-missing-task-types.md
9Deliverable planner uses hardcoded channel listhardcoded-connected-channels.md
10Free plan not defined — all tenants get Starter foreverfree-plan-limits.md
11Agent plan gating TODO never implementedagent-plan-gating.md
12Notifications server publishes to non-existent HTTP hubnotification-hub-sse-service.md
13Razorpay webhook signature bypass when secret unsetrazorpay-webhook-signature-bypass.md
14reserveCredits() race condition — double-spend possiblecredit-race-condition.md

🟡 Pre-launch (21 items)

#IssueDoc
1Performance reporting dashboard incompleteperformance-reporting-dashboard.md
2Cost dashboard graphs incompletecost-dashboard.md
3Report delivery (Slack/Notion/Drive) not builtreport-delivery-integrations.md
4Notifications server app incompletenotifications-app.md
5TikTok publishing not builttiktok-publishing.md
6GBP post publishing not wiredgbp-publishing.md
7Overage billing not builtoverage-billing.md
8Twitter/X and Zoho channel detail pages are placeholderstwitter-zoho-channel-detail-pages.md
9OAuth token key rotation missingoauth-token-key-rotation.md
10No file upload security scanningdocument-security-scanning.md
11Subscription cancellation: no freeze/lock/notificationsubscription-cancellation-cleanup.md
12Payment failure webhook doesn’t notify tenantpayment-failed-no-notification.md
13No email verification flowemail-verification-missing.md
14JWT logout has no server-side revocationstateless-jwt-no-revocation.md
15AI Chat executor subagent: 16 tools not builtai-chat-executor-subagent.md
16AI Chat: no token counting or context window managementai-chat-token-management.md
17RAG engine starts without checking Qdrant healthrag-qdrant-health-check.md
18Brand voice scoring not implementeddocs/new-features/brand-voice-scoring.md
19Audience personas feature not builtdocs/new-features/audience-personas-personalization.md
20Content calendar auto-scheduling not builtdocs/new-features/content-calendar-auto-scheduling.md
21Competitor social monitoring not builtdocs/new-features/competitor-social-monitoring.md

🟢 Post-MVP (8 items)

#IssueDoc
1Lead scoring and nurture sequenceslead-scoring-nurture.md
2A/B ad variant generationa-b-ad-variants.md
3Queue monitoring UI in Managequeue-monitoring-ui.md
4Mobile in-app FCM push registrationmobile-push-notifications.md
5Tenant storage cleanup on cancellationtenant-storage-cleanup.md
6Multi-language content & localizationdocs/new-features/multi-language-localization.md
7White-label client portaldocs/new-features/white-label-client-portal.md
8Webhook & Public APIdocs/new-features/webhook-public-api.md

All issue details, build steps, and open decisions: docs/missing-incomplete-features/
New feature specs: docs/new-features/
Agent documentation: docs/agents/
Feature architecture: docs/features/
Provider integration docs: docs/providers/
Screen-level specs: docs/apps/*/screens.md


17. Competitive Gaps — Features Missing vs. Market

Features identified through analysis of HubSpot, Sprout Social, Semrush, Ahrefs, ActiveCampaign, Klaviyo, AgencyAnalytics, Planable, Hotjar, CoSchedule, and India-specific platforms. None of these exist anywhere in the current codebase unless noted.

Priority guide for this section:

  • 🔴 Table-stakes — Customers will not switch to Leadmetrics without this; competitors have had it for years
  • 🟡 Differentiator — Meaningfully increases platform value; not universally available
  • 🟢 Expansion — Adds a new market segment or use case

17.1 Marketing Automation & Workflow Engine

Current state: Individual BullMQ agent pipelines exist but there is no user-configurable automation layer. Tenants cannot define their own triggers or sequences.

Visual Automation Workflow Builder

Priority: 🔴 Table-stakes · Competitors: HubSpot, ActiveCampaign

Drag-and-drop workflow editor with: enrollment triggers (form fill, page visit, tag applied, lead score threshold), actions (send email, enqueue agent, update CRM field, add to list, create task), if/else conditional branching, delays (fixed + smart), goal-based exit conditions (stop messaging when desired action completed). Without this, the platform cannot replace ActiveCampaign or HubSpot for any agency client.

Event-Based Triggers & Site Tracking

Priority: 🔴 Table-stakes · Competitors: ActiveCampaign, HubSpot

Track contact behavior on client websites (page visits, time on page, CTA clicks, form abandonment) and fire automation triggers based on it. Requires a JavaScript tracking snippet per tenant + event ingestion pipeline into contact profiles.

A/B Testing (Email + Landing Page + Automation Paths)

Priority: 🔴 Table-stakes · Competitors: HubSpot, ActiveCampaign

Split-test email subject lines, send times, body variants, CTA copy, and full automation paths. Winner auto-selection after statistical significance. Without A/B testing, email campaigns cannot be optimized, which is a hard blocker for serious marketers.

Predictive Send-Time Optimization

Priority: 🟡 Differentiator · Competitors: ActiveCampaign, Klaviyo

ML model predicts the best time to send each email per contact based on historical open behavior. 15–25% open rate improvement vs. fixed send times.

Workflow Split Testing (Path-Level A/B)

Priority: 🟡 Differentiator · Competitors: ActiveCampaign

A/B test entire automation paths, not just individual emails. Measures which sequence of touches drives better conversion.


17.2 Lead Scoring & Predictive Intelligence

Current state: Lead model exists. No scoring system of any kind is built.

Behavioral + Demographic Lead Scoring

Priority: 🔴 Table-stakes · Competitors: HubSpot, ActiveCampaign

Manual scoring rules: +N points for email opens, page visits, form fills, specific content consumed; −N points for inactivity, low-fit firmographics. Score thresholds trigger sales handoff or nurture sequences. This is expected at every SMB marketing platform.

Predictive Lead Scoring (ML)

Priority: 🟡 Differentiator · Competitors: HubSpot Enterprise, Klaviyo

ML model calculates likelihood-to-close (or convert) within 90 days based on historical patterns. Requires ≥1,000 contacts and ≥500 conversion events to train. Surface as a “Conversion Probability” field on each lead/contact.

Customer Lifetime Value (CLV) Prediction

Priority: 🟡 Differentiator · Competitors: Klaviyo

Forecast total future spend per customer based on past purchase/engagement behavior. Weekly model retraining. Critical for eCommerce customers; useful for B2B subscription clients.

Churn Risk Scoring

Priority: 🟡 Differentiator · Competitors: Klaviyo

ML predicts 90-day non-purchase (or non-renewal) probability per contact. Trigger re-engagement workflows automatically when churn risk crosses threshold.

RFM Segmentation (Recency · Frequency · Monetary)

Priority: 🟡 Differentiator · Competitors: Klaviyo

Automatically segment contacts into RFM tiers (Champions, Loyal, At Risk, Lost, etc.). Surface in contact list filters and as automation enrollment triggers.


17.3 Analytics, Attribution & Reporting

Current state: Per-channel AI insights exist (ChannelInsight). No cross-channel attribution, no funnel analytics, no revenue attribution.

Multi-Touch Revenue Attribution

Priority: 🔴 Table-stakes · Competitors: HubSpot, Ruler Analytics, Dreamdata

Connect every marketing touchpoint (blog read, email click, ad impression, form fill) to actual closed deals or revenue. Models: First touch, Last touch, Linear, Time decay, Data-driven (algorithmic). Without this, marketers cannot prove marketing ROI — a hard requirement for any agency pitching to clients.

Customer Journey Analytics

Priority: 🟡 Differentiator · Competitors: HubSpot, Amplitude

Visualise the complete path from first touch to conversion: channels visited, content consumed, time between touchpoints, drop-off stages. Surfaces which channel sequences convert best.

SERP Rank Tracking

Priority: 🔴 Table-stakes · Competitors: Ahrefs, Semrush, AgencyAnalytics

Daily keyword position tracking across Google (desktop + mobile, multi-location). History chart per keyword. Share of Voice calculation across tracked keyword set. Ranking change alerts. This is expected by every SEO client — its absence is a hard blocker.

Keyword Gap / Content Gap Analysis

Priority: 🔴 Table-stakes · Competitors: Ahrefs, Semrush

Identify keywords competitors rank for that the client does not. Surfaces missed opportunities ranked by search volume and difficulty. Direct input into the content brief and blog-writer pipeline.

Competitor Organic Traffic Estimation

Priority: 🟡 Differentiator · Competitors: Semrush

Estimate any competitor’s monthly organic traffic from their rankings + CTR model. No access to their analytics required. Valuable for client reporting and competitor benchmarking.

Share of Voice (SOV) Tracking

Priority: 🟡 Differentiator · Competitors: Ahrefs, Sprout Social

Calculate what percentage of impressions (organic, social, or paid) the client captures vs. competitors across a defined keyword/topic set.

UTM Parameter Builder & Campaign Tracker

Priority: 🔴 Table-stakes · Competitors: Every major platform

Generate, save, and manage UTM-tagged URLs. Auto-populate campaign names/sources. Report on UTM-tagged traffic performance. Currently there is no UTM tooling anywhere in the platform — every campaign link has to be hand-crafted.

Portfolio-Level Anomaly Detection

Priority: 🟡 Differentiator · Competitors: AgencyAnalytics

Automatically flag metric deviations across all tenants (not just one). Alert DM when a client’s organic traffic drops >15%, engagement falls, or ad spend spikes. The anomaly-detector worker exists but has no scheduler and no UI surface.

Industry Benchmarking

Priority: 🟡 Differentiator · Competitors: AgencyAnalytics (150K+ campaigns)

Compare client performance metrics against industry averages. Essential for agencies setting realistic KPIs and demonstrating value to clients.

Budget Pacing & Goal Tracking Alerts

Priority: 🟡 Differentiator · Competitors: AgencyAnalytics, HubSpot

Alert when a campaign is under/over-pacing against its budget or monthly goal. Prevents surprise overspend and missed targets.


17.4 SEO Intelligence (Beyond Current Capabilities)

Current state: Keyword table, backlinks, link building, and a 10-dimension SEO score on blog posts exist. No rank tracking, no competitor SEO analysis, no technical SEO UI, no content optimization editor.

Real-Time Content Optimization Editor (Surfer SEO / Clearscope Style)

Priority: 🔴 Table-stakes · Competitors: Surfer SEO, Clearscope, Semrush Writing Assistant

In-editor SEO scoring panel showing: keyword density, recommended terms, heading structure, word count vs. top-ranking pages, readability score, topical completeness score. Ideally integrates with the blog writer output. Without this, the seo-optimizer worker score is a black box with no guidance for human editors.

Internal Linking Recommendations

Priority: 🟡 Differentiator · Competitors: Clearscope, Surfer SEO, LinkWhisper

After a blog post is drafted, suggest relevant internal links to other published content. Builds topical authority and improves crawlability.

Technical SEO Audit UI

Priority: 🔴 Table-stakes · Competitors: Semrush, Ahrefs, Screaming Frog

The site-auditor.worker.ts exists but has no dashboard UI. Build a Technical SEO page showing: crawl errors, broken links, duplicate meta tags, missing alt text, redirect chains, canonical issues, page speed, Core Web Vitals. Agencies cannot work without this.

Core Web Vitals Monitoring

Priority: 🟡 Differentiator · Competitors: Google Search Console, ContentKing, Semrush

Track LCP, FID/INP, CLS over time per URL. Alert on regressions. Feeds into technical SEO audit.

Local SEO — Citation Management & NAP Consistency

Priority: 🟡 Differentiator · Competitors: BrightLocal, Yext, Semrush Local

For clients serving local markets: manage business listings across 50+ directories (Google, Bing, Apple Maps, Yelp, Justdial, Sulekha), detect inconsistent NAP (Name/Address/Phone), bulk-update citations. Extremely relevant for Indian SMB clients (restaurants, clinics, service businesses).

Local Rank Tracking (Map Pack / Heatmap)

Priority: 🟡 Differentiator · Competitors: BrightLocal, Semrush Local

Track Google Maps / local pack rankings for location-specific keywords. Visualise as a geo-heatmap showing ranking position by neighbourhood/radius. Valuable for any brick-and-mortar or service-area business.

Schema Markup Generator

Priority: 🟡 Differentiator · Competitors: Semrush, RankMath, Surfer

Generate JSON-LD structured data (Article, FAQ, HowTo, Product, LocalBusiness, BreadcrumbList) for blog posts and landing pages. Feeds directly into AEO/GEO visibility.

Programmatic SEO Page Generator

Priority: 🟢 Expansion · Competitors: Webflow CMS, custom builds

Generate hundreds of location- or topic-specific landing pages from a data template (e.g., “[Service] in [City]” pages). Auto-populate using the landing-page-writer worker. Critical for local service businesses scaling SEO.


17.5 Social Intelligence & Influencer Marketing

Current state: Social post generation and scheduling exist. No listening, no brand monitoring, no influencer tooling, no employee advocacy.

Social Listening & Brand Monitoring

Priority: 🔴 Table-stakes · Competitors: Sprout Social, Brand24, Mention

Monitor brand name, competitor names, and topic keywords across Twitter/X, Instagram, Reddit, news sites, and blogs in real-time. Sentiment analysis on mentions. Alert on spikes (viral content, PR crisis). Every serious social media manager expects this.

Sentiment Analysis on Brand Mentions

Priority: 🔴 Table-stakes · Competitors: Sprout Social, Brandwatch

Classify brand and competitor mentions as positive/neutral/negative. Aspect-cluster the sentiment (e.g., “slow delivery” vs. “great product”). Track sentiment trend over time. Surface in DM portal for client reporting.

Influencer Discovery & Campaign Management

Priority: 🟡 Differentiator · Competitors: Sprout Social, GRIN, CreatorIQ

Discover relevant influencers/creators by topic, audience demographics, engagement rate, and platform. Manage outreach, content briefs, approvals, deliverables, and ROI reporting in one workflow. High demand from agencies running influencer campaigns for clients.

Employee Advocacy

Priority: 🟢 Expansion · Competitors: Sprout Social, Hootsuite Amplify

Curate pre-approved content for client employees to share on their personal LinkedIn/social profiles. Track amplification reach and engagement. Demonstrated 85%+ organic reach improvement in Sprout Social case studies.

Pinterest Integration

Priority: 🟡 Differentiator · Competitors: Planable, Hootsuite, Later

Pinterest content creation, scheduling, and analytics. Particularly relevant for fashion, food, home décor, and wedding clients — high volume segments in India.

YouTube Content Support (Scripts + Analytics)

Priority: 🟡 Differentiator · Competitors: VidIQ, TubeBuddy, general platforms

Video script generation, YouTube SEO (title/description/tags optimization), channel analytics (views, watch time, subscriber growth, top videos). Video is the dominant format for engagement in India.


17.6 CRM & Lead Intelligence Depth

Current state: Basic Lead and Contact models exist. No scoring, no deal pipeline, no behavioral event tracking, no CRM integrations.

Deal Pipeline / Opportunity Tracking

Priority: 🔴 Table-stakes · Competitors: HubSpot CRM, Zoho CRM

Visual kanban pipeline with stages (Lead → MQL → SQL → Proposal → Closed). Drag deals between stages. Revenue forecasting by stage probability. Without this, the Lead model is just a contact list — not a CRM.

CRM Integrations (Zoho, HubSpot, Salesforce)

Priority: 🔴 Table-stakes · Competitors: Every major marketing platform

Bi-directional sync with Zoho CRM (dominant in India), HubSpot CRM, and Salesforce. New leads from Leadmetrics forms/campaigns flow into the CRM; deal stage changes in CRM update contact status in Leadmetrics. Most agencies and SMBs already have a CRM — they need Leadmetrics to plug in, not replace it.

Account-Based Marketing (ABM)

Priority: 🟡 Differentiator (🔴 Table-stakes if B2B clients are confirmed) · Competitors: HubSpot, 6sense, Demandbase, Terminus

For B2B agencies serving enterprise clients (IT services, SaaS, industrial — all major segments in Indian agency market), ABM is the core workflow, not a nice-to-have. The platform currently has no account-level view at all.

Core ABM features required:

  • Company/Account grouping: Cluster Contact records under a parent Account (company). Track account-level engagement score as the aggregate of individual contact activities. Add an Account model linked to Contact and Lead.
  • LinkedIn outreach sequences: Automated multi-touch LinkedIn connection + message sequences targeting specific job titles at target accounts. Wire through packages/providers/linkedin/ + LinkedIn Message API (v202504).
  • Deal-stage content mapping: Auto-suggest or auto-generate content based on the account’s current deal stage (awareness → consideration → decision). TOFU for new accounts, MOFU for engaged, BOFU for proposal-stage.
  • CRM deal sync: Bi-directional sync of account and deal stage with Zoho CRM (India-dominant), HubSpot CRM, and Salesforce. When an account moves to “Proposal Sent” in CRM, trigger a content delivery sequence.
  • Intent data integration: Surface which target accounts are actively researching the client’s category (via Bombora or G2 intent signals). Surface as “surging accounts” in a pipeline view — allows proactive outreach timing.
  • Company-level attribution: Credit each content touchpoint to the deal revenue it influenced at the account level, not just the individual contact.

For Indian IT/SaaS/B2B agencies, this is the single feature that determines whether the platform competes with HubSpot or stays in the SMB/eCommerce lane.

Behavioral Event Tracking (Website → CRM)

Priority: 🟡 Differentiator · Competitors: ActiveCampaign, HubSpot

Embed a tracking pixel on the client’s website. Every page visit, CTA click, and download by a known contact is logged to their profile. Trigger automations based on on-site behavior (e.g., enroll in nurture when contact visits the pricing page 3 times).


17.7 Lead Capture & Conversion

Current state: No form builder, no lead capture widgets, no chatbot, no A/B testing.

Form Builder (Drag-and-Drop, Conditional Logic, Multi-Step)

Priority: 🔴 Table-stakes · Competitors: HubSpot, Typeform, Gravity Forms

Build embeddable forms with: field types (text, dropdown, date, file), conditional field display, multi-step wizard flows, spam protection (reCAPTCHA), custom thank-you pages. Connect form submissions directly to automations and contact creation. This is how the Lead model gets populated.

Lead Capture Widgets (Pop-ups, Slide-ins, Exit-Intent)

Priority: 🟡 Differentiator · Competitors: HubSpot, OptinMonster, Sleeknote

On-site overlays triggered by: scroll depth, time on page, exit intent, specific page visit. A/B testable. Connected to contact creation and automation enrollment. Critical for lead generation for SMB clients.

Progressive Profiling Forms

Priority: 🟡 Differentiator · Competitors: HubSpot

Forms that hide fields already known from CRM. Each visit collects new data points without asking the same questions. Increases form completion rate.

AI Chatbot / Live Chat for Lead Capture

Priority: 🟡 Differentiator · Competitors: Intercom, Drift, HubSpot Chat

AI-powered chat widget on client websites that qualifies visitors, answers FAQs, captures contact details, and books meetings. Hands off to human agent when needed. The AI Chat infrastructure already exists — this is a website widget surface.

Landing Page Visual Builder (Drag-and-Drop)

Priority: 🟡 Differentiator · Competitors: Unbounce, Instapage, Leadpages

Currently landing pages are AI-generated HTML only. A visual drag-and-drop editor (Webflow/Framer-style) lets DMs and clients tweak layouts without code. At minimum: edit text/images/buttons in-line; at most: full section-based builder.


17.8 eCommerce Integration

Current state: No eCommerce integrations of any kind.

Shopify / WooCommerce Integration

Priority: 🟡 Differentiator · Competitors: Klaviyo, ActiveCampaign, Omnisend

Sync product catalog, orders, customers from Shopify or WooCommerce. Feed purchase data into contact profiles and automation triggers. Required for any eCommerce client. Klaviyo built its entire business on this.

Abandoned Cart & Browse Abandonment Flows

Priority: 🟡 Differentiator · Competitors: Klaviyo, Omnisend

Automatically trigger email/SMS/WhatsApp flows when a known contact abandons a cart or browses products without purchasing. Among the highest-ROI automations in eCommerce marketing.

Post-Purchase Flows (Review Requests, Upsell, Win-Back)

Priority: 🟡 Differentiator · Competitors: Klaviyo

Automated sequences after purchase: thank-you email → review request → upsell recommendation → win-back if no repeat purchase within X days.

Product-Level Analytics

Priority: 🟢 Expansion · Competitors: Klaviyo

Track which products drive the most revenue, repeat purchases, and churn. Surface as a product performance dashboard.


17.9 WhatsApp & Messaging (India-Critical)

Current state: packages/providers/whatsapp/src/whatsapp.ts is built but nothing is wired to it. SMS provider (MSG91/Twilio) packages are not built.

WhatsApp Marketing Campaigns

Priority: 🔴 Table-stakes for India · Competitors: WATI, Zoko, Interakt, WebEngage

Send broadcast messages, promotional campaigns, and transactional notifications via WhatsApp Business API. Segment-based targeting. Template message management (pre-approved by Meta). Delivery + read rate analytics. WhatsApp has 500M+ users in India and significantly outperforms email open rates. Any Indian marketing platform without native WhatsApp is at a major competitive disadvantage.

WhatsApp Automation Flows

Priority: 🔴 Table-stakes for India · Competitors: WATI, Zoko

Automate WhatsApp message sequences: welcome flow on first contact, lead nurture, abandoned cart, appointment reminders, post-purchase. Interactive buttons and quick replies. NLP-based FAQ responses.

WhatsApp Chatbot for Lead Capture

Priority: 🟡 Differentiator · Competitors: WATI, Interakt

AI chatbot on WhatsApp that qualifies leads, captures contact details, and routes to human agent. Integrates with the Lead model.

SMS Marketing Campaigns (MSG91 / Exotel)

Priority: 🟡 Differentiator · Competitors: MSG91, Exotel (India), Twilio (global)

The notifications server has an SMS handler stub. Building out actual provider packages (@leadmetrics/provider-msg91) unlocks SMS broadcasts, OTPs, and transactional alerts. High relevance for India (low data connectivity segments).

Web Push Notifications (Browser-Based)

Priority: 🟡 Differentiator · Competitors: OneSignal, PushOwl, Pushwoosh

Browser push notifications for website visitors (opt-in). Separate from mobile FCM push. Useful for re-engaging website visitors who haven’t subscribed to email. Segment-targeted, triggered by behavior.

RCS Messaging

Priority: 🟢 Expansion · Competitors: Klaviyo, Sinch

Rich Communication Services — next-gen SMS with images, buttons, carousels. Google has been rolling out RCS broadly; increasingly relevant for marketing in India.


17.10 Reputation Management & Social Proof

Current state: review-response-writer.worker.ts exists but there is no review collection, aggregation, or display surface anywhere.

Review Aggregation & Management

Priority: 🔴 Table-stakes · Competitors: Birdeye, Podium, ReviewTrackers, Sprout Social

Aggregate reviews from Google, Facebook, Justdial (India), Trustpilot, and industry-specific platforms into a single inbox. Sentiment prioritisation (flag 1-star reviews for immediate response). One-click response from unified UI. The review-response-writer worker already generates responses — it just needs a platform to surface them on.

AI-Powered Review Response Automation

Priority: 🟡 Differentiator · Competitors: Birdeye, Podium

Auto-generate contextual responses to new reviews (positive and negative) using the existing review-response-writer worker. Queue for human approval before posting. Auto-post for 4–5 star reviews if confidence is high.

Social Proof Widgets (Testimonials, Star Ratings)

Priority: 🟡 Differentiator · Competitors: Senja, EmbedSocial, Trustmary

Embeddable widgets for client websites: testimonial grids, review carousels, “wall of love”, live review feeds, star rating badges. Connected to the review aggregation pipeline. Helps clients convert website visitors using social proof.

FOMO / Real-Time Notification Widgets

Priority: 🟢 Expansion · Competitors: Notifyio, Proof

Live pop-up notifications on client websites: “X people signed up today”, “5 people viewing this page”, recent purchase notifications. Proven to increase conversion rates.


17.11 Behavioral Analytics (UX Intelligence)

Current state: No behavioral analytics of any kind. No heatmaps, no session recording, no funnel analysis.

Heatmaps (Click, Scroll, Hover)

Priority: 🟡 Differentiator · Competitors: Hotjar, Microsoft Clarity (free), Crazy Egg

Visual heatmaps of where users click, how far they scroll, and where they hover on landing pages and web pages. Identify above-the-fold content effectiveness, CTA placement, and content drop-off. Essential for optimizing AI-generated landing pages.

Session Recording & Replay

Priority: 🟡 Differentiator · Competitors: Hotjar, FullStory, Microsoft Clarity

Record individual user sessions as video replays. Detect rage clicks (frustrated rapid clicking), dead clicks (clicking non-interactive elements), and navigation confusion. Directly informs landing page and content quality.

Funnel Analysis & Conversion Drop-off

Priority: 🟡 Differentiator · Competitors: Hotjar, Mixpanel, Google Analytics 4

Define multi-step funnels (e.g., Landing Page → Form Partial Fill → Form Submit → Thank You) and visualise where visitors abandon. Critical for optimising lead capture flows built on the platform.

On-Page Feedback Widgets

Priority: 🟢 Expansion · Competitors: Hotjar, Userpilot

Embed micro-survey widgets (“Was this helpful? 👍 👎”) or star ratings on any page. Collect qualitative feedback tied to specific content or page sections.


17.12 Collaboration & Approval Workflows (Advanced)

Current state: Two-level approval exists: DM reviews → client approves. No team comments, no multi-level custom routing, no workspace isolation per client.

Team Commenting & @Mentions on Content

Priority: 🔴 Table-stakes · Competitors: Planable, Loom, Notion

Inline comments on any content item (blog, social post, newsletter, ad copy). @mention teammates to assign feedback. Threaded discussion per content item. Resolve/unresolve comment threads. Every content collaboration tool has this — its absence forces teams to use Slack/email for feedback, breaking the workflow.

Multi-Level Custom Approval Routing

Priority: 🟡 Differentiator · Competitors: Planable, Gain.app, Approval Studio

Configure approval chains per client or per content type: e.g., Writer → Senior Editor → Legal → Client. Each approver sees only their stage. Reject at any level sends back to previous stage with notes. Lock content after final approval to prevent last-minute changes.

Visual Grid View (Instagram Aesthetic Planning)

Priority: 🟡 Differentiator · Competitors: Planable, Later, Planoly

Preview how a sequence of social posts will look side-by-side on an Instagram/Facebook grid before publishing. Essential for brand-consistency-focused clients.

Auto-Publish on Final Approval

Priority: 🟡 Differentiator · Competitors: Planable, Hootsuite

When the final approver signs off, automatically queue the content for publishing at its scheduled time — no manual step required.

Workspace Isolation Per Client (Multi-Workspace)

Priority: 🟡 Differentiator · Competitors: Planable, Sprout Social

Separate workspace per tenant with isolated: approval workflows, brand assets, content calendar, team member access, and reporting settings. Currently all tenants share the same platform config.


17.13 Agency & White-Label Reporting

Current state: White-label client portal is planned (§15.43) but not started. No automated client reporting, no custom domain, no data aggregation dashboard.

Automated Client Report Generation & Delivery

Priority: 🔴 Table-stakes for agencies · Competitors: AgencyAnalytics, DashThis, Whatagraph

Schedule monthly/weekly PDF/email reports per client: SEO rankings, social engagement, ad spend ROAS, organic traffic, lead gen numbers. Branded with agency logo. Auto-delivered without manual effort. Agencies live and die by this — no automated reporting = hours of manual work per client per month.

Multi-Channel Aggregated Dashboard (SEO + Social + Paid + Email)

Priority: 🔴 Table-stakes for agencies · Competitors: AgencyAnalytics, DashThis

Single dashboard combining: organic rankings, social engagement, Google Ads ROAS, Meta Ads CPA, email open rates, lead counts. Currently each data source is siloed in its own section.

White-Label Custom Domain for Client Portals

Priority: 🟡 Differentiator · Competitors: AgencyAnalytics, NinjaCat

Host client dashboards at reports.agencyname.com instead of leadmetrics.ai. Custom branding (logo, colors, fonts, login page). Removes vendor branding entirely.

Trend Forecasting & Scenario Modeling

Priority: 🟡 Differentiator · Competitors: AgencyAnalytics

AI-driven best-case / worst-case projections for key metrics (organic traffic, lead volume, social reach). Helps agencies set realistic client expectations and demonstrate value.

Goal Tracking & Budget Pacing Alerts

Priority: 🟡 Differentiator · Competitors: AgencyAnalytics, HubSpot

Alert DMs and clients when campaigns go off-pace: “You’ve used 80% of your monthly ad budget in 12 days” or “Organic traffic is 40% below monthly target at mid-month.”


17.14 India-Specific Platform Requirements

Current state: Razorpay integrated; GST/INR/PAN fields exist on Invoice model. No regional language support, no Zoho CRM integration, no Paytm/Cashfree, no DPDP compliance.

Zoho CRM Native Integration

Priority: 🔴 Table-stakes for India · Competitors: Zoho One, WebEngage, MoEngage

Zoho CRM has 40%+ market share among Indian SMBs. Bi-directional contact/lead/deal sync between Leadmetrics and Zoho CRM is effectively mandatory for the Indian market. Provider package packages/providers/zoho/src/zoho-books.ts exists for Zoho Books (invoicing) — extend to Zoho CRM.

Additional Payment Gateways (Paytm, Cashfree, PayU)

Priority: 🟡 Differentiator · Competitors: Indian-market platforms

Paytm Payment Gateway has zero charges for domestic transactions. Cashfree and PayU are widely used by Indian SMBs. Offering multiple gateways reduces friction for Indian clients paying subscription fees.

Regional Language Support (Hindi, Tamil, Telugu, etc.)

Priority: 🟡 Differentiator · Competitors: Regional Indian marketing tools

UI localisation for Hindi, Tamil, Telugu, Marathi, Kannada (top 5 Indian languages by internet user base). Agent-generated content in regional languages (already planned as §15.42 multi-language). Critical for reaching Tier 2/3 Indian cities.

DPDP Act Compliance (India Data Protection)

Priority: 🔴 Table-stakes for India · Competitors: All India-market SaaS

India’s Digital Personal Data Protection Act (2023) requires: consent management for data collection, data deletion on request, data localisation option, privacy notice on forms, purpose limitation. Non-compliance = legal risk for clients.

Justdial / IndiaMart Integration

Priority: 🟡 Differentiator · Competitors: India-specific CRMs

Import leads from Justdial and IndiaMart (the two largest Indian B2B lead directories) directly into the Leadmetrics contact/lead pipeline. These are primary lead sources for a majority of Indian SMBs.

Priority: 🟡 Differentiator · Competitors: WATI, Zoko

Embed UPI payment links in WhatsApp and email campaigns for direct B2C conversions. Particularly relevant for service businesses (clinics, salons, coaching) that collect payment via UPI.


17.15 Content Operations & Quality

Current state: Content is AI-generated and reviewed by DM. No quality scoring beyond SEO, no plagiarism checking, no grammar tooling, no content health monitoring.

Plagiarism / Duplicate Content Checker

Priority: 🟡 Differentiator · Competitors: Copyscape, Quetext, Grammarly Business

Scan AI-generated content against the web before publishing. Flag duplicate or near-duplicate passages. Protects clients from SEO penalties and copyright issues.

Grammar & Readability Scoring

Priority: 🟡 Differentiator · Competitors: Grammarly Business, Hemingway

Automated grammar checking and Flesch-Kincaid readability scoring on all generated content. Partially addressed by the seo-optimizer worker but not surfaced as an editable writing score.

Content Health & Freshness Monitoring

Priority: 🟡 Differentiator · Competitors: Clearscope, ContentKing, SEMrush Content Audit

Track published blog posts: ranking decline signals, content age, traffic trend, suggested refresh date. Queue stale posts for an content-auditor agent run. Feeds into the planned content auditor (§10.29).

Content Brief Template Library

Priority: 🟡 Differentiator · Competitors: Semrush, MarketMuse

Industry-specific content brief templates (SaaS, eCommerce, healthcare, legal, real estate) pre-loaded in the content brief system. Reduces setup time per new client.


17.16 Survey, Feedback & NPS

Current state: No survey or NPS tooling of any kind.

NPS & Customer Satisfaction Surveys

Priority: 🟡 Differentiator · Competitors: Delighted, SurveyMonkey, HubSpot

Send automated NPS surveys post-purchase or at key lifecycle milestones. Track Net Promoter Score over time. Route detractors into re-engagement workflows, promoters into review request flows. Essential for clients who want to measure customer loyalty.

In-App / On-Page Feedback Widgets

Priority: 🟢 Expansion · Competitors: Hotjar, Userpilot, Delighted

Embed lightweight rating widgets on client web pages or in emails. Collect micro-feedback without redirecting users to an external survey tool.


17.17 Webinar & Event Marketing

Current state: No event or webinar support.

Webinar / Event Landing Page & Registration

Priority: 🟢 Expansion · Competitors: Zoom Webinars, Demio, HubSpot Events

Create event registration pages, send automated reminders (email + WhatsApp), and trigger post-event follow-up sequences. Integrates with Zoom/Google Meet for scheduling. High demand from coaches, consultants, and B2B agencies running webinar-based lead gen.



17.18 DataForSEO-Powered SEO Suite

Decision: Use DataForSEO (or equivalent: SerpAPI, SE Ranking API) as the data backbone. All features below become buildable without owning crawl infrastructure.
DataForSEO APIs relevant: SERP API · Keywords Data API · DataForSEO Labs API · Backlinks API · On-Page API · Business Data API · Content Analysis API · Merchant API
Pricing: ~$0.0006–$0.002 per SERP query; $0.002 per keyword data point at live tier.

⚠️ Pre-integration validation required: DataForSEO has excellent global coverage but India-specific keyword volume data for regional-language queries (Tamil, Hindi, Kannada, Telugu) is historically thinner than Semrush’s. Before committing exclusively to DataForSEO, test a sample of 100+ vernacular Indian keywords against both APIs. If a quality gap exists, consider a hybrid approach: DataForSEO for global + English-language India queries (best unit economics for white-label SaaS) + Semrush API for India vernacular/regional keywords. A hybrid often costs less than compensating for gaps with a single-source approach. Evaluate SerpAPI and SE Ranking API as additional fallbacks.

SERP Rank Tracking

Priority: 🔴 Table-stakes · Competitors: Ahrefs, Semrush, AgencyAnalytics · Data source: DataForSEO SERP API

Daily keyword position tracking (Google, Bing — desktop + mobile, multi-location). History chart per keyword. Ranking change alerts (+/− N positions). Share of Voice calculation. Up to 40 tracked projects, 5,000+ keywords. Integrate with the existing Keyword model — add a KeywordRanking table with daily snapshots.

Keyword Research & Difficulty Scoring

Priority: 🔴 Table-stakes · Data source: DataForSEO Keywords Data API + Labs API

Seed keyword expansion, search volume, difficulty, CPC, intent classification (informational / navigational / transactional / commercial), SERP feature flags (featured snippet, PAA, local pack). Feeds directly into the content-brief-writer and keyword-researcher agents as live data.

Keyword Gap / Content Gap Analysis

Priority: 🔴 Table-stakes · Data source: DataForSEO Labs API (ranked keywords per domain)

Compare client domain vs. up to 5 competitor domains. Surface keywords competitors rank for that the client doesn’t. Sort by search volume + difficulty gap. Direct input into the content planning pipeline. Wire results to auto-generate ContentBrief records.

Competitor Organic Traffic Estimation

Priority: 🟡 Differentiator · Data source: DataForSEO Labs API

Estimate any domain’s monthly organic traffic from ranking positions + click-through rate model. No access to their GA required. Use for client reporting and competitive benchmarking slides.

Technical SEO Audit UI (Site Auditor)

Priority: 🔴 Table-stakes · Worker exists: site-auditor.worker.ts (no UI) · Data source: DataForSEO On-Page API (100+ parameters)

Dashboard page surfacing crawl results: broken links, missing/duplicate meta tags, missing alt text, redirect chains, canonical errors, slow pages, Core Web Vitals (LCP/INP/CLS), structured data validation. The worker already runs — it just needs a results page. Build a SiteAuditReport model and a /seo/site-audit page.

Priority: 🟡 Differentiator · Data source: DataForSEO SERP API

Track which of the client’s keywords trigger rich SERP features (featured snippet, People Also Ask, image carousel, local pack, knowledge panel). Alert when client gains or loses a featured snippet position.

AI Search Visibility (LLM Brand Mentions)

Priority: 🟡 Differentiator · Data source: DataForSEO Content Analysis API + AI Optimization Data API

Track brand and competitor mentions in AI-generated answers (ChatGPT, Perplexity, Google AI Overviews). Already planned in §6.2 — DataForSEO provides the data backbone.

Local SEO — Citation Management

Priority: 🟡 Differentiator · Data source: DataForSEO Business Data API + Google My Business API

Manage business listings across 50+ directories. Detect NAP (Name/Address/Phone) inconsistencies. Bulk-update citations. Local rank tracking with geo-heatmap. Critical for Indian brick-and-mortar and service-area businesses.

Google Shopping Product Intelligence

Priority: 🟡 Differentiator · Data source: DataForSEO Merchant API

Monitor competitor product listings on Google Shopping: pricing, promotions, product titles. Track client product feed health. Identify pricing gaps vs. competitors.


17.19 eCommerce Platform Integrations

Current state: No eCommerce integrations. Provider packages for Meta/LinkedIn exist but aren’t wired for product publishing. Confirmed requirement: clients do sell products online.

Shopify Integration (Native)

Priority: 🔴 Table-stakes · Competitors: Klaviyo, Omnisend, ActiveCampaign

Bi-directional sync: product catalog, orders, customers, inventory levels, tags, discount codes. Trigger automations on Shopify events (order placed, order cancelled, product viewed, cart created, checkout started). Install via Shopify app. Every eCommerce client with Shopify expects this as a baseline.

WooCommerce Integration

Priority: 🔴 Table-stakes · Competitors: Klaviyo, Omnisend, Mailchimp

WordPress plugin or REST API sync: products, orders, customers, coupons. Same event model as Shopify. WooCommerce powers ~39% of global eCommerce sites and is dominant on Indian self-hosted stores.

Magento / Adobe Commerce Integration

Priority: 🟡 Differentiator · Competitors: Klaviyo, Dotdigital

REST/GraphQL API sync for enterprise-tier eCommerce clients. Product catalog, order history, customer segments.

Indian eCommerce Platform Integrations

Priority: 🟡 Differentiator · Unique to India market

  • Dukaan — India-built store platform (UPI, COD, regional payment support)
  • Instamojo — Quick-setup Indian seller platform; import leads from Instamojo store
  • Shiprocket — India’s largest logistics aggregator; sync order status, shipping events → trigger post-purchase flows
  • Meesho / Flipkart Seller — Import seller orders and customer data for reseller marketing (India Tier 2/3 segment)

Product Feed Management

Priority: 🔴 Table-stakes for eCommerce · Competitors: DataFeedWatch, Channable

Real-time product catalog sync to Google Merchant Center and Meta Catalog. Automatic attribute mapping (title, price, images, MPN, GTIN, category). Feed rule automation (dynamic title enrichment, price adjustments). Out-of-stock suppression. Error validation before submission. Required to run Google Shopping and Meta dynamic product ads.


17.20 eCommerce Automation Flows

Current state: BullMQ workers for blog/social/newsletter exist. No eCommerce-specific automation flows. These are the highest-ROI automations in eCommerce marketing — Klaviyo customers report 30–60% of email revenue comes from automated flows.

Abandoned Cart Recovery

Priority: 🔴 Table-stakes · Competitors: Klaviyo, Omnisend, Privy

Multi-step sequence triggered when a known contact starts checkout but doesn’t complete it. Typical flow: Email 1 (1h after abandon) → Email 2 with product image (24h) → Email 3 with discount (48–72h) → SMS/WhatsApp nudge (72h+). Show the specific abandoned products in each message. Dynamic product images and prices. Average revenue recovery: 5–15% of abandoned carts.

Browse Abandonment Flow

Priority: 🔴 Table-stakes · Competitors: Klaviyo, Omnisend

Triggered when a contact views a product page but doesn’t add to cart. Sends personalised “you were looking at this” email within 1–4 hours. Lower conversion than cart abandon but 10–20× higher volume of triggers.

Back-in-Stock Alerts

Priority: 🔴 Table-stakes · Competitors: Klaviyo, Back In Stock (Shopify app)

Visitor opts into restock notification on a sold-out product page. When inventory > 0, fire immediate email/SMS/WhatsApp alert to all opted-in contacts. Priority access (first-come-first-served) messaging increases urgency. Average conversion rate: 15–25% of waitlist.

Price Drop Notifications

Priority: 🟡 Differentiator · Competitors: Klaviyo, PriceWaiter

When a product’s price drops below a threshold (absolute or %, e.g. “now 20% off”), notify contacts who viewed/saved/wishlisted it. Combine with “only 5 left” inventory signal for maximum urgency.

Wishlist Abandonment Flow

Priority: 🟡 Differentiator · Competitors: Klaviyo, Wishlist Plus

Time-based reminders for contacts with saved wishlists: “Still thinking about it?” at 7 days, price drop alert if any wishlisted item goes on sale, low-stock warning when inventory dips below 5 units.

Post-Purchase Flow

Priority: 🔴 Table-stakes · Competitors: Klaviyo, Omnisend

Full post-purchase sequence: Order confirmation (minutes) → Shipping notification with tracking link → Delivery confirmation → Educational content (how to use the product) → Review request (day 7–14) → Cross-sell recommendation (day 21–30) → Win-back if no repeat purchase (day 60–90). First-time buyer vs. repeat buyer branch logic.

Win-Back / Re-Engagement Flow

Priority: 🔴 Table-stakes · Competitors: Klaviyo, ActiveCampaign

Automatically enrol contacts who haven’t purchased in X days (configurable per client: 60/90/180). Multi-step sequence: “We miss you” → best-selling product showcase → personalised discount → final “last chance” message → suppress from marketing list if no response.

Welcome Series (New Customer / New Subscriber)

Priority: 🔴 Table-stakes · Competitors: Klaviyo, Omnisend, Mailchimp

Trigger on first purchase or email opt-in. Multi-step: brand story → best sellers → social proof (reviews) → discount for second purchase. Highest open rates of any automated flow (40–60%).

Replenishment / Subscription Reminder

Priority: 🟡 Differentiator · Competitors: Klaviyo, Recharge

For consumable products (supplements, cosmetics, pet food), predict next purchase date based on average replenishment cycle and send a reminder before they run out. “Time to reorder?” with one-click reorder link.


17.21 eCommerce Product Intelligence & Merchandising

AI Cross-Sell / Upsell Recommendation Engine

Priority: 🔴 Table-stakes · Competitors: Klaviyo, Nosto, Barilliance

ML-powered product recommendations: “Frequently Bought Together”, “Customers also bought”, “Complete the look”. Real-time inference without batch retraining. Personalised per contact based on browse + purchase history. Surface in: post-purchase emails, abandoned cart emails, product page widgets, checkout upsell modal. Amazon credits 35% of sales to cross-sell/upsell — average AOV lift of 10–30%.

RFM Segmentation Dashboard

Priority: 🔴 Table-stakes · Competitors: Klaviyo, Drip

Auto-compute and maintain RFM scores (Recency, Frequency, Monetary) per contact. Map to named segments: Champions, Loyal Customers, Potential Loyalists, At Risk, Can’t Lose Them, Lost. Use as automation enrollment triggers and campaign filter criteria. Build on the existing Contact model — add rfmScore, rfmSegment, predictedClv, churnRisk fields.

Customer Lifetime Value (CLV) Prediction

Priority: 🔴 Table-stakes · Competitors: Klaviyo, Triple Whale

ML model predicting total future spend per customer. Weekly retraining as new orders arrive. Surface CLV tier in contact profiles. Use to: suppress low-CLV contacts from acquisition campaigns, prioritise high-CLV contacts for VIP treatment, set ad audience bids by CLV tier.

Churn Risk & Predicted Next Order Date

Priority: 🟡 Differentiator · Competitors: Klaviyo

90-day churn probability per contact (Low/Medium/High). Expected Date of Next Order (ENDO) based on individual purchase cadence. Fire win-back flow when churn risk crosses High threshold.

Product Review Collection & Management

Priority: 🔴 Table-stakes · Competitors: Yotpo, Stamped, Judge.me

Automated post-purchase review request flow (email + SMS + WhatsApp). Photo/video review submission. Review moderation dashboard. Q&A per product. Rating aggregation with structured data (JSON-LD) for Google rich results. Display reviews as social proof widgets on client landing pages.

UGC Collection & Shoppable Display

Priority: 🟡 Differentiator · Competitors: Yotpo, TINT, EmbedSocial

Aggregate customer photos/videos from Instagram (hashtag + tag), email submissions, and review submissions. AI auto-product recognition in customer images. Shoppable UGC gallery for product pages (click photo → buy product). Rights management for UGC usage.

Google Shopping Campaign Management

Priority: 🔴 Table-stakes · Competitors: Semrush, DataFeedWatch, Channable

Product feed submission to Google Merchant Center. Shopping campaign setup in Google Ads (product groups, bid strategies, custom labels). Feed health monitoring (missing attributes, disapproved products). Performance Max campaign creation with asset groups. ROAS measurement per product/category. Built on top of the existing packages/providers/google/src/google-ads.ts provider.

Dynamic Retargeting Ads (Google + Meta)

Priority: 🔴 Table-stakes · Competitors: Klaviyo, AdRoll, Criteo

Automatically show site visitors the exact products they viewed as they browse Google Display/YouTube and Facebook/Instagram. Uses the product feed + pixel data. Dynamic creative assembly (product image + price + CTA). Audience segmentation: viewers, cart abandoners, purchasers. Wire into existing Meta/Google providers.

Performance Max Campaigns

Priority: 🟡 Differentiator · Competitors: Google Ads, Semrush

AI-optimised Google campaigns that run across Search, Shopping, YouTube, Display, Discover, Gmail, and Maps from a single campaign. Requires asset groups (headlines, descriptions, images, videos) + product feed. ML-driven audience targeting and bid optimisation.


17.22 Loyalty, Referral & Subscription Programs

Points-Based Loyalty Program

Priority: 🟡 Differentiator · Competitors: Yotpo Loyalty, Smile.io, Zoho Thrive

Earn points on purchases, reviews, referrals, social shares, birthdays. Tiered structure (Bronze/Silver/Gold/Platinum) with progressive benefits. Points expiration rules. Branded loyalty hub page. Redemption as discount codes or product rewards. 5% retention increase → 95% profit increase (Bain & Company).

Referral Program

Priority: 🟡 Differentiator · Competitors: ReferralCandy, Smile.io, PartnerStack

Unique referral links per customer. Dual-sided incentives (referrer + new customer both rewarded). Anti-fraud mechanisms. Track referral chain and attribution. Wire rewards delivery into existing email/WhatsApp flows. Average: referred customers have 37% higher retention than non-referred.

Subscription Commerce Support

Priority: 🟡 Differentiator · Competitors: Recharge (Shopify), Chargebee, Stripe Billing

Recurring billing for physical product subscriptions (supplements, coffee, beauty boxes). Dunning management: smart retry logic on failed payments, multi-channel failure notifications (email + SMS + WhatsApp), escalating retry schedule (day 1 → 3 → 7 → 14). Subscription pause/skip/swap. Churn prevention portal for subscribers.

Gamification & Spin-to-Win

Priority: 🟢 Expansion · Competitors: Privy, OptiMonk, WheelOfPopups

Spin-the-wheel pop-up for email/SMS opt-in incentive. Scratch card reveals. Progress bars toward next loyalty tier. Gamification increases opt-in rates by 3–5× vs. standard discount pop-ups.


17.23 Customer Data Platform (CDP) & Unified Profiles

Current state: Contacts exist in the Contact table. No cross-channel identity resolution, no event timeline, no unified profile across web, email, WhatsApp, and purchase history.

Unified Customer Profile

Priority: 🔴 Table-stakes · Competitors: Klaviyo, Segment, HubSpot CDP

Single profile per contact aggregating: purchase history, email engagement, website behavior (pages visited, products viewed), WhatsApp interactions, support tickets, review submissions, loyalty points balance. Profile enrichment from 350+ data integrations. Real-time update on every event.

Identity Resolution (Cross-Device / Cross-Channel)

Priority: 🟡 Differentiator · Competitors: Segment, Lytics, mParticle

Stitch anonymous web sessions to known contacts when they identify (form fill, email click, WhatsApp opt-in). Merge duplicate profiles created across devices. Build a complete journey even before the contact first provides their email.

First-Party Event Tracking & Ingestion Pipeline

Priority: 🔴 Table-stakes · Competitors: Segment, Klaviyo, ActiveCampaign

JavaScript pixel + server-side event API to capture: page views, product views, add-to-cart, checkout started, purchase completed, search queries, video plays, form interactions. Store as an event timeline per contact. Privacy-first (first-party only; no reliance on third-party cookies — critical post-Chrome deprecation of third-party cookies).

Audience Segmentation Builder

Priority: 🔴 Table-stakes · Competitors: Klaviyo, ActiveCampaign, HubSpot

Visual drag-and-drop segment builder with conditions: demographic (location, language, device), behavioral (pages visited, products viewed, emails opened, purchase frequency), transactional (CLV tier, last order date, total spend), predictive (churn risk, next order date). “Segment AI” — natural language prompt → segment definition (Klaviyo-style). Use segments as automation triggers and campaign audience filters.

Priority: 🔴 Table-stakes · Competitors: All platforms

GDPR-compliant consent capture on forms and tracking pixels. DPDP Act (India) compliance: purpose limitation, data deletion on request, breach notification. Consent preferences stored per contact, respected by all send operations. Cookie consent banner for client websites.


17.24 Multi-Touch Revenue Attribution

Current state: No attribution of any kind. Confirmed as a required feature.

Attribution Model Engine

Priority: 🔴 Table-stakes · Competitors: HubSpot, Ruler Analytics, Dreamdata, Triple Whale (eCommerce)

Implement all standard models in parallel (each computed from the same event data, so the marketer can compare):

ModelLogicBest for
First Touch100% credit to first touchpointBrand awareness measurement
Last Touch100% credit to final touchpointClosing channel measurement
LinearEqual credit across all touchpointsBalanced view
Time DecayMore credit to touchpoints near conversionNurture sequence valuation
Position-Based (U-shaped)40% first + 40% last + 20% middleBoth awareness and closing
Data-Driven (ML)ML assigns credit by statistical contributionMost accurate; requires ≥1K conversions

Data sources to connect: Google Ads, Meta Ads, LinkedIn Ads, email campaigns, organic search (via GSC), social posts, WhatsApp campaigns, direct/referral (via UTM tags).

Revenue Attribution (not just Conversion Attribution)

Priority: 🔴 Table-stakes · Competitors: Ruler Analytics, Dreamdata

Connect every touchpoint to actual deal/order revenue — not just “a conversion happened”. For eCommerce: order value per channel. For B2B: closed deal ARR per channel. Transform reporting from lead counts to £/₹ values. Requires CRM deal + eCommerce order sync.

Customer Journey Visualisation

Priority: 🟡 Differentiator · Competitors: HubSpot, Dreamdata

Interactive timeline of every touchpoint a contact had before converting. Filter by channel, campaign, content type. Answer: “Which content pieces appear most often in the paths of high-value customers?”

View-Through vs. Click-Through Attribution

Priority: 🟡 Differentiator · Competitors: Triple Whale, Northbeam

Separate attribution windows for ad impressions (view-through, 1–7 days) vs. ad clicks (click-through, 7–30 days). Critical for measuring brand awareness campaigns where no direct click precedes conversion.

Incrementality Testing

Priority: 🟢 Expansion · Competitors: Triple Whale, Northbeam, Rockerbox

Holdout experiments that measure whether a marketing channel genuinely drives incremental conversions vs. conversions that would have happened anyway. Uses geo-split or randomised holdout groups. Answers “Did this channel actually cause the sale?” — the only true measure of causation vs. correlation.

eCommerce-Specific Attribution (DTC Mode)

Priority: 🟡 Differentiator · Competitors: Triple Whale, Northbeam

Shopify-native attribution dashboard: ROAS per channel, new customer acquisition cost (nCAC), repeat purchase rate by acquisition channel, contribution margin on automated revenue. Weekly retraining of the data-driven model as new order data arrives.


17.25 Conversion Rate Optimisation (CRO) Suite

Current state: No A/B testing, no heatmaps, no session recordings, no funnel analysis anywhere on the platform.

A/B Testing Engine

Priority: 🔴 Table-stakes · Competitors: VWO, Optimizely, HubSpot

Test email subject lines, send times, body variants, CTA copy, landing page headlines, and full automation paths. Statistical significance tracking (sequential likelihood ratio test — no peeking problem). Auto-winner selection when significance is reached. A/B test entire automation paths (path-level split testing). Sample size calculator with MDE (Minimum Detectable Effect) estimator.

Multivariate Testing (MVT)

Priority: 🟡 Differentiator · Competitors: VWO, Optimizely

Test combinations of multiple page elements simultaneously (headline × hero image × CTA button). Interaction analysis — understand how elements affect each other, not just in isolation. More efficient than running sequential A/B tests.

Heatmaps, Session Recordings, Funnel Analysis

Priority: 🟡 Differentiator · Competitors: Hotjar, Microsoft Clarity (free), Crazy Egg

Click/scroll/hover heatmaps on AI-generated landing pages. Session replay with rage-click and dead-click detection. Funnel analysis showing drop-off stages in multi-step flows (landing page → form → checkout). Visit segmentation (separate heatmaps by traffic source or device). Directly informs quality scoring of agent-generated landing pages.

AI-Powered Test Recommendation

Priority: 🟡 Differentiator · Competitors: VWO, Optimizely

Auto-suggest A/B tests based on heatmap data and session recordings: “30% of users drop off at the pricing section — test moving it below the testimonials.” Over 30% of 2024 CRO tool releases included AI-generated experiment suggestions.

On-Page Personalisation Engine

Priority: 🟡 Differentiator · Competitors: HubSpot, Optimizely, VWO

Dynamically adapt content on client landing pages based on visitor attributes: returning vs. new, traffic source (Google Ads → show ad-specific headline), geo (India → show INR pricing), device, or CRM segment (existing customer → show upsell vs. acquisition messaging).


17.26 WhatsApp Commerce & Marketing (India + Global)

Priority upgrade: Based on confirmed India + Global + eCommerce targets, WhatsApp features are upgraded to 🔴 Table-stakes across the board.

Current state: packages/providers/whatsapp/src/whatsapp.ts is built but nothing is wired. This is the single largest competitive gap for the Indian market.

⚠️ Provider recommendation: Going direct via Meta’s Cloud API takes 4–8 weeks for WABA (WhatsApp Business Account) approval. For faster time-to-market in India, use a BSP (Business Solution Provider): Gupshup, Kaleyra, or Interakt. BSPs have pre-approved access, pre-built festival template libraries, INR billing, and India-based support — compressing launch from months to days. Design packages/providers/whatsapp/ to abstract over the underlying BSP so the application code doesn’t change if the provider is swapped. Interakt is the most SMB/eCommerce-aligned; Kaleyra is better for enterprise volume; Gupshup has the broadest India coverage.

WhatsApp Product Catalog & Commerce

Priority: 🔴 Table-stakes · Competitors: WATI, Zoko, Interakt, WebEngage

Digital storefront within WhatsApp showing product listings, collections, pricing, real-time inventory. WhatsApp Cart: customers select multiple items, review cart, send order in a single message. Sync catalog from Shopify/WooCommerce in real-time. WhatsApp Pay / UPI payment collection within conversation thread. Order confirmation, shipment tracking, and delivery alerts all within the same conversation.

WhatsApp Broadcast Campaigns

Priority: 🔴 Table-stakes · Competitors: WATI, Zoko, Kaleyra

Segment-targeted broadcast messages to opted-in contacts. Meta-approved template message management (HSM templates). Multimedia support: images, videos, PDFs, product carousels. Delivery + read rate analytics. Festival season campaign templates (Diwali, Navratri, Holi, Eid — pre-built, compliant with Meta policies).

WhatsApp Automation Flows

Priority: 🔴 Table-stakes · Competitors: WATI, Interakt, Gallabox

Automated sequences: welcome flow on first opt-in, abandoned cart recovery (WhatsApp as a channel alongside email), post-purchase sequence, re-engagement, subscription renewal reminder. Interactive buttons (Quick Reply, Call-to-Action) and WhatsApp Flows (interactive multi-step forms within WhatsApp). NLP-based FAQ auto-responses.

WhatsApp AI Chatbot for Lead Qualification

Priority: 🟡 Differentiator · Competitors: WATI, Interakt, Landbot

AI chatbot that qualifies inbound WhatsApp enquiries: collects name/contact/requirement, scores against ICP criteria, routes to human agent or directly creates a Lead record. Uses the existing AI Chat infrastructure — surface it as a WhatsApp channel.

Priority: 🟡 Differentiator · India-specific

Embed UPI payment links directly in WhatsApp messages and email campaigns. One-tap payment collection for service businesses (clinics, salons, coaching, events). Integrates with Razorpay/Paytm payment link APIs.


17.27 India eCommerce-Specific Features

Cash on Delivery (COD) Order Tracking & Marketing

Priority: 🔴 Table-stakes for India · Unique to India

COD is the dominant payment method for Indian eCommerce (40–60% of orders depending on category). Specific flows needed: COD order confirmation SMS/WhatsApp, delivery attempt notification, COD-to-prepaid conversion campaign (“Pay online and get 5% off”), return-of-undelivered COD flow. Integrate with Shiprocket for real-time delivery status.

Festival Season Campaign Engine

Priority: 🔴 Table-stakes for India · Unique to India

Pre-built campaign templates and automation flows for: Diwali (Oct–Nov), Navratri / Durga Puja (Sept–Oct), Holi (March), Eid, Christmas, Republic Day / Independence Day sales, Big Billion Day / Great Indian Festival countdowns. Calendar-aware scheduler that flags upcoming festivals and suggests campaign creation 2–3 weeks ahead.

BNPL Integration (ZestMoney, LazyPay, Simpl)

Priority: 🟡 Differentiator · India-specific

Surface Buy Now Pay Later options in checkout-abandonment campaigns. “Did you know you can pay in 3 EMIs with LazyPay?” messaging. Track BNPL-enabled orders separately in attribution. BNPL is the fastest-growing payment method in India (projected 9% of eCommerce by 2024).

Justdial & IndiaMart Lead Import

Priority: 🟡 Differentiator · India-specific

Auto-import leads from Justdial and IndiaMart listings into the Lead pipeline with source tagging (justdial / indiamart). Both are primary inbound lead sources for B2B and local service SMBs in India. Justdial alone generates millions of monthly business enquiries.

Regional Language Content Generation

Priority: 🟡 Differentiator · India + Global

Generate marketing content (emails, WhatsApp messages, social posts, ad copy) in Hindi, Tamil, Telugu, Marathi, Kannada (India), plus Arabic (Gulf) and other regional languages. Build on the multi-language feature (§15.42). Festival campaigns in regional languages have significantly higher engagement in Tier 2/3 cities.

Tier 2/3 City Targeting & Vernacular SEO

Priority: 🟡 Differentiator · India-specific

Keyword research and content generation for regional search terms (non-English). Location-targeting in campaigns for Tier 2/3 cities (Jaipur, Surat, Coimbatore, etc.). Meesho-style value messaging for price-sensitive segments. Vernacular SEO keyword data via DataForSEO (supports 190+ countries/regions).

DPDP Act Compliance (India Data Protection)

Priority: 🔴 Table-stakes · All India-deployed clients

India’s Digital Personal Data Protection Act (2023) requirements: consent capture and storage per contact, purpose-limitation enforcement (only use data for stated purpose), data deletion workflow on user request (30-day SLA), data breach notification within 72 hours, data localisation option (India-resident data stays on India servers). Non-compliance exposes platform and clients to penalties.

GDPR Compliance (Global Clients)

Priority: 🔴 Table-stakes · All global clients

EU/UK GDPR requirements: lawful basis documentation for data processing, right to erasure (delete contact + all their data on request), data portability (export contact data as CSV/JSON), consent management for email/SMS opt-ins, Data Processing Agreement (DPA) template for B2B clients.


Summary: Competitive Gaps by Priority (Updated)

PriorityCountKey Areas
🔴 Table-stakes32Automation builder, A/B testing, rank tracking (DataForSEO¹), keyword gap, technical SEO UI, Shopify/WooCommerce integration, abandoned cart, post-purchase flow, welcome series, win-back flow, product feed management, Google Shopping, RFM + CLV, unified customer profiles, first-party event tracking, segmentation builder, attribution engine, revenue attribution, WhatsApp campaigns + flows + catalog (via BSP²), COD tracking, festival campaigns, DPDP, GDPR, review collection, deal pipeline, CRM integrations (Zoho), UTM management, social listening, automated client reports, multi-channel dashboard, form builder
🟡 Differentiator38Predictive lead scoring, churn risk, AI upsell engine, dynamic retargeting, back-in-stock/price-drop flows, loyalty program, referral program, subscription dunning, UGC + shoppable gallery, Performance Max, Surfer-style content editor, internal linking, local SEO + citations, schema markup, AI search visibility, competitor traffic estimation, customer journey viz, view-through attribution, eCommerce attribution dashboard, CRO heatmaps, session recordings, A/B MVT, personalisation engine, WhatsApp chatbot, BNPL flows, Justdial/IndiaMart import, regional language content, influencer management, employee advocacy, workspace isolation, trend forecasting, budget pacing, local rank heatmap, SERP feature tracking, identity resolution, NPS surveys, chatbot lead capture, visual grid view, ABM³
🟢 Expansion10Incrementality testing, gamification/spin-to-win, product analytics, programmatic SEO, Pinterest, RCS messaging, FOMO widgets, YouTube content, webinar integration, Bing Webmaster

Footnotes:

  1. DataForSEO¹ — Verify India vernacular keyword quality before committing. If insufficient, use a hybrid approach: DataForSEO (global) + Semrush API (India regional). See §17.18 for details.
  2. WhatsApp BSP² — Use Gupshup, Kaleyra, or Interakt (not direct Meta Cloud API) for faster WABA approval and pre-built India festival templates. See §17.26 for details.
  3. ABM³ — Priority upgrades to 🔴 Table-stakes if B2B agencies are confirmed as a target segment. See §17.6 for the full ABM feature set.

Sources: HubSpot · Sprout Social · Semrush · Ahrefs · DataForSEO · AgencyAnalytics · Planable · ActiveCampaign · Klaviyo · Omnisend · Yotpo · Hotjar · CoSchedule · BrightLocal · WATI · Zoko · Clearscope · Surfer SEO · Triple Whale · Northbeam · Rockerbox · Ruler Analytics · VWO · Optimizely · Recharge · Smile.io · India eCommerce analysis (Flipkart/Meesho/Dukaan/Shiprocket) · Indian payment gateway research · April 2026

© 2026 Leadmetrics — Internal use only