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).

What you maintain in HaloPSAWhat you see in Whitespace

Product group on the Halo item used by a recurring invoice line

Service-code column header, and the Asset type column in the Contracts dialog

Halo contract category

Contract category on the agreement card — a filter, not a column

Halo contract billing period

Period type on the agreement card, and the factor used to turn line totals into monthly revenue

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:

  1. Go to Settings > Integrations > Halo > Products.

  2. Open the Categories tab.

  3. For each HaloPSA Product Group, choose a Salesbuildr Root Category, or leave it None.

  4. Click Save. Use Import and map all categories if you want Salesbuildr to create matching categories and map them in one step.

MappingWhat it does in Whitespace

Halo product group → Salesbuildr category

Lets I want to sell place a catalog product in that column, and turns the column header into a link to the Salesbuildr category

None (not mapped)

Items in that group do not import into the catalog. Recurring-invoice lines that use those items can still appear on a contract card, but they will not land in a service-code column

Product Group Types tab

Maps each Halo product group to Product, Service, or Labor so items import with the right type. It does not create Whitespace columns by itself

Default HaloPSA Product Group (Defaults tab)

Fallback used when sending products to Halo. It does not create Whitespace columns

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:

HaloPSA contract fieldLabel in the dialog

Contract reference

Title of the card, with a link back to HaloPSA

Contract category

Contract category

Client (company)

Company (shown when Group companies by parent is on)

Assigned user

Contact, or No contact

Notes

Description

Start date

Start

End date

End

Linked recurring invoice totals

Est. revenue

Billing period

Period type (for example Monthly or Yearly)

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.

HaloPSA invoice / item fieldLabel in the dialog

Halo item name (or the line short / long description if the item is not imported)

Service (linked if the Halo item was imported into Salesbuildr)

Halo item product group, after category mapping

Asset type — this is the Whitespace column the line belongs to

Contract billing period

Period type

Line unit cost

Unit cost

Salesbuildr catalog list price for the imported item

Unit list price

Recurring-invoice line unit price

Unit price (falls back to the catalog list price when Halo sends no unit price)

Difference vs list price

Discount (percentage versus list price)

Quantity

Units

Unit price × quantity

Price

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.

HaloPSA recordHow it appears in Whitespace

Active client

Company row, once it has synced and its Salesbuildr type can receive quotes

Inactive client

Unlisted in Salesbuildr — it drops off the grid

Account (when Halo Use prospects is on)

Imports as the prospect type you chose under Settings > Integrations > Halo > Companies. It appears as a row only if that type can receive quotes

Child client (parented to a top-level Halo client)

Linked as a parent company in Salesbuildr. Group companies by parent rolls subsidiaries under that parent

Halo account manager

Powers the Account manager filter

Halo customer type

Shown as the company’s classification (colored tag)

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