HaloPSA data in Whitespace
Which HaloPSA contract and recurring-invoice fields appear in Whitespace, where service-code columns come from, and how companies and contacts show up.
Written By Mike Forte
Last updated 4 days ago
Whitespace reads client contracts from HaloPSA and the recurring invoice lines linked to them, then plots that coverage as a grid: customers as rows, service codes as columns. This article is for HaloPSA tenants. For how to use the grid itself — filters, notes, campaign export — see Whitespace & Upsell.
Note: Whitespace requires the whitespace feature and the Whitespace viewer permission. HaloPSA must be connected under Settings > Integrations > Halo.
Where the service-code columns come from
In Whitespace the column headers are called service codes. HaloPSA does not have Autotask-style billing codes. The closest equivalent — and what Whitespace uses as a service code — is the Halo product group.
In Halo those groups are Asset Groups marked as Items. Salesbuildr imports only those groups (the same list you map on the Halo Categories tab).
New product groups from Halo are added to the Columns list automatically after they sync. Stale ones drop off. Admins can drag columns into a shared order for everyone in the Reorder columns panel.
If two groups share the same display name, Whitespace merges them into one column and shows a merge indicator.
How product groups map to Salesbuildr categories
Map each Halo product group to a Salesbuildr product category so I want to sell can match your catalog products to the right column:
Go to Settings > Integrations > Halo > Products.
Open the Categories tab.
For each HaloPSA Product Group, choose a Salesbuildr Root Category, or leave it None.
Click Save. Use Import and map all categories if you want Salesbuildr to create matching categories and map them in one step.
A Salesbuildr product participates in I want to sell and upsell tiles when its primary category is mapped from a Halo product group on Categories.
Halo items must have a product group assigned in HaloPSA. Items without a group do not sync, so they cannot create green tiles.
For service products, the product editor Admin tab also has Include in whitespace. When that is off, the imported service is left out of the matrix — green tiles, monthly revenue, and I want to sell — while remaining in the catalog. The toggle appears when the Halo product group is mapped as Service on Product Group Types.
What contracts and agreements are visible
Salesbuildr imports Halo client contracts (the agreements on a Halo client). Coverage on the grid comes from recurring invoices that are linked to those contracts.
A contract appears in Whitespace when:
Its Halo client has already synced to Salesbuildr as a company (not a supplier or manufacturer)
Its start date is today or earlier
Its end date is still in the future, or it has no end date
A contract with no linked recurring-invoice lines still appears in the Contracts dialog with the message This contract contains no items. It does not create a green tile.
Update on the Contracts dialog re-imports that company’s contracts from Halo. A scheduled import also refreshes contracts through the day, with a full refresh overnight.
What syncs from each Halo client contract
On the Contracts dialog (green tile → revenue, or the info popover → the revenue amount) each contract card shows:
The dialog also offers Create Renewal Quote, Add to existing quote, Renew All, and Update. Renewal quotes use prices from your Salesbuildr catalog, not the Halo contracted unit price.
What syncs from each recurring-invoice line
Each line on a recurring invoice that is linked to an imported contract becomes a line on that card.
If the Halo item has not been imported, the description still appears with a warning icon (This service was not imported). Renewal quotes skip those lines.
Unit list price comes from the imported Salesbuildr product (the Halo item’s recurring price when it is set, otherwise its base price). It is not re-read from the Halo contract line. The Unit price column can therefore differ from Unit list price even when Halo is billing correctly.
Vendor (manufacturer) on the imported product is used on the Contract Items tab when you group by vendor. It is not shown on the tile itself.
Halo invoice charges and Autotask-style service bundles are not imported from Halo, so those sections do not appear on a HaloPSA tenant.
How companies appear
Each row in Whitespace is a Salesbuildr company that can receive quotes — usually your Customer type. Halo clients sync into that list. Supplier and manufacturer companies are not used as the customer on a contract row.
A contract is skipped when its Halo client has not synced yet. After the company appears in Salesbuildr, Update on the Contracts dialog (or the next scheduled import) picks up its agreements.
Company name, address, phone, website, and parent come from the Halo client and its main site. See Companies and HaloPSA Setup.
How contacts appear
Halo users sync as Salesbuildr contacts on the matching company (email, first name, last name, phone, job title). The company’s primary contact comes from the main contact on the Halo main site.
On each contract card, Contact is the user assigned on that Halo client contract — not necessarily the company’s primary contact. If the contract has no assigned user, the card shows No contact.
Inactive Halo users are hidden from default contact lists. Halo’s General User is not imported.
Campaign export from Whitespace includes company name plus contact first, middle, and last name and email — it does not export Users or Devices counts.
What tiles and popovers show
Each cell is one customer × one Halo product group (after category mapping).
Green tile — the customer has at least one included recurring-invoice line in that column. The amount is monthly recurring revenue: each line’s price (unit price × quantity) is divided by the contract’s billing period (monthly ÷ 1, quarterly ÷ 3, yearly ÷ 12, and so on).
The Monthly Revenue column on the left is the same calculation, summed across every column for that customer.
Red dot / Underbilling — the line’s unit price is below the catalog list price in Salesbuildr. The popover badge reads Underbilling (This category contains underbilled services).
Info popover (the i on the tile) shows:
Customer name and column name
Monthly revenue for that column (click it to open Contracts)
Underbilling when it applies
An open quote in that category, if one exists
Create quote / Create opportunity when you are using I want to sell
Tile notes (Add note)
Contracts that match the column are marked Relevant in the Contracts dialog.
Blue / yellow tiles, Best upsell badges, and I want to sell are catalog-driven. They use the product-group ↔ Salesbuildr category mapping above, not extra Halo fields. See Whitespace & Upsell.
Users and Devices columns are not imported from Halo contracts. They follow Settings > Platform > Miscellaneous → Users and devices calculation strategy. See Users & Devices.
What does not appear
These HaloPSA records are skipped or unused in Whitespace:
Contracts that have not started yet, or whose end date has passed
Recurring invoices that are not linked to a client contract
Contracts whose client has not synced to Salesbuildr
Supplier and manufacturer companies as customer rows
Halo items with no product group, or a group that is not marked as Items
Imported service products with Include in whitespace turned off
Halo custom fields
Halo invoice charges and Autotask service bundles
Opportunities, quotations, and sales orders — those sync separately and do not fill the matrix
See also
Whitespace & Upsell — matrix, filters, notes, and export
Users & Devices — seat and device counts on the grid
HaloPSA Setup — connection, product groups, and company mapping
Importing Products — Halo item import and category mapping
Categories — Salesbuildr product categories
Companies — how Halo clients appear as companies