Skip to content
N1
CRM / Bitrix24 · BI dashboard

A custom BI dashboard on top of Bitrix24

Client: Automotive marketplace, NDA Category: CRM / Bitrix24 Stack: PHP, Bitrix24 D7, SQL reports, TTL cache, whitelisted AJAX Timeline: 4–6 weeks
Problem

At an automotive marketplace, management and the call center needed a single "inquiry to visit to sale" funnel on top of Bitrix24 — the CRM's built-in reports did not cover that view.

Constraints

Some classic call-center metrics (SL/ASA/ATA) simply cannot be computed without telephony data; mixing different date sources (lead vs. visit) skews percentages unless kept separate.

What I did
  • 20 parameterized SQL reports on top of live CRM data with safely substituted filters
  • A "lead to visit to deal to sale" funnel with intermediate metrics (contact rate, occupancy, etc.)
  • A multi-level TTL cache with stale fallback and locks — the dashboard never hits the CRM with heavy queries directly
  • 33 whitelisted AJAX actions with permission and session checks
  • Honest documentation of the limitations of every disputable metric instead of dressing up the numbers
  • A head-of-sales dashboard per dealership: metrics are calculated by the deal's own dealership, and any number expands into a list of deals with a click
  • A marketing dashboard by business line and traffic source; comparison with the same dates of the previous month on every page
  • A shared report cache with an access check before the cache: the first build takes 7.2 s, the next user gets it in 0 ms
  • A "who sees which report" access registry with the source of each grant, access granted without a deploy, and a unified navigation header across reports
Screenshots
Screenshot coming soon Dashboard overview tab: the inquiry-to-visit-to-sale funnel
Screenshot coming soon Calls and agents tab
Screenshot coming soon Business lines tab with a metrics breakdown

Architecture
Live Bitrix24 data → SQL reports → Cache layer (live/cached/pre-aggregated) → Tabbed dashboard
Result

Management, the call center, heads of sales and marketing got a set of dashboards on live CRM data instead of Excel exports: funnel, dealership, marketing — with a shared cache, click-through drill-down on every number and clearly documented metric limitations. Access to 6 reports is managed from a single registry without a deploy.

What can be reused
Live/cached/pre-aggregated report provider layer TTL cache with stale fallback for heavy SQL reports Approach to honestly documenting metric limitations