Skip to Content
HelpHelp System — Architecture & Overview

Help System — Architecture & Overview

Status: [Live] — full improvement suite built April 2026

Purpose: In-app help content for the Dashboard, DM Portal, and Manage Portal — surfaced through a contextual slide-in drawer triggered by ? icons, a dedicated /help directory, and a Fuse.js-powered searchable Help Center.

Topic counts: Dashboard 56 · DM Portal 26 · Manage Portal 21


Architecture (April 2026)

packages/common/src/help-types.ts ← HelpPageData / HelpSection types (10 kinds) packages/ui/src/HelpPage.tsx ← full renderer; breadcrumbs; deep links; prev/next; ratings; related packages/ui/src/HelpCenter.tsx ← directory with Fuse.js search, ?-shortcut, category filter packages/ui/src/HelpRating.tsx ← thumbs up/down rating widget packages/ui/src/HighlightText.tsx ← Fuse.js match-index highlight renderer packages/ui/src/lib/slugify.ts ← section anchor ID generator apps/dashboard/src/app/(dashboard)/help/ ├── _data/index.ts ← 41 topics (26 original + 15 content-gap topics) ├── page.tsx ← /help (HelpCenter + onSearch analytics) ├── [slug]/page.tsx ← dynamic route (replaces 26 static dirs) ├── [slug]/HelpPageClient.tsx ← client wrapper with onRate action └── actions.ts ← rateHelpPage() + recordHelpSearch() server actions apps/dashboard/src/components/help/ ├── HelpDrawerProvider.tsx ← slide-in drawer context + open(slug, hash?) / close() └── HelpTrigger.tsx ← <HelpTrigger slug="..." label="..." /> — used on all 22 feature pages apps/api/src/routers/help.ts ← POST /tenant/v1/help/rating + /search-event

Dashboard layout.tsx wraps with <HelpDrawerProvider>.


Data Shape

interface HelpPageData { slug: string; title: string; description: string; category: HelpCategory; // 13 valid values — see below categoryLabel: string; icon: string; // Lucide icon name backHref: string; // required — link shown in breadcrumb backLabel: string; tags?: string[]; sections: HelpSection[]; related?: string[]; // slugs of related topics }

Section Types

kindPurpose
textHeading + paragraph blocks with **bold** support
pipelineVisual pipeline stage cards
stepsNumbered step-by-step list
statusColour-coded status guide
featuresIcon + title + body items
actionsSame as features, different visual weight
infoHighlighted info callout box
olOrdered list with optional intro/outro
link-forwardLink to a related help topic
screenshot<figure><img/><figcaption/> — assets in apps/dashboard/public/help/

Categories

Category keyLabelTopics
pipelinePipeline3
contentContent6
planningPlanning5
seo-visibilitySEO & Visibility5 (incl. seo-overview, backlinks)
analyticsAnalytics4 (incl. reports-overview)
platformPlatform9 (incl. channel-troubleshoot, leads-overview, landing-pages-overview)
ai-agentsAI Agents2 (agent-runs, agent-chat)
billingBilling & Credits2 (billing, plan-features)
notificationsNotifications1
systemSystem3 (account-settings, workspace-settings, team-members)
dm-toolsDM ToolsDM portal — 7 topics (approvals, agents, activity-log, overview, profile, users, requests)
adminAdminManage portal — overview, directories
tenants-usersTenants & UsersManage portal — tenants, users

DM Portal Help Topics (26)

apps/dm/src/app/(dm)/help/_data/index.ts

SlugTitleCategory
approvalsApprovalsdm-tools
agentsAI Agentsdm-tools
activity-logActivity Logdm-tools
overviewDM Overviewdm-tools
pipelineClient Pipelinepipeline
contextClient Contextpipeline
strategyMarketing Strategypipeline
deliverable-planDeliverable Planpipeline
activitiesActivitiesplanning
deliverablesDeliverablesplanning
goalsGoalsplanning
calendarContent Calendarplanning
blogBlog Postscontent
socialSocial Postscontent
newslettersEmail Newsletterscontent
landing-pagesLanding Pagescontent
content-briefsContent Briefscontent
mediaMedia Librarycontent
seoSEO (keywords, backlinks, link building)seo-visibility
ai-visibilityAI Visibilityseo-visibility
reportsReportsanalytics
crm-contactsLeads & Contactsplatform
billingBilling & Creditsbilling
profileYour Profiledm-tools
usersTenant Usersdm-tools
requestsContent Requestsdm-tools

Manage Portal Help Topics (21)

apps/manage/src/app/(manage)/help/_data/index.ts

SlugTitleCategory
tenantsTenantstenants-users
usersUserstenants-users
agentsAgentsai-agents
skillsSkillsai-agents
invoicesInvoicesbilling
plansPlansbilling
usageCredits & Usagebilling
costsLLM Costsbilling
transactionsCredit Transactionsbilling
templates-emailEmail Templatesnotifications
templates-telegramTelegram Templatesnotifications
push-notificationsPush Notificationsnotifications
repurposing-templatesRepurposing Templatescontent
blog-postsBlog Postscontent
social-postsSocial Postscontent
audit-logsAudit Logssystem
rag-configRAG & AI Configsystem
deliverable-settingsDeliverable Settingssystem
overviewPlatform Overviewadmin
directoriesBacklink Directoriesadmin

API

  • POST /tenant/v1/help/rating — upserts HelpPageRating (tenantId+slug unique); body: { slug, rating: "helpful"|"not_helpful" }
  • POST /tenant/v1/help/search-event — creates HelpSearchEvent; body: { query, resultCount, portal? }
  • Both registered in app.ts + index.ts

DB Models

HelpPageRating@@unique([tenantId, slug]), table help_page_rating HelpSearchEvent@@index([tenantId, createdAt]), table help_search_event


How to add a new help page (dashboard)

  1. Add HelpPageData to _data/index.ts — all fields required; category must be a valid HelpCategory
  2. Done — dynamic [slug]/page.tsx renders it automatically; appears in search immediately

How to add a help trigger to a new client page

import { HelpTrigger } from "@/components/help/HelpTrigger"; // In JSX: <HelpTrigger slug="my-slug" label="Help: My Page" />

Do not add Link or HelpCircle imports for help icons.


Improvement Roadmap

#DocStatus
1Contextual Help DrawerBuilt
2Was This Helpful? RatingsBuilt
3Search Improvements (Fuse.js)Built
4Content Gaps — 15 new topicsBuilt
5Screenshot Section TypeBuilt (assets pending)
6Prev/Next Navigation & BreadcrumbsBuilt
7Search AnalyticsBuilt
8Related ArticlesBuilt
9Section Deep LinksBuilt

© 2026 Leadmetrics — Internal use only