Visual Call Reports from CSV Call Logs (Excel & Google Sheets)
A prototype tool created by a 3CX employee allows users to generate visual call analytics from PBX CSV call log (CDR) exports using Microsoft Excel or Google Sheets.
This solution is intended for small installations that don’t require an external database or Grafana.
⚠️ The tool is unsupported, untested by 3CX, and provided as-is.
✅ No VBA, VBS, or external components are used.
When to Use This
-
Small or medium PBX deployments
-
Quick historical analysis
-
Users comfortable with Excel or Google Sheets
-
No need for Grafana or external DB
For large deployments, use external DB + Grafana instead.
What You Get
-
Excel Desktop template
-
Google Sheets template
-
Supports multiple CSVs combined
-
Works with pre- and post-V20 Update 6 exports
Data Source
-
Export Call Log Report CSVs from:
-
PBX → Reports (V20 Update 6+)
-
Or scheduled email reports
-
-
CSVs can be merged to analyze longer periods
Workflow Overview
1. Prepare the Template
Always keep a clean master copy
Google Sheets
-
Make a copy of the template
-
Rename it for the dataset you’ll import
Excel
-
Open template → Save As
-
Rename appropriately
2. Load the CSV Data
Google Sheets (Order matters!)
-
File → Import CSV into a new sheet
-
❌ Uncheck “Convert text to numbers, dates…”
-
Verify:
-
“Total” count = data rows − 1
-
-
If > 9,000 rows:
-
Unhide & extend Data-Output sheet
-
-
Copy only data rows
-
Exclude Header and Totals
-
-
Paste into Data-Input sheet
-
Wait for processing (large imports may take 1+ minute)
Microsoft Excel
-
Open CSV in Notepad
-
Verify:
-
“Total” count = data rows − 1
-
-
If > 5,000 rows:
-
Unhide & extend Data-Output sheet
-
-
Copy only data rows
-
Exclude Header and Totals
-
-
Paste into Data-Input sheet
Generate Analytics
Google Sheets
-
Open Instructions sheet
-
Copy the Report-Data range value
-
Go to Dashboard
-
Click Date Range → Pencil icon
-
Replace range with copied value
-
Apply to both dropdowns (or repeat)
-
Select Start & End dates
If adding more data later, update the Report-Data range.
Microsoft Excel
-
Data → Refresh All
-
Confirm all 3 slicers = 1
-
Select date range
-
Refresh All again
ℹ️ cost_count may remain 0 if no call cost data exists.
If adding more data:
-
Use Remove Duplicates
-
Then Refresh All
Key Notes & Limitations
-
Unsupported prototype
-
Manual CSV handling required
-
Performance depends on row count
-
Designed for period-based analysis, not continuous live updates