by RBP

Documentation

Every feature, and whether it actually runs today

The whole surface, not just the headline. Each capability carries a status, and we do not describe anything we cannot demonstrate.

How to read the statuses. Live runs today and has been verified end to end. In testing ships and is live, but is still being proven — we will tell you it is new. Next is not built; we say so rather than implying it works.

Handled is the new name for Jobline, and the rename is still in progress. Only the name is changing; the product, the portal and your data are the same. The app in HubSpot, the deal card and the private note on every invoice Handled posts to QuickBooks® (Jobline proposal <id>) still use the old name. A few internal identifiers will keep it for good, and so will every note already posted: accounting history is a record, and renaming it after the fact would be rewriting it.

The whole surface at a glance

CapabilityWhat it doesStatus
Line-level cost syncBills, expenses, vendor credits, purchase orders, time entries and vendor refunds attributed per line, and journal entries if you switch them onLive
Cost by cost codeRollup on the deal with a drill-down that reconciles exactlyLive
Committed costOpen purchase orders shown as exposure beside actual costLive
Margin on the dealMargin at completion, and realised margin withheld until something is billed or receivedLive
Job matchingA job links only when a person asks: Rematch now on the deal’s card links an exact job-name match or a pinned job id, and anything less is a scored suggestion you pick with Choose jobLive
Milestone schedulesDraws that sum to the contract to the cent, with a rounding absorberLive
Over-contract clampA draw can never bill past what is left; it records that it was clampedLive
Approval gateNothing posts without approval: a person’s, or the automatic-posting rule, which is off by default and which any user in your portal can switch on. A changed amount is refusedLive
Post to QuickBooksThe approved draw becomes a real QuickBooks invoiceLive
Native invoice mirrorThe invoice appears as a HubSpot invoice on the deal, with line itemsLive
Payment readbackPaid in QuickBooks → the deal followsLive
Honest delivery reportingA bounced invoice email is reported as bounced, not as sentLive
Uninstall erasureHard delete of your data, table by table, with a report. The routine is built and tested, but nothing acts on an uninstall yet, so ask us and we will run it and send the report — see privacyOn request
Invoice editorEdit lines, recall (void) and send; a paid invoice locksIn testing
Invoice status on the dealPaid, partially paid, open, voidedIn testing
Payment reversalA payment deleted in QuickBooks walks the deal back to unpaid. HubSpot’s own payment record stays “succeeded”, so Handled flags the invoice for review; it counts as failing in the invoice sync settingsIn testing
Object sync configurationWhich objects sync, in which direction, with live countsIn testing
Stage- and date-triggered drawsA deal reaching a stage, or a milestone reaching its date, proposes a drawIn testing
Create a QuickBooks job from a dealToday you create the job in QuickBooks, then link the deal to it from the deal’s cardNext
Workflow actionTrigger a milestone draw from a HubSpot workflowNext
Data-lake exportConfiguration is real; the export engine ships nextNext
Margin confidenceA margin computed with unpriced crew hours, or before any cost has landed, is labelled an upper bound on the card, with the reason beside itIn testing
Estimate variance by cost codeEstimated cost and variance per cost code. Job-level estimated cost and margin, and the change against the estimate, already show wherever a QuickBooks estimate carries costNext
Public APIFor accounting systems we do not connect yetNext

Setting up

  1. Install Handled into your HubSpot portal. You authorise it like any HubSpot app; Handled never asks for your HubSpot or Intuit password.
  2. Connect QuickBooks Online. From Handled’s settings, sign in to Intuit and pick the company file. QuickBooks tokens are encrypted at rest; HubSpot tokens are not yet (security).
  3. Link a deal to a job. On the deal’s card, press Rematch now to link an exact job-name match or a QuickBooks job id pinned on the deal, or pick a job with Choose job. Nothing links on its own.
  4. Open the deal. Job cost, cost codes and margin appear on the record.

One QuickBooks company per HubSpot portal. Connecting a second company replaces the first — it does not add one.

Cost Live

Handled reads five QuickBooks source types and attributes each line to a job: bills, expenses, vendor credits, purchase orders and time entries. Two more can add cost lines: a vendor refund recorded as a deposit becomes a negative line, which is on by default, and journal-entry lines on an expense account count if you switch them on.

Margin Live

Two figures, deliberately named apart, because they answer different questions:

FigureArithmeticAvailable
Margin at completioncontract − costFrom the first bill
Realised marginnet revenue − costWithheld until an invoice, a sales receipt or a customer deposit lands on the job

A margin against zero revenue is arithmetic nobody can use — it reads as −100% on every job in production and trains people to ignore the column. So Handled withholds it and says why.

Realised margin is often negative mid-job, and that is correct. Every cost has landed and only part is billed. It is what a job in progress looks like, and Handled shows it rather than smoothing it.

Matching a deal to a job Live

An exact job-name match, or a QuickBooks job id pinned on the deal, links when you press Rematch now on the deal’s card. Nothing links on its own. Anything less certain is a suggestion carrying a score and a plain-language reason, and it links only when you pick it with Choose job. Rematch now never links a fuzzy match.

Unlinking keeps the cost history — it is a record of what happened — and leaves your billing schedule untouched.

Progress billing Live

A milestone schedule computes to the cent. The final row absorbs the rounding, so draws sum to the contract exactly rather than approximately — a schedule is not the contract divided by three.

The approval gate

Nothing reaches QuickBooks until a person approves it — unless someone in your portal turns on automatic posting, which is off by default. With automation on, that standing rule is the approval. Any user in your HubSpot portal who can open the deal’s card can approve, post, void and send invoices, edit QuickBooks customers, and switch automation on. Handled does not check HubSpot roles or deal permissions.

If the amount changed between being shown and being approved, approval is refused and both figures are named. You reload and look again.

The clamp

A draw can never bill past what is left on the contract. It is clamped to the remainder, and the schedule records that it was clamped rather than silently shrinking the number.

Re-approving is safe

Approving an already-posted draw returns the posted state. It does not create a second invoice.

Invoices Live In testing

Live A posted invoice is mirrored into HubSpot as a native invoice on the deal, with its line items, its associations and its real status. When QuickBooks records payment, Handled reads it back and the deal follows.

In testing A deleted payment. Delete the payment in QuickBooks and the deal walks back to unpaid, but HubSpot’s own payment record stays “succeeded”. Handled flags the invoice for review, where it counts as failing in the invoice sync settings, rather than claiming the two agree.

Live Delivery is reported honestly. If QuickBooks says an emailed invoice bounced, Handled shows that rather than claiming it was delivered.

In testing Editing, recalling and sending from the deal. A paid invoice locks — enforced by the API, not just hidden in the interface.

Sync configuration In testing

Which objects sync, in which direction, with per-mapping control and counts from the real crosswalk. Where a count cannot be measured honestly, it shows a dash rather than a zero.

Triggers

Live Manual — from the deal, which is every trigger in use today.

In testing Deal stage and date — a deal reaching a stage, or a milestone reaching its date, proposes a draw. Both ship and are under verification; treat them as new rather than settled. A person approves the draw, unless someone in your portal has switched on automatic posting, which then posts it.

Next HubSpot workflow action — triggering a draw from a HubSpot workflow is not built yet.

Data export Next

Configuration for exporting HubSpot and QuickBooks data to S3, Snowflake, BigQuery, Redshift or Postgres can be set today; the export engine ships next. We would rather say that than imply a running pipeline.

Not built, stated plainly

Limits worth knowing before you buy

Something here unclear or wrong? Tell us — we would rather fix the page than have you guess.