HaloPSA integration
Introduction
This article explains how to configure and use the HaloPSA integration within the Platform. HaloPSA is a professional services automation (PSA) software designed for IT service providers and Managed Service Providers (MSPs), combining service desk management, asset tracking, Billing, Contracts, and project management into one centralized system. The integration enables sellers to synchronize Organizations and Subscriptions between the Platform and HaloPSA, streamlining Billing and Customer management workflows.
In this article:
- What is HaloPSA
- Configuring the HaloPSA integration
- Authentication Settings page
- Configuration Settings page
- Data Mapping page
- Logs & Monitoring page
- Understanding sync tiles
What is HaloPSA
HaloPSA is a professional services automation platform that helps IT service providers and MSPs automate and centralize business operations. It combines service desk ticketing, asset management, Billing and invoicing, Contract management, project management, and reporting into a single system. By integrating HaloPSA with the Platform, sellers can automatically sync Customer Organizations and Subscriptions data, enabling seamless billing workflows directly from HaloPSA.
Key benefits of HaloPSA:
- Centralizes multiple business functions into one system, reducing manual work
- Improves resource utilization through time tracking and project management
- Provides visibility into service delivery, profitability, and contract compliance
- Enables MSPs to scale operations efficiently without proportional overhead increases
Configuring the HaloPSA integration
To begin using the HaloPSA integration, you need to configure the Connection Settings and authenticate your HaloPSA account.
To configure the HaloPSA integration:
-
Navigate to Settings → Integrations in the platform.
- Locate the PSA Tools section.
-
Click on Halo PSA tile.
-
You will be directed to the 1. Mapping, 2. Logs & Monitoring, and 3. Connection settings page where you can enter your HaloPSA API credentials, configure the integration and check histprical data related to Halo PSA.
Authentication Settings page
On the initial Authentication page, you'll see the message: "Configure your HaloPSA integration to manage and bill your customers."
Required fields:
- Client ID - Your HaloPSA client identifier
- Client Secret - Your HaloPSA client secret key
- Resource server - The resource server URL for your HaloPSA instance
-
Authorization server - The authorization server URL for your HaloPSA instance (can be found in your HaloPSA instance in Configuration > Integrations > HaloPSA API)
- Tenant (optional) - Your tenant identifier if applicable
Testing the connection:
After entering your credentials, you can verify the connection before saving:
- Click the Test Connection button.
- Wait for the connection test to complete.
- If successful, a green message displays: "Test is successful."
- If the test fails, a red message displays: "Test is not successful."
Saving settings:
- Click Save Settings to store your connection settings.
- If you save without testing and the parameters are incorrect, an error message displays: "Invalid connection configuration."
Once authenticated successfully, you will be automatically redirected to the Mappings tab to begin mapping organizations.
Configuration Settings page
The Configuration sub-section lets you control how Subscription data is sent from the Platform to HaloPSA. Settings here apply to all future syncs for your organization and do not change records that are already in HaloPSA.
Sync unit prices to HaloPSA
By default, the Platform syncs Subscription-level totals to HaloPSA:
- Cost Price — the price the Seller pays to the Distributor.
- Customer Price — the price the Seller invoices to the Customer.
If your billing process in HaloPSA expects per-unit values, you can switch the integration to sync unit prices instead. When you enable Sync unit prices to HaloPSA, the Platform divides each Subscription's total by its Quantity before sending the values to HaloPSA.
To enable unit price sync:
- Open the Settings tab and select Configuration from the left navigation.
-
Under Sync behavior, toggle Sync unit prices to HaloPSA to On.
- Pop up window will apear to confirm update of sync price settings.
- Review the confirmation modal and click Confirm to apply the change.
- A success message confirms the change: "Sync price setting updated."
How unit prices are calculated
Unit customer price = Customer Price ÷ Quantity
The Quantity used for the calculation is the value on the Subscription record at the moment the sync runs.
Confirmation modal text
To prevent accidental changes, the Platform shows a confirmation modal whenever the toggle is changed. The body text reflects the direction of the change:
-
When enabling:
-
When disabling:
Clicking Cancel returns the toggle to its previous state without saving.
To switch back to subscription totals:
- Toggle Sync unit prices to HaloPSA to Off.
- Confirm the change in the modal.
From the next sync onwards, Cost Price and Customer Price are sent to HaloPSA as Subscription-level totals again.
Data Mapping page
The Mappings setion allows you to connect Organizations from the Platform to corresponding organizations in HaloPSA. This mapping is essential for Subscription synchronization.
Upon initial access to the mapping interface, no PSA organizations will be displayed. To enable mapping, first click Sync Organizations to retrieve and populate the available organizations.
Organization synchronization information
At the top of the Mappings section, an informational message with a yellow background and info icon explains the automatic synchronization schedules:
Organizations grid columns
The mapping table displays all organizations for the seller with the following columns:
-
Organization Name - The organization name in the platform (sortable)
-
Organization Reference # - The reference ID of the organization in the platform (sortable)
-
Organization Status - The organization status in the platform, displayed with colored status circles matching the platform's organizations grid (filterable and sortable)
-
PSA Organization Name - The mapped HaloPSA organization name. For unmapped organizations, this field shows "Click to select" in blue. It allows you to select from available unmapped organizations.
-
PSA Organization ID - The HaloPSA organization identifier. You can search by this ID.
Updating it automatically updates the PSA Organization Name field. Only unmapped organizations appear in the list. -
PSA Organization Status - The organization status in HaloPSA (filterable). Only unmapped organizations are shown
-
Mapping Status - Shows either "Mapped" or "Unmapped" (filterable). If there's an error retrieving data from HaloPSA, displays "Response Error" with a tooltip: "Please refresh the page in a few minutes and try again."
-
Actions - Contains three action icons:
-
Edit (pencil icon) - Turns blue on hover. Allows changing the mapped organization
-
Delete (trash icon) - Turns red on hover. Removes the PSA organization mapping
-
Sync subscriptions (sync icon) - Turns blue on hover. Triggers subscription sync for this specific organization. Disabled for unmapped organizations
-
Edit (pencil icon) - Turns blue on hover. Allows changing the mapped organization
If you try to click sync options before that time, a warning will be diplayed in the bottom of the page:
Mapping organizations
Mapping section is visible once Authentication Settings are configured and verified. Before that the section is greyed out.
To map an organization from the platform to HaloPSA:
- Locate an unmapped organization in the grid.
- Click the "Click to select" button in either the PSA Organization Name or PSA Organization ID column.
- A dropdown appears showing all available unmapped PSA organizations.
- Search by either PSA Organization Name or PSA Organization ID in the respective column.
- Select the appropriate HaloPSA organization from the dropdown.
- When you update either the PSA Organization ID or PSA Organization Name, the other field updates automatically.
- Click the green check button in the Actions column to save your changes.
- Click the red X button to cancel editing.
Search functionality
Use the search field at the top of the table to find organizations. The placeholder text reads: "Search by organization name, PSA organization name, organization reference or PSA organization ID."
Synchronizing summary
The platform provides both automatic and manual synchronization options for organizations and subscriptions.
Automatic synchronization schedules

