This guide explains how to sync licensing information from Mesh into your PSA.
HaloPSA
Step 1: HaloPSA Configuration
This is the suggested HaloPSA configuration. Always consult HaloPSA documentation before making changes. Certain UI elements may have different names depending on your HaloPSA language settings.
Mesh Role
In HaloPSA, open Configurations > Teams and Agents > Roles. You must create a new role named Mesh.
Edit the new Mesh role, then under Permissions, enable the following options:
US English
Clients Access Level - Read Only
Items Access Level - Read and Modify
Invoices Access Level - Read, Create and Modify
Client Contracts Access Level - Read and Modify
UK English
Customer Access Level - Read Only
Assets Access Level - Read and Modify
Invoices Access Level - Read, Create and Modify
Customer Agreements Access Level - Read and Modify
Australian English
Clients Access Level - Read Only
Items Access Level - Read and Modify
Invoices Access Level - Read, Create and Modify
Client Agreements Access Level - Read and Modify
Mesh Agent
Next you must create an Agent. In HaloPSA, open Configurations > Teams and Agents > Agents.
a. Under Username, add Mesh
b. Under Roles, select Mesh
c. Select Account Active
d. Select the API-only agent option
e. Under Default Team, select No Default Team
f. Under Work hours, select Default Working Hours
g. Select Save.
Mesh Application
Finally, we must create the Mesh Application. In HaloPSA, navigate to Configuration > Integrations > HaloPSA API > Applications.
a. Under Application Name, add Mesh Integration
b. Under Authentication Method, select Client ID and Secret (Services). Save the Client ID and Secret for next steps
c. Select Agent Type: Agent
d. Under Agent to log in as, select Mesh
e. On the Permissions tab, enable the following permissions:
Read: Customers
Read: Contracts
Edit: Contracts
Read: Items
Edit: Items
Read: Invoices
Edit: Invoices
f. Click save.
Step 2: Select HaloPSA
On the partner settings page within Mesh, select “HaloPSA” and click “Configure HaloPSA”.
Step 3: Configure API Authentication
Enter the details found in the Mesh Application that you created within HaloPSA.
Server Address: Your resource server address i.e. https://example.halopsa.com
Client ID: This is the unique identifier for your application.
Client Secret: Enter the generated secret.
Once created, click “Test Connection” and click next once successful.
Step 4: Account Mapping
To associate each Mesh account to its corresponding HaloPSA client and invoice, you must first create a mapping. Once all mappings have an invoice selected, and the mappings are saved, you can continue to the next step.
The “Suggest Mappings” button will try to automatically associate the clients and invoices but these can be manually adjusted or specified if needed.
Mapped: A client & invoice pair has been associated successfully.
Unmapped: No client or invoice selected.
Pending: A client & invoice pair is selected and needs to be saved.
Required: No invoices have been found for the selected HaloPSA customer. It must be removed from the selection to proceed.
Step 5: Service Mapping
Map each Mesh service to its corresponding HaloPSA service or item. At least one service must be mapped to continue.
Step 6: Finish Setup
A summary page will be displayed showing information of the key details, last successful connection, number of accounts mapped, and number of services mapped.
-
API Authentication: Confirms the connection status, server address, client ID, and last successful connection test.
-
Account Mapping: Shows total Mesh accounts, mapped accounts, and unmapped accounts.
-
Service Mapping: Shows total Mesh services, mapped services, and unmapped services.
Click “Finish setup” to confirm details.
Managing an Active HaloPSA Integration
Usage data is synchronized to HaloPSA only after the corresponding customer has
been billed by Mesh. Customers who have not yet been billed, including those on trial, will not have usage data reported.
Billing usage updates may take up to 24 hours to appear in HaloPSA.
Details shown
-
Server Address: The HaloPSA instance connected to Mesh.
-
Client ID: The HaloPSA API client currently configured.
-
Client Secret: The configured secret, shown as a masked value.
-
Configured On: The date and time the integration was configured.
-
Last Successful Test: The last time Mesh successfully validated the HaloPSA connection.
-
Account Mappings: The number of Mesh accounts mapped to HaloPSA customers/clients.
-
Service Mappings: The number of Mesh services mapped to HaloPSA services/items.
-
Last Sync: The most recent successful synchronization time.
-
Next Auto-Sync: A countdown to the next automatic synchronization.
Actions available
-
Test Connection: Validate that Mesh can still connect to HaloPSA using the configured credentials.
-
Manage Setup: Reopen setup so account and service mappings can be reviewed or updated.
-
Sync Now: Run billing usage synchronization immediately instead of waiting for the next auto-sync.
-
Sync Mesh price to HaloPSA: Include Mesh pricing data in HaloPSA synchronization when pricing should be maintained from Mesh.
-
Reset Integration: Reset the current PSA integration so a different provider or a new HaloPSA configuration can be setup.
Common reasons to update existing mappings include:
• A new Mesh customer has been added.
• A HaloPSA customer/client was renamed or replaced.
• A customer was intentionally excluded during initial setup and now needs to be synchronized.
HaloPSA integration.
• Invoice tracking shows an unmapped or unexpected invoice status.
After changing mappings, select Save Mappings and run Sync Now if you need the update reflected in HaloPSA immediately.
Troubleshooting
|
Issue |
What to check |
|---|---|
|
Test Connection is disabled |
Confirm that Server Address, Client ID, and Client Secret are populated |
|
Connection test fails |
Verify the HaloPSA URL, credentials, and API permissions. Confirm the URL uses the correct protocol, such as https://. |
|
Next is unavailable in a mapping step |
Next is unavailable in a mapping step |
|
Mapping counts look lower than expected |
Use the “Unmapped” filter to find records without HaloPSA mappings. Use “Suggest Mappings” or map records manually. |
|
Usage is missing from HaloPSA |
Confirm the Mesh customer and Mesh service are both mapped, then run “Sync Now”. |
|
Pricing is missing or unexpected |
Review the Sync Mesh price to HaloPSA toggle and confirm whether Mesh should send
|
|
Invoice status is Unmapped |
Review the account mapping and invoice assignment for the affected customer. Make sure that at least a reoccurring HaloPSA invoice is available. |