/intelligence answers "what do people actually read, share, and download —
and who do they turn out to be?" It aggregates content-engagement telemetry
(views, unique visitors, 50%/100% reads, median engaged time, shares,
share-driven visits, downloads, CTA clicks) per content path over 7/30/90-day
windows. The page shell (page.tsx) renders client-page.tsx, which tabs
between a Content table and a Shares panel (SharesPanel.tsx).
Read rates divide by unique visitors, not views: reads50 counts distinct
visitors past the fold, so dividing by views could read over 100% for
repeat visitors. The Shares tab scans raw events and is therefore capped at 30
days — switching to it clamps a 90-day selection down.
| Route | Purpose | Guard |
|---|---|---|
/intelligence | Content + Shares engagement dashboard | org:content:view (layout.tsx) |
The module gate lives in
layout.tsx
via requirePermission("org:content:view"), matching the nav entry exactly.
| Route | Purpose | Guard |
|---|---|---|
GET /api/workspace/intelligence/content | Per-path engagement rollup for the Content tab | org:content:view or org:marketing:view |
GET /api/workspace/intelligence/shares | Raw share-event scan for the Shares tab (max 30 days) | org:content:view or org:marketing:view |
org:content:view