Analytics · CRM dashboard panels (overview, channels, demographic)
Three ready-made CRM panels: an overview of registered and active users by channel; a channels panel with registration trends and consent percentages compared to the previous month and year; and a demographic panel with age ranges, gender, marital status, influence zone and data-completeness measures.
| Area | Analytics |
| Routes | index · analytics.dashboards.show |
| Centre modules | analytics · crm |
| Staff levels | as per the dashboard’s role scope |
| Models | stats |
| UI label | overview / channels / demographic |
| Coverage | 5 use cases · 2 happy · 2 failure |
How it works
The demographic panel doubles as a data-quality view — qualityData reports what proportion of records have a valid email, phone, VAT number and postal code. The channels panel is explicitly comparative: it computes prevMonthHasEmailPercentage, prevYearHasEmailPercentage and the equivalents for mail-notification consent, so trends are visible without a separate report. Channel breakdown covers app, web, play centre, social wifi and other; age buckets are <18, 18-24, 25-34, 35-44 and >45. All figures come from the stats service.
Use cases
Why someone opens this (5)
- Tracking how registration volume and quality move month over month.
- Seeing which acquisition channel produces the most registrations.
- Checking marketing-consent rates before planning an email campaign.
- Understanding the age and gender profile of the customer base.
- Spotting that a channel is producing records without phone numbers.
Path map
flowchart LR F(["CRM dashboard panels overview, channels, demogr…"]):::feat F --> H1["Consent trend reviewed"]:::ok F --> H2["Data quality assessed"]:::ok F -.-> X1["Stats unavailable"]:::bad F -.-> X2["Period with no registrations"]:::bad classDef feat fill:#8a6b10,stroke:#8a6b10,color:#ffffff,font-weight:bold classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13
Happy paths
Consent trend reviewed
- User opens the channels panel for the current month.
- Mail-notification and third-party consent percentages render alongside the previous month and previous year.
- The registrations chart shows the trend by channel.
Data quality assessed
- User opens the demographic panel.
qualityDatashows the share of records with a valid email, phone, VAT number and postal code.- The user exports the gaps from the customer list for follow-up.
Failure paths
Stats unavailable
Cause — The
statsservice request fails.What happens — No dedicated error state in these components — tiles and charts render empty or at zero, which can be mistaken for genuinely zero data.
Period with no registrations
Cause — Empty dataset for the selected range.
What happens — Percentages derived from a zero denominator; the components do not distinguish ‘no data’ from ‘0%‘.
QA checklist
Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.
- ✅ Consent trend reviewed
- ✅ Data quality assessed
- ⛔ Stats unavailable
- ⛔ Period with no registrations
Implementation
app/components/dashboard/dashboard-crm/overview.jsapp/components/dashboard/dashboard-crm/channels.jsapp/components/dashboard/dashboard-crm/demographic.jsapp/components/nf-kpi.jsapp/components/nf-chart-area.jsapp/components/nf-chart-bar.jsapp/components/nf-chart-pie.jsapp/components/nf-chart-stacked.jsapp/components/nf-chart-timeseries.jsapp/services/stats.js
Translation keys (30)
Key English overviewOverview channelsChannels demographicDemographic channels.appApp channels.webWeb channels.play-centerPlay center channels.social-wifiSocial wifi channels.otherOther dashboards.registered-usersTotal registered users dashboards.active-usersActive users dashboards.age-rangeAge range dashboards.genderGender dashboards.menMan dashboards.womenWoman dashboards.otherOther dashboards.emailValid email dashboards.phonePhone dashboards.vat-numberVat number dashboards.zip-codePostal code dashboards.visit-typesVisit types dashboards.mail-notif-consentMail notifications dashboards.mail-partner-consentThird party notifications dashboards.0-17< 18 dashboards.18-2418-24 dashboards.25-3425-34 dashboards.35-4435-44 dashboards.45-99> 45 dashboards.aloneAlone dashboards.coupleCouple dashboards.familyFamily
Related
- Same area — Dashboard viewer · Data-quality dashboard
- Behind the same module — Dashboard viewer · Data-quality dashboard · Dashboard configuration
Generated from doc/feature-inventory.json · id analytics-crm-panels · commit 276788ca6