Analytics Dashboard in CXT (e-Courier model) that connects to CXT data set
๐โโ๏ธ Problem / Context
CXT currently has no analytics dashboards, while e-Courier already operates mature Metabase dashboards backed by Snowflake views.
Leadership has decided to pursue a fast-time-to-value approach for CXT by reusing e-Courierโs dashboards rather than building a new analytics platform immediately.
To achieve this, CXT must supply a Snowflake view whose schema, column names, data types, semantics match the e-Courier analytics view powering the existing dashboards.
Metabase will then clone e-Courierโs dashboards and simply point the copies to the CXT Snowflake data sourceโallowing dashboards to work out of the box with no redesign.
This requires:
-
Reviewing the list of fields used in e-Courierโs dashboards.
-
Assessing whether CXT has equivalent data available in its OLTP databases.
-
Identifying data gaps and determining how to derive or engineer missing fields.
-
Building data pipelines from CXT Azure SQL โ Snowflake โ transformed analytics view.
-
Ensuring the final Snowflake view for CXT is schema-identical to e-Courierโs.
This approach delivers dashboards quickly while minimizing engineering and product effort.
Resources:
-
Dashboard data dictionary (ecourier): https://cxtsoftware.sharepoint.com/:x:/s/Product-DataandPlatformTechnology2/IQAgPZQxxt65Trkp862DkU4rAdY8ZTQwSGtAc3gZR9c4rA0?e=lzP7uF
-
Dashboard short presentation VIDEO (45 min) & Meeting notes
-
Acces credentials to Demo side of ecourier Metabase implementation: 1Password (e-Courier Analytics Dashboard Demo)
๐ User Story
As a CXT Client Portal user,
I want access to operational analytics dashboards,
so that I can monitor performance and make data-driven decisions without exporting data manually.
๐จ Design
-
No new dashboard design requiredโMetabase dashboards will be cloned from e-Courier.
-
The required schema is defined by the e-Courier Snowflake analytics view provided in the data-field export.
-
Transformation logic must produce a final Snowflake view for CXT matching that schema exactly.
๐ Acceptance Criteria
-
Complete mapping between e-Courier required fields and CXT source fields.
-
All data is injected into Snowflake and data is there
-
Snowflake views are being produced with CXT data exactly like ecourier data.
-
Metabase connects to Snowflake and uses CXT data to power the dashboards successfully.
๐ Scope & Phasing - DATA
Phase 1 โ Demo Readiness (Current Scope)
Data Flow
-
One-way, read-only data flow: CXT โ Snowflake โ Metabase
-
No write-back or mutation of CXT data
Order Coverage
-
On-demand orders only
Data Model & Contract
-
Snowflake views schema-identical to e-Courier analytics contracts
-
Field-by-field mapping validated between:
-
CXT operational data
-
e-Courier analytics schema
-
-
Required transformations and resolved data gaps included
-
Supporting datasets:
-
Customers
-
Drivers
-
Services
-
Sites
-
Dashboards
-
Clone and reuse existing e-Courier Metabase dashboards
-
Preserve:
-
Charts
-
Metrics
-
Filters
-
Naming and semantic meaning
-
-
Minimal or no dashboard redesign
Tenancy & Access
-
Tenant-aware dashboards (per courier company)
-
Access via redirect from CXT Operations to Metabase
Validation & Demo Enablement
-
End-to-end validation using:
-
Sample data
-
Controlled production data (read-only, privacy-compliant)
-
-
Demo-ready visual fidelity and correctness
Phase 2 โ Future Considerations (Non-Blocking)
Potential Inclusions
-
Routed orders
-
CXT-specific dashboards and KPIs
-
Deeper in-app analytics embedding
-
Performance tuning and refresh optimisations
๐ Risks & Mitigations
-
Data usage variability
-
Customer-specific workflows and data entry patterns may differ from assumptions embedded in existing e-Courier dashboards. When CXT data is visualised in Metabase, discrepancies such as unexpected nulls, unexpected value types, skewed metrics, or filter/join inconsistencies may appear.
-
Impact
-
These discrepancies may require targeted adjustments to Metabase queries, filters, or calculated fields to ensure accurate and consistent dashboard behavior, potentially introducing iteration during validation.
-
Semantic differences
-
Even with schema parity, semantic differences in how fields are populated or interpreted across tenants may surface, leading to metric inconsistencies between customers.
-
Mitigation approach
-
Validate early using both sample and controlled production data, review dashboards with live data connected, and apply minimal, scoped Metabase adjustments while preserving overall structure and semantics.
-
Demo readiness
-
Final demo tenants will be selected only after data behaviour is understood; fallback to known-good sample data remains available to reduce demo risk.
๐ โโ๏ธ Out of Scope
-
Fabric/Lakehouse, Azure ML, long-term data platform selection.
-
Redesigning dashboards or changing KPI definitions.
-
Unifying or merging CXT and e-Courier operational schemas.
๐ UX, Enrollment & Commercialization
This Epic delivers a phased analytics experience, balancing short-term delivery with a clear long-term product vision.
๐จ 1. User Experience (UX)
Phase 1 โ Initial Experience
-
A new โPremium Analyticsโ button is added top left to the multiple dashboards top menu in the Dashboard section in the navigation, both in Classic app and the web Operations app.
-
Clicking Premium Analytics opens the Metabase instance in a new view/tab. (if enabled)
-
The user logs in using a separate Metabase account (email + password).
-
Once authenticated, the user sees:
-
prebuilt analytics dashboards,
-
data filtered and scoped only to their CXT account (tenant).
-
Dashboards are read-only.
This phase prioritizes speed and functional validation over seamless UX.
Phase 2 โ Seamless Experience (Future)
-
Analytics is integrated via Metabase Embedded Analytics SDK.
-
Seamless login using SSO (no separate Metabase credentials).
-
Dashboards render directly inside CXT Operations.
-
Authentication, tenant scoping, and permissions handled automatically.
๐ 2. Enrollment & Activation
Phase 1 โ Manual Enrollment
-
Customer submits an Analytics request via Account Management (AM).
-
Customer signs the required contract addendum.
-
AM requests activation from SysOps / SaaSOps.
-
SysOps performs manual provisioning:
-
Create / configure the Snowflake DB connection.
-
Provision or configure the Metabase instance.
-
Create a Metabase user (email + invitation).
-
Associate the user with the correct tenant-specific data scope.
-
Enable the Analytics button for the customer in CXT Operations.
This process ensures controlled rollout and minimizes operational risk.
Phase 2 โ Self-Service Enrollment (Future)
-
Analytics is offered via CXT Marketplace.
-
Customer can:
-
activate Analytics themselves,
-
accept terms digitally,
-
gain immediate access.
-
System automatically provisions:
-
Metabase access,
-
data source connections,
-
permissions and tenant scoping.
-
No manual SysOps intervention required.
๐ 3. Billing & Commercial Model
Phase 1 โ Manual Billing
-
Analytics is treated as a sellable feature.
-
Billing and entitlement tracking handled manually by Account Management.
-
No automated billing enforcement in the product.
-
Usage tracked operationally (outside the platform).
Phase 2 โ Automated Billing (Future)
-
Analytics becomes a formal paid add-on.
-
Billing automated via HubSpot billing integration.
-
Entitlements enforced by the platform.
-
Account Management oversight remains, but manual tracking is removed.
๐ Summary
-
Phase 1 delivers a functional, sellable analytics experience quickly using manual enrollment and billing for FMM event mid Feb 2026.
-
Phase 2 evolves the experience to a fully integrated, self-service, and automated model.
Additional notes:
-
Data agreed to be refreshed with a 15 min pace
-
For the demo purpose we will use the 9903 environment, to pull all historical data (in parallel we will do the same for 9905 environment and compare the two)
-
For the demo purpose we agreed to focus on the On demand orders as they resemble better with courier orders. Routed would be addressed later
-
After we clarify the data to be transported, we will seek for embedding the Metabase UI into CXT Operations app. https://www.metabase.com/docs/latest/embedding/sdk/introduction?use_case=eanohttps://www.metabase.com/docs/latest/embedding/sdk/introduction?use_case=ea
Linked epic: https://cxtsoftware.atlassian.net/browse/DPE-46