Zuckers Operations Hub

Phones · Surveys · Zendesk · Microsoft 365 · AI Agent — unified operations dashboard

Self-hosted reporting platform that pulls per-user email activity, app usage and mailbox storage metrics from the Microsoft Graph Reports API and surfaces them in a fast, filterable dashboard with department scoping, drill-downs and exports to Excel / CSV.

What's included
Reports
  • Daily activity — send / receive / read per user per day
  • User drill-down — full history + chart per mailbox
  • Department comparison — side-by-side bar & line charts
  • Inactive users — configurable threshold
  • Email app usage — Outlook / Mobile / Web / IMAP / POP adoption
  • Mailbox storage — usage, quota warnings, item counts
Platform
  • Local user accounts (no Microsoft sign-in required)
  • Roles: Reports (scoped to assigned departments) and SuperAdmin
  • Departments map mailboxes → users for granular access control
  • Background ingestion via Hangfire (in-process)
  • Idempotent upserts — safe to re-run any job
  • CSV + Excel export on every report
  • Audit log of all admin changes
Phone Reports r78

Dedicated Call Center reporting fed by ZuckersBroadSoftFetcher (pulls BroadSoft CCPRI + KMPIQ Queue Performance every 5 min) into dbo.BroadSoftCcReport and dbo.KmpiqCallback. All pages read from SQL only — no live HTTP to Nextiva from IIS.

Daily & historical
  • General Report (daily) — Inbound KPIs (Answered / Abandoned / Escaped / Bounced / Transferred / Stranded / Overflowed) with hourly distribution & Phone Reconciliation (PhoneActivity ↔ BroadSoft DID match)
  • General Report (monthly) new — Last 3 / 6 / 12 / 24-month roll-up with best/worst/peak month + trend bars
Callbacks (KMPIQ)
  • KMPIQ Callbacks new — Customer escapes (pressed "1") with Daily / Monthly / Per-agent rollups, 7d / 30d / 90d / MTD / YTD / 1y quick filters
  • Agent drill-down new — Click any agent in the leaderboard to see their individual callbacks (caller, queue entry, assign time, resolve time, disposition)
Access: assign the CallQueue.PhoneGeneralV2, CallQueue.PhoneGeneralV2Monthly, and CallQueue.Callbacks modules per user in Admin → Users. SuperAdmins bypass all module gating.
How it works
  1. Hangfire (embedded inside the Web app) schedules three background jobs:
    • ingest-email-activity — per-day per-user send/receive/read (every 4h)
    • ingest-email-app-usage — per-day per-user app usage (every 6h)
    • ingest-mailbox-usage — mailbox storage snapshot (daily)
  2. Each job calls Microsoft Graph (v1.0/reports/...) with a Client Secret or certificate from the App Registration configured at /Admin/Setup.
  3. Microsoft returns CSV; the service parses it and upserts into SQL Server by composite key (ReportDate, UserPrincipalName, TenantId).
  4. The Razor Pages UI queries SQL directly — no live calls to Graph from the browser.
  5. Visibility is filtered per role: SuperAdmin sees the whole tenant, Reports users see only the mailboxes assigned to their departments.
Security
  • Local accounts only, PBKDF2 password hashes via ASP.NET PasswordHasher<T>
  • Cookie auth with HttpOnly + sliding expiration (8h normal, 14d "remember me")
  • Forced password change on first login
  • Graph backend uses app-only auth (Client Secret or Certificate)
  • Only one Graph permission required: Reports.Read.All
  • No mailbox content is ever read — metric counts only
Credits

Designed and built by Juan Guzman.
Powered by ASP.NET Core 8 (Razor Pages), EF Core, Hangfire, ClosedXML and Microsoft Graph.

Runtime
App version1.0.0.0
.NET runtime8.0.21
ServerRESTORESVR1
Server time (UTC)2026-08-12 17:38:33