Comparison
Handled, compared with the connector HubSpot ships
HubSpot includes its own QuickBooks® Online connector at no extra cost. For contacts and simple invoices it is genuinely fine, and if that is all you need then it is the right answer and this page is not for you.
This is the comparison for contractors, where the differences are structural rather than a matter of polish. Every claim on the Handled side carries the status the documentation gives it.
| What you are trying to do | Handled | The native connector |
|---|---|---|
| See what a job actually cost | Reads five QuickBooks source types, plus vendor refunds, and journal entries if you switch them on, and attributes each line to a job. Live | No job-level cost reaches the deal. Bills, vendor credits, purchase orders and time stay in QuickBooks. |
| Split one supplier bill across two jobs | Attribution at bill-line granularity. $11,000.00 becomes $6,100.00 and $4,900.00. Live | Not expressible. A bill header carries no job, and the connector does not read lines. |
| Track a property as its own job | Links each deal to the job you already keep in QuickBooks, a sub-customer under its parent, so each property carries its own costs and invoices. Live Creating that job from the deal is not built yet. | No link from a deal to a job. Nothing in it ties a deal to a sub-customer, so a deal’s invoices land on whichever customer the contact matches. Intuit’s API supports sub-customers; the gap is on the HubSpot side. |
| Handle one customer with several properties | One customer, many jobs, each with its own costs and schedule. Live | Customer matching is email-only, so one homeowner across four roofs cannot be expressed. |
| Bill a job in draws | Milestone schedules that compute to the cent, with the last row absorbing the rounding and a clamp so a draw can never bill past the contract. Live | Invoices that start in QuickBooks never reach the deal. |
| Control what reaches your ledger | An approval on record for every posted invoice. A database constraint will not store a proposal as posted without a named approver: the person who approved it, or the automatic-posting rule, which is off by default and which any user in your portal can switch on. Live | Records sync when they sync. |
| See the invoice back in HubSpot | Mirrored as a native HubSpot invoice on the deal with its line items and real status. Live | Creates HubSpot invoices, but without job context. |
| Know when it was paid | Paid in QuickBooks and the deal follows. Live If the payment is deleted the deal walks back to unpaid, but HubSpot’s own payment record stays “succeeded”, so we flag it for review. In testing | Payments sync to the HubSpot invoice, but QuickBooks invoices are not on the deal, and a payment split across invoices is dropped. |
| Choose which objects sync, and which way | Per-object direction and mapping control, with counts from the real crosswalk. In testing | Four fixed object pairs; direction is configurable per pair. |
| Trigger a draw from a deal stage or a date | A deal reaching a stage, or a milestone reaching its date, proposes a draw. A person approves it, unless someone in your portal has switched on automatic posting, which then posts it. In testing A HubSpot workflow action is not built yet. | A “Create a QuickBooks invoice” workflow action (Professional or Enterprise, US only). It creates an invoice: no schedule, no approval. |
What the native connector is genuinely good at
It is free, it is built by HubSpot, and it is maintained by HubSpot. For a business that invoices once per deal and does not need to know what a job cost, it does the job and costs nothing. Most of its limits above are consequences of being general rather than defects: it is not built for contractors, and it does not claim to be.
The one thing worth knowing is that its limits are structural rather than missing features. Job-level cost is not a setting it lacks; reading cost per bill line is a different shape of integration.
What we do not claim
Three claims above are marked in testing rather than live, and they are marked that way here for the same reason they are marked that way in our own documentation: they ship, and they are still being proven. The capability status of everything Handled does is published, including the parts that are not built yet.
Handled is also not free. It is a paid app with published ceilings, and against a connector that costs nothing, that difference is real and worth weighing.