Custom Bitrix24 Project Dashboards: Real-Time Portfolio Analytics

Custom Bitrix24 Project Dashboards: Real-Time Portfolio Analytics The project office manager opens the morning dashboard and sees standard statistics: task counts, statuses, a Gantt chart. That's not enough for managing a portfolio of 10 projects. You don't see which project is a week behind plan

Our competencies:

Frequently Asked Questions

Custom Bitrix24 Project Dashboards: Real-Time Portfolio Analytics

The project office manager opens the morning dashboard and sees standard statistics: task counts, statuses, a Gantt chart. That's not enough for managing a portfolio of 10 projects. You don't see which project is a week behind plan, which developer is overloaded, or which tasks are burning without deadlines. Our client, an IT company with 8 parallel projects and 35 engineers, faced exactly this issue. A custom dashboard we developed reduced status report preparation from 2 hours to 15 minutes — an 8x savings. Additionally, we visualized workload and risks, which reduced overdue tasks by 40%. Such a dashboard is 5x faster than standard reports: data updates in real time without manual exports.

Standard analytics lack depth. Built-in reports don't show burndown charts, don't compare plan vs. actual, and don't aggregate data across the portfolio. Without these metrics, decisions are made intuitively, not data-driven. We'll explain how to build a truly useful dashboard.

Why Standard Bitrix24 Reports Fall Short

Built-in analytics do not provide:

  • Planned vs. actual progress over time
  • Sprint burndown/burnup metrics
  • Visualization of employee workload distribution
  • Consolidated dashboard across multiple projects
  • Alerts when deviating from plan

These metrics are critical for managing project portfolios. Without them, you risk missing delays and overloads.

How a Custom Dashboard Works

Bitrix24 project and task data is available via REST API. We retrieve tasks, statuses, deadlines, and time logs:

// List of project tasks with details $tasks = CRest::call('tasks.task.list', [ 'filter' => [ 'GROUP_ID' => $projectId, '!STATUS' => 5, // exclude canceled ], 'select' => [ 'ID', 'TITLE', 'STATUS', 'DEADLINE', 'CREATED_DATE', 'CLOSED_DATE', 'RESPONSIBLE_ID', 'TIME_SPENT_IN_LOGS', 'UF_AUTO_PLANNED_HOURS', // custom field for planned hours ], 'limit' => 500, ]); // Time logs per task $timeLogs = CRest::call('task.elapseditem.getlist', [ 'TASKID' => $taskId, 'select' => ['SECONDS', 'USER_ID', 'CREATED_DATE'], ]); 

For a portfolio dashboard across multiple projects, we use batch requests to stay within time limits:

$batch = []; foreach ($projectIds as $id) { $batch["project_$id"] = ['method' => 'tasks.task.list', 'params' => ['filter' => ['GROUP_ID' => $id], 'select' => [...]]]; } $results = CRest::call('batch', ['cmd' => $batch]); 

Architecture: Placement vs. External BI

We choose the approach based on business needs:

Criterion Placement (embedded page) External BI (Grafana, Metabase)
Performance Limited by REST API (20 req/sec) Unlimited (own storage)
Historical data Current only (up to 5000 tasks) Full retention (years)
Development time 1–2 weeks 3–6 weeks
User convenience Inside Bitrix24, no switching Separate tool

Hybrid approach is optimal: operational dashboard for the last 30 days inside Bitrix24, strategic trend analysis in external BI. This combines speed and depth.

Case Study: IT Company Project Office Dashboard

We developed a dashboard for a portfolio manager handling 8 projects and 35 developers. Key metrics:

Metric Source Calculation
Project progress (%) tasks.task.list closed_tasks / total_tasks
Deadline deviation task.deadline (fact_date - planned_date) in days
Burndown task + timelog planned_hours_remaining vs actual
Workload by person task.responsible + timelog hours/week per employee
Risk index tasks without deadline + overdue custom index

Real-time burndown implementation via JavaScript:

function calculateBurndown(tasks, startDate, endDate) { const totalPoints = tasks.reduce((sum, t) => sum + (t.plannedHours || 1), 0); const dailyBurndown = []; let currentDate = new Date(startDate); while (currentDate <= endDate) { const completedByDate = tasks .filter(t => t.closedDate && new Date(t.closedDate) <= currentDate) .reduce((sum, t) => sum + (t.plannedHours || 1), 0); dailyBurndown.push({ date: currentDate.toISOString().split('T')[0], remaining: totalPoints - completedByDate, ideal: totalPoints * (1 - daysDiff(startDate, currentDate) / daysDiff(startDate, endDate)) }); currentDate.setDate(currentDate.getDate() + 1); } return dailyBurndown; } 

Visualization via Chart.js in a React component embedded in the project page through Placement.

ETL for historical data — hourly export to PostgreSQL via cron agent. This enables 6–12 month trend analysis (REST API in real time can't handle the limits):

-- Table for project snapshots CREATE TABLE project_snapshots ( snapshot_date DATE, project_id INT, total_tasks INT, closed_tasks INT, overdue_tasks INT, total_hours_planned NUMERIC, total_hours_spent NUMERIC ); 

Result: portfolio manager sees in 30 seconds which of 8 projects is behind and where a critical bottleneck exists for a specific developer. Time savings — from 2 hours to 15 minutes for status report preparation.

How Integration with BI Systems Works

Integration with external BI (Grafana, Metabase) is done via Bitrix24 REST API and a custom data warehouse. We set up an ETL pipeline that exports project snapshots to PostgreSQL or ClickHouse. Then the BI system connects to that storage. This provides unlimited performance and access to historical data over years.

More details about the development process 1. Analyze business requirements and define metrics. 2. Design dashboard architecture (on-premise or cloud). 3. Develop custom widgets via Placement SDK or integrate with Grafana/Metabase. 4. Set up ETL pipeline for historical data. 5. Documentation (API description, data schemas, update instructions). 6. Train the team on dashboard usage. 7. 3-month warranty support after launch.

Estimated Timelines

Timelines range from 1 to 6 weeks depending on complexity and data volume. Cost is calculated individually after an audit. Get a free consultation for your project — we'll tell you how to save time on report preparation.

Why Choose Us

We have worked with Bitrix24 for over 10 years, hold "1C-Bitrix" certifications, and have proven experience with custom analytics integrations. Each dashboard is designed for unique business needs, using the latest platform capabilities. We guarantee stable and transparent reports.

Contact us — we'll provide a free consultation and help you decide on the architecture.