Mesh Help Center
Breadcrumbs

PSA Integrations

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
image-20260611-134351.png
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.

image-20260611-134311.png
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.

image-20260610-151437.png

Step 2: Select HaloPSA

On the partner settings page within Mesh, select “HaloPSA” and click “Configure HaloPSA”.

image-20260610-135927.png

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.

image-20260610-145616.png

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.

image-20260610-154914.png

Step 5: Service Mapping

Map each Mesh service to its corresponding HaloPSA service or item. At least one service must be mapped to continue.

image-20260610-155634.png

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.

image-20260610-155814.png

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
price data

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.