Revenue Operations

Partner Intelligence Dashboard with Live API Integration

Chief Revenue Officer

11
4-tier hierarchy
Daily (automated)
< 24 hours

Built an automated partner intelligence system integrating ConnectWise Manage API data with a four-layer override hierarchy: pulling live operational data, computing risk scores, preserving agreement terms, and layering manual overrides into a single unified dashboard.

Built with

Cloudflare WorkersWorkers KVJavaScriptPythonConnectWise API

The Problem

Partner data at a managed services provider is scattered across a dozen systems. Agreement terms live in signed PDFs. Service health comes from the PSA tool. Revenue data sits in accounting. Risk indicators (ticket volume trends, project activity, contract expiration dates) require manual cross-referencing. Leadership spends hours before quarterly reviews assembling a coherent picture of each partner relationship.

The result is stale data, missed warning signs, and reactive account management. By the time someone notices a partner is at risk, the damage is already done.

What I Built

I designed and deployed a Partner Intelligence Dashboard on Cloudflare Workers that unifies partner data from multiple sources into a single, always-current view. The system connects directly to the ConnectWise Manage API, pulling company records, custom field data (service team assignments, priority tiers, contract expiration dates, account managers), ticket volumes, and project activity. It then layers computed intelligence (composite risk scores, churn flags, utilization trends) on top of the raw data.

The core architectural innovation is a four-layer data override hierarchy:

Layer 1 (Auto): Data gathered automatically from the ConnectWise API: company profiles, ticket counts, project status, custom field values. This refreshes daily via a scheduled cron trigger on the Worker.

Layer 2 (Computed): Derived metrics calculated from Layer 1 data: composite risk scores, trend indicators, churn probability flags, utilization percentages. These update every time the base data refreshes.

Layer 3 (Static): Agreement-level data extracted from signed PDFs: monthly recurring revenue, contract terms, SLA commitments, authorized signers. This data changes infrequently and is uploaded through the admin interface.

Layer 4 (Manual): Human overrides entered through a separate admin panel with its own authentication. These always win in the merge: if a computed risk score doesn't reflect ground truth, an account manager can override it with context the algorithm can't see.

The merge logic applies these layers in order for every partner, every field: auto data → computed scores → static agreement terms → manual overrides on top.

The Dashboard

The dashboard presents 11 sections covering the full partner lifecycle: partner overview, service health, agreement terms, revenue metrics, risk assessment, ticket analytics, project status, contact directory, renewal calendar, notes, and executive summary. Each section draws from the appropriate data layers and reflects the latest merged state.

An admin interface (behind a separate passcode) allows authorized users to upload agreement data, enter manual overrides, trigger data refreshes, and manage partner records. The admin view shows which data layer each field value comes from, so users understand whether they're looking at live API data, a computed score, or a human override.

Technical Architecture

The system runs entirely on Cloudflare infrastructure. A Worker handles routing, API integration, authentication, and data merging. Workers KV stores partner data across separate keys for each layer: base data, computed scores, static agreements, and manual overrides. A daily cron trigger refreshes ConnectWise data automatically. The frontend is a single HTML file with inline CSS and JavaScript, keeping the deployment footprint minimal.

ConnectWise API integration required mapping their custom field system: discovering that key dashboard fields (service team, priority tier, account manager, contract expiration) were already stored as custom fields in ConnectWise company records, eliminating the need for new data structures.

Impact

The dashboard eliminated the quarterly data assembly process entirely. Leadership opens a single URL and sees current state for any partner (health, risk, revenue, contract status) with data that's never more than 24 hours old. The override hierarchy ensures the system reflects both algorithmic intelligence and human judgment, which was critical for adoption. Account managers trust the data because they can correct it when the algorithm gets it wrong.