by RBP
DRAFT — NOT LEGAL ADVICE, NOT YET REVIEWED. Drafted against what the software actually does, by reading the code that stores and deletes data. It must be reviewed by a lawyer before Handled is offered publicly. Published in this state deliberately: a marketplace reviewer following a link from the app listing should find an accurate description of the software rather than a 404 or reassuring boilerplate.

Privacy

What we store, why, and what happens when you leave

Handled sits between your HubSpot portal and your QuickBooks® company, and stores the minimum needed to keep the two agreeing.

What Handled stores

CategoryWhat it isWhy
Connection credentialsOAuth tokens for HubSpot and QuickBooks, and your QuickBooks company identifierTo read and write on your behalf. QuickBooks tokens are encrypted at rest (AES-256-GCM). HubSpot tokens are not yet — see the note below.
Cost linesBill, expense, purchase-order, vendor-credit and time-entry lines attributed to a job, vendor refunds recorded as deposits, and journal-entry lines if you switch those on: amount, date, vendor or employee name, hours and wage rate for time entries, cost code, description, and the QuickBooks customer and job the line belongs toThe job-cost figure on the deal
Revenue documentsInvoices, credit memos, sales receipts, refund receipts, deposits and journal-entry lines attributed to a job: amount, tax, date, document number and the QuickBooks customer’s nameThe revenue and realised-margin figures on the deal
Job and invoice crosswalksWhich HubSpot deal maps to which QuickBooks job; which invoice mirrors whichSo the same record is not created twice
Contact crosswalk — personal dataContact names and email addresses, mapped between HubSpot contacts and QuickBooks customersTo address an invoice to the right person
Billing stateMilestone schedules, invoice proposals, approval records (who approved, and when)The approval audit trail
Settings and mappingsYour cost codes, sync configuration, billing templatesYour configuration
OperationalA task queue and a record of webhook deliveriesReliable, retryable syncing
Website account — personal dataIf you create an account on this site: your email address, your name if you give one, and a hashed password if you set one. Sessions record a hashed IP address and your browser's user-agent stringTo sign you in, and to rate-limit sign-in attempts

The personal data Handled holds is: contact names and email addresses; the names of employees whose QuickBooks time entries are costed to a job, with their hours and wage rate; the QuickBooks customer and job names on cost lines and revenue documents, which for a homeowner is usually their name; the email address and user id of the HubSpot users who install Handled or approve an invoice; vendor or payee names on cost lines; the email address of each person invited to a tenant; and, if you create an account on this website, your email address, your name if you give one, a hashed password if you set one, and a hashed IP address and user-agent string for each session.

A website account belongs to you, not to a portal — and that has a consequence worth stating. Erasing a HubSpot portal's data, which we run on request until an uninstall can trigger it (see the limits below), also removes your access to that portal, but it does not delete your account, because you may still hold others. There is no self-service account deletion yet. Email privacy@roofingbusinesspartner.com and we will delete the account and everything attached to it.

Handled does not store payment-card data or bank details. Besides the two OAuth connections there is one further credential case, and it only exists if you create it: if you configure a data-lake export destination, Handled stores the connection credentials you enter for it — for example an object-storage key or a warehouse password. They are stored to run the export you asked for, and are erased with everything else.

What Handled does not do

Cookies

Every cookie this website can set is listed here. All five exist only to sign you in or to finish an invitation or a QuickBooks connection you started, all five are HttpOnly (so page scripts cannot read them), Secure and SameSite=Lax, and none of them is used for advertising, analytics or tracking you across sites.

CookieSet whenLastsWhat it holds
jobline_oauth_nonceThe moment you click Continue with HubSpot — before you have signed in, and even if you then abandon the sign-in15 minutesA random one-time value. It ties the sign-in you started to the browser you started it in, so somebody else's half-finished sign-in cannot be completed in your browser
jobline_link_ticketOnly if you sign in with HubSpot using an email address that already has a Handled account. You are not signed in at this point — we ask you to sign in to the existing account first15 minutesA short-lived signed note recording that HubSpot vouched for that address. It grants nothing on its own
__Host-jobline_sessionWhen you are signed in30 days, or until you sign outA random token and nothing about you. Signing out deletes it
jobline_inviteOnly if you open an invitation link while you are not signed in, so the invitation is still there once you have signed in15 minutesA short-lived signed note naming the invitation you opened, never the invitation’s own token. It grants nothing on its own: the invitation still has to be for the address you sign in with
__Host-jobline_qbo_connectWhen you start a QuickBooks connection in your browser15 minutesA one-time value for each QuickBooks connection you have started and not finished, up to five, which only our server can compute. It ties the connection to the browser that started it, so it cannot be finished from somewhere else

The first two are deleted as soon as the sign-in they belong to finishes, whether it succeeded or failed. The invitation cookie is deleted once the invitation is accepted or turned down, and each connection’s value is removed when QuickBooks sends you back. On a local development server the session cookie is named jobline_session and the QuickBooks connection cookie jobline_qbo_connect, because the __Host- prefix requires HTTPS.

Sub-processors

What happens when you leave

Erasure is a hard delete — not a flag, not an archive — performed table by table with a per-table report, covering the tables listed above including the contact crosswalk that holds names and emails. Your OAuth tokens are deleted with it.

One record is kept: our billing record for your portal. Erasure does not remove your HubSpot portal ID and domain, when Handled was installed and removed, your plan and trial or subscription status, or our Stripe references and our log of billing events, because they are our record of your subscription and of what we bill for it. They hold none of your jobs, deals, contacts, customers, QuickBooks documents or cost lines. How long we keep them is still being set, and this page will say before Handled is offered publicly.

Three honest limits, stated rather than glossed.

1 · Nothing triggers erasure on an uninstall yet. The erasure routine is built and tested, but nothing in Handled acts on an uninstall today, so uninstalling erases nothing by itself. Email us and we will run the erasure and send you the per-table report — that path works today and we would rather you use it than assume.

2 · Uninstalling does not switch off your QuickBooks authorisation. That authorisation is held at Intuit, and until it is revoked Handled keeps reading QuickBooks on its scheduled refresh. The erasure we run on request revokes it at Intuit before it deletes our copy of the token, and its report says whether Intuit confirmed the revoke. So also remove Handled in QuickBooks, under Settings → Apps: that step ends the access whatever happens on our side, and we would rather tell you than let you assume the uninstall did it.

3 · HubSpot tokens are not yet encrypted at rest. QuickBooks tokens are encrypted with AES-256-GCM. The HubSpot side is stored in plain text in our database and is a pre-launch item we have not finished. It is named here because a security page that omits its own gap is worth less than one that admits it.

Erasure is required of us by HubSpot’s developer policy and by marketplace certification.

If you trial Handled and do not convert

This describes how the trial is designed to behave. Trials are not open yet, and this behaviour is not built — it is stated here so the intent is on the record, not as a description of something running today.

Your figures will stay on your deals, marked plainly as no longer updating and carrying the date they stopped. We do not silently clear fields in your CRM — and we will not leave a stale number looking live either.

Your rights

Ask us and we will tell you what is held for your portal, correct it, or delete it. Email privacy@roofingbusinesspartner.com. Most of what Handled holds originates in your HubSpot portal or your QuickBooks company, and you control both directly.

Breach notification

If your data is affected by a breach we will notify you and HubSpot without delay, as HubSpot’s developer policy requires.

Contact: privacy@roofingbusinesspartner.com. Last drafted 28 August 2026 — version and effective date to be set at legal review.