
Dan Watts
DevRel Engineer, SquaredUp

If you run your service desk on ConnectWise PSA, it's already the system of record for almost everything that matters. Tickets, agreements, configurations, projects, time entries, it's all in there. What it doesn't give you is an easy way to put that data next to the rest of your stack, your RMM, your security tooling, your backup platform, so you can look at a client and see the whole picture rather than one system at a time.
That's what the SquaredUp ConnectWise PSA plugin is for. It connects straight to the ConnectWise Manage REST API and pulls your companies, agreements, configurations, projects, members and ticket data into dashboards you can shape however you like. And because most MSPs run ConnectWise alongside half a dozen other tools, that data can sit right next to everything else when you want a proper client view.
For an MSP that matters more than it does for a single IT team. You're not reporting on one estate, you're reporting on thirty of them, each with its own agreement, its own SLA and its own monthly review where somebody asks what they actually got for the money. The PSA holds the answer to most of that, it's just spread across boards, agreements and time sheets rather than sitting on one screen you can hand over.
The plugin authenticates with a public and private key pair belonging to an API Member, so that's the first thing to set up.
In ConnectWise Manage, go to System > Members > API Members. Click + to create a new API Member, or pick an existing one you already use for integrations. Give it a Security Role with at least read access to Companies, Service Tickets, Agreements, Configurations, Projects, Members and Time Entries.
Open the API Member record, switch to the API Keys tab and click + to generate a key pair. Copy the private key straight away, because ConnectWise only shows it once.
You'll also need your Company ID, which is the identifier you use to log in to ConnectWise Manage, and your Site URL, which is the hostname of your instance without the https://. For the default US cloud that's na.myconnectwise.net. If you're not sure, look at the address bar next time you log in.
One tip while you're here: give the plugin its own API Member rather than reusing a busy one. ConnectWise applies rate limits per API Member, so a dedicated key means your dashboards always get a clean run at the API.
If you don't already have a SquaredUp account, no problem. Just sign up for our Free Forever tier and you can be dashboarding in a few minutes.
Back in SquaredUp, add a new data source and choose ConnectWise PSA. Enter your Site URL, Company ID, public key and private key, then save. The plugin authenticates and starts indexing.
Once the first run completes you'll see the object breakdown on the data source page. In my dev tenant that's 73 objects: 33 ConnectWise Companies, 28 Members, 6 Agreements and 5 Projects, along with seven data streams covering Agreements, Companies, Configurations, Members, Projects, Tickets and Time Entries.
Tickets are handled a little differently, and it's worth knowing why. A busy MSP can rack up tens of thousands of them, so rather than turning each one into a graph object, the plugin keeps ticket data available as a stream you can query freely. Open tickets by priority, tickets per company, hours logged per ticket, all of it works exactly as you'd expect, and the index stays fast no matter how big your ticket history gets.

The plugin ships with seven prebuilt dashboards, so there's no blank canvas waiting for you. There's an Overview, a Ticket Overview, and then a perspective dashboard for each object type: Company, Agreement, Configuration, Project and Member.
The Overview is the one to open first. It leads with four headline numbers, Companies, Open Tickets, Hours Logged This Month and Agreements Expiring Soon, that last one covering active agreements ending within 90 days. Underneath it breaks open tickets down by priority and by board, then shows billable versus non-billable hours and asset count by type.
That combination is doing something quite specific. Ticket volume tells you how busy the desk is, billable split tells you whether that work is being captured, and agreements expiring soon tells you what's about to need a conversation. It's an operations view and a commercial view on the same screen.

The Ticket Overview goes deeper on service delivery: total, open and closed tickets, open tickets breaching SLA, tickets by company for your top ten, and the open versus closed split. If you only ever look at one dashboard on a Monday morning, it's probably this one.

The perspective dashboards are where the object model earns its keep. Pick a Member and you get their properties, total hours logged, billable versus non billable split and a table of every time entry with the company, hours and start time. Same idea for a Company, an Agreement or a Configuration. Scope it to the thing you care about and the dashboard follows.

The prebuilt dashboards are a starting point, and everything on them is built from data streams you can reuse. Create a new dashboard, add a tile, and select the ConnectWise plugin to see the full set.
A good first build is a per client tile. Take the Tickets stream, scope it to a single ConnectWise Company, and you've got the beginnings of a client facing service report. Add the Time Entries stream grouped by agreement and you can show where the hours went against what the client is paying for. Add the Configurations stream and the same dashboard now covers the assets you're managing for them.
Because those tiles are scoped to objects rather than hardcoded to a client name, you can copy that dashboard into a per client workspace and point it at a different company without rebuilding anything.
A dashboard tells you what's happening. A monitor tells you when something needs attention without you having to go and look.
The obvious candidate is SLA breaches. Build a tile from the Tickets stream filtered to open tickets that are breaching SLA, turn on monitoring, and set it to go into an error state as soon as the count rises above zero. That tile now carries a live health status, and that status rolls up so you can see it across a whole workspace at a glance.
Agreements expiring soon works nicely as a monitor too, though as a warning rather than an error. Ninety days is enough notice to have the renewal conversation properly, and a monitor means nobody has to remember to check.
The ConnectWise PSA plugin gets you from API keys to a working service desk dashboard in a few minutes, and the seven prebuilt dashboards mean it starts paying off before you've built anything yourself. From there it's a case of layering in the data streams, scopes and monitors that match how your team actually works, whether that's a per client report or an estate wide view for your service delivery manager.
The plugin is built around service delivery and time tracking, which is exactly where most MSPs feel the reporting pain, and it's where the data pays back fastest once it's on a dashboard.
If you don't already have a SquaredUp account, sign up for our Free Forever tier and get connected today.
Happy dashboarding!
Getting started with SquaredUp is free and easy.