Skip to main content
Tools Reference

HaloPSA Tools

Written By Christopher Scaminaci

Last updated 7 days ago

HaloPSA Tools

halo_ · 1479 tools · Free 781 · Pro 698OAuth2 client-credentials (cached tokens); page-size cap 200; raw JSON passthrough.

All connector tools · HaloPSA setup guide

HaloPSA tool groups

Tickets & Actions

ToolPlanAccessSummary
halo_add_actionFreeWriteAdd an action (note / email / reply / internal note / time entry / status change) to an existing ticket.
halo_add_action_reactionProWriteAdd an emoji reaction to a ticket action.
halo_add_internal_noteFreeWriteAdd a private/internal note to a ticket — hidden from the end user/customer.
halo_bulk_change_ticket_statusProDestructiveChange the status of up to 50 tickets in one call, with per-ticket read-back verification.
halo_change_ticket_status_with_noteFreeWriteChange a ticket's status and record an audit-trail note.
halo_create_draftProWriteCreate a draft ticket or action.
halo_create_ticketFreeWriteCreate a new helpdesk ticket.
halo_delete_actionProDestructiveDelete a ticket action (note, email, or time entry).
halo_get_actionFreeRead-onlyRetrieve full details for a single action (note, email, or time entry).
halo_get_ticketFreeRead-onlyRetrieve a single ticket by numeric ID.
halo_list_actionsFreeRead-onlyList ticket actions (notes, emails, time entries) with optional filters.
halo_list_ticket_actionsFreeRead-onlyFetch all actions for a single ticket in one call.
halo_list_ticket_typesFreeRead-onlyList all available ticket types with ticket counts.
halo_list_ticketsFreeRead-onlyList tickets with optional filters.
halo_log_timeFreeWriteLog work time on a ticket.
halo_review_actionProWriteManager approval/rejection of a ticket action (typically a time entry).
halo_search_ticketsFreeRead-onlyFull-text search across ticket summaries, details, and action notes.
halo_send_email_replyFreeWriteSend an outbound email reply on a ticket.
halo_update_actionFreeWriteUpdate an existing action.
halo_update_ticketFreeWriteUpdate an existing ticket's fields such as status, assignment, priority, or custom fields, with best-effort read-back verification: after the write the ticket is re-read, and a value Halo accepted but…
halo_vote_ticketProWriteSubmit a vote on a ticket.

[HaloPSA] Add an action (note / email / reply / internal note / time entry / status change) to an existing ticket. REQUIRED: ticketId, hiddenFromUser (true = agent-only/private; false = visible to end-user/customer), an outcome, AND a body given as EITHER note OR noteHtml — one of the two, never both. Use note for a plain-text body and noteHtml for a body that contains HTML or markup. Do not send both: Halo does not merge them, and HTML in both leaves unrendered HTML in the action body. The outcome (the action TYPE) is mandatory — supply outcomeId (preferred — enumerate with halo_list_outcomes) OR the outcome name string (e.g. "Private Note", "Public Note", "Email", "Time Entry"). Halo rejects an action with no outcome ("An Outcome must be selected"). For common cases prefer the purpose-built tools, which set the right outcome for you: halo_add_internal_note (private note), halo_send_email_reply (email), halo_log_time (time entry), halo_change_ticket_status_with_note (status change). Set sendEmail=true to dispatch an outbound email; both emailTo AND emailSubject are then required (Halo will not synthesise a safe subject). Set timeTaken to log work hours. Set newStatus/newAgent/newTeam to mutate the ticket as part of this action. When newStatus/newAgent/newPriority is set, the ticket is re-read before and after the action (3 API calls instead of 1) and a mutation the ticket type's rules override surfaces as an error naming the field — the action itself (the note, any time entry, and any outbound email) is still created in that case, so do NOT re-send the call. If the confirming read-back CALL itself fails, the result is reported as an error of type write_unverified rather than a success: the write may well have landed, so re-read the ticket instead of retrying — the action, its note and any email already exist, and a re-send would duplicate them. Use extraFieldsJson for any Halo Action field not exposed as a named parameter (an outcome supplied there, e.g. {"outcome_id":5}, also satisfies the requirement).

ParamTypeRequiredDefaultDescription
actIsBillablebooleannonullIs this action billable? Maps to `actisbillable` (Halo's field is `actisbillable`, not `actionchargeable`).
actionArrivalDatestringnonullEvent arrival timestamp ISO 8601. Maps to `actionarrivaldate`.
actionCompletionDatestringnonullWork completion timestamp ISO 8601 (sets implicit completion). Maps to `actioncompletiondate`.
actionContractIdintegernonullContract ID to bill against. Maps to `action_contract_id`.
actionIsResponsebooleannonullThis action counts as the SLA response. Maps to `action_isresponse` (not `isresponse`).
agentIdintegernonullAgent ID performing the action. Use halo_list_agents. Maps to `who_agentid`. On a shared client-credentials connection HaloPSA records the connection's application as the author whatever ID is sent here; on a personal sign-in connection the call carries the signed-in technician's own HaloPSA sign-in.
appointmentIdintegernonullAppointment ID this action relates to. Maps to `appointment_id`.
assetIdintegernonullAsset ID this action relates to. Maps to `asset_id`.
chargeRateintegernonullCharge rate ID. Use halo_list_charge_rates. Maps to `chargerate`.
customFieldsJsonstringnonullCustom field values as JSON array, e.g. [{"id":42,"value":"hello"}]. Maps to `customfields`.
dateTimestringnonullAction timestamp ISO 8601 (e.g. 2026-05-10T14:30:00Z). Defaults to now. Maps to `datetime`.
dontDoRulesbooleannonullSuppress automation rules for this action. Maps to `dont_do_rules`.
emailCcstringnonullEmail CC: address(es). Maps to `emailcc`.
emailFromstringnonullEmail From: address override. Maps to `emailfrom`.
emailSubjectstringnonullEmail subject line. Maps to `emailsubject`.
emailTemplateIdintegernonullEmail template ID to render the outbound body. Maps to `emailtemplate_id`.
emailTostringnonullEmail To: address(es), comma-separated. Maps to `emailto`.
extraFieldsJsonstringnonullFree-form JSON object of any Halo Action field not exposed as a named parameter (e.g. {"signature_method":1,"emailimportance":"high"}). Merged into the request body. Explicit named parameters override extraFieldsJson on conflict. Use sparingly.
fromMailboxIdintegernonullMailbox ID to send from. Maps to `from_mailbox_id`.
hiddenFromUserbooleanyesREQUIRED. true = HIDDEN from end user/customer (agent-only / private). false = PUBLIC on customer portal. Maps to Halo's `hiddenfromuser` field.
importantbooleannonullUrgent/important flag (shows a red flag in Halo UI). Maps to `important`.
informTicketOwnerbooleannonullNotify the ticket owner of this action. Maps to `actioninformownerofaction`.
isHiddenFromInternalItbooleannonullHide from internal IT team specifically (distinct from hiddenFromUser). Maps to `ishiddenfrominternalit`.
mileagenumbernonullMileage logged. Maps to `mileage`.
newAgentintegernonullReassign ticket to this agent ID as part of the action. Maps to `new_agent`.
newFixByDatestringnonullNew ticket fix-by date ISO 8601. Maps to `new_fixbydate`.
newFollowUpDatestringnonullNew follow-up reminder date ISO 8601. Maps to `new_followupdate`.
newPriorityintegernonullNew ticket priority ID. Maps to `new_priority`.
newStatusintegernonullNew ticket status ID after this action. Use halo_list_statuses. Maps to `new_status`.
newTargetDatestringnonullNew target/SLA date ISO 8601. Maps to `new_targetdate`.
newTeamstringnonullReassign ticket to this team (name or id). Maps to `new_team`.
nonBillTimenumbernonullNon-billable portion of timeTaken in hours. Maps to `nonbilltime` (Halo's field is `nonbilltime`, not `nonbillabletime`).
notestringnonullOne of note or noteHtml is REQUIRED, never both. The action body as PLAIN TEXT. If the body contains HTML or markup, send it as noteHtml instead and leave this empty; Halo derives the plain-text side from the HTML.
noteHtmlstringnonullOne of note or noteHtml is REQUIRED, never both. The action body as HTML, for a note that contains HTML or markup. Maps to `note_html`. Do NOT also send note: Halo does not merge the two, and HTML in both leaves unrendered HTML in the action body.
onBehalfOfUserIdintegernonullEnd-user this action is posted on behalf of. Maps to `on_behalf_of`.
outcomestringnonullREQUIRED (unless `outcomeId` is supplied). Outcome by display name, e.g. 'Email', 'Private Note', 'Public Note', 'Time Entry'. Halo rejects an action with no outcome. Maps to `outcome`.
outcomeIdintegernonullREQUIRED (unless `outcome` or an outcome is supplied via extraFieldsJson). Outcome ID — the action type. Preferred over the name. Enumerate valid ids with halo_list_outcomes. Maps to `outcome_id`.
privateNotestringnonullAgent-only side note, always hidden from customer regardless of hiddenFromUser. Maps to `private_note`.
replyToAddressstringnonullReply-To: header override. Maps to `replytoaddress`.
sendEmailbooleannonullDispatch this action as an outbound email. When true, BOTH emailTo AND emailSubject are required. Maps to `sendemail`.
sendSurveybooleannonullTrigger CSAT survey on save. Maps to `send_survey`.
setNoteToEmailBodybooleannonullUse the action's note/noteHtml as the email body. Maps to `setnotetoemailbody`.
ticketIdintegeryesREQUIRED. Numeric HaloPSA ticket ID. Use halo_search_tickets or halo_list_tickets to find IDs.
timeTakennumbernonullHours of work logged (decimal, e.g. 1.5 = 1h30m). Maps to `timetaken`.
travelTimenumbernonullTravel time in hours. Maps to `traveltime`.
updateChildrenbooleannonullPropagate this action to child tickets. Maps to `update_children`.
updateParentbooleannonullPropagate this action to the parent ticket. Maps to `update_parent`.
whoTypeintegernonullActor type: 0=Agent, 1=End-User. Maps to `who_type`.

[HaloPSA] Add an emoji reaction to a ticket action. Wraps POST /api/Actions/reaction. Useful for AI agents that want to acknowledge customer messages without posting a full reply. Halo's ActionReaction schema keys the reaction by (ticket_id, action_number) — NOT the global action id. DISCOVERY LIMITATION: Halo's Actions list endpoints (used by halo_list_ticket_actions / halo_list_actions) do NOT expose `action_number` in their response schema, so the caller must already know the per-ticket sequence number — typically from a Halo webhook payload, a previously-captured ticket UI link, or out-of-band knowledge. The 200 OK response from this endpoint has no body; the tool returns {"success":true} on success.

ParamTypeRequiredDefaultDescription
actionNumberintegeryesREQUIRED. Per-ticket action sequence number (1-based). NOT the global action id and NOT returned by halo_list_ticket_actions — must come from a webhook payload, UI link, or out-of-band knowledge.
agentIdintegernonullAgent ID adding the reaction. Defaults to the calling agent.
reactionTypestringyesREQUIRED. Reaction type/emoji shortcode (e.g. ':thumbsup:' or 'like'). Maps to Halo's `type` field on the ActionReaction schema.
ticketIdintegeryesREQUIRED. Numeric HaloPSA ticket ID containing the action.
timestampstringnonullReaction timestamp ISO 8601. Defaults to now. Maps to `timestamp`.

[HaloPSA] Add a private/internal note to a ticket — hidden from the end user/customer. Sugar over halo_add_action with hiddenfromuser=true and outcome=Private Note. Use halo_add_action for fully-custom action types.

ParamTypeRequiredDefaultDescription
agentIdintegernonullAgent ID adding the note. Maps to `who_agentid`. On a shared client-credentials connection HaloPSA records the connection's application as the author whatever ID is sent here; on a personal sign-in connection the call carries the signed-in technician's own HaloPSA sign-in.
importantbooleannonullMark as important (red flag in Halo UI).
notestringyesREQUIRED. Note body (plain text or HTML).
ticketIdintegeryesREQUIRED. Numeric HaloPSA ticket ID.

[HaloPSA] Change the status of up to 50 tickets in one call, with per-ticket read-back verification. This is the ACTION path (outcome 'Status Change' + new_status): the supported route for workflow-governed ticket types, where a plain record update (halo_bulk_ticket_update with status_id) is accepted and then overridden by the ticket type's rules. Each ticket gets its own status-change action carrying its own note, or sharedNote when a per-ticket note is absent. After the writes every ticket is re-read and counted as successful ONLY when it verifiably holds the new status; per-ticket outcomes report verified / reverted / unverifiable / failed. Creates one audit-trail action per ticket. Note: makes one API call per ticket plus two list calls for verification.

ParamTypeRequiredDefaultDescription
agentIdintegernonullAgent ID performing the status changes. Maps to `who_agentid` on every action. On a shared client-credentials connection HaloPSA records the connection's application as the author whatever ID is sent here; on a personal sign-in connection the call carries the signed-in technician's own HaloPSA sign-in.
hiddenFromUserbooleannotrueHide the audit notes from the end user/customer. Default true (hidden).
newStatusIdintegeryesREQUIRED. The new ticket status ID applied to every ticket. Use halo_list_statuses to find valid IDs.
sharedNotestringnonullFallback audit-trail note for tickets without their own note. Required when any ticket omits its note — Halo status-change actions record an audit note.
ticketsJsonstringyesJSON array of tickets: [{"ticketId": 101, "note": "per-ticket audit note"}, {"ticketId": 102}]. Max 50, no duplicate IDs. A ticket without its own note uses sharedNote.

[HaloPSA] Change a ticket's status and record an audit-trail note. Sugar over halo_add_action with new_status + note + outcome=Status Change. The ticket is re-read before and after the action (3 API calls instead of 1), and a status the ticket type's rules override surfaces as an error naming status_id instead of a false success; the note (and any outbound email) is still created in that case, so do NOT re-send the call. If the confirming read-back CALL itself fails, the result is reported as an error of type write_unverified rather than a success: the status change may well have landed, so re-read the ticket instead of retrying — the note and any email already exist, and a re-send would duplicate them. Use halo_update_ticket for status-only changes without an audit note.

ParamTypeRequiredDefaultDescription
agentIdintegernonullAgent ID performing the status change. Maps to `who_agentid`. On a shared client-credentials connection HaloPSA records the connection's application as the author whatever ID is sent here; on a personal sign-in connection the call carries the signed-in technician's own HaloPSA sign-in.
hiddenFromUserbooleannofalseHide the audit note from the end user/customer. Default false (visible).
newStatusIdintegeryesREQUIRED. New ticket status ID. Use halo_list_statuses to find valid IDs.
notestringyesREQUIRED. Audit-trail note explaining the status change.
ticketIdintegeryesREQUIRED. Numeric HaloPSA ticket ID.

[HaloPSA] Create a draft ticket or action. Drafts are saved but not yet submitted or visible to end users. Use this to prepare ticket content before finalising. Provide draft details as a JSON object. Returns the created draft with its assigned ID.

ParamTypeRequiredDefaultDescription
draftJsonstringyesJSON object with draft fields. Example: {"ticket_id": 42, "note": "Draft response...", "outcome": "note"}. Field names must match HaloPSA API field names.

[HaloPSA] Create a new helpdesk ticket. Requires at minimum summary, details, and clientId (use halo_list_clients). Returns the created ticket with its assigned ID. WORKFLOW-BACKED TYPES: for a ticket type backed by a workflow (e.g. a Change Request), pass ticketTypeId TOGETHER with the type's workflow_id (via extraFieldsJson) and any mandatory customFieldsJson in the SAME call — Halo rejects the create if the type's required fields are missing. TARGET DATE: set the type's "Target Date & Time" via targetDate (+ targetDateTimezone); that field (FOppTargetDate) does NOT bind through customfields. `details` is stored as HTML; any <![CDATA[...]]> wrapper is unwrapped automatically.

ParamTypeRequiredDefaultDescription
agentIdintegernonullAgent ID to assign the ticket to (optional). Use halo_list_agents to find valid IDs.
clientIdintegeryesClient ID the ticket belongs to. Use halo_list_clients or halo_search_clients to find valid IDs.
customFieldsJsonstringnonullCustom field values as a JSON array, e.g. [{"id":151,"value":"Change"}]. Maps to Halo's `customfields`. Some workflow-backed ticket types REQUIRE their mandatory custom fields here or Halo rejects the create. Look up field IDs with halo_list_custom_fields, or halo_list_ticket_type_fields for the fields one ticket type uses.
detailsstringyesFull ticket description with details of the issue or request. Supports plain text or HTML.
extraFieldsJsonstringnonullFree-form JSON object of any Halo Ticket field not exposed as a named parameter (e.g. {"workflow_id":10,"apply_workflow_on_type_change":true,"categoryid_1":5}). Merged into the create body; explicit named parameters override extraFieldsJson on conflict. Use this to satisfy workflow-backed ticket types in a single call.
impactIdintegernonullImpact level ID (optional). Sent as the raw `impact` integer; Halo derives priority server-side. Affects SLA calculations.
priorityIdintegernonullPriority ID (optional). Omit to use the default priority.
siteIdintegernonullSite ID (optional). Use halo_list_sites to find valid IDs.
summarystringyesTicket summary/subject line. Keep concise and descriptive — this is the primary identifier for helpdesk staff.
targetDatestringnonullTarget Date & Time (ISO 8601, e.g. 2026-05-26T16:00:00) for the type's "Target Date" field (FOppTargetDate, fieldid -104). This field does NOT bind via customfields — this param writes Halo's working `targetdate` + `targetdate_timezone` + `targetdate_with_timezone` triple. Supply targetDateTimezone for DST-correct handling.
targetDateTimezonestringnonullWindows timezone id for targetDate (e.g. "GMT Standard Time", "Eastern Standard Time"). Halo resolves DST from the zone id. Ignored unless targetDate is set.
teamIdintegernonullTeam ID to assign the ticket to (optional). Use halo_list_teams to find valid IDs.
ticketTypeIdintegernonullTicket type ID (optional). Use halo_list_ticket_types to see available types. For workflow-backed types, also supply workflow_id via extraFieldsJson and the type's mandatory customFieldsJson.
urgencyIdintegernonullUrgency level ID (optional). Sent as the raw `urgency` integer; Halo derives priority server-side. Affects SLA calculations.
userIdintegernonullEnd user/contact ID (optional). Use halo_list_users to find valid IDs.

[HaloPSA] Delete a ticket action (note, email, or time entry). This permanently removes the action from the ticket. Use with caution — this cannot be undone. Requires BOTH the ticket ID and action ID — use halo_list_actions to find IDs and verify the action with halo_get_action before deleting.

ParamTypeRequiredDefaultDescription
actionIdintegernonullREQUIRED. The numeric HaloPSA action ID to delete. Use halo_list_actions to find valid IDs. Verify the action with halo_get_action before deleting.
ticketIdintegernonullREQUIRED. The numeric HaloPSA ticket ID that contains the action.

[HaloPSA] Retrieve full details for a single action (note, email, or time entry). Requires BOTH the ticket ID and action ID — use halo_list_actions or halo_list_ticket_actions to find valid IDs for both.

ParamTypeRequiredDefaultDescription
actionIdintegernonullREQUIRED. The numeric HaloPSA action ID.
agentOnlybooleannonullReturn only agent-authored actions (optional). Maps to `agentonly`.
emailOnlybooleannonullReturn only the email portion of the action (optional). Maps to `emailonly`.
includeDetailsbooleannonullInclude full action details (extended payload). Maps to `includedetails`.
includeEmailbooleannonullInclude email-specific fields when the action is an email. Maps to `includeemail`.
mostRecentbooleannonullReturn the most recent matching action (optional). Maps to `mostrecent`.
nonSystembooleannonullExclude system-generated content from the action (optional). Maps to `nonsystem`.
penultimatebooleannonullReturn the penultimate (second-to-last) action (optional). Maps to `penultimate`.
ticketIdintegernonullREQUIRED. The numeric HaloPSA ticket ID that contains the action.

[HaloPSA] Retrieve a single ticket by numeric ID. Returns full ticket details including summary, status, priority, assigned agent, client, and action history. Requires a valid ticket ID — use halo_search_tickets or halo_list_tickets to find IDs.

ParamTypeRequiredDefaultDescription
includeAgentbooleannonullWhen true, includes assigned-agent detail (optional).
includeAuditingbooleannonullWhen true, includes the ticket's audit trail (optional).
includeChildIdsbooleannonullWhen true, includes child ticket IDs (optional).
includeDetailsbooleannonullWhen true, includes full ticket detail (optional).
includeFullMetabooleannofalseWhen true, returns the complete unshaped upstream response (including the tickettype form-field definitions and the outcomes action-button catalog). Leave false for the leaner default.
includeLastActionbooleannonullWhen true, includes the last action (optional).
includeLastAppointmentbooleannonullWhen true, includes the last appointment (optional).
includeLinkedObjectsbooleannonullWhen true, includes linked objects (assets, etc.) (optional).
includeNextAppointmentbooleannonullWhen true, includes the next appointment (optional).
includeParentChangeInfobooleannonullWhen true, includes parent change info (optional).
includeSeenBybooleannonullWhen true, includes seen-by information (optional).
isDetailScreenbooleannonullWhen true, returns the detail-screen representation (optional).
isPreviewbooleannonullWhen true, returns a lightweight preview (optional).
ticketIdintegeryesThe numeric HaloPSA ticket ID. Use halo_search_tickets or halo_list_tickets to find valid IDs.

[HaloPSA] List ticket actions (notes, emails, time entries) with optional filters. Returns action summaries including ID, note content, agent, and timestamps. Use this for escalation analysis, audit trails, or reviewing ticket activity across multiple tickets. NOTE: Halo's /api/Actions endpoint does NOT support page-based pagination — only a max-count limit. To page across large result sets, narrow with date ranges or filters instead.

ParamTypeRequiredDefaultDescription
actOutcomestringnonullFilter by action outcome name, e.g. 'Email' or 'Note' (optional). Maps to `actoutcome`.
actOutcomeNumintegernonullFilter by numeric action outcome ID (optional). Maps to `actoutcomenum`.
agentOnlybooleannonullHide system-generated actions; return only those performed by agents. Maps to `agentonly`.
conversationOnlybooleannonullReturn only customer-facing conversation actions. Maps to `conversationonly`.
countintegerno50Maximum number of actions to return (default 50, max 200). Halo does not support page-based pagination on this endpoint — use date ranges/filters to narrow large result sets.
dateSearchstringnonullDate field to apply the start/end range against, e.g. 'dateoccurred' (optional). Maps to `datesearch`.
endDatestringnonullFilter by end date in yyyy-MM-dd format (optional). Example: '2026-03-21'. Returns actions created on or before this date.
excludeBillingbooleannonullSkip time-entry / billing actions. Maps to `excludebilling`.
excludeHiddenFromInternalItbooleannonullExclude actions hidden from internal IT (optional). Maps to `excludehiddenfrominternalit`.
excludePrivatebooleannonullSkip actions marked hidden from the customer. Maps to `excludeprivate`. Useful for building a customer-visible audit trail.
excludeSysbooleannonullExclude system-generated actions (optional). Maps to `excludesys`.
importantOnlybooleannonullReturn only actions marked important. Maps to `importantonly`.
importantTopbooleannonullReturn only the single most important action per ticket (optional). Maps to `importanttop`.
includeAgentDetailsbooleannonullInclude agent detail fields with each action (optional). Maps to `includeagentdetails`.
includeAttachmentsbooleannonullInclude attachment metadata inline with each action. Maps to `includeattachments`.
includeHtmlEmailbooleannonullInclude the HTML-rendered email body (optional). Maps to `includehtmlemail`.
includeHtmlNotebooleannonullInclude the HTML-rendered note body (optional). Maps to `includehtmlnote`.
includeNonActionAttachmentsbooleannonullInclude attachments that are not tied to an action (optional). Maps to `includenonactionattachments`.
includeTranslationsbooleannonullInclude translated content for actions (optional). Maps to `includetranslations`.
intraTicketOnlybooleannonullReturn only intra-ticket actions (optional). Maps to `intraticketonly`.
isChildNotesbooleannonullTreat the result as child notes (optional). Maps to `ischildnotes`.
isRelatedNotesbooleannonullTreat the result as related notes (optional). Maps to `isrelatednotes`.
slaOnlybooleannonullReturn only SLA-related actions (optional). Maps to `slaonly`.
startDatestringnonullFilter by start date in yyyy-MM-dd format (optional). Example: '2026-03-16'. Returns actions created on or after this date.
supplierOnlybooleannonullReturn only supplier-related actions (optional). Maps to `supplieronly`.
ticketIdintegernonullFilter by ticket ID (optional). Returns only actions for the specified ticket.
timeEntriesOnlybooleannonullReturn only time-log actions. Maps to `timeentriesonly`.

[HaloPSA] Fetch all actions for a single ticket in one call. Faster than halo_list_actions when you already know the ticket ID and want the full activity history. Use halo_list_actions for date-range or cross-ticket queries.

ParamTypeRequiredDefaultDescription
countintegerno200Maximum number of actions to return (default 200, max 200).
ticketIdintegeryesREQUIRED. Numeric HaloPSA ticket ID.

[HaloPSA] List all available ticket types with ticket counts. Returns type IDs and names needed for creating tickets or filtering. Use this to discover valid ticket type IDs before calling halo_create_ticket.

[HaloPSA] List tickets with optional filters. Returns paginated ticket summaries including ID, summary, status, priority, client, and assigned agent. Use this to browse tickets or narrow down by status, client, agent, or priority before fetching full details with halo_get_ticket.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID. Use halo_list_agents to find valid IDs.
assetIdintegernonullFilter by linked asset ID (optional).
billableOnlybooleannonullWhen true, returns only billable tickets (optional).
category1stringnonullFilter by category slot 1 value (optional).
category2stringnonullFilter by category slot 2 value (optional).
category3stringnonullFilter by category slot 3 value (optional).
category4stringnonullFilter by category slot 4 value (optional).
cfDisplayValuesOnlybooleannonullWhen true, returns custom-field display values only (optional).
clientIdintegernonullFilter by client ID. Use halo_list_clients or halo_search_clients to find valid IDs.
closedOnlybooleannonullWhen true, returns only closed tickets (optional).
deletedbooleannonullWhen true, includes deleted tickets (optional).
endDatestringnonullFilter by end date in yyyy-MM-dd format (optional). Returns tickets created on or before this date.
filetypeFilterstringnonullFilter to tickets with attachments of this file type (optional).
includeAgentbooleannonullWhen true, includes assigned-agent details in each ticket (optional).
includeCustomFieldIdsstringnonullComma-separated list of Halo Custom Field IDs to include on each ticket (optional), e.g. "12,15". Omit to request none.
includeFullMetabooleannofalseWhen true, returns the complete unshaped upstream rows, bypassing any enabled response-shaping preset (for example halo.ticket-list-rows, which strips details, user_email, reportedby, emailtolist and idsummary from every row). Leave false for the leaner default.
includeLastActionbooleannonullWhen true, includes the last action on each ticket (optional).
includeLastNotebooleannonullWhen true, includes the last note on each ticket (optional).
includeSlaTimerbooleannonullWhen true, includes SLA timer detail on each ticket (optional).
includeStatusbooleannonullWhen true, includes status detail on each ticket (optional).
includeTicketTypebooleannonullWhen true, includes ticket-type detail on each ticket (optional).
listIdintegernonullFilter to a saved list ID (optional).
noChargeOnlybooleannonullWhen true, returns only no-charge tickets (optional).
openOnlybooleannonullWhen true, returns only open/active tickets. Useful for daily triage.
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 100). Start with 20 when exploring, increase for bulk data needs.
parentIdintegernonullFilter by parent ticket ID (optional).
pendingReviewbooleannonullWhen true, returns only tickets pending review (optional).
priorityIdintegernonullFilter by priority ID.
readyForInvoicingbooleannonullWhen true, returns only tickets ready for invoicing (optional).
requestTypeIdintegernonullFilter by request type ID (optional).
searchstringnonullSearch query string (optional). Matches against ticket summary and details.
siteIdintegernonullFilter by site ID (optional).
startDatestringnonullFilter by start date in yyyy-MM-dd format (optional). Returns tickets created on or after this date.
statusIdintegernonullFilter by HaloPSA status ID. Use halo_list_ticket_types to find valid status IDs.
teamIdintegernonullFilter by team ID (optional).
teamNamestringnonullFilter by team name (optional).
ticketIdOnlybooleannofalseWhen true, asks HaloPSA to return only the ID-style fields on each ticket - about fifteen, among them id, client_id, client_name, site_id, agent_id, status_id, sla_id, tickettype_id and lastincomingemail - instead of the full ~100-field row, roughly a tenth of the bytes. HaloPSA does not paginate this mode: pageNo and pageSize are ignored and EVERY matching ticket comes back in one response with no page_no/page_size in the envelope, so narrow the result with filters first. Dropped are summary, details, user_name, user_email, user_id, site_name, team, ticket_tags, reportedby and userdef1-5; lastincomingemail is the only date field left and sla_id the only SLA field, and client and company names (client_name, oppcompanyname) still come back. Use it to harvest ticket IDs cheaply, then fetch the ones you need with halo_get_ticket.
ticketIdsstringnonullReturn only these ticket IDs as a comma-separated list (optional), e.g. "101,102".
userIdintegernonullFilter by end-user ID (optional).
viewIdintegernonullFilter to a saved view ID (optional).
withAttachmentsbooleannonullWhen true, returns only tickets with attachments (optional).

[HaloPSA] Log work time on a ticket. Sugar over halo_add_action with outcome=Time Entry (the canonical Halo default outcome name for time logs). Time is logged in hours (decimal, e.g. 1.5 = 1h30m). Set chargeable=false for non-billable work. Time entries are private by default.

ParamTypeRequiredDefaultDescription
agentIdintegernonullAgent ID logging the time. Maps to `who_agentid`. On a shared client-credentials connection HaloPSA records the connection's application as the author whatever ID is sent here; on a personal sign-in connection the call carries the signed-in technician's own HaloPSA sign-in.
chargeRateIdintegernonullCharge rate ID. Maps to `chargerate`.
chargeablebooleannotrueIs this time billable to the client? Default true. Maps to `actisbillable`.
contractIdintegernonullContract ID to bill against. Maps to `action_contract_id`.
dateTimestringnonullAction timestamp ISO 8601. Defaults to now.
nonBillTimeHoursnumbernonullNon-billable portion of timeTakenHours. Maps to `nonbilltime`.
notestringnonullNote describing the work. Defaults to 'Time logged' when null.
ticketIdintegeryesREQUIRED. Numeric HaloPSA ticket ID.
timeTakenHoursnumberyesREQUIRED. Hours worked as a decimal (e.g. 1.5 for 1h30m).

[HaloPSA] Manager approval/rejection of a ticket action (typically a time entry). Wraps POST /api/Actions/Review which takes an Actions[] body. Sets `actreviewed=true` and maps `approved` to `timesheet_approval_status` (1=approved, 2=rejected). Use `timesheetApprovalStatusOverride` if your tenant uses different status integer values. Relevant for MSPs using Halo's timesheet approval workflow.

ParamTypeRequiredDefaultDescription
actionIdintegeryesREQUIRED. Numeric HaloPSA action ID being reviewed.
approvedbooleanyesREQUIRED. true = approve (timesheet_approval_status=1), false = reject (timesheet_approval_status=2). Override via timesheetApprovalStatusOverride for tenant-specific values.
extraFieldsJsonstringnonullFree-form JSON of any additional fields. Merged into the body; explicit params win on conflict.
reviewNotestringnonullOptional reviewer note. Maps to `note` on the Actions schema.
reviewerAgentIdintegernonullReviewer agent ID. Maps to `who_agentid` (the agent performing the review). Defaults to the calling agent.
timesheetApprovalStatusOverrideintegernonullOverride the int value sent to `timesheet_approval_status`. Some tenants use values other than 1=approved/2=rejected (e.g. 0=pending, 3=needs-info). When set, ignores the `approved` mapping.

[HaloPSA] Full-text search across ticket summaries, details, and action notes. Returns matching tickets ranked by relevance. Use this when you need to find tickets by keyword, error message, or description rather than browsing by filters. Supports date range and client filtering to narrow results.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDatestringnonullFilter by end date in yyyy-MM-dd format (optional). Returns tickets created on or before this date.
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Maximum number of results per page (default 50, max 200). Start with 20 when exploring, increase for comprehensive searches.
querystringyesSearch query string. Matches against ticket summary, details, and action notes. Use specific terms for better results.
startDatestringnonullFilter by start date in yyyy-MM-dd format (optional). Returns tickets created on or after this date.

[HaloPSA] Send an outbound email reply on a ticket. Sugar over halo_add_action with outcome=Email, sendemail=true, hiddenfromuser=false. The reply is visible to the end user/customer. For private/internal notes use halo_add_internal_note instead.

ParamTypeRequiredDefaultDescription
actionIsResponsebooleannonullMark this reply as the SLA response. Maps to `action_isresponse`.
agentIdintegernonullAgent ID sending the reply. Maps to `who_agentid`. On a shared client-credentials connection HaloPSA records the connection's application as the author whatever ID is sent here; on a personal sign-in connection the call carries the signed-in technician's own HaloPSA sign-in.
bodystringyesREQUIRED. Reply body. Defaults to HTML; set useHtml=false for plain text.
emailCcstringnonullCC address(es).
emailSubjectstringyesREQUIRED. Email subject line.
emailTemplateIdintegernonullHalo email template ID to render the body.
emailTostringyesREQUIRED. Recipient address(es), comma-separated.
fromMailboxIdintegernonullMailbox ID to send from.
ticketIdintegeryesREQUIRED. Numeric HaloPSA ticket ID.
useHtmlbooleannotrueTreat body as HTML (true, default) or plain text (false).

[HaloPSA] Update an existing action. Halo has no PUT for actions — upserts go through POST /api/Actions with the action ID populated. Provide actionId and ticketId plus the fields you want to change. NOTE: this tool does NOT perform a read-merge-write — it sends only the fields you supply. How Halo's upsert handles omitted fields depends on the field and your Halo configuration; some fields may be left untouched while others may revert to defaults. To guarantee a value, set it explicitly. Use extraFieldsJson for Halo Action fields not exposed as a named parameter.

ParamTypeRequiredDefaultDescription
actIsBillablebooleannonullBillable flag. Maps to `actisbillable`.
actionArrivalDatestringnonullEvent arrival ISO 8601. Maps to `actionarrivaldate`.
actionCompletionDatestringnonullCompletion timestamp ISO 8601. Maps to `actioncompletiondate`.
actionContractIdintegernonullContract ID. Maps to `action_contract_id`.
actionIdintegeryesREQUIRED. Numeric HaloPSA action ID to update. Use halo_list_actions or halo_list_ticket_actions to find IDs.
actionIsResponsebooleannonullSLA response flag. Maps to `action_isresponse`.
agentIdintegernonullAgent ID for this update. Maps to `who_agentid`. On a shared client-credentials connection HaloPSA records the connection's application as the author whatever ID is sent here; on a personal sign-in connection the call carries the signed-in technician's own HaloPSA sign-in.
appointmentIdintegernonullLinked appointment ID. Maps to `appointment_id`.
assetIdintegernonullLinked asset ID. Maps to `asset_id`.
chargeRateintegernonullCharge rate ID. Maps to `chargerate`.
customFieldsJsonstringnonullCustom field JSON array. Maps to `customfields`.
dateTimestringnonullNew action timestamp ISO 8601. Maps to `datetime`.
dontDoRulesbooleannonullSuppress automations. Maps to `dont_do_rules`.
emailCcstringnonullEmail CC. Maps to `emailcc`.
emailFromstringnonullEmail From override. Maps to `emailfrom`.
emailSubjectstringnonullEmail subject. Maps to `emailsubject`.
emailTemplateIdintegernonullEmail template ID. Maps to `emailtemplate_id`.
emailTostringnonullEmail To: address(es). Maps to `emailto`.
extraFieldsJsonstringnonullFree-form JSON of unexposed Halo Action fields. Explicit params win on conflict.
fromMailboxIdintegernonullMailbox ID. Maps to `from_mailbox_id`.
hiddenFromUserbooleannonullNew visibility: true = HIDDEN from customer, false = PUBLIC. Maps to `hiddenfromuser`. Omit to leave this field out of the update payload; Halo's per-field upsert behavior determines whether the existing value is preserved.
importantbooleannonullImportant flag. Maps to `important`.
informTicketOwnerbooleannonullNotify ticket owner. Maps to `actioninformownerofaction`.
isHiddenFromInternalItbooleannonullHide from internal IT only. Maps to `ishiddenfrominternalit`.
mileagenumbernonullMileage. Maps to `mileage`.
newAgentintegernonullReassign to agent ID. Maps to `new_agent`.
newFixByDatestringnonullNew fix-by date ISO 8601. Maps to `new_fixbydate`.
newFollowUpDatestringnonullNew follow-up date ISO 8601. Maps to `new_followupdate`.
newPriorityintegernonullNew priority ID. Maps to `new_priority`.
newStatusintegernonullNew ticket status ID. Maps to `new_status`.
newTargetDatestringnonullNew target date ISO 8601. Maps to `new_targetdate`.
newTeamstringnonullReassign to team. Maps to `new_team`.
nonBillTimenumbernonullNon-billable hours. Maps to `nonbilltime`.
notestringnonullNew action body (plain text). Omit to leave this field out of the update payload; Halo's per-field upsert behavior determines whether the existing value is preserved.
noteHtmlstringnonullNew HTML body. Maps to `note_html`. Omit to leave this field out of the update payload; Halo's per-field upsert behavior determines whether the existing value is preserved.
onBehalfOfUserIdintegernonullOn-behalf-of user ID. Maps to `on_behalf_of`.
outcomestringnonullNew outcome display name. Maps to `outcome`.
outcomeIdintegernonullNew outcome ID. Maps to `outcome_id`.
privateNotestringnonullNew agent-only side note. Maps to `private_note`.
replyToAddressstringnonullReply-To header. Maps to `replytoaddress`.
sendEmailbooleannonullDispatch as outbound email. When true, BOTH emailTo AND emailSubject are required. Maps to `sendemail`.
sendSurveybooleannonullTrigger CSAT survey. Maps to `send_survey`.
setNoteToEmailBodybooleannonullUse note as email body. Maps to `setnotetoemailbody`.
ticketIdintegeryesREQUIRED. Numeric HaloPSA ticket ID the action belongs to.
timeTakennumbernonullHours worked. Maps to `timetaken`.
travelTimenumbernonullTravel hours. Maps to `traveltime`.
updateChildrenbooleannonullPropagate to children. Maps to `update_children`.
updateParentbooleannonullPropagate to parent. Maps to `update_parent`.
whoTypeintegernonullActor type: 0=Agent, 1=End-User. Maps to `who_type`.

[HaloPSA] Update an existing ticket's fields such as status, assignment, priority, or custom fields, with best-effort read-back verification: after the write the ticket is re-read, and a value Halo accepted but then overrode (for example a ticket type's Status After Tech Update rule, an allowed-status list, or a status freeze) surfaces as an error naming the field instead of a false success — retrying after that error will not change the outcome. When the submitted fields cannot be compared on the read-back (for example custom fields), Halo's raw response is returned unchanged, exactly as on a verified success. A separate case: when the ticket ends up holding a value that is neither what you submitted nor what it held before, the result is an error of type write_unverified rather than a success — if Halo's own save response echoed your value the write DID land and something changed it afterwards (a concurrent edit, where a retry may well stick), and if there is no such echo nothing can be decided either way; re-read the ticket to see the stored values and do not re-send automatically. Only a value Halo normalized AT WRITE TIME — its save response already carrying the stored value — is still returned as a success, and only when the pre-write read succeeded: without the earlier value, a column Halo normalized at write time and one Halo never changed look identical, so that case is reported as write_unverified too. Separately again, when the confirming read-back CALL itself fails, the result is reported as an error of type write_unverified rather than a success: Halo accepted the write and it may well have landed, so re-read the ticket before deciding — do not retry automatically (a re-send simply repeats the same field values and creates no note or email). This modifies data visible to helpdesk staff. Requires a valid ticket ID — use halo_search_tickets or halo_list_tickets to find IDs. Note: makes 3 API calls (read, write, verify).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with fields to update. Example: {"status_id": 2, "agent_id": 5, "priority_id": 3}. Field names must match HaloPSA API field names.
ticketIdintegeryesThe numeric ticket ID to update. Use halo_search_tickets or halo_list_tickets to find valid IDs.

[HaloPSA] Submit a vote on a ticket. Used for ticket voting/polling workflows where agents or users can vote on tickets. Provide the vote details as a JSON object including the ticket ID and vote value. Returns the vote result.

ParamTypeRequiredDefaultDescription
voteJsonstringyesJSON object with vote details. Required: ticket_id. Example: {"ticket_id": 42, "vote": 1}. Field names must match HaloPSA API field names.

Clients

ToolPlanAccessSummary
halo_create_clientProWriteCreate a new client (customer organization) record.
halo_get_clientFreeRead-onlyRetrieve full details for a single client by numeric ID.
halo_list_clientsFreeRead-onlyList all clients (customer organizations) with pagination.
halo_list_usersFreeRead-onlyList end users (contacts), optionally filtered by client.
halo_search_clientsFreeRead-onlySearch clients by name or reference number.
halo_update_clientProWriteUpdate an existing client's fields such as name, contact details, or custom fields.

[HaloPSA] Create a new client (customer organization) record. This creates data visible to helpdesk staff. Returns the created client with its assigned ID. The JSON should include at minimum a name. Follow up with halo_get_client to verify creation. Use halo_list_sites to associate sites after creation.

ParamTypeRequiredDefaultDescription
clientJsonstringyesJSON object representing the client to create. Example: {"name": "Acme Corp", "website": "https://acme.com", "phone_number": "555-0100"}. Field names must match HaloPSA API field names.

[HaloPSA] Retrieve full details for a single client by numeric ID. Returns client info including associated sites, contracts, and users. Requires a valid client ID — use halo_list_clients or halo_search_clients to find IDs.

ParamTypeRequiredDefaultDescription
clientIdintegeryesThe numeric HaloPSA client ID. Use halo_list_clients or halo_search_clients to find valid IDs.

[HaloPSA] List all clients (customer organizations) with pagination. Returns client name, ID, and basic details. Use this to discover valid client IDs for filtering tickets, assets, contracts, and other client-scoped data.

ParamTypeRequiredDefaultDescription
activeInactivestringnonullFilter by active/inactive state, e.g. 'active' or 'inactive' (optional).
excludeInternalbooleannonullWhen true, excludes internal clients from results (optional).
idOnlybooleannonullWhen true, returns only client IDs rather than full records (optional).
includeActivebooleannonullWhen true, includes active clients in results (optional).
includeCustomFieldIdsstringnonullComma-separated list of Halo Custom Field IDs to include on each client (optional), e.g. "12,15". Omit to request none.
includeInactivebooleannonullWhen true, includes inactive clients in results (optional).
includeNotesbooleannonullWhen true, includes client notes in results (optional).
includeQboFieldsbooleannonullWhen true, includes QuickBooks Online fields in results (optional).
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200). Start with 20 when exploring, increase for bulk exports.
searchstringnonullFree-text search to match against client name and reference fields (optional).
ticketAreaIdintegernonullFilter by ticket area ID (optional).
topLevelIdintegernonullFilter by top-level organization ID (optional).
viewIdintegernonullApply a saved Halo view by its numeric ID (optional).

[HaloPSA] List end users (contacts), optionally filtered by client. Returns user details including name, email, and contact info. Use this to find user IDs for ticket creation or to see who belongs to a client. The role filter takes a numeric user-role ID, never a role name — use halo_list_user_role to resolve a name to its ID first.

ParamTypeRequiredDefaultDescription
approversOnlybooleannonullWhen true, returns only users who are approvers (optional).
assetIdintegernonullFilter by asset ID (optional). Returns users linked to the given asset.
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
excludeAgentsbooleannonullWhen true, excludes agent records from results (optional).
excludeGeneralUserbooleannonullWhen true, excludes general (non-specific) users from results (optional).
includeBillingInfobooleannonullWhen true, includes billing information in results (optional).
includeCustomFieldIdsstringnonullComma-separated list of Halo Custom Field IDs to include on each user (optional), e.g. "12,15". Omit to request none.
includeInactivebooleannofalseWhen true, includes inactive/disabled users in results (default false).
linkedToUserIdintegernonullFilter by the user ID this user is linked to (optional).
organisationIdintegernonullFilter by organisation ID (optional).
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200). Start with 20 when exploring, increase for bulk data needs.
rolestringnonullFilter by numeric user-role ID, passed as a string (optional). The API matches role IDs only — passing a role NAME returns no results. Resolve a name to its ID with halo_list_user_role. Note this is the end-user role list; halo_list_roles returns AGENT roles, which are a separate ID space and will not match here.
searchPhoneNumbersbooleannonullWhen true, searches phone numbers as part of free-text matching (optional).
siteIdintegernonullFilter by site ID (optional).
supplierIdintegernonullFilter by supplier ID (optional).

[HaloPSA] Search clients by name or reference number. Returns matching clients ranked by relevance. Use this when you know the client name but not the ID.

ParamTypeRequiredDefaultDescription
pageSizeintegerno50Maximum number of results to return (default 50, max 200).
querystringyesSearch query string. Matches against client name and reference fields.

[HaloPSA] Update an existing client's fields such as name, contact details, or custom fields. This modifies data visible to helpdesk staff. The JSON must include the client 'id' field. Use halo_list_clients, halo_search_clients, or halo_get_client to find valid IDs and current field values.

ParamTypeRequiredDefaultDescription
clientJsonstringyesJSON object with client fields to update. Must include 'id'. Example: {"id": 42, "name": "Acme Corp Updated", "phone_number": "555-0200"}. Field names must match HaloPSA API field names.

Assets

ToolPlanAccessSummary
halo_create_assetProWriteCreate a new asset (device, hardware, or software) record.
halo_get_assetFreeRead-onlyRetrieve full details for a single asset by numeric ID.
halo_get_asset_next_tagFreeRead-onlyRetrieve the next available asset tag number from HaloPSA's auto-numbering sequence.
halo_list_asset_changesFreeRead-onlyList change history for assets.
halo_list_asset_softwareFreeRead-onlyList software discovered on assets, optionally filtered by device.
halo_list_asset_software_versionsFreeRead-onlyList software version records across assets.
halo_list_asset_typesFreeRead-onlyList all available asset types defined in HaloPSA.
halo_list_assetsFreeRead-onlyList assets (devices, hardware, software) with optional filters for client and asset type.
halo_list_device_licencesFreeRead-onlyList software licences assigned to devices/assets.
halo_search_assetsFreeRead-onlySearch assets by name, serial number, or asset tag.
halo_update_assetProWriteUpdate an existing asset's fields such as status, assignment, or custom fields.

[HaloPSA] Create a new asset (device, hardware, or software) record. This creates data visible to helpdesk staff. Returns the created asset with its assigned ID. The JSON should include at minimum a name and asset type — use halo_list_asset_types to find valid type IDs and halo_list_clients to find valid client IDs. Follow up with halo_get_asset to verify creation.

ParamTypeRequiredDefaultDescription
assetJsonstringyesJSON object representing the asset to create. Example: {"inventory_number": "PC-001", "client_id": 42, "assettype_id": 1, "status": "Active"}. Field names must match HaloPSA API field names.

[HaloPSA] Retrieve full details for a single asset by numeric ID. Returns asset info including linked tickets, assigned users, warranty status, and custom fields. Requires a valid asset ID — use halo_list_assets or halo_search_assets to find IDs.

ParamTypeRequiredDefaultDescription
assetIdintegeryesThe numeric HaloPSA asset ID. Use halo_list_assets or halo_search_assets to find valid IDs.

[HaloPSA] Retrieve the next available asset tag number from HaloPSA's auto-numbering sequence. Returns the next tag value that would be assigned to a new asset. Use this before creating assets to preview or reserve the next asset tag. No parameters required.

[HaloPSA] List change history for assets. Returns records of modifications made to assets including field changes, timestamps, and who made the change. Optionally filter by a specific asset ID. Use this for asset audit trails and change tracking.

ParamTypeRequiredDefaultDescription
assetIdintegernonullFilter by asset ID (optional). Returns changes for a specific asset. Use halo_list_assets or halo_search_assets to find valid IDs.
countintegerno200Maximum number of results to return (default 200).

[HaloPSA] List software discovered on assets, optionally filtered by device. Returns software names, versions, and installation details. Use this to audit installed software for a specific device or across your environment.

ParamTypeRequiredDefaultDescription
countintegerno200Maximum number of results to return (default 200).
deviceIdintegernonullFilter by device/asset ID (optional). Use halo_list_assets or halo_search_assets to find valid IDs.

[HaloPSA] List software version records across assets. Returns software names with their detected versions, useful for version auditing and compliance checks. Use this to identify outdated software or track version distribution across your environment.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] List all available asset types defined in HaloPSA. Returns type IDs and names needed for creating assets or filtering asset lists. Use this to discover valid asset type IDs before calling halo_create_asset or filtering halo_list_assets.

[HaloPSA] List assets (devices, hardware, software) with optional filters for client and asset type. Returns paginated asset summaries including name, type, client, and status. Use this to browse assets or narrow down before fetching full details with halo_get_asset.

ParamTypeRequiredDefaultDescription
activeInactivestringnonullFilter by active/inactive state, e.g. 'active' or 'inactive' (optional).
assetGroupsstringnonullFilter by one or more asset group IDs, comma-separated (optional).
assetStatusesstringnonullFilter by one or more asset status IDs, comma-separated (optional).
assetTypeIdintegernonullFilter by asset type ID (optional).
assetTypesstringnonullFilter by one or more asset type IDs, comma-separated (optional).
bookmarkedbooleannonullWhen true, returns only bookmarked assets (optional).
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
contractIdintegernonullFilter by contract ID (optional).
includeAssetFieldsbooleannonullWhen true, includes asset field values in results (optional).
includeChangeHistoryLastUpdatedbooleannonullWhen true, includes the last-updated timestamp from change history (optional).
includeChildrenbooleannonullWhen true, includes child assets in results (optional).
includeCustomFieldIdsstringnonullComma-separated list of Halo Custom Field IDs to include on each asset (optional), e.g. "12,15". Omit to request none.
includeServicesbooleannonullWhen true, includes linked services in results (optional).
includeUserbooleannonullWhen true, includes the assigned user details in results (optional).
inventoryNumberstringnonullFilter by asset inventory number (optional).
linkedToTicketintegernonullFilter to assets linked to the given ticket ID (optional).
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200). Start with 20 when exploring, increase for bulk data needs.
siteIdintegernonullFilter by site ID (optional).
supplierIdintegernonullFilter by supplier ID (optional).
ticketIdintegernonullFilter by linked ticket ID (optional).
userIdintegernonullFilter by assigned user ID (optional).

[HaloPSA] List software licences assigned to devices/assets. Returns licence assignments including software name, licence key, and expiry. Optionally filter by device ID. Use this to audit licence compliance or check which licences are assigned to a specific device.

ParamTypeRequiredDefaultDescription
deviceIdintegernonullFilter by device/asset ID (optional). Use halo_list_assets or halo_search_assets to find valid IDs.

[HaloPSA] Search assets by name, serial number, or asset tag. Returns matching assets ranked by relevance. Use this when you know identifying details but not the asset ID.

ParamTypeRequiredDefaultDescription
pageSizeintegerno50Maximum number of results to return (default 50, max 200).
querystringyesSearch query string. Matches against asset name, serial number, and asset tag fields.

[HaloPSA] Update an existing asset's fields such as status, assignment, or custom fields. This modifies data visible to helpdesk staff. The JSON must include the asset 'id' field. Use halo_list_assets, halo_search_assets, or halo_get_asset to find valid IDs and current field values.

ParamTypeRequiredDefaultDescription
assetJsonstringyesJSON object with asset fields to update. Must include 'id'. Example: {"id": 10, "status": "Retired", "client_id": 42}. Field names must match HaloPSA API field names.

Agents & Teams

ToolPlanAccessSummary
halo_clear_agent_cacheProWriteClear the cached agent data in HaloPSA.
halo_get_agentFreeRead-onlyRetrieve full details for a single agent by numeric ID.
halo_get_agent_meFreeRead-onlyRetrieve details for the currently authenticated agent.
halo_list_agentsFreeRead-onlyList helpdesk agents (technicians) with optional team and department filters.
halo_list_teamsFreeRead-onlyList all teams defined in HaloPSA.
halo_search_agentsFreeRead-onlySearch agents (technicians) by name or email.

[HaloPSA] Clear the cached agent data in HaloPSA. Use this when agent data appears stale or after bulk agent changes to force the system to refresh agent information. Returns confirmation of the cache clear operation. No parameters required.

[HaloPSA] Retrieve full details for a single agent by numeric ID. Returns agent info including skills, team membership, and current workload. Requires a valid agent ID — use halo_list_agents to find IDs.

ParamTypeRequiredDefaultDescription
agentIdintegeryesThe numeric HaloPSA agent ID. Use halo_list_agents to find valid IDs.

[HaloPSA] Retrieve details for the currently authenticated agent. Returns the agent profile associated with the API credentials, including name, email, team membership, and permissions. Use this to identify which agent is making requests or to get the current agent's ID for filtering.

[HaloPSA] List helpdesk agents (technicians) with optional team and department filters. Returns agent names, IDs, and team assignments. Use this to discover valid agent IDs for ticket assignment or filtering.

ParamTypeRequiredDefaultDescription
activeInactivestringnonullFilter by active/inactive state, e.g. 'active' or 'inactive' (optional).
departmentIdintegernonullFilter by department ID (optional).
includeApiAgentsbooleannonullWhen true, includes API/system agents in results (optional).
includeDisabledstringnonullWhen set, includes disabled agents in results; pass 'true' or 'false' (optional).
includeEnabledstringnonullWhen set, includes enabled agents in results; pass 'true' or 'false' (optional).
includeMembershipInfobooleannonullWhen true, includes team membership info in results (optional).
includeRolesbooleannonullWhen true, includes each agent's roles in results (optional).
includeStatusbooleannonullWhen true, includes each agent's current status in results (optional).
includeUnassignedstringnonullWhen set, includes unassigned agents in results; pass 'true' or 'false' (optional).
qualificationsstringnonullFilter by agent qualifications (optional).
remoteAgentsbooleannonullWhen true, returns only remote-access-capable agents (optional).
rolestringnonullFilter by agent role (optional).
searchstringnonullFree-text search to match against agent name and email fields (optional).
showAllbooleannonullWhen true, returns all agents regardless of default scoping (optional).
teamIdintegernonullFilter by team ID (optional). Use halo_list_teams to find valid team IDs.
withEmailbooleannonullWhen true, includes each agent's email address in results (optional).

[HaloPSA] List all teams defined in HaloPSA. Returns team names and IDs. Use this to discover valid team IDs for filtering agents or assigning tickets.

[HaloPSA] Search agents (technicians) by name or email. Returns matching agents ranked by relevance. Use this when you know an agent's name but not their ID. Follow up with halo_get_agent for full details.

ParamTypeRequiredDefaultDescription
pageSizeintegerno50Maximum number of results to return (default 50, max 200).
querystringyesSearch query string. Matches against agent name and email fields.

Contracts

ToolPlanAccessSummary
halo_create_contractProWriteCreate a new client contract/agreement.
halo_get_contractFreeRead-onlyRetrieve full details for a single contract by numeric ID, including contract lines and billing items.
halo_get_supplier_contractFreeRead-onlyRetrieve full details for a single supplier contract by numeric ID.
halo_list_charge_ratesFreeRead-onlyList all charge rates defined in HaloPSA.
halo_list_contractsFreeRead-onlyList contracts/agreements with optional client filter.
halo_list_invoicesFreeRead-onlyList invoices with optional client and date filters.
halo_list_supplier_contractsFreeRead-onlyList supplier contracts/agreements with optional filters and pagination.

[HaloPSA] Create a new client contract/agreement. This creates data visible to helpdesk staff and affects billing. Returns the created contract with its assigned ID. The JSON should include at minimum a name and client_id — use halo_list_clients to find valid client IDs. Follow up with halo_get_contract to verify creation.

ParamTypeRequiredDefaultDescription
contractJsonstringyesJSON object representing the contract to create. Example: {"name": "Managed Services", "client_id": 42, "type": "Recurring", "start_date": "2024-01-01"}. Field names must match HaloPSA API field names.

[HaloPSA] Retrieve full details for a single contract by numeric ID, including contract lines and billing items. Returns contract info including name, type, client, dates, and line items. Requires a valid contract ID — use halo_list_contracts to find IDs.

ParamTypeRequiredDefaultDescription
contractIdintegeryesThe numeric HaloPSA contract ID. Use halo_list_contracts to find valid IDs.

[HaloPSA] Retrieve full details for a single supplier contract by numeric ID. Returns supplier contract info including name, supplier, dates, terms, and line items. Requires a valid supplier contract ID — use halo_list_supplier_contracts to find IDs.

ParamTypeRequiredDefaultDescription
contractIdintegeryesThe numeric HaloPSA supplier contract ID. Use halo_list_supplier_contracts to find valid IDs.

[HaloPSA] List all charge rates defined in HaloPSA. Returns rate IDs, names, and hourly amounts. Use this to discover valid charge rate IDs for contract creation or billing configuration.

[HaloPSA] List contracts/agreements with optional client filter. Returns contract summaries including ID, name, client, type, and billing details. Use this to discover valid contract IDs for utilization or profitability analysis.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] List invoices with optional client and date filters. Returns invoice summaries including ID, amount, date, status, and client. Use this to review billing history or find specific invoices.

ParamTypeRequiredDefaultDescription
awaitingApprovalbooleannonullReturn only invoices awaiting approval (optional).
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDatestringnonullFilter by end date in yyyy-MM-dd format (optional). Returns invoices dated on or before this date.
includeLinkedItemDetailsbooleannonullInclude linked item details in the results (optional).
notPostedOnlybooleannonullReturn only invoices that have not been posted (optional).
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).
paymentStatusesstringnonullFilter by payment statuses, comma-separated (optional).
postedOnlybooleannonullReturn only posted invoices (optional).
purchaseOrderIdintegernonullFilter by linked purchase order ID (optional).
quickbooksIdintegernonullFilter by linked QuickBooks ID (optional).
readyForInvoicingbooleannonullReturn only invoices ready for invoicing (optional).
recurringInvoiceIdintegernonullFilter by linked recurring invoice ID (optional).
reviewRequiredbooleannonullReturn only invoices requiring review (optional).
salesOrderIdintegernonullFilter by linked sales order ID (optional).
sentStatusintegernonullFilter by sent status (optional).
siteIdintegernonullFilter by site ID (optional).
startDatestringnonullFilter by start date in yyyy-MM-dd format (optional). Returns invoices dated on or after this date.
thirdPartyIdstringnonullFilter by linked third-party ID (optional).
ticketIdintegernonullFilter by linked ticket ID (optional).
userIdintegernonullFilter by user ID (optional).
xeroIdstringnonullFilter by linked Xero ID (optional).

[HaloPSA] List supplier contracts/agreements with optional filters and pagination. Returns supplier contract summaries including ID, name, supplier, and dates. Use this to review vendor agreements or discover supplier contract IDs for further details.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).
supplierIdintegernonullFilter by supplier ID (optional). Use halo_list_suppliers to find valid IDs.

Invoices

ToolPlanAccessSummary
halo_create_invoiceProWriteCreate a new invoice.
halo_generate_invoice_pdfProWriteGenerate a PDF document for an invoice.
halo_get_invoiceFreeRead-onlyRetrieve a single invoice by numeric ID.
halo_list_invoice_linesFreeRead-onlyList invoice line items.
halo_list_invoice_paymentsFreeRead-onlyList invoice payments with optional filters.
halo_record_invoice_paymentProWriteRecord a payment against an invoice.
halo_update_invoiceProWriteUpdate an EXISTING invoice by fetch-merge-write.
halo_void_invoiceProDestructiveVoid an existing invoice by ID.

[HaloPSA] Create a new invoice. This creates a billable document visible to finance staff and clients. Returns the created invoice with its assigned ID. Provide invoice details as a JSON object — use halo_list_clients to find valid client IDs.

ParamTypeRequiredDefaultDescription
invoiceJsonstringyesJSON object with invoice fields. Required: client_id. Optional: lines (array of line items), contract_id, po_number, notes. Example: {"client_id": 1, "lines": [{"description": "Support", "quantity": 1, "unit_price": 150}]}

[HaloPSA] Generate a PDF document for an invoice. Returns the PDF generation result including a download URL or base64-encoded content. Use this to produce a printable or email-ready invoice document. Requires a valid invoice ID — use halo_list_invoices to find IDs.

ParamTypeRequiredDefaultDescription
invoiceIdintegeryesThe numeric HaloPSA invoice ID to generate a PDF for. Use halo_list_invoices to find valid IDs.

[HaloPSA] Retrieve a single invoice by numeric ID. Returns full invoice details including line items, amounts, tax, status, and client. Requires a valid invoice ID — use halo_list_invoices to find IDs.

ParamTypeRequiredDefaultDescription
invoiceIdintegeryesThe numeric HaloPSA invoice ID. Use halo_list_invoices to find valid IDs.

[HaloPSA] List invoice line items. If an invoice ID is provided, returns that invoice with full line details. Otherwise returns recent invoices with their lines included. Use this to review itemized charges on invoices.

ParamTypeRequiredDefaultDescription
countintegerno50Number of invoices to return when no invoice ID is specified (default 50, max 200).
invoiceIdintegernonullFilter by invoice ID (optional). Returns the specific invoice with full line item details.

[HaloPSA] List invoice payments with optional filters. Returns payment records including amount, date, method, and associated invoice. Use this to reconcile payments or check payment history.

ParamTypeRequiredDefaultDescription
countintegerno50Number of results to return (default 50).
invoiceIdintegernonullFilter by invoice ID (optional). Narrows results to payments against a specific invoice.

[HaloPSA] Record a payment against an invoice. This creates a financial record visible to finance staff. Returns the created payment record. Provide payment details as a JSON object — use halo_list_invoices to find valid invoice IDs.

ParamTypeRequiredDefaultDescription
paymentJsonstringyesJSON object with payment fields. Required: invoice_id, amount. Optional: payment_date, payment_method, reference. Example: {"invoice_id": 1, "amount": 500.00, "payment_method": "bank_transfer"}

[HaloPSA] Update an EXISTING invoice by fetch-merge-write. This GETs the current invoice (with all its line items), overlays ONLY the fields you supply, and posts the complete merged document back — so every field you do NOT supply is PRESERVED exactly as it was. This is the safe way to edit a live billing document: HaloPSA's POST /Invoice is an upsert that DEFAULTS every omitted header field, so sending a partial payload directly would silently reset status/dates/totals; this tool re-sends the full record to avoid that. Provide invoiceId (the invoice to change) and updateJson (a JSON object of ONLY the fields to change). Header fields overwrite the fetched values. To change LINE items, include a "lines" array: a line carrying an existing line "id" (from halo_get_invoice / halo_list_invoice_lines) is overlaid onto that FULL existing line, so its other columns (department, tax, nominal codes, etc.) are preserved; a line WITHOUT an id is appended as a NEW line; existing lines you do not mention are kept unchanged. A line id that does not exist on the invoice is rejected. updateJson must NOT carry an "id" that differs from invoiceId. Caveats: (1) idempotent for updates to existing fields/lines, but each call with a NEW (id-less) line appends it again, so do not blindly retry an append. (2) HaloPSA is expected to recompute header totals/tax from the lines on save — if you change line pricing, verify the resulting invoice total. Use halo_create_invoice for a brand-new invoice.

ParamTypeRequiredDefaultDescription
invoiceIdintegeryesThe numeric HaloPSA invoice ID to update. Use halo_list_invoices to find valid IDs.
updateJsonstringyesJSON object of ONLY the fields to change; omitted fields are preserved. Header example: {"po_number":"PO-4471"}. Line example (edit line 4689 + add a new line): {"lines":[{"id":4689,"quantity":3},{"description":"New item","quantity":1,"unit_price":50}]}. Do not include an "id" that differs from invoiceId.

[HaloPSA] Void an existing invoice by ID. This marks the invoice as void — it cannot be undone. Use this only when an invoice was created in error. Requires a valid invoice ID — use halo_list_invoices to find IDs.

ParamTypeRequiredDefaultDescription
invoiceIdintegeryesThe numeric HaloPSA invoice ID to void. Use halo_list_invoices to find valid IDs.

Knowledge Base

ToolPlanAccessSummary
halo_create_kb_articleProWriteCreate a NEW knowledge base article — never pass an existing article's 'id' here (Halo's POST /api/KBArticle is an upsert, so an id turns this into an overwrite of that live article).
halo_get_kb_articleFreeRead-onlyRetrieve full details for a single knowledge base article by numeric ID.
halo_list_kb_articlesFreeRead-onlyList knowledge base articles with pagination.
halo_search_kbFreeRead-onlySearch the knowledge base for articles matching a query.
halo_update_kb_articleProDestructiveOverwrite an existing knowledge base article.

[HaloPSA] Create a NEW knowledge base article — never pass an existing article's 'id' here (Halo's POST /api/KBArticle is an upsert, so an id turns this into an overwrite of that live article). The article body goes in 'resolution'; HaloPSA has no 'article_content' field and silently discards unknown properties, so a body sent under the wrong name produces an empty article with no error. Returns the created article with its assigned ID. Follow up with halo_get_kb_article to verify. Never aim test, dummy or placeholder payloads at a live article — create a scratch article here and experiment on that instead.

ParamTypeRequiredDefaultDescription
articleJsonstringyesJSON object representing the KB article to create. Body text goes in 'resolution' (NOT 'article_content' — that field does not exist in HaloPSA and is silently dropped); 'description' is the short summary and 'name' the title. Example: {"name": "How to Reset Password", "description": "Self-service password reset steps", "resolution": "<p>Step 1...</p>", "type": 0}. Tags go in 'tags' as an array of objects keyed on 'text', e.g. "tags": [{"text": "password"}, {"text": "how-to"}] — a 'kb_tags' string is accepted and converted for you, because Halo's own 'kb_tags' field is a read-side projection that is ignored on write. Field names must match HaloPSA API field names.

[HaloPSA] Retrieve full details for a single knowledge base article by numeric ID. Returns the complete article including title, summary ('description'), body ('resolution'), tags and metadata. Requires a valid article ID — use halo_list_kb_articles or halo_search_kb to find IDs. ALWAYS call this before halo_update_kb_article: the update is a whole-record write, so the values returned here are what you must resend to preserve them.

ParamTypeRequiredDefaultDescription
articleIdintegeryesThe numeric HaloPSA KB article ID. Use halo_list_kb_articles or halo_search_kb to find valid IDs.

[HaloPSA] List knowledge base articles with pagination. Returns article summaries including ID, title, and category. Use this to browse the knowledge base or discover article IDs before fetching full content with halo_get_kb_article.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200). Start with 20 when exploring, increase for bulk data needs.

[HaloPSA] Search the knowledge base for articles matching a query. Returns matching KB articles with titles and content. Use this to find existing documentation, troubleshooting guides, or standard operating procedures before creating tickets or responding to issues.

ParamTypeRequiredDefaultDescription
querystringyesSearch query string. Matches against article titles and content. Use specific technical terms for better results.

[HaloPSA] Overwrite an existing knowledge base article. HaloPSA exposes NO partial-update (PATCH) for KB articles — the only write is a whole-record upsert (POST /api/KBArticle keyed on 'id'), so TREAT THIS AS A FULL REPLACE: call halo_get_kb_article first and resend every field you want to keep. Fields you send are written; fields you omit are not guaranteed to survive, and Halo reports nothing when it resets one. Supplying 'tags' REPLACES the article's entire tag set — include the existing tags or they are dropped. The body field is 'resolution' ('article_content' does not exist in HaloPSA). WARNING: this overwrites live documentation, StackJack keeps no backup, and there is no undo. NEVER send test, dummy or placeholder payloads at a real article ID while debugging — create a scratch article with halo_create_kb_article and experiment on that instead.

ParamTypeRequiredDefaultDescription
articleJsonstringyesJSON object with the KB article fields to write. Must include the existing article's 'id'. Read the article with halo_get_kb_article first and include every field you want preserved — this is a whole-record upsert, not a per-field patch. Body text goes in 'resolution' (NOT 'article_content', which HaloPSA does not have and silently drops). Example: {"id": 15, "name": "Updated Title", "description": "Self-service password reset steps", "resolution": "<p>Updated content...</p>"}. Tags go in 'tags' as an array of objects keyed on 'text', e.g. "tags": [{"text": "password"}, {"text": "how-to"}]; this replaces the whole tag set, so list every tag the article should end up with. A 'kb_tags' string is accepted and converted for you, because Halo's own 'kb_tags' field is a read-side projection that is ignored on write. Field names must match HaloPSA API field names.

Projects

ToolPlanAccessSummary
halo_create_projectProWriteCreate a new project.
halo_get_projectFreeRead-onlyRetrieve full details for a single project by numeric ID.
halo_list_project_tasksFreeRead-onlyList tickets/tasks associated with a specific project.
halo_list_projectsFreeRead-onlyList projects with optional client filter.
halo_update_projectProWriteUpdate an existing project's fields such as name, dates, status, or budget.

[HaloPSA] Create a new project. This creates data visible to helpdesk staff. Returns the created project with its assigned ID. The JSON should include at minimum a name and client_id — use halo_list_clients to find valid client IDs. Follow up with halo_get_project to verify creation.

ParamTypeRequiredDefaultDescription
projectJsonstringyesJSON object representing the project to create. Example: {"name": "Office Migration", "client_id": 42, "start_date": "2024-01-01", "end_date": "2024-06-30"}. Field names must match HaloPSA API field names.

[HaloPSA] Retrieve full details for a single project by numeric ID. Returns project info including tasks, milestones, budget, and team assignments. Requires a valid project ID — use halo_list_projects to find IDs.

ParamTypeRequiredDefaultDescription
projectIdintegeryesThe numeric HaloPSA project ID. Use halo_list_projects to find valid IDs.

[HaloPSA] List tickets/tasks associated with a specific project. Returns paginated ticket summaries scoped to the project, including ID, summary, status, and assigned agent. Requires a valid project ID — use halo_list_projects to find IDs.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200). Start with 20 when exploring, increase for bulk data needs.
projectIdintegeryesThe numeric HaloPSA project ID. Use halo_list_projects to find valid IDs.

[HaloPSA] List projects with optional client filter. Returns project summaries including ID, name, status, and client. Use this to discover valid project IDs before fetching full details with halo_get_project.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] Update an existing project's fields such as name, dates, status, or budget. This modifies data visible to helpdesk staff. The JSON must include the project 'id' field. Use halo_list_projects or halo_get_project to find valid IDs and current field values.

ParamTypeRequiredDefaultDescription
projectJsonstringyesJSON object with project fields to update. Must include 'id'. Example: {"id": 10, "name": "Updated Project", "status": "In Progress"}. Field names must match HaloPSA API field names.

Reports

ToolPlanAccessSummary
halo_create_report_pdfProWriteGenerate a PDF from a saved report.
halo_get_report_parametersFreeRead-onlyDiscover the parameters/filters of a saved report so it can be run parameterized.
halo_list_reportsFreeRead-onlyList all saved reports available in HaloPSA.
halo_run_reportFreeRead-onlyExecute a saved report by its numeric ID and return the result rows as JSON (via GET api/Report/?loadreport=true).

[HaloPSA] Generate a PDF from a saved report. Returns the PDF generation result. The JSON must include the report ID and any required parameters. Use halo_list_reports to discover available report IDs and their expected parameters.

ParamTypeRequiredDefaultDescription
requestJsonstringyesJSON object with the PDF generation request. Must include the report ID. Example: {"report_id": 5, "parameters": {"start_date": "2024-01-01", "end_date": "2024-12-31"}}. Field names must match HaloPSA API field names.

[HaloPSA] Discover the parameters/filters of a saved report so it can be run parameterized. Returns the report's full definition (GET api/Report/?includedetails=true). HaloPSA does NOT expose a dedicated parameter schema; the parameter/filter metadata lives in the returned `filters` array (each item has fieldname, data_type, data_type_group, rule types, and string/numeric rule values) plus the reporting-period fields (reportingperiod, reportingperiodstartdate, reportingperiodenddate, reportingperioddatefield). Pass the values you want as the `parameters` object to halo_run_report.

ParamTypeRequiredDefaultDescription
reportIdintegeryesThe numeric HaloPSA report ID. Use halo_list_reports to discover available report IDs.

[HaloPSA] List all saved reports available in HaloPSA. Returns report IDs, names, and categories. Use this to discover valid report IDs before running reports with halo_run_report or generating PDFs with halo_create_report_pdf.

[HaloPSA] Execute a saved report by its numeric ID and return the result rows as JSON (via GET api/Report/?loadreport=true). Optionally pass a `parameters` JSON object to apply report parameters server-side (the same parameter shape halo_create_report_pdf accepts). Each property becomes a report load query parameter — HaloPSA honors reportingperiod (int), reportingperiodstartdate, reportingperiodenddate, reportingperioddatefield, client_id, and invoice_id; unrecognized keys are ignored by Halo. Use halo_get_report_parameters to discover a report's filter/period parameters, and halo_list_reports to discover report IDs.

ParamTypeRequiredDefaultDescription
parametersstringnonullOptional JSON object of report parameters applied server-side, e.g. {"reportingperiodstartdate":"2024-01-01","reportingperiodenddate":"2024-12-31","client_id":42}. Property names must match HaloPSA report load parameter names (see halo_get_report_parameters). Omit to run with the report's baked-in filters.
reportIdintegeryesThe numeric HaloPSA report ID. Use halo_list_reports to discover available report IDs.

SLAs

ToolPlanAccessSummary
halo_get_slaFreeRead-onlyGet full SLA definition by ID including response time targets, resolution time targets, priority-based conditions, and applicable hours.
halo_list_slasFreeRead-onlyList all SLA (Service Level Agreement) definitions configured in HaloPSA.

[HaloPSA] Get full SLA definition by ID including response time targets, resolution time targets, priority-based conditions, and applicable hours. Use halo_list_slas to discover available SLA IDs first. Useful for understanding SLA breach risks identified by halo_sla_breach_alerts.

ParamTypeRequiredDefaultDescription
slaIdintegeryesThe numeric HaloPSA SLA ID. Use halo_list_slas to find valid IDs.

[HaloPSA] List all SLA (Service Level Agreement) definitions configured in HaloPSA. Returns SLA names, IDs, response targets, and resolution targets. Use this to understand the SLA commitments before analyzing compliance with halo_sla_compliance_dashboard.

Sites

ToolPlanAccessSummary
halo_create_siteProWriteCreate a new site (physical location) record.
halo_get_siteFreeRead-onlyRetrieve full details for a single site by numeric ID.
halo_list_sitesFreeRead-onlyList sites (physical locations), optionally filtered by client.
halo_update_siteProWriteUpdate an existing site's fields such as name, address, or contact information.

[HaloPSA] Create a new site (physical location) record. This creates data visible to helpdesk staff. Returns the created site with its assigned ID. The JSON must include at minimum a name and client_id — use halo_list_clients to find valid client IDs. Follow up with halo_get_site to verify creation.

ParamTypeRequiredDefaultDescription
siteJsonstringyesJSON object representing the site to create. Must include 'name' and 'client_id'. Example: {"name": "Main Office", "client_id": 42, "line1": "123 Main St", "city": "Springfield"}. Field names must match HaloPSA API field names.

[HaloPSA] Retrieve full details for a single site by numeric ID. Returns site info including name, address, client association, and contact details. Requires a valid site ID — use halo_list_sites to find IDs.

ParamTypeRequiredDefaultDescription
siteIdintegeryesThe numeric HaloPSA site ID. Use halo_list_sites to find valid IDs.

[HaloPSA] List sites (physical locations), optionally filtered by client. Returns site names, IDs, addresses, and client associations. Use this to discover valid site IDs for ticket creation or to see a client's locations.

ParamTypeRequiredDefaultDescription
activeInactivestringnonullFilter by active/inactive state, e.g. 'active' or 'inactive' (optional).
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
idOnlybooleannonullWhen true, returns only site IDs rather than full records (optional).
includeActivebooleannonullWhen true, includes active sites in results (optional).
includeAddressbooleannonullWhen true, includes site address details in results (optional).
includeCustomFieldIdsstringnonullComma-separated list of Halo Custom Field IDs to include on each site (optional), e.g. "12,15". Omit to request none.
includeInactivebooleannonullWhen true, includes inactive sites in results (optional).
includeNotesbooleannonullWhen true, includes site notes in results (optional).
searchstringnonullFree-text search to match against site name and reference fields (optional).
stockLocationbooleannonullWhen true, returns only stock-location sites (optional).

[HaloPSA] Update an existing site's fields such as name, address, or contact information. This modifies data visible to helpdesk staff. The JSON must include the site 'id' field. Use halo_list_sites or halo_get_site to find valid IDs and current field values.

ParamTypeRequiredDefaultDescription
siteJsonstringyesJSON object with site fields to update. Must include 'id'. Example: {"id": 5, "name": "Updated Office", "line1": "456 New St"}. Field names must match HaloPSA API field names.

Users

ToolPlanAccessSummary
halo_create_userProWriteCreate a new client end user (contact) record.
halo_get_userFreeRead-onlyRetrieve full details for a single end user (contact) by numeric ID.
halo_search_usersFreeRead-onlySearch end users (contacts) by name or email.
halo_update_userProWriteUpdate an existing end user's (contact's) fields such as name, email, phone, or site assignment.
halo_update_user_prefsProWriteUpdate preferences for an end user (contact).

[HaloPSA] Create a new client end user (contact) record. This creates data visible to helpdesk staff and potentially end users. Returns the created user with their assigned ID. Requires first name, surname, display name, client ID, and site ID — use halo_list_clients to find valid client IDs and halo_list_sites to find valid site IDs. Some Halo instances may require additional parameters such as email address or phone number. Optionally pass username to set the portal login — some Halo instance configurations require this. Use halo_create_supplier_user to create a supplier-side contact.

ParamTypeRequiredDefaultDescription
clientIdintegeryesClient ID the user belongs to. Use halo_list_clients or halo_search_clients to find valid IDs.
displayNamestringyesUser's combined display name (first + last name in one string).
emailAddressstringnonullUser's email address (optional but may be required depending on Halo instance configuration; recommended for notifications and portal access).
firstNamestringyesUser's first name.
lastNamestringyesUser's last name.
phoneNumberstringnonullUser's phone number (optional but may be required by some instance configurations).
siteIdintegeryesSite ID the user is located at. Use halo_list_sites to find valid IDs.
usernamestringnonullPortal login / username (writes to the Halo `login` field). Some instance configurations require this. Optional.

[HaloPSA] Retrieve full details for a single end user (contact) by numeric ID. Returns user info including name, email, phone, and associated client. Requires a valid user ID — use halo_search_users or halo_list_users to find IDs. Optionally scope to a specific client with clientId.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Scopes the lookup to a specific client. Use halo_list_clients or halo_search_clients to find valid IDs.
userIdintegeryesThe numeric HaloPSA user ID. Use halo_search_users or halo_list_users to find valid IDs.

[HaloPSA] Search end users (contacts) by name or email. Returns matching users ranked by relevance. Use this when you know a user's name or email but not their ID. Optionally scope to a specific client. Follow up with halo_get_user for full details.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Scopes search to a specific client. Use halo_list_clients or halo_search_clients to find valid IDs.
pageSizeintegerno50Maximum number of results to return (default 50, max 200). Start with 20 when exploring, increase for comprehensive searches.
querystringyesSearch query string. Matches against user name and email fields.

[HaloPSA] Update an existing end user's (contact's) fields such as name, email, phone, or site assignment. This modifies data visible to helpdesk staff. Requires a valid user ID — use halo_search_users or halo_list_users to find IDs.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object with fields to update. Example: {"emailaddress": "new@example.com", "phonenumber": "555-1234"}. Field names must match HaloPSA API field names.
userIdintegeryesThe numeric user ID to update. Use halo_search_users or halo_list_users to find valid IDs.

[HaloPSA] Update preferences for an end user (contact). This modifies user-level settings such as notification preferences, portal settings, or communication options. Provide the preference details as a JSON object including the user ID. Returns the updated preferences.

ParamTypeRequiredDefaultDescription
prefsJsonstringyesJSON object with user preference fields. Must include user 'id'. Example: {"id": 10, "email_notifications": true, "portal_access": true}. Field names must match HaloPSA API field names.

Timesheets

ToolPlanAccessSummary
halo_create_timesheetProWriteCreate a new timesheet entry.
halo_get_my_timesheetsFreeRead-onlyRetrieve timesheet entries for the currently authenticated agent.
halo_get_timesheetFreeRead-onlyRetrieve a single timesheet entry by numeric ID.
halo_list_timesheetsFreeRead-onlyList individual time entries with optional filters for agent, client, and date range.

[HaloPSA] Create a new timesheet entry. This records time worked by an agent against a ticket or client. Returns the created timesheet entry with its assigned ID. Provide timesheet details as a JSON object.

ParamTypeRequiredDefaultDescription
timesheetJsonstringyesJSON object with timesheet fields. Required: agent_id, hours. Optional: ticket_id, client_id, date, notes, billable. Example: {"agent_id": 5, "hours": 1.5, "ticket_id": 1234, "notes": "Troubleshooting network issue", "billable": true}

[HaloPSA] Retrieve timesheet entries for the currently authenticated agent. Returns the agent's own time entries including hours, tickets, and billable status. Use this for personal timesheet review without needing to know the agent ID.

[HaloPSA] Retrieve a single timesheet entry by numeric ID. Returns full timesheet details including hours, agent, client, ticket, notes, and billable status. Requires a valid timesheet ID — use halo_list_timesheets to find IDs.

ParamTypeRequiredDefaultDescription
timesheetIdintegeryesThe numeric HaloPSA timesheet entry ID. Use halo_list_timesheets to find valid IDs.

[HaloPSA] List individual time entries with optional filters for agent, client, and date range. Each entry includes the ticket, client, agent, hours worked, adjusted/billable hours, and charge type. Sourced from client-attributed timesheet events (not the org-wide capacity grid), so the agent and client filters and the date range are all honored. Use this to review time logged for a specific client or agent; use halo_timesheet_summary for aggregated totals.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID (optional). Use halo_list_agents to find valid IDs.
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients to find valid IDs.
endDatestringnonullEnd date filter in yyyy-MM-dd format (optional; defaults to today). Shows entries up to this date.
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).
startDatestringnonullStart date filter in yyyy-MM-dd format (optional; defaults to one month ago). Shows entries from this date forward.

Lookups

ToolPlanAccessSummary
halo_get_lookup_valuesFreeRead-onlyRetrieve values for a specific lookup list by numeric lookup ID.
halo_list_categoriesFreeRead-onlyList all ticket categories configured in the system.
halo_list_currenciesFreeRead-onlyList all currencies configured in HaloPSA.
halo_list_outcomesFreeRead-onlyList all action outcome types configured in the system.
halo_list_prioritiesFreeRead-onlyList all priority levels configured in the system.
halo_list_statusesFreeRead-onlyList all ticket statuses configured in the system.
halo_list_tax_rulesFreeRead-onlyList all tax rules configured in HaloPSA.
halo_list_taxesFreeRead-onlyList all tax configurations defined in HaloPSA.

[HaloPSA] Retrieve values for a specific lookup list by numeric lookup ID. Returns the configured values for drop-down fields such as impact, urgency, or custom lookups. Use this when a ticket field references a lookup ID and you need to see the available options.

ParamTypeRequiredDefaultDescription
lookupIdintegeryesThe numeric HaloPSA lookup ID. This is the ID of the lookup list, not an individual value. Check field definitions from halo_list_ticket_type_fields or halo_list_custom_fields to find lookup IDs.

[HaloPSA] List all ticket categories configured in the system. Returns category IDs and names used for classifying tickets. Use this to discover valid category values before creating or filtering tickets with halo_create_ticket or halo_list_tickets.

[HaloPSA] List all currencies configured in HaloPSA. Returns currency codes, names, symbols, and exchange rates. Use this to discover valid currency options for invoices, quotations, and financial reporting across multi-currency environments.

[HaloPSA] List all action outcome types configured in the system. Returns outcome IDs and names such as 'note', 'email', and 'timeentry'. Use this to discover valid outcome values before adding actions to tickets with halo_add_action.

[HaloPSA] List all priority levels configured in the system. Returns priority IDs, names, and colour codes. Use this to discover valid priority IDs before creating or updating tickets with halo_create_ticket or halo_update_ticket.

[HaloPSA] List all ticket statuses configured in the system. Returns status IDs and names used for ticket workflow transitions. Use this to discover valid status IDs before filtering tickets with halo_list_tickets or updating tickets with halo_update_ticket.

[HaloPSA] List all tax rules configured in HaloPSA. Returns tax rule IDs, names, and conditions that determine how taxes are applied to invoices and quotations. Use this to understand the tax calculation logic for different regions or product types.

[HaloPSA] List all tax configurations defined in HaloPSA. Returns tax IDs, names, and rates. Use this to discover valid tax settings for invoices, quotations, and billing. Needed when creating or reviewing financial documents.

ParamTypeRequiredDefaultDescription
kashflowTenantIdintegernonullFilter by Kashflow tenant ID (optional).
qboCompanyIdstringnonullFilter by QuickBooks Online company ID (optional).
relatedTointegernonullFilter by the related-to entity ID (optional).
xeroTenantIdstringnonullFilter by Xero tenant ID (optional).

Categories

ToolPlanAccessSummary
halo_create_categoryProWriteCreate a new ticket category.
halo_delete_categoryProDestructivePermanently delete a category record by numeric ID.
halo_update_categoryProWriteUpdate an existing category.

[HaloPSA] Create a new ticket category. The `value` parameter is the label Halo shows in the category picker; use `>` as a separator to build hierarchy up to 3 levels deep (e.g. `Email>Outlook>PST`). `categoryType` controls whether this is a regular ticket category (1, default) or a resolution category (2). Returns the created category with its assigned ID. Halo tickets have four independent category slots (`categoryid_1` through `categoryid_4`); this tool just creates the category record — assign it to a ticket via `halo_update_ticket` using the `categoryid_N` integer field. This does not include subcategory hierarchy beyond three `>`-separated levels.

ParamTypeRequiredDefaultDescription
categoryGroupIdintegernonullOptional category group ID.
categoryTypeintegerno1Halo category type. 1 = regular ticket category (default). 2 = resolution category used when closing tickets.
notestringnonullOptional internal note on this category.
priorityIdintegernonullDefault priority ID to apply when this category is selected on a ticket. Use halo_list_priorities to find valid IDs.
slaIdintegernonullDefault SLA ID. Use halo_list_slas to find valid IDs.
valuestringyesCategory label. Use `>` to create hierarchy up to 3 levels deep (e.g. Email>Outlook>PST).

[HaloPSA] Permanently delete a category record by numeric ID. This cannot be undone. Any tickets currently referencing this category via `categoryid_1`/`_2`/`_3`/`_4` may end up with a dangling category id — prefer marking the category inactive via halo_update_category ({"inactive": true}) when possible. Use halo_list_categories to find valid IDs.

ParamTypeRequiredDefaultDescription
categoryIdintegeryesThe numeric category ID to delete. Use halo_list_categories to find valid IDs.

[HaloPSA] Update an existing category. Provide a JSON object of fields to change. Valid keys: `value` (use `>` for hierarchy), `type_id` (1=category, 2=resolution), `priority_id`, `sla_id`, `category_group_id`, `note`, `inactive`. Example: {"value": "Email>Outlook", "priority_id": 3}. Field names must match HaloPSA API field names.

ParamTypeRequiredDefaultDescription
categoryIdintegeryesThe numeric category ID to update. Use halo_list_categories to find valid IDs.
fieldsJsonstringyesJSON object with fields to update. Example: {"value": "Email>Outlook", "priority_id": 3}. Field names must match HaloPSA API field names.

Suppliers

ToolPlanAccessSummary
halo_create_supplierProWriteCreate a new supplier/vendor record.
halo_create_supplier_userProWriteCreate a new supplier-side user (contact) attached to an existing supplier.
halo_get_supplierFreeRead-onlyRetrieve a single supplier by numeric ID.
halo_list_suppliersFreeRead-onlyList suppliers/vendors with optional filters.

[HaloPSA] Create a new supplier/vendor record. This adds a supplier to the system for procurement and contract management. Returns the created supplier with its assigned ID. Provide supplier details as a JSON object.

ParamTypeRequiredDefaultDescription
supplierJsonstringyesJSON object with supplier fields. Required: name. Optional: address, phone, email, website, account_number, notes. Example: {"name": "Acme Hardware Inc.", "email": "sales@acmehw.com", "phone": "555-0100"}

[HaloPSA] Create a new supplier-side user (contact) attached to an existing supplier. Posts to api/Users with the Halo UI-style supplier user payload (isuserdetails=true, embedded supplier object with lookupdisplay). Use halo_list_suppliers / halo_get_supplier to find a valid supplierId and the matching supplierName. Returns the created supplier user with their assigned ID.

ParamTypeRequiredDefaultDescription
displayNamestringyesCombined display name (first + last name in one string).
emailAddressstringyesSupplier user's email address.
firstNamestringyesSupplier user's first name.
inactivebooleannofalseMark the supplier user inactive on creation (default false).
lastNamestringyesSupplier user's last name.
sendAccountsEmailsbooleannofalseSend accounting / billing notification emails to this contact (default false).
sendWelcomeEmailbooleannofalseSend a Halo welcome email when the user is created (default false).
supplierIdintegeryesID of the supplier this user belongs to. Use halo_list_suppliers to find valid IDs.
supplierNamestringyesDisplay name of the supplier this user belongs to (must match the supplier record). Use halo_get_supplier to retrieve.
telPrefintegerno0Telephone preference flag — Halo internal numeric code (default 0).
titlestringno""Job title (optional).

[HaloPSA] Retrieve a single supplier by numeric ID. Returns full supplier details including name, address, contact information, and linked contracts. Requires a valid supplier ID — use halo_list_suppliers to find IDs.

ParamTypeRequiredDefaultDescription
supplierIdintegeryesThe numeric HaloPSA supplier ID. Use halo_list_suppliers to find valid IDs.

[HaloPSA] List suppliers/vendors with optional filters. Returns supplier summaries including ID, name, contact details, and account status. Use this to browse suppliers or find valid supplier IDs for purchase orders and contracts.

ParamTypeRequiredDefaultDescription
countintegerno50Number of results to return (default 50).

Quotations

ToolPlanAccessSummary
halo_add_quotation_linesProWriteAppend NEW line items to an existing quotation (e.g. bulk quote-import workflows).
halo_approve_quotationProWriteApprove or reject a quotation.
halo_create_quotationProWriteCreate a new quotation/quote.
halo_get_quotationFreeRead-onlyRetrieve a single quotation by numeric ID.
halo_list_quotationsFreeRead-onlyList quotations/quotes with optional filters.
halo_remove_quotation_linesProDestructiveRemove one or more EXISTING line items from a quotation.
halo_update_quotation_linesProWriteUpdate EXISTING line items on a quotation (change pricing/quantity on lines that already exist).
halo_view_quotationFreeRead-onlyView a quotation in a rendered/presentable format.

[HaloPSA] Append NEW line items to an existing quotation (e.g. bulk quote-import workflows). Provide the quotation id plus the new lines — the tool stamps the parent link ('qhid') onto each and forces INSERT semantics by dropping any line-level 'id' you pass, so an existing line is never overwritten (the id drop also covers the advanced flat-array form). To modify existing lines instead, use halo_update_quotation_lines. HOW THE WRITE WORKS: HaloPSA has no working quote-line endpoint (POST /Quotation/Lines answers 200 and appends nothing), so the tool reads the quote, appends your new lines after the ones already there (which is what puts them at the END of the quote — HaloPSA derives each line's sort order from the order of the set it is given), and re-sends the COMPLETE line set through the quote upsert — every existing line is carried through verbatim, because that write replaces the quote's whole line collection. It reads the quotation before and after the write and fails loudly when the read-back shows no new lines at all, or fewer new lines than you submitted; HaloPSA's 200 on its own is not proof that a line was added. Where the read-back cannot settle the append either way — a read-back carrying no usable line ids to compare, or MORE new lines than you submitted (HaloPSA may have expanded a bundled line, or another writer may have appended between the two reads) — the reply comes back as {"verification":"skipped","reason":...,"halo":<Halo's response>} with the reason naming which of those it was: re-read the quote with halo_get_quotation and count its lines. Never retry a failed append automatically — the lines that did land would be appended a second time. Because the write REPLACES the quote's whole line collection with the set read a moment earlier, a line ADDED by someone else between this tool's read and its write is DELETED rather than merged; HaloPSA offers no optimistic-concurrency token here, so avoid appending to a quote somebody is editing in HaloPSA at the same time. VERIFIED HaloPSA BEHAVIOUR (live test 2026-09-01): 'baseprice' DOES persist on a newly added line — on a free-text line and an item-linked line alike — so set it here rather than trying to change it later; on an EXISTING line HaloPSA ignores a baseprice edit. 'description' is not stored on quotation lines: put the line's text in 'name'. The write also populates the quote header's 'site_delivery_override' from the quote's site if it was empty; no other header field (status, title, client, user, totals) is touched. A batch must name exactly ONE quotation — a flat array whose lines disagree about 'qhid' or omit it is refused before anything is sent, because the write targets one quote's line set.

ParamTypeRequiredDefaultDescription
linesJsonstringyesJSON object {"id": <quotationId>, "lines": [ ... ]} — 'id' (alias 'quotation_id') is the quote's numeric id from halo_get_quotation. Each new line uses Halo field names: name (the line's text — 'description' is NOT stored on a quote line) or item_id (the item), current_quantity (qty), baseprice and current_price (unit sell price — set BOTH; baseprice can only be set at insert), costprice (unit cost). Any line-level 'id' is ignored (these are new rows). Example: {"id": 500, "lines": [{"name": "Firewall", "current_quantity": 1, "baseprice": 2500, "current_price": 2500, "costprice": 1800}]}. Advanced: a flat JSON array of line objects that each carry the SAME 'qhid' is also accepted, with any line-level 'id' still dropped; a flat array addressing several quotes, or omitting 'qhid' on any line, is refused without sending anything.

[HaloPSA] Approve or reject a quotation. This changes the quotation status and may trigger downstream workflows such as invoice or sales order creation. Provide the approval details as a JSON object.

ParamTypeRequiredDefaultDescription
approvalJsonstringyesJSON object with approval details. Required: id (quotation ID), approved (true/false). Optional: notes. Example: {"id": 1, "approved": true, "notes": "Approved by management"}

[HaloPSA] Create a new quotation/quote. This creates a sales document visible to staff and optionally clients. Returns the created quotation with its assigned ID. Provide quotation details as a JSON object — use halo_list_clients to find valid client IDs. IMPORTANT: use HaloPSA's real field names on line items or the sell price silently drops to zero. On each line, the SELL price is 'baseprice' (unit list price) and/or 'current_price'; the QUANTITY is 'current_quantity'; the unit COST is 'costprice'. Halo does NOT recognize 'unit_price' or 'quantity' and will ignore them, leaving the line at $0 revenue. ALWAYS ALSO SEND 'price' (the unit sell price, the SAME value as baseprice) on every line. KNOWN HaloPSA BEHAVIOUR (customer-reported 2026-08-31 and again 2026-09-15, INSTANCE-SPECIFIC): on some HaloPSA instances the create response echoes back the 'baseprice' you sent but a later halo_get_quotation reads baseprice 0.0 on EVERY line while 'costprice' and 'current_price' persist — and HaloPSA computes the quote header's total/cost/profit/revenue from baseprice, so the whole quote then reads as a zero-total quote. Live A/B 2026-09-01 on an instance that zeroes: the SAME create with 'price' on each line persisted baseprice, the line totals and the header totals; a reference instance persisted baseprice with or without it. So 'price' is harmless where it is not needed and the field that persists where it is. Building the line from a catalogue item ('item_id' / 'productcode') is NOT a workaround for the zeroing. StackJack's request demonstrably carries the fields, so when it still happens it happens on HaloPSA's side after it answers. ALWAYS read the quote back with halo_get_quotation and check the line prices before treating it as ready to send; if baseprice still came back 0 with 'price' sent, set the sell price on HaloPSA's own quote screen and raise it with HaloPSA support with the line payload.

ParamTypeRequiredDefaultDescription
quotationJsonstringyesJSON object with quotation fields. Required: client_id (int). Optional header fields: site_id, expiry_date, note. Optional 'lines' array of QuotationDetail objects. Each line uses Halo field names: name or item_id (the item), current_quantity (qty), baseprice (unit sell price), price (unit sell price again — send it on every line, same value as baseprice; some Halo instances zero baseprice at persist time without it), current_price (current unit price), costprice (unit cost), description. Example: {"client_id": 1, "lines": [{"name": "Firewall setup", "current_quantity": 1, "baseprice": 2500, "price": 2500, "current_price": 2500, "costprice": 1800}]}

[HaloPSA] Retrieve a single quotation by numeric ID. Returns full quotation details including line items, pricing, client, and approval status. Requires a valid quotation ID — use halo_list_quotations to find IDs.

ParamTypeRequiredDefaultDescription
quotationIdintegeryesThe numeric HaloPSA quotation ID. Use halo_list_quotations to find valid IDs.

[HaloPSA] List quotations/quotes with optional filters. Returns quotation summaries including ID, client, status, total amount, and validity dates. Use this to browse quotes or find specific quotations before fetching full details with halo_get_quotation.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
closedbooleannonullFilter to only closed quotations (optional).
openbooleannonullFilter to only open quotations (optional).
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] Remove one or more EXISTING line items from a quotation. Provide the quotation id and a JSON array of the line ids to remove, for example [10, 11]. Use halo_get_quotation to read the current line ids first. HOW THE REMOVAL WORKS: HaloPSA publishes no per-line delete for quotation lines, so the tool reads the quote and writes its line set back through the quote upsert (POST /Quotation) WITHOUT the lines you named. That upsert REPLACES the quote's line collection, which is what makes the omission a deletion. Every other line is carried through unchanged, exactly as it was read, including the fields you never mentioned. It then reads the quote back and fails loudly unless every id you named is gone AND every other line that existed before the write survived; HaloPSA's 200 on its own is not proof that anything was removed. A line id that does not exist on the quote is refused before anything is sent, and the refusal names the missing ids. Because the tool reads then writes, a line ADDED by someone else between this tool's read and its write is DELETED, not merged, and HaloPSA offers no optimistic-concurrency token on this endpoint to close that window; avoid running this against a quote somebody is editing in HaloPSA at the same time. A removal cannot be undone by re-running this tool: to put a line back, add it again with halo_add_quotation_lines.

ParamTypeRequiredDefaultDescription
lineIdsJsonstringyesJSON array of the line ids to remove, for example [10, 11]. Each id must be a positive line id that exists on the quotation (halo_get_quotation shows the current line ids), and an id may appear only once. Every line you do not name is kept exactly as it is.
quotationIdintegeryesThe quote's numeric id from halo_get_quotation.

[HaloPSA] Update EXISTING line items on a quotation (change pricing/quantity on lines that already exist). Use halo_add_quotation_lines to append brand-new lines. Provide the quotation id plus the lines to change — use halo_get_quotation to see current line ids and their fields first. HOW THE WRITE WORKS: HaloPSA has no working quote-line endpoint (POST /Quotation/Lines answers 200 and writes nothing, and there is no /Quotation/updatelines), so the tool reads the quote, overlays your changes onto the current lines by line id, and re-sends the COMPLETE line set through the quote upsert. Lines you do not mention are carried through unchanged; only the fields you name on the ids you name are altered. It then reads the quote back and fails loudly when Halo matched none of the submitted lines (change_seq unchanged), discarded the submitted values, or stored a value that is neither what you submitted nor what the line held before (a Halo-side normalization and someone else's concurrent edit look identical here, so that case is reported as unverified rather than success — re-read the quote with halo_get_quotation instead of retrying automatically), or could not verify a submitted property AT ALL because the read-back gives it no stored value to compare against (a field name Halo does not recognize is the commonest cause; the write itself may well have landed, so that verdict says only that StackJack could not confirm it); Halo's 200 alone is not proof of persistence. Because the tool reads then writes, two concurrent edits to the same quote end in last-writer-wins — and on this endpoint that is sharper than usual: the write REPLACES the quote's whole line collection with the set read a moment earlier, so a line ADDED by someone else between this tool's read and its write is DELETED, not merged. HaloPSA offers no optimistic-concurrency token on this endpoint, so that window cannot be closed from here; 'change_seq' is checked AFTER the write as evidence, not before it as a lock. Avoid running this against a quote somebody is editing in HaloPSA at the same time. VERIFIED HaloPSA BEHAVIOUR (live test 2026-09-01): 'baseprice' is settable when a line is CREATED but is IGNORED when an existing line is updated — it keeps its original value while current_price, current_quantity and costprice all change as submitted. To change the sell price of an existing line, set 'current_price'; to change baseprice, delete the line and add it again with halo_add_quotation_lines. 'description' is not stored on quotation lines either — the line's text field is 'name'. The write also populates the quote header's 'site_delivery_override' from the quote's site if it was empty; no other header field (status, title, client, user, totals) is touched. A batch must name exactly ONE quotation — a flat array whose lines disagree about 'qhid' or omit it is refused before anything is sent, because the write targets one quote's line set.

ParamTypeRequiredDefaultDescription
linesJsonstringyesJSON object {"id": <quotationId>, "lines": [ ... ]} — 'id' (alias 'quotation_id') is the quote's numeric id from halo_get_quotation. Each line must include its existing line 'id' and the Halo fields to change: current_quantity (qty), current_price (unit sell price), costprice (unit cost). Halo ignores 'unit_price' and 'quantity' entirely, ignores 'description' on a quote line (the text field is 'name'), and ignores 'baseprice' on an EXISTING line — set current_price instead. Example: {"id": 500, "lines": [{"id": 10, "current_quantity": 2, "current_price": 1200}]}. Advanced: a flat JSON array of line objects that each carry the SAME 'qhid' is also accepted; a flat array addressing several quotes, or omitting 'qhid' on any line, is refused without sending anything, because one write targets one quote's line set.

[HaloPSA] View a quotation in a rendered/presentable format. Returns the quotation formatted for viewing, including all line items, totals, and client details. Provide the request details as a JSON object including the quotation ID. Use this when you need a presentation-ready view of a quote rather than raw data.

ParamTypeRequiredDefaultDescription
requestJsonstringyesJSON object with view request details. Required: id (quotation ID). Example: {"id": 1}. Field names must match HaloPSA API field names.

Items & Stock

ToolPlanAccessSummary
halo_create_itemProWriteCreate a new product/item in the catalogue.
halo_create_item_account_linkProWriteCreate a link between an item and an accounting system account.
halo_create_item_groupProWriteCreate a new item group/category for organising products in the catalogue.
halo_create_item_supplier_linkProWriteLink a supplier to an item/product.
halo_create_stock_binProWriteCreate a new stock bin/warehouse location for storing inventory.
halo_delete_item_groupProDestructiveDelete an item group by numeric ID.
halo_delete_item_supplier_linkProDestructiveRemove a supplier link from an item by numeric link ID.
halo_delete_stock_binProDestructiveDelete a stock bin/warehouse location by numeric ID.
halo_get_itemFreeRead-onlyRetrieve a single product/item by numeric ID.
halo_get_item_groupFreeRead-onlyRetrieve a single item group by numeric ID.
halo_get_stock_binFreeRead-onlyRetrieve a single stock bin/warehouse location by numeric ID.
halo_list_item_account_linksFreeRead-onlyList accounting integation links for items.
halo_list_item_groupsFreeRead-onlyList item groups/categories used to organise products in the catalogue.
halo_list_item_stockFreeRead-onlyList stock levels for items/products.
halo_list_item_stock_historyFreeRead-onlyList stock level history for items, showing how inventory quantities have changed over time.
halo_list_item_suppliersFreeRead-onlyList supplier links for items/products.
halo_list_itemsFreeRead-onlyList products/items in the catalogue with optional search filter.
halo_list_stock_binsFreeRead-onlyList stock bin/warehouse locations where inventory is stored.
halo_list_stock_tracesFreeRead-onlyList stock trace records showing the movement history of inventory items.

[HaloPSA] Create a new product/item in the catalogue. This adds a new sellable or trackable item. Returns the created item with its assigned ID. Provide item details as a JSON object.

ParamTypeRequiredDefaultDescription
itemJsonstringyesJSON object with item fields, using HaloPSA's own field names. Required: name. Optional: description, baseprice (the sell price), costprice, dont_track_stock (true to skip stock tracking). HaloPSA silently ignores field names it does not recognize — an Item has NO unit_price, cost_price, sku, category or stock_enabled, so an item sent with those names is created with no price. Example: {"name": "USB-C Hub", "description": "7-port USB-C hub", "baseprice": 49.99, "costprice": 30.00}

[HaloPSA] Create a new item group/category for organising products in the catalogue. Returns the created group with its assigned ID. Provide group details as a JSON object.

ParamTypeRequiredDefaultDescription
groupJsonstringyesJSON object with item group fields. Required: name. Optional: description, parent_id. Example: {"name": "Networking Equipment", "description": "Switches, routers, and access points"}

[HaloPSA] Create a new stock bin/warehouse location for storing inventory. Returns the created bin with its assigned ID. Provide bin details as a JSON object.

ParamTypeRequiredDefaultDescription
binJsonstringyesJSON object with stock bin fields. Required: name. Optional: address, description, site_id. Example: {"name": "Main Warehouse", "description": "Primary storage location"}

[HaloPSA] Delete an item group by numeric ID. This permanently removes the group. Items in the group are not deleted but become ungrouped. Use with caution — this cannot be undone. Requires a valid group ID — use halo_list_item_groups to find IDs.

ParamTypeRequiredDefaultDescription
groupIdintegeryesThe numeric HaloPSA item group ID to delete. Use halo_list_item_groups to find valid IDs.

[HaloPSA] Delete a stock bin/warehouse location by numeric ID. This permanently removes the bin. Stock items in the bin should be transferred first. Use with caution — this cannot be undone. Requires a valid bin ID — use halo_list_stock_bins to find IDs.

ParamTypeRequiredDefaultDescription
binIdintegeryesThe numeric HaloPSA stock bin ID to delete. Use halo_list_stock_bins to find valid IDs.

[HaloPSA] Retrieve a single product/item by numeric ID. Returns full item details including name, SKU, description, pricing, and stock levels. Requires a valid item ID — use halo_list_items to find IDs.

ParamTypeRequiredDefaultDescription
itemIdintegeryesThe numeric HaloPSA item ID. Use halo_list_items to find valid IDs.

[HaloPSA] Retrieve a single item group by numeric ID. Returns full group details including name, description, and linked items. Requires a valid group ID — use halo_list_item_groups to find IDs.

ParamTypeRequiredDefaultDescription
groupIdintegeryesThe numeric HaloPSA item group ID. Use halo_list_item_groups to find valid IDs.

[HaloPSA] Retrieve a single stock bin/warehouse location by numeric ID. Returns full bin details including name, address, and current stock summary. Requires a valid bin ID — use halo_list_stock_bins to find IDs.

ParamTypeRequiredDefaultDescription
binIdintegeryesThe numeric HaloPSA stock bin ID. Use halo_list_stock_bins to find valid IDs.

[HaloPSA] List item groups/categories used to organise products in the catalogue. Returns group IDs, names, and hierarchy. Use this to discover valid group IDs for filtering items or assigning new items to groups.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] List stock levels for items/products. Returns current stock quantities, locations, and reorder thresholds. Use this to check inventory levels or identify items that need restocking.

ParamTypeRequiredDefaultDescription
countintegerno50Number of results to return (default 50).
itemIdintegernonullFilter by item ID (optional). Narrows results to stock for a specific item.

[HaloPSA] List stock level history for items, showing how inventory quantities have changed over time. Optionally filter by item ID or specific stock record. Use this for inventory trend analysis and auditing stock adjustments.

ParamTypeRequiredDefaultDescription
itemIdintegernonullFilter by item ID (optional). Returns stock history for a specific item. Use halo_list_items to find valid IDs.
itemStockIdintegernonullFilter by item stock record ID (optional). Returns history for a specific stock entry.

[HaloPSA] List supplier links for items/products. Returns which suppliers provide which items, including supplier-specific pricing and SKUs. Use this to review procurement options or find alternative suppliers for items.

[HaloPSA] List products/items in the catalogue with optional search filter. Returns item summaries including ID, name, SKU, price, and category. Use this to browse the product catalogue or find items for quotations, invoices, or purchase orders.

ParamTypeRequiredDefaultDescription
countintegerno50Number of results to return (default 50).
searchstringnonullSearch items by name or description (optional).

[HaloPSA] List stock bin/warehouse locations where inventory is stored. Returns bin IDs, names, and location details. Use this to discover valid storage locations for stock management and transfers.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] List stock trace records showing the movement history of inventory items. Returns transfer records including source, destination, quantity, and timestamps. Use this for inventory auditing and tracking item movements between bins or locations.

Purchase Orders

ToolPlanAccessSummary
halo_confirm_receiptProDestructiveConfirm receipt of goods on a purchase order.
halo_create_purchase_orderProWriteCreate a new purchase order.
halo_get_purchase_orderFreeRead-onlyRetrieve a single purchase order by numeric ID.
halo_list_purchase_ordersFreeRead-onlyList purchase orders with optional filters.

[HaloPSA] Confirm receipt of goods on a purchase order. This updates stock levels and marks items as received. Provide receipt details as a JSON object — use halo_get_purchase_order to see current PO line items.

ParamTypeRequiredDefaultDescription
receiptJsonstringyesJSON object with receipt confirmation details. Required: id (purchase order ID). Optional: lines (array with received quantities). Example: {"id": 1, "lines": [{"id": 10, "quantity_received": 10}]}

[HaloPSA] Create a new purchase order. This creates a procurement document for ordering from suppliers. Returns the created PO with its assigned ID. Provide PO details as a JSON object — use halo_list_suppliers to find valid supplier IDs.

ParamTypeRequiredDefaultDescription
purchaseOrderJsonstringyesJSON object with purchase order fields. Required: supplier_id. Optional: lines (array of line items), notes, delivery_date. Example: {"supplier_id": 1, "lines": [{"item_id": 5, "quantity": 10, "unit_price": 25.00}]}

[HaloPSA] Retrieve a single purchase order by numeric ID. Returns full PO details including line items, supplier, amounts, and delivery status. Requires a valid PO ID — use halo_list_purchase_orders to find IDs.

ParamTypeRequiredDefaultDescription
purchaseOrderIdintegeryesThe numeric HaloPSA purchase order ID. Use halo_list_purchase_orders to find valid IDs.

[HaloPSA] List purchase orders with optional filters. Returns PO summaries including ID, supplier, status, total amount, and date. Use this to browse procurement history or find specific purchase orders.

ParamTypeRequiredDefaultDescription
awaitingApprovalbooleannonullFilter to POs awaiting approval (optional).
awaitingStockbooleannonullFilter to POs awaiting stock (optional).
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
closedbooleannonullFilter to closed POs (optional).
deliverToUsbooleannonullFilter to POs delivered to us (optional).
deliverToUserSalesOrderIdintegernonullFilter by the sales order ID a PO delivers to a user for (optional).
myApprovalsbooleannonullFilter to POs awaiting the current user's approval (optional).
openbooleannonullFilter to open POs (optional).
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).
poStatusstringnonullFilter by PO status (optional).
salesOrderIdintegernonullFilter by linked sales order ID (optional).
siteIdintegernonullFilter by site ID (optional).
supplierIdintegernonullFilter by supplier ID (optional). Use halo_list_suppliers to find valid IDs.
ticketIdintegernonullFilter by linked ticket ID (optional).
unsentbooleannonullFilter to unsent POs (optional).
userIdintegernonullFilter by user ID (optional).

Sales Orders

ToolPlanAccessSummary
halo_create_sales_orderProWriteCreate a NEW sales order.
halo_get_sales_orderFreeRead-onlyRetrieve a single sales order by numeric ID.
halo_list_sales_ordersFreeRead-onlyList sales orders with optional filters.
halo_update_sales_order_linesProDestructiveUpdate EXISTING line items on a sales order (change price, quantity or text on lines that already exist).

[HaloPSA] Create a NEW sales order. This creates a sales document for tracking client orders. HaloPSA answers 201 with the created order, including the id it assigned to the order and to each line. Use halo_list_clients to find valid client IDs and halo_list_items for product IDs. REQUIRED: 'client_id' AND 'user_id' (the ordering contact). Without 'user_id' HaloPSA refuses the create with 400 "Please select a valid User" (verified on a live instance, 2026-09-11). LINE FIELDS (verified the same day): 'name' is the line text, 'productcode' the item code, 'quantity' the quantity, 'price' the unit sell price that drives the line total, 'baseprice' the unit list price (stored separately, it does not drive the total), 'costprice' the unit cost, 'note' a free-text note. HaloPSA's order line has no 'unit_price' field and ignores that name entirely. Example: {"client_id": 12, "user_id": 26, "lines": [{"name": "Widget", "productcode": "W-1", "quantity": 2, "price": 499.99, "costprice": 300.00}]}. This tool CREATES only: a payload carrying an existing order 'id' is refused, because HaloPSA's POST api/SalesOrder is an upsert whose 'lines' REPLACE the order's whole line collection, so every line the payload left out would be deleted. To change existing lines use halo_update_sales_order_lines, which reads the order first and re-sends its complete line set.

ParamTypeRequiredDefaultDescription
salesOrderJsonstringyesJSON object with sales order fields. Required: client_id AND user_id (HaloPSA answers 400 "Please select a valid User" without user_id). Optional header fields: site_id, delivery_date, notes. Optional 'lines' array; each line uses Halo field names: name (the line text), productcode, quantity, price (unit sell price, drives the line total), baseprice (unit list price), costprice (unit cost), note. There is no 'unit_price' field on a Halo order line. Example: {"client_id": 12, "user_id": 26, "lines": [{"name": "Widget", "productcode": "W-1", "quantity": 2, "price": 499.99, "costprice": 300.00}]}

[HaloPSA] Retrieve a single sales order by numeric ID. Returns full order details including line items, client, amounts, and fulfilment status. Requires a valid sales order ID, use halo_list_sales_orders to find IDs.

ParamTypeRequiredDefaultDescription
salesOrderIdintegeryesThe numeric HaloPSA sales order ID. Use halo_list_sales_orders to find valid IDs.

[HaloPSA] List sales orders with optional filters. Returns order summaries including ID, client, status, total amount, and date. Use this to browse sales history or find specific orders.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
closedbooleannonullFilter to closed sales orders (optional).
needsConsigningbooleannonullFilter to sales orders that need consigning (optional).
needsInvoicingbooleannonullFilter to sales orders that need invoicing (optional).
needsOrderingbooleannonullFilter to sales orders that need ordering (optional).
openbooleannonullFilter to open sales orders (optional).
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).
quoteStatusstringnonullFilter by quote status (optional).
readyForInvoicingbooleannonullFilter to sales orders ready for invoicing (optional).
siteIdintegernonullFilter by site ID (optional).
ticketIdintegernonullFilter by linked ticket ID (optional).
topLevelIdintegernonullFilter by top-level (parent) ID (optional).
userIdintegernonullFilter by user ID (optional).

[HaloPSA] Update EXISTING line items on a sales order (change price, quantity or text on lines that already exist). Provide each line's own 'id' plus the parent 'salesorder_id'. Use halo_get_sales_order to read the current line ids and their fields first. HOW THE WRITE WORKS: HaloPSA has no working sales-order line endpoint (POST api/SalesOrder/updatelines answers 405), so the tool reads the order, overlays your changes onto the CURRENT lines by line id, and re-sends the COMPLETE line set through the order upsert (POST api/SalesOrder). Lines you do not mention are carried through unchanged, and every field of every line is re-sent exactly as it was read. That is not defensive: a body carrying only PARTIAL line objects answers 200 and echoes your edit back while persisting NOTHING (verified live 2026-09-11), and a line left out of the body is DELETED. It then reads the order back and returns that read-back, failing loudly when a line that existed before the write is gone, when an edited field does not hold the submitted value on the read-back, or when a header field the tool never sent has moved. HaloPSA's 200 and its echoed body are never proof of persistence on this endpoint. FIELDS THAT PERSIST (all verified live 2026-09-11): 'quantity' (a real, writable line field), 'price' (the unit SELL price, and the one that drives the line total: quantity x price), 'baseprice' (the unit list price, stored separately and NOT used for the total), 'costprice' (the unit cost), 'name' (the line text), 'productcode', and 'note'. There is no 'unit_price' field on a Halo order line. An earlier version of this description claimed the order line has no 'quantity' field; that was wrong and is corrected here. Because the tool reads then writes, two concurrent edits to the same order end in last-writer-wins, and on this endpoint that is sharper than usual: the write REPLACES the order's whole line collection with the set read a moment earlier, so a line ADDED by someone else between this tool's read and its write is DELETED, not merged. HaloPSA offers no optimistic-concurrency token on this endpoint, so avoid running this against an order somebody is editing in HaloPSA at the same time. A batch must name exactly ONE sales order: lines that disagree about 'salesorder_id', or omit it, are refused before anything is sent, because one write targets one order's line set.

ParamTypeRequiredDefaultDescription
linesJsonstringyesThe lines to change. Documented form: a flat JSON array of line objects that each carry the line's own 'id', the parent 'salesorder_id', and the fields to change. Example: [{"id": 55, "salesorder_id": 12, "price": 199.99, "quantity": 2}]. The object form {"id": <salesOrderId>, "lines": [{"id": 55, "price": 199.99}]} is also accepted, and stamps the parent link onto every line for you. Editable fields: quantity, price (unit sell price, drives the line total), baseprice (unit list price), costprice (unit cost), name (the line text), productcode, note. There is no 'unit_price' field on a Halo order line. Every line must carry a positive line id from halo_get_sales_order; this tool edits existing lines only.

Finance

ToolPlanAccessSummary
halo_create_expenseProWriteCreate a new expense record.
halo_create_prepay_entryProWriteCreate a new prepay/retainer entry for a client.
halo_create_recurring_invoiceProWriteCreate a new recurring invoice template for automated billing.
halo_create_software_licenceProWriteCreate a new software licence record.
halo_get_recurring_invoiceFreeRead-onlyRetrieve a single recurring invoice by numeric ID.
halo_get_software_licenceFreeRead-onlyRetrieve a single software licence by numeric ID — including a Microsoft CSP / M365 subscription, which Halo stores AS a Software Licence record.
halo_list_billing_linesFreeRead-onlyList billing line items with optional filters by client, contract, and date range.
halo_list_expensesFreeRead-onlyList expense records with optional filters.
halo_list_prepay_historyFreeRead-onlyList client prepay/retainer history with optional filters.
halo_list_recurring_invoicesFreeRead-onlyList recurring invoice templates with optional client filter.
halo_list_software_licencesFreeRead-onlyList software licence records — INCLUDING Microsoft CSP / M365 subscriptions: Halo's Microsoft CSP integration writes each subscription AS a Software Licence record carrying the Microsoft tenant…
halo_process_recurring_invoicesProDestructiveTrigger invoice generation from one or more recurring invoice templates by their IDs.
halo_update_recurring_invoice_linesProWriteAmend the line items on an existing recurring invoice template — change quantities, prices, descriptions, deactivate a line, or add new ones.
halo_update_recurring_invoice_scheduleProDestructiveChange the schedule of a recurring invoice template: the start date that drives when the next invoice is generated.

[HaloPSA] Create a new expense record. This submits an expense for tracking and approval. Returns the created expense with its assigned ID. Provide expense details as a JSON object.

ParamTypeRequiredDefaultDescription
expenseJsonstringyesJSON object with expense fields. Required: amount, description. Optional: agent_id, client_id, date, category, receipt (base64). Example: {"amount": 45.50, "description": "Parking for on-site visit", "client_id": 1, "category": "Travel"}

[HaloPSA] Create a new prepay/retainer entry for a client. This adds or deducts from a client's prepaid balance. Returns the created entry. Provide entry details as a JSON object — use halo_list_clients to find valid client IDs.

ParamTypeRequiredDefaultDescription
entryJsonstringyesJSON object with prepay entry fields. Required: client_id, amount. Optional: type ('credit' or 'debit'), notes, date. Example: {"client_id": 1, "amount": 500.00, "type": "credit", "notes": "Monthly retainer top-up"}

[HaloPSA] Create a new recurring invoice template for automated billing. Requires client and item details in JSON. Use halo_list_clients to find clientId, halo_list_items for available products. WARNING: Creates a live billing template that will generate invoices when processed. Note: HaloPSA ignores a start date sent with the recurring invoice itself. It is accepted and echoed back but not stored. Set the schedule with halo_update_recurring_invoice_schedule after you create the template.

ParamTypeRequiredDefaultDescription
invoiceJsonstringyesJSON object with recurring invoice fields. Required: client_id. Optional: schedule, line_items, notes. Do NOT send a start date here. HaloPSA does not store it on this route. Example: {"client_id": 1, "schedule": "monthly", "line_items": [{"description": "Managed Services", "amount": 500}]}

[HaloPSA] Create a new software licence record. This tracks a software licence for asset and compliance management. Returns the created licence with its assigned ID. Provide licence details as a JSON object.

ParamTypeRequiredDefaultDescription
licenceJsonstringyesJSON object with software licence fields. Required: name. Optional: key, client_id, expiry_date, seats, vendor, notes. Example: {"name": "Microsoft 365 Business Premium", "key": "XXXXX-XXXXX", "client_id": 1, "seats": 25, "expiry_date": "2027-01-01"}

[HaloPSA] Retrieve a single recurring invoice by numeric ID. Returns full recurring invoice details including schedule, line items, next invoice date, and client. Requires a valid recurring invoice ID — use halo_list_recurring_invoices to find IDs, or call this tool directly with a known recurring invoice ID.

ParamTypeRequiredDefaultDescription
recurringInvoiceIdintegeryesThe numeric HaloPSA recurring invoice ID.

[HaloPSA] Retrieve a single software licence by numeric ID — including a Microsoft CSP / M365 subscription, which Halo stores AS a Software Licence record. Returns full detail: software/offer name, SKU, Microsoft tenant, purchased seats, seats in use, seats available, term length, billing cycle, auto-renew, start/end/renewal dates, status, monthly cost/price, and assigned client/assets. Requires a valid licence ID — use halo_list_software_licences to find IDs.

ParamTypeRequiredDefaultDescription
licenceIdintegeryesThe numeric HaloPSA software licence ID. Use halo_list_software_licences to find valid IDs.

[HaloPSA] List billing line items with optional filters by client, contract, and date range. Returns individual billing entries showing what has been billed. Use halo_list_invoices for invoice-level data, or halo_revenue_leakage_scan for automated billing gap analysis.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients to find valid IDs.
contractIdintegernonullFilter by contract ID (optional). Use halo_list_contracts to find valid IDs.
endDatestringnonullEnd date filter in yyyy-MM-dd format (optional). Shows entries up to this date.
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).
startDatestringnonullStart date filter in yyyy-MM-dd format (optional). Shows entries from this date forward.

[HaloPSA] List expense records with optional filters. Returns expense entries including ID, amount, date, category, agent, and client. Use this to review submitted expenses for approval or reporting.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID (optional). Use halo_list_agents to find valid IDs.
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDatestringnonullFilter by end date in yyyy-MM-dd format (optional). Returns expenses on or before this date.
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).
startDatestringnonullFilter by start date in yyyy-MM-dd format (optional). Returns expenses on or after this date.

[HaloPSA] List client prepay/retainer history with optional filters. Returns prepay transactions including date, amount, balance, and type (credit/debit). Use this to review a client's prepaid hours or credit balance history.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients to find valid IDs.
contractIdintegernonullFilter by contract ID (optional). Use halo_list_contracts to find valid IDs.
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] List recurring invoice templates with optional client filter. Returns template details including billing frequency, line items, and next invoice date. Use halo_get_recurring_invoice for full details of a specific template.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients to find valid IDs.
countintegerno50Number of results to return (default 50).

[HaloPSA] List software licence records — INCLUDING Microsoft CSP / M365 subscriptions: Halo's Microsoft CSP integration writes each subscription AS a Software Licence record carrying the Microsoft tenant (tenant_id/tenant_name), offer and SKU, purchased seats (count), seats in use (licences_in_use/consumedcount), seats available (licences_available), term length (term_duration), billing cycle, auto-renew, start/end dates, status, and monthly cost/price. This is the reliable way to answer 'what M365 subscriptions does this client have' — it reads Halo's own records and does not depend on the live Partner Center connection that halo_get_microsoft_csp_data requires. Filter by client for a per-customer subscription list, by Microsoft tenant GUID (tenantId) to pivot from a tenant, or set includeInactive to include cancelled/expired subscriptions (absent by default).

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients to find valid IDs.
includeInactivebooleannonullInclude inactive (cancelled/expired) licences (optional). Default false — WITHOUT this, cancelled CSP subscriptions are silently absent, so set it for any complete-history question. Maps to includeinactive.
licenceTypeintegernonullFilter by licence type (optional). Maps to licence_type.
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).
searchstringnonullFree-text search across licence records (optional).
siteIdintegernonullFilter by site ID (optional). Maps to site_id.
tenantIdstringnonullFilter by Microsoft tenant ID GUID (optional) — pivots straight from a Microsoft tenant to its subscriptions. Maps to tenant_id.

[HaloPSA] Trigger invoice generation from one or more recurring invoice templates by their IDs. The API accepts an array of recurring invoice IDs to process. Use halo_list_recurring_invoices to find template IDs. WARNING: This creates real, irreversible client-facing invoices. As a safety guard you MUST pass the SAME set of IDs in the confirmation parameter to authorize processing.

ParamTypeRequiredDefaultDescription
confirmationstringyesConfirmation guard. Must contain the SAME recurring invoice IDs as recurringInvoiceIds (re-type the same comma-separated IDs) to authorize this irreversible invoice generation. Example: "1,2,3"
recurringInvoiceIdsstringyesComma-separated list of recurring invoice IDs to process. Use halo_list_recurring_invoices to find valid IDs. Example: "1,2,3"

[HaloPSA] Amend the line items on an existing recurring invoice template — change quantities, prices, descriptions, deactivate a line, or add new ones. Identify the template by ihid: the INTERNAL id from halo_get_recurring_invoice, which is a NEGATIVE integer (e.g. -27), NOT the on-screen display number. Supply only the lines you want to change, each with its own line 'id' plus the fields to change; use id 0 to add a line. This tool reads the template first and merges your changes over the current line state, so every column you do not mention (including required ones Halo will not accept as blank) is preserved, and lines you do not mention are left alone. Changes take effect on the next invoice generation cycle. Note: because the tool reads then writes, two edits to the same template at the same time end in last-writer-wins — re-read with halo_get_recurring_invoice afterwards if something else may be editing it.

ParamTypeRequiredDefaultDescription
linesJsonstringyesJSON object with the parent template id and the lines to change. Required: ihid (the INTERNAL negative id of the template from halo_get_recurring_invoice — the on-screen display number will NOT work), lines (array of line objects, each carrying its own line 'id' plus only the fields to change; use id 0 to add a new line). Example: {"ihid": -27, "lines": [{"id": 5, "unit_price": 600}]}. Every id you name must already exist on the template — an unknown id is rejected rather than silently added as a duplicate. The legacy key recurring_invoice_id is still accepted in place of ihid and is translated for you. Advanced: you may instead pass a flat JSON array of line objects that each already include ihid.

[HaloPSA] Change the schedule of a recurring invoice template: the start date that drives when the next invoice is generated. HaloPSA stores a recurring invoice's schedule as a separate schedule record, so this tool writes that record and then reads it back to confirm the new start date was stored. IMPORTANT: HaloPSA IGNORES the start date on the recurring invoice itself. The tool halo_create_recurring_invoice accepts a start date and echoes it back, but HaloPSA does not store it, so this tool is the way to move a recurring invoice's start date. Identify the template by invoiceId, the INTERNAL recurring invoice id, which is a NEGATIVE integer (for example -1899), and by scheduleId, the schedule_id value that halo_get_recurring_invoice returns for that template. HaloPSA recalculates the next creation date itself. WARNING: Changing the start date changes when a live client is billed. The optional endDate, period and daysPlus arguments are sent as given but have NOT been verified against a live HaloPSA instance. Re-read the template after you use them.

ParamTypeRequiredDefaultDescription
daysPlusintegernonullOptional, UNVERIFIED against a live HaloPSA instance: HaloPSA's daysplus value for the schedule. Must be 0 or greater.
endDatestringnonullOptional, UNVERIFIED against a live HaloPSA instance: the schedule end as an ISO-8601 date-time.
invoiceIdintegeryesThe INTERNAL id of the recurring invoice template, from halo_list_recurring_invoices or halo_get_recurring_invoice. Recurring invoice ids are NEGATIVE integers (for example -1899). The on-screen display number will NOT work.
periodintegernonullOptional, UNVERIFIED against a live HaloPSA instance: the schedule period, as HaloPSA's integer period value. Must be greater than 0.
scheduleIdintegeryesThe schedule_id of that template, from halo_get_recurring_invoice. Required and must be greater than 0. It identifies the existing schedule record, so that the write updates it and does not create a second one.
startDatestringyesThe new schedule start as an ISO-8601 date-time with an offset, for example 2026-10-01T11:00:00Z. A value without an offset is read as UTC.

Change Management

ToolPlanAccessSummary
halo_create_cab_meetingProWriteCreate a new CAB meeting.
halo_create_releaseProWriteCreate a new release for change management.
halo_get_cab_meetingFreeRead-onlyRetrieve a single CAB meeting by numeric ID.
halo_get_releaseFreeRead-onlyRetrieve a single release by numeric ID.
halo_list_cab_meetingsFreeRead-onlyList Change Advisory Board (CAB) meetings with pagination.
halo_list_cab_membersFreeRead-onlyList all Change Advisory Board members.
halo_list_cab_rolesFreeRead-onlyList all CAB roles.
halo_list_release_typesFreeRead-onlyList all available release types.
halo_list_releasesFreeRead-onlyList releases with optional filters.

[HaloPSA] Create a new CAB meeting. This schedules a Change Advisory Board meeting for change management review. Returns the created meeting with its assigned ID. Provide meeting details as a JSON object.

ParamTypeRequiredDefaultDescription
cabMeetingJsonstringyesJSON object with CAB meeting fields. Optional: date, agenda, attendees. Example: {"date": "2026-04-01T10:00:00", "agenda": "Review Q2 change requests"}

[HaloPSA] Create a new release for change management. This creates a release record to group and track related changes. Returns the created release with its assigned ID. Provide release details as a JSON object.

ParamTypeRequiredDefaultDescription
releaseJsonstringyesJSON object with release fields. Required: name. Optional: description, release_type_id, scheduled_start, scheduled_end. Example: {"name": "March Security Patches", "release_type_id": 1, "scheduled_start": "2026-04-01"}

[HaloPSA] Retrieve a single CAB meeting by numeric ID. Returns full meeting details including agenda, attendees, decisions, and linked change requests. Requires a valid CAB meeting ID — use halo_list_cab_meetings to find IDs.

ParamTypeRequiredDefaultDescription
cabMeetingIdintegeryesThe numeric HaloPSA CAB meeting ID. Use halo_list_cab_meetings to find valid IDs.

[HaloPSA] Retrieve a single release by numeric ID. Returns full release details including linked changes, schedule, and deployment plan. Requires a valid release ID — use halo_list_releases to find IDs.

ParamTypeRequiredDefaultDescription
releaseIdintegeryesThe numeric HaloPSA release ID. Use halo_list_releases to find valid IDs.

[HaloPSA] List Change Advisory Board (CAB) meetings with pagination. Returns meeting summaries including ID, date, attendees, and agenda items. Use this to review upcoming or past CAB meetings for change management governance.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] List all Change Advisory Board members. Returns member details including name, role, and contact information. Use this to see who participates in change management decisions.

[HaloPSA] List all CAB roles. Returns role definitions used in Change Advisory Board membership. Use this to understand available roles when managing CAB membership.

[HaloPSA] List all available release types. Returns type IDs and names used when creating or categorizing releases. Use this to discover valid release type IDs before calling halo_create_release.

[HaloPSA] List releases with optional filters. Returns release summaries including ID, name, status, and scheduled dates. Use this to browse planned, in-progress, or completed releases for change management tracking.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).
statusstringnonullFilter by release status (optional).

Service Catalog

ToolPlanAccessSummary
halo_create_service_statusProWriteCreate a new service status entry.
halo_get_serviceFreeRead-onlyRetrieve a single service by numeric ID.
halo_list_service_categoriesFreeRead-onlyList all service categories.
halo_list_service_statusesFreeRead-onlyList service status history with optional service filter.
halo_list_servicesFreeRead-onlyList services in the service catalogue with optional filters.

[HaloPSA] Create a new service status entry. This records the current operational state of a service (e.g., operational, degraded, outage). Returns the created status entry. Provide status details as a JSON object — use halo_list_services to find valid service IDs.

ParamTypeRequiredDefaultDescription
statusJsonstringyesJSON object with service status fields. Required: service_id, status. Optional: notes, start_date. Example: {"service_id": 1, "status": "degraded", "notes": "Intermittent connectivity issues"}

[HaloPSA] Retrieve a single service by numeric ID. Returns full service details including description, SLA, dependencies, and current operational status. Requires a valid service ID — use halo_list_services to find IDs.

ParamTypeRequiredDefaultDescription
serviceIdintegeryesThe numeric HaloPSA service ID. Use halo_list_services to find valid IDs.

[HaloPSA] List all service categories. Returns category IDs and names used to organize the service catalogue. Use this to discover valid categories for filtering services with halo_list_services.

[HaloPSA] List service status history with optional service filter. Returns status entries including timestamp, status value, and notes. Use this to review the operational history of a service or check current service health.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).
serviceIdintegernonullFilter by service ID (optional). Narrows results to statuses for a specific service. Use halo_list_services to find valid IDs.

[HaloPSA] List services in the service catalogue with optional filters. Returns service summaries including ID, name, category, and current status. Use this to browse available services or find specific services for status tracking.

ParamTypeRequiredDefaultDescription
assetIdsstringnonullFilter by asset IDs, comma-separated (optional).
countintegerno50Number of results to return (default 50).
includeChildServicesbooleannonullInclude child services in the results (optional).
includeStatusInfobooleannonullInclude status info in the results (optional).
monitoredOnlybooleannonullReturn only monitored services (optional).
relatedServicesOnlybooleannonullReturn only related services (optional).
searchstringnonullFree-text search term to filter services (optional).
serviceCategoryIdintegernonullFilter by service category ID (use halo_list_service_categories to find IDs).
serviceCategoryIdsstringnonullFilter by service category IDs, comma-separated (optional).
serviceStatusIdsstringnonullFilter by service status IDs, comma-separated (optional).
subscribedOnlybooleannonullReturn only subscribed services (optional).
ticketIdintegernonullFilter by linked ticket ID (optional).
userIdintegernonullFilter by user ID (optional).

Scheduling

ToolPlanAccessSummary
halo_create_appointmentProWriteCreate a new appointment/calendar entry.
halo_create_todoProWriteCreate a new to-do checklist item on a ticket.
halo_get_appointmentFreeRead-onlyRetrieve a single appointment by numeric ID.
halo_get_timesheet_event_mineFreeRead-onlyRetrieve the current timesheet event for the authenticated agent.
halo_list_appointmentsFreeRead-onlyList appointments/calendar entries with optional filters.
halo_list_available_slotsFreeRead-onlyList available time slots for scheduling appointments.
halo_list_booking_typesFreeRead-onlyList all available booking/appointment types.
halo_list_holidaysFreeRead-onlyList configured holidays.
halo_list_schedulesFreeRead-onlyList agent schedules with optional filters.
halo_list_timesheet_eventsFreeRead-onlyList timesheet events (clock-in/clock-out, breaks, and time tracking events).
halo_list_todosFreeRead-onlyList to-do checklist items, optionally filtered by ticket ID.
halo_list_workdaysFreeRead-onlyList workday definitions (business hours configuration).
halo_update_todoProWriteUpdate an existing to-do checklist item — correct its wording ('text'), mark it complete ('done': true), or re-order it ('sequence').

[HaloPSA] Create a new appointment/calendar entry. This schedules a meeting or on-site visit visible in agent calendars. Returns the created appointment with its assigned ID. Provide appointment details as a JSON object.

ParamTypeRequiredDefaultDescription
appointmentJsonstringyesJSON object with appointment fields. Required: subject, start_date. Optional: end_date, agent_id, client_id, ticket_id, location, notes. Example: {"subject": "On-site server maintenance", "start_date": "2026-04-01T09:00:00", "end_date": "2026-04-01T11:00:00", "agent_id": 5}

[HaloPSA] Create a new to-do checklist item on a ticket. Provide the item as JSON. The checklist wording goes in the 'text' field (HaloPSA's FaultToDo has no 'summary' field). Link it to a ticket with 'ticket_id'. Use halo_list_todos to see existing items and halo_update_todo to edit or complete them.

ParamTypeRequiredDefaultDescription
todoJsonstringyesJSON object for the to-do item. Required: text (the checklist wording). Optional: ticket_id, done (bool), start_date, end_date (yyyy-MM-dd), sequence, group_id. Example: {"text": "Follow up with client", "ticket_id": 42}

[HaloPSA] Retrieve a single appointment by numeric ID. Returns full appointment details including subject, description, date/time, duration, location, and linked ticket. Requires a valid appointment ID — use halo_list_appointments to find IDs.

ParamTypeRequiredDefaultDescription
appointmentIdintegeryesThe numeric HaloPSA appointment ID. Use halo_list_appointments to find valid IDs.

[HaloPSA] Retrieve the current timesheet event for the authenticated agent. Returns the active clock-in status, current session duration, and break information for the agent associated with the API credentials. Use this to check if the current agent is clocked in and their active work session. No parameters required.

[HaloPSA] List appointments/calendar entries with optional filters. Returns appointment summaries including ID, subject, date/time, duration, and assigned agent. Use this to view schedules or find specific appointments.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID (optional). Use halo_list_agents to find valid IDs.
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients to find valid IDs.
endDatestringnonullFilter by end date in yyyy-MM-dd format (optional). Returns appointments on or before this date.
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).
startDatestringnonullFilter by start date in yyyy-MM-dd format (optional). Returns appointments on or after this date.

[HaloPSA] List available time slots for scheduling appointments. Returns open slots with date, time, and duration. Use this to find free time when booking appointments — filter by agent or date range.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID (optional). Shows availability for a specific agent. Use halo_list_agents to find valid IDs.
endDatestringnonullFilter end date in yyyy-MM-dd format (optional). Shows slots up to this date.
startDatestringnonullFilter start date in yyyy-MM-dd format (optional). Shows slots from this date forward.

[HaloPSA] List all available booking/appointment types. Returns type IDs and names for scheduling purposes. Use this to discover valid booking types when creating appointments or checking availability.

[HaloPSA] List configured holidays. Returns holiday dates and names that are excluded from SLA calculations and business hours. Use this to understand non-working days that affect scheduling and SLA targets.

[HaloPSA] List agent schedules with optional filters. Returns schedule entries including agent, date, shift times, and schedule type. Use this to review team capacity and coverage.

ParamTypeRequiredDefaultDescription
primaryIdintegernonullFilter by primary entity ID (e.g., agent ID). Use halo_list_agents to find valid IDs.

[HaloPSA] List timesheet events (clock-in/clock-out, breaks, and time tracking events). Returns event records including timestamps, agent, event type, and duration. Use this to review time tracking data, monitor attendance, or audit work hours.

ParamTypeRequiredDefaultDescription
filtersJsonstringnonullFilter parameters as a JSON object of name/value pairs (optional). Values may be strings, numbers, or booleans. Example: {"agent_id": 5, "start_date": "2026-04-01"} to filter events for a specific agent from a date.

[HaloPSA] List to-do checklist items, optionally filtered by ticket ID. Returns task items with completion status. Use with halo_get_ticket to see full ticket context. Follow up with halo_create_todo to add new checklist items.

ParamTypeRequiredDefaultDescription
ticketIdintegernonullFilter by ticket ID (optional). Shows to-do items linked to a specific ticket.

[HaloPSA] List workday definitions (business hours configuration). Returns working hour schedules including start/end times and days of the week. Use this to understand business hours for SLA calculations and scheduling.

[HaloPSA] Update an existing to-do checklist item — correct its wording ('text'), mark it complete ('done': true), or re-order it ('sequence'). Requires the item's 'id' (from halo_list_todos). NOTE: HaloPSA's API exposes no per-item to-do delete endpoint, so to retire a bad/placeholder checklist row, mark it done here or overwrite its 'text'.

ParamTypeRequiredDefaultDescription
todoJsonstringyesJSON object with the to-do fields to change. Required: id (the existing item's id from halo_list_todos). Common fields: text, done (bool), ticket_id, start_date, end_date, sequence, group_id. Example: {"id": 17, "done": true} or {"id": 17, "text": "Revised step"}

CRM

ToolPlanAccessSummary
halo_create_crm_noteProWriteCreate a new CRM note against a client or supplier.
halo_create_opportunityProWriteCreate a new CRM opportunity/deal.
halo_get_opportunityFreeRead-onlyRetrieve a single CRM opportunity by numeric ID.
halo_list_contact_groupsFreeRead-onlyList all contact groups.
halo_list_crm_notesFreeRead-onlyList CRM notes with optional client or supplier filter.
halo_list_feedbackFreeRead-onlyReturns ALL customer satisfaction (CSAT) feedback records from Halo (raw passthrough).
halo_list_opportunitiesFreeRead-onlyList CRM opportunities/deals with optional filters.
halo_list_ticket_approvalsFreeRead-onlyList pending ticket approvals with pagination.
halo_manage_contact_group_membersProWriteAdd or remove contacts from a contact group.
halo_process_approvalProWriteProcess one or more pending approval requests by their IDs.
halo_update_opportunityProWriteUpdate an existing CRM opportunity's fields such as stage, value, probability, or expected close date.

[HaloPSA] Create a new CRM note against a client or supplier. This records an interaction or observation visible to CRM users. Returns the created note. Provide note details as a JSON object.

ParamTypeRequiredDefaultDescription
noteJsonstringyesJSON object with CRM note fields. Required: note (text content) and either client_id or supplier_id. Optional: date, subject. Example: {"client_id": 1, "note": "Discussed renewal terms, client interested in upgrading to managed services", "subject": "QBR Follow-up"}

[HaloPSA] Create a new CRM opportunity/deal. This creates a sales pipeline entry visible to CRM users. Returns the created opportunity with its assigned ID. Provide opportunity details as a JSON object — use halo_list_clients to find valid client IDs.

ParamTypeRequiredDefaultDescription
opportunityJsonstringyesJSON object with opportunity fields. Required: name, client_id. Optional: value, probability, expected_close_date, stage, notes. Example: {"name": "Managed Services Contract", "client_id": 1, "value": 24000, "probability": 75}

[HaloPSA] Retrieve a single CRM opportunity by numeric ID. Returns full opportunity details including value, stage, probability, expected close date, and linked contacts. Requires a valid opportunity ID — use halo_list_opportunities to find IDs.

ParamTypeRequiredDefaultDescription
opportunityIdintegeryesThe numeric HaloPSA opportunity ID. Use halo_list_opportunities to find valid IDs.

[HaloPSA] List all contact groups. Returns group IDs, names, and member counts. Use this to discover contact groups for targeted communications or managing group membership with halo_manage_contact_group_members.

[HaloPSA] List CRM notes with optional client or supplier filter. Returns note entries including date, author, and content. Use this to review interaction history with a client or supplier for relationship management.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid client IDs.
countintegerno50Number of results to return (default 50, max 200).
supplierIdintegernonullFilter by supplier ID (optional). Use halo_list_suppliers to find valid supplier IDs.

[HaloPSA] Returns ALL customer satisfaction (CSAT) feedback records from Halo (raw passthrough). Each record includes score (1-5), comment, date, and ticket_id. NOTE: Halo's /api/Feedback endpoint accepts NO server-side filters or pagination — it always returns the complete feedback dataset, which can be large. To scope by client, agent, or date range, or for aggregated scores/rating distribution, use halo_csat_report instead (it applies those filters client-side). Feedback records carry ticket_id but no client_id, so client scope is resolved by cross-referencing tickets.

[HaloPSA] List CRM opportunities/deals with optional filters. Returns opportunity summaries including ID, name, client, value, stage, and probability. Use this to review the sales pipeline or find specific deals.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent/owner ID (optional). Use halo_list_agents to find valid IDs.
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDatestringnonullEnd date filter in yyyy-MM-dd format (optional). Shows opportunities up to this date.
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).
startDatestringnonullStart date filter in yyyy-MM-dd format (optional). Shows opportunities from this date forward.

[HaloPSA] List pending ticket approvals with pagination. Returns approval requests including ticket ID, requester, approver, status, and reason. Use this to review outstanding approval requests that may be blocking ticket progression.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] Add or remove contacts from a contact group. This modifies group membership for targeted communications. Provide the operation details as a JSON object — use halo_list_contact_groups to find group IDs and halo_search_users for contact IDs.

ParamTypeRequiredDefaultDescription
contactJsonstringyesJSON object with group membership operation. Required: group_id, user_id. Optional: action ('add' or 'remove', defaults to 'add'). Example: {"group_id": 1, "user_id": 42, "action": "add"}

[HaloPSA] Process one or more pending approval requests by their IDs. The API accepts an array of approval IDs to process. Use halo_list_ticket_approvals to find pending approval IDs first. WARNING: This action is irreversible — approvals cannot be undone once processed.

ParamTypeRequiredDefaultDescription
approvalIdsstringyesComma-separated list of approval IDs to process. Use halo_list_ticket_approvals to find valid IDs. Example: "1,2,3"

[HaloPSA] Update an existing CRM opportunity's fields such as stage, value, probability, or expected close date. This modifies CRM pipeline data. Provide updates as a JSON object — use halo_get_opportunity to see current field values.

ParamTypeRequiredDefaultDescription
opportunityJsonstringyesJSON object with fields to update. Must include id (opportunity ID). Example: {"id": 1, "stage": "Negotiation", "probability": 90, "value": 30000}

Audit

ToolPlanAccessSummary
halo_get_audit_entryFreeRead-onlyRetrieve a single audit log entry by numeric ID.
halo_get_fieldFreeRead-onlyRetrieve a single CUSTOM FIELD definition by numeric ID (GET /FieldInfo/).
halo_list_audit_entriesFreeRead-onlyList audit log entries with pagination.

[HaloPSA] Retrieve a single audit log entry by numeric ID. Returns full audit details including before/after values, user, timestamp, and affected entity. Requires a valid audit entry ID — use halo_list_audit_entries to find IDs.

ParamTypeRequiredDefaultDescription
auditEntryIdintegeryesThe numeric HaloPSA audit entry ID. Use halo_list_audit_entries to find valid IDs.

[HaloPSA] Retrieve a single CUSTOM FIELD definition by numeric ID (GET /FieldInfo/). Returns full field metadata including name, label, data type, validation rules, and dropdown options. Requires a valid custom field ID — use halo_list_custom_fields to find IDs. The record returned is the shape halo_create_field_info accepts, and its ID is the one halo_delete_field_info takes; it is NOT an asset-type field id (halo_create_field / halo_delete_field read a different HaloPSA resource with its own id space).

ParamTypeRequiredDefaultDescription
fieldIdintegeryesThe numeric HaloPSA custom field ID. Use halo_list_custom_fields to find valid IDs.

[HaloPSA] List audit log entries with pagination. Returns audit records including timestamp, user, action performed, and affected entity. Use this to review system changes, track who modified records, or investigate security events.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).

Attachments

ToolPlanAccessSummary
halo_delete_attachmentProDestructiveDelete an attachment by numeric ID.
halo_delete_attachment_documentProDestructivePermanently delete an attachment's document by ID.
halo_delete_attachment_imageProDestructivePermanently delete an attachment's image by its image ID (a GUID).
halo_download_attachmentFreeRead-onlyDownload an attachment's binary content by ID.
halo_download_attachment_documentFreeRead-onlyDownload an attachment's document representation by ID.
halo_download_attachment_imageFreeRead-onlyDownload an attachment's image representation by its image ID (a GUID).
halo_get_attachmentFreeRead-onlyRetrieve attachment metadata by numeric ID.
halo_list_attachmentsFreeRead-onlyList attachments with optional action/ticket filter and pagination.
halo_upload_attachmentProWriteUpload a file attachment to a ticket (and optionally a specific action/note).

[HaloPSA] Delete an attachment by numeric ID. This permanently removes the file — it cannot be undone. Use this only when an attachment was uploaded in error. Requires a valid attachment ID — use halo_list_attachments to find IDs.

ParamTypeRequiredDefaultDescription
attachmentIdintegeryesThe numeric HaloPSA attachment ID to delete. Use halo_list_attachments to find valid IDs.

[HaloPSA] Permanently delete an attachment's document by ID. This cannot be undone. Use halo_list_attachments to find IDs.

ParamTypeRequiredDefaultDescription
attachmentIdintegeryesThe numeric HaloPSA attachment ID to delete.

[HaloPSA] Permanently delete an attachment's image by its image ID (a GUID). This cannot be undone.

ParamTypeRequiredDefaultDescription
imageIdstringyesThe HaloPSA attachment image ID (a GUID/UUID string) to delete.

[HaloPSA] Download an attachment's binary content by ID. Returns a short-lived read-only SAS URL to the file in blob storage (content type, suggested filename, size, expiry). Use halo_list_attachments to find IDs.

ParamTypeRequiredDefaultDescription
attachmentIdintegeryesThe numeric HaloPSA attachment ID. Use halo_list_attachments to find valid IDs.

[HaloPSA] Download an attachment's document representation by ID. Returns a short-lived read-only SAS URL to the file in blob storage. Use halo_list_attachments to find IDs.

ParamTypeRequiredDefaultDescription
attachmentIdintegeryesThe numeric HaloPSA attachment ID. Use halo_list_attachments to find valid IDs.

[HaloPSA] Download an attachment's image representation by its image ID (a GUID). Returns a short-lived read-only SAS URL to the image in blob storage.

ParamTypeRequiredDefaultDescription
imageIdstringyesThe HaloPSA attachment image ID (a GUID/UUID string).

[HaloPSA] Retrieve attachment metadata by numeric ID. Returns attachment details including filename, size, MIME type, and download information. Requires a valid attachment ID — use halo_list_attachments to find IDs.

ParamTypeRequiredDefaultDescription
attachmentIdintegeryesThe numeric HaloPSA attachment ID. Use halo_list_attachments to find valid IDs.

[HaloPSA] List attachments with optional action/ticket filter and pagination. Returns attachment metadata including ID, filename, size, and upload date. Use this to discover files attached to tickets or actions.

ParamTypeRequiredDefaultDescription
actionIdintegernonullFilter by action ID (optional). Requires ticketId. Narrows results to attachments on a specific ticket action.
filetypestringnonullFilter by file type / extension (optional), e.g. "pdf".
idOnlybooleannonullReturn only attachment IDs rather than full metadata (optional).
oneAttachmentIdintegernonullReturn a single attachment by its attachment ID (optional, integer).
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).
portalintegernonullFilter to portal-visible attachments (optional, integer).
ticketIdintegernonullFilter by ticket ID (optional). Narrows results to attachments on a specific ticket.
typeintegernonullFilter by attachment type (optional, integer).
uniqueIdintegernonullReturn a single attachment by its unique ID (optional, integer).

[HaloPSA] Upload a file attachment to a ticket (and optionally a specific action/note). Provide the file as base64-encoded content; StackJack builds the correct Halo data-URI from the filename extension. Returns the created attachment metadata. Use halo_list_tickets/halo_get_ticket to find the ticket ID.

ParamTypeRequiredDefaultDescription
actionIdintegernonullOptional action ID to attach the file to a specific ticket action/note rather than the ticket as a whole.
fileBase64stringyesBase64-encoded file content. May be raw base64 or a full data-URI; StackJack normalizes it.
filenamestringyesFile name including extension (e.g. "screenshot.png"). The extension determines the content type.
notestringnonullOptional note/description shown against the attachment.
showForUsersbooleannonullOptional: whether the attachment is visible to end users on the self-service portal.
ticketIdintegeryesTicket ID to attach the file to. Use halo_list_tickets to find IDs.

Discovery & Config

ToolPlanAccessSummary
halo_global_searchFreeRead-onlySearch across all entity types (tickets, clients, users, assets, knowledge base, etc.) in a single query.
halo_list_custom_fieldsFreeRead-onlyList custom field definitions (GET /FieldInfo), optionally filtered by ticket type.
halo_list_request_typesFreeRead-onlyList all request types (service catalogue items) configured in the system.
halo_list_status_detailsFreeRead-onlyList detailed status configurations including workflow transitions, colour codes, and associated ticket types.
halo_list_ticket_areasFreeRead-onlyList all ticket areas (sub-categories or functional groupings) configured in the system.
halo_list_ticket_type_detailsFreeRead-onlyList detailed ticket type configurations including workflow rules, field mappings, SLA associations, and default values.
halo_list_ticket_type_fieldsFreeRead-onlyList fields configured for a ticket type, including custom fields and their validation rules.
halo_system_infoFreeRead-onlyRetrieve HaloPSA instance information including version, licence details, and system configuration.

[HaloPSA] Search across all entity types (tickets, clients, users, assets, knowledge base, etc.) in a single query. Returns results grouped by entity type with IDs and summaries. Use this as a starting point when you are unsure which entity type contains the data, then follow up with entity-specific get tools for full details.

ParamTypeRequiredDefaultDescription
countPerEntityintegerno5Maximum number of results to return per entity type (default 5, max 50). Increase for more comprehensive searches across each entity type.
querystringyesSearch query string. Matches across all entity types including tickets, clients, users, assets, and knowledge base articles.

[HaloPSA] List custom field definitions (GET /FieldInfo), optionally filtered by ticket type. Returns field IDs, names, labels, data types, and lookup references. Use this to discover custom fields before populating them on tickets, assets, or other entities. Follow up with halo_get_lookup_values to see allowed values for lookup-type fields. These records are also the template for halo_create_field_info — copy an existing field's "type"/"usage"/"inputtype" when composing a new one. The IDs returned belong to the FieldInfo resource: pass them to halo_get_field / halo_delete_field_info, never to halo_delete_field (asset-type fields, separate id space).

ParamTypeRequiredDefaultDescription
typeIdintegernonullFilter by ticket type ID (optional). Returns custom fields associated with a specific ticket type. Use halo_list_ticket_types to find valid IDs.

[HaloPSA] List all request types (service catalogue items) configured in the system. Returns request type IDs, names, and descriptions. Use this to discover the service catalogue offerings available for ticket creation or to understand how tickets are categorized by service type.

[HaloPSA] List detailed status configurations including workflow transitions, colour codes, and associated ticket types. Returns richer information than halo_list_statuses. Use this when you need to understand status workflow rules, which statuses can transition to which, or status-specific configurations.

ParamTypeRequiredDefaultDescription
filtersJsonstringnonullFilter parameters as a JSON object of name/value pairs (optional). Values may be strings, numbers, or booleans. Example: {"tickettype_id": 1} to filter statuses for a specific ticket type — use halo_list_ticket_types to find valid IDs.

[HaloPSA] List all ticket areas (sub-categories or functional groupings) configured in the system. Returns area IDs and names used for ticket classification. Use this to discover valid area values before creating tickets with halo_create_ticket or to understand ticket routing rules.

[HaloPSA] List detailed ticket type configurations including workflow rules, field mappings, SLA associations, and default values. Returns richer information than halo_list_ticket_types. Use this when you need to understand the full configuration of ticket types, not just their names and IDs.

ParamTypeRequiredDefaultDescription
filtersJsonstringnonullFilter parameters as a JSON object of name/value pairs (optional). Values may be strings, numbers, or booleans. Example: {"showinactive": true} to include inactive ticket types, or {"client_id": 42} to limit the list to one client. There is no filter for a single ticket type here — to read one ticket type's fields use halo_list_ticket_type_fields.
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] List fields configured for a ticket type, including custom fields and their validation rules. Returns field names, types, lookup IDs, and required/optional status. Use this to discover which fields are available before creating or updating tickets. Optionally filter by ticket type ID — use halo_list_ticket_types to find valid type IDs.

ParamTypeRequiredDefaultDescription
typeIdintegernonullFilter by ticket type ID (optional). Returns fields for a specific ticket type. Use halo_list_ticket_types to find valid IDs. Omit to see all fields.

[HaloPSA] Retrieve HaloPSA instance information including version, licence details, and system configuration. Returns instance metadata useful for troubleshooting API compatibility or understanding the tenant's Halo environment. No parameters required.

Analytics

ToolPlanAccessSummary
halo_client_ticket_trendsFreeRead-onlyTrack ticket volume trends for a specific client over multiple periods to identify patterns.
halo_open_ticket_summaryFreeRead-onlySnapshot of all open tickets grouped by status, priority, team, and ticket type with counts.
halo_priority_distributionFreeRead-onlyBreakdown of open tickets by priority level including average age per priority.
halo_queue_performance_comparisonFreeRead-onlyCompare team/queue performance KPIs: average resolution time, resolution rate, open ticket count, and SLA compliance.
halo_stale_ticket_reportFreeRead-onlyIdentify open tickets with no activity beyond a threshold, indicating potential neglect or bottlenecks.
halo_team_workload_balanceFreeRead-onlyView open ticket distribution across agents to identify workload imbalances.
halo_ticket_categorization_analysisFreeRead-onlyAnalyze ticket distribution across categories, types, or priorities for a date range.
halo_ticket_resolution_analyticsFreeRead-onlyAnalyze ticket resolution times and rates for a date range, grouped by a chosen dimension.
halo_ticket_source_analysisFreeRead-onlyAnalyze how tickets are being created (email, portal, phone, API, etc.) for a date range.
halo_unassigned_ticket_reportFreeRead-onlyList all open tickets that have no agent assigned, grouped by priority and client.

[HaloPSA] Snapshot of all open tickets grouped by status, priority, team, and ticket type with counts. Provides a quick overview of the current open ticket landscape. Use this for daily standups or management dashboards.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.

[HaloPSA] Breakdown of open tickets by priority level including average age per priority. Use this to understand the severity mix of the current open ticket backlog and identify if high-priority tickets are aging.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.

[HaloPSA] Compare team/queue performance KPIs: average resolution time, resolution rate, open ticket count, and SLA compliance. Use this to identify which teams are performing well and which need attention. Note: Makes 2 API calls internally.

ParamTypeRequiredDefaultDescription
daysintegerno30Number of days to analyze (default 30). Longer periods give more stable metrics.

[HaloPSA] Identify open tickets with no activity beyond a threshold, indicating potential neglect or bottlenecks. Returns stale tickets sorted by days inactive. Use this for daily triage to catch tickets that need attention.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID (optional). Use halo_list_agents to find valid IDs.
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
staleDaysThresholdintegerno7Number of days without activity to consider a ticket stale (default 7). Lower for urgent triage, higher for periodic reviews.

[HaloPSA] View open ticket distribution across agents to identify workload imbalances. Returns per-agent open ticket counts and relative workload percentages. Use this for capacity planning or to rebalance ticket assignments. Note: Makes 2 API calls internally.

ParamTypeRequiredDefaultDescription
teamIdintegernonullFilter by team ID (optional). Use halo_list_teams to find valid team IDs. Omit to see all agents.

[HaloPSA] Analyze ticket distribution across categories, types, or priorities for a date range. Returns ticket counts and percentages per group. Use this to understand what types of issues are most common for a client or across the helpdesk.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDatestringyesEnd date in yyyy-MM-dd format. Defines the end of the analysis period.
groupBystringno"category"Dimension to group results by. Must be 'type', 'priority', 'category', 'team', 'client', or 'agent'. Defaults to 'category'.
startDatestringyesStart date in yyyy-MM-dd format. Defines the beginning of the analysis period.

[HaloPSA] Analyze ticket resolution times and rates for a date range, grouped by a chosen dimension. Returns average resolution time, resolution rate, and ticket counts per group. Use this to identify which categories, teams, or priorities resolve fastest.

ParamTypeRequiredDefaultDescription
endDatestringyesEnd date in yyyy-MM-dd format. Defines the end of the analysis period.
groupBystringno"type"Dimension to group results by. Must be 'type', 'priority', 'category', 'team', 'client', or 'agent'. Defaults to 'type'.
startDatestringyesStart date in yyyy-MM-dd format. Defines the beginning of the analysis period.

[HaloPSA] Analyze how tickets are being created (email, portal, phone, API, etc.) for a date range. Returns counts and percentages per creation channel. Use this to understand which intake channels generate the most work.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDatestringnonullEnd date in yyyy-MM-dd format (optional). Defaults to today.
startDatestringnonullStart date in yyyy-MM-dd format (optional). Defaults to 30 days ago.

[HaloPSA] List all open tickets that have no agent assigned, grouped by priority and client. Use this to identify tickets that need immediate dispatch attention.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.

Advanced Analytics

ToolPlanAccessSummary
halo_asset_ticket_correlationProRead-onlyFind assets with recurring ticket activity above a threshold.
halo_asset_warranty_expiry_reportProRead-onlyIdentify assets with warranties expiring within a specified number of days.
halo_contract_utilization_trackerProRead-onlyTrack Pre-Pay contract balance utilization (used vs prepaid allowance) from the contract prepay balance fields.
halo_csat_reportProRead-onlyCustomer satisfaction report with ratings breakdown by agent.
halo_sla_breach_alertsProRead-onlyIdentify open tickets at risk of breaching SLA or already breached.
halo_sla_compliance_dashboardProRead-onlySLA compliance metrics including response and resolution rates for a date range.
halo_technician_utilization_reportProRead-onlyAnalyze technician time utilization including billable vs total hours and utilization rate.
halo_ticket_aging_reportProRead-onlyOpen tickets grouped by age buckets (today, 1-3 days, 3-7 days, 1-2 weeks, 2-4 weeks, 1-3 months, 3+ months) with counts and details per bucket.
halo_timesheet_summaryProRead-onlySummarize timesheet data by agent and client for a date range.

[HaloPSA] Find assets with recurring ticket activity above a threshold. Returns problem assets ranked by ticket count with associated ticket details. Use this to identify hardware or software that generates excessive support burden and may need replacement.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDatestringnonullEnd date in yyyy-MM-dd format (optional). Omit for data through today.
minTicketsintegerno3Minimum ticket count to include an asset (default 3). Lower to catch emerging problems, raise to focus on worst offenders.
startDatestringnonullStart date in yyyy-MM-dd format (optional). Omit for all-time data.

[HaloPSA] Identify assets with warranties expiring within a specified number of days. Returns assets sorted by expiry date with client and warranty details. Use this for proactive warranty renewal planning and hardware refresh cycles.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
daysAheadintegerno90Number of days ahead to check for warranty expiry (default 90). Use 30 for urgent renewals, 180 for long-term planning.

[HaloPSA] Track Pre-Pay contract balance utilization (used vs prepaid allowance) from the contract prepay balance fields. Returns per-contract used, remaining, and utilization percent — in hours, or in currency when the contract is amount-based (contract_prepayasamount). Non-Pre-Pay contracts (e.g. Fixed price) carry no prepaid balance and are returned with supported=false plus an explicit reason, never silent zeros. Remaining may be NEGATIVE when consumption exceeds the prepaid allowance. Contract names come from the ref/refextra fields. Use halo_list_contracts first to find valid contract IDs. Note: Makes 1 + N API calls where N is the number of matched contracts.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
contractIdintegernonullFilter by contract ID (optional). Use halo_list_contracts to find valid IDs.

[HaloPSA] Customer satisfaction report with ratings breakdown by agent. Returns CSAT scores, response counts, per-agent performance, and the RAW score->count distribution. Use this for quality assurance reviews or to identify agents who may need coaching. IMPORTANT: HaloPSA's Feedback `score` has no direction metadata in the API, so scaleOrder controls interpretation — set it to "lowerIsBetter" if your survey uses 1 = most satisfied (e.g. the default smiley survey where 1 = happy face); default "higherIsBetter" treats 5 as most satisfied. The output always echoes scaleOrder + scaleOrderSource and scoreDistribution so direction is verifiable.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID (optional). Use halo_list_agents to find valid IDs.
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDatestringnonullEnd date in yyyy-MM-dd format (optional). Omit for data through today.
scaleOrderstringnonullCSAT scale direction: "higherIsBetter" (default; 5 = most satisfied) or "lowerIsBetter" (1 = most satisfied, e.g. HaloPSA's default smiley survey). Omit to use the default; the response reports which was used via scaleOrderSource.
startDatestringnonullStart date in yyyy-MM-dd format (optional). Omit for all-time data.

[HaloPSA] Identify open tickets at risk of breaching SLA or already breached. Returns tickets sorted by urgency with time remaining until breach. Use this for proactive SLA management to prevent breaches before they happen.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
warningMinutesintegerno30Warning threshold in minutes before SLA breach (default 30). Tickets within this window appear as at-risk. Increase for earlier warnings.

[HaloPSA] SLA compliance metrics including response and resolution rates for a date range. Returns compliance percentages, breach counts, and near-miss counts. Use this for management reporting or to assess service quality. Use halo_list_slas first to understand SLA definitions.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDatestringnonullEnd date in yyyy-MM-dd format (optional). Omit for data through today.
startDatestringnonullStart date in yyyy-MM-dd format (optional). Omit for all-time data.

[HaloPSA] Analyze technician time utilization including billable vs total hours and utilization rate. Returns per-agent metrics compared to a target utilization percentage. Use this for capacity planning and identifying under- or over-utilized technicians. Note: Makes 2 API calls internally.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID (optional). Use halo_list_agents to find valid IDs. Omit to see all agents.
endDatestringnonullEnd date in yyyy-MM-dd format (optional). Omit for data through today.
startDatestringnonullStart date in yyyy-MM-dd format (optional). Omit for all-time data.
targetUtilizationintegerno70Target utilization percentage (default 70). Agents below this threshold are flagged as under-utilized.

[HaloPSA] Open tickets grouped by age buckets (today, 1-3 days, 3-7 days, 1-2 weeks, 2-4 weeks, 1-3 months, 3+ months) with counts and details per bucket. Use this to visualize how long tickets have been open and identify chronic backlog. Filterable by client or team.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
teamIdintegernonullFilter by team ID (optional). Use halo_list_teams to find valid team IDs.

[HaloPSA] Summarize timesheet data by agent and client for a date range. Returns total hours, billable hours, and per-agent/client breakdowns. Use this for payroll review, billing reconciliation, or management reporting.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID (optional). Use halo_list_agents to find valid IDs.
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDatestringyesEnd date in yyyy-MM-dd format. Defines the end of the timesheet period.
startDatestringyesStart date in yyyy-MM-dd format. Defines the beginning of the timesheet period.

Intelligence

ToolPlanAccessSummary
halo_after_hours_impact_reportProRead-onlyAnalyze ticket volume outside business hours (before 8am, after 6pm, and weekends).
halo_bulk_ticket_updateProDestructiveUpdate multiple tickets at once with the same field changes, with per-ticket read-back verification.
halo_client_360_viewProRead-onlyComprehensive 360-degree view of a client combining contacts, open tickets, assets, contracts, invoices, CSAT scores, and sites into a single consolidated report.
halo_client_offboarding_auditProRead-onlyAudit a client for offboarding readiness.
halo_client_onboarding_checklistProRead-onlyGenerate an onboarding completeness checklist for a client.
halo_client_risk_assessmentProRead-onlyAssess client churn risk based on ticket volume, SLA breaches, CSAT ratings, and resolution efficiency.
halo_compliance_snapshotProRead-onlyGenerate a compliance snapshot covering SLA compliance rates, ticket closure rates, response time compliance, and time documentation completeness.
halo_contract_renewal_pipelineProRead-onlyView upcoming contract renewals sorted by expiry date.
halo_daily_operations_briefingProRead-onlyGenerate a daily operations briefing with new tickets since yesterday, SLA warnings, stale tickets, unassigned tickets, and priority breakdown.
halo_dispatch_optimizerProRead-onlyAnalyze agent availability and workload to optimize ticket dispatch.
halo_draft_kb_from_ticketProRead-onlyGenerate a draft KB article from a resolved ticket.
halo_first_contact_resolutionProRead-onlyMeasure first-contact resolution (FCR) rate — tickets resolved within 24 hours of creation.
halo_kb_gap_analysisProRead-onlyIdentify knowledge base gaps by comparing ticket categories to existing KB article coverage.
halo_project_budget_statusProRead-onlyCheck project budget status by comparing budgeted hours/cost against actual time logged on project tickets.
halo_recurring_issue_detectorProRead-onlyDetect recurring issues by grouping tickets by client and category, then filtering for groups that meet a minimum occurrence threshold.
halo_revenue_leakage_scanProRead-onlyScan for revenue leakage by identifying billable-but-unbilled time entries, zero-value entries, and comparing billed revenue to logged hours.
halo_scope_creep_detectorProRead-onlyDetect scope creep by comparing ticket categories against contract scope definitions.
halo_ticket_backlog_analysisProRead-onlyAnalyze the open ticket backlog with age distribution buckets, per-agent breakdown, priority distribution, and top clients by backlog size.
halo_ticket_handoff_analysisProRead-onlyAnalyze ticket handoffs (reassignments, transfers, escalations) to identify tickets that bounce between agents.
halo_ticket_similarity_searchProRead-onlyFind tickets similar to a given ticket based on summary text matching.
halo_ticket_triage_assistProRead-onlyAI-assisted triage for a ticket.
halo_time_entry_anomaly_scanProRead-onlyScan timesheet entries for anomalies including zero-minute entries, very long entries (>12 hours), very short entries (<5 minutes), and per-agent daily hour statistics.
halo_unbilled_time_reportProRead-onlyFind billable time entries that haven't been invoiced yet.

[HaloPSA] Analyze ticket volume outside business hours (before 8am, after 6pm, and weekends). Returns after-hours percentage, breakdown by day of week, client, and priority. Use this to evaluate after-hours support demand and staffing needs.

ParamTypeRequiredDefaultDescription
endDatestringnonullEnd date in yyyy-MM-dd format (optional). Omit for data through today.
startDatestringnonullStart date in yyyy-MM-dd format (optional). Omit for last 30 days.

[HaloPSA] Update multiple tickets at once with the same field changes, with per-ticket read-back verification. Supports dry-run mode (default) to preview changes before applying. In apply mode every ticket is re-read after the writes and counted as successful only when at least one submitted field was comparable on read-back and none was reverted, overridden or unconfirmed; a value Halo normalized AT WRITE TIME (its own save response already echoed the stored value, and the pre-write read succeeded — without the earlier value a normalization and a write Halo ignored look identical, so that ticket is 'unconfirmed' instead) still counts and is named per ticket in transformedFields, and submitted keys that could not be compared (for example custom fields, or keys the read-back list does not carry) are named in unverifiedFields — a write Halo accepts and then overrides (for example a ticket type's Status After Tech Update rule, an allowed-status list, or a status freeze) is reported for that ticket as 'reverted', with the submitted, pre-write and post-write values. A ticket whose stored value is neither what was submitted nor the pre-write value, without a save-response echo proving Halo normalized it, is reported as 'unconfirmed' and does NOT count as a success: the field is named in concurrentlyOverriddenFields when Halo's save response echoed the submitted value (the write landed and something changed it afterwards) or in ambiguousFields when no echo settles it — which includes an echo matching the STORED value on a ticket whose pre-write read failed, because nothing there separates a normalization from a write Halo ignored — re-read the ticket rather than re-sending automatically. For status changes on workflow-governed ticket types use halo_bulk_change_ticket_status instead. WARNING: Set dryRun to false to actually apply changes. Note: apply mode makes one API call per ticket plus two list calls for verification; dry-run mode makes one list call (plus one priority lookup when needed).

ParamTypeRequiredDefaultDescription
dryRunbooleannotrueWhen true (default), previews changes without applying them. Set to false to actually update the tickets.
fieldsJsonstringyesJSON object with fields to update on all tickets. Example: {"agent_id": 5, "priority_id": 3}. Field names must match HaloPSA API field names.
ticketIdsstringyesComma-separated list of ticket IDs to update (e.g. '101,102,103').

[HaloPSA] Comprehensive 360-degree view of a client combining contacts, open tickets, assets, contracts, invoices, CSAT scores, and sites into a single consolidated report. The satisfactionSummary echoes scaleOrder + scoreDistribution. Use this for account reviews, executive briefings, or to quickly understand a client's full relationship with your MSP. Note: HaloPSA's Feedback score has no direction metadata — set scaleOrder="lowerIsBetter" if your survey uses 1 = most satisfied, else CSAT is inverted. Makes up to 8 API calls internally and may take several seconds.

ParamTypeRequiredDefaultDescription
clientIdintegeryesClient ID to generate 360 view for. Use halo_list_clients or halo_search_clients to find valid IDs.
scaleOrderstringnonullCSAT scale direction: "higherIsBetter" (default; 5 = most satisfied) or "lowerIsBetter" (1 = most satisfied, e.g. HaloPSA's default smiley survey). Controls how the satisfactionSummary is interpreted; the response reports which was used via scaleOrderSource.

[HaloPSA] Audit a client for offboarding readiness. Checks for open tickets, active assets, running contracts, active users, and recurring invoices. Returns item-by-item status with required actions. Use this before offboarding a client to ensure nothing is missed. Note: Makes 6 API calls internally and may take several seconds.

ParamTypeRequiredDefaultDescription
clientIdintegeryesClient ID to audit for offboarding. Use halo_list_clients or halo_search_clients to find valid IDs.

[HaloPSA] Generate an onboarding completeness checklist for a client. Checks whether sites, contacts, assets, and contracts are configured. Returns completion percentage and item-by-item status. Use this during client onboarding to ensure all setup steps are complete. Note: Makes 5 API calls internally.

ParamTypeRequiredDefaultDescription
clientIdintegeryesClient ID to check onboarding status for. Use halo_list_clients or halo_search_clients to find valid IDs.

[HaloPSA] Assess client churn risk based on ticket volume, SLA breaches, CSAT ratings, and resolution efficiency. Returns a risk score (0-100), risk level, breakdown by risk factor (the CSAT factor echoes scaleOrder + scoreDistribution), and actionable recommendations. Use this to proactively identify at-risk clients before they escalate or leave. Note: HaloPSA's Feedback score has no direction metadata — set scaleOrder="lowerIsBetter" if your survey uses 1 = most satisfied, else CSAT risk is inverted. totalHoursLogged is scoped to this client via the client-attributed timesheet-event feed (display only; it does not feed the risk score). Makes 4 API calls internally.

ParamTypeRequiredDefaultDescription
clientIdintegeryesClient ID to assess risk for. Use halo_list_clients or halo_search_clients to find valid IDs.
lookbackMonthsintegerno3Number of months to look back for risk assessment (default 3). Longer periods provide more stable assessments.
scaleOrderstringnonullCSAT scale direction: "higherIsBetter" (default; 5 = most satisfied) or "lowerIsBetter" (1 = most satisfied, e.g. HaloPSA's default smiley survey). Controls how the CSAT churn-risk factor is interpreted; the response reports which was used via scaleOrderSource.

[HaloPSA] Generate a compliance snapshot covering SLA compliance rates, ticket closure rates, response time compliance, and time documentation completeness. Use this for compliance audits, management reporting, or to prepare for client governance reviews. When clientId is supplied the timeDocumentation block is scoped to that client via the client-attributed timesheet-event feed. Note: Makes 2 API calls internally (3 when a clientId is supplied).

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDatestringnonullEnd date in yyyy-MM-dd format (optional). Omit for data through today.
startDatestringnonullStart date in yyyy-MM-dd format (optional). Omit for last 3 months.

[HaloPSA] View upcoming contract renewals sorted by expiry date. Returns contracts expiring within the specified window with urgency ratings (Urgent/Soon/Upcoming). Use this for proactive contract management and renewal planning.

ParamTypeRequiredDefaultDescription
daysAheadintegerno90Number of days ahead to look for expiring contracts (default 90). Use 30 for urgent focus, 180 for long-term planning.

[HaloPSA] Generate a daily operations briefing with new tickets since yesterday, SLA warnings, stale tickets, unassigned tickets, and priority breakdown. Includes high-priority open ticket details. Use this as a morning standup report or shift handover summary. Note: Makes 2 API calls internally.

[HaloPSA] Analyze agent availability and workload to optimize ticket dispatch. Returns agents ranked by availability with open ticket counts, high-priority load, recent hours logged, and a capacity score. Also lists unassigned tickets needing dispatch. Use this before assigning tickets to find the best available agent. Note: Makes 3 API calls internally.

ParamTypeRequiredDefaultDescription
teamIdintegernonullFilter by team ID (optional). Use halo_list_teams to find valid team IDs.

[HaloPSA] Generate a draft KB article from a resolved ticket. Extracts the problem description, resolution notes from actions, and relevant metadata into a structured KB draft. Use this to quickly create KB articles from successfully resolved tickets, reducing documentation effort. Note: Makes 2 API calls internally.

ParamTypeRequiredDefaultDescription
ticketIdintegeryesThe ticket ID to generate a KB draft from. Best used with resolved tickets that have detailed action notes. Use halo_search_tickets or halo_list_tickets to find valid IDs.

[HaloPSA] Measure first-contact resolution (FCR) rate — tickets resolved within 24 hours of creation. Returns overall FCR rate and per-agent FCR breakdown. Use this to evaluate support quality and identify agents who excel at resolving issues quickly.

ParamTypeRequiredDefaultDescription
endDatestringnonullEnd date in yyyy-MM-dd format (optional). Omit for data through today.
startDatestringnonullStart date in yyyy-MM-dd format (optional). Omit for last 30 days.

[HaloPSA] Identify knowledge base gaps by comparing ticket categories to existing KB article coverage. Returns categories with high ticket volume but no matching KB articles, along with sample tickets. Use this to prioritize KB article creation for maximum support impact. Note: Makes 2 API calls internally.

ParamTypeRequiredDefaultDescription
lookbackDaysintegerno90Number of days to look back for ticket data (default 90).

[HaloPSA] Check project budget status by comparing budgeted hours/cost against actual time logged on project tickets. Returns utilization percentage, remaining hours, and per-ticket time breakdown. Use this for project financial oversight and to catch projects at risk of going over budget. Note: Makes 3 API calls internally.

ParamTypeRequiredDefaultDescription
projectIdintegeryesProject ID to check budget for. Use halo_list_projects to find valid IDs.

[HaloPSA] Detect recurring issues by grouping tickets by client and category, then filtering for groups that meet a minimum occurrence threshold. Returns affected ticket lists for each recurring issue pattern. Use this to identify systemic problems that need root-cause fixes rather than repeated break-fix.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
lookbackDaysintegerno90Number of days to look back (default 90).
minOccurrencesintegerno3Minimum number of occurrences to flag as recurring (default 3). Lower to catch emerging patterns, raise to focus on chronic issues.

[HaloPSA] Scan for revenue leakage by identifying billable-but-unbilled time entries, zero-value entries, and comparing billed revenue to logged hours. Returns leakage percentage and breakdown by client. Use this for monthly financial hygiene checks. IMPORTANT SCOPE LIMIT: HaloPSA exposes chargeable_hours only on its per-AGENT-DAY timesheet rollup, which cannot be attributed to a single client. Call this WITHOUT clientId for the org-wide leakage scan. If you supply clientId, unbilledBillableHours and leakagePercent are returned as null with a scopeNote, while totalHoursLogged, zeroValueEntries and totalBilledRevenue ARE correctly client-scoped — the tool will never report a tenant-wide leakage figure under a clientId you supplied. Makes 2 API calls internally (3 when a clientId is supplied).

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
lookbackDaysintegerno90Number of days to look back (default 90).

[HaloPSA] Detect scope creep by comparing ticket categories against contract scope definitions. Identifies tickets linked to contracts that fall outside the contracted service categories. Use this to find work being done beyond contract scope that should be billed separately or renegotiated. Note: Makes 2 + N API calls where N is the number of contracts. May be slow for tenants with many contracts.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
lookbackDaysintegerno90Number of days to look back (default 90).

[HaloPSA] Analyze the open ticket backlog with age distribution buckets, per-agent breakdown, priority distribution, and top clients by backlog size. Returns average ticket age and identifies bottlenecks. Use this for capacity planning and backlog reduction initiatives.

[HaloPSA] Analyze ticket handoffs (reassignments, transfers, escalations) to identify tickets that bounce between agents. Returns handoff counts per ticket and agent, multi-handoff ticket counts, and average handoffs. Use this to improve routing and reduce unnecessary ticket bouncing.

ParamTypeRequiredDefaultDescription
endDatestringnonullEnd date in yyyy-MM-dd format (optional). Omit for data through today.
startDatestringnonullStart date in yyyy-MM-dd format (optional). Omit for last 30 days.

[HaloPSA] Find tickets similar to a given ticket based on summary text matching. Returns matching tickets with metadata about whether they share the same category or client, and how many were successfully resolved. Use this to find precedents for how similar issues were handled. Note: Makes 2 API calls internally.

ParamTypeRequiredDefaultDescription
maxResultsintegerno10Maximum number of similar tickets to return (default 10).
ticketIdintegeryesThe ticket ID to find similar tickets for. Use halo_search_tickets or halo_list_tickets to find valid IDs.

[HaloPSA] AI-assisted triage for a ticket. Fetches the ticket, searches for similar resolved tickets, searches the KB for relevant articles, and analyzes team workload to suggest the best agent for assignment. Use this when a new ticket arrives to get instant triage recommendations. Note: Makes up to 5 API calls internally and may take several seconds.

ParamTypeRequiredDefaultDescription
ticketIdintegeryesThe ticket ID to triage. Use halo_search_tickets or halo_list_tickets to find valid IDs.

[HaloPSA] Scan timesheet entries for anomalies including zero-minute entries, very long entries (>12 hours), very short entries (<5 minutes), and per-agent daily hour statistics. Use this to catch data quality issues and ensure accurate time tracking.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID (optional). Use halo_list_agents to find valid IDs.
lookbackDaysintegerno30Number of days to look back (default 30).

[HaloPSA] Find billable time entries that haven't been invoiced yet. Returns unbilled hours broken down by client and agent. Use this to catch revenue that should be billed but hasn't been, ensuring no billable work is lost. IMPORTANT SCOPE LIMIT: HaloPSA exposes chargeable_hours only on its per-AGENT-DAY timesheet rollup, which cannot be attributed to a single client or contract. Call this WITHOUT clientId/contractId for the org-wide unbilled report. If you supply clientId or contractId, the unbilled figures are returned as null with a scopeNote and you get correctly-scoped hoursLogged instead — the tool will never report tenant-wide unbilled totals under a filter you supplied. Makes 1 API call internally (2 when a clientId is supplied).

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
contractIdintegernonullFilter by contract ID (optional). Use halo_list_contracts to find valid IDs.

Premium Analytics

ToolPlanAccessSummary
halo_agreement_profitability_analysisProRead-onlyAnalyze a single agreement's profitability by comparing revenue to hours worked.
halo_client_health_scoreProRead-onlyComposite client health score based on ticket volume, resolution rates, SLA compliance, and CSAT.
halo_effective_hourly_rateProRead-onlyCalculate effective hourly rate across all billable work compared to a target rate.
halo_escalation_analysisProRead-onlyAnalyze escalation patterns including frequency by ticket type and agent.
halo_monthly_recurring_revenueProRead-onlyCalculate current MRR from recurring invoices with optional client breakdown and historical trend.
halo_qbr_data_packProRead-onlyComprehensive quarterly business review data pack for a client.
halo_unprofitable_agreements_reportProRead-onlyIdentify agreements with negative profitability over a period.

[HaloPSA] Analyze a single agreement's profitability by comparing revenue to hours worked. For Pre-Pay contracts, revenue is the sum of prepaid top-up invoice amounts (contract_prepayhistory) and hours are the prepaid hours consumed (contract_prepayused); effective hourly rate = revenue / hours (not applicable for amount-based Pre-Pay). For non-Pre-Pay contracts, revenue comes from billing lines and hours from contract-tagged time entries. Returns revenue, hours worked, effective hourly rate, and the contract name (from ref/refextra). Use halo_list_contracts first to find a valid contract ID. Note: Makes up to 3 API calls internally (1 for Pre-Pay).

ParamTypeRequiredDefaultDescription
contractIdintegeryesContract ID to analyze. Use halo_list_contracts to find valid IDs.
endDatestringnonullEnd date in yyyy-MM-dd format (optional). Omit for data through today.
startDatestringnonullStart date in yyyy-MM-dd format (optional). Omit for all-time data.

[HaloPSA] Composite client health score based on ticket volume, resolution rates, SLA compliance, and CSAT. Returns an overall score (0-100) with per-dimension breakdowns (the CSAT component echoes scaleOrder + scoreDistribution). Use this to identify at-risk clients or prepare for QBR meetings. Use halo_list_clients first to find valid client IDs. Note: HaloPSA's Feedback score has no direction metadata — set scaleOrder="lowerIsBetter" if your survey uses 1 = most satisfied, else CSAT is inverted. totalHoursLogged is scoped to this client via the client-attributed timesheet-event feed. Makes 4 API calls internally.

ParamTypeRequiredDefaultDescription
clientIdintegeryesClient ID to analyze. Use halo_list_clients or halo_search_clients to find valid IDs.
lookbackMonthsintegerno3Number of months to look back for health scoring (default 3). Longer periods provide more stable scores.
scaleOrderstringnonullCSAT scale direction: "higherIsBetter" (default; 5 = most satisfied) or "lowerIsBetter" (1 = most satisfied, e.g. HaloPSA's default smiley survey). Controls how the CSAT health component is interpreted; the response reports which was used via scaleOrderSource.

[HaloPSA] Calculate effective hourly rate across all billable work compared to a target rate. Returns actual rate, variance from target, and per-client breakdowns. Use this to assess overall service delivery profitability. Note: Makes 2 API calls internally.

ParamTypeRequiredDefaultDescription
endDatestringnonullEnd date in yyyy-MM-dd format (optional, defaults to today). Defines the end of the analysis period.
startDatestringnonullStart date in yyyy-MM-dd format (optional, defaults to 3 months ago). Defines the beginning of the analysis period.
targetRatenumberno150Target hourly rate for comparison (default 150.00). The report shows variance against this target.

[HaloPSA] Analyze escalation patterns including frequency by ticket type and agent. Returns escalation counts, rates, and common escalation paths. Use this to identify systemic issues causing escalations and improve first-contact resolution.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID (optional). Use halo_list_agents to find valid IDs.
endDatestringyesEnd date in yyyy-MM-dd format. Defines the end of the analysis period.
startDatestringyesStart date in yyyy-MM-dd format. Defines the beginning of the analysis period.
teamIdintegernonullFilter by team ID (optional). Use halo_list_teams to find valid team IDs.

[HaloPSA] Calculate current MRR from recurring invoices with optional client breakdown and historical trend. Returns total MRR, per-client MRR breakdown, and month-over-month trend. Use this for financial reporting and revenue forecasting. Note: Makes up to 7 API calls by default (1 + trendMonths). May take several seconds.

ParamTypeRequiredDefaultDescription
includeBreakdownbooleannotrueWhen true, includes per-client MRR breakdown (default true). Set to false for a summary-only view.
trendMonthsintegerno6Number of months for revenue trend history (default 6). More months show longer-term revenue trajectory.

[HaloPSA] Comprehensive quarterly business review data pack for a client. Returns ticket volume, resolution metrics, time logged, CSAT scores, SLA compliance, and asset summary for the quarter. The csatSummary echoes scaleOrder + scoreDistribution. Use this to prepare QBR presentations. Use halo_list_clients first to find valid client IDs. Note: HaloPSA's Feedback score has no direction metadata — set scaleOrder="lowerIsBetter" if your survey uses 1 = most satisfied, else CSAT is inverted. Makes 4 API calls internally and may take several seconds.

ParamTypeRequiredDefaultDescription
clientIdintegeryesClient ID to generate QBR data for. Use halo_list_clients or halo_search_clients to find valid IDs.
quarterEndstringyesQuarter end date in yyyy-MM-dd format (e.g. '2025-03-31' for Q1 2025).
quarterStartstringyesQuarter start date in yyyy-MM-dd format (e.g. '2025-01-01' for Q1 2025).
scaleOrderstringnonullCSAT scale direction: "higherIsBetter" (default; 5 = most satisfied) or "lowerIsBetter" (1 = most satisfied, e.g. HaloPSA's default smiley survey). Controls how the csatSummary is interpreted; the response reports which was used via scaleOrderSource.

[HaloPSA] Identify agreements with negative profitability over a period. Compares each agreement's effective hourly rate against a target cost rate to calculate margin. Returns agreements with zero or negative margin, ranked worst-first. Use this for portfolio review to find contracts that need renegotiation. Note: Makes 3 API calls internally.

ParamTypeRequiredDefaultDescription
periodMonthsintegerno3Number of months to analyze (default 3). Longer periods smooth out seasonal variations.
targetHourlyRatenumberno100Target hourly cost rate used to calculate margin (default 100). Revenue is compared against hours * targetHourlyRate to determine profitability. Set this to your blended cost per engineer hour.

Ticket Filters

ToolPlanAccessSummary
halo_list_high_priority_ticketsFreeRead-onlyList open tickets with high priority (default priority ID 1 = Critical).
halo_list_my_ticketsFreeRead-onlyList tickets assigned to the current authenticated agent.
halo_list_open_ticketsFreeRead-onlyList all open/active tickets.
halo_list_overdue_sla_ticketsFreeRead-onlyList open tickets with overdue SLA targets.
halo_list_past_due_ticketsFreeRead-onlyList open tickets that have breached their SLA target.
halo_list_tickets_by_clientFreeRead-onlyList all tickets for a specific client.
halo_list_unassigned_ticketsFreeRead-onlyList open tickets with no agent assigned.

[HaloPSA] List open tickets with high priority (default priority ID 1 = Critical). Useful for urgent triage. Optionally override the priority threshold.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID.
pageNointegerno1Page number (default 1).
pageSizeintegerno50Results per page (default 50, max 100).
priorityIdintegerno1Priority ID threshold (default 1 = Critical). Use halo_list_priorities to find valid IDs.

[HaloPSA] List tickets assigned to the current authenticated agent. First resolves the agent identity via the API, then filters tickets by that agent. Defaults to open tickets only.

ParamTypeRequiredDefaultDescription
openOnlybooleannotrueWhen true (default), returns only open tickets.
pageNointegerno1Page number (default 1).
pageSizeintegerno50Results per page (default 50, max 100).

[HaloPSA] List all open/active tickets. Convenience shortcut for halo_list_tickets with open_only=true. Returns paginated open ticket summaries. Optionally filter by client or agent.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID.
clientIdintegernonullFilter by client ID.
pageNointegerno1Page number (default 1).
pageSizeintegerno50Results per page (default 50, max 100).

[HaloPSA] List open tickets with overdue SLA targets. Similar to halo_list_past_due_tickets but uses 'overdue' SLA status filter. Use for proactive SLA management.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID.
clientIdintegernonullFilter by client ID.
pageNointegerno1Page number (default 1).
pageSizeintegerno50Results per page (default 50, max 100).

[HaloPSA] List open tickets that have breached their SLA target. Use for SLA compliance monitoring and escalation. Optionally filter by client.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID.
pageNointegerno1Page number (default 1).
pageSizeintegerno50Results per page (default 50, max 100).

[HaloPSA] List all tickets for a specific client. Requires a client ID — use halo_search_clients to find valid IDs. Optionally filter to open tickets only.

ParamTypeRequiredDefaultDescription
clientIdintegeryesClient ID (required). Use halo_search_clients to find valid IDs.
openOnlybooleannonullWhen true, returns only open tickets.
pageNointegerno1Page number (default 1).
pageSizeintegerno50Results per page (default 50, max 100).

[HaloPSA] List open tickets with no agent assigned. Critical for daily triage to ensure all tickets have an owner. Optionally filter by client.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID.
pageNointegerno1Page number (default 1).
pageSizeintegerno50Results per page (default 50, max 100).

Address Book

ToolPlanAccessSummary
halo_create_address_book_entryProWriteCreate a new address book entry.
halo_delete_address_book_entryProDestructiveDelete an address book entry by numeric ID.
halo_get_address_book_entryFreeRead-onlyRetrieve a single address book entry by numeric ID.
halo_list_address_bookFreeRead-onlyList address book entries with optional search and pagination.
halo_update_address_book_entryProWriteUpdate an existing address book entry's fields such as name, email, or phone.

[HaloPSA] Create a new address book entry. This adds a contact record to the address book. Returns the created entry with its assigned ID. Provide entry details as a JSON object.

ParamTypeRequiredDefaultDescription
entryJsonstringyesJSON object with address book entry fields. Required: name. Optional: emailaddress, phonenumber, client_id. Example: {"name": "Jane Smith", "emailaddress": "jane@example.com", "phonenumber": "+1-555-0100"}

[HaloPSA] Delete an address book entry by numeric ID. This permanently removes the contact record — it cannot be undone. Use with caution. Requires a valid entry ID — use halo_list_address_book to find IDs and verify the entry before deleting.

ParamTypeRequiredDefaultDescription
entryIdintegeryesThe numeric HaloPSA address book entry ID to delete. Use halo_list_address_book to find valid IDs. Verify the entry with halo_get_address_book_entry before deleting.

[HaloPSA] Retrieve a single address book entry by numeric ID. Returns full contact details including name, email, phone, address, and associated client. Requires a valid entry ID — use halo_list_address_book to find IDs.

ParamTypeRequiredDefaultDescription
entryIdintegeryesThe numeric HaloPSA address book entry ID. Use halo_list_address_book to find valid IDs.

[HaloPSA] List address book entries with optional search and pagination. Returns entry summaries including ID, name, email, and phone. Use this to browse the address book or find contact IDs before fetching full details with halo_get_address_book_entry.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).
searchstringnonullSearch entries by name, email, or phone (optional).

[HaloPSA] Update an existing address book entry's fields such as name, email, or phone. The JSON must include the entry 'id' field. Use halo_list_address_book or halo_get_address_book_entry to find valid IDs and current field values.

ParamTypeRequiredDefaultDescription
entryJsonstringyesJSON object with address book entry fields to update. Must include 'id'. Example: {"id": 42, "emailaddress": "newemail@example.com"}. Field names must match HaloPSA API field names.

Roles

ToolPlanAccessSummary
halo_create_roleProWriteCreate a new role.
halo_delete_roleProDestructiveDelete a role by numeric ID.
halo_get_roleFreeRead-onlyRetrieve a single role by numeric ID.
halo_list_rolesFreeRead-onlyList roles with pagination.
halo_update_roleProWriteUpdate an existing role's fields such as name, description, or permissions.

[HaloPSA] Create a new role. This defines a role that can be assigned to agents or users for access control. Returns the created role with its assigned ID. Provide role details as a JSON object.

ParamTypeRequiredDefaultDescription
roleJsonstringyesJSON object with role fields. Required: name. Optional: description, permissions. Example: {"name": "L2 Support", "description": "Level 2 support role"}

[HaloPSA] Delete a role by numeric ID. This permanently removes the role — it cannot be undone. Agents assigned this role may lose associated permissions. Requires a valid role ID — use halo_list_roles to find IDs and verify the role before deleting.

ParamTypeRequiredDefaultDescription
roleIdintegeryesThe numeric HaloPSA role ID to delete. Use halo_list_roles to find valid IDs. Verify the role with halo_get_role before deleting.

[HaloPSA] Retrieve a single role by numeric ID. Returns full role details including name, description, and permissions. Requires a valid role ID — use halo_list_roles to find IDs.

ParamTypeRequiredDefaultDescription
roleIdintegeryesThe numeric HaloPSA role ID. Use halo_list_roles to find valid IDs.

[HaloPSA] List roles with pagination. Returns role summaries including ID, name, and description. Use this to browse available roles or find role IDs before fetching full details with halo_get_role.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).

[HaloPSA] Update an existing role's fields such as name, description, or permissions. The JSON must include the role 'id' field. Use halo_list_roles or halo_get_role to find valid IDs and current field values.

ParamTypeRequiredDefaultDescription
roleJsonstringyesJSON object with role fields to update. Must include 'id'. Example: {"id": 5, "name": "Updated Role Name", "description": "Updated description"}. Field names must match HaloPSA API field names.

Tags

ToolPlanAccessSummary
halo_create_tagProWriteCreate a new tag.
halo_delete_tagProDestructiveDelete a tag by numeric ID.
halo_get_tagFreeRead-onlyRetrieve a single tag by numeric ID.
halo_list_tagsFreeRead-onlyList tags with optional search and pagination.

[HaloPSA] Create a new tag. Tags can be applied to tickets, assets, clients, and other records for categorisation and filtering. Returns the created tag with its assigned ID. Provide tag details as a JSON object.

ParamTypeRequiredDefaultDescription
tagJsonstringyesJSON object with tag fields. Required: text. Optional: colour. Example: {"text": "VIP", "colour": "#FF0000"}

[HaloPSA] Delete a tag by numeric ID. This permanently removes the tag and detaches it from all associated records — it cannot be undone. Requires a valid tag ID — use halo_list_tags to find IDs and verify the tag before deleting.

ParamTypeRequiredDefaultDescription
tagIdintegeryesThe numeric HaloPSA tag ID to delete. Use halo_list_tags to find valid IDs. Verify the tag with halo_get_tag before deleting.

[HaloPSA] Retrieve a single tag by numeric ID. Returns full tag details including name, colour, and usage information. Requires a valid tag ID — use halo_list_tags to find IDs.

ParamTypeRequiredDefaultDescription
tagIdintegeryesThe numeric HaloPSA tag ID. Use halo_list_tags to find valid IDs.

[HaloPSA] List tags with optional search and pagination. Returns tag summaries including ID, name, and colour. Use this to browse available tags or find tag IDs for filtering tickets, assets, or other records.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).
searchstringnonullSearch tags by name (optional).

Notifications

ToolPlanAccessSummary
halo_create_notificationProWriteCreate a new notification.
halo_get_notificationFreeRead-onlyRetrieve a single notification by numeric ID.
halo_list_notificationsFreeRead-onlyList notifications with optional filters and pagination.
halo_send_notification_messageProWriteSend a notification message to one or more agents.

[HaloPSA] Create a new notification. This sends a notification to the specified agent(s). Returns the created notification with its assigned ID. Provide notification details as a JSON object.

ParamTypeRequiredDefaultDescription
notificationJsonstringyesJSON object with notification fields. Required: subject, agent_id. Optional: body, priority. Example: {"subject": "Urgent: VIP ticket escalation", "agent_id": 12, "body": "Ticket #1234 requires immediate attention"}

[HaloPSA] Retrieve a single notification by numeric ID. Returns full notification details including subject, body, sender, and read status. Requires a valid notification ID — use halo_list_notifications to find IDs.

ParamTypeRequiredDefaultDescription
notificationIdintegeryesThe numeric HaloPSA notification ID. Use halo_list_notifications to find valid IDs.

[HaloPSA] List notifications with optional filters and pagination. Returns notification summaries including ID, subject, read status, and timestamp. Use this to check for new notifications or browse notification history. Filter by agent or unread status.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID to see notifications for a specific agent (optional).
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).
unreadOnlybooleannonullSet to true to return only unread notifications (optional).

[HaloPSA] Send a notification message to one or more agents. This is a direct messaging tool separate from notification creation — use it to send quick messages or alerts. Returns the sent message details.

ParamTypeRequiredDefaultDescription
messageJsonstringyesJSON object with message fields. Required: message, agent_id. Optional: subject. Example: {"message": "Please review ticket #5678", "agent_id": 12, "subject": "Review Request"}

Canned Text

ToolPlanAccessSummary
halo_create_canned_textProWriteCreate a new canned text (quick reply template).
halo_delete_canned_textProDestructiveDelete a canned text template by numeric ID.
halo_get_canned_textFreeRead-onlyRetrieve a single canned text template by numeric ID.
halo_list_canned_textFreeRead-onlyList canned text (quick reply templates) with optional filters and pagination.
halo_update_canned_textProWriteUpdate an existing canned text template's fields such as name, content, or team assignment.

[HaloPSA] Create a new canned text (quick reply template). This creates a reusable response template for ticket replies. Returns the created template with its assigned ID. Provide template details as a JSON object.

ParamTypeRequiredDefaultDescription
cannedTextJsonstringyesJSON object with canned text fields. Required: name, html. Optional: agent_id, team_id. Example: {"name": "Password Reset Instructions", "html": "<p>Please follow these steps to reset your password...</p>"}

[HaloPSA] Delete a canned text template by numeric ID. This permanently removes the template — it cannot be undone. Requires a valid canned text ID — use halo_list_canned_text to find IDs and verify the template before deleting.

ParamTypeRequiredDefaultDescription
cannedTextIdintegeryesThe numeric HaloPSA canned text ID to delete. Use halo_list_canned_text to find valid IDs. Verify the template with halo_get_canned_text before deleting.

[HaloPSA] Retrieve a single canned text template by numeric ID. Returns full template details including name, content, and associated agent or team. Requires a valid canned text ID — use halo_list_canned_text to find IDs.

ParamTypeRequiredDefaultDescription
cannedTextIdintegeryesThe numeric HaloPSA canned text ID. Use halo_list_canned_text to find valid IDs.

[HaloPSA] List canned text (quick reply templates) with optional filters and pagination. Returns template summaries including ID, name, and category. Use this to browse available response templates or find canned text IDs. Filter by search query, agent, or team.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID to see templates available to a specific agent (optional).
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).
searchstringnonullSearch canned text by name or content (optional).
teamIdintegernonullFilter by team ID to see templates available to a specific team (optional).

[HaloPSA] Update an existing canned text template's fields such as name, content, or team assignment. The JSON must include the 'id' field. Use halo_list_canned_text or halo_get_canned_text to find valid IDs and current field values.

ParamTypeRequiredDefaultDescription
cannedTextJsonstringyesJSON object with canned text fields to update. Must include 'id'. Example: {"id": 10, "name": "Updated Template", "html": "<p>Updated content...</p>"}. Field names must match HaloPSA API field names.

Webhooks

ToolPlanAccessSummary
halo_create_webhookProWriteCreate a new webhook subscription.
halo_delete_webhookProDestructiveDelete a webhook by numeric ID.
halo_get_webhookFreeRead-onlyRetrieve a single webhook by numeric ID.
halo_list_webhook_eventsFreeRead-onlyList webhook event delivery history with optional webhook filter and pagination.
halo_list_webhooksFreeRead-onlyList configured webhooks with pagination.
halo_update_webhookProWriteUpdate an existing webhook's fields such as name, URL, events, or enabled status.

[HaloPSA] Create a new webhook subscription. This registers a URL to receive event notifications from HaloPSA. Returns the created webhook with its assigned ID. Provide webhook details as a JSON object.

ParamTypeRequiredDefaultDescription
webhookJsonstringyesJSON object with webhook fields. Required: name, url. Optional: event_type, secret, enabled. Example: {"name": "Ticket Updates", "url": "https://example.com/webhooks/halo", "enabled": true}

[HaloPSA] Delete a webhook by numeric ID. This permanently removes the webhook subscription and stops event delivery — it cannot be undone. Requires a valid webhook ID — use halo_list_webhooks to find IDs and verify the webhook before deleting.

ParamTypeRequiredDefaultDescription
webhookIdintegeryesThe numeric HaloPSA webhook ID to delete. Use halo_list_webhooks to find valid IDs. Verify the webhook with halo_get_webhook before deleting.

[HaloPSA] Retrieve a single webhook by numeric ID. Returns full webhook details including name, URL, event subscriptions, and authentication configuration. Requires a valid webhook ID — use halo_list_webhooks to find IDs.

ParamTypeRequiredDefaultDescription
webhookIdintegeryesThe numeric HaloPSA webhook ID. Use halo_list_webhooks to find valid IDs.

[HaloPSA] List webhook event delivery history with optional webhook filter and pagination. Returns event summaries including ID, webhook, event type, delivery status, and timestamp. Use this to audit webhook deliveries or troubleshoot failed event notifications.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).
webhookIdintegernonullFilter by webhook ID to see events for a specific webhook (optional).

[HaloPSA] List configured webhooks with pagination. Returns webhook summaries including ID, name, URL, and enabled status. Use this to review webhook integrations or find webhook IDs before fetching full details.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).

[HaloPSA] Update an existing webhook's fields such as name, URL, events, or enabled status. The JSON must include the webhook 'id' field. Use halo_list_webhooks or halo_get_webhook to find valid IDs and current field values.

ParamTypeRequiredDefaultDescription
webhookJsonstringyesJSON object with webhook fields to update. Must include 'id'. Example: {"id": 3, "url": "https://example.com/webhooks/new-endpoint", "enabled": false}. Field names must match HaloPSA API field names.

Automation

ToolPlanAccessSummary
halo_create_automation_ruleProWriteCreate a new automation rule.
halo_delete_automation_ruleProDestructiveDelete an automation rule by numeric ID.
halo_get_automation_ruleFreeRead-onlyRetrieve a single automation rule by numeric ID.
halo_list_automation_rulesFreeRead-onlyList automation rules with pagination.
halo_update_automation_ruleProWriteUpdate an existing automation rule's fields such as name, conditions, actions, or enabled status.

[HaloPSA] Create a new automation rule. This defines an automated action triggered by events such as ticket creation, status changes, or SLA breaches. Returns the created rule with its assigned ID. Provide rule details as a JSON object.

ParamTypeRequiredDefaultDescription
ruleJsonstringyesJSON object with automation rule fields. Required: name. Optional: trigger_type, conditions, actions, enabled. Example: {"name": "Auto-assign VIP tickets", "enabled": true}

[HaloPSA] Delete an automation rule by numeric ID. This permanently removes the rule and stops its automated actions — it cannot be undone. Requires a valid rule ID — use halo_list_automation_rules to find IDs and verify the rule before deleting.

ParamTypeRequiredDefaultDescription
ruleIdintegeryesThe numeric HaloPSA automation rule ID to delete. Use halo_list_automation_rules to find valid IDs. Verify the rule with halo_get_automation_rule before deleting.

[HaloPSA] Retrieve a single automation rule by numeric ID. Returns full rule details including name, trigger conditions, actions, and enabled status. Requires a valid rule ID — use halo_list_automation_rules to find IDs.

ParamTypeRequiredDefaultDescription
ruleIdintegeryesThe numeric HaloPSA automation rule ID. Use halo_list_automation_rules to find valid IDs.

[HaloPSA] List automation rules with pagination. Returns rule summaries including ID, name, enabled status, and trigger type. Use this to review configured automations or find rule IDs before fetching full details with halo_get_automation_rule.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).

[HaloPSA] Update an existing automation rule's fields such as name, conditions, actions, or enabled status. The JSON must include the rule 'id' field. Use halo_list_automation_rules or halo_get_automation_rule to find valid IDs and current field values.

ParamTypeRequiredDefaultDescription
ruleJsonstringyesJSON object with automation rule fields to update. Must include 'id'. Example: {"id": 7, "enabled": false, "name": "Disabled: Auto-assign VIP tickets"}. Field names must match HaloPSA API field names.

Workflows

ToolPlanAccessSummary
halo_create_workflowProWriteCreate a new workflow.
halo_delete_workflowProDestructiveDelete a workflow by numeric ID.
halo_get_workflowFreeRead-onlyRetrieve a single workflow by numeric ID.
halo_list_workflow_stepsFreeRead-onlyList steps for a specific workflow by workflow ID.
halo_list_workflowsFreeRead-onlyList workflows with pagination.
halo_update_workflowProWriteUpdate an existing workflow's fields such as name, description, or configuration.

[HaloPSA] Create a new workflow. Workflows define multi-step processes for ticket handling, onboarding, or other structured procedures. Returns the created workflow with its assigned ID. Provide workflow details as a JSON object.

ParamTypeRequiredDefaultDescription
workflowJsonstringyesJSON object with workflow fields. Required: name. Optional: description, steps. Example: {"name": "New Employee Onboarding", "description": "Standard onboarding process for new hires"}

[HaloPSA] Delete a workflow by numeric ID. This permanently removes the workflow definition — it cannot be undone. Active tickets using this workflow may be affected. Requires a valid workflow ID — use halo_list_workflows to find IDs and verify the workflow before deleting.

ParamTypeRequiredDefaultDescription
workflowIdintegeryesThe numeric HaloPSA workflow ID to delete. Use halo_list_workflows to find valid IDs. Verify the workflow with halo_get_workflow before deleting.

[HaloPSA] Retrieve a single workflow by numeric ID. Returns full workflow details including name, description, and configuration. Requires a valid workflow ID — use halo_list_workflows to find IDs.

ParamTypeRequiredDefaultDescription
workflowIdintegeryesThe numeric HaloPSA workflow ID. Use halo_list_workflows to find valid IDs.

[HaloPSA] List steps for a specific workflow by workflow ID. Returns step details including ID, name, order, and configuration. Use this to understand the structure of a workflow or audit its steps. Requires a valid workflow ID — use halo_list_workflows to find IDs.

ParamTypeRequiredDefaultDescription
workflowIdintegeryesThe numeric HaloPSA workflow ID whose steps to list. Use halo_list_workflows to find valid IDs.

[HaloPSA] List workflows with pagination. Returns workflow summaries including ID, name, and status. Use this to browse available workflows or find workflow IDs before fetching full details or listing steps.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).

[HaloPSA] Update an existing workflow's fields such as name, description, or configuration. The JSON must include the workflow 'id' field. Use halo_list_workflows or halo_get_workflow to find valid IDs and current field values.

ParamTypeRequiredDefaultDescription
workflowJsonstringyesJSON object with workflow fields to update. Must include 'id'. Example: {"id": 4, "name": "Updated Onboarding Workflow", "description": "Revised onboarding steps"}. Field names must match HaloPSA API field names.

Asset Groups

ToolPlanAccessSummary
halo_create_asset_groupProWriteCreate a new asset group.
halo_delete_asset_groupProDestructiveDelete an asset group by numeric ID.
halo_get_asset_groupFreeRead-onlyRetrieve a single asset group by numeric ID.
halo_list_asset_groupsFreeRead-onlyList asset groups with pagination.
halo_update_asset_groupProWriteUpdate an existing asset group's fields such as name or description.

[HaloPSA] Create a new asset group. Asset groups organise assets into logical collections for management and reporting. Returns the created group with its assigned ID. Provide group details as a JSON object.

ParamTypeRequiredDefaultDescription
groupJsonstringyesJSON object with asset group fields. Required: name. Optional: description. Example: {"name": "Server Room A", "description": "All rack-mounted servers in Room A"}

[HaloPSA] Delete an asset group by numeric ID. This permanently removes the group — it cannot be undone. Assets in the group are not deleted but will no longer be grouped. Requires a valid group ID — use halo_list_asset_groups to find IDs and verify the group before deleting.

ParamTypeRequiredDefaultDescription
groupIdintegeryesThe numeric HaloPSA asset group ID to delete. Use halo_list_asset_groups to find valid IDs. Verify the group with halo_get_asset_group before deleting.

[HaloPSA] Retrieve a single asset group by numeric ID. Returns full group details including name, description, and member assets. Requires a valid group ID — use halo_list_asset_groups to find IDs.

ParamTypeRequiredDefaultDescription
groupIdintegeryesThe numeric HaloPSA asset group ID. Use halo_list_asset_groups to find valid IDs.

[HaloPSA] List asset groups with pagination. Returns group summaries including ID, name, and description. Use this to browse asset groups or find group IDs for filtering assets or assigning assets to groups.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).

[HaloPSA] Update an existing asset group's fields such as name or description. The JSON must include the group 'id' field. Use halo_list_asset_groups or halo_get_asset_group to find valid IDs and current field values.

ParamTypeRequiredDefaultDescription
groupJsonstringyesJSON object with asset group fields to update. Must include 'id'. Example: {"id": 8, "name": "Server Room B", "description": "Updated location description"}. Field names must match HaloPSA API field names.

Release Pipeline

ToolPlanAccessSummary
halo_create_release_pipelineProWriteCreate a new release pipeline.
halo_delete_release_pipelineProDestructiveDelete a release pipeline by numeric ID.
halo_get_release_pipelineFreeRead-onlyRetrieve a single release pipeline by numeric ID.
halo_list_release_pipelinesFreeRead-onlyList release pipelines with pagination.

[HaloPSA] Create a new release pipeline. Pipelines define the stages a release moves through during deployment (e.g., Dev, Staging, Production). Returns the created pipeline with its assigned ID. Provide pipeline details as a JSON object.

ParamTypeRequiredDefaultDescription
pipelineJsonstringyesJSON object with release pipeline fields. Required: name. Optional: stages, description. Example: {"name": "Standard Deployment", "description": "Dev -> Staging -> Production pipeline"}

[HaloPSA] Delete a release pipeline by numeric ID. This permanently removes the pipeline definition — it cannot be undone. Releases using this pipeline may be affected. Requires a valid pipeline ID — use halo_list_release_pipelines to find IDs and verify the pipeline before deleting.

ParamTypeRequiredDefaultDescription
pipelineIdintegeryesThe numeric HaloPSA release pipeline ID to delete. Use halo_list_release_pipelines to find valid IDs. Verify the pipeline with halo_get_release_pipeline before deleting.

[HaloPSA] Retrieve a single release pipeline by numeric ID. Returns full pipeline details including name, stages, and configuration. Requires a valid pipeline ID — use halo_list_release_pipelines to find IDs.

ParamTypeRequiredDefaultDescription
pipelineIdintegeryesThe numeric HaloPSA release pipeline ID. Use halo_list_release_pipelines to find valid IDs.

[HaloPSA] List release pipelines with pagination. Returns pipeline summaries including ID, name, and stage count. Use this to browse configured deployment pipelines or find pipeline IDs before fetching full details.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).

Products & Components

ToolPlanAccessSummary
halo_create_productProWriteCreate a new product.
halo_create_product_componentProWriteCreate a new product component.
halo_delete_productProDestructiveDelete a product by numeric ID.
halo_get_productFreeRead-onlyRetrieve a single product by numeric ID.
halo_list_product_componentsFreeRead-onlyList product components with optional product filter and pagination.
halo_list_productsFreeRead-onlyList products with optional search and pagination.

[HaloPSA] Create a new product. Products can be composed of components and used in quotations, invoices, and contracts. Returns the created product with its assigned ID. Provide product details as a JSON object.

ParamTypeRequiredDefaultDescription
productJsonstringyesJSON object with product fields. Required: name. Optional: description, unit_price, cost_price. Example: {"name": "Managed Endpoint Bundle", "description": "Includes AV, patching, and monitoring", "unit_price": 15.00}

[HaloPSA] Create a new product component. Components are items that make up a product bundle. Returns the created component with its assigned ID. Provide component details as a JSON object.

ParamTypeRequiredDefaultDescription
componentJsonstringyesJSON object with product component fields. Required: product_id, item_id. Optional: quantity, unit_price. Example: {"product_id": 5, "item_id": 12, "quantity": 1}

[HaloPSA] Delete a product by numeric ID. This permanently removes the product — it cannot be undone. Existing invoices or contracts referencing this product may be affected. Requires a valid product ID — use halo_list_products to find IDs and verify the product before deleting.

ParamTypeRequiredDefaultDescription
productIdintegeryesThe numeric HaloPSA product ID to delete. Use halo_list_products to find valid IDs. Verify the product with halo_get_product before deleting.

[HaloPSA] Retrieve a single product by numeric ID. Returns full product details including name, description, pricing, and components. Requires a valid product ID — use halo_list_products to find IDs.

ParamTypeRequiredDefaultDescription
productIdintegeryesThe numeric HaloPSA product ID. Use halo_list_products to find valid IDs.

[HaloPSA] List product components with optional product filter and pagination. Returns component summaries including ID, name, and parent product. Use this to see what items make up a product bundle. Filter by product ID to see components for a specific product.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).
productIdintegernonullFilter by product ID to list components for a specific product (optional).

[HaloPSA] List products with optional search and pagination. Returns product summaries including ID, name, and description. Use this to browse the product catalogue or find product IDs before fetching full details or listing components.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).
searchstringnonullSearch products by name or description (optional).

Downtime

ToolPlanAccessSummary
halo_create_downtimeProWriteCreate a new downtime record.
halo_delete_downtimeProDestructiveDelete a downtime record by numeric ID.
halo_get_downtimeFreeRead-onlyRetrieve a single downtime record by numeric ID.
halo_list_downtimeFreeRead-onlyList downtime records with optional filters and pagination.

[HaloPSA] Create a new downtime record. This logs a service outage or scheduled maintenance window. Returns the created record with its assigned ID. Provide downtime details as a JSON object.

ParamTypeRequiredDefaultDescription
downtimeJsonstringyesJSON object with downtime fields. Required: service_id, start_date. Optional: end_date, reason, planned. Example: {"service_id": 3, "start_date": "2026-04-05T02:00:00", "end_date": "2026-04-05T04:00:00", "reason": "Scheduled maintenance", "planned": true}

[HaloPSA] Delete a downtime record by numeric ID. This permanently removes the downtime entry — it cannot be undone. This may affect SLA calculations and service availability reports. Requires a valid downtime ID — use halo_list_downtime to find IDs and verify the record before deleting.

ParamTypeRequiredDefaultDescription
downtimeIdintegeryesThe numeric HaloPSA downtime record ID to delete. Use halo_list_downtime to find valid IDs. Verify the record with halo_get_downtime before deleting.

[HaloPSA] Retrieve a single downtime record by numeric ID. Returns full downtime details including service, start/end times, duration, reason, and impact. Requires a valid downtime ID — use halo_list_downtime to find IDs.

ParamTypeRequiredDefaultDescription
downtimeIdintegeryesThe numeric HaloPSA downtime record ID. Use halo_list_downtime to find valid IDs.

[HaloPSA] List downtime records with optional filters and pagination. Returns downtime summaries including ID, service, start/end times, and reason. Use this to review service outages or scheduled maintenance windows. Filter by service, date range, or both.

ParamTypeRequiredDefaultDescription
endDatestringnonullFilter by end date in ISO 8601 format, e.g. '2026-12-31' (optional).
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).
serviceIdintegernonullFilter by service ID to see downtime for a specific service (optional). Use halo_list_services to find service IDs.
startDatestringnonullFilter by start date in ISO 8601 format, e.g. '2026-01-01' (optional).

Service Availability

ToolPlanAccessSummary
halo_create_service_availabilityProWriteCreate a new service availability record.
halo_delete_service_availabilityProDestructiveDelete a service availability record by numeric ID.
halo_get_service_availabilityFreeRead-onlyRetrieve a single service availability record by numeric ID.
halo_list_service_availabilityFreeRead-onlyList service availability records with optional filters and pagination.

[HaloPSA] Create a new service availability record. This logs service uptime data for a specific period. Returns the created record with its assigned ID. Provide availability details as a JSON object.

ParamTypeRequiredDefaultDescription
availabilityJsonstringyesJSON object with service availability fields. Required: service_id, start_date, end_date. Optional: uptime_percentage, downtime_minutes. Example: {"service_id": 3, "start_date": "2026-03-01", "end_date": "2026-03-31", "uptime_percentage": 99.95}

[HaloPSA] Delete a service availability record by numeric ID. This permanently removes the availability entry — it cannot be undone. This may affect SLA compliance reports. Requires a valid availability ID — use halo_list_service_availability to find IDs and verify the record before deleting.

ParamTypeRequiredDefaultDescription
availabilityIdintegeryesThe numeric HaloPSA service availability record ID to delete. Use halo_list_service_availability to find valid IDs. Verify the record with halo_get_service_availability before deleting.

[HaloPSA] Retrieve a single service availability record by numeric ID. Returns full availability details including service, uptime percentage, downtime minutes, and time period. Requires a valid availability ID — use halo_list_service_availability to find IDs.

ParamTypeRequiredDefaultDescription
availabilityIdintegeryesThe numeric HaloPSA service availability record ID. Use halo_list_service_availability to find valid IDs.

[HaloPSA] List service availability records with optional filters and pagination. Returns availability summaries including ID, service, uptime percentage, and time period. Use this to review service uptime history or generate availability reports. Filter by service, date range, or both.

ParamTypeRequiredDefaultDescription
endDatestringnonullFilter by end date in ISO 8601 format, e.g. '2026-12-31' (optional).
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 100).
serviceIdintegernonullFilter by service ID to see availability for a specific service (optional). Use halo_list_services to find service IDs.
startDatestringnonullFilter by start date in ISO 8601 format, e.g. '2026-01-01' (optional).

Contract Rules

ToolPlanAccessSummary
halo_create_contract_ruleProWriteCreate or update a contract billing rule that defines how time and items are charged.
halo_delete_contract_ruleProDestructiveDelete a contract billing rule by ID.
halo_get_contract_ruleFreeRead-onlyRetrieve a single contract billing rule by numeric ID.
halo_list_contract_rulesFreeRead-onlyList contract billing rules that define how time and items are charged.

[HaloPSA] Create or update a contract billing rule that defines how time and items are charged. This affects billing calculations. Returns the created rule with its assigned ID. Provide rule details as a JSON object with fields matching HaloPSA API field names.

ParamTypeRequiredDefaultDescription
contractRuleJsonstringyesJSON object with contract rule fields. Example: {"name": "Standard Hourly", "contract_id": 42, "charge_rate": 150.00}. Field names must match HaloPSA API field names.

[HaloPSA] Delete a contract billing rule by ID. This permanently removes the rule and may affect billing calculations for the associated contract. Requires a valid rule ID — use halo_list_contract_rules to find IDs.

ParamTypeRequiredDefaultDescription
contractRuleIdintegeryesThe numeric HaloPSA contract rule ID to delete. Use halo_list_contract_rules to find valid IDs.

[HaloPSA] Retrieve a single contract billing rule by numeric ID. Returns full rule details including charge type, rate, and associated contract. Requires a valid rule ID — use halo_list_contract_rules to find IDs.

ParamTypeRequiredDefaultDescription
contractRuleIdintegeryesThe numeric HaloPSA contract rule ID. Use halo_list_contract_rules to find valid IDs.

[HaloPSA] List contract billing rules that define how time and items are charged. Returns paginated rule summaries including ID, name, contract association, and charge configuration. Use this to review billing rules or discover valid rule IDs.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).

Contract Schedules

ToolPlanAccessSummary
halo_create_contract_scheduleProWriteCreate or update a contract billing schedule that defines when charges are generated.
halo_delete_contract_scheduleProDestructiveDelete a contract billing schedule by ID.
halo_get_contract_scheduleFreeRead-onlyRetrieve a single contract billing schedule by numeric ID.
halo_list_contract_schedulesFreeRead-onlyList contract billing schedules that define when charges are generated.

[HaloPSA] Create or update a contract billing schedule that defines when charges are generated. This affects when invoices are raised. Returns the created schedule with its assigned ID. Provide schedule details as a JSON object with fields matching HaloPSA API field names.

ParamTypeRequiredDefaultDescription
contractScheduleJsonstringyesJSON object with contract schedule fields. Example: {"name": "Monthly Billing", "contract_id": 42, "frequency": "Monthly"}. Field names must match HaloPSA API field names.

[HaloPSA] Delete a contract billing schedule by ID. This permanently removes the schedule and may affect when future charges are generated. Requires a valid schedule ID — use halo_list_contract_schedules to find IDs.

ParamTypeRequiredDefaultDescription
contractScheduleIdintegeryesThe numeric HaloPSA contract schedule ID to delete. Use halo_list_contract_schedules to find valid IDs.

[HaloPSA] Retrieve a single contract billing schedule by numeric ID. Returns full schedule details including frequency, next billing date, and associated contract. Requires a valid schedule ID — use halo_list_contract_schedules to find IDs.

ParamTypeRequiredDefaultDescription
contractScheduleIdintegeryesThe numeric HaloPSA contract schedule ID. Use halo_list_contract_schedules to find valid IDs.

[HaloPSA] List contract billing schedules that define when charges are generated. Returns paginated schedule summaries including ID, name, frequency, and associated contract. Use this to review billing cadence or discover valid schedule IDs.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).

Billing Templates

ToolPlanAccessSummary
halo_create_billing_templateProWriteCreate or update a reusable billing template for contracts.
halo_delete_billing_templateProDestructiveDelete a billing template by ID.
halo_get_billing_templateFreeRead-onlyRetrieve a single billing template by numeric ID.
halo_list_billing_templatesFreeRead-onlyList reusable billing templates for contracts.
halo_update_billing_template_clientsProDestructivePush a billing template's configuration out to the clients assigned to it — the "Update Clients" button on a HaloPSA billing template.

[HaloPSA] Create or update a reusable billing template for contracts. Templates standardise billing configuration across contracts. Returns the created template with its assigned ID. Provide template details as a JSON object with fields matching HaloPSA API field names.

ParamTypeRequiredDefaultDescription
billingTemplateJsonstringyesJSON object with billing template fields. Example: {"name": "Standard MSP Template", "billing_cycle": "Monthly"}. Field names must match HaloPSA API field names.

[HaloPSA] Delete a billing template by ID. This permanently removes the template. Existing contracts using this template are not affected. Requires a valid template ID — use halo_list_billing_templates to find IDs.

ParamTypeRequiredDefaultDescription
billingTemplateIdintegeryesThe numeric HaloPSA billing template ID to delete. Use halo_list_billing_templates to find valid IDs.

[HaloPSA] Retrieve a single billing template by numeric ID. Returns full template details including billing lines, rates, and schedule configuration. Requires a valid template ID — use halo_list_billing_templates to find IDs.

ParamTypeRequiredDefaultDescription
billingTemplateIdintegeryesThe numeric HaloPSA billing template ID. Use halo_list_billing_templates to find valid IDs.

[HaloPSA] List reusable billing templates for contracts. Returns paginated template summaries including ID, name, and billing configuration. Use this to discover templates available for contract creation or review existing billing configurations.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] Push a billing template's configuration out to the clients assigned to it — the "Update Clients" button on a HaloPSA billing template. Every client ID you pass is force-reassigned to the template, OVERWRITING that client's existing client-level billing configuration with the template's values — this cannot be undone, so confirm the client list before running. Supply the template ID and the IDs of the clients assigned to that template (discover them with halo_list_clients or halo_search_clients). Typical workflow: create or amend the template with halo_create_billing_template, then call this to apply it. Returns the HaloPSA response, including any per-client warnings.

ParamTypeRequiredDefaultDescription
billingTemplateIdintegeryesThe numeric HaloPSA billing template ID to apply. Use halo_list_billing_templates to find valid IDs.
clientIdsarrayyesThe numeric HaloPSA client IDs assigned to this template. Every client listed has its billing configuration overwritten with the template's values.

Budget Types

ToolPlanAccessSummary
halo_create_budget_typeProWriteCreate or update a budget type for project and contract budgeting.
halo_delete_budget_typeProDestructiveDelete a budget type by ID.
halo_get_budget_typeFreeRead-onlyRetrieve a single budget type by numeric ID.
halo_list_budget_typesFreeRead-onlyList budget types used for project and contract budgeting.

[HaloPSA] Create or update a budget type for project and contract budgeting. Returns the created budget type with its assigned ID. Provide budget type details as a JSON object with fields matching HaloPSA API field names.

ParamTypeRequiredDefaultDescription
budgetTypeJsonstringyesJSON object with budget type fields. Example: {"name": "Time & Materials"}. Field names must match HaloPSA API field names.

[HaloPSA] Delete a budget type by ID. This permanently removes the budget type. Projects or contracts referencing this type may be affected. Requires a valid budget type ID — use halo_list_budget_types to find IDs.

ParamTypeRequiredDefaultDescription
budgetTypeIdintegeryesThe numeric HaloPSA budget type ID to delete. Use halo_list_budget_types to find valid IDs.

[HaloPSA] Retrieve a single budget type by numeric ID. Returns full budget type details. Requires a valid budget type ID — use halo_list_budget_types to find IDs.

ParamTypeRequiredDefaultDescription
budgetTypeIdintegeryesThe numeric HaloPSA budget type ID. Use halo_list_budget_types to find valid IDs.

[HaloPSA] List budget types used for project and contract budgeting. Returns paginated budget type summaries including ID and name. Use this to discover valid budget type IDs for project or contract configuration.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).

Cost Centres

ToolPlanAccessSummary
halo_create_cost_centreProWriteCreate or update a cost centre for financial categorisation and reporting.
halo_delete_cost_centreProDestructiveDelete a cost centre by ID.
halo_get_cost_centreFreeRead-onlyRetrieve a single cost centre by numeric ID.
halo_list_cost_centresFreeRead-onlyList cost centres for financial categorisation and reporting.

[HaloPSA] Create or update a cost centre for financial categorisation and reporting. Returns the created cost centre with its assigned ID. Provide cost centre details as a JSON object with fields matching HaloPSA API field names.

ParamTypeRequiredDefaultDescription
costCentreJsonstringyesJSON object with cost centre fields. Example: {"name": "Engineering", "code": "ENG-001"}. Field names must match HaloPSA API field names.

[HaloPSA] Delete a cost centre by ID. This permanently removes the cost centre. Records previously allocated to this cost centre may be affected. Requires a valid cost centre ID — use halo_list_cost_centres to find IDs.

ParamTypeRequiredDefaultDescription
costCentreIdintegeryesThe numeric HaloPSA cost centre ID to delete. Use halo_list_cost_centres to find valid IDs.

[HaloPSA] Retrieve a single cost centre by numeric ID. Returns full cost centre details including name, code, and any associated configuration. Requires a valid cost centre ID — use halo_list_cost_centres to find IDs.

ParamTypeRequiredDefaultDescription
costCentreIdintegeryesThe numeric HaloPSA cost centre ID. Use halo_list_cost_centres to find valid IDs.

[HaloPSA] List cost centres for financial categorisation and reporting. Returns paginated cost centre summaries including ID, name, and code. Use this to discover valid cost centre IDs for expense allocation or financial reporting.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).

CSP Invoices

ToolPlanAccessSummary
halo_create_csp_invoiceProWriteCreate or update a CSP invoice record.
halo_delete_csp_invoiceProDestructiveDelete a CSP invoice by ID.
halo_get_csp_invoiceFreeRead-onlyRetrieve a single CSP invoice by numeric ID.
halo_list_csp_invoicesFreeRead-onlyList Microsoft Cloud Solution Provider (CSP) invoices synced from partner centre.

[HaloPSA] Create or update a CSP invoice record. This is typically used for syncing invoice data from Microsoft Partner Centre. Returns the created CSP invoice with its assigned ID. Provide invoice details as a JSON object with fields matching HaloPSA API field names.

ParamTypeRequiredDefaultDescription
cspInvoiceJsonstringyesJSON object with CSP invoice fields. Example: {"client_id": 42, "billing_period": "2024-01", "total": 1500.00}. Field names must match HaloPSA API field names.

[HaloPSA] Delete a CSP invoice by ID. This permanently removes the CSP invoice record. Requires a valid CSP invoice ID — use halo_list_csp_invoices to find IDs.

ParamTypeRequiredDefaultDescription
cspInvoiceIdintegeryesThe numeric HaloPSA CSP invoice ID to delete. Use halo_list_csp_invoices to find valid IDs.

[HaloPSA] Retrieve a single CSP invoice by numeric ID. Returns full invoice details including line items, subscription details, and billing period. Requires a valid CSP invoice ID — use halo_list_csp_invoices to find IDs.

ParamTypeRequiredDefaultDescription
cspInvoiceIdintegeryesThe numeric HaloPSA CSP invoice ID. Use halo_list_csp_invoices to find valid IDs.

[HaloPSA] List Microsoft Cloud Solution Provider (CSP) invoices synced from partner centre. Returns paginated CSP invoice summaries including ID, client, amount, and billing period. Use this to review cloud subscription billing or reconcile CSP charges.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).

Custom Queries

ToolPlanAccessSummary
halo_create_custom_queryProWriteCreate or update a custom database query for reporting and data extraction.
halo_delete_custom_queryProDestructiveDelete a custom query by ID.
halo_get_custom_queryFreeRead-onlyRetrieve a single custom query by numeric ID.
halo_list_custom_queriesFreeRead-onlyList custom database queries used for reporting and data extraction.

[HaloPSA] Create or update a custom database query for reporting and data extraction. Use with caution as queries can access sensitive data. Returns the created query with its assigned ID. Provide query details as a JSON object with fields matching HaloPSA API field names.

ParamTypeRequiredDefaultDescription
customQueryJsonstringyesJSON object with custom query fields. Example: {"name": "Open Tickets by Client", "sql": "SELECT ..."}. Field names must match HaloPSA API field names.

[HaloPSA] Delete a custom query by ID. This permanently removes the query definition. Reports depending on this query may be affected. Requires a valid query ID — use halo_list_custom_queries to find IDs.

ParamTypeRequiredDefaultDescription
customQueryIdintegeryesThe numeric HaloPSA custom query ID to delete. Use halo_list_custom_queries to find valid IDs.

[HaloPSA] Retrieve a single custom query by numeric ID. Returns full query details including SQL definition and parameters. Requires a valid query ID — use halo_list_custom_queries to find IDs.

ParamTypeRequiredDefaultDescription
customQueryIdintegeryesThe numeric HaloPSA custom query ID. Use halo_list_custom_queries to find valid IDs.

[HaloPSA] List custom database queries used for reporting and data extraction. Returns paginated query summaries including ID, name, and description. Use this to discover available custom queries or find query IDs for execution.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).

Custom Tables

ToolPlanAccessSummary
halo_create_custom_tableProWriteCreate or update a custom data table for extending Halo's data model.
halo_delete_custom_tableProDestructiveDelete a custom table by ID.
halo_get_custom_tableFreeRead-onlyRetrieve a single custom table by numeric ID.
halo_list_custom_tablesFreeRead-onlyList custom data tables used for extending Halo's data model.

[HaloPSA] Create or update a custom data table for extending Halo's data model. This modifies the system's data structure. Returns the created table with its assigned ID. Provide table details as a JSON object with fields matching HaloPSA API field names.

ParamTypeRequiredDefaultDescription
customTableJsonstringyesJSON object with custom table fields. Example: {"name": "Vendor Certifications", "columns": [...]}. Field names must match HaloPSA API field names.

[HaloPSA] Delete a custom table by ID. This permanently removes the table and all its data. Use with extreme caution. Requires a valid table ID — use halo_list_custom_tables to find IDs.

ParamTypeRequiredDefaultDescription
customTableIdintegeryesThe numeric HaloPSA custom table ID to delete. Use halo_list_custom_tables to find valid IDs.

[HaloPSA] Retrieve a single custom table by numeric ID. Returns full table details including column definitions and data types. Requires a valid table ID — use halo_list_custom_tables to find IDs.

ParamTypeRequiredDefaultDescription
customTableIdintegeryesThe numeric HaloPSA custom table ID. Use halo_list_custom_tables to find valid IDs.

[HaloPSA] List custom data tables used for extending Halo's data model. Returns paginated table summaries including ID, name, and column definitions. Use this to discover available custom tables or find table IDs for data operations.

ParamTypeRequiredDefaultDescription
pageNointegerno1Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSizeintegerno50Number of results per page (default 50, max 200).

PDF Templates

ToolPlanAccessSummary
halo_create_pdf_templateProWriteCreate or update a PDF template used for generating documents like invoices, quotes, and delivery notes.
halo_delete_pdf_templateProDestructiveDelete a PDF template by numeric ID.
halo_generate_documentProWriteGenerate a PDF document from a template.
halo_get_pdf_templateFreeRead-onlyRetrieve full details for a single PDF template by numeric ID.
halo_get_pdf_template_library_itemFreeRead-onlyRetrieve full details for a single item from the HaloPSA PDF template repository by numeric ID.
halo_list_pdf_template_libraryFreeRead-onlyBrowse the HaloPSA pre-built PDF template repository.
halo_list_pdf_templatesFreeRead-onlyList PDF templates used for generating invoices, quotes, delivery notes, and other documents.

[HaloPSA] Create or update a PDF template used for generating documents like invoices, quotes, and delivery notes. The template HTML supports HaloPSA merge variables for dynamic content. The JSON should include fields like name, mainhtml, subhtml, headerhtml, footerhtml, and css. To update an existing template, include the 'id' field. Field names must match HaloPSA API field names.

ParamTypeRequiredDefaultDescription
templateJsonstringyesJSON object representing the PDF template. Example: {"name": "Custom Invoice", "mainhtml": "<html>...</html>", "css": "body { font-family: Arial; }"}. Include 'id' to update an existing template. Field names must match HaloPSA API field names.

[HaloPSA] Delete a PDF template by numeric ID. This permanently removes the template — it cannot be undone. Documents previously generated from this template are not affected. Use with caution. Requires a valid template ID — use halo_list_pdf_templates to find IDs and verify the template before deleting.

ParamTypeRequiredDefaultDescription
templateIdintegeryesThe numeric HaloPSA PDF template ID to delete. Use halo_list_pdf_templates to find valid IDs. Verify the template with halo_get_pdf_template before deleting.

[HaloPSA] Generate a PDF document from a template. Triggers document creation using a specified template and entity data (e.g., invoice, quote, contract). The JSON must include the template ID and the entity reference. Returns the generated document result. Use halo_list_pdf_templates to find valid template IDs.

ParamTypeRequiredDefaultDescription
requestJsonstringyesJSON object with the document generation request. Must include the template and entity references. Example: {"template_id": 5, "ticket_id": 1234}. Field names must match HaloPSA API field names.

[HaloPSA] Retrieve full details for a single PDF template by numeric ID. Returns the complete template including mainhtml, subhtml, header/footer HTML, CSS styles, and pages with their own HTML content. Use this to inspect or modify template markup. Requires a valid template ID — use halo_list_pdf_templates to find IDs.

ParamTypeRequiredDefaultDescription
templateIdintegeryesThe numeric HaloPSA PDF template ID. Use halo_list_pdf_templates to find valid IDs.

[HaloPSA] Retrieve full details for a single item from the HaloPSA PDF template repository by numeric ID. Returns the complete library template including HTML content and structure. Use this to inspect a library template before importing or adapting it. Requires a valid repository item ID — use halo_list_pdf_template_library to find IDs.

ParamTypeRequiredDefaultDescription
itemIdintegeryesThe numeric HaloPSA PDF template repository item ID. Use halo_list_pdf_template_library to find valid IDs.

[HaloPSA] Browse the HaloPSA pre-built PDF template repository. Returns available template library items that can be imported into your instance. Use this to discover professional templates before customising them with halo_get_pdf_template_library_item.

[HaloPSA] List PDF templates used for generating invoices, quotes, delivery notes, and other documents. Returns template IDs, names, and types. Optionally filter by template type or search string. Use this to discover template IDs before fetching full HTML content with halo_get_pdf_template.

ParamTypeRequiredDefaultDescription
searchstringnonullSearch string to filter templates by name (optional).
typeintegernonullFilter by template type ID (optional). Different types correspond to invoices, quotes, contracts, etc.

Email Templates

ToolPlanAccessSummary
halo_create_email_templateProWriteCreate or update an email template for automated notifications and customer communications.
halo_create_email_template_variableProWriteCreate a custom email template merge variable.
halo_delete_email_templateProDestructiveDelete an email template by numeric ID.
halo_delete_email_template_variableProDestructiveDelete a custom email template variable by numeric ID.
halo_get_email_templateFreeRead-onlyRetrieve full details for a single email template by numeric ID.
halo_get_email_template_variableFreeRead-onlyRetrieve full details for a single email template variable by numeric ID.
halo_list_email_template_variablesFreeRead-onlyList all available email template merge variables.
halo_list_email_templatesFreeRead-onlyList email templates used for automated notifications, ticket replies, and customer communications.
halo_preview_email_templateFreeRead-onlyRender a live preview of an email template with variable substitution against real ticket data.

[HaloPSA] Create or update an email template for automated notifications and customer communications. Templates support HTML content with HaloPSA merge variables for dynamic data. The JSON should include fields like name, subject, body_html, body_text, and message_group. To update an existing template, include the 'id' field. Use halo_list_email_template_variables to discover available merge variables.

ParamTypeRequiredDefaultDescription
templateJsonstringyesJSON object representing the email template. Example: {"name": "Ticket Created", "subject": "Ticket #{{ticket_id}} Created", "body_html": "<html>...</html>"}. Include 'id' to update an existing template. Field names must match HaloPSA API field names.

[HaloPSA] Create a custom email template merge variable. Custom variables extend the built-in set and can be used in email template HTML content. The JSON should include the variable name, description, and data mapping. To update an existing variable, include the 'id' field.

ParamTypeRequiredDefaultDescription
variableJsonstringyesJSON object representing the email template variable to create. Example: {"name": "custom_greeting", "description": "Custom greeting text"}. Include 'id' to update an existing variable. Field names must match HaloPSA API field names.

[HaloPSA] Delete an email template by numeric ID. This permanently removes the template — it cannot be undone. Any automation rules referencing this template will stop sending notifications. Use with caution. Requires a valid template ID — use halo_list_email_templates to find IDs and verify the template before deleting.

ParamTypeRequiredDefaultDescription
templateIdintegeryesThe numeric HaloPSA email template ID to delete. Use halo_list_email_templates to find valid IDs. Verify the template with halo_get_email_template before deleting.

[HaloPSA] Delete a custom email template variable by numeric ID. This permanently removes the variable — it cannot be undone. Any templates using this variable will show the raw variable tag instead of substituted content. Use with caution. Requires a valid variable ID — use halo_list_email_template_variables to find IDs.

ParamTypeRequiredDefaultDescription
variableIdintegeryesThe numeric HaloPSA email template variable ID to delete. Use halo_list_email_template_variables to find valid IDs. Verify the variable with halo_get_email_template_variable before deleting.

[HaloPSA] Retrieve full details for a single email template by numeric ID. Returns the complete template including body_html, body_text, body_sms, call_script, subject line, and available merge variables. Use this to inspect or modify template content. Requires a valid template ID — use halo_list_email_templates to find IDs.

ParamTypeRequiredDefaultDescription
templateIdintegeryesThe numeric HaloPSA email template ID. Use halo_list_email_templates to find valid IDs.

[HaloPSA] Retrieve full details for a single email template variable by numeric ID. Returns the variable definition including its name, description, and data source. Requires a valid variable ID — use halo_list_email_template_variables to find IDs.

ParamTypeRequiredDefaultDescription
variableIdintegeryesThe numeric HaloPSA email template variable ID. Use halo_list_email_template_variables to find valid IDs.

[HaloPSA] List all available email template merge variables. Returns variable IDs, names, and descriptions. These variables can be used in email template HTML content (e.g., {{ticket_id}}, {{user_name}}) and will be dynamically replaced when emails are sent. Use this to discover which variables are available when creating or editing email templates.

[HaloPSA] List email templates used for automated notifications, ticket replies, and customer communications. Returns template IDs, names, and message groups. Optionally filter by message group or configuration status. Use this to discover template IDs before fetching full HTML content with halo_get_email_template.

ParamTypeRequiredDefaultDescription
isConfigbooleannonullFilter to configuration templates only (optional). Set true to see system configuration templates, false for user-created templates.
messageGroupintegernonullFilter by message group ID (optional). Groups organise templates by purpose — e.g., ticket notifications, approvals, password resets.

[HaloPSA] Render a live preview of an email template with variable substitution against real ticket data. Accepts a single template object (not an array) and optionally a ticket ID for populating merge variables with actual values. Returns the rendered HTML output. Use this to verify template changes look correct before saving.

ParamTypeRequiredDefaultDescription
templateJsonstringyesJSON object representing the email template to preview. Must be a single object, NOT an array. Example: {"body_html": "<p>Dear {{user_name}},</p>", "subject": "Ticket #{{ticket_id}}"}. Optionally include 'ticket_id' to substitute real ticket data into merge variables.
ticketIdintegernonullTicket ID for variable substitution (optional). When provided, merge variables like {{ticket_id}}, {{user_name}} etc. are replaced with actual values from this ticket.

Email Rules

ToolPlanAccessSummary
halo_create_email_ruleProWriteCreate or update an email rule for inbound email processing.
halo_delete_email_ruleProDestructiveDelete an email rule by numeric ID.
halo_get_email_ruleFreeRead-onlyRetrieve full details for a single email rule by numeric ID.
halo_list_email_rulesFreeRead-onlyList email rules that control how inbound emails are processed into tickets.

[HaloPSA] Create or update an email rule for inbound email processing. Rules define how incoming emails are matched and converted into tickets, including sender matching, subject parsing, field extraction, and ticket defaults. The JSON should include matching criteria and processing actions. To update an existing rule, include the 'id' field. Field names must match HaloPSA API field names.

ParamTypeRequiredDefaultDescription
ruleJsonstringyesJSON object representing the email rule. Example: {"name": "VIP Client Rule", "fromaddress": "*@vipclient.com", "tickettype_id": 1}. Include 'id' to update an existing rule. Field names must match HaloPSA API field names.

[HaloPSA] Delete an email rule by numeric ID. This permanently removes the rule — it cannot be undone. Inbound emails previously matched by this rule will fall through to default processing. Use with caution. Requires a valid rule ID — use halo_list_email_rules to find IDs and verify the rule before deleting.

ParamTypeRequiredDefaultDescription
ruleIdintegeryesThe numeric HaloPSA email rule ID to delete. Use halo_list_email_rules to find valid IDs. Verify the rule with halo_get_email_rule before deleting.

[HaloPSA] Retrieve full details for a single email rule by numeric ID. Returns the complete rule including matching criteria (sender, subject, body patterns), field extraction mappings, ticket creation defaults, and processing actions. Use this to understand how inbound emails are routed and parsed. Requires a valid rule ID — use halo_list_email_rules to find IDs.

ParamTypeRequiredDefaultDescription
ruleIdintegeryesThe numeric HaloPSA email rule ID. Use halo_list_email_rules to find valid IDs.

[HaloPSA] List email rules that control how inbound emails are processed into tickets. Returns rule IDs, names, and matching criteria. Optionally filter by sender address or rule type. Use this to discover rule IDs before fetching full details with halo_get_email_rule.

ParamTypeRequiredDefaultDescription
fromAddressstringnonullFilter by sender email address (optional). Returns rules matching a specific from address pattern.
typeintegernonullFilter by rule type ID (optional). Different types handle different inbound email processing scenarios.

Mail Campaigns

ToolPlanAccessSummary
halo_create_campaign_emailProWriteCreate or update an individual email within a mail campaign.
halo_create_mail_campaignProWriteCreate or update a mail campaign for bulk customer communications.
halo_delete_campaign_emailProDestructiveDelete a campaign email by numeric ID.
halo_delete_mail_campaignProDestructiveDelete a mail campaign by numeric ID.
halo_get_campaign_emailFreeRead-onlyRetrieve full details for a single campaign email by numeric ID.
halo_get_campaign_logFreeRead-onlyRetrieve full details for a single campaign delivery log entry by numeric ID.
halo_get_mail_campaignFreeRead-onlyRetrieve full details for a single mail campaign by numeric ID.
halo_list_campaign_emailsFreeRead-onlyList individual email messages within mail campaigns.
halo_list_campaign_logsFreeRead-onlyList delivery logs for mail campaigns.
halo_list_mail_campaignsFreeRead-onlyList mail campaigns for bulk customer communications.

[HaloPSA] Create or update an individual email within a mail campaign. Use this to add recipients or customise specific emails in a campaign. The JSON should include the campaign reference and email content. To update an existing campaign email, include the 'id' field. Field names must match HaloPSA API field names.

ParamTypeRequiredDefaultDescription
emailJsonstringyesJSON object representing the campaign email. Example: {"campaign_id": 1, "to": "user@example.com", "subject": "Monthly Update"}. Include 'id' to update an existing campaign email. Field names must match HaloPSA API field names.

[HaloPSA] Create or update a mail campaign for bulk customer communications. Campaigns allow sending targeted emails to groups of contacts or clients. The JSON should include campaign name, recipients, and content settings. To update an existing campaign, include the 'id' field. Field names must match HaloPSA API field names.

ParamTypeRequiredDefaultDescription
campaignJsonstringyesJSON object representing the mail campaign. Example: {"name": "Monthly Newsletter", "subject": "Updates from IT"}. Include 'id' to update an existing campaign. Field names must match HaloPSA API field names.

[HaloPSA] Delete a campaign email by numeric ID. This permanently removes the email from the campaign — it cannot be undone. Already-sent emails are not recalled. Use with caution. Requires a valid campaign email ID — use halo_list_campaign_emails to find IDs.

ParamTypeRequiredDefaultDescription
emailIdintegeryesThe numeric HaloPSA campaign email ID to delete. Use halo_list_campaign_emails to find valid IDs. Verify the email with halo_get_campaign_email before deleting.

[HaloPSA] Delete a mail campaign by numeric ID. This permanently removes the campaign and its configuration — it cannot be undone. Emails already sent are not affected. Use with caution. Requires a valid campaign ID — use halo_list_mail_campaigns to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
campaignIdintegeryesThe numeric HaloPSA mail campaign ID to delete. Use halo_list_mail_campaigns to find valid IDs. Verify the campaign with halo_get_mail_campaign before deleting.

[HaloPSA] Retrieve full details for a single campaign email by numeric ID. Returns the email content, recipient, send status, and delivery information. Requires a valid campaign email ID — use halo_list_campaign_emails to find IDs.

ParamTypeRequiredDefaultDescription
emailIdintegeryesThe numeric HaloPSA campaign email ID. Use halo_list_campaign_emails to find valid IDs.

[HaloPSA] Retrieve full details for a single campaign delivery log entry by numeric ID. Returns the complete log including send timestamp, delivery status, bounce details, and recipient information. Requires a valid log ID — use halo_list_campaign_logs to find IDs.

ParamTypeRequiredDefaultDescription
logIdintegeryesThe numeric HaloPSA campaign log ID. Use halo_list_campaign_logs to find valid IDs.

[HaloPSA] Retrieve full details for a single mail campaign by numeric ID. Returns the campaign configuration including recipients, schedule, and content. Requires a valid campaign ID — use halo_list_mail_campaigns to find IDs.

ParamTypeRequiredDefaultDescription
campaignIdintegeryesThe numeric HaloPSA mail campaign ID. Use halo_list_mail_campaigns to find valid IDs.

[HaloPSA] List individual email messages within mail campaigns. Returns email IDs, subjects, recipients, and send statuses. Use this to see what emails have been queued or sent for campaigns. Use halo_get_campaign_email for full email content.

[HaloPSA] List delivery logs for mail campaigns. Returns log entries with send timestamps, delivery statuses, bounce information, and recipient details. Use this to monitor campaign delivery and troubleshoot failed sends.

[HaloPSA] List mail campaigns for bulk customer communications. Returns campaign IDs, names, statuses, and summary metrics. Use this to discover campaign IDs before fetching details with halo_get_mail_campaign or viewing campaign emails with halo_list_campaign_emails.

Integration Management

ToolPlanAccessSummary
halo_get_integration_configFreeRead-onlyRetrieve full details for a single integration configuration by numeric ID.
halo_get_integration_errorFreeRead-onlyRetrieve full details for a single integration error by numeric ID.
halo_get_integration_requestFreeRead-onlyRetrieve full details for a single integration request by numeric ID.
halo_list_integration_configsFreeRead-onlyList all configured integrations with their authentication status and module details.
halo_list_integration_errorsFreeRead-onlyList integration sync errors with pagination.
halo_list_integration_field_mappingsFreeRead-onlyList field mappings between Halo and third-party integration fields.
halo_list_integration_requestsFreeRead-onlyList integration API requests (inbound and outbound) with pagination.
halo_list_integration_site_mappingsFreeRead-onlyList site mappings between Halo and third-party integrations.

[HaloPSA] Retrieve full details for a single integration configuration by numeric ID. Returns authentication settings, sync schedules, and module parameters. Requires a valid config ID — use halo_list_integration_configs to find IDs.

ParamTypeRequiredDefaultDescription
configIdintegeryesThe numeric HaloPSA integration config ID. Use halo_list_integration_configs to find valid IDs.
includeDetailsbooleannofalseInclude extended details such as field mappings and sync history (default false).

[HaloPSA] Retrieve full details for a single integration error by numeric ID. Returns the error message, stack trace, affected entity, and timestamps. Requires a valid error ID — use halo_list_integration_errors to find IDs.

ParamTypeRequiredDefaultDescription
errorIdintegeryesThe numeric HaloPSA integration error ID. Use halo_list_integration_errors to find valid IDs.

[HaloPSA] Retrieve full details for a single integration request by numeric ID. Returns the full request/response payload, headers, and status. Requires a valid request ID — use halo_list_integration_requests to find IDs.

ParamTypeRequiredDefaultDescription
requestIdintegeryesThe numeric HaloPSA integration request ID. Use halo_list_integration_requests to find valid IDs.

[HaloPSA] List all configured integrations with their authentication status and module details. Returns integration IDs, names, types, and connection states. Use this to discover which third-party integrations are set up in the Halo instance and whether they are currently connected.

[HaloPSA] List integration sync errors with pagination. Returns error messages, timestamps, and affected records. Use this to troubleshoot failed synchronisations between Halo and connected third-party systems. Filter by module or detail ID to narrow results.

ParamTypeRequiredDefaultDescription
detailIdintegernonullFilter by detail/record ID within the integration (optional).
moduleIdintegernonullFilter by integration module ID (optional). Use halo_list_integration_configs to find module IDs.
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] List field mappings between Halo and third-party integration fields. Returns how Halo fields correspond to external system fields. Use this to understand data transformation rules or troubleshoot why fields are not syncing as expected.

ParamTypeRequiredDefaultDescription
moduleIdintegernonullFilter by integration module ID (optional). Use halo_list_integration_configs to find module IDs.

[HaloPSA] List integration API requests (inbound and outbound) with pagination. Returns request/response logs for troubleshooting integration data flow. Use this to audit what data is being exchanged between Halo and third-party systems.

ParamTypeRequiredDefaultDescription
detailIdintegernonullFilter by detail/record ID within the integration (optional).
inboundOnlybooleannonullWhen true, only return inbound requests from the external system (optional).
moduleIdintegernonullFilter by integration module ID (optional). Use halo_list_integration_configs to find module IDs.
outboundOnlybooleannonullWhen true, only return outbound requests to the external system (optional).
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).

[HaloPSA] List site mappings between Halo and third-party integrations. Returns how Halo sites are linked to external system sites/locations. Use this to verify site synchronisation or troubleshoot mapping issues between Halo and connected RMM/PSA tools.

ParamTypeRequiredDefaultDescription
activeOnlybooleannonullWhen true, only return active mappings (optional).
moduleIdintegernonullFilter by integration module ID (optional). Use halo_list_integration_configs to find module IDs.
thirdPartyClientIdstringnonullFilter by third-party client/company ID in the external system (optional).

Integration Data

ToolPlanAccessSummary
halo_get_automate_dataFreeRead-onlyRetrieve ConnectWise Automate / LabTech data (computers, monitors, scripts) from Halo's connected Automate integration.
halo_get_auvik_dataFreeRead-onlyRetrieve Auvik data (networks, devices, alerts) from Halo's connected Auvik network monitoring integration.
halo_get_avalara_dataFreeRead-onlyRetrieve Avalara tax data from Halo's connected tax integration.
halo_get_azure_ad_dataFreeRead-onlyRetrieve Azure Active Directory / Entra ID data (users, groups, licenses) from Halo's connected Azure AD integration.
halo_get_azure_sentinel_dataFreeRead-onlyRetrieve Azure Sentinel / Microsoft Sentinel data (incidents, alerts, analytics rules) from Halo's connected Sentinel integration.
halo_get_business_central_dataFreeRead-onlyRetrieve Microsoft Dynamics 365 Business Central data from Halo's connected accounting integration.
halo_get_connectwise_manage_dataFreeRead-onlyRetrieve ConnectWise Manage data (tickets, companies, contacts) from Halo's connected ConnectWise integration.
halo_get_datto_rmm_dataFreeRead-onlyRetrieve Datto RMM data (devices, alerts, patch status) from Halo's connected Datto integration.
halo_get_domotz_dataFreeRead-onlyRetrieve Domotz data (agents, devices, alerts) from Halo's connected Domotz network monitoring integration.
halo_get_exact_online_dataFreeRead-onlyRetrieve Exact Online accounting data from Halo's connected integration.
halo_get_fortnox_dataFreeRead-onlyRetrieve Fortnox accounting data from Halo's connected integration.
halo_get_gocardless_dataFreeRead-onlyRetrieve GoCardless data from Halo's connected payments integration.
halo_get_gocardless_paymentsFreeRead-onlyRetrieve GoCardless payments from Halo's connected payments integration.
halo_get_intacct_dataFreeRead-onlyRetrieve Sage Intacct accounting data from Halo's connected integration.
halo_get_intune_dataFreeRead-onlyRetrieve Microsoft Intune data (devices, compliance policies, app deployments) from Halo's connected Intune integration.
halo_get_itglue_dataFreeRead-onlyRetrieve IT Glue data (configurations, flexible assets, documents) from Halo's connected IT Glue integration.
halo_get_kaseya_vsa_dataFreeRead-onlyRetrieve Kaseya VSA data (agents, machine groups, procedures) from Halo's connected Kaseya VSA integration.
halo_get_kashflow_dataFreeRead-onlyRetrieve KashFlow accounting data from Halo's connected integration.
halo_get_liongard_dataFreeRead-onlyRetrieve Liongard data (inspectors, metrics, timelines) from Halo's connected Liongard integration.
halo_get_microsoft_csp_dataFreeRead-onlyRetrieve LIVE Microsoft Partner Center data through Halo's Microsoft CSP integration passthrough.
halo_get_myob_dataFreeRead-onlyRetrieve MYOB accounting data from Halo's connected integration.
halo_get_ncentral_dataFreeRead-onlyRetrieve N-able N-central data (devices, service items, tasks) from Halo's connected N-central integration.
halo_get_pax8_dataFreeRead-onlyRetrieve Pax8 data (subscriptions, products, companies) from Halo's connected Pax8 distributor integration.
halo_get_prtg_dataFreeRead-onlyRetrieve PRTG data (sensors, devices, alerts) from Halo's connected PRTG Network Monitor integration.
halo_get_quickbooks_dataFreeRead-onlyRetrieve QuickBooks Online data (e.g. Account, Customer, Payment, Invoice, Item, Vendor) from Halo's connected QuickBooks integration.
halo_get_sage_business_cloud_dataFreeRead-onlyRetrieve Sage Business Cloud accounting data from Halo's connected integration.
halo_get_sentinelone_dataFreeRead-onlyRetrieve the SentinelOne integration connection details configured in Halo (returns the /SentinelOneDetails resource).
halo_get_snelstart_dataFreeRead-onlyRetrieve SnelStart accounting data from Halo's connected integration.
halo_get_solarwinds_rmm_dataFreeRead-onlyRetrieve SolarWinds RMM / N-able RMM data (devices, alerts, patch status) from Halo's connected SolarWinds RMM integration.
halo_get_sophos_dataFreeRead-onlyRetrieve the Sophos integration connection details configured in Halo (returns the /SophosDetails resource).
halo_get_stripe_dataFreeRead-onlyRetrieve Stripe data from Halo's connected payments integration.
halo_get_xero_dataFreeRead-onlyRetrieve Xero data from Halo's connected Xero accounting integration.

[HaloPSA] Retrieve ConnectWise Automate / LabTech data (computers, monitors, scripts) from Halo's connected Automate integration. Use datatype to select the category of RMM data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. computers, monitors, scripts).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve Auvik data (networks, devices, alerts) from Halo's connected Auvik network monitoring integration. Use datatype to select the category of network data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. networks, devices, alerts).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve Azure Active Directory / Entra ID data (users, groups, licenses) from Halo's connected Azure AD integration. Use datatype to select the category of data to retrieve.

ParamTypeRequiredDefaultDescription
azureTenantsstringnonullFilter by Azure tenant ID or name.
datatypestringnonullData category to retrieve (e.g. users, groups, licenses).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve Azure Sentinel / Microsoft Sentinel data (incidents, alerts, analytics rules) from Halo's connected Sentinel integration. Use datatype to select the category of security data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. incidents, alerts, rules).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve ConnectWise Manage data (tickets, companies, contacts) from Halo's connected ConnectWise integration. Use datatype to select the category of PSA data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. tickets, companies, contacts).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve Datto RMM data (devices, alerts, patch status) from Halo's connected Datto integration. Use datatype to select the category of RMM data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. devices, alerts, patches).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve Domotz data (agents, devices, alerts) from Halo's connected Domotz network monitoring integration. Use datatype to select the category of monitoring data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. agents, devices, alerts).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve Microsoft Intune data (devices, compliance policies, app deployments) from Halo's connected Intune integration. Use datatype to select the category of data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. devices, compliancepolicies, apps).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve IT Glue data (configurations, flexible assets, documents) from Halo's connected IT Glue integration. Use datatype to select the category of documentation data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. configurations, flexibleassets, documents).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve Kaseya VSA data (agents, machine groups, procedures) from Halo's connected Kaseya VSA integration. Use datatype to select the category of RMM data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. agents, machinegroups, procedures).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve KashFlow accounting data from Halo's connected integration. Use datatype to select the category of data, and tenantId to scope to a specific KashFlow tenant.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (optional).
tenantIdintegernonullKashFlow tenant ID to scope results to (optional).

[HaloPSA] Retrieve Liongard data (inspectors, metrics, timelines) from Halo's connected Liongard integration. Use datatype to select the category of environment data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. inspectors, metrics, timelines).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve LIVE Microsoft Partner Center data through Halo's Microsoft CSP integration passthrough. IMPORTANT: for 'what M365 subscriptions does this client have', use halo_list_software_licences / halo_get_software_licence instead — Halo's CSP integration writes each subscription AS a Software Licence record (tenant, SKU, seats, term, billing cycle, auto-renew, dates, price), those tools read Halo's own records, and they work even when this live passthrough returns 403. This tool requires the Microsoft CSP integration to be fully connected in Halo (two Azure app registrations + GDAP consent), and Halo gates full subscription data to Tier 1 DIRECT CSP partners — indirect partners get the 'All Subscribed SKUs' import only. Use datatype to select the category of data (an invalid or omitted value can return Halo's 400 'Invalid Data Type').

ParamTypeRequiredDefaultDescription
azureTenantsstringnonullFilter by Azure tenant ID or name.
continuationTokenstringnonullContinuation token from a previous page's response (optional). Maps to continuationToken.
datatypestringnonullData category to retrieve (e.g. subscriptions, licenses, customers). Passed through to Halo verbatim; an unrecognized value returns Halo's 400 'Invalid Data Type'.
doPaginatebooleannonullEnable pagination of the integration data (optional). Maps to doPaginate.
nextLinkstringnonullNext-page link from a previous page's response (optional). Maps to nextLink.
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve N-able N-central data (devices, service items, tasks) from Halo's connected N-central integration. Use datatype to select the category of RMM data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. devices, serviceitems, tasks).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve Pax8 data (subscriptions, products, companies) from Halo's connected Pax8 distributor integration. Use datatype to select the category of distributor data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. subscriptions, products, companies).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve PRTG data (sensors, devices, alerts) from Halo's connected PRTG Network Monitor integration. Use datatype to select the category of monitoring data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. sensors, devices, alerts).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve QuickBooks Online data (e.g. Account, Customer, Payment, Invoice, Item, Vendor) from Halo's connected QuickBooks integration. datatype selects the QBO entity type (friendly lowercase/plural forms like "accounts" are normalized to the QBO PascalCase singular "Account"). When companyId is omitted the tool auto-targets the single connected QBO company if exactly one is connected; if zero or several are connected it returns a clear "companyId required" error. The optional connection/account filters narrow results further.

ParamTypeRequiredDefaultDescription
accountClassificationstringnonullFilter to a QuickBooks account classification (optional).
accountSubtypestringnonullFilter to a QuickBooks account sub-type (optional).
accountTypestringnonullFilter to a QuickBooks account type (optional).
companyIdstringnonullQuickBooks Online company ID (QBO realm id) to scope results to. Optional: when omitted, defaults to the single connected QBO company if exactly one is connected; if zero or multiple are connected the tool returns a 'companyId required' validation error. Use halo_list_quickbooks_details to discover company IDs.
connectionIdintegernonullHalo connection ID for a specific QBO connection (optional).
datatypestringnonullQuickBooks Online entity type to retrieve. Accepts QBO entity names (e.g. Account, Customer, Invoice, Payment, Item, Vendor); common lowercase or plural forms like "accounts" or "customers" are normalized automatically to the QBO PascalCase singular.

[HaloPSA] Retrieve the SentinelOne integration connection details configured in Halo (returns the /SentinelOneDetails resource). NOTE: in the current Halo API there is no standalone SentinelOne data-read endpoint — the legacy /IntegrationData/Get/SentinelOne path no longer exists — so this returns the connection-configuration records rather than agent/threat data.

[HaloPSA] Retrieve SnelStart accounting data from Halo's connected integration. Use datatype to select the category of data.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (optional).

[HaloPSA] Retrieve SolarWinds RMM / N-able RMM data (devices, alerts, patch status) from Halo's connected SolarWinds RMM integration. Use datatype to select the category of RMM data to retrieve.

ParamTypeRequiredDefaultDescription
datatypestringnonullData category to retrieve (e.g. devices, alerts, patches).
searchstringnonullSearch text to filter results.

[HaloPSA] Retrieve the Sophos integration connection details configured in Halo (returns the /SophosDetails resource). NOTE: in the current Halo API there is no standalone Sophos data-read endpoint — the legacy /IntegrationData/Get/Sophos path no longer exists — so this returns the connection-configuration records rather than endpoint/alert data.

[HaloPSA] Retrieve Xero data from Halo's connected Xero accounting integration. datatype is REQUIRED and must name a Xero entity using Xero's PascalCase naming — e.g. Invoices, Contacts, Payments, Accounts, CreditNotes, Items, BankTransactions. Lowercase or guessed-plural values ("invoices", "contact") are rejected by Halo with 'Invalid Data Type'. This tool passes datatype straight through to Halo's Xero integration, so the Xero integration must be connected in Halo (Configuration > Integrations > Xero) or every datatype returns 'Invalid Data Type'.

ParamTypeRequiredDefaultDescription
datatypestringnonullREQUIRED. Xero entity to retrieve, PascalCase (Xero convention): Invoices, Contacts, Payments, Accounts, CreditNotes, Items, BankTransactions, etc. Omitting it — or passing a lowercase/plural-guessed value — makes Halo return 'Invalid Data Type'.
searchstringnonullSearch text to filter results.

Accounting Details

ToolPlanAccessSummary
halo_get_avalara_detailFreeRead-onlyGet a single Avalara connection detail by ID.
halo_get_business_central_detailFreeRead-onlyGet a single Business Central connection detail by ID.
halo_get_fortnox_detailFreeRead-onlyGet a single Fortnox connection detail by ID.
halo_get_kashflow_detailFreeRead-onlyGet a single KashFlow connection detail by ID.
halo_get_myob_detailFreeRead-onlyGet a single MYOB connection detail by ID.
halo_get_quickbooks_detailFreeRead-onlyGet a single QuickBooks Online connection detail by ID.
halo_get_sage_business_cloud_detailFreeRead-onlyGet a single Sage Business Cloud connection detail by ID.
halo_get_xero_detailFreeRead-onlyGet a single Xero connection detail by ID.
halo_list_avalara_detailsFreeRead-onlyList Avalara tax-integration connection details configured in Halo.
halo_list_business_central_detailsFreeRead-onlyList Microsoft Dynamics 365 Business Central connection details configured in Halo.
halo_list_fortnox_detailsFreeRead-onlyList Fortnox connection details configured in Halo.
halo_list_kashflow_detailsFreeRead-onlyList KashFlow connection details configured in Halo.
halo_list_myob_detailsFreeRead-onlyList MYOB connection details configured in Halo.
halo_list_quickbooks_detailsFreeRead-onlyList QuickBooks Online connection details configured in Halo.
halo_list_sage_business_cloud_detailsFreeRead-onlyList Sage Business Cloud connection details configured in Halo.
halo_list_xero_detailsFreeRead-onlyList Xero connection details configured in Halo.
ParamTypeRequiredDefaultDescription
idintegeryesThe numeric Avalara detail record ID.
ParamTypeRequiredDefaultDescription
idintegeryesThe numeric Business Central detail record ID.
includeDetailsbooleannonullInclude the full detail payload (optional).
ParamTypeRequiredDefaultDescription
idintegeryesThe numeric Fortnox detail record ID.
ParamTypeRequiredDefaultDescription
idintegeryesThe numeric KashFlow detail record ID.
includeDetailsbooleannonullInclude the full detail payload (optional).
ParamTypeRequiredDefaultDescription
idintegeryesThe numeric MYOB detail record ID.
ParamTypeRequiredDefaultDescription
idintegeryesThe numeric QuickBooks detail record ID.
includeDetailsbooleannonullInclude the full detail payload (optional).
ParamTypeRequiredDefaultDescription
idintegeryesThe numeric Sage Business Cloud detail record ID.
includeDetailsbooleannonullInclude the full detail payload (optional).
ParamTypeRequiredDefaultDescription
idintegeryesThe numeric Xero detail record ID.
includeDetailsbooleannonullInclude the full detail payload (optional).
ParamTypeRequiredDefaultDescription
companyIdstringnonullFilter to a specific company ID (optional).
connectedOnlybooleannonullReturn only currently-connected records (optional).
ParamTypeRequiredDefaultDescription
includeDisabledbooleannonullInclude disabled records (optional).
includeEnabledbooleannonullInclude enabled records (optional).
tenantIdintegernonullFilter to a specific KashFlow tenant ID (optional).
ParamTypeRequiredDefaultDescription
companyIdstringnonullFilter to a specific QuickBooks company ID (optional).
connectedOnlybooleannonullReturn only currently-connected records (optional).
ParamTypeRequiredDefaultDescription
connectedOnlybooleannonullReturn only currently-connected records (optional).
tenantIdstringnonullFilter to a specific Sage tenant ID (optional).
ParamTypeRequiredDefaultDescription
connectedOnlybooleannonullReturn only currently-connected records (optional).
tenantIdstringnonullFilter to a specific Xero tenant ID (optional).

MCP & AI

ToolPlanAccessSummary
halo_create_mcp_connectionProDestructiveCreate a new MCP (Model Context Protocol) connection.
halo_create_pii_detectionProDestructiveCreate a new PII (Personally Identifiable Information) detection rule.
halo_delete_mcp_connectionProDestructiveDelete an MCP connection by numeric ID.
halo_get_mcp_connectionFreeRead-onlyRetrieve a single MCP connection by numeric ID.
halo_get_pii_detectionFreeRead-onlyRetrieve a single PII detection rule by numeric ID.
halo_get_virtual_agent_mcpFreeRead-onlyRetrieve the MCP (Model Context Protocol) configuration linked to a virtual agent.
halo_link_virtual_agent_mcpProDestructiveLink MCP (Model Context Protocol) capabilities to a virtual agent.
halo_list_mcp_connectionsFreeRead-onlyList all MCP (Model Context Protocol) connections configured in HaloPSA.
halo_list_pii_detectionsFreeRead-onlyList all PII (Personally Identifiable Information) detection rules configured in HaloPSA.
halo_unlink_virtual_agent_mcpProDestructiveUnlink MCP (Model Context Protocol) capabilities from a virtual agent.

[HaloPSA] Create a new MCP (Model Context Protocol) connection. Provide the record as a raw HaloPSA JSON object. Returns the created connection with its assigned ID.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the MCP connection record (e.g. {"name": "My MCP Connection", ...}). Field names must match HaloPSA API field names.

[HaloPSA] Create a new PII (Personally Identifiable Information) detection rule. Provide the record as a raw HaloPSA JSON object. Returns the created detection with its assigned ID.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the PII detection record (e.g. {"name": "Credit Card Numbers", ...}). Field names must match HaloPSA API field names.

[HaloPSA] Delete an MCP connection by numeric ID. This permanently removes the MCP connection — it cannot be undone. Requires a valid connection ID — use halo_list_mcp_connections to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA MCP connection ID to delete. Use halo_list_mcp_connections to find valid IDs.

[HaloPSA] Retrieve a single MCP connection by numeric ID. Returns full connection details including name and configuration. Requires a valid connection ID — use halo_list_mcp_connections to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA MCP connection ID. Use halo_list_mcp_connections to find valid IDs.

[HaloPSA] Retrieve a single PII detection rule by numeric ID. Returns full detection details including name and configuration. Requires a valid detection ID — use halo_list_pii_detections to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA PII detection ID. Use halo_list_pii_detections to find valid IDs.

[HaloPSA] Retrieve the MCP (Model Context Protocol) configuration linked to a virtual agent. Returns the MCP link details for the given virtual agent. Requires the virtual agent's UUID.

ParamTypeRequiredDefaultDescription
virtualAgentIdstringyesThe HaloPSA virtual agent ID (a UUID/GUID string).

[HaloPSA] List all MCP (Model Context Protocol) connections configured in HaloPSA. Returns connection summaries including ID, name, and configuration. Use this to review MCP integrations or find connection IDs before fetching full details.

[HaloPSA] List all PII (Personally Identifiable Information) detection rules configured in HaloPSA. Returns detection summaries including ID, name, and configuration. Use this to review PII detection rules or find detection IDs before fetching full details.

Integration Diagnostics

ToolPlanAccessSummary
halo_create_integration_cursorProDestructiveCreate or update an integration cursor.
halo_create_intermedia_detailProDestructiveCreate or update an Intermedia connection detail.
halo_create_sftp_detailProDestructiveCreate or update an SFTP connection detail.
halo_delete_integration_cursorProDestructiveDelete an integration cursor by numeric ID.
halo_delete_intermedia_detailProDestructiveDelete an Intermedia connection detail by numeric ID.
halo_delete_sftp_detailProDestructiveDelete an SFTP connection detail by numeric ID.
halo_get_clusterFreeRead-onlyRetrieve a single cluster by numeric ID.
halo_get_integration_cursorFreeRead-onlyRetrieve a single integration cursor by numeric ID.
halo_get_intermedia_detailFreeRead-onlyRetrieve a single Intermedia connection detail by numeric ID.
halo_get_periodic_historyFreeRead-onlyRetrieve periodic (recurring) invoice/billing history.
halo_get_sftp_detailFreeRead-onlyRetrieve a single SFTP connection detail by numeric ID.
halo_list_clustersFreeRead-onlyList Halo clusters.
halo_list_integration_cursorsFreeRead-onlyList integration cursors.
halo_list_intermedia_detailsFreeRead-onlyList configured Intermedia (Unite / cloud PBX) connection details used by Halo's telephony integration.
halo_list_sftp_detailsFreeRead-onlyList configured SFTP connection details used by Halo integrations and imports.

[HaloPSA] Create or update an integration cursor. Provide the cursor object as JSON (bodyJson). Manipulating a cursor's watermark changes where an integration's next sync resumes — incorrect values can cause skipped or re-processed records, so use with care.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object describing the integration cursor to create or update.

[HaloPSA] Create or update an Intermedia connection detail. Provide the Intermedia detail object as JSON (bodyJson) with the credentials/config required for Halo's telephony integration.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object describing the Intermedia detail to create or update.

[HaloPSA] Create or update an SFTP connection detail. Provide the SFTP detail object as JSON (bodyJson), including host, port, credentials, and path as required by your integration.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object describing the SFTP detail to create or update.

[HaloPSA] Delete an integration cursor by numeric ID. This removes the sync watermark for an integration — the next sync may re-process from the beginning. Cannot be undone. Use halo_list_integration_cursors to find IDs first.

ParamTypeRequiredDefaultDescription
idintegeryesNumeric ID of the integration cursor to delete.

[HaloPSA] Delete an Intermedia connection detail by numeric ID. This permanently removes the telephony integration configuration and cannot be undone. Use halo_list_intermedia_details to find IDs first.

ParamTypeRequiredDefaultDescription
idintegeryesNumeric ID of the Intermedia detail to delete.

[HaloPSA] Delete an SFTP connection detail by numeric ID. This permanently removes the SFTP configuration and any integration depending on it will stop syncing. Cannot be undone. Use halo_list_sftp_details to find IDs first.

ParamTypeRequiredDefaultDescription
idintegeryesNumeric ID of the SFTP detail to delete.

[HaloPSA] Retrieve a single cluster by numeric ID. Use halo_list_clusters to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesNumeric ID of the cluster to retrieve.

[HaloPSA] Retrieve a single integration cursor by numeric ID. Returns the sync watermark/position detail for one integration cursor — use halo_list_integration_cursors to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesNumeric ID of the integration cursor to retrieve.

[HaloPSA] Retrieve a single Intermedia connection detail by numeric ID. Use halo_list_intermedia_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesNumeric ID of the Intermedia detail to retrieve.

[HaloPSA] Retrieve periodic (recurring) invoice/billing history. Returns the run history for Halo's periodic invoicing processes — useful for diagnosing recurring-billing generation issues.

[HaloPSA] Retrieve a single SFTP connection detail by numeric ID. Use halo_list_sftp_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesNumeric ID of the SFTP detail to retrieve.

[HaloPSA] List Halo clusters. Clusters describe the server/node topology of a Halo deployment and are useful for diagnosing infrastructure or multi-node configuration questions.

[HaloPSA] List integration cursors. Integration cursors track the sync position/watermark for Halo's connected integrations so incremental syncs resume where they left off. Useful for diagnosing stalled or duplicated integration syncs.

[HaloPSA] List configured Intermedia (Unite / cloud PBX) connection details used by Halo's telephony integration. Useful for diagnosing call-logging or click-to-dial integration issues.

[HaloPSA] List configured SFTP connection details used by Halo integrations and imports. Useful for diagnosing file-based integration sync issues.

Invoice & Order Extras

ToolPlanAccessSummary
halo_create_invoice_statusProDestructiveCreate a new invoice status.
halo_delete_invoice_statusProDestructiveDelete an invoice status by numeric ID.
halo_expire_client_prepayProDestructiveExpire one or more client prepay balances.
halo_get_invoice_statusFreeRead-onlyRetrieve a single invoice status by numeric ID.
halo_list_invoice_statusesFreeRead-onlyList all invoice statuses configured in HaloPSA.
halo_register_invoice_viewProWriteRecord that a user or contact has viewed an invoice.
halo_register_kb_article_viewProWriteRecord that a user or contact has viewed a knowledge base article.
halo_register_purchase_order_viewProWriteRecord that a user or contact has viewed a purchase order.
halo_register_sales_order_viewProWriteRecord that a user or contact has viewed a sales order.
halo_review_expenseProDestructiveMark one or more expenses as reviewed.
halo_update_invoice_linesProDestructiveUpdate one or more invoice line items in bulk.

[HaloPSA] Create a new invoice status. Provide the status definition as a JSON object. Returns the created status with its assigned ID. Example: {"name": "Awaiting Payment"}

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object describing the invoice status to create. Required: name. Example: {"name": "Awaiting Payment"}

[HaloPSA] Delete an invoice status by numeric ID. This permanently removes the status definition. Use halo_list_invoice_statuses to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA invoice status ID to delete. Use halo_list_invoice_statuses to find valid IDs.

[HaloPSA] Expire one or more client prepay balances. This is a financial action that voids remaining prepaid credit — provide a JSON array of prepay objects to expire, plus the exact confirmation phrase. Returns the expired prepay records.

ParamTypeRequiredDefaultDescription
confirmationstringyesTo authorize this expiry, set this to exactly "EXPIRE CLIENT PREPAY".
prepayJsonstringyesJSON array of client prepay objects to expire. Each object should include the prepay ID. Example: [{"id": 7}]

[HaloPSA] Retrieve a single invoice status by numeric ID. Returns the full status definition. Use halo_list_invoice_statuses to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA invoice status ID. Use halo_list_invoice_statuses to find valid IDs.

[HaloPSA] List all invoice statuses configured in HaloPSA. Returns status definitions including ID, name, and ordering. Use this to discover valid invoice status IDs for filtering or updating invoices.

[HaloPSA] Record that a user or contact has viewed an invoice. Provide the view details as a JSON object (typically the invoice ID and viewer). Returns the recorded view.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object describing the invoice view to record. Typically includes the invoice ID and viewer details. Example: {"invoice_id": 1234}

[HaloPSA] Record that a user or contact has viewed a knowledge base article. Provide the view details as a JSON object (typically the article ID and viewer). Returns the recorded view.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object describing the KB article view to record. Typically includes the article ID and viewer details. Example: {"kbarticle_id": 88}

[HaloPSA] Record that a user or contact has viewed a purchase order. Provide the view details as a JSON object (typically the purchase order ID and viewer). Returns the recorded view.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object describing the purchase order view to record. Typically includes the purchase order ID and viewer details. Example: {"purchaseorder_id": 42}

[HaloPSA] Record that a user or contact has viewed a sales order. Provide the view details as a JSON object (typically the sales order ID and viewer). Returns the recorded view.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object describing the sales order view to record. Typically includes the sales order ID and viewer details. Example: {"salesorder_id": 55}

[HaloPSA] Mark one or more expenses as reviewed. This is a financial approval action — provide a JSON array of expense objects to review, plus the exact confirmation phrase. Returns the reviewed expenses.

ParamTypeRequiredDefaultDescription
confirmationstringyesTo authorize this review, set this to exactly "REVIEW EXPENSE".
expensesJsonstringyesJSON array of expense objects to mark as reviewed. Each object should include the expense ID. Example: [{"id": 12}]

[HaloPSA] Update one or more invoice line items in bulk. Provide a JSON array of invoice line objects. Each object must carry the line's own id AND ihid — the parent invoice-header id, which is how Halo locates the invoice; without it the API answers 400 "Invoice not found (id=)". Read both ids with halo_get_invoice or halo_list_invoice_lines. For a safer edit that preserves every column you do not mention, prefer halo_update_invoice (fetch-merge-write). Returns the updated lines.

ParamTypeRequiredDefaultDescription
linesJsonstringyesJSON array of invoice line objects to update. Each object should include the line id, the parent ihid (invoice-header id), and the fields to change. Example: [{"id": 101, "ihid": 42, "qty_order": 3, "unit_price": 49.99}]

CRM & Service Extras

ToolPlanAccessSummary
halo_create_crm_note_replyProWriteCreate a reply against a CRM note.
halo_create_serviceProWriteCreate a new service in the service catalog/service-status surface.
halo_delete_crm_note_replyProDestructiveDelete a CRM note reply by numeric ID.
halo_delete_serviceProDestructiveDelete a service from the service catalog by numeric ID.
halo_get_crm_note_replyFreeRead-onlyRetrieve a single CRM note reply by numeric ID.
halo_get_security_question_callFreeRead-onlyRetrieve the security question to verify a caller for a given call/ticket by numeric ID.
halo_list_crm_note_repliesFreeRead-onlyList replies left against CRM notes.
halo_list_milestonesFreeRead-onlyList project milestones.
halo_list_users_onbehalfFreeRead-onlyList the users the current agent can act on behalf of.
halo_unsubscribe_serviceProDestructiveUnsubscribe the current user/agent from a service so they stop receiving status notifications.
halo_validate_security_questionProWriteValidate a user's answer to a security question.
halo_validate_security_question_callProWriteValidate a caller's answer to a security question for a call/ticket.

[HaloPSA] Create a reply against a CRM note. This adds a threaded follow-up visible to CRM users. Returns the created reply. Provide the reply details as a JSON object.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with CRM note reply fields. Typically requires the parent note ID and reply text. Example: {"crmnote_id": 1, "note": "Followed up with the client by phone"}

[HaloPSA] Create a new service in the service catalog/service-status surface. Returns the created service with its assigned ID. Provide service details as a JSON object.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with service fields. Typically requires name and may include description, status, and category. Example: {"name": "Email Hosting", "description": "Hosted Exchange service"}

[HaloPSA] Delete a CRM note reply by numeric ID. This permanently removes the threaded reply from the CRM note. Use halo_list_crm_note_replies to find valid IDs. WARNING: This action is irreversible.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA CRM note reply ID to delete. Use halo_list_crm_note_replies to find valid IDs.

[HaloPSA] Delete a service from the service catalog by numeric ID. This permanently removes the service. WARNING: This action is irreversible and may affect tickets or subscriptions linked to the service.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA service ID to delete.

[HaloPSA] Retrieve a single CRM note reply by numeric ID. Returns the full reply including parent note, author, date, and content. Use halo_list_crm_note_replies to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA CRM note reply ID. Use halo_list_crm_note_replies to find valid IDs.

[HaloPSA] Retrieve the security question to verify a caller for a given call/ticket by numeric ID. Returns the challenge question used to authenticate the caller's identity. Use this before validating a caller's answer.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA call/ticket ID to fetch the security question for.

[HaloPSA] List replies left against CRM notes. Returns reply entries including ID, parent note, author, date, and content. Use this to review threaded follow-ups on CRM interaction notes.

[HaloPSA] List project milestones. Returns milestone entries including ID, name, target date, and linked project. Use this to review project schedules and delivery checkpoints.

[HaloPSA] List the users the current agent can act on behalf of. Returns user summaries the caller is authorized to represent for self-service or impersonation flows. Use this to discover valid on-behalf-of targets.

[HaloPSA] Unsubscribe the current user/agent from a service so they stop receiving status notifications. This removes the subscription for the given service. Use a valid service ID — affected notifications stop after unsubscribing.

ParamTypeRequiredDefaultDescription
serviceIdintegeryesThe numeric HaloPSA service ID to unsubscribe from.

[HaloPSA] Validate a user's answer to a security question. Returns the validation result. Provide the user identity and the answer as a JSON object — used to authenticate a contact's identity before sensitive actions.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the security-question validation payload, including the user identity and the answer. Example: {"user_id": 42, "answer": "Fluffy"}

[HaloPSA] Validate a caller's answer to a security question for a call/ticket. Returns the validation result. Provide the call ID and the caller's answer as a JSON object — use halo_get_security_question_call to fetch the question first.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the call security-question validation payload, including the call ID and the caller's answer. Example: {"call_id": 123, "answer": "Fluffy"}

Integration Data (Extended)

ToolPlanAccessSummary
halo_get_atera_dataFreeRead-onlyRetrieve Atera data from Halo's connected Atera integration.
halo_get_autotask_dataFreeRead-onlyRetrieve Autotask data from Halo's connected Autotask integration.
halo_get_barracuda_dataFreeRead-onlyRetrieve Barracuda data from Halo's connected Barracuda integration.
halo_get_connectwise_control_dataFreeRead-onlyRetrieve ConnectWise Control data from Halo's connected ConnectWise Control integration.
halo_get_connectwise_rmm_dataFreeRead-onlyRetrieve ConnectWise RMM data from Halo's connected ConnectWise RMM integration.
halo_get_datto_commerce_dataFreeRead-onlyRetrieve Datto Commerce data from Halo's connected Datto Commerce integration.
halo_get_device42_dataFreeRead-onlyRetrieve Device42 data from Halo's connected Device42 integration.
halo_get_devops_dataFreeRead-onlyRetrieve Azure DevOps data from Halo's connected Azure DevOps integration.
halo_get_dynamics_crm_dataFreeRead-onlyRetrieve Dynamics CRM data from Halo's connected Dynamics CRM integration.
halo_get_freshdesk_dataFreeRead-onlyRetrieve Freshdesk data from Halo's connected Freshdesk integration.
halo_get_google_calendars_dataFreeRead-onlyRetrieve Google Calendars data from Halo's connected Google Calendars integration.
halo_get_google_workplace_dataFreeRead-onlyRetrieve Google Workplace data from Halo's connected Google Workplace integration.
halo_get_gotoassist_dataFreeRead-onlyRetrieve GoToAssist data from Halo's connected GoToAssist integration.
halo_get_hubspot_dataFreeRead-onlyRetrieve HubSpot data from Halo's connected HubSpot integration.
halo_get_jamf_dataFreeRead-onlyRetrieve Jamf data from Halo's connected Jamf integration.
halo_get_jira_dataFreeRead-onlyRetrieve Jira data from Halo's connected Jira integration.
halo_get_jira_service_management_dataFreeRead-onlyRetrieve Jira Service Management data from Halo's connected Jira Service Management integration.
halo_get_lansweeper_dataFreeRead-onlyRetrieve Lansweeper data from Halo's connected Lansweeper integration.
halo_get_logicmonitor_dataFreeRead-onlyRetrieve LogicMonitor data from Halo's connected LogicMonitor integration.
halo_get_meraki_dataFreeRead-onlyRetrieve Meraki data from Halo's connected Meraki integration.
halo_get_ninja_rmm_dataFreeRead-onlyRetrieve NinjaRMM data from Halo's connected NinjaRMM integration.
halo_get_okta_dataFreeRead-onlyRetrieve Okta data from Halo's connected Okta integration.
halo_get_pagerduty_dataFreeRead-onlyRetrieve PagerDuty data from Halo's connected PagerDuty integration.
halo_get_passportal_dataFreeRead-onlyRetrieve Passportal data from Halo's connected Passportal integration.
halo_get_qualys_dataFreeRead-onlyRetrieve Qualys data from Halo's connected Qualys integration.
halo_get_salesforce_dataFreeRead-onlyRetrieve Salesforce data from Halo's connected Salesforce integration.
halo_get_servicenow_dataFreeRead-onlyRetrieve ServiceNow data from Halo's connected ServiceNow integration.
halo_get_servicenow_integration_dataFreeRead-onlyRetrieve ServiceNow Integration data from Halo's connected ServiceNow Integration integration.
halo_get_shopify_dataFreeRead-onlyRetrieve Shopify data from Halo's connected Shopify integration.
halo_get_slack_dataFreeRead-onlyRetrieve Slack data from Halo's connected Slack integration.
halo_get_snow_dataFreeRead-onlyRetrieve Snow data from Halo's connected Snow integration.
halo_get_splashtop_dataFreeRead-onlyRetrieve Splashtop data from Halo's connected Splashtop integration.
halo_get_splunk_oncall_dataFreeRead-onlyRetrieve Splunk On-Call data from Halo's connected Splunk On-Call integration.
halo_get_syncro_dataFreeRead-onlyRetrieve Syncro data from Halo's connected Syncro integration.
halo_get_tanium_dataFreeRead-onlyRetrieve Tanium data from Halo's connected Tanium integration.
halo_get_zabbix_dataFreeRead-onlyRetrieve Zabbix data from Halo's connected Zabbix integration.

Integration Sync

ToolPlanAccessSummary
halo_adjust_csp_quantityProDestructiveChange the seat quantity of a Microsoft CSP licence via Halo's connected Microsoft Partner Center integration.
halo_adjust_pax8_quantityProDestructiveChange the seat quantity of a Pax8 subscription licence via Halo's connected Pax8 integration.
halo_clear_csp_licence_cacheProWriteClear Halo's cached Microsoft CSP licence-key lookups, forcing a fresh fetch from Microsoft Partner Center on the next read.
halo_import_business_centralProDestructiveTrigger an import sync against the connected Microsoft Dynamics 365 Business Central accounting integration.
halo_import_exact_onlineProDestructiveTrigger an import sync against the connected Exact Online accounting integration.
halo_import_fortnoxProDestructiveTrigger an import sync against the connected Fortnox accounting integration.
halo_import_intacctProDestructiveTrigger an import sync against the connected Sage Intacct accounting integration.
halo_import_kashflowProDestructiveTrigger an import sync against the connected KashFlow accounting integration.
halo_import_myobProDestructiveTrigger an import sync against the connected MYOB accounting integration.
halo_import_quickbooks_onlineProDestructiveTrigger an import sync against the connected QuickBooks Online accounting integration.
halo_import_sage_business_cloudProDestructiveTrigger an import sync against the connected Sage Business Cloud accounting integration.
halo_import_snelstartProDestructiveTrigger an import sync against the connected SnelStart accounting integration.
halo_import_xeroProDestructiveTrigger an import sync against the connected Xero accounting integration.
halo_send_xero_invoiceProDestructivePush an invoice to the connected Xero accounting integration.
halo_stripe_create_payment_intentProDestructiveCreate a Stripe PaymentIntent via Halo's connected Stripe payments integration.
halo_stripe_create_portal_sessionProDestructiveCreate a Stripe customer billing portal session via Halo's connected Stripe payments integration.
halo_stripe_create_setup_intentProDestructiveCreate a Stripe SetupIntent via Halo's connected Stripe payments integration.
halo_stripe_create_webhookProDestructiveCreate a Stripe webhook endpoint via Halo's connected Stripe payments integration.
halo_stripe_update_invoice_paymentProDestructiveUpdate an invoice payment record in Stripe via Halo's connected Stripe payments integration.

[HaloPSA] Change the seat quantity of a Microsoft CSP licence via Halo's connected Microsoft Partner Center integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
confirmationstringyesConfirmation guard. Must equal exactly "ADJUST CSP QUANTITY".
currentQuantityintegeryesCurrent seat quantity (for optimistic-concurrency checks upstream).
licenceIdintegeryesHalo licence ID to adjust.
newQuantityintegeryesNew seat quantity to apply.

[HaloPSA] Change the seat quantity of a Pax8 subscription licence via Halo's connected Pax8 integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
confirmationstringyesConfirmation guard. Must equal exactly "ADJUST PAX8 QUANTITY".
currentQuantityintegeryesCurrent seat quantity (for optimistic-concurrency checks upstream).
licenceIdintegeryesHalo licence ID to adjust.
newQuantityintegeryesNew seat quantity to apply.

[HaloPSA] Clear Halo's cached Microsoft CSP licence-key lookups, forcing a fresh fetch from Microsoft Partner Center on the next read. Idempotent and non-destructive.

[HaloPSA] Trigger an import sync against the connected Microsoft Dynamics 365 Business Central accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (array) for the import.
confirmationstringyesConfirmation guard. Must equal exactly "SYNC BUSINESS CENTRAL".

[HaloPSA] Trigger an import sync against the connected Exact Online accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (array) for the import.
confirmationstringyesConfirmation guard. Must equal exactly "SYNC EXACT ONLINE".

[HaloPSA] Trigger an import sync against the connected Fortnox accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (array) for the import.
confirmationstringyesConfirmation guard. Must equal exactly "SYNC FORTNOX".

[HaloPSA] Trigger an import sync against the connected Sage Intacct accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
confirmationstringyesConfirmation guard. Must equal exactly "SYNC INTACCT".
datatypestringnonullOptional Sage Intacct data type to scope the import.
locIdstringnonullOptional Sage Intacct location ID to scope the import.

[HaloPSA] Trigger an import sync against the connected KashFlow accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (array) for the import.
confirmationstringyesConfirmation guard. Must equal exactly "SYNC KASHFLOW".

[HaloPSA] Trigger an import sync against the connected MYOB accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (array) for the import.
confirmationstringyesConfirmation guard. Must equal exactly "SYNC MYOB".

[HaloPSA] Trigger an import sync against the connected QuickBooks Online accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (array) for the import.
confirmationstringyesConfirmation guard. Must equal exactly "SYNC QUICKBOOKS".

[HaloPSA] Trigger an import sync against the connected Sage Business Cloud accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (array) for the import.
confirmationstringyesConfirmation guard. Must equal exactly "SYNC SAGE".

[HaloPSA] Trigger an import sync against the connected SnelStart accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
confirmationstringyesConfirmation guard. Must equal exactly "SYNC SNELSTART".

[HaloPSA] Trigger an import sync against the connected Xero accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (array) for the import.
confirmationstringyesConfirmation guard. Must equal exactly "SYNC XERO".

[HaloPSA] Push an invoice to the connected Xero accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (object) describing the invoice to send.
confirmationstringyesConfirmation guard. Must equal exactly "SEND XERO INVOICE".

[HaloPSA] Create a Stripe PaymentIntent via Halo's connected Stripe payments integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (object) for the Stripe PaymentIntent creation.
confirmationstringyesConfirmation guard. Must equal exactly "STRIPE CREATE PAYMENT INTENT".

[HaloPSA] Create a Stripe customer billing portal session via Halo's connected Stripe payments integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (object) for the Stripe portal session creation.
confirmationstringyesConfirmation guard. Must equal exactly "STRIPE CREATE PORTAL SESSION".

[HaloPSA] Create a Stripe SetupIntent via Halo's connected Stripe payments integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (object) for the Stripe SetupIntent creation.
confirmationstringyesConfirmation guard. Must equal exactly "STRIPE CREATE SETUP INTENT".

[HaloPSA] Create a Stripe webhook endpoint via Halo's connected Stripe payments integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (object) for the Stripe webhook creation.
confirmationstringyesConfirmation guard. Must equal exactly "STRIPE CREATE WEBHOOK".

[HaloPSA] Update an invoice payment record in Stripe via Halo's connected Stripe payments integration. WARNING: irreversibly syncs data to/from the external accounting system.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRaw Halo JSON body (object) for the Stripe invoice payment update.
confirmationstringyesConfirmation guard. Must equal exactly "STRIPE UPDATE INVOICE PAYMENT".

Standard Request Templates

ToolPlanAccessSummary
halo_create_templateProWriteCreate a new standard request template.
halo_delete_templateProDestructiveDelete a standard request template by numeric ID.
halo_get_templateFreeRead-onlyRetrieve full details for a single standard request template by numeric ID.
halo_list_templatesFreeRead-onlyList standard request templates (pre-configured ticket blueprints) with pagination.

[HaloPSA] Create a new standard request template. Templates define pre-configured ticket blueprints that streamline ticket creation. Returns the created template with its assigned ID. The JSON should include at minimum a name and ticket type. Follow up with halo_get_template to verify creation.

ParamTypeRequiredDefaultDescription
templateJsonstringyesJSON object representing the template to create. Example: {"name": "Password Reset", "tickettype_id": 1, "summary": "User password reset request"}. Field names must match HaloPSA API field names.

[HaloPSA] Delete a standard request template by numeric ID. This permanently removes the template — it cannot be undone. Use with caution. Requires a valid template ID — use halo_list_templates to find IDs and verify the template before deleting.

ParamTypeRequiredDefaultDescription
templateIdintegeryesThe numeric HaloPSA template ID to delete. Use halo_list_templates to find valid IDs. Verify the template with halo_get_template before deleting.

[HaloPSA] Retrieve full details for a single standard request template by numeric ID. Returns the complete template configuration including pre-filled field values, actions, and associated ticket type. Requires a valid template ID — use halo_list_templates to find IDs.

ParamTypeRequiredDefaultDescription
templateIdintegeryesThe numeric HaloPSA template ID. Use halo_list_templates to find valid IDs.

[HaloPSA] List standard request templates (pre-configured ticket blueprints) with pagination. Returns template IDs, names, and associated ticket types. Use this to discover available templates before creating tickets from a template, or to audit template configurations.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID to see templates available for a specific client (optional).
domainstringnonullFilter by domain (e.g. 'tickets', 'projects') to see templates for a specific entity type (optional).
pageNointegerno1Page number for pagination (default 1).
pageSizeintegerno50Number of results per page (default 50, max 200).
searchstringnonullSearch text to filter templates by name (optional).
ticketTypeIdintegernonullFilter by ticket type ID (optional). Use halo_list_ticket_types to find valid IDs.

Call Scripts

ToolPlanAccessSummary
halo_get_call_scriptFreeRead-onlyRetrieve full details for a single call script by numeric ID.
halo_list_call_scriptsFreeRead-onlyList all call scripts configured in the system.

[HaloPSA] Retrieve full details for a single call script by numeric ID. Returns the complete script definition including questions, branching logic, and field mappings. Requires a valid script ID — use halo_list_call_scripts to find IDs.

ParamTypeRequiredDefaultDescription
scriptIdintegeryesThe numeric HaloPSA call script ID. Use halo_list_call_scripts to find valid IDs.

[HaloPSA] List all call scripts configured in the system. Returns script IDs, names, and associated ticket types. Call scripts are guided question flows that agents follow when handling phone calls or ticket intake, ensuring consistent data capture. Use this to discover available scripts or find script IDs.

Live Chat

ToolPlanAccessSummary
halo_get_chatFreeRead-onlyRetrieve full details for a single live chat session by numeric ID.
halo_get_chat_profileFreeRead-onlyRetrieve full details for a single chat profile by numeric ID.
halo_list_chat_messagesFreeRead-onlyList messages in a live chat session.
halo_list_chat_profilesFreeRead-onlyList all live chat profiles configured in the system.
halo_list_chatsFreeRead-onlyList live chat sessions with optional filtering.
halo_send_chat_messageProWriteSend a message in a live chat session.

[HaloPSA] Retrieve full details for a single live chat session by numeric ID. Returns chat participants, status, associated ticket, and metadata. Requires a valid chat ID — use halo_list_chats to find IDs.

ParamTypeRequiredDefaultDescription
chatIdintegeryesThe numeric HaloPSA chat session ID. Use halo_list_chats to find valid IDs.

[HaloPSA] Retrieve full details for a single chat profile by numeric ID. Returns the profile configuration including appearance settings, routing rules, and operating hours. Requires a valid profile ID — use halo_list_chat_profiles to find IDs.

ParamTypeRequiredDefaultDescription
profileIdintegeryesThe numeric HaloPSA chat profile ID. Use halo_list_chat_profiles to find valid IDs.

[HaloPSA] List messages in a live chat session. Returns message text, sender info, and timestamps. Use this to read the conversation history of a chat. Optionally pass lastId to retrieve only messages after a specific point for polling new messages.

ParamTypeRequiredDefaultDescription
chatIdintegeryesThe numeric HaloPSA chat session ID to retrieve messages for. Use halo_list_chats to find valid IDs.
lastIdintegernonullOnly return messages with ID greater than this value (optional). Use for polling new messages since last check.

[HaloPSA] List all live chat profiles configured in the system. Returns profile IDs, names, and settings. Chat profiles define the appearance, behaviour, and routing rules for live chat widgets. Use this to discover available chat profiles or find profile IDs.

[HaloPSA] List live chat sessions with optional filtering. Returns chat IDs, participant info, status, and timestamps. Use this to view active or recent chat sessions. Optionally filter by chat profile or exclude closed chats.

ParamTypeRequiredDefaultDescription
chatProfileIdintegernonullFilter by chat profile ID (optional). Use halo_list_chat_profiles to find valid IDs.
ignoreAllClosedbooleannonullWhen true, exclude all closed/ended chat sessions from results (optional).

[HaloPSA] Send a message in a live chat session. Returns the sent message with its assigned ID. The JSON must include the chat_id and message text. Use halo_list_chats to find active chat sessions and halo_list_chat_messages to see conversation history before responding.

ParamTypeRequiredDefaultDescription
messageJsonstringyesJSON object representing the chat message to send. Must include chat_id. Example: {"chat_id": 42, "message": "Hello, how can I help?"}. Field names must match HaloPSA API field names.

Remote Sessions

ToolPlanAccessSummary
halo_create_remote_sessionProWriteCreate a new remote support session.
halo_get_remote_sessionFreeRead-onlyRetrieve full details for a single remote support session by numeric ID.
halo_list_remote_session_teamsFreeRead-onlyList teams configured for remote support sessions.
halo_list_remote_sessionsFreeRead-onlyList remote support sessions with optional filtering by agent or client.

[HaloPSA] Create a new remote support session. Returns the created session with its assigned ID and connection details. The JSON should specify the session type and target device or user. Follow up with halo_get_remote_session to verify creation.

ParamTypeRequiredDefaultDescription
sessionJsonstringyesJSON object representing the remote session to create. Example: {"ticket_id": 100, "agent_id": 5, "type": 1}. Field names must match HaloPSA API field names.

[HaloPSA] Retrieve full details for a single remote support session by numeric ID. Returns connection info, participants, duration, and associated ticket. Requires a valid session ID — use halo_list_remote_sessions to find IDs.

ParamTypeRequiredDefaultDescription
sessionIdintegeryesThe numeric HaloPSA remote session ID. Use halo_list_remote_sessions to find valid IDs.

[HaloPSA] List teams configured for remote support sessions. Returns team IDs, names, and associated remote session providers. Use this to discover which teams are set up for remote support before creating sessions.

[HaloPSA] List remote support sessions with optional filtering by agent or client. Returns session IDs, status, participants, and connection details. Use this to view active or recent remote sessions for troubleshooting or audit purposes.

ParamTypeRequiredDefaultDescription
agentIdintegernonullFilter by agent ID to see sessions for a specific technician (optional). Use halo_list_agents to find valid IDs.
clientIdintegernonullFilter by client ID to see sessions for a specific customer (optional). Use halo_list_clients to find valid IDs.

Approval Processes

ToolPlanAccessSummary
halo_create_approval_processProWriteCreate a new approval process.
halo_create_approval_ruleProWriteCreate a new approval rule that defines conditions for triggering approvals.
halo_get_approval_processFreeRead-onlyRetrieve full details for a single approval process by numeric ID.
halo_list_approval_processesFreeRead-onlyList all approval processes configured in the system.
halo_list_approval_rulesFreeRead-onlyList approval rules that define when and how approvals are triggered.

[HaloPSA] Create a new approval process. Approval processes define multi-step approval workflows. Returns the created process with its assigned ID. The JSON should include at minimum a name and approval type. Follow up with halo_get_approval_process to verify creation.

ParamTypeRequiredDefaultDescription
processJsonstringyesJSON object representing the approval process to create. Example: {"name": "Change Approval", "type": 1}. Field names must match HaloPSA API field names.

[HaloPSA] Create a new approval rule that defines conditions for triggering approvals. Returns the created rule with its assigned ID. The JSON should include the associated process ID and rule conditions. Follow up with halo_list_approval_rules to verify creation.

ParamTypeRequiredDefaultDescription
ruleJsonstringyesJSON object representing the approval rule to create. Must include the approval process association. Example: {"process_id": 1, "name": "High Priority Changes", "conditions": [...]}. Field names must match HaloPSA API field names.

[HaloPSA] Retrieve full details for a single approval process by numeric ID. Returns the process definition including approval stages, required approvers, and escalation rules. Requires a valid process ID — use halo_list_approval_processes to find IDs.

ParamTypeRequiredDefaultDescription
processIdintegeryesThe numeric HaloPSA approval process ID. Use halo_list_approval_processes to find valid IDs.

[HaloPSA] List all approval processes configured in the system. Returns process IDs, names, and associated rules. Approval processes define multi-step approval workflows for changes, purchases, or other gated actions. Use this to discover available processes or audit approval configurations.

[HaloPSA] List approval rules that define when and how approvals are triggered. Returns rule IDs, conditions, and associated approval processes. Optionally filter by process ID. Use this to understand what triggers approval workflows or to audit approval rule configurations.

ParamTypeRequiredDefaultDescription
processIdintegernonullFilter by approval process ID (optional). Use halo_list_approval_processes to find valid IDs.

Saved Views

ToolPlanAccessSummary
halo_get_viewFreeRead-onlyRetrieve full details for a single saved view by numeric ID.
halo_list_view_columnsFreeRead-onlyList available column definitions that can be used in saved views.
halo_list_view_filtersFreeRead-onlyList available filter definitions that can be used in saved views.
halo_list_viewsFreeRead-onlyList saved views configured in the system.

[HaloPSA] Retrieve full details for a single saved view by numeric ID. Returns the complete view definition including filter criteria, column layout, sort order, and grouping. Requires a valid view ID — use halo_list_views to find IDs.

ParamTypeRequiredDefaultDescription
viewIdintegeryesThe numeric HaloPSA view ID. Use halo_list_views to find valid IDs.

[HaloPSA] List available column definitions that can be used in saved views. Returns column field names, display labels, and data types. Use this to understand what columns are available when creating views or to interpret the column layout of existing views for a specific domain.

ParamTypeRequiredDefaultDescription
domainstringnonullFilter by domain (e.g. 'tickets', 'assets', 'projects') to see columns for a specific entity type (optional).

[HaloPSA] List available filter definitions that can be used in saved views. Returns filter field names, operators, and data types. Use this to understand what filtering options are available when creating or interpreting saved views for a specific domain.

ParamTypeRequiredDefaultDescription
domainstringnonullFilter by domain (e.g. 'tickets', 'assets', 'projects') to see filters for a specific entity type (optional).

[HaloPSA] List saved views configured in the system. Returns view IDs, names, domains, and visibility (personal vs global). Saved views define pre-configured filter and column configurations for ticket lists, asset lists, and other entity grids. Use this to discover available views or find view IDs.

ParamTypeRequiredDefaultDescription
domainstringnonullFilter by domain (e.g. 'tickets', 'assets', 'projects') to see views for a specific entity type (optional).
globalOnlybooleannonullWhen true, only return global (shared) views, excluding personal views (optional).

PowerShell Scripts

ToolPlanAccessSummary
halo_create_scriptProWriteCreate a new PowerShell script in the Halo script library.
halo_get_scriptFreeRead-onlyRetrieve full details for a single PowerShell script by numeric ID.
halo_list_script_executionsFreeRead-onlyList PowerShell script execution history.
halo_list_scriptsFreeRead-onlyList PowerShell scripts stored in the Halo script library.

[HaloPSA] Create a new PowerShell script in the Halo script library. Returns the created script with its assigned ID. The JSON should include at minimum a name and script content. Follow up with halo_get_script to verify creation.

ParamTypeRequiredDefaultDescription
scriptJsonstringyesJSON object representing the PowerShell script to create. Example: {"name": "Clear DNS Cache", "script": "Clear-DnsClientCache", "description": "Clears the local DNS cache"}. Field names must match HaloPSA API field names.

[HaloPSA] Retrieve full details for a single PowerShell script by numeric ID. Returns the script content, parameters, description, and execution settings. Requires a valid script ID — use halo_list_scripts to find IDs.

ParamTypeRequiredDefaultDescription
scriptIdintegeryesThe numeric HaloPSA PowerShell script ID. Use halo_list_scripts to find valid IDs.

[HaloPSA] List PowerShell script execution history. Returns execution IDs, target devices, status, start/end times, and output. Optionally filter by script ID. Use this to audit script runs or check the results of recent executions.

ParamTypeRequiredDefaultDescription
scriptIdintegernonullFilter by PowerShell script ID to see executions for a specific script (optional). Use halo_list_scripts to find valid IDs.

[HaloPSA] List PowerShell scripts stored in the Halo script library. Returns script IDs, names, and descriptions. These are scripts that can be executed against managed devices through Halo's agent or RMM integrations. Use this to discover available scripts or find script IDs.

Call Logs

ToolPlanAccessSummary
halo_create_call_logProWriteCreate a new telephone call log entry.
halo_list_call_logsFreeRead-onlyList telephone call logs recorded in the system.

[HaloPSA] Create a new telephone call log entry. Returns the created call log with its assigned ID. The JSON should include at minimum caller information and call details. Use this to record phone calls that need to be tracked alongside tickets.

ParamTypeRequiredDefaultDescription
callLogJsonstringyesJSON object representing the call log to create. Example: {"caller": "John Smith", "callee": "Support", "duration": 300, "notes": "Password reset request"}. Field names must match HaloPSA API field names.

[HaloPSA] List telephone call logs recorded in the system. Returns call IDs, caller/callee info, duration, and timestamps. Use this to review call history or audit phone interactions. Optionally show all calls including those not linked to tickets.

ParamTypeRequiredDefaultDescription
showAllbooleannonullWhen true, show all call logs including those not linked to tickets (optional, default false).
ToolPlanAccessSummary
halo_create_external_linkProWriteCreate a new external link on a Halo entity.
halo_generate_external_linkProWriteGenerate a shareable external link (portal link or guest access URL) for a Halo entity.
halo_list_external_linksFreeRead-onlyList external links associated with Halo entities.

FAQ Lists

ToolPlanAccessSummary
halo_get_faq_listFreeRead-onlyRetrieve full details for a single FAQ list by numeric ID.
halo_list_faq_listsFreeRead-onlyList FAQ lists (frequently asked questions collections) configured in the system.

[HaloPSA] Retrieve full details for a single FAQ list by numeric ID. Returns the list name, description, items/questions, and hierarchy position. Requires a valid FAQ list ID — use halo_list_faq_lists to find IDs.

ParamTypeRequiredDefaultDescription
faqListIdintegeryesThe numeric HaloPSA FAQ list ID. Use halo_list_faq_lists to find valid IDs.

[HaloPSA] List FAQ lists (frequently asked questions collections) configured in the system. Returns list IDs, names, and hierarchy. FAQ lists are used in the end-user portal and knowledge base to organise common questions. Optionally filter by parent list or type.

ParamTypeRequiredDefaultDescription
parentIdintegernonullFilter by parent FAQ list ID to see child lists (optional). Omit to see top-level lists.
typeintegernonullFilter by FAQ list type (optional).
ToolPlanAccessSummary
halo_list_popup_notesFreeRead-onlyList popup notes configured for clients, sites, or users.
halo_mark_popup_readProWriteMark a popup note as read/acknowledged for the current agent.

[HaloPSA] List popup notes configured for clients, sites, or users. Returns note IDs, content, and associated entities. Popup notes are displayed to agents when they open a client, site, or user record — typically used for important warnings or reminders (e.g. 'VIP client', 'Known billing issue'). Optionally filter by client, site, or user.

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID to see popup notes for a specific customer (optional). Use halo_list_clients to find valid IDs.
siteIdintegernonullFilter by site ID to see popup notes for a specific site (optional). Use halo_list_sites to find valid IDs.
userIdintegernonullFilter by user ID to see popup notes for a specific user (optional). Use halo_list_users to find valid IDs.

[HaloPSA] Mark a popup note as read/acknowledged for the current agent. This dismisses the popup so it will not appear again for this agent. Returns confirmation. Use halo_list_popup_notes to find notes that need acknowledgement.

ParamTypeRequiredDefaultDescription
requestJsonstringyesJSON object identifying the popup note to mark as read. Must include the note ID. Example: {"id": 42}. Field names must match HaloPSA API field names.
ToolPlanAccessSummary
halo_create_secure_linkProWriteCreate a new secure secret link for sharing sensitive information.
halo_list_secure_linksFreeRead-onlyList secure secret links (one-time-use password/secret sharing URLs).
halo_validate_secure_linkFreeRead-onlyValidate a secure secret link token and retrieve the secret if valid.

Cross-Domain

ToolPlanAccessSummary
halo_bulk_status_summaryProRead-onlyQuick counts of open items across all domains: open tickets, active contracts, active assets, pending approvals, and open opportunities.
halo_client_financial_summaryProRead-onlyFor a client: total invoiced revenue, total hours logged, active contracts with values, prepay balance, and recent billing lines.
halo_entity_relationship_mapProRead-onlyScatter-gather: given a client, fetch open tickets, assets, contracts, users, sites, and opportunities in parallel and return counts and summaries for each entity type.
halo_queue_health_dashboardProRead-onlyHealth metrics for a specific team/queue: open ticket count, SLA status, per-agent workload distribution, and ticket age distribution buckets.
halo_technician_dashboardProRead-onlyFor a given agent: their open tickets by priority, today's timesheets, upcoming appointments, and SLA breach warnings.
halo_weekly_operations_reportProRead-onlyWeekly operations snapshot: new tickets created, tickets closed, total time logged, SLA breaches, and contracts expiring soon.

[HaloPSA] Quick counts of open items across all domains: open tickets, active contracts, active assets, pending approvals, and open opportunities. Use for a fast company health snapshot. Note: Makes 5 API calls internally (parallel).

ParamTypeRequiredDefaultDescription
clientIdintegernonullFilter by client ID (optional). Omit for organization-wide counts.

[HaloPSA] For a client: total invoiced revenue, total hours logged, active contracts with values, prepay balance, and recent billing lines. Comprehensive financial overview in a single composite call. timeSummary is scoped to this client via the client-attributed timesheet-event feed. Note: Makes 6 API calls internally (parallel).

ParamTypeRequiredDefaultDescription
clientIdintegeryesClient ID to summarize. Use halo_list_clients or halo_search_clients to find valid IDs.
endDatestringnonullEnd date in yyyy-MM-dd format (optional). Defaults to today.
startDatestringnonullStart date in yyyy-MM-dd format (optional). Defaults to 6 months ago.

[HaloPSA] Scatter-gather: given a client, fetch open tickets, assets, contracts, users, sites, and opportunities in parallel and return counts and summaries for each entity type. Use for a quick multi-domain snapshot of all resources linked to a client. Note: Makes 6 API calls internally (parallel).

ParamTypeRequiredDefaultDescription
clientIdintegeryesClient ID to map relationships for. Use halo_list_clients or halo_search_clients to find valid IDs.

[HaloPSA] Health metrics for a specific team/queue: open ticket count, SLA status, per-agent workload distribution, and ticket age distribution buckets. Use for team-level performance monitoring. Note: Makes 3 API calls internally (parallel).

ParamTypeRequiredDefaultDescription
teamIdintegeryesTeam ID to analyze. Use halo_list_teams to find valid team IDs.

[HaloPSA] For a given agent: their open tickets by priority, today's timesheets, upcoming appointments, and SLA breach warnings. Use for technician daily briefings or self-service dashboards. Note: Makes 4 API calls internally (parallel).

ParamTypeRequiredDefaultDescription
agentIdintegeryesAgent ID to build dashboard for. Use halo_list_agents or halo_search_agents to find valid IDs.

[HaloPSA] Weekly operations snapshot: new tickets created, tickets closed, total time logged, SLA breaches, and contracts expiring soon. Provides a management-ready weekly summary. Note: Makes 4 API calls internally (parallel).

Integration Config: A-E

ToolPlanAccessSummary
halo_create_addigy_detailsProWriteCreate or update an Addigy integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_adobe_acrobat_detailsProWriteCreate or update an Adobe Acrobat integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_adobe_commerce_detailsProWriteCreate or update an Adobe Commerce integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_amazon_seller_detailsProWriteCreate or update an Amazon Seller integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_armis_detailsProWriteCreate or update an Armis integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_arrow_sphere_detailsProWriteCreate or update an ArrowSphere integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_assetbots_detailsProWriteCreate or update an Assetbots integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_avalara_detailsProWriteCreate or update an Avalara tax-integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_aws_detailsProWriteCreate or update an AWS integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_business_central_detailsProWriteCreate or update a Microsoft Dynamics 365 Business Central connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_confluence_detailsProWriteCreate or update a Confluence integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_datto_commerce_detailsProWriteCreate or update a Datto Commerce integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_datto_rmm_detailsProWriteCreate or update a Datto RMM integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_dynamics365_crm_detailsProWriteCreate or update a Microsoft Dynamics 365 CRM integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_dynatrace_detailsProWriteCreate or update a Dynatrace integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_eracent_detailsProWriteCreate or update an Eracent integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_delete_addigy_detailsProDestructiveDelete an Addigy integration connection-detail record by numeric ID.
halo_delete_adobe_acrobat_detailsProDestructiveDelete an Adobe Acrobat integration connection-detail record by numeric ID.
halo_delete_adobe_commerce_detailsProDestructiveDelete an Adobe Commerce integration connection-detail record by numeric ID.
halo_delete_amazon_seller_detailsProDestructiveDelete an Amazon Seller integration connection-detail record by numeric ID.
halo_delete_armis_detailsProDestructiveDelete an Armis integration connection-detail record by numeric ID.
halo_delete_arrow_sphere_detailsProDestructiveDelete an ArrowSphere integration connection-detail record by numeric ID.
halo_delete_assetbots_detailsProDestructiveDelete an Assetbots integration connection-detail record by numeric ID.
halo_delete_avalara_detailsProDestructiveDelete an Avalara tax-integration connection-detail record by numeric ID.
halo_delete_aws_detailsProDestructiveDelete an AWS integration connection-detail record by numeric ID.
halo_delete_business_central_detailsProDestructiveDelete a Microsoft Dynamics 365 Business Central connection-detail record by numeric ID.
halo_delete_confluence_detailsProDestructiveDelete a Confluence integration connection-detail record by numeric ID.
halo_delete_datto_commerce_detailsProDestructiveDelete a Datto Commerce integration connection-detail record by numeric ID.
halo_delete_datto_rmm_detailsProDestructiveDelete a Datto RMM integration connection-detail record by numeric ID.
halo_delete_dynamics365_crm_detailsProDestructiveDelete a Microsoft Dynamics 365 CRM integration connection-detail record by numeric ID.
halo_delete_dynatrace_detailsProDestructiveDelete a Dynatrace integration connection-detail record by numeric ID.
halo_delete_eracent_detailsProDestructiveDelete an Eracent integration connection-detail record by numeric ID.
halo_get_addigy_detailsFreeRead-onlyRetrieve a single Addigy integration connection-detail record by numeric ID.
halo_get_adobe_acrobat_detailsFreeRead-onlyRetrieve a single Adobe Acrobat integration connection-detail record by numeric ID.
halo_get_adobe_commerce_detailsFreeRead-onlyRetrieve a single Adobe Commerce integration connection-detail record by numeric ID.
halo_get_amazon_seller_detailsFreeRead-onlyRetrieve a single Amazon Seller integration connection-detail record by numeric ID.
halo_get_armis_detailsFreeRead-onlyRetrieve a single Armis integration connection-detail record by numeric ID.
halo_get_arrow_sphere_detailsFreeRead-onlyRetrieve a single ArrowSphere integration connection-detail record by numeric ID.
halo_get_assetbots_detailsFreeRead-onlyRetrieve a single Assetbots integration connection-detail record by numeric ID.
halo_get_aws_detailsFreeRead-onlyRetrieve a single AWS integration connection-detail record by numeric ID.
halo_get_confluence_detailsFreeRead-onlyRetrieve a single Confluence integration connection-detail record by numeric ID.
halo_get_datto_commerce_detailsFreeRead-onlyRetrieve a single Datto Commerce integration connection-detail record by numeric ID.
halo_get_datto_rmm_detailsFreeRead-onlyRetrieve a single Datto RMM integration connection-detail record by numeric ID.
halo_get_dynamics365_crm_detailsFreeRead-onlyRetrieve a single Microsoft Dynamics 365 CRM integration connection-detail record by numeric ID.
halo_get_dynatrace_detailsFreeRead-onlyRetrieve a single Dynatrace integration connection-detail record by numeric ID.
halo_get_eracent_detailsFreeRead-onlyRetrieve a single Eracent integration connection-detail record by numeric ID.
halo_list_addigy_detailsFreeRead-onlyList Addigy integration connection-detail records configured in HaloPSA.
halo_list_adobe_acrobat_detailsFreeRead-onlyList Adobe Acrobat integration connection-detail records configured in HaloPSA.
halo_list_adobe_commerce_detailsFreeRead-onlyList Adobe Commerce integration connection-detail records configured in HaloPSA.
halo_list_amazon_seller_detailsFreeRead-onlyList Amazon Seller integration connection-detail records configured in HaloPSA.
halo_list_armis_detailsFreeRead-onlyList Armis integration connection-detail records configured in HaloPSA.
halo_list_arrow_sphere_detailsFreeRead-onlyList ArrowSphere integration connection-detail records configured in HaloPSA.
halo_list_assetbots_detailsFreeRead-onlyList Assetbots integration connection-detail records configured in HaloPSA.
halo_list_aws_detailsFreeRead-onlyList AWS integration connection-detail records configured in HaloPSA.
halo_list_confluence_detailsFreeRead-onlyList Confluence integration connection-detail records configured in HaloPSA.
halo_list_datto_commerce_detailsFreeRead-onlyList Datto Commerce integration connection-detail records configured in HaloPSA.
halo_list_datto_rmm_detailsFreeRead-onlyList Datto RMM integration connection-detail records configured in HaloPSA.
halo_list_dynamics365_crm_detailsFreeRead-onlyList Microsoft Dynamics 365 CRM integration connection-detail records configured in HaloPSA.
halo_list_dynatrace_detailsFreeRead-onlyList Dynatrace integration connection-detail records configured in HaloPSA.
halo_list_eracent_detailsFreeRead-onlyList Eracent integration connection-detail records configured in HaloPSA.

[HaloPSA] Create or update an Addigy integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Addigy connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an Adobe Acrobat integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Adobe Acrobat connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an Adobe Commerce integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Adobe Commerce connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an Amazon Seller integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Amazon Seller connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an Armis integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Armis connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an ArrowSphere integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the ArrowSphere connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an Assetbots integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Assetbots connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an Avalara tax-integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record. To read existing Avalara records use halo_list_avalara_details / halo_get_avalara_detail.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Avalara connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an AWS integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the AWS connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Microsoft Dynamics 365 Business Central connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record. To read existing records use halo_list_business_central_details / halo_get_business_central_detail.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Business Central connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Confluence integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Confluence connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Datto Commerce integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Datto Commerce connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Datto RMM integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Datto RMM connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Microsoft Dynamics 365 CRM integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Dynamics 365 CRM connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Dynatrace integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Dynatrace connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an Eracent integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Eracent connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Delete an Addigy integration connection-detail record by numeric ID. This permanently removes the Addigy configuration record and cannot be undone. Use halo_list_addigy_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Addigy detail record ID to delete. Use halo_list_addigy_details to find valid IDs.

[HaloPSA] Delete an Adobe Acrobat integration connection-detail record by numeric ID. This permanently removes the Adobe Acrobat configuration record and cannot be undone. Use halo_list_adobe_acrobat_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Adobe Acrobat detail record ID to delete. Use halo_list_adobe_acrobat_details to find valid IDs.

[HaloPSA] Delete an Adobe Commerce integration connection-detail record by numeric ID. This permanently removes the Adobe Commerce configuration record and cannot be undone. Use halo_list_adobe_commerce_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Adobe Commerce detail record ID to delete. Use halo_list_adobe_commerce_details to find valid IDs.

[HaloPSA] Delete an Amazon Seller integration connection-detail record by numeric ID. This permanently removes the Amazon Seller configuration record and cannot be undone. Use halo_list_amazon_seller_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Amazon Seller detail record ID to delete. Use halo_list_amazon_seller_details to find valid IDs.

[HaloPSA] Delete an Armis integration connection-detail record by numeric ID. This permanently removes the Armis configuration record and cannot be undone. Use halo_list_armis_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Armis detail record ID to delete. Use halo_list_armis_details to find valid IDs.

[HaloPSA] Delete an ArrowSphere integration connection-detail record by numeric ID. This permanently removes the ArrowSphere configuration record and cannot be undone. Use halo_list_arrow_sphere_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA ArrowSphere detail record ID to delete. Use halo_list_arrow_sphere_details to find valid IDs.

[HaloPSA] Delete an Assetbots integration connection-detail record by numeric ID. This permanently removes the Assetbots configuration record and cannot be undone. Use halo_list_assetbots_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Assetbots detail record ID to delete. Use halo_list_assetbots_details to find valid IDs.

[HaloPSA] Delete an Avalara tax-integration connection-detail record by numeric ID. This permanently removes the Avalara configuration record and cannot be undone. Use halo_list_avalara_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Avalara detail record ID to delete. Use halo_list_avalara_details to find valid IDs.

[HaloPSA] Delete an AWS integration connection-detail record by numeric ID. This permanently removes the AWS configuration record and cannot be undone. Use halo_list_aws_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA AWS detail record ID to delete. Use halo_list_aws_details to find valid IDs.

[HaloPSA] Delete a Microsoft Dynamics 365 Business Central connection-detail record by numeric ID. This permanently removes the Business Central configuration record and cannot be undone. Use halo_list_business_central_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Business Central detail record ID to delete. Use halo_list_business_central_details to find valid IDs.

[HaloPSA] Delete a Confluence integration connection-detail record by numeric ID. This permanently removes the Confluence configuration record and cannot be undone. Use halo_list_confluence_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Confluence detail record ID to delete. Use halo_list_confluence_details to find valid IDs.

[HaloPSA] Delete a Datto Commerce integration connection-detail record by numeric ID. This permanently removes the Datto Commerce configuration record and cannot be undone. Use halo_list_datto_commerce_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Datto Commerce detail record ID to delete. Use halo_list_datto_commerce_details to find valid IDs.

[HaloPSA] Delete a Datto RMM integration connection-detail record by numeric ID. This permanently removes the Datto RMM configuration record and cannot be undone. Use halo_list_datto_rmm_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Datto RMM detail record ID to delete. Use halo_list_datto_rmm_details to find valid IDs.

[HaloPSA] Delete a Microsoft Dynamics 365 CRM integration connection-detail record by numeric ID. This permanently removes the Dynamics 365 CRM configuration record and cannot be undone. Use halo_list_dynamics365_crm_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Dynamics 365 CRM detail record ID to delete. Use halo_list_dynamics365_crm_details to find valid IDs.

[HaloPSA] Delete a Dynatrace integration connection-detail record by numeric ID. This permanently removes the Dynatrace configuration record and cannot be undone. Use halo_list_dynatrace_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Dynatrace detail record ID to delete. Use halo_list_dynatrace_details to find valid IDs.

[HaloPSA] Delete an Eracent integration connection-detail record by numeric ID. This permanently removes the Eracent configuration record and cannot be undone. Use halo_list_eracent_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Eracent detail record ID to delete. Use halo_list_eracent_details to find valid IDs.

[HaloPSA] Retrieve a single Addigy integration connection-detail record by numeric ID. Returns the full Addigy configuration payload. Use halo_list_addigy_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Addigy detail record ID. Use halo_list_addigy_details to find valid IDs.

[HaloPSA] Retrieve a single Adobe Acrobat integration connection-detail record by numeric ID. Returns the full Adobe Acrobat configuration payload. Use halo_list_adobe_acrobat_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Adobe Acrobat detail record ID. Use halo_list_adobe_acrobat_details to find valid IDs.

[HaloPSA] Retrieve a single Adobe Commerce integration connection-detail record by numeric ID. Returns the full Adobe Commerce configuration payload. Use halo_list_adobe_commerce_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Adobe Commerce detail record ID. Use halo_list_adobe_commerce_details to find valid IDs.

[HaloPSA] Retrieve a single Amazon Seller integration connection-detail record by numeric ID. Returns the full Amazon Seller configuration payload. Use halo_list_amazon_seller_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Amazon Seller detail record ID. Use halo_list_amazon_seller_details to find valid IDs.

[HaloPSA] Retrieve a single Armis integration connection-detail record by numeric ID. Returns the full Armis configuration payload. Use halo_list_armis_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Armis detail record ID. Use halo_list_armis_details to find valid IDs.

[HaloPSA] Retrieve a single ArrowSphere integration connection-detail record by numeric ID. Returns the full ArrowSphere configuration payload. Use halo_list_arrow_sphere_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA ArrowSphere detail record ID. Use halo_list_arrow_sphere_details to find valid IDs.

[HaloPSA] Retrieve a single Assetbots integration connection-detail record by numeric ID. Returns the full Assetbots configuration payload. Use halo_list_assetbots_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Assetbots detail record ID. Use halo_list_assetbots_details to find valid IDs.

[HaloPSA] Retrieve a single AWS integration connection-detail record by numeric ID. Returns the full AWS configuration payload. Use halo_list_aws_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA AWS detail record ID. Use halo_list_aws_details to find valid IDs.

[HaloPSA] Retrieve a single Confluence integration connection-detail record by numeric ID. Returns the full Confluence configuration payload. Use halo_list_confluence_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Confluence detail record ID. Use halo_list_confluence_details to find valid IDs.

[HaloPSA] Retrieve a single Datto Commerce integration connection-detail record by numeric ID. Returns the full Datto Commerce configuration payload. Use halo_list_datto_commerce_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Datto Commerce detail record ID. Use halo_list_datto_commerce_details to find valid IDs.

[HaloPSA] Retrieve a single Datto RMM integration connection-detail record by numeric ID. Returns the full Datto RMM configuration payload. Use halo_list_datto_rmm_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Datto RMM detail record ID. Use halo_list_datto_rmm_details to find valid IDs.

[HaloPSA] Retrieve a single Microsoft Dynamics 365 CRM integration connection-detail record by numeric ID. Returns the full Dynamics 365 CRM configuration payload. Use halo_list_dynamics365_crm_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Dynamics 365 CRM detail record ID. Use halo_list_dynamics365_crm_details to find valid IDs.

[HaloPSA] Retrieve a single Dynatrace integration connection-detail record by numeric ID. Returns the full Dynatrace configuration payload. Use halo_list_dynatrace_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Dynatrace detail record ID. Use halo_list_dynatrace_details to find valid IDs.

[HaloPSA] Retrieve a single Eracent integration connection-detail record by numeric ID. Returns the full Eracent configuration payload. Use halo_list_eracent_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Eracent detail record ID. Use halo_list_eracent_details to find valid IDs.

[HaloPSA] List Addigy integration connection-detail records configured in HaloPSA. Returns a paginated list of the Addigy connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_addigy_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Adobe Acrobat integration connection-detail records configured in HaloPSA. Returns a paginated list of the Adobe Acrobat connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_adobe_acrobat_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Adobe Commerce integration connection-detail records configured in HaloPSA. Returns a paginated list of the Adobe Commerce connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_adobe_commerce_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Amazon Seller integration connection-detail records configured in HaloPSA. Returns a paginated list of the Amazon Seller connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_amazon_seller_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Armis integration connection-detail records configured in HaloPSA. Returns a paginated list of the Armis connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_armis_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List ArrowSphere integration connection-detail records configured in HaloPSA. Returns a paginated list of the ArrowSphere connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_arrow_sphere_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Assetbots integration connection-detail records configured in HaloPSA. Returns a paginated list of the Assetbots connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_assetbots_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List AWS integration connection-detail records configured in HaloPSA. Returns a paginated list of the AWS connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_aws_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Confluence integration connection-detail records configured in HaloPSA. Returns a paginated list of the Confluence connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_confluence_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Datto Commerce integration connection-detail records configured in HaloPSA. Returns a paginated list of the Datto Commerce connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_datto_commerce_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Datto RMM integration connection-detail records configured in HaloPSA. Returns a paginated list of the Datto RMM connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_datto_rmm_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Microsoft Dynamics 365 CRM integration connection-detail records configured in HaloPSA. Returns a paginated list of the Dynamics 365 CRM connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_dynamics365_crm_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Dynatrace integration connection-detail records configured in HaloPSA. Returns a paginated list of the Dynatrace connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_dynatrace_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Eracent integration connection-detail records configured in HaloPSA. Returns a paginated list of the Eracent connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_eracent_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

Integration Config: E-M

ToolPlanAccessSummary
halo_create_exact_detailsProWriteCreate or update an Exact Online integration connection detail (upsert — include an id in the body to update).
halo_create_facebook_detailsProWriteCreate or update a Facebook integration connection detail (upsert — include an id in the body to update).
halo_create_forecast_detailsProWriteCreate or update a Forecast integration connection detail (upsert — include an id in the body to update).
halo_create_forethought_detailsProWriteCreate or update a Forethought integration connection detail (upsert — include an id in the body to update).
halo_create_fortnox_detailsProWriteCreate or update a Fortnox integration connection detail (upsert — include an id in the body to update).
halo_create_google_business_detailsProWriteCreate or update a Google Business Messages integration connection detail (upsert — include an id in the body to update).
halo_create_gworkspace_detailsProWriteCreate or update a Google Workspace integration connection detail (upsert — include an id in the body to update).
halo_create_ingram_micro_detailsProWriteCreate or update an Ingram Micro integration connection detail (upsert — include an id in the body to update).
halo_create_ingram_micro_reseller_detailsProWriteCreate or update an Ingram Micro Reseller integration connection detail (upsert — include an id in the body to update).
halo_create_jamf_detailsProWriteCreate or update a Jamf integration connection detail (upsert — include an id in the body to update).
halo_create_jira_detailsProWriteCreate or update a Jira integration connection detail (upsert — include an id in the body to update).
halo_create_kandji_detailsProWriteCreate or update a Kandji integration connection detail (upsert — include an id in the body to update).
halo_create_kaseya_vsax_detailsProWriteCreate or update a Kaseya VSA X integration connection detail (upsert — include an id in the body to update).
halo_create_kashflow_detailsProWriteCreate or update a KashFlow integration connection detail (upsert — include an id in the body to update).
halo_create_manage_engine_detailsProWriteCreate or update a ManageEngine integration connection detail (upsert — include an id in the body to update).
halo_create_mattermost_detailsProWriteCreate or update a Mattermost integration connection detail (upsert — include an id in the body to update).
halo_delete_exact_detailsProDestructiveDelete an Exact Online integration connection detail by numeric ID.
halo_delete_facebook_detailsProDestructiveDelete a Facebook integration connection detail by numeric ID.
halo_delete_forecast_detailsProDestructiveDelete a Forecast integration connection detail by numeric ID.
halo_delete_forethought_detailsProDestructiveDelete a Forethought integration connection detail by numeric ID.
halo_delete_fortnox_detailsProDestructiveDelete a Fortnox integration connection detail by numeric ID.
halo_delete_google_business_detailsProDestructiveDelete a Google Business Messages integration connection detail by numeric ID.
halo_delete_gworkspace_detailsProDestructiveDelete a Google Workspace integration connection detail by numeric ID.
halo_delete_ingram_micro_detailsProDestructiveDelete an Ingram Micro integration connection detail by numeric ID.
halo_delete_ingram_micro_reseller_detailsProDestructiveDelete an Ingram Micro Reseller integration connection detail by numeric ID.
halo_delete_jamf_detailsProDestructiveDelete a Jamf integration connection detail by numeric ID.
halo_delete_jira_detailsProDestructiveDelete a Jira integration connection detail by numeric ID.
halo_delete_kandji_detailsProDestructiveDelete a Kandji integration connection detail by numeric ID.
halo_delete_kaseya_vsax_detailsProDestructiveDelete a Kaseya VSA X integration connection detail by numeric ID.
halo_delete_kashflow_detailsProDestructiveDelete a KashFlow integration connection detail by numeric ID.
halo_delete_manage_engine_detailsProDestructiveDelete a ManageEngine integration connection detail by numeric ID.
halo_delete_mattermost_detailsProDestructiveDelete a Mattermost integration connection detail by numeric ID.
halo_get_exact_detailsFreeRead-onlyRetrieve a single Exact Online integration connection detail by numeric ID.
halo_get_facebook_detailsFreeRead-onlyRetrieve a single Facebook integration connection detail by numeric ID.
halo_get_forecast_detailsFreeRead-onlyRetrieve a single Forecast integration connection detail by numeric ID.
halo_get_forethought_detailsFreeRead-onlyRetrieve a single Forethought integration connection detail by numeric ID.
halo_get_google_business_detailsFreeRead-onlyRetrieve a single Google Business Messages integration connection detail by numeric ID.
halo_get_gworkspace_detailsFreeRead-onlyRetrieve a single Google Workspace integration connection detail by numeric ID.
halo_get_ingram_micro_detailsFreeRead-onlyRetrieve a single Ingram Micro integration connection detail by numeric ID.
halo_get_ingram_micro_reseller_detailsFreeRead-onlyRetrieve a single Ingram Micro Reseller integration connection detail by numeric ID.
halo_get_jamf_detailsFreeRead-onlyRetrieve a single Jamf integration connection detail by numeric ID.
halo_get_jira_detailsFreeRead-onlyRetrieve a single Jira integration connection detail by numeric ID.
halo_get_kandji_detailsFreeRead-onlyRetrieve a single Kandji integration connection detail by numeric ID.
halo_get_kaseya_vsax_detailsFreeRead-onlyRetrieve a single Kaseya VSA X integration connection detail by numeric ID.
halo_get_manage_engine_detailsFreeRead-onlyRetrieve a single ManageEngine integration connection detail by numeric ID.
halo_get_mattermost_detailsFreeRead-onlyRetrieve a single Mattermost integration connection detail by numeric ID.
halo_list_exact_detailsFreeRead-onlyList Exact Online integration connection details configured in HaloPSA.
halo_list_facebook_detailsFreeRead-onlyList Facebook integration connection details configured in HaloPSA.
halo_list_forecast_detailsFreeRead-onlyList Forecast integration connection details configured in HaloPSA.
halo_list_forethought_detailsFreeRead-onlyList Forethought integration connection details configured in HaloPSA.
halo_list_google_business_detailsFreeRead-onlyList Google Business Messages integration connection details configured in HaloPSA.
halo_list_gworkspace_detailsFreeRead-onlyList Google Workspace integration connection details configured in HaloPSA.
halo_list_ingram_micro_detailsFreeRead-onlyList Ingram Micro integration connection details configured in HaloPSA.
halo_list_ingram_micro_reseller_detailsFreeRead-onlyList Ingram Micro Reseller integration connection details configured in HaloPSA.
halo_list_jamf_detailsFreeRead-onlyList Jamf integration connection details configured in HaloPSA.
halo_list_jira_detailsFreeRead-onlyList Jira integration connection details configured in HaloPSA.
halo_list_kandji_detailsFreeRead-onlyList Kandji integration connection details configured in HaloPSA.
halo_list_kaseya_vsax_detailsFreeRead-onlyList Kaseya VSA X integration connection details configured in HaloPSA.
halo_list_manage_engine_detailsFreeRead-onlyList ManageEngine integration connection details configured in HaloPSA.
halo_list_mattermost_channel_detailsFreeRead-onlyList Mattermost channel details available for the configured Mattermost integration in HaloPSA.
halo_list_mattermost_detailsFreeRead-onlyList Mattermost integration connection details configured in HaloPSA.

[HaloPSA] Create or update an Exact Online integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Exact detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a Facebook integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Facebook detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a Forecast integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Forecast detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a Forethought integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Forethought detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a Fortnox integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Fortnox detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a Google Business Messages integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Google Business detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a Google Workspace integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Google Workspace detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update an Ingram Micro integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Ingram Micro detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update an Ingram Micro Reseller integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Ingram Micro Reseller detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a Jamf integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Jamf detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a Jira integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Jira detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a Kandji integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Kandji detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a Kaseya VSA X integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Kaseya VSA X detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a KashFlow integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the KashFlow detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a ManageEngine integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the ManageEngine detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Create or update a Mattermost integration connection detail (upsert — include an id in the body to update). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Mattermost detail record. Field names must match HaloPSA API field names; include an id to update an existing record.

[HaloPSA] Delete an Exact Online integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_exact_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Exact detail record ID to delete.

[HaloPSA] Delete a Facebook integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_facebook_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Facebook detail record ID to delete.

[HaloPSA] Delete a Forecast integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_forecast_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Forecast detail record ID to delete.

[HaloPSA] Delete a Forethought integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_forethought_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Forethought detail record ID to delete.

[HaloPSA] Delete a Fortnox integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_fortnox_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Fortnox detail record ID to delete.

[HaloPSA] Delete a Google Business Messages integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_google_business_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Google Business detail record ID to delete.

[HaloPSA] Delete a Google Workspace integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_gworkspace_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Google Workspace detail record ID to delete.

[HaloPSA] Delete an Ingram Micro integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_ingram_micro_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Ingram Micro detail record ID to delete.

[HaloPSA] Delete an Ingram Micro Reseller integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_ingram_micro_reseller_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Ingram Micro Reseller detail record ID to delete.

[HaloPSA] Delete a Jamf integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_jamf_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Jamf detail record ID to delete.

[HaloPSA] Delete a Jira integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_jira_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Jira detail record ID to delete.

[HaloPSA] Delete a Kandji integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_kandji_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Kandji detail record ID to delete.

[HaloPSA] Delete a Kaseya VSA X integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_kaseya_vsax_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Kaseya VSA X detail record ID to delete.

[HaloPSA] Delete a KashFlow integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_kashflow_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA KashFlow detail record ID to delete.

[HaloPSA] Delete a ManageEngine integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_manage_engine_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA ManageEngine detail record ID to delete.

[HaloPSA] Delete a Mattermost integration connection detail by numeric ID. This permanently removes the record — it cannot be undone. Use halo_list_mattermost_details to find valid IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Mattermost detail record ID to delete.

[HaloPSA] Retrieve a single Exact Online integration connection detail by numeric ID. Use halo_list_exact_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Exact detail record ID.

[HaloPSA] Retrieve a single Facebook integration connection detail by numeric ID. Use halo_list_facebook_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Facebook detail record ID.

[HaloPSA] Retrieve a single Forecast integration connection detail by numeric ID. Use halo_list_forecast_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Forecast detail record ID.

[HaloPSA] Retrieve a single Forethought integration connection detail by numeric ID. Use halo_list_forethought_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Forethought detail record ID.

[HaloPSA] Retrieve a single Google Business Messages integration connection detail by numeric ID. Use halo_list_google_business_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Google Business detail record ID.

[HaloPSA] Retrieve a single Google Workspace integration connection detail by numeric ID. Use halo_list_gworkspace_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Google Workspace detail record ID.

[HaloPSA] Retrieve a single Ingram Micro integration connection detail by numeric ID. Use halo_list_ingram_micro_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Ingram Micro detail record ID.

[HaloPSA] Retrieve a single Ingram Micro Reseller integration connection detail by numeric ID. Use halo_list_ingram_micro_reseller_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Ingram Micro Reseller detail record ID.

[HaloPSA] Retrieve a single Jamf integration connection detail by numeric ID. Use halo_list_jamf_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Jamf detail record ID.

[HaloPSA] Retrieve a single Jira integration connection detail by numeric ID. Use halo_list_jira_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Jira detail record ID.

[HaloPSA] Retrieve a single Kandji integration connection detail by numeric ID. Use halo_list_kandji_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Kandji detail record ID.

[HaloPSA] Retrieve a single Kaseya VSA X integration connection detail by numeric ID. Use halo_list_kaseya_vsax_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Kaseya VSA X detail record ID.

[HaloPSA] Retrieve a single ManageEngine integration connection detail by numeric ID. Use halo_list_manage_engine_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA ManageEngine detail record ID.

[HaloPSA] Retrieve a single Mattermost integration connection detail by numeric ID. Use halo_list_mattermost_details to find valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Mattermost detail record ID.

[HaloPSA] List Exact Online integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_exact_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Facebook integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_facebook_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Forecast integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_forecast_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Forethought integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_forethought_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Google Business Messages integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_google_business_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Google Workspace integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_gworkspace_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Ingram Micro integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_ingram_micro_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Ingram Micro Reseller integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_ingram_micro_reseller_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Jamf integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_jamf_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Jira integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_jira_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Kandji integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_kandji_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Kaseya VSA X integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_kaseya_vsax_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List ManageEngine integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_manage_engine_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Mattermost channel details available for the configured Mattermost integration in HaloPSA. Supports pagination via pageNo/pageSize. Returns the channels Halo can post to.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Mattermost integration connection details configured in HaloPSA. Supports pagination via pageNo/pageSize. Returns record summaries including IDs — use halo_get_mattermost_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number to retrieve (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

Integration Config: M-S

ToolPlanAccessSummary
halo_create_myob_detailsProWriteCreate or update a MYOB integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_ncentral_detailsProWriteCreate or update an N-central integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_pax8_detailsProWriteCreate or update a Pax8 integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_prtg_detailsProWriteCreate or update a PRTG integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_quickbooks_detailsProWriteCreate or update a QuickBooks integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_raynet_detailsProWriteCreate or update a Raynet integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_sage_business_cloud_detailsProWriteCreate or update a Sage Business Cloud integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_sailpoint_detailsProWriteCreate or update a SailPoint integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_seatgeek_detailsProWriteCreate or update a SeatGeek integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_sentinelone_detailsProWriteCreate or update a SentinelOne integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_shopify_detailsProWriteCreate or update a Shopify integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_slack_detailsProWriteCreate or update a Slack integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_snipeit_detailsProWriteCreate or update a Snipe-IT integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_snow_detailsProWriteCreate or update a Snow integration detail record (upsert — include an "id" in the body to update an existing record).
halo_create_sophos_detailsProWriteCreate or update a Sophos integration detail record (upsert — include an "id" in the body to update an existing record).
halo_delete_myob_detailsProDestructiveDelete a MYOB integration detail record by numeric ID.
halo_delete_ncentral_detailsProDestructiveDelete an N-central integration detail record by numeric ID.
halo_delete_pax8_detailsProDestructiveDelete a Pax8 integration detail record by numeric ID.
halo_delete_prtg_detailsProDestructiveDelete a PRTG integration detail record by numeric ID.
halo_delete_quickbooks_detailsProDestructiveDelete a QuickBooks integration detail record by numeric ID.
halo_delete_raynet_detailsProDestructiveDelete a Raynet integration detail record by numeric ID.
halo_delete_sage_business_cloud_detailsProDestructiveDelete a Sage Business Cloud integration detail record by numeric ID.
halo_delete_sailpoint_detailsProDestructiveDelete a SailPoint integration detail record by numeric ID.
halo_delete_seatgeek_detailsProDestructiveDelete a SeatGeek integration detail record by numeric ID.
halo_delete_sentinelone_detailsProDestructiveDelete a SentinelOne integration detail record by numeric ID.
halo_delete_shopify_detailsProDestructiveDelete a Shopify integration detail record by numeric ID.
halo_delete_slack_detailsProDestructiveDelete a Slack integration detail record by numeric ID.
halo_delete_snipeit_detailsProDestructiveDelete a Snipe-IT integration detail record by numeric ID.
halo_delete_snow_detailsProDestructiveDelete a Snow integration detail record by numeric ID.
halo_delete_sophos_detailsProDestructiveDelete a Sophos integration detail record by numeric ID.
halo_get_ncentral_detailsFreeRead-onlyRetrieve a single N-central integration detail record by numeric ID.
halo_get_pax8_detailsFreeRead-onlyRetrieve a single Pax8 integration detail record by numeric ID.
halo_get_prtg_detailsFreeRead-onlyRetrieve a single PRTG integration detail record by numeric ID.
halo_get_raynet_detailsFreeRead-onlyRetrieve a single Raynet integration detail record by numeric ID.
halo_get_sailpoint_detailsFreeRead-onlyRetrieve a single SailPoint integration detail record by numeric ID.
halo_get_seatgeek_detailsFreeRead-onlyRetrieve a single SeatGeek integration detail record by numeric ID.
halo_get_sentinelone_detailsFreeRead-onlyRetrieve a single SentinelOne integration detail record by numeric ID.
halo_get_service_request_detailsFreeRead-onlyRetrieve a single service request detail record by numeric ID.
halo_get_shopify_detailsFreeRead-onlyRetrieve a single Shopify integration detail record by numeric ID.
halo_get_slack_detailsFreeRead-onlyRetrieve a single Slack integration detail record by numeric ID.
halo_get_snipeit_detailsFreeRead-onlyRetrieve a single Snipe-IT integration detail record by numeric ID.
halo_get_snow_detailsFreeRead-onlyRetrieve a single Snow integration detail record by numeric ID.
halo_get_sophos_detailsFreeRead-onlyRetrieve a single Sophos integration detail record by numeric ID.
halo_list_ncentral_detailsFreeRead-onlyList all N-central integration detail records configured in HaloPSA.
halo_list_pax8_detailsFreeRead-onlyList all Pax8 integration detail records configured in HaloPSA.
halo_list_prtg_detailsFreeRead-onlyList all PRTG integration detail records configured in HaloPSA.
halo_list_raynet_detailsFreeRead-onlyList all Raynet integration detail records configured in HaloPSA.
halo_list_sailpoint_detailsFreeRead-onlyList all SailPoint integration detail records configured in HaloPSA.
halo_list_seatgeek_detailsFreeRead-onlyList all SeatGeek integration detail records configured in HaloPSA.
halo_list_service_request_detailsFreeRead-onlyList all service request detail records configured in HaloPSA.
halo_list_shopify_detailsFreeRead-onlyList all Shopify integration detail records configured in HaloPSA.
halo_list_slack_detailsFreeRead-onlyList all Slack integration detail records configured in HaloPSA.
halo_list_snipeit_detailsFreeRead-onlyList all Snipe-IT integration detail records configured in HaloPSA.
halo_list_snow_detailsFreeRead-onlyList all Snow integration detail records configured in HaloPSA.
halo_uninstall_slack_detailsProDestructiveUninstall the Slack integration (POST /SlackDetails/Uninstall).

[HaloPSA] Create or update a MYOB integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the MYOB details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update an N-central integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the N-central details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a Pax8 integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Pax8 details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a PRTG integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the PRTG details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a QuickBooks integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the QuickBooks details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a Raynet integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Raynet details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a Sage Business Cloud integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Sage Business Cloud details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a SailPoint integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the SailPoint details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a SeatGeek integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the SeatGeek details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a SentinelOne integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the SentinelOne details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a Shopify integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Shopify details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a Slack integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Slack details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a Snipe-IT integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Snipe-IT details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a Snow integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Snow details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Create or update a Sophos integration detail record (upsert — include an "id" in the body to update an existing record). Provide the record as a raw HaloPSA JSON object. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Sophos details record. Field names must match HaloPSA API field names; include "id" to update an existing record.

[HaloPSA] Delete a MYOB integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA MYOB details record ID to delete.

[HaloPSA] Delete an N-central integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA N-central details record ID to delete.

[HaloPSA] Delete a Pax8 integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Pax8 details record ID to delete.

[HaloPSA] Delete a PRTG integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA PRTG details record ID to delete.

[HaloPSA] Delete a QuickBooks integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA QuickBooks details record ID to delete.

[HaloPSA] Delete a Raynet integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Raynet details record ID to delete.

[HaloPSA] Delete a Sage Business Cloud integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Sage Business Cloud details record ID to delete.

[HaloPSA] Delete a SailPoint integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA SailPoint details record ID to delete.

[HaloPSA] Delete a SeatGeek integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA SeatGeek details record ID to delete.

[HaloPSA] Delete a SentinelOne integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA SentinelOne details record ID to delete.

[HaloPSA] Delete a Shopify integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Shopify details record ID to delete.

[HaloPSA] Delete a Slack integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Slack details record ID to delete.

[HaloPSA] Delete a Snipe-IT integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Snipe-IT details record ID to delete.

[HaloPSA] Delete a Snow integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Snow details record ID to delete.

[HaloPSA] Delete a Sophos integration detail record by numeric ID. This permanently removes the record — it cannot be undone.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Sophos details record ID to delete.

[HaloPSA] Retrieve a single N-central integration detail record by numeric ID. Requires a valid ID — use halo_list_ncentral_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA N-central details record ID.

[HaloPSA] Retrieve a single Pax8 integration detail record by numeric ID. Requires a valid ID — use halo_list_pax8_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Pax8 details record ID.

[HaloPSA] Retrieve a single PRTG integration detail record by numeric ID. Requires a valid ID — use halo_list_prtg_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA PRTG details record ID.

[HaloPSA] Retrieve a single Raynet integration detail record by numeric ID. Requires a valid ID — use halo_list_raynet_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Raynet details record ID.

[HaloPSA] Retrieve a single SailPoint integration detail record by numeric ID. Requires a valid ID — use halo_list_sailpoint_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA SailPoint details record ID.

[HaloPSA] Retrieve a single SeatGeek integration detail record by numeric ID. Requires a valid ID — use halo_list_seatgeek_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA SeatGeek details record ID.

[HaloPSA] Retrieve a single SentinelOne integration detail record by numeric ID. Requires a valid record ID.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA SentinelOne details record ID.

[HaloPSA] Retrieve a single service request detail record by numeric ID. Requires a valid ID — use halo_list_service_request_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA service request details record ID.

[HaloPSA] Retrieve a single Shopify integration detail record by numeric ID. Requires a valid ID — use halo_list_shopify_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Shopify details record ID.

[HaloPSA] Retrieve a single Slack integration detail record by numeric ID. Requires a valid ID — use halo_list_slack_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Slack details record ID.

[HaloPSA] Retrieve a single Snipe-IT integration detail record by numeric ID. Requires a valid ID — use halo_list_snipeit_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Snipe-IT details record ID.

[HaloPSA] Retrieve a single Snow integration detail record by numeric ID. Requires a valid ID — use halo_list_snow_details to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Snow details record ID.

[HaloPSA] Retrieve a single Sophos integration detail record by numeric ID. Requires a valid record ID.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Sophos details record ID.

[HaloPSA] List all N-central integration detail records configured in HaloPSA. Supports pagination via pageNo/pageSize (page size capped at 200). Returns detail summaries including IDs — use halo_get_ncentral_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination. Defaults to 1.
pageSizeintegerno50Number of records per page (max 200). Defaults to 50.

[HaloPSA] List all Pax8 integration detail records configured in HaloPSA. Supports pagination via pageNo/pageSize (page size capped at 200). Returns detail summaries including IDs — use halo_get_pax8_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination. Defaults to 1.
pageSizeintegerno50Number of records per page (max 200). Defaults to 50.

[HaloPSA] List all PRTG integration detail records configured in HaloPSA. Supports pagination via pageNo/pageSize (page size capped at 200). Returns detail summaries including IDs — use halo_get_prtg_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination. Defaults to 1.
pageSizeintegerno50Number of records per page (max 200). Defaults to 50.

[HaloPSA] List all Raynet integration detail records configured in HaloPSA. Supports pagination via pageNo/pageSize (page size capped at 200). Returns detail summaries including IDs — use halo_get_raynet_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination. Defaults to 1.
pageSizeintegerno50Number of records per page (max 200). Defaults to 50.

[HaloPSA] List all SailPoint integration detail records configured in HaloPSA. Supports pagination via pageNo/pageSize (page size capped at 200). Returns detail summaries including IDs — use halo_get_sailpoint_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination. Defaults to 1.
pageSizeintegerno50Number of records per page (max 200). Defaults to 50.

[HaloPSA] List all SeatGeek integration detail records configured in HaloPSA. Supports pagination via pageNo/pageSize (page size capped at 200). Returns detail summaries including IDs — use halo_get_seatgeek_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination. Defaults to 1.
pageSizeintegerno50Number of records per page (max 200). Defaults to 50.

[HaloPSA] List all service request detail records configured in HaloPSA. Supports pagination via pageNo/pageSize (page size capped at 200). Returns detail summaries including IDs — use halo_get_service_request_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination. Defaults to 1.
pageSizeintegerno50Number of records per page (max 200). Defaults to 50.

[HaloPSA] List all Shopify integration detail records configured in HaloPSA. Supports pagination via pageNo/pageSize (page size capped at 200). Returns detail summaries including IDs — use halo_get_shopify_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination. Defaults to 1.
pageSizeintegerno50Number of records per page (max 200). Defaults to 50.

[HaloPSA] List all Slack integration detail records configured in HaloPSA. Supports pagination via pageNo/pageSize (page size capped at 200). Returns detail summaries including IDs — use halo_get_slack_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination. Defaults to 1.
pageSizeintegerno50Number of records per page (max 200). Defaults to 50.

[HaloPSA] List all Snipe-IT integration detail records configured in HaloPSA. Supports pagination via pageNo/pageSize (page size capped at 200). Returns detail summaries including IDs — use halo_get_snipeit_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination. Defaults to 1.
pageSizeintegerno50Number of records per page (max 200). Defaults to 50.

[HaloPSA] List all Snow integration detail records configured in HaloPSA. Supports pagination via pageNo/pageSize (page size capped at 200). Returns detail summaries including IDs — use halo_get_snow_details to fetch a single record.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination. Defaults to 1.
pageSizeintegerno50Number of records per page (max 200). Defaults to 50.

[HaloPSA] Uninstall the Slack integration (POST /SlackDetails/Uninstall). This removes the connected Slack app and cannot be undone. Optionally provide a raw HaloPSA JSON body; defaults to an empty object.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""Optional raw HaloPSA JSON object for the uninstall request. Defaults to an empty object .

Integration Config: S-X

ToolPlanAccessSummary
halo_create_streamone_ion_detailsProWriteCreate or update a StreamOne Ion integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_synnex_detailsProWriteCreate or update a Synnex integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_tanium_detailsProWriteCreate or update a Tanium integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_techdata_reseller_detailsProWriteCreate or update a TechData Reseller integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_tenable_detailsProWriteCreate or update a Tenable integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_twilio_whatsapp_detailsProWriteCreate or update a Twilio WhatsApp integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_twitter_detailsProWriteCreate or update a Twitter integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_virima_detailsProWriteCreate or update a Virima integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_vmworkspace_detailsProWriteCreate or update a VMware Workspace integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_wordpress_detailsProWriteCreate or update a WordPress integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_wordpress_org_detailsProWriteCreate or update a WordPress Org integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_xero_detailsProWriteCreate or update a Xero accounting-integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_delete_streamone_ion_detailsProDestructiveDelete a StreamOne Ion integration connection-detail record by numeric ID.
halo_delete_synnex_detailsProDestructiveDelete a Synnex integration connection-detail record by numeric ID.
halo_delete_tanium_detailsProDestructiveDelete a Tanium integration connection-detail record by numeric ID.
halo_delete_techdata_reseller_detailsProDestructiveDelete a TechData Reseller integration connection-detail record by numeric ID.
halo_delete_tenable_detailsProDestructiveDelete a Tenable integration connection-detail record by numeric ID.
halo_delete_twilio_whatsapp_detailsProDestructiveDelete a Twilio WhatsApp integration connection-detail record by numeric ID.
halo_delete_twitter_detailsProDestructiveDelete a Twitter integration connection-detail record by numeric ID.
halo_delete_virima_detailsProDestructiveDelete a Virima integration connection-detail record by numeric ID.
halo_delete_vmworkspace_detailsProDestructiveDelete a VMware Workspace integration connection-detail record by numeric ID.
halo_delete_wordpress_detailsProDestructiveDelete a WordPress integration connection-detail record by numeric ID.
halo_delete_wordpress_org_detailsProDestructiveDelete a WordPress Org integration connection-detail record by numeric ID.
halo_delete_xero_detailsProDestructiveDelete a Xero accounting-integration connection-detail record by numeric ID.
halo_get_streamone_ion_detailsFreeRead-onlyRetrieve a single StreamOne Ion integration connection-detail record by numeric ID.
halo_get_synnex_detailsFreeRead-onlyRetrieve a single Synnex integration connection-detail record by numeric ID.
halo_get_tanium_detailsFreeRead-onlyRetrieve a single Tanium integration connection-detail record by numeric ID.
halo_get_techdata_reseller_detailsFreeRead-onlyRetrieve a single TechData Reseller integration connection-detail record by numeric ID.
halo_get_tenable_detailsFreeRead-onlyRetrieve a single Tenable integration connection-detail record by numeric ID.
halo_get_twilio_whatsapp_detailsFreeRead-onlyRetrieve a single Twilio WhatsApp integration connection-detail record by numeric ID.
halo_get_twitter_detailsFreeRead-onlyRetrieve a single Twitter integration connection-detail record by numeric ID.
halo_get_virima_detailsFreeRead-onlyRetrieve a single Virima integration connection-detail record by numeric ID.
halo_get_vmworkspace_detailsFreeRead-onlyRetrieve a single VMware Workspace integration connection-detail record by numeric ID.
halo_get_wordpress_detailsFreeRead-onlyRetrieve a single WordPress integration connection-detail record by numeric ID.
halo_get_wordpress_org_detailsFreeRead-onlyRetrieve a single WordPress Org integration connection-detail record by numeric ID.
halo_list_streamone_ion_detailsFreeRead-onlyList StreamOne Ion integration connection-detail records configured in HaloPSA.
halo_list_synnex_detailsFreeRead-onlyList Synnex integration connection-detail records configured in HaloPSA.
halo_list_tanium_detailsFreeRead-onlyList Tanium integration connection-detail records configured in HaloPSA.
halo_list_techdata_reseller_detailsFreeRead-onlyList TechData Reseller integration connection-detail records configured in HaloPSA.
halo_list_tenable_detailsFreeRead-onlyList Tenable integration connection-detail records configured in HaloPSA.
halo_list_twilio_detailsFreeRead-onlyList Twilio integration connection-detail records configured in HaloPSA.
halo_list_twilio_whatsapp_detailsFreeRead-onlyList Twilio WhatsApp integration connection-detail records configured in HaloPSA.
halo_list_twitter_detailsFreeRead-onlyList Twitter integration connection-detail records configured in HaloPSA.
halo_list_virima_detailsFreeRead-onlyList Virima integration connection-detail records configured in HaloPSA.
halo_list_vmworkspace_detailsFreeRead-onlyList VMware Workspace integration connection-detail records configured in HaloPSA.
halo_list_wordpress_detailsFreeRead-onlyList WordPress integration connection-detail records configured in HaloPSA.
halo_list_wordpress_org_detailsFreeRead-onlyList WordPress Org integration connection-detail records configured in HaloPSA.

[HaloPSA] Create or update a StreamOne Ion integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the StreamOne Ion connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Synnex integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Synnex connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Tanium integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Tanium connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a TechData Reseller integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the TechData Reseller connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Tenable integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Tenable connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Twilio WhatsApp integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Twilio WhatsApp connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Twitter integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Twitter connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Virima integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Virima connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a VMware Workspace integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the VMware Workspace connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a WordPress integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the WordPress connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a WordPress Org integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the WordPress Org connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Xero accounting-integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record. To read existing Xero records use halo_list_xero_details.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Xero connection-detail record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Delete a StreamOne Ion integration connection-detail record by numeric ID. This permanently removes the StreamOne Ion configuration record and cannot be undone. Use halo_list_streamone_ion_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA StreamOne Ion detail record ID to delete. Use halo_list_streamone_ion_details to find valid IDs.

[HaloPSA] Delete a Synnex integration connection-detail record by numeric ID. This permanently removes the Synnex configuration record and cannot be undone. Use halo_list_synnex_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Synnex detail record ID to delete. Use halo_list_synnex_details to find valid IDs.

[HaloPSA] Delete a Tanium integration connection-detail record by numeric ID. This permanently removes the Tanium configuration record and cannot be undone. Use halo_list_tanium_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Tanium detail record ID to delete. Use halo_list_tanium_details to find valid IDs.

[HaloPSA] Delete a TechData Reseller integration connection-detail record by numeric ID. This permanently removes the TechData Reseller configuration record and cannot be undone. Use halo_list_techdata_reseller_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA TechData Reseller detail record ID to delete. Use halo_list_techdata_reseller_details to find valid IDs.

[HaloPSA] Delete a Tenable integration connection-detail record by numeric ID. This permanently removes the Tenable configuration record and cannot be undone. Use halo_list_tenable_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Tenable detail record ID to delete. Use halo_list_tenable_details to find valid IDs.

[HaloPSA] Delete a Twilio WhatsApp integration connection-detail record by numeric ID. This permanently removes the Twilio WhatsApp configuration record and cannot be undone. Use halo_list_twilio_whatsapp_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Twilio WhatsApp detail record ID to delete. Use halo_list_twilio_whatsapp_details to find valid IDs.

[HaloPSA] Delete a Twitter integration connection-detail record by numeric ID. This permanently removes the Twitter configuration record and cannot be undone. Use halo_list_twitter_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Twitter detail record ID to delete. Use halo_list_twitter_details to find valid IDs.

[HaloPSA] Delete a Virima integration connection-detail record by numeric ID. This permanently removes the Virima configuration record and cannot be undone. Use halo_list_virima_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Virima detail record ID to delete. Use halo_list_virima_details to find valid IDs.

[HaloPSA] Delete a VMware Workspace integration connection-detail record by numeric ID. This permanently removes the VMware Workspace configuration record and cannot be undone. Use halo_list_vmworkspace_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA VMware Workspace detail record ID to delete. Use halo_list_vmworkspace_details to find valid IDs.

[HaloPSA] Delete a WordPress integration connection-detail record by numeric ID. This permanently removes the WordPress configuration record and cannot be undone. Use halo_list_wordpress_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA WordPress detail record ID to delete. Use halo_list_wordpress_details to find valid IDs.

[HaloPSA] Delete a WordPress Org integration connection-detail record by numeric ID. This permanently removes the WordPress Org configuration record and cannot be undone. Use halo_list_wordpress_org_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA WordPress Org detail record ID to delete. Use halo_list_wordpress_org_details to find valid IDs.

[HaloPSA] Delete a Xero accounting-integration connection-detail record by numeric ID. This permanently removes the Xero configuration record and cannot be undone. Use halo_list_xero_details to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Xero detail record ID to delete. Use halo_list_xero_details to find valid IDs.

[HaloPSA] Retrieve a single StreamOne Ion integration connection-detail record by numeric ID. Returns the full StreamOne Ion configuration payload. Use halo_list_streamone_ion_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA StreamOne Ion detail record ID. Use halo_list_streamone_ion_details to find valid IDs.

[HaloPSA] Retrieve a single Synnex integration connection-detail record by numeric ID. Returns the full Synnex configuration payload. Use halo_list_synnex_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Synnex detail record ID. Use halo_list_synnex_details to find valid IDs.

[HaloPSA] Retrieve a single Tanium integration connection-detail record by numeric ID. Returns the full Tanium configuration payload. Use halo_list_tanium_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Tanium detail record ID. Use halo_list_tanium_details to find valid IDs.

[HaloPSA] Retrieve a single TechData Reseller integration connection-detail record by numeric ID. Returns the full TechData Reseller configuration payload. Use halo_list_techdata_reseller_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA TechData Reseller detail record ID. Use halo_list_techdata_reseller_details to find valid IDs.

[HaloPSA] Retrieve a single Tenable integration connection-detail record by numeric ID. Returns the full Tenable configuration payload. Use halo_list_tenable_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Tenable detail record ID. Use halo_list_tenable_details to find valid IDs.

[HaloPSA] Retrieve a single Twilio WhatsApp integration connection-detail record by numeric ID. Returns the full Twilio WhatsApp configuration payload. Use halo_list_twilio_whatsapp_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Twilio WhatsApp detail record ID. Use halo_list_twilio_whatsapp_details to find valid IDs.

[HaloPSA] Retrieve a single Twitter integration connection-detail record by numeric ID. Returns the full Twitter configuration payload. Use halo_list_twitter_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Twitter detail record ID. Use halo_list_twitter_details to find valid IDs.

[HaloPSA] Retrieve a single Virima integration connection-detail record by numeric ID. Returns the full Virima configuration payload. Use halo_list_virima_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Virima detail record ID. Use halo_list_virima_details to find valid IDs.

[HaloPSA] Retrieve a single VMware Workspace integration connection-detail record by numeric ID. Returns the full VMware Workspace configuration payload. Use halo_list_vmworkspace_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA VMware Workspace detail record ID. Use halo_list_vmworkspace_details to find valid IDs.

[HaloPSA] Retrieve a single WordPress integration connection-detail record by numeric ID. Returns the full WordPress configuration payload. Use halo_list_wordpress_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA WordPress detail record ID. Use halo_list_wordpress_details to find valid IDs.

[HaloPSA] Retrieve a single WordPress Org integration connection-detail record by numeric ID. Returns the full WordPress Org configuration payload. Use halo_list_wordpress_org_details to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA WordPress Org detail record ID. Use halo_list_wordpress_org_details to find valid IDs.

[HaloPSA] List StreamOne Ion integration connection-detail records configured in HaloPSA. Returns a paginated list of the StreamOne Ion connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_streamone_ion_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Synnex integration connection-detail records configured in HaloPSA. Returns a paginated list of the Synnex connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_synnex_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Tanium integration connection-detail records configured in HaloPSA. Returns a paginated list of the Tanium connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_tanium_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List TechData Reseller integration connection-detail records configured in HaloPSA. Returns a paginated list of the TechData Reseller connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_techdata_reseller_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Tenable integration connection-detail records configured in HaloPSA. Returns a paginated list of the Tenable connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_tenable_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Twilio integration connection-detail records configured in HaloPSA. Returns a paginated list of the Twilio connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. (HaloPSA exposes only a list read for Twilio — see halo_list_twilio_whatsapp_details for the Twilio WhatsApp resource.)

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Twilio WhatsApp integration connection-detail records configured in HaloPSA. Returns a paginated list of the Twilio WhatsApp connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_twilio_whatsapp_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Twitter integration connection-detail records configured in HaloPSA. Returns a paginated list of the Twitter connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_twitter_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Virima integration connection-detail records configured in HaloPSA. Returns a paginated list of the Virima connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_virima_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List VMware Workspace integration connection-detail records configured in HaloPSA. Returns a paginated list of the VMware Workspace connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_vmworkspace_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List WordPress integration connection-detail records configured in HaloPSA. Returns a paginated list of the WordPress connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_wordpress_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List WordPress Org integration connection-detail records configured in HaloPSA. Returns a paginated list of the WordPress Org connection-detail records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_wordpress_org_details to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

Integration Connectors

ToolPlanAccessSummary
halo_create_action_halo_integrationProWriteCreate a Halo action via the HaloIntegration/CreateAction inbound-integration endpoint.
halo_create_azure_ad_connectionProWriteCreate or update an Azure AD (Entra ID) connection record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_azure_deltaProWriteCreate or update an Azure Delta record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_azure_dev_opsProWriteCreate or update an Azure DevOps integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_config_commitProWriteCreate or update a configuration-commit record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_connected_instanceProWriteCreate or update a connected-instance record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_csv_templateProWriteCreate or update a CSV import-template record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_import_csvProWriteCreate or update a CSV import record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_incoming_eventProWriteCreate or update an incoming-event record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_incoming_webhookProWriteCreate or update an incoming-webhook record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_integration_configurationProWriteCreate or update an integration-configuration record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_integration_deltaProWriteCreate or update an integration-delta record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_integration_errorProWriteCreate or update an integration-error record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_integration_exportProWriteCreate or update an integration-export record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_ticket_halo_integrationProWriteCreate a Halo ticket via the HaloIntegration/CreateTicket inbound-integration endpoint.
halo_delete_azure_ad_connectionProDestructiveDelete an Azure AD (Entra ID) connection record by numeric ID.
halo_delete_azure_deltaProDestructiveDelete an Azure Delta record by numeric ID.
halo_delete_azure_dev_opsProDestructiveDelete an Azure DevOps integration connection-detail record by numeric ID.
halo_delete_config_commitProDestructiveDelete a configuration-commit record by numeric ID.
halo_delete_connected_instanceProDestructiveDelete a connected-instance record by numeric ID.
halo_delete_csv_templateProDestructiveDelete a CSV import-template record by numeric ID.
halo_delete_import_csvProDestructiveDelete a CSV import record by numeric ID.
halo_delete_incoming_eventProDestructiveDelete an incoming-event record by numeric ID.
halo_delete_incoming_webhookProDestructiveDelete an incoming-webhook record by numeric ID.
halo_delete_integration_deltaProDestructiveDelete an integration-delta record by numeric ID.
halo_delete_integration_errorProDestructiveDelete an integration-error record by numeric ID.
halo_delete_integration_exportProDestructiveDelete an integration-export record by numeric ID.
halo_get_azure_ad_connectionFreeRead-onlyRetrieve a single Azure AD (Entra ID) connection record by numeric ID.
halo_get_azure_deltaFreeRead-onlyRetrieve a single Azure Delta record by numeric ID.
halo_get_azure_dev_opsFreeRead-onlyRetrieve a single Azure DevOps integration connection-detail record by numeric ID.
halo_get_config_commitFreeRead-onlyRetrieve a single configuration-commit record by numeric ID.
halo_get_connected_instanceFreeRead-onlyRetrieve a single connected-instance record by numeric ID.
halo_get_csv_templateFreeRead-onlyRetrieve a single CSV import-template record by numeric ID.
halo_get_halo_integrationFreeRead-onlyRetrieve HaloIntegration inbound-integration data via the HaloIntegration/Get endpoint.
halo_get_import_csvFreeRead-onlyRetrieve a single CSV import record by numeric ID.
halo_get_incoming_eventFreeRead-onlyRetrieve a single incoming-event record by numeric ID.
halo_get_incoming_webhookFreeRead-onlyRetrieve a single incoming-webhook record by numeric ID.
halo_get_integration_deltaFreeRead-onlyRetrieve a single integration-delta record by numeric ID.
halo_list_azure_ad_connectionFreeRead-onlyList Azure AD (Entra ID) connection records configured in HaloPSA.
halo_list_azure_ad_mappingFreeRead-onlyList Azure AD (Entra ID) field-mapping records configured in HaloPSA.
halo_list_azure_deltaFreeRead-onlyList Azure Delta records configured in HaloPSA.
halo_list_azure_dev_opsFreeRead-onlyList Azure DevOps integration connection-detail records configured in HaloPSA.
halo_list_config_commitFreeRead-onlyList configuration-commit records in HaloPSA.
halo_list_connected_instanceFreeRead-onlyList connected-instance records in HaloPSA.
halo_list_csv_templateFreeRead-onlyList CSV import-template records in HaloPSA.
halo_list_import_csvFreeRead-onlyList CSV import records in HaloPSA.
halo_list_incoming_eventFreeRead-onlyList incoming-event records in HaloPSA.
halo_list_incoming_webhookFreeRead-onlyList incoming-webhook records in HaloPSA.
halo_list_integration_deltaFreeRead-onlyList integration-delta records in HaloPSA.
halo_list_integration_exportFreeRead-onlyList integration-export records in HaloPSA.
halo_process_incoming_eventProDestructiveProcess pending incoming events via the IncomingEvent/Process endpoint.
halo_process_incoming_webhookProDestructiveProcess queued incoming webhook attempts via the IncomingWebhook/Process endpoint.

[HaloPSA] Create a Halo action via the HaloIntegration/CreateAction inbound-integration endpoint. Provide the action payload as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the created action. This creates a record inside HaloPSA (not an external system).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object describing the action to create via the inbound integration endpoint. Field names must match HaloPSA API field names.

[HaloPSA] Create or update an Azure AD (Entra ID) connection record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Azure AD connection record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an Azure Delta record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Azure Delta record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an Azure DevOps integration connection-detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Azure DevOps connection-detail record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a configuration-commit record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the config-commit record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a connected-instance record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the connected-instance record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a CSV import-template record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the CSV template record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a CSV import record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the CSV import record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an incoming-event record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the incoming-event record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an incoming-webhook record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the incoming-webhook record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an integration-configuration record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the integration-configuration record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an integration-delta record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the integration-delta record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an integration-error record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the integration-error record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an integration-export record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the integration-export record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create a Halo ticket via the HaloIntegration/CreateTicket inbound-integration endpoint. Provide the ticket payload as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the created ticket. This creates a record inside HaloPSA (not an external system).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object describing the ticket to create via the inbound integration endpoint. Field names must match HaloPSA API field names.

[HaloPSA] Delete an Azure AD (Entra ID) connection record by numeric ID. This permanently removes the connection and cannot be undone. Use halo_list_azure_ad_connection to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Azure AD connection record ID to delete. Use halo_list_azure_ad_connection to find valid IDs.

[HaloPSA] Delete an Azure Delta record by numeric ID. This permanently removes the delta-sync tracking record and cannot be undone. Use halo_list_azure_delta to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Azure Delta record ID to delete. Use halo_list_azure_delta to find valid IDs.

[HaloPSA] Delete an Azure DevOps integration connection-detail record by numeric ID. This permanently removes the Azure DevOps configuration record and cannot be undone. Use halo_list_azure_dev_ops to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Azure DevOps detail record ID to delete. Use halo_list_azure_dev_ops to find valid IDs.

[HaloPSA] Delete a configuration-commit record by numeric ID. This permanently removes the config-commit record and cannot be undone. Use halo_list_config_commit to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA config-commit record ID to delete. Use halo_list_config_commit to find valid IDs.

[HaloPSA] Delete a connected-instance record by numeric ID. This permanently removes the connected-instance link and cannot be undone. Use halo_list_connected_instance to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA connected-instance record ID to delete. Use halo_list_connected_instance to find valid IDs.

[HaloPSA] Delete a CSV import-template record by numeric ID. This permanently removes the CSV template and cannot be undone. Use halo_list_csv_template to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA CSV template record ID to delete. Use halo_list_csv_template to find valid IDs.

[HaloPSA] Delete a CSV import record by numeric ID. This permanently removes the CSV import job record and cannot be undone. Use halo_list_import_csv to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA CSV import record ID to delete. Use halo_list_import_csv to find valid IDs.

[HaloPSA] Delete an incoming-event record by numeric ID. This permanently removes the inbound-event record and cannot be undone. Use halo_list_incoming_event to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA incoming-event record ID to delete. Use halo_list_incoming_event to find valid IDs.

[HaloPSA] Delete an incoming-webhook record by numeric ID. This permanently removes the inbound-webhook registration and cannot be undone. Use halo_list_incoming_webhook to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA incoming-webhook record ID to delete. Use halo_list_incoming_webhook to find valid IDs.

[HaloPSA] Delete an integration-delta record by numeric ID. This permanently removes the delta-sync tracking record and cannot be undone. Use halo_list_integration_delta to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA integration-delta record ID to delete. Use halo_list_integration_delta to find valid IDs.

[HaloPSA] Delete an integration-error record by numeric ID. This permanently removes the integration-error record and cannot be undone. This is the numeric error record ID from the integration-error list.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA integration-error record ID to delete.

[HaloPSA] Delete an integration-export record by numeric ID. This permanently removes the integration-export definition and cannot be undone. Use halo_list_integration_export to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA integration-export record ID to delete. Use halo_list_integration_export to find valid IDs.

[HaloPSA] Retrieve a single Azure AD (Entra ID) connection record by numeric ID. Returns the full connection configuration payload. Use halo_list_azure_ad_connection to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Azure AD connection record ID. Use halo_list_azure_ad_connection to find valid IDs.

[HaloPSA] Retrieve a single Azure Delta record by numeric ID. Returns the full delta-sync tracking payload. Use halo_list_azure_delta to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Azure Delta record ID. Use halo_list_azure_delta to find valid IDs.

[HaloPSA] Retrieve a single Azure DevOps integration connection-detail record by numeric ID. Returns the full Azure DevOps configuration payload. Use halo_list_azure_dev_ops to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Azure DevOps detail record ID. Use halo_list_azure_dev_ops to find valid IDs.

[HaloPSA] Retrieve a single configuration-commit record by numeric ID. Returns the full config-commit payload. Use halo_list_config_commit to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA config-commit record ID. Use halo_list_config_commit to find valid IDs.

[HaloPSA] Retrieve a single connected-instance record by numeric ID. Returns the full connected-instance payload. Use halo_list_connected_instance to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA connected-instance record ID. Use halo_list_connected_instance to find valid IDs.

[HaloPSA] Retrieve a single CSV import-template record by numeric ID. Returns the full CSV template payload (column mappings and settings). Use halo_list_csv_template to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA CSV template record ID. Use halo_list_csv_template to find valid IDs.

[HaloPSA] Retrieve HaloIntegration inbound-integration data via the HaloIntegration/Get endpoint. Returns the integration payload used by inbound connectors. This is a read-only lookup that takes no ID.

[HaloPSA] Retrieve a single CSV import record by numeric ID. Returns the full CSV import job payload (status, mapping, results). Use halo_list_import_csv to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA CSV import record ID. Use halo_list_import_csv to find valid IDs.

[HaloPSA] Retrieve a single incoming-event record by numeric ID. Returns the full inbound-event payload. Use halo_list_incoming_event to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA incoming-event record ID. Use halo_list_incoming_event to find valid IDs.

[HaloPSA] Retrieve a single incoming-webhook record by numeric ID. Returns the full inbound-webhook payload. Use halo_list_incoming_webhook to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA incoming-webhook record ID. Use halo_list_incoming_webhook to find valid IDs.

[HaloPSA] Retrieve a single integration-delta record by numeric ID. Returns the full delta-sync tracking payload. Use halo_list_integration_delta to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA integration-delta record ID. Use halo_list_integration_delta to find valid IDs.

[HaloPSA] List Azure AD (Entra ID) connection records configured in HaloPSA. Returns a paginated list of Azure AD connection records (IDs plus their sync settings). Supports page_no/page_size paging. Use halo_get_azure_ad_connection to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Azure AD (Entra ID) field-mapping records configured in HaloPSA. Returns a paginated list of the mappings that control how Azure AD attributes are synced into HaloPSA. Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Azure Delta records configured in HaloPSA. Returns a paginated list of the Azure delta-sync tracking records used to detect incremental Azure AD changes. Supports page_no/page_size paging. Use halo_get_azure_delta to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Azure DevOps integration connection-detail records configured in HaloPSA. Returns a paginated list of the Azure DevOps connection records (IDs plus their integration settings). Supports page_no/page_size paging. Use halo_get_azure_dev_ops to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List configuration-commit records in HaloPSA. Returns a paginated list of the config-commit records that track batched configuration changes. Supports page_no/page_size paging. Use halo_get_config_commit to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List connected-instance records in HaloPSA. Returns a paginated list of the linked HaloPSA instances used for cross-instance connections. Supports page_no/page_size paging. Use halo_get_connected_instance to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List CSV import-template records in HaloPSA. Returns a paginated list of the CSV templates that define column mappings for CSV imports. Supports page_no/page_size paging. Use halo_get_csv_template to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List CSV import records in HaloPSA. Returns a paginated list of CSV import job records (IDs plus their status and settings). Supports page_no/page_size paging. Use halo_get_import_csv to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List incoming-event records in HaloPSA. Returns a paginated list of the inbound events received by HaloPSA integrations. Supports page_no/page_size paging. Use halo_get_incoming_event to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List incoming-webhook records in HaloPSA. Returns a paginated list of the inbound webhook endpoints/registrations. Supports page_no/page_size paging. Use halo_get_incoming_webhook to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List integration-delta records in HaloPSA. Returns a paginated list of the integration delta-sync tracking records used to detect incremental changes. Supports page_no/page_size paging. Use halo_get_integration_delta to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List integration-export records in HaloPSA. Returns a paginated list of the integration export definitions/jobs. Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] Process pending incoming events via the IncomingEvent/Process endpoint. This ingests queued inbound events into HaloPSA and triggers their downstream automation (ticket creation, workflows, syncs) — the side effects are irreversible. The endpoint takes no body.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""Optional raw HaloPSA JSON object for the IncomingEvent/Process action; the endpoint takes no body. Defaults to an empty object .

[HaloPSA] Process queued incoming webhook attempts via the IncomingWebhook/Process endpoint. POST takes an array of numeric incoming-webhook attempt IDs; processing ingests them into HaloPSA and triggers their downstream automation (ticket creation, workflows, syncs) — the side effects are irreversible.

ParamTypeRequiredDefaultDescription
idsarrayyesThe numeric HaloPSA incoming-webhook attempt IDs to process.

Integration Mappings

ToolPlanAccessSummary
halo_create_integration_field_dataProWriteCreate or update an integration field-data mapping record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_integration_requestProWriteCreate or update an integration request record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_microsoft_subscription_mappingProWriteCreate or update a Microsoft subscription mapping record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_microsoft_teams_mappingProWriteCreate or update a Microsoft Teams mapping record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_outbound_integrationProWriteCreate or update an outbound (custom) integration (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_outbound_integration_methodProWriteCreate or update an outbound (custom) integration method (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_slack_chat_appProWriteCreate or update a Slack chat app record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_sql_importProWriteCreate or update a SQL import configuration (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_webhook_eventProWriteCreate or update a webhook event record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_delete_integration_field_dataProDestructiveDelete an integration field-data mapping record by numeric ID.
halo_delete_integration_requestProDestructiveDelete an integration request record by numeric ID.
halo_delete_microsoft_subscription_mappingProDestructiveDelete a Microsoft subscription mapping record by numeric ID.
halo_delete_microsoft_teams_mappingProDestructiveDelete a Microsoft Teams mapping record by numeric ID.
halo_delete_outbound_integrationProDestructiveDelete an outbound (custom) integration by numeric ID.
halo_delete_outbound_integration_methodProDestructiveDelete an outbound (custom) integration method by numeric ID.
halo_delete_slack_chat_appProDestructiveDelete a Slack chat app record by numeric ID.
halo_delete_sql_importProDestructiveDelete a SQL import configuration by numeric ID.
halo_get_integration_field_dataFreeRead-onlyRetrieve a single integration field-data mapping record by numeric ID.
halo_get_integration_runbook_variable_groupFreeRead-onlyRetrieve a single integration runbook variable group by numeric ID.
halo_get_microsoft_subscription_mappingFreeRead-onlyRetrieve a single Microsoft subscription mapping record by numeric ID.
halo_get_microsoft_teams_mappingFreeRead-onlyRetrieve a single Microsoft Teams mapping record by numeric ID.
halo_get_outbound_integrationFreeRead-onlyRetrieve a single outbound (custom) integration by numeric ID.
halo_get_outbound_integration_methodFreeRead-onlyRetrieve a single outbound (custom) integration method by numeric ID.
halo_get_outbound_integration_repositoryFreeRead-onlyRetrieve a single outbound (custom) integration repository entry by numeric ID.
halo_get_slack_chat_appFreeRead-onlyRetrieve a single Slack chat app record by numeric ID.
halo_get_sql_importFreeRead-onlyRetrieve a single SQL import configuration by numeric ID.
halo_get_webhook_eventFreeRead-onlyRetrieve a single webhook event record by its GUID.
halo_get_webhook_repositoryFreeRead-onlyRetrieve a single webhook repository entry by its GUID.
halo_get_xtype_mappingFreeRead-onlyRetrieve a single asset-type (XType) mapping record by numeric ID.
halo_list_integration_field_dataFreeRead-onlyList integration field-data mapping records configured in HaloPSA.
halo_list_integration_runbook_variable_groupFreeRead-onlyList integration runbook variable groups configured in HaloPSA.
halo_list_microsoft_subscription_mappingFreeRead-onlyList Microsoft subscription mapping records configured in HaloPSA.
halo_list_microsoft_teams_mappingFreeRead-onlyList Microsoft Teams mapping records configured in HaloPSA.
halo_list_object_mapping_profileFreeRead-onlyList object-mapping profiles configured in HaloPSA.
halo_list_outbound_integrationFreeRead-onlyList outbound (custom) integrations configured in HaloPSA.
halo_list_outbound_integration_methodFreeRead-onlyList outbound (custom) integration methods configured in HaloPSA.
halo_list_outbound_integration_method_valueFreeRead-onlyList outbound (custom) integration method values configured in HaloPSA.
halo_list_outbound_integration_repositoryFreeRead-onlyList the outbound (custom) integration repository entries available in HaloPSA.
halo_list_pagerduty_mappingFreeRead-onlyList PagerDuty mapping records configured in HaloPSA.
halo_list_sailpoint_role_mappingFreeRead-onlyList SailPoint role mapping records configured in HaloPSA.
halo_list_sailpoint_user_mappingFreeRead-onlyList SailPoint user mapping records configured in HaloPSA.
halo_list_slack_chat_appFreeRead-onlyList Slack chat app records configured in HaloPSA.
halo_list_sql_importFreeRead-onlyList SQL import configurations defined in HaloPSA.
halo_list_webhook_repositoryFreeRead-onlyList the webhook repository entries available in HaloPSA.
halo_list_xtype_mappingFreeRead-onlyList asset-type (XType) mapping records configured in HaloPSA.
halo_list_xtype_roleFreeRead-onlyList asset-type (XType) role records configured in HaloPSA.

[HaloPSA] Create or update an integration field-data mapping record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the integration field-data record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an integration request record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the integration request record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Microsoft subscription mapping record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Microsoft subscription mapping record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Microsoft Teams mapping record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Microsoft Teams mapping record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an outbound (custom) integration (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the outbound integration (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an outbound (custom) integration method (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the outbound integration method (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a Slack chat app record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Slack chat app record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a SQL import configuration (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the SQL import configuration (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a webhook event record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the webhook event record (include "id" to update an existing record). Field names must match HaloPSA API field names.

[HaloPSA] Delete an integration field-data mapping record by numeric ID. This permanently removes the field-mapping record and cannot be undone. Use halo_list_integration_field_data to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA integration field-data record ID to delete. Use halo_list_integration_field_data to find valid IDs.

[HaloPSA] Delete an integration request record by numeric ID. This permanently removes the record and cannot be undone. Provide a valid integration request ID.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA integration request record ID to delete.

[HaloPSA] Delete a Microsoft subscription mapping record by numeric ID. This permanently removes the mapping record and cannot be undone. Use halo_list_microsoft_subscription_mapping to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Microsoft subscription mapping ID to delete. Use halo_list_microsoft_subscription_mapping to find valid IDs.

[HaloPSA] Delete a Microsoft Teams mapping record by numeric ID. This permanently removes the mapping record and cannot be undone. Use halo_list_microsoft_teams_mapping to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Microsoft Teams mapping ID to delete. Use halo_list_microsoft_teams_mapping to find valid IDs.

[HaloPSA] Delete an outbound (custom) integration by numeric ID. This permanently removes the integration and cannot be undone. Use halo_list_outbound_integration to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA outbound integration ID to delete. Use halo_list_outbound_integration to find valid IDs.

[HaloPSA] Delete an outbound (custom) integration method by numeric ID. This permanently removes the method and cannot be undone. Use halo_list_outbound_integration_method to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA outbound integration method ID to delete. Use halo_list_outbound_integration_method to find valid IDs.

[HaloPSA] Delete a Slack chat app record by numeric ID. This permanently removes the Slack chat app and cannot be undone. Use halo_list_slack_chat_app to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Slack chat app ID to delete. Use halo_list_slack_chat_app to find valid IDs.

[HaloPSA] Delete a SQL import configuration by numeric ID. This permanently removes the SQL import and cannot be undone. Use halo_list_sql_import to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA SQL import ID to delete. Use halo_list_sql_import to find valid IDs.

[HaloPSA] Retrieve a single integration field-data mapping record by numeric ID. Returns the full field-mapping payload. Use halo_list_integration_field_data to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA integration field-data record ID. Use halo_list_integration_field_data to find valid IDs.

[HaloPSA] Retrieve a single integration runbook variable group by numeric ID. Returns the full group payload. Use halo_list_integration_runbook_variable_group to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA integration runbook variable group ID. Use halo_list_integration_runbook_variable_group to find valid IDs.

[HaloPSA] Retrieve a single Microsoft subscription mapping record by numeric ID. Returns the full mapping payload. Use halo_list_microsoft_subscription_mapping to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Microsoft subscription mapping ID. Use halo_list_microsoft_subscription_mapping to find valid IDs.

[HaloPSA] Retrieve a single Microsoft Teams mapping record by numeric ID. Returns the full mapping payload. Use halo_list_microsoft_teams_mapping to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Microsoft Teams mapping ID. Use halo_list_microsoft_teams_mapping to find valid IDs.

[HaloPSA] Retrieve a single outbound (custom) integration by numeric ID. Returns the full integration payload. Use halo_list_outbound_integration to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA outbound integration ID. Use halo_list_outbound_integration to find valid IDs.

[HaloPSA] Retrieve a single outbound (custom) integration method by numeric ID. Returns the full method payload. Use halo_list_outbound_integration_method to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA outbound integration method ID. Use halo_list_outbound_integration_method to find valid IDs.

[HaloPSA] Retrieve a single outbound (custom) integration repository entry by numeric ID. Returns the full repository-entry payload. Use halo_list_outbound_integration_repository to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA outbound integration repository entry ID. Use halo_list_outbound_integration_repository to find valid IDs.

[HaloPSA] Retrieve a single Slack chat app record by numeric ID. Returns the full Slack chat app payload. Use halo_list_slack_chat_app to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Slack chat app ID. Use halo_list_slack_chat_app to find valid IDs.

[HaloPSA] Retrieve a single SQL import configuration by numeric ID. Returns the full SQL import payload. Use halo_list_sql_import to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA SQL import ID. Use halo_list_sql_import to find valid IDs.

[HaloPSA] Retrieve a single webhook event record by its GUID. Returns the full webhook event payload. Provide a valid webhook event GUID.

ParamTypeRequiredDefaultDescription
idstringyesThe HaloPSA webhook event GUID.

[HaloPSA] Retrieve a single webhook repository entry by its GUID. Returns the full repository-entry payload. Use halo_list_webhook_repository to discover valid GUIDs.

ParamTypeRequiredDefaultDescription
idstringyesThe HaloPSA webhook repository entry GUID. Use halo_list_webhook_repository to find valid GUIDs.

[HaloPSA] Retrieve a single asset-type (XType) mapping record by numeric ID. Returns the full mapping payload. Use halo_list_xtype_mapping to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA asset-type (XType) mapping ID. Use halo_list_xtype_mapping to find valid IDs.

[HaloPSA] List integration field-data mapping records configured in HaloPSA. Returns a paginated list of integration field-data records (IDs plus their field-mapping settings). Supports page_no/page_size paging. Use halo_get_integration_field_data to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List integration runbook variable groups configured in HaloPSA. Returns a paginated list of runbook variable groups (IDs plus their settings). Supports page_no/page_size paging. Use halo_get_integration_runbook_variable_group to retrieve a single group by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Microsoft subscription mapping records configured in HaloPSA. Returns a paginated list of subscription mappings (IDs plus their mapping settings). Supports page_no/page_size paging. Use halo_get_microsoft_subscription_mapping to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Microsoft Teams mapping records configured in HaloPSA. Returns a paginated list of Teams mappings (IDs plus their mapping settings). Supports page_no/page_size paging. Use halo_get_microsoft_teams_mapping to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List object-mapping profiles configured in HaloPSA. Returns a paginated list of object-mapping profiles (IDs plus their mapping settings). Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List outbound (custom) integrations configured in HaloPSA. Returns a paginated list of outbound integrations (IDs plus their settings). Supports page_no/page_size paging. Use halo_get_outbound_integration to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List outbound (custom) integration methods configured in HaloPSA. Returns a paginated list of integration methods (IDs plus their settings). Supports page_no/page_size paging. Use halo_get_outbound_integration_method to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List outbound (custom) integration method values configured in HaloPSA. Returns a paginated list of method values (IDs plus their settings). Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List the outbound (custom) integration repository entries available in HaloPSA. Returns a paginated list of repository entries (IDs plus their settings). Supports page_no/page_size paging. Use halo_get_outbound_integration_repository to retrieve a single entry by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List PagerDuty mapping records configured in HaloPSA. Returns a paginated list of PagerDuty mappings (IDs plus their mapping settings). Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List SailPoint role mapping records configured in HaloPSA. Returns a paginated list of SailPoint role mappings (IDs plus their mapping settings). Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List SailPoint user mapping records configured in HaloPSA. Returns a paginated list of SailPoint user mappings (IDs plus their mapping settings). Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Slack chat app records configured in HaloPSA. Returns a paginated list of Slack chat apps (IDs plus their settings). Supports page_no/page_size paging. Use halo_get_slack_chat_app to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List SQL import configurations defined in HaloPSA. Returns a paginated list of SQL imports (IDs plus their settings). Supports page_no/page_size paging. Use halo_get_sql_import to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List the webhook repository entries available in HaloPSA. Returns a paginated list of webhook repository entries (IDs plus their settings). Supports page_no/page_size paging. Use halo_get_webhook_repository to retrieve a single entry by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List asset-type (XType) mapping records configured in HaloPSA. Returns a paginated list of asset-type mappings (IDs plus their mapping settings). Supports page_no/page_size paging. Use halo_get_xtype_mapping to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List asset-type (XType) role records configured in HaloPSA. Returns a paginated list of asset-type roles (IDs plus their settings). Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

Custom Fields & Types

ToolPlanAccessSummary
halo_add_field_to_allProWriteAdd an existing ASSET-TYPE field to all field groups via the Field/AddFieldToAll action.
halo_create_fieldProWriteCreate or update an ASSET-TYPE field definition — the fields that make up an asset type's field_list (POST /Field; HaloPSA POST is an upsert, so include an "id" to update an existing field).
halo_create_field_groupProWriteCreate or update a field group (HaloPSA POST is an upsert — include an "id" field to update).
halo_create_field_infoProWriteCreate or update a CUSTOM FIELD definition (POST /FieldInfo; HaloPSA POST is an upsert, so include an "id" to update).
halo_create_screen_layoutProWriteCreate or update a screen layout (HaloPSA POST is an upsert — include an "id" field to update).
halo_create_section_detailProWriteCreate or update an agent team / section (HaloPSA POST is an upsert — include an "id" field to update).
halo_create_style_profileProWriteCreate or update a style profile (HaloPSA POST is an upsert — include an "id" field to update).
halo_create_toutcomeProWriteCreate or update a ticket action outcome (HaloPSA POST is an upsert — include an "id" field to update).
halo_create_treeProWriteCreate or update a top-level tree node (TopLevel) (HaloPSA POST is an upsert — include an "id" field to update).
halo_create_tstatusProWriteCreate or update a ticket status (HaloPSA POST is an upsert — include an "id" field to update).
halo_create_xtypeProWriteCreate or update an asset type (HaloPSA POST is an upsert — include an "id" field to update).
halo_delete_fieldProDestructiveDelete an ASSET-TYPE field definition by numeric ID (DELETE /Field/).
halo_delete_field_groupProDestructiveDelete a field group by numeric ID.
halo_delete_field_infoProDestructiveDelete a CUSTOM FIELD definition by numeric ID (DELETE /FieldInfo/).
halo_delete_screen_layoutProDestructiveDelete a screen layout by numeric ID.
halo_delete_section_detailProDestructiveDelete an agent team / section by numeric ID.
halo_delete_style_profileProDestructiveDelete a style profile by numeric ID.
halo_delete_toutcomeProDestructiveDelete a ticket action outcome by numeric ID.
halo_delete_treeProDestructiveDelete a top-level tree node (TopLevel) by numeric ID.
halo_delete_tstatusProDestructiveDelete a ticket status by numeric ID.
halo_delete_xtypeProDestructiveDelete an asset type by numeric ID.
halo_get_category_detailFreeRead-onlyRetrieve a single category definition by numeric ID from the HaloPSA Category configuration.
halo_get_field_groupFreeRead-onlyRetrieve a single field group by numeric ID.
halo_get_screen_layoutFreeRead-onlyRetrieve a single screen layout by numeric ID.
halo_get_section_detailFreeRead-onlyRetrieve a single agent team / section by numeric ID from the HaloPSA Team configuration.
halo_get_section_detail_treeFreeRead-onlyRetrieve the agent team (section) hierarchy as a tree via the Team/Tree endpoint.
halo_get_style_profileFreeRead-onlyRetrieve a single style profile by numeric ID.
halo_get_toutcomeFreeRead-onlyRetrieve a single ticket action outcome by numeric ID from the HaloPSA Outcome configuration.
halo_get_treeFreeRead-onlyRetrieve a single top-level tree node (TopLevel) by numeric ID.
halo_get_tstatusFreeRead-onlyRetrieve a single ticket status by numeric ID from the HaloPSA Status configuration.
halo_get_xtypeFreeRead-onlyRetrieve a single asset type by numeric ID from the HaloPSA AssetType configuration.
halo_list_criteria_groupFreeRead-onlyList criteria groups configured in HaloPSA — the reusable condition sets referenced by rules, automations and views.
halo_list_field_groupFreeRead-onlyList field groups configured in HaloPSA — the containers that organise custom fields into sections on forms.
halo_list_halo_fieldFreeRead-onlyList the built-in HaloField catalog — the standard (system) field definitions available across HaloPSA.
halo_list_screen_layoutFreeRead-onlyList screen layouts configured in HaloPSA — the form/screen designs that control how fields are arranged for ticket types, assets and other entities.
halo_list_style_profileFreeRead-onlyList style profiles configured in HaloPSA — the branding/appearance profiles that control colours and styling of portals and emails.
halo_list_treeFreeRead-onlyList top-level tree nodes (TopLevel) configured in HaloPSA — the top-level category groupings used to organise ticket types and areas.
halo_list_type_infoFreeRead-onlyList asset type info (AssetTypeInfo) — a lightweight summary of the asset types configured in HaloPSA.

[HaloPSA] Add an existing ASSET-TYPE field to all field groups via the Field/AddFieldToAll action. This is a config bulk-apply keyed on the field ID — it takes no request body. Returns the HaloPSA response. The ID is an asset-type Field id from halo_get_xtype → field_list[].id, not a halo_list_custom_fields (FieldInfo) id.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA asset-type Field ID to add to all field groups. Read it from halo_get_xtype → field_list[].id.

[HaloPSA] Create or update an ASSET-TYPE field definition — the fields that make up an asset type's field_list (POST /Field; HaloPSA POST is an upsert, so include an "id" to update an existing field). This is NOT the tool for ticket, user, client or site custom fields: those live on a different HaloPSA resource with its own id space — use halo_create_field_info for them. Two properties are mandatory: "kind" (a string discriminator; without it HaloPSA returns 400 "Field kind must be specified") and "name". HaloPSA does not publish the list of valid "kind" values, so discover one by reading an existing asset type with halo_get_xtype and copying field_list[].kind from a field of the same sort you are creating. Do not send FieldInfo-shaped properties such as label, usage, type or inputtype — /Field does not define them, and a mis-shaped record can fail inside HaloPSA's database rather than as a clean validation error. Returns the saved field.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the asset-type Field record. MUST contain a non-empty "kind" string and a "name"; include "id" to update an existing field. Copy "kind" from halo_get_xtype → field_list[].kind. Minimal example: {"kind":"<copied from field_list>","name":"Warranty Ref"}.

[HaloPSA] Create or update a field group (HaloPSA POST is an upsert — include an "id" field to update). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved field group.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the field group record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a CUSTOM FIELD definition (POST /FieldInfo; HaloPSA POST is an upsert, so include an "id" to update). This is the tool for ticket, user, client, site and asset custom fields — the same records halo_list_custom_fields and halo_get_field return, so a record read from those can be edited and posted back here. (halo_create_field is a different resource: asset-type fields.) HaloPSA's spec declares the shape discriminators — "type", "usage", "inputtype", "characterlimit" — as bare integers with no published vocabulary, so the reliable way to compose a new field is to read an existing field of the kind you want with halo_list_custom_fields, copy those integers, and change "name" and "label". Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the custom field record (include "id" to update). Copy "type"/"usage"/"inputtype" from an existing field returned by halo_list_custom_fields, then set your own "name" and "label".

[HaloPSA] Create or update a screen layout (HaloPSA POST is an upsert — include an "id" field to update). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved layout.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the screen layout record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an agent team / section (HaloPSA POST is an upsert — include an "id" field to update). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved team (section).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the team (section) record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a style profile (HaloPSA POST is an upsert — include an "id" field to update). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved profile.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the style profile record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a ticket action outcome (HaloPSA POST is an upsert — include an "id" field to update). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved outcome.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the outcome record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a top-level tree node (TopLevel) (HaloPSA POST is an upsert — include an "id" field to update). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved node.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the TopLevel node record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a ticket status (HaloPSA POST is an upsert — include an "id" field to update). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved status.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the status record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an asset type (HaloPSA POST is an upsert — include an "id" field to update). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved asset type.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the asset type record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Delete an ASSET-TYPE field definition by numeric ID (DELETE /Field/). Permanent and cannot be undone. The ID must be an asset-type Field id — read it from halo_get_xtype → field_list[].id. Do NOT pass an id returned by halo_list_custom_fields or halo_get_field: those read a different HaloPSA resource (FieldInfo) with its own id space, so the same number identifies an unrelated record and you would delete the wrong thing. To delete a ticket, user, client or site custom field use halo_delete_field_info. Pass the same "kind" the field carries — HaloPSA scopes /Field by kind and can refuse the delete without it.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA asset-type Field ID to delete. Read it from halo_get_xtype → field_list[].id — NOT from halo_list_custom_fields (different resource, different id space).
kindstringnonullThe field's "kind" discriminator, as shown on the record in halo_get_xtype → field_list[].kind. Optional, but HaloPSA can reject a kind-less delete.

[HaloPSA] Delete a field group by numeric ID. This permanently removes the group (member fields are detached, not deleted) and cannot be undone. Use halo_list_field_group to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA field group ID to delete. Use halo_list_field_group to find valid IDs.

[HaloPSA] Delete a CUSTOM FIELD definition by numeric ID (DELETE /FieldInfo/). Permanent and cannot be undone — any data stored in the field goes with it, so verify with halo_get_field first. The ID comes from halo_list_custom_fields or halo_get_field. To delete an asset-type field instead, use halo_delete_field (a different resource with its own id space).

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA custom field ID to delete. Use halo_list_custom_fields or halo_get_field to find and verify valid IDs.

[HaloPSA] Delete a screen layout by numeric ID. This permanently removes the layout and cannot be undone. Use halo_list_screen_layout to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA screen layout ID to delete. Use halo_list_screen_layout to find valid IDs.

[HaloPSA] Delete an agent team / section by numeric ID. This permanently removes the team and cannot be undone. Use halo_get_section_detail_tree to review teams and verify the ID before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA team (section) ID to delete.

[HaloPSA] Delete a style profile by numeric ID. This permanently removes the profile and cannot be undone. Use halo_list_style_profile to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA style profile ID to delete. Use halo_list_style_profile to find valid IDs.

[HaloPSA] Delete a ticket action outcome by numeric ID. This permanently removes the outcome and cannot be undone. Verify the ID before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA outcome ID to delete.

[HaloPSA] Delete a top-level tree node (TopLevel) by numeric ID. This permanently removes the node and cannot be undone. Use halo_list_tree to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA TopLevel node ID to delete. Use halo_list_tree to find valid IDs.

[HaloPSA] Delete a ticket status by numeric ID. This permanently removes the status and cannot be undone. Verify the ID before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA status ID to delete.

[HaloPSA] Delete an asset type by numeric ID. This permanently removes the asset type and cannot be undone. Use halo_list_type_info to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA asset type ID to delete. Use halo_list_type_info to find valid IDs.

[HaloPSA] Retrieve a single category definition by numeric ID from the HaloPSA Category configuration. Returns the full category detail payload (name, parent, and hierarchy settings). Requires a valid category ID.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA category ID.

[HaloPSA] Retrieve a single field group by numeric ID. Returns the full field-group configuration including its member fields. Use halo_list_field_group to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA field group ID. Use halo_list_field_group to find valid IDs.

[HaloPSA] Retrieve a single screen layout by numeric ID. Returns the full layout configuration (field placement, tabs and sections). Use halo_list_screen_layout to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA screen layout ID. Use halo_list_screen_layout to find valid IDs.

[HaloPSA] Retrieve a single agent team / section by numeric ID from the HaloPSA Team configuration. Returns the full team (section) detail. Requires a valid team ID.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA team (section) ID.

[HaloPSA] Retrieve the agent team (section) hierarchy as a tree via the Team/Tree endpoint. Returns the nested team structure used by HaloPSA to group agents. Takes no parameters.

[HaloPSA] Retrieve a single style profile by numeric ID. Returns the full styling/branding configuration. Use halo_list_style_profile to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA style profile ID. Use halo_list_style_profile to find valid IDs.

[HaloPSA] Retrieve a single ticket action outcome by numeric ID from the HaloPSA Outcome configuration. Returns the full outcome definition (name and behaviour). Requires a valid outcome ID.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA outcome ID.

[HaloPSA] Retrieve a single top-level tree node (TopLevel) by numeric ID. Returns the full node definition. Use halo_list_tree to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA TopLevel node ID. Use halo_list_tree to find valid IDs.

[HaloPSA] Retrieve a single ticket status by numeric ID from the HaloPSA Status configuration. Returns the full status definition (name, colour and behaviour). Requires a valid status ID.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA status ID.

[HaloPSA] Retrieve a single asset type by numeric ID from the HaloPSA AssetType configuration. Returns the full asset-type definition (fields, layout and behaviour). Use halo_list_type_info to discover asset-type IDs. Its "field_list" array holds this asset type's Field records — the read path for halo_create_field / halo_delete_field, and the place to copy a valid "kind" value and field id from.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA asset type ID. Use halo_list_type_info to find valid IDs.

[HaloPSA] List criteria groups configured in HaloPSA — the reusable condition sets referenced by rules, automations and views. Returns a paginated list. Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List field groups configured in HaloPSA — the containers that organise custom fields into sections on forms. Returns a paginated list. Supports page_no/page_size paging. Use halo_get_field_group to retrieve a single group by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List the built-in HaloField catalog — the standard (system) field definitions available across HaloPSA. Returns a paginated list. Supports page_no/page_size paging. Use this to discover system field names when building screen layouts or field groups.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List screen layouts configured in HaloPSA — the form/screen designs that control how fields are arranged for ticket types, assets and other entities. Returns a paginated list. Supports page_no/page_size paging. Use halo_get_screen_layout to retrieve a single layout by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List style profiles configured in HaloPSA — the branding/appearance profiles that control colours and styling of portals and emails. Returns a paginated list. Supports page_no/page_size paging. Use halo_get_style_profile to retrieve a single profile by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List top-level tree nodes (TopLevel) configured in HaloPSA — the top-level category groupings used to organise ticket types and areas. Returns a paginated list. Supports page_no/page_size paging. Use halo_get_tree to retrieve a single node by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List asset type info (AssetTypeInfo) — a lightweight summary of the asset types configured in HaloPSA. Returns a paginated list. Supports page_no/page_size paging. Use halo_get_xtype for the full asset-type definition.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

Ticket Structure

ToolPlanAccessSummary
halo_area_new_accounts_idProWriteAllocate/return the next new account ID for a HaloPSA Client (Area) via the /Client/NewAccountsId endpoint.
halo_area_payment_method_updateProWriteUpdate the stored payment method for a HaloPSA Client (Area) via the /Client/PaymentMethodUpdate endpoint.
halo_create_autoassignProWriteCreate or update a ticket auto-assign rule via the /TicketRules endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing rule).
halo_create_confirm_closureProWriteCreate or update a confirm-closure rule via the /ConfirmClosure endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing rule).
halo_create_journeyProWriteCreate or update a journey via the /Journey endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing journey).
halo_create_qualificationProWriteCreate or update a qualification via the /Qualification endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing qualification).
halo_create_request_typeProWriteCreate or update a ticket request type via the /TicketType endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing request type).
halo_create_request_type_groupProWriteCreate or update a ticket request-type group via the /TicketTypeGroup endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing group).
halo_create_setup_tabProWriteCreate or update a setup tab via the /SetupTab endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing setup tab).
halo_create_tabnameProWriteCreate or update a tab name via the /Tabs endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing tab name).
halo_create_ticket_areaProWriteCreate or update a ticket-area record via the /TicketArea endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_workflow_targetProWriteCreate or update a workflow target via the /WorkflowTarget endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing target).
halo_delete_areaProDestructiveDelete a HaloPSA Client (Area) record by numeric ID via the /Client/ endpoint.
halo_delete_area_noteProDestructiveDelete an Area (Client) CRM note by numeric ID via the /CRMNote/ endpoint.
halo_delete_autoassignProDestructiveDelete a ticket auto-assign rule by numeric ID via the /TicketRules/ endpoint.
halo_delete_confirm_closureProDestructiveDelete a confirm-closure rule by numeric ID via the /ConfirmClosure/ endpoint.
halo_delete_journeyProDestructiveDelete a journey by numeric ID via the /Journey/ endpoint.
halo_delete_qualificationProDestructiveDelete a qualification by numeric ID via the /Qualification/ endpoint.
halo_delete_request_typeProDestructiveDelete a ticket request type by numeric ID via the /TicketType/ endpoint.
halo_delete_request_type_groupProDestructiveDelete a ticket request-type group by numeric ID via the /TicketTypeGroup/ endpoint.
halo_delete_tabnameProDestructiveDelete a tab name by numeric ID via the /Tabs/ endpoint.
halo_delete_ticket_areaProDestructiveDelete a ticket-area record by numeric ID via the /TicketArea/ endpoint.
halo_delete_workflow_targetProDestructiveDelete a workflow target by numeric ID via the /WorkflowTarget/ endpoint.
halo_get_area_meFreeRead-onlyRetrieve the HaloPSA Client (Area) record associated with the currently authenticated user via the /Client/me endpoint.
halo_get_area_noteFreeRead-onlyRetrieve a single Area (Client) CRM note by numeric ID via the /CRMNote/ endpoint.
halo_get_area_request_typeFreeRead-onlyRetrieve a single Area↔request-type link by numeric ID via the /AreaRequestType/ endpoint.
halo_get_autoassignFreeRead-onlyRetrieve a single ticket auto-assign rule by numeric ID via the /TicketRules/ endpoint.
halo_get_confirm_closureFreeRead-onlyRetrieve a single confirm-closure rule by numeric ID via the /ConfirmClosure/ endpoint.
halo_get_journeyFreeRead-onlyRetrieve a single journey by numeric ID via the /Journey/ endpoint.
halo_get_qualificationFreeRead-onlyRetrieve a single qualification by numeric ID via the /Qualification/ endpoint.
halo_get_request_typeFreeRead-onlyRetrieve a single ticket request type by numeric ID via the /TicketType/ endpoint.
halo_get_request_type_groupFreeRead-onlyRetrieve a single ticket request-type group by numeric ID via the /TicketTypeGroup/ endpoint.
halo_get_setup_tabFreeRead-onlyRetrieve a single setup tab by numeric ID via the /SetupTab/ endpoint.
halo_get_setup_tab_groupFreeRead-onlyRetrieve a single setup-tab group by numeric ID via the /SetupTabGroup/ endpoint.
halo_get_tabnameFreeRead-onlyRetrieve a single tab name by numeric ID via the /Tabs/ endpoint.
halo_get_ticket_areaFreeRead-onlyRetrieve a single ticket-area record by numeric ID via the /TicketArea/ endpoint.
halo_get_workflow_targetFreeRead-onlyRetrieve a single workflow target by numeric ID via the /WorkflowTarget/ endpoint.
halo_list_area_azure_tenantFreeRead-onlyList the Azure-tenant links associated with HaloPSA Areas (Clients).
halo_list_area_itemFreeRead-onlyList Area recurring-item records via the /RecurringItem endpoint.
halo_list_autoassignFreeRead-onlyList ticket auto-assign rules via the /TicketRules endpoint.
halo_list_confirm_closureFreeRead-onlyList confirm-closure rules via the /ConfirmClosure endpoint.
halo_list_journeyFreeRead-onlyList journeys via the /Journey endpoint.
halo_list_qualificationFreeRead-onlyList qualifications via the /Qualification endpoint.
halo_list_request_type_groupFreeRead-onlyList ticket request-type groups via the /TicketTypeGroup endpoint.
halo_list_setup_tabFreeRead-onlyList setup tabs via the /SetupTab endpoint.
halo_list_setup_tab_groupFreeRead-onlyList setup-tab groups via the /SetupTabGroup endpoint.
halo_list_tabnameFreeRead-onlyList tab names via the /Tabs endpoint.
halo_list_workflow_targetFreeRead-onlyList workflow targets via the /WorkflowTarget endpoint.

[HaloPSA] Allocate/return the next new account ID for a HaloPSA Client (Area) via the /Client/NewAccountsId endpoint. Provide the request payload as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the allocated account-ID payload. Operates on the HaloPSA Client entity.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the new-account-ID request. Field names must match HaloPSA API field names.

[HaloPSA] Update the stored payment method for a HaloPSA Client (Area) via the /Client/PaymentMethodUpdate endpoint. Provide the request payload as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the updated payload. Operates on the HaloPSA Client entity.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the payment-method update. Field names must match HaloPSA API field names.

[HaloPSA] Create or update a ticket auto-assign rule via the /TicketRules endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing rule). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved rule.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the auto-assign rule (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a confirm-closure rule via the /ConfirmClosure endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing rule). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved rule.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the confirm-closure rule (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a journey via the /Journey endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing journey). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved journey.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the journey (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a qualification via the /Qualification endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing qualification). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved qualification.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the qualification (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a ticket request type via the /TicketType endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing request type). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved request type.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the request type (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a ticket request-type group via the /TicketTypeGroup endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing group). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved group.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the request-type group (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a setup tab via the /SetupTab endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing setup tab). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved setup tab.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the setup tab (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a tab name via the /Tabs endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing tab name). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved tab name.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the tab name (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a ticket-area record via the /TicketArea endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved ticket area.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the ticket-area record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a workflow target via the /WorkflowTarget endpoint (HaloPSA POST is an upsert — include an "id" field to update an existing target). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved workflow target.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the workflow target (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Delete a HaloPSA Client (Area) record by numeric ID via the /Client/ endpoint. This permanently removes the client/area and cannot be undone. Verify the ID before deleting. Operates on the HaloPSA Client entity.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA Client (Area) record ID to delete.

[HaloPSA] Delete an Area (Client) CRM note by numeric ID via the /CRMNote/ endpoint. This permanently removes the CRM note and cannot be undone. Verify the ID before deleting. Operates on the HaloPSA CRMNote entity.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA CRM note (Area note) record ID to delete.

[HaloPSA] Delete a ticket auto-assign rule by numeric ID via the /TicketRules/ endpoint. This permanently removes the rule and cannot be undone. Use halo_list_autoassign to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA auto-assign rule (TicketRules) record ID to delete. Use halo_list_autoassign to find valid IDs.

[HaloPSA] Delete a confirm-closure rule by numeric ID via the /ConfirmClosure/ endpoint. This permanently removes the rule and cannot be undone. Use halo_list_confirm_closure to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA confirm-closure rule record ID to delete. Use halo_list_confirm_closure to find valid IDs.

[HaloPSA] Delete a journey by numeric ID via the /Journey/ endpoint. This permanently removes the journey and cannot be undone. Use halo_list_journey to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA journey record ID to delete. Use halo_list_journey to find valid IDs.

[HaloPSA] Delete a qualification by numeric ID via the /Qualification/ endpoint. This permanently removes the qualification and cannot be undone. Use halo_list_qualification to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA qualification record ID to delete. Use halo_list_qualification to find valid IDs.

[HaloPSA] Delete a ticket request type by numeric ID via the /TicketType/ endpoint. This permanently removes the request type (ticket type) and cannot be undone. Verify the ID before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA request type (TicketType) record ID to delete.

[HaloPSA] Delete a ticket request-type group by numeric ID via the /TicketTypeGroup/ endpoint. This permanently removes the group and cannot be undone. Use halo_list_request_type_group to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA request-type group (TicketTypeGroup) record ID to delete. Use halo_list_request_type_group to find valid IDs.

[HaloPSA] Delete a tab name by numeric ID via the /Tabs/ endpoint. This permanently removes the tab-name record and cannot be undone. Use halo_list_tabname to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA tab-name (Tabs) record ID to delete. Use halo_list_tabname to find valid IDs.

[HaloPSA] Delete a ticket-area record by numeric ID via the /TicketArea/ endpoint. This permanently removes the ticket-area link and cannot be undone. Verify the ID before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA ticket-area record ID to delete.

[HaloPSA] Delete a workflow target by numeric ID via the /WorkflowTarget/ endpoint. This permanently removes the workflow-target record and cannot be undone. Use halo_list_workflow_target to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA workflow-target record ID to delete. Use halo_list_workflow_target to find valid IDs.

[HaloPSA] Retrieve the HaloPSA Client (Area) record associated with the currently authenticated user via the /Client/me endpoint. Returns the caller's own client/area record. Takes no ID.

[HaloPSA] Retrieve a single Area (Client) CRM note by numeric ID via the /CRMNote/ endpoint. Returns the full CRM-note payload. Operates on the HaloPSA CRMNote entity.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA CRM note (Area note) record ID.

[HaloPSA] Retrieve a single Area↔request-type link by numeric ID via the /AreaRequestType/ endpoint. Returns the mapping between a HaloPSA Area (Client) and an available request type.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA AreaRequestType record ID.

[HaloPSA] Retrieve a single ticket auto-assign rule by numeric ID via the /TicketRules/ endpoint. Returns the full rule payload. Use halo_list_autoassign to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA auto-assign rule (TicketRules) record ID. Use halo_list_autoassign to find valid IDs.

[HaloPSA] Retrieve a single confirm-closure rule by numeric ID via the /ConfirmClosure/ endpoint. Returns the full rule payload. Use halo_list_confirm_closure to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA confirm-closure rule record ID. Use halo_list_confirm_closure to find valid IDs.

[HaloPSA] Retrieve a single journey by numeric ID via the /Journey/ endpoint. Returns the full journey payload. Use halo_list_journey to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA journey record ID. Use halo_list_journey to find valid IDs.

[HaloPSA] Retrieve a single qualification by numeric ID via the /Qualification/ endpoint. Returns the full qualification payload. Use halo_list_qualification to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA qualification record ID. Use halo_list_qualification to find valid IDs.

[HaloPSA] Retrieve a single ticket request type by numeric ID via the /TicketType/ endpoint. Returns the full request-type (ticket-type) configuration payload.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA request type (TicketType) record ID.

[HaloPSA] Retrieve a single ticket request-type group by numeric ID via the /TicketTypeGroup/ endpoint. Returns the full group payload. Use halo_list_request_type_group to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA request-type group (TicketTypeGroup) record ID. Use halo_list_request_type_group to find valid IDs.

[HaloPSA] Retrieve a single setup tab by numeric ID via the /SetupTab/ endpoint. Returns the full setup-tab payload. Use halo_list_setup_tab to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA setup-tab record ID. Use halo_list_setup_tab to find valid IDs.

[HaloPSA] Retrieve a single setup-tab group by numeric ID via the /SetupTabGroup/ endpoint. Returns the full group payload. Use halo_list_setup_tab_group to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA setup-tab group record ID. Use halo_list_setup_tab_group to find valid IDs.

[HaloPSA] Retrieve a single tab name by numeric ID via the /Tabs/ endpoint. Returns the full tab-name payload. Use halo_list_tabname to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA tab-name (Tabs) record ID. Use halo_list_tabname to find valid IDs.

[HaloPSA] Retrieve a single ticket-area record by numeric ID via the /TicketArea/ endpoint. Returns the full ticket-area (ticket ↔ area link) payload.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA ticket-area record ID.

[HaloPSA] Retrieve a single workflow target by numeric ID via the /WorkflowTarget/ endpoint. Returns the full workflow-target payload. Use halo_list_workflow_target to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA workflow-target record ID. Use halo_list_workflow_target to find valid IDs.

[HaloPSA] List the Azure-tenant links associated with HaloPSA Areas (Clients). Returns a paginated list of the Area↔Azure-AD-tenant mapping records. Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List Area recurring-item records via the /RecurringItem endpoint. Returns a paginated list of the recurring items configured against HaloPSA Areas (Clients). Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List ticket auto-assign rules via the /TicketRules endpoint. Returns a paginated list of the rules that automatically assign tickets to agents/teams. Supports page_no/page_size paging. Use halo_get_autoassign to retrieve a single rule by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List confirm-closure rules via the /ConfirmClosure endpoint. Returns a paginated list of the rules that govern ticket closure confirmation. Supports page_no/page_size paging. Use halo_get_confirm_closure to retrieve a single rule by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List journeys via the /Journey endpoint. Returns a paginated list of the configured journeys (guided multi-step workflows). Supports page_no/page_size paging. Use halo_get_journey to retrieve a single journey by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List qualifications via the /Qualification endpoint. Returns a paginated list of the configured qualification records. Supports page_no/page_size paging. Use halo_get_qualification to retrieve a single qualification by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List ticket request-type groups via the /TicketTypeGroup endpoint. Returns a paginated list of the groups used to organize ticket request types. Supports page_no/page_size paging. Use halo_get_request_type_group to retrieve a single group by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List setup tabs via the /SetupTab endpoint. Returns a paginated list of the configurable setup/form tabs. Supports page_no/page_size paging. Use halo_get_setup_tab to retrieve a single setup tab by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List setup-tab groups via the /SetupTabGroup endpoint. Returns a paginated list of the groups used to organize setup tabs. Supports page_no/page_size paging. Use halo_get_setup_tab_group to retrieve a single group by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List tab names via the /Tabs endpoint. Returns a paginated list of the configurable form tab-name records. Supports page_no/page_size paging. Use halo_get_tabname to retrieve a single tab name by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List workflow targets via the /WorkflowTarget endpoint. Returns a paginated list of the SLA/workflow target records. Supports page_no/page_size paging. Use halo_get_workflow_target to retrieve a single target by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

Mailbox & Email Config

ToolPlanAccessSummary
halo_add_to_ticket_incoming_emailProDestructiveIngest an incoming email onto a ticket via the incomingemail/AddToTicket endpoint.
halo_azure_mailProDestructiveInvoke the Mail/Azure endpoint, which connects/authorises an Azure (Microsoft 365) mailbox for HaloPSA mail processing.
halo_create_email_storeProWriteCreate or update an email-store record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_formatted_emailProWriteCreate or update a formatted (templated) email record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_incoming_emailProWriteCreate or update an incoming-email record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_mailboxProWriteCreate or update a mailbox configuration (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_mailbox_credentialProWriteCreate or update a mailbox-credential record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_outgoing_emailProWriteCreate or update an outgoing-email record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_sales_mailboxProWriteCreate or update a sales-mailbox configuration (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_create_sales_mailbox_detailProWriteCreate or update a sales-mailbox detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record).
halo_delete_email_storeProDestructiveDelete an email-store record by numeric ID.
halo_delete_formatted_emailProDestructiveDelete a formatted (templated) email record by numeric ID.
halo_delete_incoming_emailProDestructiveDelete an incoming-email record by numeric ID.
halo_delete_mailboxProDestructiveDelete a mailbox configuration by numeric ID.
halo_delete_mailbox_credentialProDestructiveDelete a mailbox-credential record by numeric ID.
halo_delete_outgoingProDestructiveDelete an outgoing-mail server configuration by numeric ID.
halo_delete_outgoing_emailProDestructiveDelete an outgoing-email record by numeric ID.
halo_delete_sales_mailboxProDestructiveDelete a sales-mailbox configuration by numeric ID.
halo_get_email_storeFreeRead-onlyRetrieve a single email-store record by numeric ID.
halo_get_formatted_emailFreeRead-onlyRetrieve a single formatted (templated) email record by numeric ID.
halo_get_incoming_emailFreeRead-onlyRetrieve a single incoming-email record by numeric ID.
halo_get_mailboxFreeRead-onlyRetrieve a single mailbox configuration by numeric ID.
halo_get_mailbox_credentialFreeRead-onlyRetrieve a single mailbox-credential record by numeric ID.
halo_get_outgoingFreeRead-onlyRetrieve a single outgoing-mail server configuration by numeric ID.
halo_get_sales_mailboxFreeRead-onlyRetrieve a single sales-mailbox configuration by numeric ID.
halo_integrator_azure_mailProDestructiveInvoke the Mail/Integrator/Azure endpoint, which runs the Azure mail-integrator connect/process action for HaloPSA mailbox ingestion.
halo_integrator_google_mailProDestructiveInvoke the Mail/Integrator/Google endpoint, which runs the Google (Gmail/Workspace) mail-integrator connect/process action for HaloPSA mailbox ingestion.
halo_integrator_imap_mailProDestructiveInvoke the Mail/Integrator/IMAP endpoint, which runs the IMAP mail-integrator connect/process action for HaloPSA mailbox ingestion.
halo_integrator_pop3_mailProDestructiveInvoke the Mail/Integrator/Pop3 endpoint, which runs the POP3 mail-integrator connect/process action for HaloPSA mailbox ingestion.
halo_list_email_address_bookFreeRead-onlyList the email address book (users/contacts available as email recipients) configured in HaloPSA.
halo_list_email_storeFreeRead-onlyList email-store records in HaloPSA (stored/queued email items).
halo_list_formatted_emailFreeRead-onlyList formatted (templated) email records in HaloPSA.
halo_list_incoming_emailFreeRead-onlyList incoming-email records in HaloPSA (emails received into the system).
halo_list_mailboxFreeRead-onlyList mailbox configurations in HaloPSA (the mailboxes HaloPSA polls for inbound email).
halo_list_mailbox_credentialFreeRead-onlyList mailbox-credential records in HaloPSA (the stored auth credentials used to connect to mailboxes).
halo_list_mailbox_outlook_contactsFreeRead-onlyList the Outlook contacts associated with a HaloPSA mailbox via the Mailbox//OutlookContacts endpoint.
halo_list_outgoingFreeRead-onlyList outgoing-mail server configurations in HaloPSA (the SMTP/send profiles HaloPSA uses to send email).
halo_list_outgoing_emailFreeRead-onlyList outgoing-email records in HaloPSA (emails sent/queued for sending by the system).
halo_list_sales_mailboxFreeRead-onlyList sales-mailbox configurations in HaloPSA (mailboxes used for CRM/sales lead ingestion).
halo_list_sales_mailbox_detailFreeRead-onlyList sales-mailbox detail records in HaloPSA (the detailed per-mailbox sales configuration entries).
halo_process_mailProDestructiveInvoke the Mail/ProcessMail endpoint, which processes the specified queued mailbox items in HaloPSA (creating/updating tickets and firing notifications).
halo_process_outgoingProDestructiveAct on queued outgoing mail items by ID (POST /Outgoing).

[HaloPSA] Ingest an incoming email onto a ticket via the incomingemail/AddToTicket endpoint. This attaches/converts the inbound email into ticket activity and triggers downstream automation (ticket updates, notifications) — the side effects are irreversible. Provide the payload as a raw HaloPSA JSON object whose field names match the HaloPSA API.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object identifying the incoming email and target ticket. Field names must match HaloPSA API field names.

[HaloPSA] Invoke the Mail/Azure endpoint, which connects/authorises an Azure (Microsoft 365) mailbox for HaloPSA mail processing. This triggers irreversible mail-processing side effects. The endpoint takes no body.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""Optional raw HaloPSA JSON object for the Mail/Azure action; the endpoint takes no body. Defaults to an empty object .

[HaloPSA] Create or update an email-store record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the email-store record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a formatted (templated) email record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the formatted-email record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an incoming-email record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the incoming-email record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a mailbox configuration (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved mailbox.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the mailbox configuration (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a mailbox-credential record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the mailbox-credential record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update an outgoing-email record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the outgoing-email record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a sales-mailbox configuration (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved mailbox.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the sales-mailbox configuration (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Create or update a sales-mailbox detail record (HaloPSA POST is an upsert — include an "id" field to update an existing record). Provide the record as a raw HaloPSA JSON object whose field names match the HaloPSA API. Returns the saved record.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the sales-mailbox detail record (include "id" to update). Field names must match HaloPSA API field names.

[HaloPSA] Delete an email-store record by numeric ID. This permanently removes the record and cannot be undone. Use halo_list_email_store to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA email-store record ID to delete. Use halo_list_email_store to find valid IDs.

[HaloPSA] Delete a formatted (templated) email record by numeric ID. This permanently removes the record and cannot be undone. Use halo_list_formatted_email to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA formatted-email record ID to delete. Use halo_list_formatted_email to find valid IDs.

[HaloPSA] Delete an incoming-email record by numeric ID. This permanently removes the record and cannot be undone. Use halo_list_incoming_email to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA incoming-email record ID to delete. Use halo_list_incoming_email to find valid IDs.

[HaloPSA] Delete a mailbox configuration by numeric ID. This permanently removes the mailbox and cannot be undone — HaloPSA will stop polling it for inbound email. Use halo_list_mailbox to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA mailbox ID to delete. Use halo_list_mailbox to find valid IDs.

[HaloPSA] Delete a mailbox-credential record by numeric ID. This permanently removes the stored credential and cannot be undone. Use halo_list_mailbox_credential to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA mailbox-credential record ID to delete. Use halo_list_mailbox_credential to find valid IDs.

[HaloPSA] Delete an outgoing-mail server configuration by numeric ID. This permanently removes the send profile and cannot be undone. Use halo_list_outgoing to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA outgoing-mail server ID to delete. Use halo_list_outgoing to find valid IDs.

[HaloPSA] Delete an outgoing-email record by numeric ID. This permanently removes the record and cannot be undone. Use halo_list_outgoing_email to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA outgoing-email record ID to delete. Use halo_list_outgoing_email to find valid IDs.

[HaloPSA] Delete a sales-mailbox configuration by numeric ID. This permanently removes the mailbox and cannot be undone. Use halo_list_sales_mailbox to find IDs and verify before deleting.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA sales-mailbox ID to delete. Use halo_list_sales_mailbox to find valid IDs.

[HaloPSA] Retrieve a single email-store record by numeric ID. Returns the full record payload. Use halo_list_email_store to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA email-store record ID. Use halo_list_email_store to find valid IDs.

[HaloPSA] Retrieve a single formatted (templated) email record by numeric ID. Returns the full record payload. Use halo_list_formatted_email to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA formatted-email record ID. Use halo_list_formatted_email to find valid IDs.

[HaloPSA] Retrieve a single incoming-email record by numeric ID. Returns the full record payload. Use halo_list_incoming_email to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA incoming-email record ID. Use halo_list_incoming_email to find valid IDs.

[HaloPSA] Retrieve a single mailbox configuration by numeric ID. Returns the full mailbox configuration payload. Use halo_list_mailbox to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA mailbox ID. Use halo_list_mailbox to find valid IDs.

[HaloPSA] Retrieve a single mailbox-credential record by numeric ID. Returns the full record payload. Use halo_list_mailbox_credential to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA mailbox-credential record ID. Use halo_list_mailbox_credential to find valid IDs.

[HaloPSA] Retrieve a single outgoing-mail server configuration by numeric ID. Returns the full send-profile payload. Use halo_list_outgoing to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA outgoing-mail server ID. Use halo_list_outgoing to find valid IDs.

[HaloPSA] Retrieve a single sales-mailbox configuration by numeric ID. Returns the full mailbox configuration payload. Use halo_list_sales_mailbox to discover valid IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA sales-mailbox ID. Use halo_list_sales_mailbox to find valid IDs.

[HaloPSA] Invoke the Mail/Integrator/Azure endpoint, which runs the Azure mail-integrator connect/process action for HaloPSA mailbox ingestion. This triggers irreversible mail-processing side effects. The endpoint takes no body.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""Optional raw HaloPSA JSON object for the Mail/Integrator/Azure action; the endpoint takes no body. Defaults to an empty object .

[HaloPSA] Invoke the Mail/Integrator/Google endpoint, which runs the Google (Gmail/Workspace) mail-integrator connect/process action for HaloPSA mailbox ingestion. This triggers irreversible mail-processing side effects. Provide the payload as a raw HaloPSA JSON object whose field names match the HaloPSA API.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Mail/Integrator/Google action. Field names must match HaloPSA API field names.

[HaloPSA] Invoke the Mail/Integrator/IMAP endpoint, which runs the IMAP mail-integrator connect/process action for HaloPSA mailbox ingestion. This triggers irreversible mail-processing side effects. Provide the payload as a raw HaloPSA JSON object whose field names match the HaloPSA API.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Mail/Integrator/IMAP action. Field names must match HaloPSA API field names.

[HaloPSA] Invoke the Mail/Integrator/Pop3 endpoint, which runs the POP3 mail-integrator connect/process action for HaloPSA mailbox ingestion. This triggers irreversible mail-processing side effects. Provide the payload as a raw HaloPSA JSON object whose field names match the HaloPSA API.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesThe raw HaloPSA JSON object for the Mail/Integrator/Pop3 action. Field names must match HaloPSA API field names.

[HaloPSA] List the email address book (users/contacts available as email recipients) configured in HaloPSA. Returns a paginated list of address-book entries. Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List email-store records in HaloPSA (stored/queued email items). Returns a paginated list. Supports page_no/page_size paging. Use halo_get_email_store to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List formatted (templated) email records in HaloPSA. Returns a paginated list of the formatted-email templates/records. Supports page_no/page_size paging. Use halo_get_formatted_email to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List incoming-email records in HaloPSA (emails received into the system). Returns a paginated list. Supports page_no/page_size paging. Use halo_get_incoming_email to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List mailbox configurations in HaloPSA (the mailboxes HaloPSA polls for inbound email). Returns a paginated list. Supports page_no/page_size paging. Use halo_get_mailbox to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List mailbox-credential records in HaloPSA (the stored auth credentials used to connect to mailboxes). Returns a paginated list. Supports page_no/page_size paging. Use halo_get_mailbox_credential to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List the Outlook contacts associated with a HaloPSA mailbox via the Mailbox//OutlookContacts endpoint. Returns the contacts synced from the mailbox. Requires a valid mailbox ID — use halo_list_mailbox to find IDs.

ParamTypeRequiredDefaultDescription
idintegeryesThe numeric HaloPSA mailbox ID whose Outlook contacts to list. Use halo_list_mailbox to find valid IDs.

[HaloPSA] List outgoing-mail server configurations in HaloPSA (the SMTP/send profiles HaloPSA uses to send email). Returns a paginated list. Supports page_no/page_size paging. Use halo_get_outgoing to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List outgoing-email records in HaloPSA (emails sent/queued for sending by the system). Returns a paginated list. Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List sales-mailbox configurations in HaloPSA (mailboxes used for CRM/sales lead ingestion). Returns a paginated list. Supports page_no/page_size paging. Use halo_get_sales_mailbox to retrieve a single record by ID.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] List sales-mailbox detail records in HaloPSA (the detailed per-mailbox sales configuration entries). Returns a paginated list. Supports page_no/page_size paging.

ParamTypeRequiredDefaultDescription
pageNointegerno11-based page number for pagination (default 1).
pageSizeintegerno50Number of records per page (default 50, max 200).

[HaloPSA] Invoke the Mail/ProcessMail endpoint, which processes the specified queued mailbox items in HaloPSA (creating/updating tickets and firing notifications). This triggers irreversible mail-processing side effects. Provide the numeric IDs of the mail items to process.

ParamTypeRequiredDefaultDescription
idsarrayyesThe numeric HaloPSA mail item IDs to process.

[HaloPSA] Act on queued outgoing mail items by ID (POST /Outgoing). The endpoint takes an array of numeric outgoing-mail item IDs — it is an ID-list action, not a configuration upsert. Processing can dispatch outbound email, which cannot be recalled.

ParamTypeRequiredDefaultDescription
idsarrayyesThe numeric HaloPSA outgoing mail item IDs to act on.

Notifications & Distribution

ToolPlanAccessSummary
halo_create_address_storeProWriteCreate or update an AddressStore record (POST /Address).
halo_create_distribution_listProWriteCreate or update a distribution list (POST /DistributionLists).
halo_create_distribution_list_logProWriteCreate or update a distribution list log entry (POST /DistributionListsLog).
halo_create_esc_msgProWriteCreate or update an escalation/notification message (POST /Notifications).
halo_create_event_ruleProWriteCreate or update an event rule (POST /EventRule).
halo_create_marketing_openProWriteCreate or update a marketing open record (POST /MO).
halo_create_marketing_unsubscribeProWriteCreate or update a marketing unsubscribe record (POST /MarketingUnsubscribe).
halo_create_unsub_email_service_usersProWriteCreate or update an unsubscribed email service user record (POST /UnsubServiceEmails).
halo_delete_address_storeProDestructiveDelete an AddressStore record by numeric ID (DELETE /Address/).
halo_delete_distribution_listProDestructiveDelete a distribution list by numeric ID (DELETE /DistributionLists/).
halo_delete_distribution_list_logProDestructiveDelete a distribution list log entry by numeric ID (DELETE /DistributionListsLog/).
halo_delete_esc_msgProDestructiveDelete an escalation/notification message by ID (DELETE /Notifications/).
halo_delete_eventProDestructiveDelete an event definition by numeric ID (DELETE /Event/).
halo_delete_event_ruleProDestructiveDelete an event rule by numeric ID (DELETE /EventRule/).
halo_delete_marketing_openProDestructiveDelete a marketing open record by numeric ID (DELETE /MO/).
halo_delete_marketing_unsubscribeProDestructiveDelete a marketing unsubscribe record by numeric ID (DELETE /MarketingUnsubscribe/).
halo_delete_notification_contentProDestructiveDelete a notification content record by numeric ID (DELETE /NotificationMessage/).
halo_delete_teams_chat_messageProDestructiveDelete an external (Teams) chat message record by numeric ID (DELETE /ExternalChatMessage/).
halo_delete_unsub_email_service_usersProDestructiveDelete an unsubscribed email service user record by numeric ID (DELETE /UnsubServiceEmails/).
halo_get_address_storeFreeRead-onlyRetrieve a single AddressStore record by numeric ID (GET /Address/).
halo_get_distribution_listFreeRead-onlyRetrieve a single distribution list by numeric ID (GET /DistributionLists/).
halo_get_distribution_list_logFreeRead-onlyRetrieve a single distribution list log entry by numeric ID (GET /DistributionListsLog/).
halo_get_esc_msgFreeRead-onlyRetrieve a single escalation/notification message by ID (GET /Notifications/).
halo_get_eventFreeRead-onlyRetrieve a single event by numeric ID (GET /Event/).
halo_get_event_ruleFreeRead-onlyRetrieve a single event rule by numeric ID (GET /EventRule/).
halo_get_marketing_openFreeRead-onlyRetrieve a single marketing open record by numeric ID (GET /MO/).
halo_get_marketing_unsubscribeFreeRead-onlyRetrieve a single marketing unsubscribe record by numeric ID (GET /MarketingUnsubscribe/).
halo_get_notification_contentFreeRead-onlyRetrieve a single notification content record by numeric ID (GET /NotificationMessage/).
halo_get_teams_chat_messageFreeRead-onlyRetrieve a single external (Teams) chat message by numeric ID (GET /ExternalChatMessage/).
halo_get_unsub_email_service_usersFreeRead-onlyRetrieve a single unsubscribed email service user record by numeric ID (GET /UnsubServiceEmails/).
halo_list_address_storeFreeRead-onlyList AddressStore records (GET /Address) — the marketing/distribution address book HaloPSA uses for bulk email.
halo_list_distribution_listFreeRead-onlyList distribution lists (GET /DistributionLists) — the recipient groups HaloPSA uses for bulk/marketing email.
halo_list_distribution_list_logFreeRead-only