
Charts above the Cues. Nothing leaves the tenant.
A professional charting dashboard that sits at the top of every Role Center, above the standard Cues — which it never modifies. 92-source curated catalog plus a generic builder over any permitted table. Two renderers (ApexCharts + Chart.js) from one normalised contract. Six region packs. Zero outbound calls.
- Above the Cues · standard Role Center never touched
- 92-source curated catalog + generic table builder
- Two renderers · one normalised contract
- Non-blocking · Page Background Tasks · cache-first
- 6 region packs · IN · AE · SA · EU · US · AU
- Zero outbound calls · embedded libraries · air-gap friendly
Built for tenants where data residency and air-gap matter
BC's standard Cues are great. Beyond them, customers reach for Power BI — and reach is exactly what most BC tenants do not want.
Power BI is powerful — and it's also another tenant, another licence, another data-residency conversation, another scheduled refresh, another export pipeline. For many BC customers — especially in regulated industries or air-gapped deployments — that's a heavier answer than the question. We built Insight to deliver charting that sits inside the BC tenant, reads through BC permissions, never makes an outbound call, and renders directly in the Role Centre the user is already on.
Chart libraries embedded as control-addin resources. No CDN load, no telemetry, no external fonts. Air-gapped tenants supported.
Sales trends, AP/AR ageing, top customers / items / locations, KPIs over stable base tables — plus 6 region packs of tax dashboards.
Role Center stays interactive while widgets compute in read-only child sessions. A failing widget never breaks the Role Center.
Insight sits at the top. The standard Role Center stays exactly as Microsoft shipped it.
Additive Page Extensions with `addfirst`. The original Role Center layout is never modified. Disable Insight for any user or company and the Role Center returns to vanilla — zero residue.
Definition → Engine → Provider → Serializer → Renderer.
The pipeline is deliberate. Providers don't know about chart libraries; the serializer is the single writer of the normalised series JSON; the dispatcher in the control add-in is the only thing that knows about ApexCharts and Chart.js.
Widget Definition
Curated catalog entry or generic builder selection. Source, measure, dimension, date field, chart type, filters, refresh TTL.
Widget Engine
Selects the right IDataSource via Source Kind enum: Curated Provider (catalog metadata) or Generic Provider (RecordRef/FieldRef).
Provider
Aggregates through the shared RecordRef aggregator. Permission-true reads. Sensitive fields excluded. Emits data points + light metadata.
Serializer
Single writer of the normalised series JSON. Currency formatting via Intl. Locale-aware dates and numbers. RTL flag for Arabic.
ChartHost dispatcher
JS dispatcher in the control add-in maps the normalised contract to either ApexCharts or Chart.js per widget. No re-compute on renderer change.
Curated catalog for finance teams. Generic builder for power users.
Both flow through the same RecordRef aggregator. Both honour BC permissions. Both can land on the same Role Center.
Curated catalog
92 sources at install · zero-config for users
Each source registered in the SFDB catalog with table, measure, dimension, date field and fixed filter. Resolved by the curated provider through the shared aggregator. Users see polished dashboards on day one — no configuration required.
- Sales / AP / AR / Inventory trends and breakdowns
- Top customers, items, locations, salespeople
- Region-specific tax and compliance KPIs
- Sources flagged Compute Supported = false until you wire a compiled query
Generic builder
Any permitted table · admin-allowlisted · governed
Pick a table from the allowlist; choose measure, dimension, aggregation, chart type, date bucket and filters. Permission-true reads via RecordRef/FieldRef. Sensitive-field exclusions hide payroll, salary and other private fields globally.
- Power users build dashboards without IT or AL
- Allowlist + sensitive-field exclusions enforced by the engine
- Save personal or share company-wide via standard BC personalisation
- Choose renderer per widget — ApexCharts or Chart.js
ApexCharts + Chart.js, both MIT, both embedded.
No CDN. The libraries ship as control-addin resources. The dispatcher in the add-in renders whichever the widget specifies, from one normalised series JSON.
Tax and compliance dashboards out of the box, per market.
Each pack registers its sources into the same SFDB catalog — no engine changes. Arabic drives full right-to-left layout; number, date and currency formatting follow locale via Intl.
GST KPIs + statutory dashboards
VAT + ZATCA awareness
VAT + ZATCA Phase 2 KPIs
Per-country VAT + EC Sales List
State + local tax + 1099
BAS + GST
Multi-language with Arabic RTL. XLIFF-based translations · Intl-driven locale formatting · full right-to-left layout · `dir` attribute flowed end to end from BC user-locale to the chart axes.
Built for tenants where data residency matters.
Permission-true reads, administrator allowlist, sensitive-field exclusions, zero outbound calls. The dashboard never leaks data a user couldn't already see in BC.
Zero outbound calls
Chart libraries embedded as control-addin resources. No CDN load. No telemetry. No external fonts or scripts. Air-gapped tenant friendly.
Permission-true reads
Generic provider uses RecordRef/FieldRef. If the user can't read the table in BC, they can't put it on a dashboard. The Role Center never leaks data.
Administrator allowlist
Only tables the admin has explicitly enabled appear in the Widget Builder. Plus a global sensitive-field exclusion list (e.g., payroll fields on Employee).
Non-blocking compute
Widgets compute in Page Background Tasks (read-only child sessions). Role Center stays interactive. Failing widget never breaks the Role Center.
Audited setup changes
Catalog edits, allowlist changes and sensitive-field exclusions all go through standard BC Change Log. Auditor-grade trace of who changed what.
AppSourceCop compliant
SFDB affix on every object. Object range 54400-54739. Three role-based permission sets: Read, User, Admin. AppSource submission roadmap-ready.
Day-one curated dashboards. Bespoke in 1-2 weeks.
Assisted Setup auto-enables the right region pack on install and seeds the catalog with sane defaults. Tuning the surfaced widgets per Role Center is typically a one-week consulting engagement. Bespoke dashboards via the generic builder are workshop-style, 1-2 weeks per business area.

AppSourceCop compliant. Per-Tenant Extension; AppSource roadmap-ready.
1
Publish the core extension + one region pack matching your company country. Assisted Setup seeds the catalog, allowlist, themes and a trial licence.
2
Review the 92-source library. Decide which 6-8 widgets surface on each Role Center (Accountant, Sales Manager, Warehouse, Bookkeeper, etc.). Set filters and date ranges per role.
3
Configure which tables business users can pull into the generic builder. Set sensitive-field exclusions. Pick which renderer (ApexCharts vs Chart.js) is the default.
4
Train Role Centre owners (typically one per role). Pin the most useful curated widgets per role. Let power users build their own via the Widget Builder.
5
Add bespoke compiled queries for sources marked Compute Supported = false (ageing buckets, GP %, budget vs actual). Add a 7th region pack if you expand into a new country.
Frequently asked questions
Business Central v25 and above, both SaaS (Cloud) and On-Premises. AL runtime 16.0, Cloud target — AppSourceCop compliant with the SFDB affix. Object range 54400-54599 (core) plus 54600-54739 (region packs). Distributed as a Per-Tenant Extension; AppSource publication is on the roadmap.
Bring your Role Center. We will install + curate live.
A 45-minute working session, not a sales pitch. Sign us in to a sandbox connected to your BC; we publish the core + your region pack, run the Assisted Setup, and walk through the curated dashboards on your actual Role Center. Then we build one widget against your data via the generic builder so you can feel the round-trip.
- Live install + region pack activation in your BC sandbox
- Curated dashboards on your real Role Center data
- One generic-builder widget against your actual tables
- Honest answer on which 6-8 widgets to pin per role
