BI reporting views
Your call data lives in a PostgreSQL database you own, on your own server — so instead of
"data connectors" to someone else's cloud, Exovo exposes a curated, read-only reporting.*
view schema you can point any BI tool at directly: Grafana, Power BI, Metabase, Excel — anything
that speaks PostgreSQL.
Enabling access
Admin → Integrations → Data Connectors → BI Reporting Views → Enable. This creates the
views and an exovo_reporting login whose password is generated and shown once — copy
it then; Exovo doesn't store it, and you can rotate it any time by clicking Enable again.
The login can read only the reporting schema: no configuration tables, no credentials, no
message bodies. The views select named columns (never SELECT *), so future schema changes
can't silently leak new data into BI. Disable access revokes the login without touching
your dashboards' definitions.
The views
| View | What's in it |
|---|---|
reporting.calls |
One row per call: direction, caller/destination, timestamps, duration, talk time, status, hangup cause, MOS score, routing-rule attribution, whether it was recorded |
reporting.calls_daily |
Per-day rollup: calls, answered, talk seconds, average MOS by direction |
reporting.extensions |
Extension roster: number, name, email, role, enabled |
reporting.queues |
Queue configuration: strategy, timeouts, SLA target |
reporting.queue_callbacks |
Callback requests with status, attempts and completion times |
reporting.recordings |
Recording metadata: parties, timestamps, size, transcription and sentiment flags — not the audio or transcript text |
Multi-tenant systems: every view carries tenant_id, and the login is machine-level — scope
your dashboards accordingly.
Reaching the database
PostgreSQL runs inside the compose stack and isn't published by default. Two supported paths:
SSH tunnel (no firewall changes):
ssh -L 5432:localhost:5432 root@your-pbx-hostthen connect your BI tool to
localhost:5432, databaseexovo, userexovo_reporting.LAN/VPN exposure: add a compose override publishing the port, then restart the stack:
# docker-compose.override.yml services: db: ports: - "5432:5432"Only do this on a trusted LAN or behind the built-in VPN — never expose 5432 to the internet.
Sample Grafana dashboard
Download the sample dashboard — calls per day, answer rate, talk minutes, average MOS quality, and busiest destinations. In Grafana: Dashboards → Import, upload the JSON, pick your Exovo PostgreSQL datasource, done.
After upgrades
Views are versioned with the product: after an Exovo update that changes reporting-relevant schema, click Enable again — it re-creates the views idempotently (and rotates the password, so update your BI tool's saved credential).