Problems sync and reporting
Halo Problems use the same read:tickets API permission as tickets. Keep ticket sync enabled, link the client companies, and ensure the API agent can read the relevant teams, clients and ticket types. MSPortal uses Halo’s ITIL Ticket Type classification rather than assuming a ticket type is named “Problem”. The Problems sync includes recent activity and older unresolved records. Once synced, use the Problems source in Reports > New Report > Full Report or add the Problems block in Builder. See Halo Problems in QBRs for period and backlog meanings.Prerequisites
- Administrator access to your Halo PSA instance
- Access to MSPortal.ai with integration management permissions. Ticket configuration also needs the Ticket Settings permission.
- (Recommended) Custom MSPortal role and API-only agent created in Halo PSA
Part 1: Configure Halo PSA
Before connecting to MSPortal.ai, you need to create an API application in Halo PSA. Access depends on both the application’s permissions and the permissions of the agent it logs in as. See Halo’s API documentation.Log in to Halo PSA
Create the MSPortal Role and Agent
Open Integrations
Create API Application
- Click View Applications
- Create a new application named “MSPortal.ai”
- Select Client ID and Secret (Services) as the authentication method
- Save your Client ID and Client Secret. You need them in MSPortal.
- Select your MSPortal API-only agent in Agent to Log in as
Configure Permissions
read:customers and read:tickets are required. The rest turn on optional features.Configure CORS Whitelist
- Click Security
- Add
app.msportal.aito the CORS whitelist - Click Submit to save
Project management permissions
Skip this section unless you will create or update Halo projects from MSPortal. Halo checks two things, the MSPortal.ai API application and the agent it logs in as. Application access cannot override a restriction on that agent.Grant project and ticket access on the application
Check the agent's permissions
Widen the agent's scope
Save and re-check
Test on a project
Part 2: Set up the connection in MSPortal
Open Settings > Integrations and choose Halo PSA from the Directory, or open its existing connection from Active. The Setup guide lists the tasks below. The connection header’s Docs button opens this documentation without changing your current task.Connect
Enter API credentials
Test the connection
app.msportal.ai.Save
Permissions
MSPortal checks what your Halo API application is allowed to read, and shows the result for each area of data.Review the results
Grant anything missing
all scope), then come back and click Re-check. Tickets and statuses also depend on the API agent’s team membership.Continue
Choose data
Choose what to sync from Halo PSA. Switches sit side by side in two groups, Core data and Extended data. Turning a switch on reveals its settings below that group, and turning it off hides them without clearing saved filters. Each switch and selector has an (i) beside its name: hover over, tap or focus it to read what the setting does. Switches and scope selectors save immediately; wait for the save result.
Branch preview: MSP staff in the Demo tenant.
Ticket sync scope

