Skip to content
ConnectWise10 min read

ConnectWise Agreement Billing: Getting It Right the First Time

Cory Neese·

If I could only fix one thing in every ConnectWise instance I touch, I'd fix the agreement configurations. Not because they're the most technically interesting thing to work on — they're not. But because agreement billing errors have the most direct and measurable financial impact of anything in the system. Every misconfigured agreement is money you earned and didn't collect, silently, every single month.

Here's what I've learned about getting ConnectWise agreements right.

Choose the right agreement type

ConnectWise supports several agreement types, and using the wrong one for your service delivery model creates friction that compounds every billing cycle.

Standard agreements bill a fixed recurring amount regardless of how much work you do. This is your typical managed services agreement — $X/month per user or per device. The client pays the same amount whether they submit one ticket or fifty.

Prepaid/block hour agreements give the client a bank of hours. You deduct from the bank as time is logged, and the client replenishes when the balance gets low or at a scheduled interval. Good for clients who want flexibility but don't want an open-ended hourly arrangement.

Time and Materials agreements bill for actual hours consumed at agreed-upon rates. No fixed monthly fee — the client pays for what they use. Works for project-based relationships or clients who aren't ready for a managed agreement.

The mistake I see: MSPs using standard agreements for relationships that should be T&M, or using block hours when a standard agreement with defined scope would be simpler and more predictable for both parties.

If you're constantly adjusting a standard agreement because the client's usage varies wildly month to month, maybe it should be a block hour or T&M arrangement. If you're managing a block hour agreement for a client who uses roughly the same amount every month, simplify it to a standard agreement and save both of you the tracking overhead.

Additions: the most neglected revenue stream

Agreement additions are how ConnectWise handles variable-count billing within an agreement. Think M365 licenses, security agents, managed devices — anything where the quantity changes and the billing should adjust automatically.

The problem is that most MSPs set up the agreement with initial quantities and then never build the automation to keep those quantities current. The M365 license count at implementation becomes a static number in the agreement, and six months later the client has added 15 licenses that nobody billed for.

For every variable-count product in an agreement, you need two things:

First, an addition line item in the agreement that's tied to the product and configured to bill per unit at the correct rate.

Second, an automated or regularly scheduled process to update the quantity. This can be ConnectWise's Cloud Billing feature, a third-party integration, or at minimum a monthly manual reconciliation (though manual is what we're trying to move away from).

If you set up the addition but not the sync, you've created a billing line item that shows the wrong number. If you set up the sync but not the addition, the data updates but doesn't affect billing. Both pieces need to be in place.

Exclusions: defining what the agreement doesn't cover

This is the one that causes the most client disputes. If your agreement covers "standard managed support" but doesn't explicitly define what's excluded, you'll inevitably have a gray area where a client expects something to be covered that you consider out of scope.

In ConnectWise, agreement exclusions are configured at the board/type/sub-type level. You can specify that certain work types are excluded from agreement coverage, meaning time logged against those types gets billed separately even for clients with active agreements.

At a minimum, I configure exclusions for: project work (new deployments, migrations, infrastructure buildouts), after-hours emergency work (unless the agreement explicitly includes it), third-party vendor coordination beyond a reasonable threshold, onsite visits (unless the agreement includes a visit allocation), and new user onboarding beyond a per-user setup threshold.

These exclusions need to be documented in your MSA and the client needs to acknowledge them. The ConnectWise configuration enforces the billing boundary, but the contractual language is what protects you when a client challenges a bill.

Work types and billing rates

ConnectWise uses work types to determine how time entries get billed. Each work type has a default rate, and each agreement can override that rate.

The mistake I fix constantly: work types that don't align with the MSP's actual rate card. Someone set up a "Remote Support" work type at $150/hour three years ago. Rates have increased. New hires who don't know the rate card select the default work type. The invoice goes out at the old rate.

Audit your work types quarterly. Make sure the rates match your current pricing. Make sure your team knows which work type to select for which kind of work. And configure agreement-level rate overrides for clients who've negotiated custom rates — don't rely on techs remembering to select the right work type for a specific client.

The month-end billing sanity check

Even with automation, run this checklist every billing cycle:

Review the agreement billing preview before generating invoices. ConnectWise shows you what will be invoiced — look at it. Scan for additions with zero quantities (indicates a sync failure), agreements with billing amounts that don't match expectations, and clients with no billing (indicates the agreement may be misconfigured or expired).

Check for unbilled time entries. Run a report showing all time entries in the billing period that aren't associated with an agreement or haven't been invoiced through a separate billing method. These are the ones that fall through the cracks.

Spot-check three to five client invoices against the actual service delivered. Open the client's ticket history for the month. Does the invoice reflect the work that was done? Are there tickets with billable time that didn't make it to the invoice?

This sanity check takes about an hour per billing cycle. It catches thousands of dollars in errors every time I do it with a new client. Eventually, as your configuration tightens up, the errors decrease — but the check should remain part of your permanent process.


Think your agreements might be leaving money on the table? Book a discovery call and I'll check.

Cory Neese

Founder & PSA Consultant at PaxRig

Cory helps MSPs get more out of their ConnectWise and HaloPSA platforms through expert configuration, migration, and automation. He founded PaxRig to bring enterprise-level PSA expertise to the MSP channel.

Need help implementing this?

Book a free discovery call and I'll walk through your specific situation.