- Organizations: Synced from HaloPSA to the platform daily at 08:00 UTC
- Subscriptions: Synced from the platform to HaloPSA daily at 18:00 UTC
Manual synchronization buttons:
Two primary buttons are available above the organizations mapping table (displayed in the platform's primary color):
Sync Organizations button

- Tooltip: "Sync organizations from your PSA tool to the platform"
- Triggers an immediate sync of organizations from HaloPSA to the platform
- When clicked, the platform calls the PSA integration and shows "Sync in progress"
- The button is disabled until the sync completes
- Updates both new organizations and the status of already-synced organizations in the "PSA Organization Status" column
Sync Subscriptions button

- Tooltip: "Sync subscriptions from platform to your PSA tool"
- Triggers an immediate sync of all subscriptions from the platform to HaloPSA
- After clicking, users cannot trigger another sync for one hour
- If sync is in progress, displays: "Sync in progress"
- If sync completed but the hour hasn't elapsed, displays: "You can trigger the next sync in xx minutes"
Organization-specific subscription sync
For individual organizations, use the sync icon in the Actions column to sync subscriptions for that specific organization only. This button is disabled for unmapped organizations.
Subscription data synced to HaloPSA
When subscriptions are synced from the platform to HaloPSA, the following data is transferred:
- Subscription Name - The name of the subscription
- Subscription start date - When the subscription begins
- Subscription end date - When the subscription ends
- Quantity - Number of licenses
- Billing Cycle - The current billing cycle
- Term Duration - The current term length
- Status - Subscription status in the platform
- Cost Price - The cost the seller pays to the distributor
- Customer Price - The price the seller invoices to the customer
Understanding sync tiles
Two tiles display above the Organizations mapping table, showing the timestamps of the most recent synchronization operations.
Last Sync to Platform tile:
Shows when organizations were last synced from HaloPSA to the platform. The timestamp displays as:
- "Xh ago" if less than one day
- "X days ago" if more than one day
Last Sync to PSA tile:
Shows when subscriptions were last synced from the platform to HaloPSA. The timestamp displays as:
- "Xh ago" if less than one day
- "X days ago" if more than one day
These tiles help you monitor synchronization activity and ensure data remains current between systems.
Logs & Monitoring page
The Logs & Monitoring page is available under the HaloPSA integration settings, in the left navigation between Mapping and Settings. It provides visibility into all synchronization activity and API events for your HaloPSA integration over the last 30 days, helping you monitor sync health, troubleshoot issues, and review historical operations.
Overview tiles
At the top of the page, four summary tiles display a snapshot of integration activity over the last 30 days:
- Total Logs (30d) — the total number of log entries recorded over the last 30 days (includes Info, Warning, and Error entries).
- Errors (30d) — the number of Error-level entries recorded over the last 30 days. The counter is displayed in red when the value is greater than zero.
- Warnings (30d) — the number of Warning-level entries recorded over the last 30 days. The counter is displayed in orange when the value is greater than zero.
- Last Update — the relative time since the most recent log entry was recorded (for example, "9h ago"), shown together with your local timezone (for example, UTC+02:00 Europe/Warsaw). Click the refresh icon on the right of the tile to reload the page data.
Filtering the log list
Above the logs table, a dropdown lets you filter entries by log level. The default value is All.
Available filter options:
- All — displays every log entry regardless of level (default).
- Info — displays only entries with the INFO level. These are informational messages about routine sync activity (sync started, sync completed, items skipped, etc.).
- Warning — displays only entries with the WARNING level. These indicate non-blocking issues that may require attention (for example, Subscriptions skipped because the Quantity is zero).
- Error — displays only entries with the ERROR level. These indicate failed operations that require investigation.
Logs grid columns
The logs table displays all log entries that match the current filter, with the following columns:
- Level — the severity of the log entry, shown as a coloured badge: INFO, WARNING, or ERROR.
- Timestamp — the date and time at which the entry was recorded, displayed in YYYY-MM-DD HH:MM format.
-
Summary — a short description of the event. Each entry typically contains a title line followed by a details line. Common event types include:
- Customers sync started — recorded when an organizations sync from HaloPSA to the Platform begins. Details include the reseller ID and the provider (HALO).
- Customers sync completed — recorded when an organizations sync finishes. Details include counts of created, updated, and failed records, and the sync duration in milliseconds.
- Subscriptions sync started — recorded when a Subscriptions sync from the Platform to HaloPSA begins. Details include the reseller ID and the provider (HALO).
- Subscriptions sync completed — recorded when a Subscriptions sync finishes. Details include counts of created, updated, and failed records, and the sync duration in milliseconds.
Pagination
A pagination bar at the bottom of the page helps you navigate through long log lists.
- Total entries — on the left, the total number of entries matching the current filter is displayed (for example, 236 entries).
- Items per page — on the right, a dropdown lets you choose how many entries to display on a single page (default: 20).
- Current range — shows which entries are currently visible out of the total (for example, 1 – 20 of 236).
- Page navigation — use the page number input and the left/right arrows to move between pages.
Limitations
When using the HaloPSA integration, be aware of the following limitations:
Synchronization restrictions:
- Organization-specific subscription sync is restricted while another sync operation for the seller is running
- After a sync completes, you must wait a minimum of 60 minutes before triggering another sync
- Unmapped organizations cannot have their subscriptions synced
Error handling:
- If there's an issue retrieving responses from PSA integration, the platform cannot display PSA Organization Name, PSA Organization ID, or PSA Organization Status
- In such cases, the Mapping Status column shows "Response Error" with the tooltip: "Please refresh the page in a few minutes and try again."
Organization unmapping behavior:
When you unmap organizations, subscriptions that were previously synced to HaloPSA remain unchanged in the PSA system. The PSA integration stores information about which subscriptions were synced to which HaloPSA organization.
Organization remapping behavior:
If you map a platform organization to a different HaloPSA organization, previously synced subscriptions remain in the original HaloPSA organization. New syncs will send subscriptions to the newly mapped organization.
User roles:
Only users with the following roles can access the PSA integration tab and perform data manipulations:
- Seller Admin
- Seller Agent Admin
Summary
The HaloPSA integration streamlines billing and customer management by automatically synchronizing organizations and subscriptions between the platform and HaloPSA. Configure the integration through Settings → Integrations, map your platform organizations to HaloPSA organizations, and let the system handle daily synchronization or trigger manual syncs as needed. Monitor sync activity through the timestamp tiles and manage mappings efficiently through the intuitive grid interface.
Related content:
Add comment
Please sign in to leave a comment.