Set up a dedicated MSPortal role and API-only agent in Halo PSA for secure integration
This guide walks you through creating a dedicated role and API-only agent in Halo PSA for the MSPortal.ai integration. Use the permission tables below as the checklist for the role, then link the agent to the MSPortal API application.
Creating a dedicated MSPortal role and API-only agent is recommended for security best practices. This ensures the integration has only the permissions it needs and provides clear audit trails.
This step is required for the MSPortal integration to access tickets, customers, and other data. The API agent will only be able to see data from departments and teams assigned to the role.
1
Open the MSPortal Role
Go to Configuration → Teams & Agents → Roles, then click on the MSPortal role to edit it.
2
Navigate to Departments & Teams Tab
Click on the Departments & Teams tab within the role settings.
3
Add Departments and Teams
Add all the departments and teams that you want MSPortal to have access to:
Add each department whose data should be visible in MSPortal
Add each team whose tickets and data should be visible in MSPortal
Click Submit to save the role
If you skip this step, the MSPortal integration may not be able to see tickets, customers, or other data associated with those departments and teams.
Navigate to Configuration → Integrations → Halo PSA API → View Applications.
2
Open the MSPortal Application
If you already connected MSPortal, open the MSPortal.ai application. Otherwise click New, name it MSPortal.ai and choose Client ID and Secret (Services) as the authentication method.
3
Select the Agent
In the Agent to Log in as dropdown, select the MSPortal API-only agent you just created.
4
Grant the API Permissions
Open the application’s Permissions tab and grant the permissions below. The role controls what the agent can do in Halo. These permissions control which parts of the API MSPortal can call.
Application permission
MSPortal feature
Required
read:customers
Companies, users and agents
Yes
read:tickets
Tickets, teams, statuses, priorities and ticket types
Yes
read:assets
Devices
Optional
read:opportunities
Opportunities
Optional
read:items
Product catalog
Optional
read:invoices
Invoices
Optional
read:contracts
Customer agreements
Optional
read:projects
Projects
Optional
read:timesheets
Time entries
Optional
read:feedback
Satisfaction ratings (CSAT)
Optional
Change access (all covers it)
Change management calendar
Optional
To create tickets, notes and time entries from MSPortal, also grant Ticket Modify. To manage Halo projects from MSPortal, also grant Project Read and Project Modify (see Project Management below).
5
Save and Copy the Credentials
Click Submit. For a new application, copy the Client ID and Client Secret now, because Halo shows the secret only once.
In MSPortal, go to Settings → Integrations → Halo PSA. For a new connection, enter your Halo URL, Client ID and Client Secret, then click Test Connection. The full walkthrough is in Connect Halo PSA.
2
Review the Permissions Step
Each required check must pass before you can continue. Optional checks that fail only turn off that feature.
3
Fix and Re-check
If a check fails, grant the permission it names in Halo, save, then click Re-check in MSPortal.
The Permissions step tests read access. Confirm write actions, like creating a ticket or logging time, by trying them once on a test record.
Skip this section unless you will create or update Halo projects from MSPortal.
1
Grant Project and Ticket Access on the Application
On the MSPortal.ai application, grant Project Read, Project Modify, Ticket Read and Ticket Modify.
2
Confirm the Agent's Ticket Permissions
The Tickets permissions in the role table above cover child tickets, notes, time and to-do items. Make sure the agent’s teams, clients and ticket types include your project ticket types.
3
Test on a Project
Create a test project from MSPortal, add a note with time and complete a checklist item. The project management permission table lists each operation and current Halo limits.
Authentication works, but tickets or teams are missing
The agent can only see data from the departments and teams on its role. Add them on the role’s Departments & Teams tab, and confirm Allow use of all Ticket Types and Allow use of all Customers are set. Then select Re-check on the MSPortal Permissions step.
An optional feature shows as denied
Grant the matching application permission from the table above only if you want that feature. Otherwise leave its sync turned off.
A check timed out or could not be verified
A timeout is not a permission denial. Retry before changing the role.
Return to the Halo PSA setup in MSPortal to choose what to sync and map your Halo customers to MSPortal companies.
Configure Halo PSA Integration
Complete guide to connecting Halo PSA with MSPortal.ai
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"MSPortal.ai Documentation","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/msportal/KnbwIXtZSTlVJTt6/logo/light.svg?fit=max\u0026auto=format\u0026n=KnbwIXtZSTlVJTt6\u0026q=85\u0026s=eb69f6d6bf16b2c401770aef19ade1d2","dark":"https://mintcdn.com/msportal/KnbwIXtZSTlVJTt6/logo/dark.svg?fit=max\u0026auto=format\u0026n=KnbwIXtZSTlVJTt6\u0026q=85\u0026s=03f8df7191e7a8ea7da084df57f6107f"},"favicon":"https://mintcdn.com/msportal/KjsKytvp08K0bejm/favicon-16x16.png?fit=max\u0026auto=format\u0026n=KjsKytvp08K0bejm\u0026q=85\u0026s=378df7f039bbff7885231fec799d29ac","navbar":{"links":[{"href":"https://app.msportal.ai/product-roadmap","label":"Roadmap"},{"href":"mailto:support@msportal.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.msportal.ai"}},"footer":{"socials":{"linkedin":"https://linkedin.com/company/msportal"}},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"MSPortal.ai","icon":"globe","href":"https://msportal.ai"},{"anchor":"Support","icon":"life-ring","href":"mailto:support@msportal.ai"},{"anchor":"Status","icon":"signal","href":"https://status.msportal.ai"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"msportal","hasAudioNarration":false,"actualSubdomain":"msportal","customDomains":["docs.msportal.ai"],"gitSource":{"type":"github","owner":"msportal-ai","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad8d218182ff03fed6d05cc","collectionId":"09c61d36-c2f4-4933-8f58-3ef63d827cc0","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad8d218182ff03fed6d05cc"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ad8d218182ff03fed6d05cc","clientVersion":"0.0.3926","searchFilterCounts":[{"language":"default","tag":"MSP Guides","count":454},{"language":"default","tag":"Service Delivery","count":165},{"language":"default","tag":"API Reference","count":111},{"language":"default","tag":"Overview \u0026 Planning","count":109},{"language":"default","tag":"Connect your tools","count":88},{"language":"default","tag":"Integration setup","count":88},{"language":"default","tag":"Administration","count":38},{"language":"default","tag":"Settings","count":38},{"language":"default","tag":"Getting Started","count":36},{"language":"default","tag":"Budgets","count":36}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"user-guides/integrations/halo-psa-custom-role-and-user","slug":"/user-guides/integrations/halo-psa-custom-role-and-user","pageMetadata":{"title":"Create Custom Halo PSA Role and API User","description":"Set up a dedicated MSPortal role and API-only agent in Halo PSA for secure integration","icon":"user-shield","href":"/user-guides/integrations/halo-psa-custom-role-and-user"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Set up a dedicated MSPortal role and API-only agent in Halo PSA for secure integration\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,img:`img`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,Heading,Info,Note,Step,Steps,Table,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`This guide walks you through creating a dedicated role and API-only agent in Halo PSA for the MSPortal.ai integration. Use the permission tables below as the checklist for the role, then link the agent to the MSPortal API application.`}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Administrator access to your Halo PSA instance`}),`\n`,_jsx(_components.li,{children:`Access to the Configuration area in Halo PSA`}),`\n`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Creating a dedicated MSPortal role and API-only agent is `,_jsx(_components.strong,{children:`recommended`}),` for security best practices. This ensures the integration has only the permissions it needs and provides clear audit trails.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`create-the-msportal-role`,children:`Create the MSPortal Role`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Navigate to Agent Roles`,children:[_jsxs(_components.p,{children:[`In Halo PSA, go to `,_jsx(_components.strong,{children:`Configuration`}),` → `,_jsx(_components.strong,{children:`Teams \u0026 Agents`}),` → `,_jsx(_components.strong,{children:`Roles`}),`.`]}),_jsx(_components.p,{children:_jsx(_components.img,{src:`https://colony-recorder.s3.amazonaws.com/files/2025-12-16/158beb82-87a4-4d6e-bd98-0d10ca022cb2/stack_animation.webp`,alt:`Navigate to Roles`})})]}),_jsx(Step,{title:`Create New Role`,children:_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`New`})]}),`\n`,_jsxs(_components.li,{children:[`Enter `,_jsx(_components.strong,{children:`MSPortal`}),` as the role name`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Submit`})]}),`\n`]})}),_jsxs(Step,{title:`Configure Role Permissions`,children:[_jsxs(_components.p,{children:[`Under the `,_jsx(_components.strong,{children:`Permissions`}),` section, configure the following settings:`]}),_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`General Permissions`,id:`general-permissions`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Permission`}),_jsx(_components.th,{children:`Setting`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Is a HaloPSA Administrator`}),_jsx(_components.td,{children:`Not set`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Editing of own Preferences`}),_jsx(_components.td,{children:`Not set`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Editing of own Notifications`}),_jsx(_components.td,{children:`Not set`})]})]})]})}),_jsx(Accordion,{title:`Feature Access`,id:`feature-access`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Module`}),_jsx(_components.th,{children:`Access Level`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tickets`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Customers`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Users`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`CRM`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Assets`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read, Modify and Delete`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Calendars and Appointments`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Knowledge Base`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read, Modify and Delete`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Suppliers`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Products`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Sales`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Quotations`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Sales Orders`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read, Modify and Delete`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Purchase Orders`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Billing Details`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Invoices`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read, Create, Modify and Delete`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Reporting`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Customer Agreements`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Supplier Agreements`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Service Catalogue`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Software Releases`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Timesheets`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify (All)`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Software Licencing`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Segments`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Documents`}),_jsx(_components.td,{children:`Not set`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Mail Campaign`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read and Modify`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Event Management`}),_jsx(_components.td,{children:`Not set`})]})]})]})}),_jsx(Accordion,{title:`Tickets Permissions`,id:`tickets-permissions`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Permission`}),_jsx(_components.th,{children:`Setting`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can add new Tickets`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can edit closed Tickets`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can view Unassigned Tickets`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can view Tickets assigned to other Agents`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can change a Ticket’s Ticket Type`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can Re-assign Tickets`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can Edit Advanced Ticket Details`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Editing of Actions`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Can Edit All Actions`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can manually adjust billing time allocation per action`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`All`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can recalculate billing against Tickets`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can Delete Tickets`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`No`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can assign to Agents in Teams the Agent is not a member of`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can Edit Tickets Which Are Not Assigned To Them`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can override maximum priority escalation at ticket type level`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can Override Ticket Review Processing`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can use the Treat as Spam button`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can export tickets`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can always update Ticket Statuses outside of actions`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can remove To-Do items`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]})]})]})}),_jsx(Accordion,{title:`Calendars and Appointments Permissions`,id:`calendars-and-appointments-permissions`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Permission`}),_jsx(_components.th,{children:`Setting`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Editing of Appointments`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Can Edit All Appointments`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Adding New Appointments`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Can Add All Appointments`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Visibility of Appointments`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Can View All Appointments`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Deleting of Appointments`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Can Delete All Appointments`})})]})]})]})}),_jsx(Accordion,{title:`Restrictions`,id:`restrictions`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Restriction`}),_jsx(_components.th,{children:`Setting`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Allow use of all Ticket Types`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Allow use of all Customers`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Customer Group Override`}),_jsx(_components.td,{children:`Not set`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Allow use of all Asset Types`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Allow use of all Asset Fields`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]})]})]})}),_jsx(Accordion,{title:`Billing Permissions`,id:`billing-permissions`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Permission`}),_jsx(_components.th,{children:`Setting`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can View Item Costs`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read Only`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can View Item Prices`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read Only`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can View Product SKU`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Read Only`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Can View Agent Costs`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`No`})})]})]})]})}),_jsx(Accordion,{title:`Configuration Permissions`,id:`configuration-permissions`,children:_jsxs(_components.p,{children:[`All configuration permissions should be set to `,_jsx(_components.strong,{children:`Not set`}),` (disabled). The MSPortal integration does not require configuration access.`]})})]}),_jsx(_components.p,{children:_jsx(_components.img,{src:`https://colony-recorder.s3.amazonaws.com/files/2025-12-16/9cdf2e26-232a-49a1-bd24-88fc7be0a04b/stack_animation.webp`,alt:`Role Permissions`})})]}),_jsx(Step,{title:`Save the Role`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Submit`}),` to save the new role.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`create-the-api-only-agent`,children:`Create the API-Only Agent`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Navigate to Agents`,children:[_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Configuration`}),` → `,_jsx(_components.strong,{children:`Teams \u0026 Agents`}),` → `,_jsx(_components.strong,{children:`Agents`}),`.`]}),_jsx(_components.p,{children:_jsx(_components.img,{src:`https://colony-recorder.s3.amazonaws.com/files/2025-12-16/efce8d3a-7c8b-42e6-909f-b69bb70253bc/stack_animation.webp`,alt:`Navigate to Agents`})})]}),_jsxs(Step,{title:`Create New Agent`,children:[_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`New`})]}),`\n`,_jsxs(_components.li,{children:[`Enter `,_jsx(_components.strong,{children:`MSPortal`}),` as the agent name`]}),`\n`,_jsxs(_components.li,{children:[`Check `,_jsx(_components.strong,{children:`Is an API-only Agent`})]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`MSPortal`}),` from the `,_jsx(_components.strong,{children:`Role`}),` dropdown`]}),`\n`]}),_jsx(Tip,{children:_jsx(_components.p,{children:`API-only agents don’t require a password or email address since they’re used exclusively for API access.`})})]}),_jsx(Step,{title:`Save the Agent`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Submit`}),` to create the agent.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`assign-departments-and-teams-to-the-role`,children:`Assign Departments and Teams to the Role`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`This step is required for the MSPortal integration to access tickets, customers, and other data. The API agent will only be able to see data from departments and teams assigned to the role.`})}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the MSPortal Role`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Configuration`}),` → `,_jsx(_components.strong,{children:`Teams \u0026 Agents`}),` → `,_jsx(_components.strong,{children:`Roles`}),`, then click on the `,_jsx(_components.strong,{children:`MSPortal`}),` role to edit it.`]})}),_jsx(Step,{title:`Navigate to Departments \u0026 Teams Tab`,children:_jsxs(_components.p,{children:[`Click on the `,_jsx(_components.strong,{children:`Departments \u0026 Teams`}),` tab within the role settings.`]})}),_jsxs(Step,{title:`Add Departments and Teams`,children:[_jsx(_components.p,{children:`Add all the departments and teams that you want MSPortal to have access to:`}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Add each department whose data should be visible in MSPortal`}),`\n`,_jsx(_components.li,{children:`Add each team whose tickets and data should be visible in MSPortal`}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Submit`}),` to save the role`]}),`\n`]})]})]}),`\n`,_jsx(Info,{children:_jsx(_components.p,{children:`If you skip this step, the MSPortal integration may not be able to see tickets, customers, or other data associated with those departments and teams.`})}),`\n`,_jsx(Heading,{level:`2`,id:`link-the-agent-to-your-api-application`,children:`Link the Agent to Your API Application`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open API Applications`,children:_jsxs(_components.p,{children:[`Navigate to `,_jsx(_components.strong,{children:`Configuration`}),` → `,_jsx(_components.strong,{children:`Integrations`}),` → `,_jsx(_components.strong,{children:`Halo PSA API`}),` → `,_jsx(_components.strong,{children:`View Applications`}),`.`]})}),_jsx(Step,{title:`Open the MSPortal Application`,children:_jsxs(_components.p,{children:[`If you already connected MSPortal, open the `,_jsx(_components.strong,{children:`MSPortal.ai`}),` application. Otherwise click `,_jsx(_components.strong,{children:`New`}),`, name it `,_jsx(_components.strong,{children:`MSPortal.ai`}),` and choose `,_jsx(_components.strong,{children:`Client ID and Secret (Services)`}),` as the authentication method.`]})}),_jsx(Step,{title:`Select the Agent`,children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Agent to Log in as`}),` dropdown, select the `,_jsx(_components.strong,{children:`MSPortal`}),` API-only agent you just created.`]})}),_jsxs(Step,{title:`Grant the API Permissions`,children:[_jsxs(_components.p,{children:[`Open the application’s `,_jsx(_components.strong,{children:`Permissions`}),` tab and grant the permissions below. The role controls what the agent can do in Halo. These permissions control which parts of the API MSPortal can call.`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Application permission`}),_jsx(_components.th,{children:`MSPortal feature`}),_jsx(_components.th,{children:`Required`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read:customers`})}),_jsx(_components.td,{children:`Companies, users and agents`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read:tickets`})}),_jsx(_components.td,{children:`Tickets, teams, statuses, priorities and ticket types`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Yes`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read:assets`})}),_jsx(_components.td,{children:`Devices`}),_jsx(_components.td,{children:`Optional`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read:opportunities`})}),_jsx(_components.td,{children:`Opportunities`}),_jsx(_components.td,{children:`Optional`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read:items`})}),_jsx(_components.td,{children:`Product catalog`}),_jsx(_components.td,{children:`Optional`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read:invoices`})}),_jsx(_components.td,{children:`Invoices`}),_jsx(_components.td,{children:`Optional`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read:contracts`})}),_jsx(_components.td,{children:`Customer agreements`}),_jsx(_components.td,{children:`Optional`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read:projects`})}),_jsx(_components.td,{children:`Projects`}),_jsx(_components.td,{children:`Optional`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read:timesheets`})}),_jsx(_components.td,{children:`Time entries`}),_jsx(_components.td,{children:`Optional`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`read:feedback`})}),_jsx(_components.td,{children:`Satisfaction ratings (CSAT)`}),_jsx(_components.td,{children:`Optional`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Change access (`,_jsx(_components.code,{children:`all`}),` covers it)`]}),_jsx(_components.td,{children:`Change management calendar`}),_jsx(_components.td,{children:`Optional`})]})]})]}),_jsxs(_components.p,{children:[`To create tickets, notes and time entries from MSPortal, also grant `,_jsx(_components.strong,{children:`Ticket Modify`}),`. To manage Halo projects from MSPortal, also grant `,_jsx(_components.strong,{children:`Project Read`}),` and `,_jsx(_components.strong,{children:`Project Modify`}),` (see `,_jsx(_components.a,{href:`#project-management`,children:`Project Management`}),` below).`]})]}),_jsx(Step,{title:`Save and Copy the Credentials`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Submit`}),`. For a new application, copy the `,_jsx(_components.strong,{children:`Client ID`}),` and `,_jsx(_components.strong,{children:`Client Secret`}),` now, because Halo shows the secret only once.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`check-permissions-in-msportal`,children:`Check Permissions in MSPortal`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the Halo PSA Setup`,children:_jsxs(_components.p,{children:[`In MSPortal, go to `,_jsx(_components.strong,{children:`Settings`}),` → `,_jsx(_components.strong,{children:`Integrations`}),` → `,_jsx(_components.strong,{children:`Halo PSA`}),`. For a new connection, enter your Halo URL, Client ID and Client Secret, then click `,_jsx(_components.strong,{children:`Test Connection`}),`. The full walkthrough is in `,_jsx(_components.a,{href:`/user-guides/integrations/enable-halo-integration`,children:`Connect Halo PSA`}),`.`]})}),_jsx(Step,{title:`Review the Permissions Step`,children:_jsx(_components.p,{children:`Each required check must pass before you can continue. Optional checks that fail only turn off that feature.`})}),_jsx(Step,{title:`Fix and Re-check`,children:_jsxs(_components.p,{children:[`If a check fails, grant the permission it names in Halo, save, then click `,_jsx(_components.strong,{children:`Re-check`}),` in MSPortal.`]})})]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`The Permissions step tests read access. Confirm write actions, like creating a ticket or logging time, by trying them once on a test record.`})}),`\n`,_jsx(Heading,{level:`2`,id:`project-management`,children:`Project Management`}),`\n`,_jsx(_components.p,{children:`Skip this section unless you will create or update Halo projects from MSPortal.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Grant Project and Ticket Access on the Application`,children:_jsxs(_components.p,{children:[`On the `,_jsx(_components.strong,{children:`MSPortal.ai`}),` application, grant `,_jsx(_components.strong,{children:`Project Read`}),`, `,_jsx(_components.strong,{children:`Project Modify`}),`, `,_jsx(_components.strong,{children:`Ticket Read`}),` and `,_jsx(_components.strong,{children:`Ticket Modify`}),`.`]})}),_jsx(Step,{title:`Confirm the Agent's Ticket Permissions`,children:_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Tickets`}),` permissions in the role table above cover child tickets, notes, time and to-do items. Make sure the agent’s teams, clients and ticket types include your project ticket types.`]})}),_jsx(Step,{title:`Test on a Project`,children:_jsxs(_components.p,{children:[`Create a test project from MSPortal, add a note with time and complete a checklist item. The `,_jsx(_components.a,{href:`/user-guides/integrations/enable-halo-integration#project-management-permissions`,children:`project management permission table`}),` lists each operation and current Halo limits.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Authentication works, but tickets or teams are missing`,id:`authentication-works-but-tickets-or-teams-are-missing`,children:_jsxs(_components.p,{children:[`The agent can only see data from the departments and teams on its role. Add them on the role’s `,_jsx(_components.strong,{children:`Departments \u0026 Teams`}),` tab, and confirm `,_jsx(_components.strong,{children:`Allow use of all Ticket Types`}),` and `,_jsx(_components.strong,{children:`Allow use of all Customers`}),` are set. Then select `,_jsx(_components.strong,{children:`Re-check`}),` on the MSPortal Permissions step.`]})}),_jsx(Accordion,{title:`An optional feature shows as denied`,id:`an-optional-feature-shows-as-denied`,children:_jsx(_components.p,{children:`Grant the matching application permission from the table above only if you want that feature. Otherwise leave its sync turned off.`})}),_jsx(Accordion,{title:`A check timed out or could not be verified`,id:`a-check-timed-out-or-could-not-be-verified`,children:_jsx(_components.p,{children:`A timeout is not a permission denial. Retry before changing the role.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next Steps`}),`\n`,_jsx(_components.p,{children:`Return to the Halo PSA setup in MSPortal to choose what to sync and map your Halo customers to MSPortal companies.`}),`\n`,_jsx(Card,{title:`Configure Halo PSA Integration`,icon:`plug`,href:`/user-guides/integrations/enable-halo-integration`,children:_jsx(_components.p,{children:`Complete guide to connecting Halo PSA with MSPortal.ai`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create Custom Halo PSA Role and API User","description":"Set up a dedicated MSPortal role and API-only agent in Halo PSA for secure integration","icon":"user-shield","href":"/user-guides/integrations/halo-psa-custom-role-and-user"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Create the MSPortal Role","slug":"create-the-msportal-role","depth":2,"children":[]},{"title":"Create the API-Only Agent","slug":"create-the-api-only-agent","depth":2,"children":[]},{"title":"Assign Departments and Teams to the Role","slug":"assign-departments-and-teams-to-the-role","depth":2,"children":[]},{"title":"Link the Agent to Your API Application","slug":"link-the-agent-to-your-api-application","depth":2,"children":[]},{"title":"Check Permissions in MSPortal","slug":"check-permissions-in-msportal","depth":2,"children":[]},{"title":"Project Management","slug":"project-management","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]},{"title":"Next Steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"msportal","siteName":"MSPortal.ai Documentation","title":"Create Custom Halo PSA Role and API User - MSPortal.ai Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-01T20:26:31.721Z","originalFileLocation":"user-guides/integrations/halo-psa-custom-role-and-user.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Set up a dedicated MSPortal role and API-only agent in Halo PSA for secure integration\">\u003cmeta data-mint-head name=\"application-name\" content=\"MSPortal.ai Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Custom Halo PSA Role and API User - MSPortal.ai Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Set up a dedicated MSPortal role and API-only agent in Halo PSA for secure integration\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"MSPortal.ai Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.msportal.ai/user-guides/integrations/halo-psa-custom-role-and-user\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://msportal.mintlify.app/_mintlify/api/og/v2?division=PSA+and+ticketing\u0026amp;title=Create+Custom+Halo+PSA+Role+and+API+User\u0026amp;description=Set+up+a+dedicated+MSPortal+role+and+API-only+agent+in+Halo+PSA+for+secure+integration\u0026amp;theme=e333244db34194e42db1df22\u0026amp;signature=5b9a53f5d377420f5b2ac931726fa37eb4cf36a0b3af3dd1433e1a6ced12636a\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create Custom Halo PSA Role and API User - MSPortal.ai Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Set up a dedicated MSPortal role and API-only agent in Halo PSA for secure integration\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://msportal.mintlify.app/_mintlify/api/og/v2?division=PSA+and+ticketing\u0026amp;title=Create+Custom+Halo+PSA+Role+and+API+User\u0026amp;description=Set+up+a+dedicated+MSPortal+role+and+API-only+agent+in+Halo+PSA+for+secure+integration\u0026amp;theme=e333244db34194e42db1df22\u0026amp;signature=5b9a53f5d377420f5b2ac931726fa37eb4cf36a0b3af3dd1433e1a6ced12636a\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"MSPortal.ai Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.msportal.ai/user-guides/integrations/halo-psa-custom-role-and-user\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/user-guides/integrations/halo-psa-custom-role-and-user.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.msportal.ai/#organization\",\"name\":\"MSPortal.ai Documentation\",\"url\":\"https://docs.msportal.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/msportal/KnbwIXtZSTlVJTt6/logo/light.svg?fit=max\u0026auto=format\u0026n=KnbwIXtZSTlVJTt6\u0026q=85\u0026s=eb69f6d6bf16b2c401770aef19ade1d2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.msportal.ai#website\",\"name\":\"MSPortal.ai Documentation\",\"url\":\"https://docs.msportal.ai\",\"publisher\":{\"@id\":\"https://docs.msportal.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.msportal.ai/user-guides/integrations/halo-psa-custom-role-and-user#webpage\",\"url\":\"https://docs.msportal.ai/user-guides/integrations/halo-psa-custom-role-and-user\",\"name\":\"Create Custom Halo PSA Role and API User\",\"description\":\"Set up a dedicated MSPortal role and API-only agent in Halo PSA for secure integration\",\"dateModified\":\"2026-10-01T20:26:31.721Z\",\"isPartOf\":{\"@id\":\"https://docs.msportal.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.msportal.ai/user-guides/integrations/halo-psa-custom-role-and-user#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.msportal.ai/user-guides/integrations/halo-psa-custom-role-and-user#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Connect your tools\",\"item\":\"https://docs.msportal.ai/user-guides/integrations/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Integration setup\",\"item\":\"https://docs.msportal.ai/user-guides/integrations/index\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"PSA and ticketing\",\"item\":\"https://docs.msportal.ai/user-guides/integrations/enable-connectwise-integration\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Create Custom Halo PSA Role and API User\",\"item\":\"https://docs.msportal.ai/user-guides/integrations/halo-psa-custom-role-and-user\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.msportal.ai/user-guides/integrations/halo-psa-custom-role-and-user#article\",\"headline\":\"Create Custom Halo PSA Role and API User\",\"name\":\"Create Custom Halo PSA Role and API User\",\"description\":\"Set up a dedicated MSPortal role and API-only agent in Halo PSA for secure integration\",\"url\":\"https://docs.msportal.ai/user-guides/integrations/halo-psa-custom-role-and-user\",\"mainEntityOfPage\":{\"@id\":\"https://docs.msportal.ai/user-guides/integrations/halo-psa-custom-role-and-user#webpage\"},\"dateModified\":\"2026-10-01T20:26:31.721Z\",\"publisher\":{\"@id\":\"https://docs.msportal.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.msportal.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"MSPortal.ai Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"MSPortal.ai Documentation","nav":{"global":{"anchors":[{"anchor":"MSPortal.ai","icon":"globe","href":"https://msportal.ai"},{"anchor":"Support","icon":"life-ring","href":"mailto:support@msportal.ai"},{"anchor":"Status","icon":"signal","href":"https://status.msportal.ai"}]},"tabs":[{"tab":"Company Guides","pages":[{"title":"Company Guides","href":"/user-guides/account/manage-your-profile"}]},{"tab":"MSP Guides","groups":[{"group":"Getting Started","pages":[{"title":"MSP guides","icon":"book-open","href":"/user-guides/getting-started"},{"title":"Quick start for MSP staff","icon":"book-open","href":"/user-guides/getting-started/quick-start"},{"title":"Work through your portal launch plan","icon":"rocket","href":"/user-guides/getting-started/launch-center"},{"group":"Navigation and access","expanded":false,"pages":[{"title":"How data moves through MSPortal","icon":"diagram-project","href":"/user-guides/getting-started/data-flow"},{"title":"Find pages and records with Search","icon":"magnifying-glass","href":"/user-guides/getting-started/universal-search"},{"title":"Customize the sidebar","icon":"book-open","href":"/user-guides/getting-started/customizing-the-sidebar"},{"title":"Use keyboard shortcuts","icon":"keyboard","href":"/user-guides/getting-started/keyboard-shortcuts"},{"title":"How to Create a New User Role","icon":"shield-halved","href":"/user-guides/getting-started/how-to-create-a-new-user-role"},{"title":"Control what Company users can see","icon":"eye-slash","href":"/user-guides/getting-started/hiding-items-from-clients"}]},{"group":"MSP Setup Playbook","expanded":false,"pages":[{"title":"MSP setup playbook","sidebarTitle":"MSP setup playbook","icon":"rocket","href":"/user-guides/getting-started/onboarding/index"},{"title":"Tenant details","sidebarTitle":"Tenant details","icon":"building","href":"/user-guides/getting-started/onboarding/tenant-details"},{"title":"Support identity and AI settings","sidebarTitle":"Support identity and AI settings","icon":"sparkles","href":"/user-guides/getting-started/onboarding/ai-settings"},{"title":"Portal branding","sidebarTitle":"Portal branding","icon":"palette","href":"/user-guides/getting-started/onboarding/branding"},{"title":"Staff access groups","sidebarTitle":"Staff access groups","icon":"users","href":"/user-guides/getting-started/onboarding/tenant-roles"},{"title":"Company access groups","sidebarTitle":"Company access groups","icon":"shield","href":"/user-guides/getting-started/onboarding/company-permission-groups"},{"title":"Account teams and Team Roles","sidebarTitle":"Account teams and Team Roles","icon":"user-cog","href":"/user-guides/getting-started/onboarding/company-roles"},{"title":"Choose launch integrations","sidebarTitle":"Choose launch integrations","icon":"puzzle-piece","href":"/user-guides/getting-started/onboarding/integration-selection"},{"title":"PSA connection","sidebarTitle":"PSA connection","icon":"ticket","href":"/user-guides/getting-started/onboarding/psa-setup"},{"title":"Prepare client ticketing","sidebarTitle":"Prepare client ticketing","icon":"sliders","href":"/user-guides/getting-started/onboarding/ticket-settings"},{"title":"RMM connection","sidebarTitle":"RMM connection","icon":"desktop","href":"/user-guides/getting-started/onboarding/rmm-setup"},{"title":"Import rollout devices","sidebarTitle":"Import rollout devices","icon":"server","href":"/user-guides/getting-started/onboarding/device-import"},{"title":"Set up a sending domain","sidebarTitle":"Set up a sending domain","icon":"envelope","href":"/user-guides/getting-started/onboarding/email-domain"},{"title":"Prepare training for launch","sidebarTitle":"Prepare training for launch","icon":"graduation-cap","href":"/user-guides/getting-started/onboarding/training"},{"title":"Review billing before launch","sidebarTitle":"Review billing before launch","icon":"credit-card","href":"/user-guides/getting-started/onboarding/billing"},{"title":"Connect rollout companies to Microsoft 365","sidebarTitle":"Connect rollout companies to Microsoft 365","icon":"cloud","href":"/user-guides/getting-started/onboarding/company-m365"},{"title":"Prepare Company users","sidebarTitle":"Prepare Company users","icon":"users","href":"/user-guides/getting-started/onboarding/company-users"}]},{"group":"Your account","expanded":false,"pages":[{"title":"Manage your profile and email preferences","icon":"user-gear","href":"/msp-guides/account/manage-your-profile"},{"title":"Understand your role and company access","icon":"shield-halved","href":"/msp-guides/account/understand-your-access"},{"title":"Arrange your personal sidebar","icon":"table-columns","href":"/msp-guides/account/arrange-your-sidebar"},{"title":"Tasks and notes","icon":"list-check","href":"/user-guides/tasks/index"},{"title":"Import and add linked tasks","icon":"file-import","href":"/user-guides/tasks/import-tasks"},{"title":"Notes and AI task suggestions","icon":"notebook-pen","href":"/user-guides/tasks/notes"}]},{"group":"AI and MCP","expanded":false,"pages":[{"title":"AI Assistant","icon":"sparkles","href":"/user-guides/ai-assistant/index"},{"title":"Use the Home AI Assistant","icon":"sparkles","href":"/msp-guides/ai-assistant/use-home-assistant"},{"title":"MCP Server","icon":"plug","href":"/user-guides/mcp-server/index"},{"title":"Connect GitHub Copilot","icon":"github","href":"/user-guides/mcp-server/github-copilot"},{"title":"MCP Tools Reference","icon":"screwdriver-wrench","href":"/user-guides/mcp-server/tools-reference"}]}]},{"group":"Service Delivery","pages":[{"group":"Client Onboarding","expanded":false,"pages":[{"title":"Client Onboarding","icon":"clipboard-check","href":"/user-guides/client-onboarding/index"},{"title":"Open your onboarding portal","icon":"door-open","href":"/user-guides/client-onboarding/open-your-onboarding"},{"title":"Complete onboarding tasks and forms","icon":"list-check","href":"/user-guides/client-onboarding/complete-tasks-and-forms"},{"title":"Upload onboarding documents and secure files","icon":"file-arrow-up","href":"/user-guides/client-onboarding/upload-files"},{"title":"Hand over credentials during onboarding","icon":"key","href":"/user-guides/client-onboarding/hand-over-credentials"},{"title":"Review onboarding approvals and sign documents","icon":"signature","href":"/user-guides/client-onboarding/review-and-sign"},{"title":"Use onboarding meetings, training, surveys, and reference pages","icon":"clipboard-list","href":"/user-guides/client-onboarding/meetings-training-and-surveys"},{"title":"Quick Start","icon":"rocket","href":"/user-guides/client-onboarding/quick-start"},{"title":"Onboarding Templates","icon":"copy","href":"/user-guides/client-onboarding/templates"},{"title":"Client Pages","icon":"book-open","href":"/user-guides/client-onboarding/pages"},{"title":"Onboarding Forms","icon":"clipboard-list","href":"/user-guides/client-onboarding/forms"},{"title":"Managing Portals","icon":"bars-progress","href":"/user-guides/client-onboarding/managing-portals"},{"title":"Link an onboarding template task to a Standard","icon":"link","href":"/user-guides/client-onboarding/link-task-to-standard"},{"title":"Retrieve onboarding credentials and secure files","icon":"shield-halved","href":"/user-guides/client-onboarding/retrieve-secure-submissions"},{"title":"Custom Dates and Countdowns","icon":"stopwatch","href":"/user-guides/client-onboarding/custom-dates"},{"title":"Understand the client onboarding portal","icon":"browser","href":"/user-guides/client-onboarding/client-portal"}]},{"group":"Training","expanded":false,"pages":[{"title":"Training","icon":"graduation-cap","href":"/user-guides/training/index"},{"title":"Find and enroll in a training course","icon":"book-open","href":"/user-guides/training/find-and-enroll"},{"title":"Take a course and track progress","icon":"graduation-cap","href":"/user-guides/training/take-a-course"},{"title":"View and share a training certificate","icon":"award","href":"/user-guides/training/certificates"},{"title":"Enable training for companies and users","icon":"graduation-cap","href":"/user-guides/training/enabling-training"},{"title":"Manage learning paths","icon":"route","href":"/user-guides/training/learning-paths"},{"title":"Security awareness training","icon":"shield-check","href":"/user-guides/training/security-awareness"},{"title":"Read security awareness learner status","icon":"user-shield","href":"/user-guides/training/read-awareness-status"},{"title":"Read a Breach Secure Now learner's risk details","icon":"user-shield","href":"/user-guides/training/read-bsn-risk"},{"title":"Open your Huntress training","icon":"shield-check","href":"/user-guides/training/open-huntress-training"},{"title":"Find Huntress training assignments","icon":"graduation-cap","href":"/user-guides/training/read-huntress-assignments"},{"title":"Read a Huntress curriculum and preview episodes","icon":"book-open","href":"/user-guides/training/read-huntress-curriculum"}]},{"group":"Cloud","expanded":false,"pages":[{"title":"Cloud overview","icon":"cloud","href":"/user-guides/cloud/index"},{"title":"Read cloud security posture","icon":"shield-check","href":"/user-guides/cloud/posture"},{"title":"Find and filter posture snapshots","icon":"filter","href":"/user-guides/cloud/find-posture"},{"title":"Understand Google posture checks","icon":"calculator","href":"/user-guides/cloud/google-posture-checks"},{"title":"Read cloud user accounts","icon":"users","href":"/user-guides/cloud/users"},{"title":"Find and filter cloud users","icon":"filter","href":"/user-guides/cloud/find-users"},{"title":"Export cloud users","icon":"file-csv","href":"/user-guides/cloud/export-users"},{"title":"Read cloud groups and members","icon":"user-group","href":"/user-guides/cloud/groups"},{"title":"Find and filter cloud groups","icon":"filter","href":"/user-guides/cloud/find-groups"},{"title":"Manage client group visibility","icon":"eye-slash","href":"/user-guides/cloud/manage-group-visibility"},{"title":"Read cloud license usage","icon":"id-card","href":"/user-guides/cloud/licenses"},{"title":"Find, filter, and export licenses","icon":"filter","href":"/user-guides/cloud/filter-licenses"},{"title":"View license assignments and combinations","icon":"users","href":"/user-guides/cloud/view-license-assignments"},{"title":"Read cloud and registrar domains","icon":"globe","href":"/user-guides/cloud/domains"},{"title":"Find and export domains","icon":"filter","href":"/user-guides/cloud/filter-domains"},{"title":"Review domain renewal information","icon":"calendar","href":"/user-guides/cloud/review-domain-renewals"}]},{"group":"Microsoft 365","expanded":false,"pages":[{"title":"Read Microsoft Secure Score","icon":"shield-check","href":"/user-guides/microsoft-365/index"},{"title":"Find and filter Secure Score controls","icon":"shield-check","href":"/user-guides/microsoft-365/find-secure-score-controls"},{"title":"Read a Secure Score control","icon":"shield-check","href":"/user-guides/microsoft-365/read-secure-score-control"},{"title":"Export Secure Score controls","icon":"shield-check","href":"/user-guides/microsoft-365/export-secure-score"},{"title":"Plan work from Secure Score","icon":"list-check","href":"/user-guides/microsoft-365/plan-secure-score-work"},{"title":"Read Microsoft Current Posture","icon":"radar","href":"/user-guides/microsoft-365/posture"},{"title":"Find and read Current Posture findings","icon":"radar","href":"/user-guides/microsoft-365/find-posture-findings"},{"title":"Review and reopen Current Posture findings","icon":"radar","href":"/user-guides/microsoft-365/review-posture-findings"},{"title":"Connecting Companies to Microsoft 365","icon":"plug","href":"/user-guides/microsoft-365/connecting-companies"},{"title":"Microsoft 365 users","icon":"users","href":"/user-guides/microsoft-365/users"},{"title":"Microsoft 365 licenses","icon":"id-card","href":"/user-guides/microsoft-365/licenses"},{"title":"Microsoft 365 domains","icon":"globe","href":"/user-guides/microsoft-365/domains"}]},{"group":"Ticketing","expanded":false,"pages":[{"title":"Tickets","icon":"ticket","href":"/user-guides/ticketing/index"},{"title":"How to open a ticket","icon":"ticket","href":"/msp-guides/ticketing/open-a-ticket"},{"title":"Find and follow up on a ticket","icon":"comments","href":"/msp-guides/ticketing/follow-up-on-a-ticket"},{"title":"Time ticket work with a timer","icon":"stopwatch","href":"/user-guides/ticketing/time-work-with-timers"},{"title":"How to Create a Ticket Template","icon":"file-lines","href":"/user-guides/ticketing/how-to-create-a-ticket-template"},{"title":"Create a ticket with AI assistance","icon":"wand-magic-sparkles","href":"/msp-guides/ticketing/open-a-ticket-with-ai"},{"title":"Change Management","icon":"shield-check","href":"/user-guides/ticketing/change-management"},{"title":"Ticket approval chains","icon":"list-check","href":"/user-guides/ticketing/ticket-approval-chains"},{"title":"Flow Webhook Recipient","icon":"webhook","href":"/user-guides/ticketing/flow-webhook-recipient"},{"title":"Understand your available request templates","icon":"file-lines","href":"/msp-guides/ticketing/understand-request-templates"},{"title":"Create and preview a ticket template","icon":"file-lines","href":"/user-guides/ticketing/create-and-preview-ticket-template"}]},{"group":"Compliance","expanded":false,"pages":[{"title":"Compliance","icon":"shield-halved","href":"/user-guides/compliance/index"},{"title":"Find compliance checks and understand results","icon":"shield-halved","href":"/user-guides/compliance/find-and-read-checks"},{"title":"Read compliance guidance, evidence, and history","icon":"shield-halved","href":"/user-guides/compliance/read-evidence-and-history"},{"title":"Export the compliance check list","icon":"shield-halved","href":"/user-guides/compliance/export-checks"},{"title":"Compliance AI","icon":"sparkles","href":"/user-guides/compliance/compliance-ai"},{"title":"Risk Management","icon":"shield-halved","href":"/user-guides/compliance/risk-management"},{"title":"Liongard Compliance Metrics","icon":"gauge-high","href":"/user-guides/compliance/liongard-metrics"},{"title":"Adding CIS Benchmarks","icon":"book","href":"/user-guides/compliance/adding-cis-benchmarks"},{"title":"Add NIS2 playbooks","icon":"book","href":"/user-guides/compliance/adding-nis2-playbooks"},{"title":"Review completed compliance assessments","icon":"clock-rotate-left","href":"/user-guides/compliance/view-check-history"}]},{"group":"Playbooks","expanded":false,"pages":[{"title":"Use playbooks to prepare compliance reviews","icon":"book","href":"/user-guides/playbooks/index"}]},{"group":"Projects","expanded":false,"pages":[{"title":"Projects","icon":"folder-open","href":"/user-guides/projects/index"},{"title":"Projects and Onboarding are coming together","icon":"diagram-project","href":"/user-guides/projects/upcoming-onboarding-changes"},{"title":"Find and open a project","icon":"folder-open","href":"/user-guides/projects/find-projects"},{"title":"Filter and sort projects","icon":"filter","href":"/user-guides/projects/filter-projects"},{"title":"Native Projects: Start to Finish","icon":"folder-open","href":"/user-guides/projects/native-projects"},{"title":"Project Templates","icon":"layer-group","href":"/user-guides/projects/templates"},{"title":"Project AI, MCP, and Client Reviews","icon":"sparkles","href":"/user-guides/projects/ai-and-client-reviews"},{"title":"Project Workspace","icon":"list-check","href":"/user-guides/projects/workspace"},{"title":"Read and filter project ticket Kanban","icon":"table-columns","href":"/user-guides/projects/read-ticket-kanban"},{"title":"Read a project schedule","icon":"calendar-days","href":"/user-guides/projects/read-project-schedule"},{"title":"Filter the project schedule","icon":"filter","href":"/user-guides/projects/filter-project-schedule"},{"title":"Dispatch project work","icon":"calendar-clock","href":"/user-guides/projects/dispatch-board"},{"title":"Read the project overview","icon":"file-lines","href":"/user-guides/projects/read-project-overview"},{"title":"Read project phases and tickets","icon":"layer-group","href":"/user-guides/projects/read-project-phases"},{"title":"Use phase and ticket action menus","icon":"ellipsis","href":"/user-guides/projects/use-phase-ticket-actions"},{"title":"Project Team and Onboarding Contacts","icon":"users","href":"/user-guides/projects/read-project-team"},{"title":"Edit the project goal and description","icon":"pen-to-square","href":"/user-guides/projects/edit-project-details"},{"title":"Manage project contacts and the client sponsor","icon":"address-book","href":"/user-guides/projects/manage-project-contacts"},{"title":"Read project updates","icon":"message","href":"/user-guides/projects/read-project-updates"},{"title":"Read project milestones","icon":"calendar","href":"/user-guides/projects/read-project-timeline"},{"title":"Read deliverables and download project files","icon":"file-arrow-down","href":"/user-guides/projects/read-project-deliverables"},{"title":"Create and manage project deliverables","icon":"list-check","href":"/user-guides/projects/manage-project-deliverables"},{"title":"Upload and share deliverable documents","icon":"file-arrow-up","href":"/user-guides/projects/manage-deliverable-documents"},{"title":"Write and share project updates","icon":"pen-to-square","href":"/user-guides/projects/write-project-updates"},{"title":"Create and manage project milestones","icon":"flag-checkered","href":"/user-guides/projects/manage-project-milestones"},{"title":"Project Calendar","icon":"calendar","href":"/user-guides/projects/calendar"},{"title":"Respond to project decisions and action items","icon":"list-check","href":"/user-guides/projects/respond-to-project-actions"},{"title":"Create and manage project decisions and action items","icon":"clipboard-list","href":"/user-guides/projects/manage-project-actions"},{"title":"Export a project to Excel","icon":"file-spreadsheet","href":"/user-guides/projects/export-project-to-excel"}]},{"group":"Dashboards","expanded":false,"pages":[{"title":"Dashboards","icon":"chart-mixed","href":"/user-guides/dashboards/index"},{"title":"Read and filter a dashboard","icon":"chart-mixed","href":"/user-guides/dashboards/read-a-dashboard"},{"title":"Understand dashboard exclusions","icon":"filter","href":"/user-guides/dashboards/understand-dashboard-exclusions"},{"title":"Open an external dashboard","icon":"chart-mixed","href":"/user-guides/dashboards/open-external-dashboard"},{"title":"Inspect tickets behind dashboard metrics","icon":"chart-mixed","href":"/user-guides/dashboards/inspect-dashboard-tickets"},{"title":"Export a dashboard to PDF","icon":"chart-mixed","href":"/user-guides/dashboards/export-dashboard"},{"title":"Create and edit a dashboard","icon":"chart-mixed","href":"/user-guides/dashboards/create-and-edit-dashboard"},{"title":"Manage dashboard settings and access","icon":"sliders","href":"/user-guides/dashboards/manage-dashboard-settings"},{"title":"Configure external dashboards","icon":"chart-mixed","href":"/user-guides/dashboards/configure-external-dashboards"},{"title":"Assign external dashboard URLs to companies","icon":"chart-mixed","href":"/user-guides/dashboards/assign-external-dashboard-company-urls"},{"title":"Configure dashboard exclusions","icon":"filter","href":"/user-guides/dashboards/configure-dashboard-exclusions"}]},{"group":"Documentation","expanded":false,"pages":[{"title":"Documentation","icon":"book","href":"/user-guides/documentation/index"},{"title":"Find and read shared documents","icon":"file-lines","href":"/user-guides/documentation/find-shared-documents"},{"title":"Use the Documentation Hub","icon":"grid-2","href":"/user-guides/documentation/resource-hub"},{"title":"Use shared passwords","icon":"key","href":"/user-guides/documentation/shared-passwords"},{"title":"View shared IT records and procedures","icon":"server","href":"/user-guides/documentation/view-it-records"},{"title":"Create and maintain portal documents","icon":"file-pen","href":"/user-guides/documentation/create-portal-documents"},{"title":"Add files and links to the Documentation Hub","icon":"grid-2","href":"/user-guides/documentation/add-files-and-links-to-hub"},{"title":"Suggest related guides on new tickets","icon":"book-open","href":"/user-guides/documentation/related-guides"}]},{"group":"Devices","expanded":false,"pages":[{"title":"Devices","icon":"computer","href":"/user-guides/devices/index"},{"title":"Find and export your devices","icon":"laptop","href":"/user-guides/devices/find-devices"},{"title":"Understand device details","icon":"computer","href":"/user-guides/devices/understand-device-details"},{"title":"Add and edit device records","icon":"laptop-medical","href":"/user-guides/devices/add-and-edit-devices"},{"title":"View networks and configurations","icon":"network-wired","href":"/user-guides/devices/view-networks-and-configurations"},{"title":"Track installed software","icon":"box-open","href":"/user-guides/devices/track-software"},{"title":"Find a Device by Its Approximate IP Location","icon":"location-dot","href":"/user-guides/devices/ip-location"},{"title":"Understand Device IP Location Results","icon":"map-location-dot","href":"/user-guides/devices/ip-location-accuracy-and-privacy"}]},{"group":"Backup","expanded":false,"pages":[{"title":"Backup","icon":"shield-halved","href":"/user-guides/backup/index"},{"title":"Read the Backup Dashboard","icon":"shield-halved","href":"/user-guides/backup/read-dashboard"},{"title":"Find device backups","icon":"shield-halved","href":"/user-guides/backup/find-device-backups"},{"title":"Read Microsoft 365 backups","icon":"shield-halved","href":"/user-guides/backup/read-microsoft-365-backups"},{"title":"Read Kaseya and Spanning backup health","icon":"shield-halved","href":"/user-guides/backup/read-saas-backup-health"},{"title":"Read backup activity and device details","icon":"shield-halved","href":"/user-guides/backup/read-backup-details"},{"title":"Review backup alerts","icon":"shield-halved","href":"/user-guides/backup/review-alerts"}]},{"group":"Security","expanded":false,"pages":[{"title":"Security","icon":"shield-halved","href":"/user-guides/security/index"},{"title":"Read the Security Dashboard","icon":"shield-halved","href":"/user-guides/security/read-dashboard"},{"title":"Read Cork security compliance events","icon":"shield-halved","href":"/user-guides/security/read-cork-events"},{"title":"Find and read vulnerabilities","icon":"shield-halved","href":"/user-guides/security/read-vulnerabilities"},{"title":"Add security findings to Planner","icon":"shield-halved","href":"/user-guides/security/add-to-planner"},{"title":"Add Cork findings to a meeting agenda","icon":"shield-halved","href":"/user-guides/security/add-to-meeting"},{"title":"Read Huntress security items","icon":"shield-halved","href":"/user-guides/security/read-huntress"},{"title":"Find security endpoints","icon":"shield-halved","href":"/user-guides/security/find-endpoints"},{"title":"Read security endpoint details","icon":"shield-halved","href":"/user-guides/security/read-endpoint-details"},{"title":"Read Acronis EDR incidents","icon":"shield-halved","href":"/user-guides/security/read-edr-incidents"},{"title":"Follow up on EDR incidents","icon":"shield-halved","href":"/user-guides/security/follow-up-edr-incidents"},{"title":"Read CyberHoot company summaries","icon":"shield-check","href":"/user-guides/security/read-cyberhoot-companies"},{"title":"Review HootPhish challenges","icon":"trophy","href":"/user-guides/security/read-hootphish-challenges"},{"title":"Read HootPhish participant results","icon":"users","href":"/user-guides/security/read-hootphish-participants"}]},{"group":"Reporting","expanded":false,"pages":[{"title":"Reporting","icon":"chart-pie","href":"/user-guides/reporting/index"},{"title":"Design reporting blocks with AI","icon":"wand-magic-sparkles","href":"/user-guides/reporting/design-ai-blocks"},{"title":"Present reports as slides","icon":"presentation-screen","href":"/user-guides/reporting/present-reports"},{"title":"Design custom reporting blocks","icon":"chart-column","href":"/user-guides/reporting/custom-blocks"},{"title":"Edit a report presentation","icon":"presentation-screen","href":"/user-guides/reporting/edit-presentation"},{"title":"Reports Imports","icon":"inbox","href":"/user-guides/reporting/email-imports"}]},{"group":"Licensing","expanded":false,"pages":[{"title":"Licensing","icon":"key","href":"/user-guides/licensing/index"},{"title":"Set Up Pax8 for Subscriptions and Storefront","icon":"plug","href":"/user-guides/licensing/setup"}]},{"group":"Storefront","expanded":false,"pages":[{"title":"Storefront","icon":"store","href":"/user-guides/storefront/index"},{"title":"Review your subscriptions","icon":"layer-group","href":"/user-guides/storefront/view-subscriptions"},{"title":"Review Azure usage","icon":"cloud","href":"/user-guides/storefront/view-azure-usage"}]}]},{"group":"Overview \u0026 Planning","pages":[{"group":"Company Overview","expanded":false,"pages":[{"title":"Company overview","icon":"buildings","href":"/user-guides/company-overview/index"},{"title":"Read the Company overview","icon":"chart-simple","href":"/user-guides/company-overview/read-company-overview"}]},{"group":"Calendar","expanded":false,"pages":[{"title":"Calendar","icon":"calendar","href":"/user-guides/calendar/index"},{"title":"Find events in Calendar","icon":"calendar","href":"/user-guides/calendar/find-calendar-events"},{"title":"Filter Calendar events and layers","icon":"calendar","href":"/user-guides/calendar/filter-calendar-events"},{"title":"Find your upcoming and past meetings","icon":"calendar-check","href":"/user-guides/calendar/find-my-meetings"},{"title":"Find meetings in List View","icon":"list","href":"/user-guides/calendar/find-meetings-list"},{"title":"Read a meeting workspace","icon":"calendar-check","href":"/user-guides/calendar/read-meeting-workspace"},{"title":"Read meeting agenda items and linked records","icon":"list-check","href":"/user-guides/calendar/read-meeting-agenda"},{"title":"Recurring Meeting Booking","icon":"calendar-check","href":"/user-guides/calendar/recurring-meeting-booking"},{"title":"Meeting Pages","icon":"calendar-check","href":"/user-guides/calendar/meetings"},{"title":"Present and navigate a meeting agenda","icon":"presentation-screen","href":"/user-guides/calendar/presenting"},{"title":"Meeting summaries and wrap-up","icon":"envelope","href":"/user-guides/calendar/meeting-summaries"},{"title":"Configure Calendar defaults and work hours","icon":"calendar-days","href":"/user-guides/calendar/configure-calendar-defaults"},{"title":"Create and manage Calendar freeze windows","icon":"snowflake","href":"/user-guides/calendar/manage-freeze-windows"},{"title":"Understand Calendar freeze windows","icon":"snowflake","href":"/user-guides/calendar/understand-change-freezes"},{"title":"Configure the post-meeting workflow","icon":"sliders","href":"/user-guides/calendar/configure-post-meeting"},{"title":"Manage internal meeting survey questions","icon":"clipboard-question","href":"/user-guides/calendar/manage-meeting-survey-questions"},{"title":"Draft and send a meeting summary","icon":"envelope","href":"/user-guides/calendar/send-meeting-summary"},{"title":"Complete the internal meeting survey","icon":"clipboard-question","href":"/user-guides/calendar/complete-meeting-survey"},{"title":"Add and manage a meeting transcript","icon":"file-lines","href":"/user-guides/calendar/add-meeting-transcript"},{"title":"Account Notes and QBR Log","icon":"clipboard-list","href":"/user-guides/calendar/account-notes"},{"title":"Find and read account notes","icon":"clipboard-list","href":"/user-guides/calendar/read-account-notes"},{"title":"Create and update account notes","icon":"pen-to-square","href":"/user-guides/calendar/write-account-notes"}]},{"group":"Surveys","expanded":false,"pages":[{"title":"Surveys","icon":"chart-bar","href":"/user-guides/surveys/index"},{"title":"Complete a questionnaire","icon":"clipboard-question","href":"/user-guides/surveys/complete-a-survey"},{"title":"Respond to an NPS survey","icon":"star","href":"/user-guides/surveys/respond-to-nps"},{"title":"Rate a support experience","icon":"comment-smile","href":"/user-guides/surveys/rate-your-support"},{"title":"Find surveys and read questionnaire results","icon":"clipboard-list","href":"/user-guides/surveys/view-survey-results"},{"title":"Share a survey link","icon":"link","href":"/user-guides/surveys/share-a-survey-link"},{"title":"Read NPS analytics","icon":"chart-column","href":"/user-guides/surveys/read-nps-analytics"},{"title":"Read and export support satisfaction feedback","icon":"face-smile","href":"/user-guides/surveys/read-csat-feedback"},{"title":"Review low CSAT ratings","icon":"list-check","href":"/user-guides/surveys/review-low-csat-ratings"}]},{"group":"Goals","expanded":false,"pages":[{"title":"Goals and objectives","icon":"bullseye","href":"/user-guides/goals/index"},{"title":"Find and read goals","icon":"bullseye","href":"/user-guides/goals/read-goals"},{"title":"Create or update a goal","icon":"bullseye","href":"/user-guides/goals/create-and-update-goals"},{"title":"Update several goals or delete a goal","icon":"bullseye","href":"/user-guides/goals/bulk-update-and-delete"},{"title":"Connect goals to Planner and meetings","icon":"bullseye","href":"/user-guides/goals/link-to-planner-and-meetings"}]},{"group":"Notifications","expanded":false,"pages":[{"title":"Notifications","icon":"bell","href":"/user-guides/notifications/index"},{"title":"Read and manage notifications","icon":"bell","href":"/user-guides/notifications/read-notifications"},{"title":"Review automation approvals","icon":"check-to-slot","href":"/user-guides/notifications/review-approvals"}]},{"group":"Broadcasts","expanded":false,"pages":[{"title":"Broadcasts","icon":"tower-broadcast","href":"/user-guides/broadcasts/index"}]},{"group":"Planner","expanded":false,"pages":[{"title":"Planner","icon":"calendar-days","href":"/user-guides/planner/index"},{"title":"Read the Planner timeline","icon":"calendar-days","href":"/user-guides/planner/read-timeline"},{"title":"Filter the Planner timeline","icon":"filter","href":"/user-guides/planner/filter-timeline"},{"title":"Find Planner items in List View","icon":"list","href":"/user-guides/planner/find-planner-items"},{"title":"Find archived Planner work","icon":"box-archive","href":"/user-guides/planner/find-archived-items"},{"title":"Archive, restore or delete Planner items","icon":"box-archive","href":"/user-guides/planner/archive-restore-delete"},{"title":"Update several Planner items","icon":"box-archive","href":"/user-guides/planner/update-multiple-items"},{"title":"Read a Planner item","icon":"clipboard-list","href":"/user-guides/planner/read-item-details"},{"title":"Understand Planner types and budget categories","icon":"layer-group","href":"/user-guides/planner/understand-types"},{"title":"Manage Planner types and defaults","icon":"layer-group","href":"/user-guides/planner/manage-types"},{"title":"Delete or reassign Planner types","icon":"trash-can","href":"/user-guides/planner/retire-types"},{"title":"Open records linked to Planner work","icon":"link","href":"/user-guides/planner/read-linked-records"},{"title":"Ask Planner AI about planned work","icon":"sparkles","href":"/user-guides/planner/ask-planner-ai"},{"title":"Draft or change Planner items with AI","icon":"sparkles","href":"/user-guides/planner/draft-item-with-ai"},{"title":"Import PSA opportunities into Planner","icon":"file-import","href":"/user-guides/planner/import-opportunities"},{"title":"Understand PSA-linked Planner work","icon":"file-import","href":"/user-guides/planner/understand-psa-linked-items"},{"title":"Understand Standards work in Planner","icon":"list-check","href":"/user-guides/planner/understand-standards-items"},{"title":"Read and manage Planner files","icon":"paperclip","href":"/user-guides/planner/manage-files"},{"title":"Plan costs and hours","icon":"calculator","href":"/user-guides/planner/plan-costs-and-hours"},{"title":"Create and edit Planner items","icon":"pen-to-square","href":"/user-guides/planner/create-and-edit-items"},{"title":"Link supporting records to Planner items","icon":"link","href":"/user-guides/planner/link-supporting-records"},{"title":"Create and manage Planner templates","icon":"clone","href":"/user-guides/planner/manage-templates"},{"title":"Apply a template to a Planner item","icon":"list-check","href":"/user-guides/planner/apply-template-to-item"},{"title":"Create Planner items for multiple companies","icon":"buildings","href":"/user-guides/planner/apply-templates-to-companies"},{"title":"Read and export Planner Analytics","icon":"chart-simple","href":"/user-guides/planner/read-analytics"},{"title":"Understand Planner Analytics charts","icon":"chart-pie","href":"/user-guides/planner/understand-analytics-charts"}]},{"group":"Budgets","expanded":false,"pages":[{"title":"Budgets","icon":"calculator","href":"/user-guides/budgets/index"},{"title":"Create and edit a company budget","icon":"calculator","href":"/user-guides/budgets/create-and-edit-budgets"},{"title":"Duplicate a budget","icon":"copy","href":"/user-guides/budgets/duplicate-budget"},{"title":"Delete unwanted draft budgets","icon":"trash-can","href":"/user-guides/budgets/delete-budgets"},{"title":"Add and edit budget line items","icon":"list","href":"/user-guides/budgets/edit-line-items"},{"title":"Import budget line items from Excel","icon":"file-excel","href":"/user-guides/budgets/import-excel"},{"title":"Copy recurring costs from an earlier budget","icon":"clock-rotate-left","href":"/user-guides/budgets/import-previous-year"},{"title":"Add Planner, goal and product costs to a budget","icon":"list-check","href":"/user-guides/budgets/import-planning-and-products"},{"title":"Add Microsoft 365 licensing costs to a budget","icon":"key","href":"/user-guides/budgets/import-microsoft-365-licensing"},{"title":"Read and adjust a company budget forecast","icon":"chart-line","href":"/user-guides/budgets/read-budget-forecast"},{"title":"Sync a forecast from budgets or Planner","icon":"arrows-rotate","href":"/user-guides/budgets/sync-budget-forecast"},{"title":"Find and open a budget","icon":"magnifying-glass","href":"/user-guides/budgets/find-budgets"},{"title":"Read a budget overview","icon":"calculator","href":"/user-guides/budgets/read-budget"},{"title":"Arrange budget sections","icon":"arrow-down-wide-short","href":"/user-guides/budgets/arrange-budget-sections"},{"title":"Download or print a budget","icon":"file-export","href":"/user-guides/budgets/export-and-print-budgets"},{"title":"Read a budget monthly breakdown","icon":"calendar-days","href":"/user-guides/budgets/read-monthly-breakdown"},{"title":"Adjust a budget amount for one month","icon":"calendar-pen","href":"/user-guides/budgets/edit-monthly-overrides"},{"title":"Approve and Lock a Budget","icon":"lock","href":"/user-guides/budgets/approving-and-locking-budgets"},{"title":"Track Budget Actuals","icon":"chart-line","href":"/user-guides/budgets/tracking-budget-actuals"},{"title":"Resolve Actuals Exceptions","icon":"list-check","href":"/user-guides/budgets/resolving-actuals-exceptions"},{"title":"Find and understand budget products","icon":"box","href":"/user-guides/budgets/read-product-catalog"},{"title":"Create and edit budget products","icon":"box","href":"/user-guides/budgets/manage-products"},{"title":"Bulk edit and delete budget products","icon":"box","href":"/user-guides/budgets/bulk-edit-products"},{"title":"Create budget products from Planner","icon":"box","href":"/user-guides/budgets/import-products-from-planner"},{"title":"Import and link budget products from integrations","icon":"box","href":"/user-guides/budgets/import-products-from-integrations"}]},{"group":"Invoices","expanded":false,"pages":[{"title":"Invoices","icon":"file-invoice-dollar","href":"/user-guides/invoices/index"},{"title":"Find and review invoices","icon":"file-invoice","href":"/user-guides/invoices/view-invoices"},{"title":"Where invoice data comes from","icon":"file-invoice-dollar","href":"/msp-guides/invoices/invoice-data-sources"},{"title":"Download and export invoices","icon":"download","href":"/user-guides/invoices/download-invoices"},{"title":"Use an invoice payment link","icon":"credit-card","href":"/user-guides/invoices/pay-an-invoice"},{"title":"MSP: review Pax8 invoice charges","icon":"receipt","href":"/user-guides/invoices/view-pax8-invoices"}]},{"group":"Quotes","expanded":false,"pages":[{"title":"Quotes","icon":"file-contract","href":"/user-guides/quotes/index"},{"title":"Connect and manage Quoter","icon":"plug","href":"/user-guides/quotes/setup"},{"title":"Find and open a quote","icon":"file-contract","href":"/user-guides/quotes/view-quotes"},{"title":"Read a quote’s details","icon":"file-invoice-dollar","href":"/user-guides/quotes/read-quote-details"},{"title":"Download quote documents and export the list","icon":"file-arrow-down","href":"/user-guides/quotes/download-quotes"},{"title":"Control company quote access","icon":"user-shield","href":"/user-guides/quotes/manage-company-access"},{"title":"Troubleshoot missing Quoter quotes and company links","icon":"magnifying-glass","href":"/user-guides/quotes/troubleshoot-quoter-quotes"},{"title":"Troubleshoot QuoteWerks quotes and QuoteValet links","icon":"file-invoice-dollar","href":"/user-guides/quotes/troubleshoot-quotewerks-quotes"},{"title":"Troubleshoot Salesbuildr quotes and PDFs","icon":"file-invoice-dollar","href":"/user-guides/quotes/troubleshoot-salesbuildr-quotes"}]},{"group":"Agreements and contracts","expanded":false,"pages":[{"title":"Agreements and contracts","icon":"file-signature","href":"/user-guides/agreements/index"},{"title":"Find and review an agreement","icon":"file-contract","href":"/user-guides/agreements/view-agreements"},{"title":"Understand agreement balances","icon":"clock","href":"/user-guides/agreements/read-balances"},{"title":"Open an agreement PDF","icon":"file-pdf","href":"/user-guides/agreements/download-documents"},{"title":"Upload and manage agreement PDFs","icon":"file-arrow-up","href":"/user-guides/agreements/manage-documents"}]}]},{"group":"MSP Tools","pages":[{"title":"MSP Tools","icon":"toolbox","href":"/user-guides/msp-tools/index"},{"title":"Plan vCIO workload and pricing","href":"/user-guides/msp-tools/calculators"},{"group":"Client Success","expanded":false,"pages":[{"title":"Client Health","icon":"heart-pulse","href":"/user-guides/msp-tools/client-health"},{"title":"Find companies in Client Health","icon":"heart-pulse","href":"/user-guides/msp-tools/find-client-health"},{"title":"Read a company's health details","icon":"chart-line","href":"/user-guides/msp-tools/read-client-health-details"},{"title":"Understand Client Health scoring and evidence","icon":"scale-balanced","href":"/user-guides/msp-tools/understand-health-scoring"},{"title":"Manage manual Client Health risk flags","icon":"flag","href":"/user-guides/msp-tools/manage-client-risk-flags"},{"title":"Run a Traffic Light Review","icon":"traffic-light","href":"/user-guides/msp-tools/traffic-light-review"},{"title":"Refresh Client Health scores","icon":"arrows-rotate","href":"/user-guides/msp-tools/refresh-client-health"},{"title":"Financial Reporting","icon":"dollar-sign","href":"/user-guides/msp-tools/financial-reporting"},{"title":"Where Financial Reporting data comes from","icon":"magnifying-glass-dollar","href":"/msp-guides/msp-tools/financial-reporting-data-sources"},{"title":"Account Readiness","icon":"clipboard-check","href":"/user-guides/company-overview/audit"}]},{"group":"Standards","expanded":false,"pages":[{"title":"Standards","icon":"wrench","href":"/user-guides/msp-tools/standards"},{"title":"Read the Standards matrix","icon":"table-cells","href":"/user-guides/msp-tools/read-standards-matrix"},{"title":"Update a company's Standards deployments","icon":"circle-check","href":"/user-guides/msp-tools/update-standard-deployments"},{"title":"Update Standards in bulk","icon":"table-cells","href":"/user-guides/msp-tools/bulk-update-standards"},{"title":"Exclude or include companies in Standards","icon":"eye-slash","href":"/user-guides/msp-tools/manage-standards-exclusions"}]},{"title":"Ticket Trends","icon":"chart-line","href":"/user-guides/msp-tools/ticket-trends"}]},{"group":"Administration","pages":[{"group":"Settings","expanded":false,"pages":[{"title":"Settings overview","icon":"gear","href":"/user-guides/settings/index"},{"title":"Users \u0026 Roles","icon":"users","href":"/user-guides/settings/users-roles"},{"title":"Global Team Roles","icon":"users","href":"/user-guides/settings/global-team-roles"},{"title":"Change a Company user’s permissions","icon":"user-shield","href":"/user-guides/settings/change-company-user-permissions"},{"title":"Give a parent-company user access to child companies","sidebarTitle":"Parent-company access","icon":"sitemap","href":"/user-guides/settings/parent-company-access"},{"title":"Custom Fields","icon":"table-list","href":"/user-guides/settings/custom-fields"},{"title":"Companies Settings","icon":"building","href":"/user-guides/settings/companies"},{"title":"Project Settings","icon":"gear","href":"/user-guides/settings/projects"},{"title":"Training settings","icon":"graduation-cap","href":"/user-guides/settings/training"},{"title":"Ticket settings","icon":"ticket","href":"/user-guides/settings/tickets"},{"title":"Compliance Settings","icon":"shield-check","href":"/user-guides/settings/compliance"},{"title":"Schedule compliance assessments","icon":"calendar","href":"/user-guides/settings/compliance-schedules"},{"title":"Configure compliance scoring","icon":"sliders","href":"/user-guides/settings/compliance-scoring"},{"title":"Configure risk tracking and categories","icon":"shield-alert","href":"/user-guides/settings/compliance-risk"},{"title":"Playbook settings","icon":"book","href":"/user-guides/settings/playbooks"},{"title":"External Resources Settings","icon":"link","href":"/user-guides/settings/external"},{"title":"Onboarding Settings","icon":"clipboard-check","href":"/user-guides/settings/onboarding"},{"title":"Note templates","icon":"file-lines","href":"/user-guides/settings/templates"},{"title":"Email settings","icon":"envelope","href":"/user-guides/settings/email"},{"title":"Client Health scoring settings","icon":"heart-pulse","href":"/user-guides/settings/scoring"},{"title":"Traffic Light settings","icon":"traffic-light","href":"/user-guides/settings/traffic-light-settings"},{"title":"Manage the Standards catalog","icon":"wrench","href":"/user-guides/settings/standards"},{"title":"Configure Standards tiers and deployment options","icon":"layer-group","href":"/user-guides/settings/standards-tiers"},{"title":"Choose which Standards apply","icon":"filter","href":"/user-guides/settings/standards-applicability"},{"title":"Use PSA billing to answer Standards","icon":"tags","href":"/user-guides/settings/standards-sku-automation"},{"title":"Sync Standards to companies","icon":"arrows-rotate","href":"/user-guides/settings/sync-standards"},{"title":"Retire Standards definitions","icon":"trash-can","href":"/user-guides/settings/retire-standards"},{"title":"Financial Reporting Settings","icon":"dollar-sign","href":"/user-guides/settings/financial-reporting"},{"title":"Integrations Settings","icon":"plug","href":"/user-guides/settings/integrations"},{"title":"Integration Company Mapping","icon":"diagram-project","href":"/user-guides/settings/integration-company-mapping"},{"title":"Liongard Documentation Visibility","icon":"radar","href":"/user-guides/settings/liongard-visibility"},{"group":"Automation","expanded":false,"pages":[{"title":"Automation Rules","icon":"robot","href":"/user-guides/settings/automation/index"},{"title":"Rule Wizard Walkthrough","icon":"list-check","href":"/user-guides/settings/automation/wizard"},{"title":"Bundling Automation Matches","icon":"layer-group","href":"/user-guides/settings/automation/bundling"},{"title":"Example Automation Rules","icon":"book-open","href":"/user-guides/settings/automation/examples"}]},{"title":"Import and export data","icon":"file-import","href":"/user-guides/settings/import-export"},{"title":"Tenant Settings","icon":"building-columns","href":"/user-guides/settings/tenant"},{"title":"Billing settings","icon":"credit-card","href":"/user-guides/settings/billing"}]}]},{"group":"Connect your tools","pages":[{"group":"Integration setup","expanded":false,"pages":[{"group":"Overview, imports and sync","expanded":false,"pages":[{"title":"Integration setup guides","icon":"plug","href":"/user-guides/integrations/index"},{"title":"Integration troubleshooting","icon":"plug","href":"/user-guides/integrations/faq"},{"title":"Sync Schedules","href":"/user-guides/integrations/sync-schedules"},{"title":"Import Users","icon":"plug","href":"/user-guides/integrations/import-users"},{"title":"Import Companies","icon":"plug","href":"/user-guides/integrations/import-companies"},{"title":"Import Devices","icon":"server","href":"/user-guides/integrations/import-devices"},{"title":"Clear and Resync Integrations","icon":"plug","href":"/user-guides/integrations/clear-and-resync-integrations"},{"title":"Warranty Writeback to Hudu and IT Glue Flexible Assets","icon":"shield-halved","href":"/user-guides/integrations/documentation-warranty-writeback"},{"title":"Warranty Writeback to Autotask","icon":"arrows-rotate","href":"/user-guides/integrations/autotask-warranty-writeback"},{"title":"Warranty Writeback to IT Glue Configurations","icon":"arrows-rotate","href":"/user-guides/integrations/itglue-configuration-warranty-writeback"}]},{"group":"PSA and ticketing","expanded":false,"pages":[{"title":"Configure ConnectWise Manage Integration","icon":"plug","href":"/user-guides/integrations/enable-connectwise-integration"},{"title":"Configure ConnectWise Asio Integration","icon":"plug","href":"/user-guides/integrations/enable-connectwise-asio-integration"},{"title":"Resync ConnectWise PSA Settings","icon":"arrows-rotate","href":"/user-guides/integrations/connectwise-resync-psa-settings"},{"title":"Configure Autotask PSA Integration","icon":"plug","href":"/user-guides/integrations/enable-autotask-integration"},{"title":"Configure Halo PSA Integration","description":"Connect Halo PSA, import native CSAT satisfaction ratings for dashboards and reports, and choose company and user scope","icon":"plug","href":"/user-guides/integrations/enable-halo-integration"},{"title":"Create Custom Halo PSA Role and API User","icon":"user-shield","href":"/user-guides/integrations/halo-psa-custom-role-and-user"},{"title":"Configure Syncro Integration","description":"Connect your Syncro instance to MSPortal.ai and finish setup on its connection page","icon":"plug","href":"/user-guides/integrations/enable-syncro-integration"},{"title":"Configure NinjaOne Integration","icon":"plug","href":"/user-guides/integrations/enable-ninjaone-integration"},{"title":"Configure NinjaOne Ticketing Integration","icon":"ticket","href":"/user-guides/integrations/enable-ninjaone-ticketing-integration"}]},{"group":"RMM and networks","expanded":false,"pages":[{"title":"Configure Addigy Integration","icon":"apple","href":"/user-guides/integrations/enable-addigy-integration"},{"title":"Configure Datto RMM Integration","icon":"plug","href":"/user-guides/integrations/enable-datto-rmm-integration"},{"title":"Configure N-able N-central Integration","icon":"server","href":"/user-guides/integrations/enable-ncentral-integration"},{"title":"Configure Action1 Integration","icon":"plug","href":"/user-guides/integrations/enable-action1-integration"},{"title":"Configure Cisco Meraki Integration","icon":"network-wired","href":"/user-guides/integrations/enable-meraki-integration"},{"title":"Configure UniFi Console Integration","icon":"wifi","href":"/user-guides/integrations/enable-unifi-integration"},{"title":"Connect Domotz and Review Network Health","icon":"network-wired","href":"/user-guides/integrations/enable-domotz-integration"},{"title":"Configure Fortinet Integration","icon":"plug","href":"/user-guides/integrations/enable-fortinet-integration"},{"title":"Neo Agent Compatibility","icon":"robot","href":"/user-guides/integrations/neo-agent"},{"title":"Connect Auvik and review network data","icon":"plug","href":"/user-guides/integrations/enable-auvik-integration"},{"title":"Provide LogicMonitor API access","icon":"plug","href":"/user-guides/integrations/enable-logicmonitor-integration"},{"title":"Connect WatchGuard Cloud","icon":"plug","href":"/user-guides/integrations/enable-watchguard-integration"}]},{"group":"Security and training","expanded":false,"pages":[{"title":"Configure Cork Integration","icon":"shield-halved","href":"/user-guides/integrations/enable-cork-integration"},{"title":"Configure Huntress Integration","icon":"shield-dog","href":"/user-guides/integrations/enable-huntress-integration"},{"title":"Configure Wirespeed Integration","icon":"shield-halved","href":"/user-guides/integrations/enable-wirespeed-integration"},{"title":"Configure Petra Security Integration","icon":"plug","href":"/user-guides/integrations/enable-petra-integration"},{"title":"Configure Bitdefender GravityZone Integration","icon":"plug","href":"/user-guides/integrations/enable-bitdefender-integration"},{"title":"Configure RoboShadow Integration","icon":"plug","href":"/user-guides/integrations/enable-roboshadow-integration"},{"title":"Configure Cyrisma Integration","icon":"plug","href":"/user-guides/integrations/enable-cyrisma-integration"},{"title":"Configure ScoutDNS Integration","icon":"plug","href":"/user-guides/integrations/enable-scoutdns-integration"},{"title":"Configure Breach Secure Now Integration","icon":"shield-halved","href":"/user-guides/integrations/enable-breach-secure-now-integration"},{"title":"Configure Phin Security Integration","icon":"shield-halved","href":"/user-guides/integrations/enable-phin-integration"},{"title":"Connect Phished.io","icon":"shield-halved","href":"/user-guides/integrations/enable-phished-integration"},{"title":"Configure CyberHoot Integration","icon":"graduation-cap","href":"/user-guides/integrations/enable-cyberhoot-integration"},{"title":"Connect Avanan and map customer tenants","icon":"plug","href":"/user-guides/integrations/enable-avanan-integration"},{"title":"Provide Blackpoint Cyber API access","icon":"plug","href":"/user-guides/integrations/enable-blackpoint-cyber-integration"},{"title":"Provide Cisco Umbrella API access","icon":"plug","href":"/user-guides/integrations/enable-cisco-umbrella-integration"},{"title":"Connect DNSFilter and map organizations","icon":"plug","href":"/user-guides/integrations/enable-dnsfilter-integration"},{"title":"Provide Mimecast API access","icon":"plug","href":"/user-guides/integrations/enable-mimecast-integration"},{"title":"Connect ThreatMate and map customers","icon":"plug","href":"/user-guides/integrations/enable-threatmate-integration"},{"title":"Provide VulScan API access","icon":"plug","href":"/user-guides/integrations/enable-vulscan-integration"}]},{"group":"Backup","expanded":false,"pages":[{"title":"Configure Cove Backup Integration","icon":"database","href":"/user-guides/integrations/enable-cove-backup-integration"},{"title":"Configure Acronis Cyber Protect Integration","icon":"cloud-arrow-down","href":"/user-guides/integrations/enable-acronis-integration"},{"title":"Configure Spanning Backup Integration","icon":"cloud-arrow-up","href":"/user-guides/integrations/enable-spanning-integration"},{"title":"Configure Kaseya SaaS Protection Integration","icon":"database","href":"/user-guides/integrations/enable-kaseya-saas-protection-integration"},{"title":"Connect Datto Backup","icon":"plug","href":"/user-guides/integrations/enable-datto-backup-integration"},{"title":"Connect NinjaOne SaaS Backup","icon":"plug","href":"/user-guides/integrations/enable-ninjaone-saas-backup-integration"},{"title":"Connect Slide Backup","icon":"plug","href":"/user-guides/integrations/enable-slide-integration"}]},{"group":"Documentation and client portals","expanded":false,"pages":[{"title":"Configure Hudu Integration","icon":"book","href":"/user-guides/integrations/enable-hudu-integration"},{"title":"Configure IT Glue Integration","icon":"book","href":"/user-guides/integrations/enable-itglue-integration"},{"title":"Sync IT Glue Document Folders","icon":"shield-halved","href":"/user-guides/integrations/itglue-sync-folders"},{"title":"Configure Liongard Integration","icon":"magnifying-glass-chart","href":"/user-guides/integrations/enable-liongard-integration"},{"title":"Configure CloudRadial Integration","icon":"cloud","href":"/user-guides/integrations/enable-cloudradial-integration"}]},{"group":"Cloud and domains","expanded":false,"pages":[{"title":"Connect rollout companies to Microsoft 365","sidebarTitle":"Connect rollout companies to Microsoft 365","icon":"cloud","href":"/user-guides/getting-started/onboarding/company-m365"},{"title":"Connect Google Workspace","icon":"google","href":"/user-guides/integrations/enable-google-workspace-integration"},{"title":"Configure CIPP Integration","icon":"cloud","href":"/user-guides/integrations/enable-cipp-integration"},{"title":"Configure Pax8 Integration","icon":"boxes-stacked","href":"/user-guides/integrations/enable-pax8-integration"},{"title":"Set Up Pax8 for Subscriptions and Storefront","icon":"plug","href":"/user-guides/licensing/setup"},{"title":"Configure Sherweb Integration","icon":"cloud","href":"/user-guides/integrations/enable-sherweb-integration"},{"title":"Configure Adobe Enterprise Integration","icon":"file-pdf","href":"/user-guides/integrations/enable-adobe-enterprise-integration"},{"title":"Provide Intermedia Partner API access","icon":"plug","href":"/user-guides/integrations/enable-intermedia-integration"},{"title":"Configure DNSimple Integration","icon":"globe","href":"/user-guides/integrations/enable-dnsimple-integration"},{"title":"Configure Cloudflare Integration","icon":"plug","href":"/user-guides/integrations/enable-cloudflare-integration"},{"title":"Provide Ingram Micro API access","icon":"plug","href":"/user-guides/integrations/enable-ingram-micro-integration"},{"title":"Provide TD SYNNEX API access","icon":"plug","href":"/user-guides/integrations/enable-td-synnex-integration"}]},{"group":"Sales, payments and scheduling","expanded":false,"pages":[{"title":"Connect and manage Quoter","icon":"plug","href":"/user-guides/quotes/setup"},{"title":"Troubleshoot missing Quoter quotes and company links","icon":"magnifying-glass","href":"/user-guides/quotes/troubleshoot-quoter-quotes"},{"title":"Configure QuoteWerks Integration","icon":"file-invoice-dollar","href":"/user-guides/integrations/enable-quotewerks-integration"},{"title":"Map QuoteWerks customers to companies","icon":"file-invoice-dollar","href":"/user-guides/integrations/map-quotewerks-customers"},{"title":"Troubleshoot QuoteWerks quotes and QuoteValet links","icon":"file-invoice-dollar","href":"/user-guides/quotes/troubleshoot-quotewerks-quotes"},{"title":"Configure Salesbuildr Integration","icon":"file-invoice-dollar","href":"/user-guides/integrations/enable-salesbuildr-integration"},{"title":"Map Salesbuildr companies for quote access","icon":"file-invoice-dollar","href":"/user-guides/integrations/map-salesbuildr-companies"},{"title":"Troubleshoot Salesbuildr quotes and PDFs","icon":"file-invoice-dollar","href":"/user-guides/quotes/troubleshoot-salesbuildr-quotes"},{"title":"Configure Benji Pays Integration","icon":"credit-card","href":"/user-guides/integrations/enable-benjipays-integration"},{"title":"Configure TimeZest Integration","icon":"calendar-clock","href":"/user-guides/integrations/enable-timezest-integration"},{"title":"Configure Simplesat Integration","icon":"face-smile","href":"/user-guides/integrations/enable-simplesat-integration"},{"title":"Configure Microsoft Teams Integration","icon":"microsoft","href":"/user-guides/integrations/enable-teams-integration"},{"title":"Provide CrewHu API access","icon":"plug","href":"/user-guides/integrations/enable-crewhu-integration"},{"title":"Connect Fellow meeting notes","icon":"plug","href":"/user-guides/integrations/enable-fellow-integration"}]}]}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/budgets/list-budgets"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes"}]}]},"title":"Create Custom Halo PSA Role and API User - MSPortal.ai Documentation","buildId":"dpl_9DauxEjb9gzCtcuhPQFbquJvx7FJ","deploymentId":"dpl_9DauxEjb9gzCtcuhPQFbquJvx7FJ","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-D4WcYaf4.js","PlusIcon-CwhPVjTe.js","lightbox-handle-r17bVUz3.js"]}