The ConnectWise integration pushes each approved bill run into ConnectWise as companies, agreements and invoices. The default flow below can be customised per deployment.
Set these up before the first bill run is approved.
| Item | Requirement |
|---|---|
| Billing cycles | A monthly billing cycle named either month or monthly. |
| Products | Up to three usage products are created by PracBill (data-usage, sms-usage, voice-usage). You do not create these. |
| Categories | A base category named Products. Every other category must live under it, and each PracBill service reporting category must match the name of a category. |
| Item | Requirement |
|---|---|
| Service types | Every service type needs a reporting category and a rate code. |
| Reporting categories | Names must match the ConnectWise category names. Managed in a PracBill lookup table. |
| Department settings | Create a Misc/Generic product and select it as the department's generic product. |
For each approved invoice PracBill creates the ConnectWise company and agreement if they do not exist, checks the agreement is unchanged (an alert is triggered if not), creates the invoice, then adds a product item for each service charge, call charge and misc charge. Call charges go against a static call-charges catalog item.

| ConnectWise record | Field | Value |
|---|---|---|
| Company | Account Number | PracBill customer ID |
| Agreement type | Name | Always Pracbill Agreement |
| Agreement type | billingCycle | Monthly |
| Agreement type | employeeCompRate | Actual |
| Agreement type | employeeCompNotExceed | Billing |
| Agreement type | invoicingCycle | ContractYear |
| Agreement type | billTime / billExpenses / billProducts | NoDefault |
| Invoice | type | Miscellaneous. ConnectWise treats every pushed invoice as miscellaneous; this cannot be changed. |
| Invoice | Items | Linked to the agreement where possible, for service and usage charges. |
| ConnectWise field | PracBill field |
|---|---|
| Company ID | customers.crm_id |
| Invoice ID | invoice.parent_id with invoice.parent_system = 'CW' |
| Agreement ID | engineering.billingindicator |
| Limitation | Effect |
|---|---|
| Editing a service type's rate code | The change is not sent to ConnectWise. A new catalog product is only created when a new agreement is created. |
Related: Integrations, Create service types.