A saved ticket type remains removable when Halo's catalog is unavailable. The unknown ID is a simulated test value.
Contact and company auto-import
- Contact auto-import: turn on Contact Auto-Import to create user accounts for active contacts when companies are added, and select a Default Role for Imported Contacts (e.g., Viewer). Optionally, under Portal roles by Halo role, select Add rule to give a Halo role or the Important Contact flag another portal role. When a contact matches more than one rule, the rule highest in the list wins. Contacts that match no rule get the default role. To create portal users from your clients’ Microsoft 365 tenants instead, use an access rule with the action Import Microsoft 365 users (branch preview). See Set access rules.
- Company auto-import: under Auto-Import Company Types, select the Halo client types to create in the portal automatically during sync. MSPortal asks you to confirm before it imports a new batch, because companies are a billed item.
Auto-import to Planner
With Enable Opportunity Sync on, the Auto-import to Planner switch sits below the Extended data switches and controls which opportunities create planner items:Import or match companies and users
Open Import or match companies. Its first view, Import, includes unlinked records with or without suggestions; Suggested is available for reviewing proposed matches. Use the Import action beside a source company for a single import, or Import companies to open the selection dialog. The dialog loads unmatched records across provider pages for the current search. Use Select current page for its displayed page or Select all pages for every matching record. Review the names and selected count, then confirm the import. Existing portal companies with the same name are matched instead of duplicated. To link a company that already exists under a different name, choose it in the row or review and accept the suggested match. Accepted matches, unlinking and ignores save when applied; opening the import dialog alone saves nothing. Import or match at least one company, then open Import or match users for its contacts. You can leave other companies for later and return to import more users. The workspace opens on Import, which includes suggested contacts too. Use Import beside a contact, or select contacts and choose Import selected. Use the header checkbox to select the current page, click it again to select all pages matching the current filters, and click again to clear the selection. Select all with email replaces the selection with contacts that have an email address across all pages matching the current filters. Large selections run in batches. In the review panel, choose the intended Company role and review the ready-to-import and skipped counts. Contacts without an email address are skipped; you can optionally add an address before confirming. Correct invalid addresses or clear them to skip those contacts, and resolve duplicate addresses. To link an existing account, choose that user or accept a reviewed suggestion. Importing contacts does not automatically invite them to the portal. Review name-only suggestions carefully. You can ignore contacts you do not intend to import and restore them later. See Import companies and Import users for selection scope and retry guidance.
MSPortal Demo: the Halo Import or match users task embedded in Launch Center.
Import devices
Use the optional Import devices task to bring Halo assets into MSPortal as devices. Make sure Enable asset sync is on in Choose data, then map Halo asset types to MSPortal device types and select the assets to import. Check existing records before creating duplicates. See Import Devices for the full guide.Configure tickets
Configure tickets sets ticket behavior inside MSPortal. Choose the relevant teams in Choose data first; the status lists stay empty until you do. Selectors save immediately and text fields save after editing or when you continue. Wait for the saved state before you leave.- Ticket Defaults sets the PSA values used for new tickets created in the portal. These are the same defaults as Settings > Tickets, and editing them requires the Ticket Settings permission. It includes the Requester field, which records each submitter’s name in a ticket UDF. See Requester field. Add that UDF to your Halo ticket types, or Halo drops the value.
- Closed Statuses marks the statuses that mean a ticket is closed, and Client Comment Status is the status set when a client comments on a ticket (e.g., “Updated”).
- The Resolution Status Stepper shows ticket progress. Map your Halo statuses to each stage: New, Triaged, Working, Waiting and Resolved. You can map several statuses to one stage.
- Quick Sync requests an immediate ticket sync. Clear & Resync clears portal ticket data for this connection and reads the last 365 days of tickets from Halo again. Use it only for an intended rebuild, and see Clear and Resync Integrations first.
Configure opportunities
Configure opportunities sets the values used for opportunities created from MSPortal. Halo requires several fields on every opportunity, so these defaults let the planner Create Opportunity action post a complete opportunity to Halo without prompting each time.Review and finish setup
Open Review, resolve any remaining required tasks and select Finish setup. Completion does not mean every background import or sync has succeeded; check the results and client visibility separately. Saved changes remain when you leave; reopen the connection and select a task to continue.Maintain the connection
Use Overview and Sync activity to inspect connection status and synchronization. Run sync in the connection header starts a sync of all data or one dataset, and More actions holds the other connection actions. To rotate credentials, open Connect, enter the new values, select Test connection, then Save changes. A successful test alone does not save the replacement. Changing the Halo URL requires entering the client secret again. To remove the integration, open More actions and choose Disconnect…. The confirmation lists the stored credentials, matches and synced data that will be removed. Delete the API application in Halo separately. Once your integration is configured, you can:- View synced tickets in the Tickets module
- Access customer data in the Companies module
- Create opportunities from the Planner module
- Link projects to planner items
Show Halo assets as agreements
You can show assets of chosen Halo asset types as agreements, such as software licences or domain renewals. This works without device asset sync, but the Halo API application needs read access to assets.Open Choose data
Pick the asset types
Map the fields
Sync company fields and alerts from HaloPSA
Company custom fields can follow a HaloPSA customer field or the customer’s pop-up notes. In Settings > Customization > Fields > Companies, edit a text field and choose the source in Sync from HaloPSA. Synced values are read-only in MSPortal and update with each HaloPSA company sync. Turn on Show as alert to show the value as a banner on the company’s pages; the account manager gets a notification when HaloPSA changes it. See Company fields from HaloPSA and alerts.Import HaloPSA native CSAT for dashboards and reports
This imports satisfaction feedback already collected in Halo PSA. You do not need Simplesat or a new MSPortal survey, and you can keep using Halo’s own satisfaction survey. The import is off by default.Grant feedback read access
read:feedback permission (or the all scope).Re-check permissions
Turn on the import
Set the rating scale
Wait for the import
Check company links
Grant read access
Present the imported feedback
If Halo CSAT is missing
Connecting Halo does not turn on the import by itself. Check that Import satisfaction ratings is saved, Satisfaction feedback is granted, the last import succeeded in Sync activity, the rating scale and Lowest score is best setting are right, the tickets have synced, the companies are linked, the selected dates are right and the reader has the CSAT permission. If the Import satisfaction ratings toggle does not appear at all, contact MSPortal support. If most of your technicians show unexpectedly low CSAT, check the survey direction first. Read a few imported comments: praise attached to low scores means Lowest score is best should be on.Devices from Halo assets
MSPortal treats an RMM, MDM or network tool as the source of truth for a device. When an RMM is connected, a Halo asset keeps or creates a device only when its type has Auto-import on and is not ignored in Import Devices. Assets of other types add their details to devices your RMM reports.- Assets removed in Halo. Every asset sync reads the full asset list from Halo. MSPortal only acts on a list it read to the end. An asset deleted or marked inactive in Halo is removed from staging three days later, and stays if it comes back or is reactivated in the meantime. An asset with an excluded status, or in a company no longer mapped, stops syncing and keeps its device.
- What happens to the device. When the asset leaves staging, its device moves to another integration that still reports it, such as your RMM. A device nothing else reports is removed. In a tenant with an RMM, an IT Glue or other PSA record keeps the device only when its type has Auto-import on.
Troubleshooting
Frequently asked questions
Can I dashboard or report on HaloPSA native CSAT responses?
Can I dashboard or report on HaloPSA native CSAT responses?
Does Test connection only test credentials?
Does Test connection only test credentials?
Does a green permissions result verify ticket writes?
Does a green permissions result verify ticket writes?
Does Finish setup mean all data is ready?
Does Finish setup mean all data is ready?
Will every discovered contact receive portal access?
Will every discovered contact receive portal access?
Can I replace saved credentials by retesting the form?
Can I replace saved credentials by retesting the form?