Integrations
Integrations
Six connectors that work, a published contract so you can write your own, and an honest list of what we do not connect to.
What connects today
| Category | Supported | What it does |
|---|---|---|
| PSA | ConnectWise Manage, Autotask | Two-way tickets, companies, agreements, time |
| EDR | Huntress, Bitdefender GravityZone | Detection state, isolation status, coverage reconciliation |
| Distributor | Pax8 | Subscription counts for the three-way billing diff |
| Backup | The common vendors | Normalised into verified / reported / silent |
| Telephony | Inbound webhook | Screen-pop: caller, client, open tickets |
| Microsoft 365 | Native, not a connector | Built into the data model |
Why six and not sixty
A directory of hundreds is a marketing asset, not an operational one. Rewst — a company whose entire product is connecting things — carries 88. ConnectWise's certified marketplace is 83.
You do not need parity with a directory. You need the ones that gate your evaluation. If yours is not here, the next section matters more than this one.
Write your own in an afternoon
The connector contract is published with a working reference implementation in the repository — not a snippet, one that runs and is exercised by our own build.
Anyone who can write Python can add a connector. It runs on the same credential vault, the same per-tenant rate budget, the same freshness contract and the same untrusted-content boundary as ours.
A community connector gets no special standing for being ours. That is the point — you are not waiting on our roadmap.
Everything arrives in three states
| State | Meaning |
|---|---|
| Fresh | Read successfully, at a known time |
| Stale | Last read succeeded, longer ago than declared |
| Unreachable | The read failed |
A vendor returning 200 with an empty array is fresh and empty. A vendor timing out is unreachable. A dashboard showing both as zero is the defect this whole product exists to eliminate — so every consumer of a connector receives the state, not just the data.
What we do not connect to, and why
- Anything without a usable API. Listed as unsupported rather than faked or partially implemented behind an optimistic label.
- Public retail pricing. We fetch partner pricing through authenticated APIs where you have credentials. We do not scrape, and retail is not comparable.
- Anything by screen-scraping a vendor portal. It breaks silently on their next redesign and you find out from a wrong number.
And rot is visible
Every connector shows when it was last verified against its vendor's API and by whom. One unverified beyond a threshold becomes a finding with a named owner — not a grey icon nobody looks at.
That is what killed every incumbent's script library. Not that nobody contributed. That nothing made rot legible.
Operating systems, devices, browsers — kept true rather than aspirational.
See it against your own stack
Thirty days read-only, connected to what you already run.