read thedocs.

[ docs // guides & reference ]

Connector setup guides, tool references, auth flows, and platform concepts — everything you need to run StackJack, in one place.

34 connectors documented // 6,712 tools referenced // setup, auth & platform guides

No pages match that search. Clear it

← All documentation

HaloPSA Tools

halo_ · 594 tools · Free 359 · Pro 235 OAuth2 client-credentials (cached tokens); page-size cap 200; raw JSON passthrough.

Tickets & Actions

Tool Plan Access Description
halo_add_action Free Write [HaloPSA] Add an action (note / email / reply / internal note / time entry / status change) to an existing ticket. REQUIRED: ticketId, note, hiddenFromUser (true = agent-only/private; false = visible to end-user/customer), AND an outcome. 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. 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).
halo_add_action_reaction Pro Write [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.
halo_add_internal_note Free Write [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.
halo_change_ticket_status_with_note Free Write [HaloPSA] Change a ticket's status and record an audit-trail note in one call. Sugar over halo_add_action with new_status + note + outcome=Status Change. Use halo_update_ticket for status-only changes without an audit note.
halo_create_draft Pro Write [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.
halo_create_ticket Free Write [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.
halo_delete_action Pro Destructive [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.
halo_get_action Free Read-only [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.
halo_get_ticket Free Read-only [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.
halo_list_actions Free Read-only [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.
halo_list_ticket_actions Free Read-only [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.
halo_list_ticket_types Free Read-only [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.
halo_list_tickets Free Read-only [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.
halo_log_time Free Write [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.
halo_review_action Pro Write [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.
halo_search_tickets Free Read-only [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.
halo_send_email_reply Free Write [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.
halo_update_action Free Write [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.
halo_update_ticket Free Write [HaloPSA] Update an existing ticket's fields such as status, assignment, priority, or custom fields. This modifies data visible to helpdesk staff. Requires a valid ticket ID — use halo_search_tickets or halo_list_tickets to find IDs.
halo_vote_ticket Pro Write [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.
halo_add_action parameters
Param Type Required Default Description
actIsBillable boolean no null Is this action billable? Maps to `actisbillable` (Halo's field is `actisbillable`, not `actionchargeable`).
actionArrivalDate string no null Event arrival timestamp ISO 8601. Maps to `actionarrivaldate`.
actionCompletionDate string no null Work completion timestamp ISO 8601 (sets implicit completion). Maps to `actioncompletiondate`.
actionContractId integer no null Contract ID to bill against. Maps to `action_contract_id`.
actionIsResponse boolean no null This action counts as the SLA response. Maps to `action_isresponse` (not `isresponse`).
agentId integer no null Agent ID performing the action. Use halo_list_agents. Maps to `who_agentid`.
appointmentId integer no null Appointment ID this action relates to. Maps to `appointment_id`.
assetId integer no null Asset ID this action relates to. Maps to `asset_id`.
chargeRate integer no null Charge rate ID. Use halo_list_charge_rates. Maps to `chargerate`.
customFieldsJson string no null Custom field values as JSON array, e.g. [{"id":42,"value":"hello"}]. Maps to `customfields`.
dateTime string no null Action timestamp ISO 8601 (e.g. 2026-05-10T14:30:00Z). Defaults to now. Maps to `datetime`.
dontDoRules boolean no null Suppress automation rules for this action. Maps to `dont_do_rules`.
emailCc string no null Email CC: address(es). Maps to `emailcc`.
emailFrom string no null Email From: address override. Maps to `emailfrom`.
emailSubject string no null Email subject line. Maps to `emailsubject`.
emailTemplateId integer no null Email template ID to render the outbound body. Maps to `emailtemplate_id`.
emailTo string no null Email To: address(es), comma-separated. Maps to `emailto`.
extraFieldsJson string no null Free-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.
fromMailboxId integer no null Mailbox ID to send from. Maps to `from_mailbox_id`.
hiddenFromUser boolean yes REQUIRED. true = HIDDEN from end user/customer (agent-only / private). false = PUBLIC on customer portal. Maps to Halo's `hiddenfromuser` field.
important boolean no null Urgent/important flag (shows a red flag in Halo UI). Maps to `important`.
informTicketOwner boolean no null Notify the ticket owner of this action. Maps to `actioninformownerofaction`.
isHiddenFromInternalIt boolean no null Hide from internal IT team specifically (distinct from hiddenFromUser). Maps to `ishiddenfrominternalit`.
mileage number no null Mileage logged. Maps to `mileage`.
newAgent integer no null Reassign ticket to this agent ID as part of the action. Maps to `new_agent`.
newFixByDate string no null New ticket fix-by date ISO 8601. Maps to `new_fixbydate`.
newFollowUpDate string no null New follow-up reminder date ISO 8601. Maps to `new_followupdate`.
newPriority integer no null New ticket priority ID. Maps to `new_priority`.
newStatus integer no null New ticket status ID after this action. Use halo_list_statuses. Maps to `new_status`.
newTargetDate string no null New target/SLA date ISO 8601. Maps to `new_targetdate`.
newTeam string no null Reassign ticket to this team (name or id). Maps to `new_team`.
nonBillTime number no null Non-billable portion of timeTaken in hours. Maps to `nonbilltime` (Halo's field is `nonbilltime`, not `nonbillabletime`).
note string yes REQUIRED. Action body as plain text. For HTML use noteHtml instead (Halo derives the other).
noteHtml string no null HTML body. Takes precedence over note when both supplied. Maps to `note_html`.
onBehalfOfUserId integer no null End-user this action is posted on behalf of. Maps to `on_behalf_of`.
outcome string no null REQUIRED (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`.
outcomeId integer no null REQUIRED (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`.
privateNote string no null Agent-only side note, always hidden from customer regardless of hiddenFromUser. Maps to `private_note`.
replyToAddress string no null Reply-To: header override. Maps to `replytoaddress`.
sendEmail boolean no null Dispatch this action as an outbound email. When true, BOTH emailTo AND emailSubject are required. Maps to `sendemail`.
sendSurvey boolean no null Trigger CSAT survey on save. Maps to `send_survey`.
setNoteToEmailBody boolean no null Use the action's note/noteHtml as the email body. Maps to `setnotetoemailbody`.
ticketId integer yes REQUIRED. Numeric HaloPSA ticket ID. Use halo_search_tickets or halo_list_tickets to find IDs.
timeTaken number no null Hours of work logged (decimal, e.g. 1.5 = 1h30m). Maps to `timetaken`.
travelTime number no null Travel time in hours. Maps to `traveltime`.
updateChildren boolean no null Propagate this action to child tickets. Maps to `update_children`.
updateParent boolean no null Propagate this action to the parent ticket. Maps to `update_parent`.
whoType integer no null Actor type: 0=Agent, 1=End-User. Maps to `who_type`.
halo_add_action_reaction parameters
Param Type Required Default Description
actionNumber integer yes REQUIRED. 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.
agentId integer no null Agent ID adding the reaction. Defaults to the calling agent.
reactionType string yes REQUIRED. Reaction type/emoji shortcode (e.g. ':thumbsup:' or 'like'). Maps to Halo's `type` field on the ActionReaction schema.
ticketId integer yes REQUIRED. Numeric HaloPSA ticket ID containing the action.
timestamp string no null Reaction timestamp ISO 8601. Defaults to now. Maps to `timestamp`.
halo_add_internal_note parameters
Param Type Required Default Description
agentId integer no null Agent ID adding the note.
important boolean no null Mark as important (red flag in Halo UI).
note string yes REQUIRED. Note body (plain text or HTML).
ticketId integer yes REQUIRED. Numeric HaloPSA ticket ID.
halo_change_ticket_status_with_note parameters
Param Type Required Default Description
agentId integer no null Agent ID performing the status change.
hiddenFromUser boolean no false Hide the audit note from the end user/customer. Default false (visible).
newStatusId integer yes REQUIRED. New ticket status ID. Use halo_list_statuses to find valid IDs.
note string yes REQUIRED. Audit-trail note explaining the status change.
ticketId integer yes REQUIRED. Numeric HaloPSA ticket ID.
halo_create_draft parameters
Param Type Required Default Description
draftJson string yes JSON object with draft fields. Example: {"ticket_id": 42, "note": "Draft response...", "outcome": "note"}. Field names must match HaloPSA API field names.
halo_create_ticket parameters
Param Type Required Default Description
agentId integer no null Agent ID to assign the ticket to (optional). Use halo_list_agents to find valid IDs.
clientId integer yes Client ID the ticket belongs to. Use halo_list_clients or halo_search_clients to find valid IDs.
customFieldsJson string no null Custom 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_fields.
details string yes Full ticket description with details of the issue or request. Supports plain text or HTML.
extraFieldsJson string no null Free-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.
impactId integer no null Impact level ID (optional). Sent as the raw `impact` integer; Halo derives priority server-side. Affects SLA calculations.
priorityId integer no null Priority ID (optional). Omit to use the default priority.
siteId integer no null Site ID (optional). Use halo_list_sites to find valid IDs.
summary string yes Ticket summary/subject line. Keep concise and descriptive — this is the primary identifier for helpdesk staff.
targetDate string no null Target 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.
targetDateTimezone string no null Windows timezone id for targetDate (e.g. "GMT Standard Time", "Eastern Standard Time"). Halo resolves DST from the zone id. Ignored unless targetDate is set.
teamId integer no null Team ID to assign the ticket to (optional). Use halo_list_teams to find valid IDs.
ticketTypeId integer no null Ticket 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.
urgencyId integer no null Urgency level ID (optional). Sent as the raw `urgency` integer; Halo derives priority server-side. Affects SLA calculations.
userId integer no null End user/contact ID (optional). Use halo_list_users to find valid IDs.
halo_delete_action parameters
Param Type Required Default Description
actionId integer no null REQUIRED. The numeric HaloPSA action ID to delete. Use halo_list_actions to find valid IDs. Verify the action with halo_get_action before deleting.
ticketId integer no null REQUIRED. The numeric HaloPSA ticket ID that contains the action.
halo_get_action parameters
Param Type Required Default Description
actionId integer no null REQUIRED. The numeric HaloPSA action ID.
agentOnly boolean no null Return only agent-authored actions (optional). Maps to `agentonly`.
emailOnly boolean no null Return only the email portion of the action (optional). Maps to `emailonly`.
includeDetails boolean no null Include full action details (extended payload). Maps to `includedetails`.
includeEmail boolean no null Include email-specific fields when the action is an email. Maps to `includeemail`.
mostRecent boolean no null Return the most recent matching action (optional). Maps to `mostrecent`.
nonSystem boolean no null Exclude system-generated content from the action (optional). Maps to `nonsystem`.
penultimate boolean no null Return the penultimate (second-to-last) action (optional). Maps to `penultimate`.
ticketId integer no null REQUIRED. The numeric HaloPSA ticket ID that contains the action.
halo_get_ticket parameters
Param Type Required Default Description
includeAgent boolean no null When true, includes assigned-agent detail (optional).
includeAuditing boolean no null When true, includes the ticket's audit trail (optional).
includeChildIds boolean no null When true, includes child ticket IDs (optional).
includeDetails boolean no null When true, includes full ticket detail (optional).
includeLastAction boolean no null When true, includes the last action (optional).
includeLastAppointment boolean no null When true, includes the last appointment (optional).
includeLinkedObjects boolean no null When true, includes linked objects (assets, etc.) (optional).
includeNextAppointment boolean no null When true, includes the next appointment (optional).
includeParentChangeInfo boolean no null When true, includes parent change info (optional).
includeSeenBy boolean no null When true, includes seen-by information (optional).
isDetailScreen boolean no null When true, returns the detail-screen representation (optional).
isPreview boolean no null When true, returns a lightweight preview (optional).
ticketId integer yes The numeric HaloPSA ticket ID. Use halo_search_tickets or halo_list_tickets to find valid IDs.
halo_list_actions parameters
Param Type Required Default Description
actOutcome string no null Filter by action outcome name, e.g. 'Email' or 'Note' (optional). Maps to `actoutcome`.
actOutcomeNum integer no null Filter by numeric action outcome ID (optional). Maps to `actoutcomenum`.
agentOnly boolean no null Hide system-generated actions; return only those performed by agents. Maps to `agentonly`.
conversationOnly boolean no null Return only customer-facing conversation actions. Maps to `conversationonly`.
count integer no 50 Maximum 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.
dateSearch string no null Date field to apply the start/end range against, e.g. 'dateoccurred' (optional). Maps to `datesearch`.
endDate string no null Filter by end date in yyyy-MM-dd format (optional). Example: '2026-03-21'. Returns actions created on or before this date.
excludeBilling boolean no null Skip time-entry / billing actions. Maps to `excludebilling`.
excludeHiddenFromInternalIt boolean no null Exclude actions hidden from internal IT (optional). Maps to `excludehiddenfrominternalit`.
excludePrivate boolean no null Skip actions marked hidden from the customer. Maps to `excludeprivate`. Useful for building a customer-visible audit trail.
excludeSys boolean no null Exclude system-generated actions (optional). Maps to `excludesys`.
importantOnly boolean no null Return only actions marked important. Maps to `importantonly`.
importantTop boolean no null Return only the single most important action per ticket (optional). Maps to `importanttop`.
includeAgentDetails boolean no null Include agent detail fields with each action (optional). Maps to `includeagentdetails`.
includeAttachments boolean no null Include attachment metadata inline with each action. Maps to `includeattachments`.
includeHtmlEmail boolean no null Include the HTML-rendered email body (optional). Maps to `includehtmlemail`.
includeHtmlNote boolean no null Include the HTML-rendered note body (optional). Maps to `includehtmlnote`.
includeNonActionAttachments boolean no null Include attachments that are not tied to an action (optional). Maps to `includenonactionattachments`.
includeTranslations boolean no null Include translated content for actions (optional). Maps to `includetranslations`.
intraTicketOnly boolean no null Return only intra-ticket actions (optional). Maps to `intraticketonly`.
isChildNotes boolean no null Treat the result as child notes (optional). Maps to `ischildnotes`.
isRelatedNotes boolean no null Treat the result as related notes (optional). Maps to `isrelatednotes`.
slaOnly boolean no null Return only SLA-related actions (optional). Maps to `slaonly`.
startDate string no null Filter by start date in yyyy-MM-dd format (optional). Example: '2026-03-16'. Returns actions created on or after this date.
supplierOnly boolean no null Return only supplier-related actions (optional). Maps to `supplieronly`.
ticketId integer no null Filter by ticket ID (optional). Returns only actions for the specified ticket.
timeEntriesOnly boolean no null Return only time-log actions. Maps to `timeentriesonly`.
halo_list_ticket_actions parameters
Param Type Required Default Description
count integer no 200 Maximum number of actions to return (default 200, max 200).
ticketId integer yes REQUIRED. Numeric HaloPSA ticket ID.
halo_list_tickets parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID. Use halo_list_agents to find valid IDs.
assetId integer no null Filter by linked asset ID (optional).
billableOnly boolean no null When true, returns only billable tickets (optional).
category1 string no null Filter by category slot 1 value (optional).
category2 string no null Filter by category slot 2 value (optional).
category3 string no null Filter by category slot 3 value (optional).
category4 string no null Filter by category slot 4 value (optional).
cfDisplayValuesOnly boolean no null When true, returns custom-field display values only (optional).
clientId integer no null Filter by client ID. Use halo_list_clients or halo_search_clients to find valid IDs.
closedOnly boolean no null When true, returns only closed tickets (optional).
deleted boolean no null When true, includes deleted tickets (optional).
endDate string no null Filter by end date in yyyy-MM-dd format (optional). Returns tickets created on or before this date.
filetypeFilter string no null Filter to tickets with attachments of this file type (optional).
includeAgent boolean no null When true, includes assigned-agent details in each ticket (optional).
includeCustomFields boolean no null When true, includes custom field values on each ticket (optional).
includeLastAction boolean no null When true, includes the last action on each ticket (optional).
includeLastNote boolean no null When true, includes the last note on each ticket (optional).
includeSlaTimer boolean no null When true, includes SLA timer detail on each ticket (optional).
includeStatus boolean no null When true, includes status detail on each ticket (optional).
includeTicketType boolean no null When true, includes ticket-type detail on each ticket (optional).
listId integer no null Filter to a saved list ID (optional).
noChargeOnly boolean no null When true, returns only no-charge tickets (optional).
openOnly boolean no null When true, returns only open/active tickets. Useful for daily triage.
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 100). Start with 20 when exploring, increase for bulk data needs.
parentId integer no null Filter by parent ticket ID (optional).
pendingReview boolean no null When true, returns only tickets pending review (optional).
priorityId integer no null Filter by priority ID.
readyForInvoicing boolean no null When true, returns only tickets ready for invoicing (optional).
requestTypeId integer no null Filter by request type ID (optional).
search string no null Search query string (optional). Matches against ticket summary and details.
siteId integer no null Filter by site ID (optional).
startDate string no null Filter by start date in yyyy-MM-dd format (optional). Returns tickets created on or after this date.
statusId integer no null Filter by HaloPSA status ID. Use halo_list_ticket_types to find valid status IDs.
teamId integer no null Filter by team ID (optional).
teamName string no null Filter by team name (optional).
ticketIds string no null Return only these ticket IDs as a comma-separated list (optional), e.g. "101,102".
userId integer no null Filter by end-user ID (optional).
viewId integer no null Filter to a saved view ID (optional).
withAttachments boolean no null When true, returns only tickets with attachments (optional).
halo_log_time parameters
Param Type Required Default Description
agentId integer no null Agent ID logging the time.
chargeRateId integer no null Charge rate ID. Maps to `chargerate`.
chargeable boolean no true Is this time billable to the client? Default true. Maps to `actisbillable`.
contractId integer no null Contract ID to bill against. Maps to `action_contract_id`.
dateTime string no null Action timestamp ISO 8601. Defaults to now.
nonBillTimeHours number no null Non-billable portion of timeTakenHours. Maps to `nonbilltime`.
note string no null Note describing the work. Defaults to 'Time logged' when null.
ticketId integer yes REQUIRED. Numeric HaloPSA ticket ID.
timeTakenHours number yes REQUIRED. Hours worked as a decimal (e.g. 1.5 for 1h30m).
halo_review_action parameters
Param Type Required Default Description
actionId integer yes REQUIRED. Numeric HaloPSA action ID being reviewed.
approved boolean yes REQUIRED. true = approve (timesheet_approval_status=1), false = reject (timesheet_approval_status=2). Override via timesheetApprovalStatusOverride for tenant-specific values.
extraFieldsJson string no null Free-form JSON of any additional fields. Merged into the body; explicit params win on conflict.
reviewNote string no null Optional reviewer note. Maps to `note` on the Actions schema.
reviewerAgentId integer no null Reviewer agent ID. Maps to `who_agentid` (the agent performing the review). Defaults to the calling agent.
timesheetApprovalStatusOverride integer no null Override 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.
halo_search_tickets parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDate string no null Filter by end date in yyyy-MM-dd format (optional). Returns tickets created on or before this date.
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Maximum number of results per page (default 50, max 200). Start with 20 when exploring, increase for comprehensive searches.
query string yes Search query string. Matches against ticket summary, details, and action notes. Use specific terms for better results.
startDate string no null Filter by start date in yyyy-MM-dd format (optional). Returns tickets created on or after this date.
halo_send_email_reply parameters
Param Type Required Default Description
actionIsResponse boolean no null Mark this reply as the SLA response. Maps to `action_isresponse`.
agentId integer no null Agent ID sending the reply.
body string yes REQUIRED. Reply body. Defaults to HTML; set useHtml=false for plain text.
emailCc string no null CC address(es).
emailSubject string yes REQUIRED. Email subject line.
emailTemplateId integer no null Halo email template ID to render the body.
emailTo string yes REQUIRED. Recipient address(es), comma-separated.
fromMailboxId integer no null Mailbox ID to send from.
ticketId integer yes REQUIRED. Numeric HaloPSA ticket ID.
useHtml boolean no true Treat body as HTML (true, default) or plain text (false).
halo_update_action parameters
Param Type Required Default Description
actIsBillable boolean no null Billable flag. Maps to `actisbillable`.
actionArrivalDate string no null Event arrival ISO 8601. Maps to `actionarrivaldate`.
actionCompletionDate string no null Completion timestamp ISO 8601. Maps to `actioncompletiondate`.
actionContractId integer no null Contract ID. Maps to `action_contract_id`.
actionId integer yes REQUIRED. Numeric HaloPSA action ID to update. Use halo_list_actions or halo_list_ticket_actions to find IDs.
actionIsResponse boolean no null SLA response flag. Maps to `action_isresponse`.
agentId integer no null Agent ID for this update. Maps to `who_agentid`.
appointmentId integer no null Linked appointment ID. Maps to `appointment_id`.
assetId integer no null Linked asset ID. Maps to `asset_id`.
chargeRate integer no null Charge rate ID. Maps to `chargerate`.
customFieldsJson string no null Custom field JSON array. Maps to `customfields`.
dateTime string no null New action timestamp ISO 8601. Maps to `datetime`.
dontDoRules boolean no null Suppress automations. Maps to `dont_do_rules`.
emailCc string no null Email CC. Maps to `emailcc`.
emailFrom string no null Email From override. Maps to `emailfrom`.
emailSubject string no null Email subject. Maps to `emailsubject`.
emailTemplateId integer no null Email template ID. Maps to `emailtemplate_id`.
emailTo string no null Email To: address(es). Maps to `emailto`.
extraFieldsJson string no null Free-form JSON of unexposed Halo Action fields. Explicit params win on conflict.
fromMailboxId integer no null Mailbox ID. Maps to `from_mailbox_id`.
hiddenFromUser boolean no null New 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.
important boolean no null Important flag. Maps to `important`.
informTicketOwner boolean no null Notify ticket owner. Maps to `actioninformownerofaction`.
isHiddenFromInternalIt boolean no null Hide from internal IT only. Maps to `ishiddenfrominternalit`.
mileage number no null Mileage. Maps to `mileage`.
newAgent integer no null Reassign to agent ID. Maps to `new_agent`.
newFixByDate string no null New fix-by date ISO 8601. Maps to `new_fixbydate`.
newFollowUpDate string no null New follow-up date ISO 8601. Maps to `new_followupdate`.
newPriority integer no null New priority ID. Maps to `new_priority`.
newStatus integer no null New ticket status ID. Maps to `new_status`.
newTargetDate string no null New target date ISO 8601. Maps to `new_targetdate`.
newTeam string no null Reassign to team. Maps to `new_team`.
nonBillTime number no null Non-billable hours. Maps to `nonbilltime`.
note string no null New 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.
noteHtml string no null New 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.
onBehalfOfUserId integer no null On-behalf-of user ID. Maps to `on_behalf_of`.
outcome string no null New outcome display name. Maps to `outcome`.
outcomeId integer no null New outcome ID. Maps to `outcome_id`.
privateNote string no null New agent-only side note. Maps to `private_note`.
replyToAddress string no null Reply-To header. Maps to `replytoaddress`.
sendEmail boolean no null Dispatch as outbound email. When true, BOTH emailTo AND emailSubject are required. Maps to `sendemail`.
sendSurvey boolean no null Trigger CSAT survey. Maps to `send_survey`.
setNoteToEmailBody boolean no null Use note as email body. Maps to `setnotetoemailbody`.
ticketId integer yes REQUIRED. Numeric HaloPSA ticket ID the action belongs to.
timeTaken number no null Hours worked. Maps to `timetaken`.
travelTime number no null Travel hours. Maps to `traveltime`.
updateChildren boolean no null Propagate to children. Maps to `update_children`.
updateParent boolean no null Propagate to parent. Maps to `update_parent`.
whoType integer no null Actor type: 0=Agent, 1=End-User. Maps to `who_type`.
halo_update_ticket parameters
Param Type Required Default Description
fieldsJson string yes JSON object with fields to update. Example: {"status_id": 2, "agent_id": 5, "priority_id": 3}. Field names must match HaloPSA API field names.
ticketId integer yes The numeric ticket ID to update. Use halo_search_tickets or halo_list_tickets to find valid IDs.
halo_vote_ticket parameters
Param Type Required Default Description
voteJson string yes JSON object with vote details. Required: ticket_id. Example: {"ticket_id": 42, "vote": 1}. Field names must match HaloPSA API field names.

Clients

Tool Plan Access Description
halo_create_client Pro Write [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.
halo_get_client Free Read-only [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.
halo_list_clients Free Read-only [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.
halo_list_users Free Read-only [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.
halo_search_clients Free Read-only [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.
halo_update_client Pro Write [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.
halo_create_client parameters
Param Type Required Default Description
clientJson string yes JSON 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.
halo_get_client parameters
Param Type Required Default Description
clientId integer yes The numeric HaloPSA client ID. Use halo_list_clients or halo_search_clients to find valid IDs.
halo_list_clients parameters
Param Type Required Default Description
activeInactive string no null Filter by active/inactive state, e.g. 'active' or 'inactive' (optional).
excludeInternal boolean no null When true, excludes internal clients from results (optional).
idOnly boolean no null When true, returns only client IDs rather than full records (optional).
includeActive boolean no null When true, includes active clients in results (optional).
includeCustomFields boolean no null When true, includes custom fields in results (optional).
includeInactive boolean no null When true, includes inactive clients in results (optional).
includeNotes boolean no null When true, includes client notes in results (optional).
includeQboFields boolean no null When true, includes QuickBooks Online fields in results (optional).
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200). Start with 20 when exploring, increase for bulk exports.
search string no null Free-text search to match against client name and reference fields (optional).
ticketAreaId integer no null Filter by ticket area ID (optional).
topLevelId integer no null Filter by top-level organization ID (optional).
viewId integer no null Apply a saved Halo view by its numeric ID (optional).
halo_list_users parameters
Param Type Required Default Description
approversOnly boolean no null When true, returns only users who are approvers (optional).
assetId integer no null Filter by asset ID (optional). Returns users linked to the given asset.
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
excludeAgents boolean no null When true, excludes agent records from results (optional).
excludeGeneralUser boolean no null When true, excludes general (non-specific) users from results (optional).
includeBillingInfo boolean no null When true, includes billing information in results (optional).
includeCustomFields boolean no null When true, includes custom fields in results (optional).
includeInactive boolean no false When true, includes inactive/disabled users in results (default false).
linkedToUserId integer no null Filter by the user ID this user is linked to (optional).
organisationId integer no null Filter by organisation ID (optional).
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200). Start with 20 when exploring, increase for bulk data needs.
role string no null Filter by role name (optional).
searchPhoneNumbers boolean no null When true, searches phone numbers as part of free-text matching (optional).
siteId integer no null Filter by site ID (optional).
supplierId integer no null Filter by supplier ID (optional).
halo_search_clients parameters
Param Type Required Default Description
pageSize integer no 50 Maximum number of results to return (default 50, max 200).
query string yes Search query string. Matches against client name and reference fields.
halo_update_client parameters
Param Type Required Default Description
clientJson string yes JSON 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

Tool Plan Access Description
halo_create_asset Pro Write [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.
halo_get_asset Free Read-only [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.
halo_get_asset_next_tag Free Read-only [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.
halo_list_asset_changes Free Read-only [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.
halo_list_asset_software Free Read-only [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.
halo_list_asset_software_versions Free Read-only [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.
halo_list_asset_types Free Read-only [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.
halo_list_assets Free Read-only [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.
halo_list_device_licences Free Read-only [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.
halo_search_assets Free Read-only [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.
halo_update_asset Pro Write [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.
halo_create_asset parameters
Param Type Required Default Description
assetJson string yes JSON 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.
halo_get_asset parameters
Param Type Required Default Description
assetId integer yes The numeric HaloPSA asset ID. Use halo_list_assets or halo_search_assets to find valid IDs.
halo_list_asset_changes parameters
Param Type Required Default Description
assetId integer no null Filter by asset ID (optional). Returns changes for a specific asset. Use halo_list_assets or halo_search_assets to find valid IDs.
count integer no 200 Maximum number of results to return (default 200).
halo_list_asset_software parameters
Param Type Required Default Description
count integer no 200 Maximum number of results to return (default 200).
deviceId integer no null Filter by device/asset ID (optional). Use halo_list_assets or halo_search_assets to find valid IDs.
halo_list_asset_software_versions parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).
halo_list_assets parameters
Param Type Required Default Description
activeInactive string no null Filter by active/inactive state, e.g. 'active' or 'inactive' (optional).
assetGroups string no null Filter by one or more asset group IDs, comma-separated (optional).
assetStatuses string no null Filter by one or more asset status IDs, comma-separated (optional).
assetTypeId integer no null Filter by asset type ID (optional).
assetTypes string no null Filter by one or more asset type IDs, comma-separated (optional).
bookmarked boolean no null When true, returns only bookmarked assets (optional).
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
contractId integer no null Filter by contract ID (optional).
includeAssetFields boolean no null When true, includes asset field values in results (optional).
includeChangeHistoryLastUpdated boolean no null When true, includes the last-updated timestamp from change history (optional).
includeChildren boolean no null When true, includes child assets in results (optional).
includeCustomFields boolean no null When true, includes custom fields in results (optional).
includeServices boolean no null When true, includes linked services in results (optional).
includeUser boolean no null When true, includes the assigned user details in results (optional).
inventoryNumber string no null Filter by asset inventory number (optional).
linkedToTicket integer no null Filter to assets linked to the given ticket ID (optional).
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200). Start with 20 when exploring, increase for bulk data needs.
siteId integer no null Filter by site ID (optional).
supplierId integer no null Filter by supplier ID (optional).
ticketId integer no null Filter by linked ticket ID (optional).
userId integer no null Filter by assigned user ID (optional).
halo_list_device_licences parameters
Param Type Required Default Description
deviceId integer no null Filter by device/asset ID (optional). Use halo_list_assets or halo_search_assets to find valid IDs.
halo_search_assets parameters
Param Type Required Default Description
pageSize integer no 50 Maximum number of results to return (default 50, max 200).
query string yes Search query string. Matches against asset name, serial number, and asset tag fields.
halo_update_asset parameters
Param Type Required Default Description
assetJson string yes JSON 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

Tool Plan Access Description
halo_clear_agent_cache Pro Write [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.
halo_get_agent Free Read-only [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.
halo_get_agent_me Free Read-only [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.
halo_list_agents Free Read-only [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.
halo_list_teams Free Read-only [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.
halo_search_agents Free Read-only [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.
halo_get_agent parameters
Param Type Required Default Description
agentId integer yes The numeric HaloPSA agent ID. Use halo_list_agents to find valid IDs.
halo_list_agents parameters
Param Type Required Default Description
activeInactive string no null Filter by active/inactive state, e.g. 'active' or 'inactive' (optional).
departmentId integer no null Filter by department ID (optional).
includeApiAgents boolean no null When true, includes API/system agents in results (optional).
includeDisabled string no null When set, includes disabled agents in results; pass 'true' or 'false' (optional).
includeEnabled string no null When set, includes enabled agents in results; pass 'true' or 'false' (optional).
includeMembershipInfo boolean no null When true, includes team membership info in results (optional).
includeRoles boolean no null When true, includes each agent's roles in results (optional).
includeStatus boolean no null When true, includes each agent's current status in results (optional).
includeUnassigned string no null When set, includes unassigned agents in results; pass 'true' or 'false' (optional).
qualifications string no null Filter by agent qualifications (optional).
remoteAgents boolean no null When true, returns only remote-access-capable agents (optional).
role string no null Filter by agent role (optional).
search string no null Free-text search to match against agent name and email fields (optional).
showAll boolean no null When true, returns all agents regardless of default scoping (optional).
teamId integer no null Filter by team ID (optional). Use halo_list_teams to find valid team IDs.
withEmail boolean no null When true, includes each agent's email address in results (optional).
halo_search_agents parameters
Param Type Required Default Description
pageSize integer no 50 Maximum number of results to return (default 50, max 200).
query string yes Search query string. Matches against agent name and email fields.

Contracts

Tool Plan Access Description
halo_create_contract Pro Write [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.
halo_get_contract Free Read-only [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.
halo_get_supplier_contract Free Read-only [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.
halo_list_charge_rates Free Read-only [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.
halo_list_contracts Free Read-only [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.
halo_list_invoices Free Read-only [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.
halo_list_supplier_contracts Free Read-only [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.
halo_create_contract parameters
Param Type Required Default Description
contractJson string yes JSON 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.
halo_get_contract parameters
Param Type Required Default Description
contractId integer yes The numeric HaloPSA contract ID. Use halo_list_contracts to find valid IDs.
halo_get_supplier_contract parameters
Param Type Required Default Description
contractId integer yes The numeric HaloPSA supplier contract ID. Use halo_list_supplier_contracts to find valid IDs.
halo_list_contracts parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).
halo_list_invoices parameters
Param Type Required Default Description
awaitingApproval boolean no null Return only invoices awaiting approval (optional).
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDate string no null Filter by end date in yyyy-MM-dd format (optional). Returns invoices dated on or before this date.
includeLinkedItemDetails boolean no null Include linked item details in the results (optional).
notPostedOnly boolean no null Return only invoices that have not been posted (optional).
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).
paymentStatuses string no null Filter by payment statuses, comma-separated (optional).
postedOnly boolean no null Return only posted invoices (optional).
purchaseOrderId integer no null Filter by linked purchase order ID (optional).
quickbooksId integer no null Filter by linked QuickBooks ID (optional).
readyForInvoicing boolean no null Return only invoices ready for invoicing (optional).
recurringInvoiceId integer no null Filter by linked recurring invoice ID (optional).
reviewRequired boolean no null Return only invoices requiring review (optional).
salesOrderId integer no null Filter by linked sales order ID (optional).
sentStatus integer no null Filter by sent status (optional).
siteId integer no null Filter by site ID (optional).
startDate string no null Filter by start date in yyyy-MM-dd format (optional). Returns invoices dated on or after this date.
thirdPartyId string no null Filter by linked third-party ID (optional).
ticketId integer no null Filter by linked ticket ID (optional).
userId integer no null Filter by user ID (optional).
xeroId string no null Filter by linked Xero ID (optional).
halo_list_supplier_contracts parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
supplierId integer no null Filter by supplier ID (optional). Use halo_list_suppliers to find valid IDs.

Invoices

Tool Plan Access Description
halo_create_invoice Pro Write [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.
halo_generate_invoice_pdf Pro Write [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.
halo_get_invoice Free Read-only [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.
halo_list_invoice_lines Free Read-only [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.
halo_list_invoice_payments Free Read-only [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.
halo_record_invoice_payment Pro Write [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.
halo_update_invoice Pro Write [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.
halo_void_invoice Pro Destructive [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.
halo_create_invoice parameters
Param Type Required Default Description
invoiceJson string yes JSON 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}]}
halo_generate_invoice_pdf parameters
Param Type Required Default Description
invoiceId integer yes The numeric HaloPSA invoice ID to generate a PDF for. Use halo_list_invoices to find valid IDs.
halo_get_invoice parameters
Param Type Required Default Description
invoiceId integer yes The numeric HaloPSA invoice ID. Use halo_list_invoices to find valid IDs.
halo_list_invoice_lines parameters
Param Type Required Default Description
count integer no 50 Number of invoices to return when no invoice ID is specified (default 50, max 200).
invoiceId integer no null Filter by invoice ID (optional). Returns the specific invoice with full line item details.
halo_list_invoice_payments parameters
Param Type Required Default Description
count integer no 50 Number of results to return (default 50).
invoiceId integer no null Filter by invoice ID (optional). Narrows results to payments against a specific invoice.
halo_record_invoice_payment parameters
Param Type Required Default Description
paymentJson string yes JSON 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"}
halo_update_invoice parameters
Param Type Required Default Description
invoiceId integer yes The numeric HaloPSA invoice ID to update. Use halo_list_invoices to find valid IDs.
updateJson string yes JSON 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.
halo_void_invoice parameters
Param Type Required Default Description
invoiceId integer yes The numeric HaloPSA invoice ID to void. Use halo_list_invoices to find valid IDs.

Knowledge Base

Tool Plan Access Description
halo_create_kb_article Pro Write [HaloPSA] Create a new knowledge base article. This creates documentation visible to helpdesk staff and potentially end users. Returns the created article with its assigned ID. The JSON should include at minimum a title and content. Follow up with halo_get_kb_article to verify creation.
halo_get_kb_article Free Read-only [HaloPSA] Retrieve full details for a single knowledge base article by numeric ID. Returns the complete article including title, content, and metadata. Requires a valid article ID — use halo_list_kb_articles or halo_search_kb to find IDs.
halo_list_kb_articles Free Read-only [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.
halo_search_kb Free Read-only [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.
halo_update_kb_article Pro Write [HaloPSA] Update an existing knowledge base article's fields such as title, content, or category. This modifies documentation visible to helpdesk staff. The JSON must include the article 'id' field. Use halo_list_kb_articles or halo_get_kb_article to find valid IDs and current field values.
halo_create_kb_article parameters
Param Type Required Default Description
articleJson string yes JSON object representing the KB article to create. Example: {"name": "How to Reset Password", "article_content": "<p>Step 1...</p>", "type": 0}. Field names must match HaloPSA API field names.
halo_get_kb_article parameters
Param Type Required Default Description
articleId integer yes The numeric HaloPSA KB article ID. Use halo_list_kb_articles or halo_search_kb to find valid IDs.
halo_list_kb_articles parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200). Start with 20 when exploring, increase for bulk data needs.
halo_search_kb parameters
Param Type Required Default Description
query string yes Search query string. Matches against article titles and content. Use specific technical terms for better results.
halo_update_kb_article parameters
Param Type Required Default Description
articleJson string yes JSON object with KB article fields to update. Must include 'id'. Example: {"id": 15, "name": "Updated Title", "article_content": "<p>Updated content...</p>"}. Field names must match HaloPSA API field names.

Projects

Tool Plan Access Description
halo_create_project Pro Write [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.
halo_get_project Free Read-only [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.
halo_list_project_tasks Free Read-only [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.
halo_list_projects Free Read-only [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.
halo_update_project Pro Write [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.
halo_create_project parameters
Param Type Required Default Description
projectJson string yes JSON 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.
halo_get_project parameters
Param Type Required Default Description
projectId integer yes The numeric HaloPSA project ID. Use halo_list_projects to find valid IDs.
halo_list_project_tasks parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200). Start with 20 when exploring, increase for bulk data needs.
projectId integer yes The numeric HaloPSA project ID. Use halo_list_projects to find valid IDs.
halo_list_projects parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).
halo_update_project parameters
Param Type Required Default Description
projectJson string yes JSON 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

Tool Plan Access Description
halo_create_report_pdf Pro Write [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.
halo_get_report_parameters Free Read-only [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.
halo_list_reports Free Read-only [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.
halo_run_report Free Read-only [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.
halo_create_report_pdf parameters
Param Type Required Default Description
requestJson string yes JSON 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.
halo_get_report_parameters parameters
Param Type Required Default Description
reportId integer yes The numeric HaloPSA report ID. Use halo_list_reports to discover available report IDs.
halo_run_report parameters
Param Type Required Default Description
parameters string no null Optional 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.
reportId integer yes The numeric HaloPSA report ID. Use halo_list_reports to discover available report IDs.

SLAs

Tool Plan Access Description
halo_get_sla Free Read-only [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.
halo_list_slas Free Read-only [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.
halo_get_sla parameters
Param Type Required Default Description
slaId integer yes The numeric HaloPSA SLA ID. Use halo_list_slas to find valid IDs.

Sites

Tool Plan Access Description
halo_create_site Pro Write [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.
halo_get_site Free Read-only [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.
halo_list_sites Free Read-only [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.
halo_update_site Pro Write [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.
halo_create_site parameters
Param Type Required Default Description
siteJson string yes JSON 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.
halo_get_site parameters
Param Type Required Default Description
siteId integer yes The numeric HaloPSA site ID. Use halo_list_sites to find valid IDs.
halo_list_sites parameters
Param Type Required Default Description
activeInactive string no null Filter by active/inactive state, e.g. 'active' or 'inactive' (optional).
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
idOnly boolean no null When true, returns only site IDs rather than full records (optional).
includeActive boolean no null When true, includes active sites in results (optional).
includeAddress boolean no null When true, includes site address details in results (optional).
includeCustomFields boolean no null When true, includes custom fields in results (optional).
includeInactive boolean no null When true, includes inactive sites in results (optional).
includeNotes boolean no null When true, includes site notes in results (optional).
search string no null Free-text search to match against site name and reference fields (optional).
stockLocation boolean no null When true, returns only stock-location sites (optional).
halo_update_site parameters
Param Type Required Default Description
siteJson string yes JSON 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

Tool Plan Access Description
halo_create_user Pro Write [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.
halo_get_user Free Read-only [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.
halo_search_users Free Read-only [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.
halo_update_user Pro Write [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.
halo_update_user_prefs Pro Write [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.
halo_create_user parameters
Param Type Required Default Description
clientId integer yes Client ID the user belongs to. Use halo_list_clients or halo_search_clients to find valid IDs.
displayName string yes User's combined display name (first + last name in one string).
emailAddress string no null User's email address (optional but may be required depending on Halo instance configuration; recommended for notifications and portal access).
firstName string yes User's first name.
lastName string yes User's last name.
phoneNumber string no null User's phone number (optional but may be required by some instance configurations).
siteId integer yes Site ID the user is located at. Use halo_list_sites to find valid IDs.
username string no null Portal login / username (writes to the Halo `login` field). Some instance configurations require this. Optional.
halo_get_user parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Scopes the lookup to a specific client. Use halo_list_clients or halo_search_clients to find valid IDs.
userId integer yes The numeric HaloPSA user ID. Use halo_search_users or halo_list_users to find valid IDs.
halo_search_users parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Scopes search to a specific client. Use halo_list_clients or halo_search_clients to find valid IDs.
pageSize integer no 50 Maximum number of results to return (default 50, max 200). Start with 20 when exploring, increase for comprehensive searches.
query string yes Search query string. Matches against user name and email fields.
halo_update_user parameters
Param Type Required Default Description
fieldsJson string yes JSON object with fields to update. Example: {"emailaddress": "new@example.com", "phonenumber": "555-1234"}. Field names must match HaloPSA API field names.
userId integer yes The numeric user ID to update. Use halo_search_users or halo_list_users to find valid IDs.
halo_update_user_prefs parameters
Param Type Required Default Description
prefsJson string yes JSON 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

Tool Plan Access Description
halo_create_timesheet Pro Write [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.
halo_get_my_timesheets Free Read-only [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.
halo_get_timesheet Free Read-only [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.
halo_list_timesheets Free Read-only [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.
halo_create_timesheet parameters
Param Type Required Default Description
timesheetJson string yes JSON 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}
halo_get_timesheet parameters
Param Type Required Default Description
timesheetId integer yes The numeric HaloPSA timesheet entry ID. Use halo_list_timesheets to find valid IDs.
halo_list_timesheets parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID (optional). Use halo_list_agents to find valid IDs.
clientId integer no null Filter by client ID (optional). Use halo_list_clients to find valid IDs.
endDate string no null End date filter in yyyy-MM-dd format (optional; defaults to today). Shows entries up to this date.
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
startDate string no null Start date filter in yyyy-MM-dd format (optional; defaults to one month ago). Shows entries from this date forward.

Lookups

Tool Plan Access Description
halo_get_lookup_values Free Read-only [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.
halo_list_categories Free Read-only [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.
halo_list_currencies Free Read-only [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.
halo_list_outcomes Free Read-only [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.
halo_list_priorities Free Read-only [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.
halo_list_statuses Free Read-only [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.
halo_list_tax_rules Free Read-only [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.
halo_list_taxes Free Read-only [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.
halo_get_lookup_values parameters
Param Type Required Default Description
lookupId integer yes The 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.
halo_list_taxes parameters
Param Type Required Default Description
kashflowTenantId integer no null Filter by Kashflow tenant ID (optional).
qboCompanyId string no null Filter by QuickBooks Online company ID (optional).
relatedTo integer no null Filter by the related-to entity ID (optional).
xeroTenantId string no null Filter by Xero tenant ID (optional).

Categories

Tool Plan Access Description
halo_create_category Pro Write [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.
halo_delete_category Pro Destructive [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.
halo_update_category Pro Write [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.
halo_create_category parameters
Param Type Required Default Description
categoryGroupId integer no null Optional category group ID.
categoryType integer no 1 Halo category type. 1 = regular ticket category (default). 2 = resolution category used when closing tickets.
note string no null Optional internal note on this category.
priorityId integer no null Default priority ID to apply when this category is selected on a ticket. Use halo_list_priorities to find valid IDs.
slaId integer no null Default SLA ID. Use halo_list_slas to find valid IDs.
value string yes Category label. Use `>` to create hierarchy up to 3 levels deep (e.g. Email>Outlook>PST).
halo_delete_category parameters
Param Type Required Default Description
categoryId integer yes The numeric category ID to delete. Use halo_list_categories to find valid IDs.
halo_update_category parameters
Param Type Required Default Description
categoryId integer yes The numeric category ID to update. Use halo_list_categories to find valid IDs.
fieldsJson string yes JSON object with fields to update. Example: {"value": "Email>Outlook", "priority_id": 3}. Field names must match HaloPSA API field names.

Suppliers

Tool Plan Access Description
halo_create_supplier Pro Write [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.
halo_create_supplier_user Pro Write [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.
halo_get_supplier Free Read-only [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.
halo_list_suppliers Free Read-only [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.
halo_create_supplier parameters
Param Type Required Default Description
supplierJson string yes JSON 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"}
halo_create_supplier_user parameters
Param Type Required Default Description
displayName string yes Combined display name (first + last name in one string).
emailAddress string yes Supplier user's email address.
firstName string yes Supplier user's first name.
inactive boolean no false Mark the supplier user inactive on creation (default false).
lastName string yes Supplier user's last name.
sendAccountsEmails boolean no false Send accounting / billing notification emails to this contact (default false).
sendWelcomeEmail boolean no false Send a Halo welcome email when the user is created (default false).
supplierId integer yes ID of the supplier this user belongs to. Use halo_list_suppliers to find valid IDs.
supplierName string yes Display name of the supplier this user belongs to (must match the supplier record). Use halo_get_supplier to retrieve.
telPref integer no 0 Telephone preference flag — Halo internal numeric code (default 0).
title string no "" Job title (optional).
halo_get_supplier parameters
Param Type Required Default Description
supplierId integer yes The numeric HaloPSA supplier ID. Use halo_list_suppliers to find valid IDs.
halo_list_suppliers parameters
Param Type Required Default Description
count integer no 50 Number of results to return (default 50).

Quotations

Tool Plan Access Description
halo_add_quotation_lines Pro Write [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. To modify existing lines instead, use halo_update_quotation_lines.
halo_approve_quotation Pro Write [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.
halo_create_quotation Pro Write [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 recognise 'unit_price' or 'quantity' and will ignore them, leaving the line at $0 revenue.
halo_get_quotation Free Read-only [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.
halo_list_quotations Free Read-only [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.
halo_update_quotation_lines Pro Write [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.
halo_view_quotation Free Read-only [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.
halo_add_quotation_lines parameters
Param Type Required Default Description
linesJson string yes JSON 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 or item_id (the item), current_quantity (qty), baseprice (unit sell price), current_price, costprice (unit cost), description. 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}]}
halo_approve_quotation parameters
Param Type Required Default Description
approvalJson string yes JSON object with approval details. Required: id (quotation ID), approved (true/false). Optional: notes. Example: {"id": 1, "approved": true, "notes": "Approved by management"}
halo_create_quotation parameters
Param Type Required Default Description
quotationJson string yes JSON 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), current_price (current unit price), costprice (unit cost), description. Example: {"client_id": 1, "lines": [{"name": "Firewall setup", "current_quantity": 1, "baseprice": 2500, "current_price": 2500, "costprice": 1800}]}
halo_get_quotation parameters
Param Type Required Default Description
quotationId integer yes The numeric HaloPSA quotation ID. Use halo_list_quotations to find valid IDs.
halo_list_quotations parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
closed boolean no null Filter to only closed quotations (optional).
open boolean no null Filter to only open quotations (optional).
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
halo_update_quotation_lines parameters
Param Type Required Default Description
linesJson string yes JSON object {"id": <quotationId>, "lines": [ ... ]} — 'id' (alias 'quotation_id') is the quote's numeric id from halo_get_quotation; the tool stamps it as 'qhid' (parent link) onto every line so Halo persists them. Each line must include its existing line 'id' and the Halo fields to change: current_quantity (qty), baseprice (unit sell price), current_price, costprice (unit cost). Halo ignores 'unit_price'/'quantity'. Example: {"id": 500, "lines": [{"id": 10, "current_quantity": 2, "baseprice": 1200}]}. Advanced: pass a flat JSON array of line objects that each already carry 'qhid' to forward it unchanged.
halo_view_quotation parameters
Param Type Required Default Description
requestJson string yes JSON object with view request details. Required: id (quotation ID). Example: {"id": 1}. Field names must match HaloPSA API field names.

Items & Stock

Tool Plan Access Description
halo_create_item Pro Write [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.
halo_create_item_account_link Pro Write [HaloPSA] Create a link between an item and an accounting system account. This maps a product to a revenue or expense account for financial reporting. Provide link details as a JSON object.
halo_create_item_group Pro Write [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.
halo_create_item_supplier_link Pro Write [HaloPSA] Link a supplier to an item/product. This creates a procurement relationship between a supplier and an item, optionally with supplier-specific pricing. Provide link details as a JSON object.
halo_create_stock_bin Pro Write [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.
halo_delete_item_group Pro Destructive [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.
halo_delete_item_supplier_link Pro Destructive [HaloPSA] Remove a supplier link from an item by numeric link ID. This removes the procurement relationship between a supplier and an item. Use with caution — this cannot be undone. Use halo_list_item_suppliers to find valid link IDs.
halo_delete_stock_bin Pro Destructive [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.
halo_get_item Free Read-only [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.
halo_get_item_group Free Read-only [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.
halo_get_stock_bin Free Read-only [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.
halo_list_item_account_links Free Read-only [HaloPSA] List accounting integation links for items. Returns mappings between items and accounting system accounts (e.g., revenue accounts, expense accounts). Use this to review or audit how items are mapped to your accounting software.
halo_list_item_groups Free Read-only [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.
halo_list_item_stock Free Read-only [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.
halo_list_item_stock_history Free Read-only [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.
halo_list_item_suppliers Free Read-only [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.
halo_list_items Free Read-only [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.
halo_list_stock_bins Free Read-only [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.
halo_list_stock_traces Free Read-only [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.
halo_create_item parameters
Param Type Required Default Description
itemJson string yes JSON object with item fields. Required: name. Optional: sku, description, unit_price, cost_price, category, stock_enabled. Example: {"name": "USB-C Hub", "sku": "HUB-001", "unit_price": 49.99}
halo_create_item_account_link parameters
Param Type Required Default Description
linkJson string yes JSON object with account link fields. Required: item_id, account_id. Optional: account_type. Example: {"item_id": 1, "account_id": 100, "account_type": "revenue"}
halo_create_item_group parameters
Param Type Required Default Description
groupJson string yes JSON object with item group fields. Required: name. Optional: description, parent_id. Example: {"name": "Networking Equipment", "description": "Switches, routers, and access points"}
halo_create_item_supplier_link parameters
Param Type Required Default Description
linkJson string yes JSON object with supplier link fields. Required: item_id, supplier_id. Optional: supplier_sku, cost_price. Example: {"item_id": 1, "supplier_id": 5, "cost_price": 29.99}
halo_create_stock_bin parameters
Param Type Required Default Description
binJson string yes JSON object with stock bin fields. Required: name. Optional: address, description, site_id. Example: {"name": "Main Warehouse", "description": "Primary storage location"}
halo_delete_item_group parameters
Param Type Required Default Description
groupId integer yes The numeric HaloPSA item group ID to delete. Use halo_list_item_groups to find valid IDs.
halo_delete_item_supplier_link parameters
Param Type Required Default Description
linkId integer yes The numeric item-supplier link ID to delete. Use halo_list_item_suppliers to find valid IDs.
halo_delete_stock_bin parameters
Param Type Required Default Description
binId integer yes The numeric HaloPSA stock bin ID to delete. Use halo_list_stock_bins to find valid IDs.
halo_get_item parameters
Param Type Required Default Description
itemId integer yes The numeric HaloPSA item ID. Use halo_list_items to find valid IDs.
halo_get_item_group parameters
Param Type Required Default Description
groupId integer yes The numeric HaloPSA item group ID. Use halo_list_item_groups to find valid IDs.
halo_get_stock_bin parameters
Param Type Required Default Description
binId integer yes The numeric HaloPSA stock bin ID. Use halo_list_stock_bins to find valid IDs.
halo_list_item_groups parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
halo_list_item_stock parameters
Param Type Required Default Description
count integer no 50 Number of results to return (default 50).
itemId integer no null Filter by item ID (optional). Narrows results to stock for a specific item.
halo_list_item_stock_history parameters
Param Type Required Default Description
itemId integer no null Filter by item ID (optional). Returns stock history for a specific item. Use halo_list_items to find valid IDs.
itemStockId integer no null Filter by item stock record ID (optional). Returns history for a specific stock entry.
halo_list_items parameters
Param Type Required Default Description
count integer no 50 Number of results to return (default 50).
search string no null Search items by name or description (optional).
halo_list_stock_bins parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).

Purchase Orders

Tool Plan Access Description
halo_confirm_receipt Pro Destructive [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.
halo_create_purchase_order Pro Write [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.
halo_get_purchase_order Free Read-only [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.
halo_list_purchase_orders Free Read-only [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.
halo_confirm_receipt parameters
Param Type Required Default Description
receiptJson string yes JSON 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}]}
halo_create_purchase_order parameters
Param Type Required Default Description
purchaseOrderJson string yes JSON 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}]}
halo_get_purchase_order parameters
Param Type Required Default Description
purchaseOrderId integer yes The numeric HaloPSA purchase order ID. Use halo_list_purchase_orders to find valid IDs.
halo_list_purchase_orders parameters
Param Type Required Default Description
awaitingApproval boolean no null Filter to POs awaiting approval (optional).
awaitingStock boolean no null Filter to POs awaiting stock (optional).
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
closed boolean no null Filter to closed POs (optional).
deliverToUs boolean no null Filter to POs delivered to us (optional).
deliverToUserSalesOrderId integer no null Filter by the sales order ID a PO delivers to a user for (optional).
myApprovals boolean no null Filter to POs awaiting the current user's approval (optional).
open boolean no null Filter to open POs (optional).
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
poStatus string no null Filter by PO status (optional).
salesOrderId integer no null Filter by linked sales order ID (optional).
siteId integer no null Filter by site ID (optional).
supplierId integer no null Filter by supplier ID (optional). Use halo_list_suppliers to find valid IDs.
ticketId integer no null Filter by linked ticket ID (optional).
unsent boolean no null Filter to unsent POs (optional).
userId integer no null Filter by user ID (optional).

Sales Orders

Tool Plan Access Description
halo_create_sales_order Pro Write [HaloPSA] Create a new sales order. This creates a sales document for tracking client orders. Returns the created order with its assigned ID. Provide order details as a JSON object — use halo_list_clients to find valid client IDs and halo_list_items for product IDs.
halo_get_sales_order Free Read-only [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.
halo_list_sales_orders Free Read-only [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.
halo_create_sales_order parameters
Param Type Required Default Description
salesOrderJson string yes JSON object with sales order fields. Required: client_id. Optional: lines (array of line items), notes, delivery_date. Example: {"client_id": 1, "lines": [{"item_id": 5, "quantity": 2, "unit_price": 499.99}]}
halo_get_sales_order parameters
Param Type Required Default Description
salesOrderId integer yes The numeric HaloPSA sales order ID. Use halo_list_sales_orders to find valid IDs.
halo_list_sales_orders parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
closed boolean no null Filter to closed sales orders (optional).
needsConsigning boolean no null Filter to sales orders that need consigning (optional).
needsInvoicing boolean no null Filter to sales orders that need invoicing (optional).
needsOrdering boolean no null Filter to sales orders that need ordering (optional).
open boolean no null Filter to open sales orders (optional).
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
quoteStatus string no null Filter by quote status (optional).
readyForInvoicing boolean no null Filter to sales orders ready for invoicing (optional).
siteId integer no null Filter by site ID (optional).
ticketId integer no null Filter by linked ticket ID (optional).
topLevelId integer no null Filter by top-level (parent) ID (optional).
userId integer no null Filter by user ID (optional).

Finance

Tool Plan Access Description
halo_create_expense Pro Write [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.
halo_create_prepay_entry Pro Write [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.
halo_create_recurring_invoice Pro Write [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.
halo_create_software_licence Pro Write [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.
halo_get_recurring_invoice Free Read-only [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.
halo_get_software_licence Free Read-only [HaloPSA] Retrieve a single software licence by numeric ID. Returns full licence details including software name, key, expiry, seats, and assigned client/assets. Requires a valid licence ID — use halo_list_software_licences to find IDs.
halo_list_billing_lines Free Read-only [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.
halo_list_expenses Free Read-only [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.
halo_list_prepay_history Free Read-only [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.
halo_list_recurring_invoices Free Read-only [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.
halo_list_software_licences Free Read-only [HaloPSA] List software licence records with optional client filter. Returns licence summaries including ID, software name, key, expiry date, and assigned client. Use this to review licence inventory or check for upcoming renewals.
halo_process_recurring_invoices Pro Destructive [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.
halo_update_recurring_invoice_lines Pro Write [HaloPSA] Update line items on an existing recurring invoice template. Halo's /RecurringInvoice/updatelines endpoint takes a flat array of line objects that each carry recurring_invoice_id (the INTERNAL id of the parent template — a NEGATIVE integer, e.g. -27, from halo_get_recurring_invoice, NOT the on-screen display number). This tool extracts recurring_invoice_id from your input and stamps it onto every line for you. Call halo_get_recurring_invoice first to read the current line ids. Changes take effect on the next invoice generation cycle.
halo_create_expense parameters
Param Type Required Default Description
expenseJson string yes JSON 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"}
halo_create_prepay_entry parameters
Param Type Required Default Description
entryJson string yes JSON 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"}
halo_create_recurring_invoice parameters
Param Type Required Default Description
invoiceJson string yes JSON object with recurring invoice fields. Required: client_id. Optional: schedule, line_items, start_date, end_date, notes. Example: {"client_id": 1, "schedule": "monthly", "line_items": [{"description": "Managed Services", "amount": 500}]}
halo_create_software_licence parameters
Param Type Required Default Description
licenceJson string yes JSON 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"}
halo_get_recurring_invoice parameters
Param Type Required Default Description
recurringInvoiceId integer yes The numeric HaloPSA recurring invoice ID.
halo_get_software_licence parameters
Param Type Required Default Description
licenceId integer yes The numeric HaloPSA software licence ID. Use halo_list_software_licences to find valid IDs.
halo_list_billing_lines parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients to find valid IDs.
contractId integer no null Filter by contract ID (optional). Use halo_list_contracts to find valid IDs.
endDate string no null End date filter in yyyy-MM-dd format (optional). Shows entries up to this date.
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
startDate string no null Start date filter in yyyy-MM-dd format (optional). Shows entries from this date forward.
halo_list_expenses parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID (optional). Use halo_list_agents to find valid IDs.
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDate string no null Filter by end date in yyyy-MM-dd format (optional). Returns expenses on or before this date.
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).
startDate string no null Filter by start date in yyyy-MM-dd format (optional). Returns expenses on or after this date.
halo_list_prepay_history parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients to find valid IDs.
contractId integer no null Filter by contract ID (optional). Use halo_list_contracts to find valid IDs.
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
halo_list_recurring_invoices parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients to find valid IDs.
count integer no 50 Number of results to return (default 50).
halo_list_software_licences parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients to find valid IDs.
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
halo_process_recurring_invoices parameters
Param Type Required Default Description
confirmation string yes Confirmation 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"
recurringInvoiceIds string yes Comma-separated list of recurring invoice IDs to process. Use halo_list_recurring_invoices to find valid IDs. Example: "1,2,3"
halo_update_recurring_invoice_lines parameters
Param Type Required Default Description
linesJson string yes JSON object with the parent template id and its updated lines. Required: recurring_invoice_id (the INTERNAL negative id from halo_get_recurring_invoice — the on-screen display number will NOT work), lines (array of line-item objects, each typically carrying its own line 'id' plus the fields to change). Example: {"recurring_invoice_id": -27, "lines": [{"id": 5, "unit_price": 600}]}. Advanced: you may instead pass a flat JSON array of line objects that already each include recurring_invoice_id.

Change Management

Tool Plan Access Description
halo_create_cab_meeting Pro Write [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.
halo_create_release Pro Write [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.
halo_get_cab_meeting Free Read-only [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.
halo_get_release Free Read-only [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.
halo_list_cab_meetings Free Read-only [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.
halo_list_cab_members Free Read-only [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.
halo_list_cab_roles Free Read-only [HaloPSA] List all CAB roles. Returns role definitions used in Change Advisory Board membership. Use this to understand available roles when managing CAB membership.
halo_list_release_types Free Read-only [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.
halo_list_releases Free Read-only [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.
halo_create_cab_meeting parameters
Param Type Required Default Description
cabMeetingJson string yes JSON object with CAB meeting fields. Optional: date, agenda, attendees. Example: {"date": "2026-04-01T10:00:00", "agenda": "Review Q2 change requests"}
halo_create_release parameters
Param Type Required Default Description
releaseJson string yes JSON 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"}
halo_get_cab_meeting parameters
Param Type Required Default Description
cabMeetingId integer yes The numeric HaloPSA CAB meeting ID. Use halo_list_cab_meetings to find valid IDs.
halo_get_release parameters
Param Type Required Default Description
releaseId integer yes The numeric HaloPSA release ID. Use halo_list_releases to find valid IDs.
halo_list_cab_meetings parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
halo_list_releases parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
status string no null Filter by release status (optional).

Service Catalog

Tool Plan Access Description
halo_create_service_status Pro Write [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.
halo_get_service Free Read-only [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.
halo_list_service_categories Free Read-only [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.
halo_list_service_statuses Free Read-only [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.
halo_list_services Free Read-only [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.
halo_create_service_status parameters
Param Type Required Default Description
statusJson string yes JSON object with service status fields. Required: service_id, status. Optional: notes, start_date. Example: {"service_id": 1, "status": "degraded", "notes": "Intermittent connectivity issues"}
halo_get_service parameters
Param Type Required Default Description
serviceId integer yes The numeric HaloPSA service ID. Use halo_list_services to find valid IDs.
halo_list_service_statuses parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
serviceId integer no null Filter by service ID (optional). Narrows results to statuses for a specific service. Use halo_list_services to find valid IDs.
halo_list_services parameters
Param Type Required Default Description
assetIds string no null Filter by asset IDs, comma-separated (optional).
count integer no 50 Number of results to return (default 50).
includeChildServices boolean no null Include child services in the results (optional).
includeStatusInfo boolean no null Include status info in the results (optional).
monitoredOnly boolean no null Return only monitored services (optional).
relatedServicesOnly boolean no null Return only related services (optional).
search string no null Free-text search term to filter services (optional).
serviceCategoryId integer no null Filter by service category ID (use halo_list_service_categories to find IDs).
serviceCategoryIds string no null Filter by service category IDs, comma-separated (optional).
serviceStatusIds string no null Filter by service status IDs, comma-separated (optional).
subscribedOnly boolean no null Return only subscribed services (optional).
ticketId integer no null Filter by linked ticket ID (optional).
userId integer no null Filter by user ID (optional).

Scheduling

Tool Plan Access Description
halo_create_appointment Pro Write [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.
halo_create_todo Pro Write [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.
halo_get_appointment Free Read-only [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.
halo_get_timesheet_event_mine Free Read-only [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.
halo_list_appointments Free Read-only [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.
halo_list_available_slots Free Read-only [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.
halo_list_booking_types Free Read-only [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.
halo_list_holidays Free Read-only [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.
halo_list_schedules Free Read-only [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.
halo_list_timesheet_events Free Read-only [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.
halo_list_todos Free Read-only [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.
halo_list_workdays Free Read-only [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.
halo_update_todo Pro Write [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'.
halo_create_appointment parameters
Param Type Required Default Description
appointmentJson string yes JSON 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}
halo_create_todo parameters
Param Type Required Default Description
todoJson string yes JSON 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}
halo_get_appointment parameters
Param Type Required Default Description
appointmentId integer yes The numeric HaloPSA appointment ID. Use halo_list_appointments to find valid IDs.
halo_list_appointments parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID (optional). Use halo_list_agents to find valid IDs.
clientId integer no null Filter by client ID (optional). Use halo_list_clients to find valid IDs.
endDate string no null Filter by end date in yyyy-MM-dd format (optional). Returns appointments on or before this date.
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).
startDate string no null Filter by start date in yyyy-MM-dd format (optional). Returns appointments on or after this date.
halo_list_available_slots parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID (optional). Shows availability for a specific agent. Use halo_list_agents to find valid IDs.
endDate string no null Filter end date in yyyy-MM-dd format (optional). Shows slots up to this date.
startDate string no null Filter start date in yyyy-MM-dd format (optional). Shows slots from this date forward.
halo_list_schedules parameters
Param Type Required Default Description
primaryId integer no null Filter by primary entity ID (e.g., agent ID). Use halo_list_agents to find valid IDs.
halo_list_timesheet_events parameters
Param Type Required Default Description
filtersJson string no null Filter parameters as key-value pairs (optional). Example: {"agent_id": "5", "start_date": "2026-04-01"} to filter events for a specific agent from a date.
halo_list_todos parameters
Param Type Required Default Description
ticketId integer no null Filter by ticket ID (optional). Shows to-do items linked to a specific ticket.
halo_update_todo parameters
Param Type Required Default Description
todoJson string yes JSON 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

Tool Plan Access Description
halo_create_crm_note Pro Write [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.
halo_create_opportunity Pro Write [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.
halo_get_opportunity Free Read-only [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.
halo_list_contact_groups Free Read-only [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.
halo_list_crm_notes Free Read-only [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.
halo_list_feedback Free Read-only [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.
halo_list_opportunities Free Read-only [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.
halo_list_ticket_approvals Free Read-only [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.
halo_manage_contact_group_members Pro Write [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.
halo_process_approval Pro Write [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.
halo_update_opportunity Pro Write [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.
halo_create_crm_note parameters
Param Type Required Default Description
noteJson string yes JSON 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"}
halo_create_opportunity parameters
Param Type Required Default Description
opportunityJson string yes JSON 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}
halo_get_opportunity parameters
Param Type Required Default Description
opportunityId integer yes The numeric HaloPSA opportunity ID. Use halo_list_opportunities to find valid IDs.
halo_list_crm_notes parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid client IDs.
count integer no 50 Number of results to return (default 50, max 200).
supplierId integer no null Filter by supplier ID (optional). Use halo_list_suppliers to find valid supplier IDs.
halo_list_opportunities parameters
Param Type Required Default Description
agentId integer no null Filter by agent/owner ID (optional). Use halo_list_agents to find valid IDs.
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDate string no null End date filter in yyyy-MM-dd format (optional). Shows opportunities up to this date.
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
startDate string no null Start date filter in yyyy-MM-dd format (optional). Shows opportunities from this date forward.
halo_list_ticket_approvals parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
halo_manage_contact_group_members parameters
Param Type Required Default Description
contactJson string yes JSON 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"}
halo_process_approval parameters
Param Type Required Default Description
approvalIds string yes Comma-separated list of approval IDs to process. Use halo_list_ticket_approvals to find valid IDs. Example: "1,2,3"
halo_update_opportunity parameters
Param Type Required Default Description
opportunityJson string yes JSON object with fields to update. Must include id (opportunity ID). Example: {"id": 1, "stage": "Negotiation", "probability": 90, "value": 30000}

Audit

Tool Plan Access Description
halo_get_audit_entry Free Read-only [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.
halo_get_field Free Read-only [HaloPSA] Retrieve a single custom field definition by numeric ID. Returns full field metadata including name, data type, validation rules, and dropdown options. Requires a valid field ID — use halo_list_custom_fields to find IDs.
halo_list_audit_entries Free Read-only [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.
halo_get_audit_entry parameters
Param Type Required Default Description
auditEntryId integer yes The numeric HaloPSA audit entry ID. Use halo_list_audit_entries to find valid IDs.
halo_get_field parameters
Param Type Required Default Description
fieldId integer yes The numeric HaloPSA field ID. Use halo_list_custom_fields to find valid IDs.
halo_list_audit_entries parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).

Attachments

Tool Plan Access Description
halo_delete_attachment Pro Destructive [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.
halo_delete_attachment_document Pro Destructive [HaloPSA] Permanently delete an attachment's document by ID. This cannot be undone. Use halo_list_attachments to find IDs.
halo_delete_attachment_image Pro Destructive [HaloPSA] Permanently delete an attachment's image by its image ID (a GUID). This cannot be undone.
halo_download_attachment Free Read-only [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.
halo_download_attachment_document Free Read-only [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.
halo_download_attachment_image Free Read-only [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.
halo_get_attachment Free Read-only [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.
halo_list_attachments Free Read-only [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.
halo_upload_attachment Pro Write [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.
halo_delete_attachment parameters
Param Type Required Default Description
attachmentId integer yes The numeric HaloPSA attachment ID to delete. Use halo_list_attachments to find valid IDs.
halo_delete_attachment_document parameters
Param Type Required Default Description
attachmentId integer yes The numeric HaloPSA attachment ID to delete.
halo_delete_attachment_image parameters
Param Type Required Default Description
imageId string yes The HaloPSA attachment image ID (a GUID/UUID string) to delete.
halo_download_attachment parameters
Param Type Required Default Description
attachmentId integer yes The numeric HaloPSA attachment ID. Use halo_list_attachments to find valid IDs.
halo_download_attachment_document parameters
Param Type Required Default Description
attachmentId integer yes The numeric HaloPSA attachment ID. Use halo_list_attachments to find valid IDs.
halo_download_attachment_image parameters
Param Type Required Default Description
imageId string yes The HaloPSA attachment image ID (a GUID/UUID string).
halo_get_attachment parameters
Param Type Required Default Description
attachmentId integer yes The numeric HaloPSA attachment ID. Use halo_list_attachments to find valid IDs.
halo_list_attachments parameters
Param Type Required Default Description
actionId integer no null Filter by action ID (optional). Requires ticketId. Narrows results to attachments on a specific ticket action.
filetype string no null Filter by file type / extension (optional), e.g. "pdf".
idOnly boolean no null Return only attachment IDs rather than full metadata (optional).
oneAttachmentId integer no null Return a single attachment by its attachment ID (optional, integer).
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
portal integer no null Filter to portal-visible attachments (optional, integer).
ticketId integer no null Filter by ticket ID (optional). Narrows results to attachments on a specific ticket.
type integer no null Filter by attachment type (optional, integer).
uniqueId integer no null Return a single attachment by its unique ID (optional, integer).
halo_upload_attachment parameters
Param Type Required Default Description
actionId integer no null Optional action ID to attach the file to a specific ticket action/note rather than the ticket as a whole.
fileBase64 string yes Base64-encoded file content. May be raw base64 or a full data-URI; StackJack normalizes it.
filename string yes File name including extension (e.g. "screenshot.png"). The extension determines the content type.
note string no null Optional note/description shown against the attachment.
showForUsers boolean no null Optional: whether the attachment is visible to end users on the self-service portal.
ticketId integer yes Ticket ID to attach the file to. Use halo_list_tickets to find IDs.

Discovery & Config

Tool Plan Access Description
halo_global_search Free Read-only [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.
halo_list_custom_fields Free Read-only [HaloPSA] List custom field definitions, optionally filtered by ticket type. Returns field IDs, names, 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.
halo_list_request_types Free Read-only [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.
halo_list_status_details Free Read-only [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.
halo_list_ticket_areas Free Read-only [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.
halo_list_ticket_type_details Free Read-only [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.
halo_list_ticket_type_fields Free Read-only [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.
halo_system_info Free Read-only [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.
halo_global_search parameters
Param Type Required Default Description
countPerEntity integer no 5 Maximum number of results to return per entity type (default 5, max 50). Increase for more comprehensive searches across each entity type.
query string yes Search query string. Matches across all entity types including tickets, clients, users, assets, and knowledge base articles.
halo_list_custom_fields parameters
Param Type Required Default Description
typeId integer no null Filter by ticket type ID (optional). Returns custom fields associated with a specific ticket type. Use halo_list_ticket_types to find valid IDs.
halo_list_status_details parameters
Param Type Required Default Description
filtersJson string no null Filter parameters as key-value pairs (optional). Example: {"type_id": "1"} to filter statuses for a specific ticket type.
halo_list_ticket_type_details parameters
Param Type Required Default Description
filtersJson string no null Filter parameters as key-value pairs (optional). Example filters: type_id to filter by a specific type.
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
halo_list_ticket_type_fields parameters
Param Type Required Default Description
typeId integer no null Filter 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.

Analytics

Tool Plan Access Description
halo_client_ticket_trends Free Read-only [HaloPSA] Track ticket volume trends for a specific client over multiple periods to identify patterns. Returns ticket counts per period showing volume trajectory. Use this to spot increasing or decreasing support demand for a client. Note: Makes one API call per period (default 6). Higher periodCount increases latency proportionally.
halo_open_ticket_summary Free Read-only [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.
halo_priority_distribution Free Read-only [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.
halo_queue_performance_comparison Free Read-only [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.
halo_stale_ticket_report Free Read-only [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.
halo_team_workload_balance Free Read-only [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.
halo_ticket_categorization_analysis Free Read-only [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.
halo_ticket_resolution_analytics Free Read-only [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.
halo_ticket_source_analysis Free Read-only [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.
halo_unassigned_ticket_report Free Read-only [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.
halo_client_ticket_trends parameters
Param Type Required Default Description
clientId integer yes Client ID to analyze. Use halo_list_clients or halo_search_clients to find valid IDs.
periodCount integer no 6 Number of periods to analyze (default 6). More periods show longer-term trends.
periodType string no "month" Period granularity: must be 'month' or 'week'. Defaults to 'month'. Use 'week' for recent short-term trends.
halo_open_ticket_summary parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
halo_priority_distribution parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
halo_queue_performance_comparison parameters
Param Type Required Default Description
days integer no 30 Number of days to analyze (default 30). Longer periods give more stable metrics.
halo_stale_ticket_report parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID (optional). Use halo_list_agents to find valid IDs.
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
staleDaysThreshold integer no 7 Number of days without activity to consider a ticket stale (default 7). Lower for urgent triage, higher for periodic reviews.
halo_team_workload_balance parameters
Param Type Required Default Description
teamId integer no null Filter by team ID (optional). Use halo_list_teams to find valid team IDs. Omit to see all agents.
halo_ticket_categorization_analysis parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDate string yes End date in yyyy-MM-dd format. Defines the end of the analysis period.
groupBy string no "category" Dimension to group results by. Must be 'type', 'priority', 'category', 'team', 'client', or 'agent'. Defaults to 'category'.
startDate string yes Start date in yyyy-MM-dd format. Defines the beginning of the analysis period.
halo_ticket_resolution_analytics parameters
Param Type Required Default Description
endDate string yes End date in yyyy-MM-dd format. Defines the end of the analysis period.
groupBy string no "type" Dimension to group results by. Must be 'type', 'priority', 'category', 'team', 'client', or 'agent'. Defaults to 'type'.
startDate string yes Start date in yyyy-MM-dd format. Defines the beginning of the analysis period.
halo_ticket_source_analysis parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDate string no null End date in yyyy-MM-dd format (optional). Defaults to today.
startDate string no null Start date in yyyy-MM-dd format (optional). Defaults to 30 days ago.
halo_unassigned_ticket_report parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.

Advanced Analytics

Tool Plan Access Description
halo_asset_ticket_correlation Pro Read-only [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.
halo_asset_warranty_expiry_report Pro Read-only [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.
halo_contract_utilization_tracker Pro Read-only [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.
halo_csat_report Pro Read-only [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.
halo_sla_breach_alerts Pro Read-only [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.
halo_sla_compliance_dashboard Pro Read-only [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.
halo_technician_utilization_report Pro Read-only [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.
halo_ticket_aging_report Pro Read-only [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.
halo_timesheet_summary Pro Read-only [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.
halo_asset_ticket_correlation parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDate string no null End date in yyyy-MM-dd format (optional). Omit for data through today.
minTickets integer no 3 Minimum ticket count to include an asset (default 3). Lower to catch emerging problems, raise to focus on worst offenders.
startDate string no null Start date in yyyy-MM-dd format (optional). Omit for all-time data.
halo_asset_warranty_expiry_report parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
daysAhead integer no 90 Number of days ahead to check for warranty expiry (default 90). Use 30 for urgent renewals, 180 for long-term planning.
halo_contract_utilization_tracker parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
contractId integer no null Filter by contract ID (optional). Use halo_list_contracts to find valid IDs.
halo_csat_report parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID (optional). Use halo_list_agents to find valid IDs.
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDate string no null End date in yyyy-MM-dd format (optional). Omit for data through today.
scaleOrder string no null CSAT 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.
startDate string no null Start date in yyyy-MM-dd format (optional). Omit for all-time data.
halo_sla_breach_alerts parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
warningMinutes integer no 30 Warning threshold in minutes before SLA breach (default 30). Tickets within this window appear as at-risk. Increase for earlier warnings.
halo_sla_compliance_dashboard parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDate string no null End date in yyyy-MM-dd format (optional). Omit for data through today.
startDate string no null Start date in yyyy-MM-dd format (optional). Omit for all-time data.
halo_technician_utilization_report parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID (optional). Use halo_list_agents to find valid IDs. Omit to see all agents.
endDate string no null End date in yyyy-MM-dd format (optional). Omit for data through today.
startDate string no null Start date in yyyy-MM-dd format (optional). Omit for all-time data.
targetUtilization integer no 70 Target utilization percentage (default 70). Agents below this threshold are flagged as under-utilized.
halo_ticket_aging_report parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
teamId integer no null Filter by team ID (optional). Use halo_list_teams to find valid team IDs.
halo_timesheet_summary parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID (optional). Use halo_list_agents to find valid IDs.
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDate string yes End date in yyyy-MM-dd format. Defines the end of the timesheet period.
startDate string yes Start date in yyyy-MM-dd format. Defines the beginning of the timesheet period.

Intelligence

Tool Plan Access Description
halo_after_hours_impact_report Pro Read-only [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.
halo_bulk_ticket_update Pro Write [HaloPSA] Update multiple tickets at once with the same field changes. Supports dry-run mode (default) to preview changes before applying. Provide a list of ticket IDs and the fields to update. Use this for batch operations like bulk reassignment, priority changes, or status updates. WARNING: Set dryRun to false to actually apply changes. Note: Makes one API call per ticket (plus one per ticket in dry-run mode for preview).
halo_client_360_view Pro Read-only [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.
halo_client_offboarding_audit Pro Read-only [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.
halo_client_onboarding_checklist Pro Read-only [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.
halo_client_risk_assessment Pro Read-only [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. Makes 3 API calls internally.
halo_compliance_snapshot Pro Read-only [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. Note: Makes 2 API calls internally.
halo_contract_renewal_pipeline Pro Read-only [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.
halo_daily_operations_briefing Pro Read-only [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.
halo_dispatch_optimizer Pro Read-only [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.
halo_draft_kb_from_ticket Pro Read-only [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.
halo_first_contact_resolution Pro Read-only [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.
halo_kb_gap_analysis Pro Read-only [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.
halo_project_budget_status Pro Read-only [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.
halo_recurring_issue_detector Pro Read-only [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.
halo_revenue_leakage_scan Pro Read-only [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. Note: Makes 2 API calls internally.
halo_scope_creep_detector Pro Read-only [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.
halo_ticket_backlog_analysis Pro Read-only [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.
halo_ticket_handoff_analysis Pro Read-only [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.
halo_ticket_similarity_search Pro Read-only [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.
halo_ticket_triage_assist Pro Read-only [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.
halo_time_entry_anomaly_scan Pro Read-only [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.
halo_unbilled_time_report Pro Read-only [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.
halo_after_hours_impact_report parameters
Param Type Required Default Description
endDate string no null End date in yyyy-MM-dd format (optional). Omit for data through today.
startDate string no null Start date in yyyy-MM-dd format (optional). Omit for last 30 days.
halo_bulk_ticket_update parameters
Param Type Required Default Description
dryRun boolean no true When true (default), previews changes without applying them. Set to false to actually update the tickets.
fieldsJson string yes JSON object with fields to update on all tickets. Example: {"agent_id": 5, "priority_id": 3}. Field names must match HaloPSA API field names.
ticketIds string yes Comma-separated list of ticket IDs to update (e.g. '101,102,103').
halo_client_360_view parameters
Param Type Required Default Description
clientId integer yes Client ID to generate 360 view for. Use halo_list_clients or halo_search_clients to find valid IDs.
scaleOrder string no null CSAT 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.
halo_client_offboarding_audit parameters
Param Type Required Default Description
clientId integer yes Client ID to audit for offboarding. Use halo_list_clients or halo_search_clients to find valid IDs.
halo_client_onboarding_checklist parameters
Param Type Required Default Description
clientId integer yes Client ID to check onboarding status for. Use halo_list_clients or halo_search_clients to find valid IDs.
halo_client_risk_assessment parameters
Param Type Required Default Description
clientId integer yes Client ID to assess risk for. Use halo_list_clients or halo_search_clients to find valid IDs.
lookbackMonths integer no 3 Number of months to look back for risk assessment (default 3). Longer periods provide more stable assessments.
scaleOrder string no null CSAT 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.
halo_compliance_snapshot parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
endDate string no null End date in yyyy-MM-dd format (optional). Omit for data through today.
startDate string no null Start date in yyyy-MM-dd format (optional). Omit for last 3 months.
halo_contract_renewal_pipeline parameters
Param Type Required Default Description
daysAhead integer no 90 Number of days ahead to look for expiring contracts (default 90). Use 30 for urgent focus, 180 for long-term planning.
halo_dispatch_optimizer parameters
Param Type Required Default Description
teamId integer no null Filter by team ID (optional). Use halo_list_teams to find valid team IDs.
halo_draft_kb_from_ticket parameters
Param Type Required Default Description
ticketId integer yes The 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.
halo_first_contact_resolution parameters
Param Type Required Default Description
endDate string no null End date in yyyy-MM-dd format (optional). Omit for data through today.
startDate string no null Start date in yyyy-MM-dd format (optional). Omit for last 30 days.
halo_kb_gap_analysis parameters
Param Type Required Default Description
lookbackDays integer no 90 Number of days to look back for ticket data (default 90).
halo_project_budget_status parameters
Param Type Required Default Description
projectId integer yes Project ID to check budget for. Use halo_list_projects to find valid IDs.
halo_recurring_issue_detector parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
lookbackDays integer no 90 Number of days to look back (default 90).
minOccurrences integer no 3 Minimum number of occurrences to flag as recurring (default 3). Lower to catch emerging patterns, raise to focus on chronic issues.
halo_revenue_leakage_scan parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
lookbackDays integer no 90 Number of days to look back (default 90).
halo_scope_creep_detector parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
lookbackDays integer no 90 Number of days to look back (default 90).
halo_ticket_handoff_analysis parameters
Param Type Required Default Description
endDate string no null End date in yyyy-MM-dd format (optional). Omit for data through today.
startDate string no null Start date in yyyy-MM-dd format (optional). Omit for last 30 days.
halo_ticket_similarity_search parameters
Param Type Required Default Description
maxResults integer no 10 Maximum number of similar tickets to return (default 10).
ticketId integer yes The ticket ID to find similar tickets for. Use halo_search_tickets or halo_list_tickets to find valid IDs.
halo_ticket_triage_assist parameters
Param Type Required Default Description
ticketId integer yes The ticket ID to triage. Use halo_search_tickets or halo_list_tickets to find valid IDs.
halo_time_entry_anomaly_scan parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID (optional). Use halo_list_agents to find valid IDs.
lookbackDays integer no 30 Number of days to look back (default 30).
halo_unbilled_time_report parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Use halo_list_clients or halo_search_clients to find valid IDs.
contractId integer no null Filter by contract ID (optional). Use halo_list_contracts to find valid IDs.

Premium Analytics

Tool Plan Access Description
halo_agreement_profitability_analysis Pro Read-only [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).
halo_client_health_score Pro Read-only [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. Makes 3 API calls internally.
halo_effective_hourly_rate Pro Read-only [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.
halo_escalation_analysis Pro Read-only [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.
halo_monthly_recurring_revenue Pro Read-only [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.
halo_qbr_data_pack Pro Read-only [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.
halo_unprofitable_agreements_report Pro Read-only [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.
halo_agreement_profitability_analysis parameters
Param Type Required Default Description
contractId integer yes Contract ID to analyze. Use halo_list_contracts to find valid IDs.
endDate string no null End date in yyyy-MM-dd format (optional). Omit for data through today.
startDate string no null Start date in yyyy-MM-dd format (optional). Omit for all-time data.
halo_client_health_score parameters
Param Type Required Default Description
clientId integer yes Client ID to analyze. Use halo_list_clients or halo_search_clients to find valid IDs.
lookbackMonths integer no 3 Number of months to look back for health scoring (default 3). Longer periods provide more stable scores.
scaleOrder string no null CSAT 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.
halo_effective_hourly_rate parameters
Param Type Required Default Description
endDate string no null End date in yyyy-MM-dd format (optional, defaults to today). Defines the end of the analysis period.
startDate string no null Start date in yyyy-MM-dd format (optional, defaults to 3 months ago). Defines the beginning of the analysis period.
targetRate number no 150 Target hourly rate for comparison (default 150.00). The report shows variance against this target.
halo_escalation_analysis parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID (optional). Use halo_list_agents to find valid IDs.
endDate string yes End date in yyyy-MM-dd format. Defines the end of the analysis period.
startDate string yes Start date in yyyy-MM-dd format. Defines the beginning of the analysis period.
teamId integer no null Filter by team ID (optional). Use halo_list_teams to find valid team IDs.
halo_monthly_recurring_revenue parameters
Param Type Required Default Description
includeBreakdown boolean no true When true, includes per-client MRR breakdown (default true). Set to false for a summary-only view.
trendMonths integer no 6 Number of months for revenue trend history (default 6). More months show longer-term revenue trajectory.
halo_qbr_data_pack parameters
Param Type Required Default Description
clientId integer yes Client ID to generate QBR data for. Use halo_list_clients or halo_search_clients to find valid IDs.
quarterEnd string yes Quarter end date in yyyy-MM-dd format (e.g. '2025-03-31' for Q1 2025).
quarterStart string yes Quarter start date in yyyy-MM-dd format (e.g. '2025-01-01' for Q1 2025).
scaleOrder string no null CSAT 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.
halo_unprofitable_agreements_report parameters
Param Type Required Default Description
periodMonths integer no 3 Number of months to analyze (default 3). Longer periods smooth out seasonal variations.
targetHourlyRate number no 100 Target 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

Tool Plan Access Description
halo_list_high_priority_tickets Free Read-only [HaloPSA] List open tickets with high priority (default priority ID 1 = Critical). Useful for urgent triage. Optionally override the priority threshold.
halo_list_my_tickets Free Read-only [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.
halo_list_open_tickets Free Read-only [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.
halo_list_overdue_sla_tickets Free Read-only [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.
halo_list_past_due_tickets Free Read-only [HaloPSA] List open tickets that have breached their SLA target. Use for SLA compliance monitoring and escalation. Optionally filter by client.
halo_list_tickets_by_client Free Read-only [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.
halo_list_unassigned_tickets Free Read-only [HaloPSA] List open tickets with no agent assigned. Critical for daily triage to ensure all tickets have an owner. Optionally filter by client.
halo_list_high_priority_tickets parameters
Param Type Required Default Description
clientId integer no null Filter by client ID.
pageNo integer no 1 Page number (default 1).
pageSize integer no 50 Results per page (default 50, max 100).
priorityId integer no 1 Priority ID threshold (default 1 = Critical). Use halo_list_priorities to find valid IDs.
halo_list_my_tickets parameters
Param Type Required Default Description
openOnly boolean no true When true (default), returns only open tickets.
pageNo integer no 1 Page number (default 1).
pageSize integer no 50 Results per page (default 50, max 100).
halo_list_open_tickets parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID.
clientId integer no null Filter by client ID.
pageNo integer no 1 Page number (default 1).
pageSize integer no 50 Results per page (default 50, max 100).
halo_list_overdue_sla_tickets parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID.
clientId integer no null Filter by client ID.
pageNo integer no 1 Page number (default 1).
pageSize integer no 50 Results per page (default 50, max 100).
halo_list_past_due_tickets parameters
Param Type Required Default Description
clientId integer no null Filter by client ID.
pageNo integer no 1 Page number (default 1).
pageSize integer no 50 Results per page (default 50, max 100).
halo_list_tickets_by_client parameters
Param Type Required Default Description
clientId integer yes Client ID (required). Use halo_search_clients to find valid IDs.
openOnly boolean no null When true, returns only open tickets.
pageNo integer no 1 Page number (default 1).
pageSize integer no 50 Results per page (default 50, max 100).
halo_list_unassigned_tickets parameters
Param Type Required Default Description
clientId integer no null Filter by client ID.
pageNo integer no 1 Page number (default 1).
pageSize integer no 50 Results per page (default 50, max 100).

Address Book

Tool Plan Access Description
halo_create_address_book_entry Pro Write [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.
halo_delete_address_book_entry Pro Destructive [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.
halo_get_address_book_entry Free Read-only [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.
halo_list_address_book Free Read-only [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.
halo_update_address_book_entry Pro Write [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.
halo_create_address_book_entry parameters
Param Type Required Default Description
entryJson string yes JSON 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"}
halo_delete_address_book_entry parameters
Param Type Required Default Description
entryId integer yes The 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.
halo_get_address_book_entry parameters
Param Type Required Default Description
entryId integer yes The numeric HaloPSA address book entry ID. Use halo_list_address_book to find valid IDs.
halo_list_address_book parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
search string no null Search entries by name, email, or phone (optional).
halo_update_address_book_entry parameters
Param Type Required Default Description
entryJson string yes JSON 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

Tool Plan Access Description
halo_create_role Pro Write [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.
halo_delete_role Pro Destructive [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.
halo_get_role Free Read-only [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.
halo_list_roles Free Read-only [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.
halo_update_role Pro Write [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.
halo_create_role parameters
Param Type Required Default Description
roleJson string yes JSON object with role fields. Required: name. Optional: description, permissions. Example: {"name": "L2 Support", "description": "Level 2 support role"}
halo_delete_role parameters
Param Type Required Default Description
roleId integer yes The numeric HaloPSA role ID to delete. Use halo_list_roles to find valid IDs. Verify the role with halo_get_role before deleting.
halo_get_role parameters
Param Type Required Default Description
roleId integer yes The numeric HaloPSA role ID. Use halo_list_roles to find valid IDs.
halo_list_roles parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
halo_update_role parameters
Param Type Required Default Description
roleJson string yes JSON 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

Tool Plan Access Description
halo_create_tag Pro Write [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.
halo_delete_tag Pro Destructive [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.
halo_get_tag Free Read-only [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.
halo_list_tags Free Read-only [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.
halo_create_tag parameters
Param Type Required Default Description
tagJson string yes JSON object with tag fields. Required: text. Optional: colour. Example: {"text": "VIP", "colour": "#FF0000"}
halo_delete_tag parameters
Param Type Required Default Description
tagId integer yes The numeric HaloPSA tag ID to delete. Use halo_list_tags to find valid IDs. Verify the tag with halo_get_tag before deleting.
halo_get_tag parameters
Param Type Required Default Description
tagId integer yes The numeric HaloPSA tag ID. Use halo_list_tags to find valid IDs.
halo_list_tags parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
search string no null Search tags by name (optional).

Notifications

Tool Plan Access Description
halo_create_notification Pro Write [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.
halo_get_notification Free Read-only [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.
halo_list_notifications Free Read-only [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.
halo_send_notification_message Pro Write [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.
halo_create_notification parameters
Param Type Required Default Description
notificationJson string yes JSON 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"}
halo_get_notification parameters
Param Type Required Default Description
notificationId integer yes The numeric HaloPSA notification ID. Use halo_list_notifications to find valid IDs.
halo_list_notifications parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID to see notifications for a specific agent (optional).
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
unreadOnly boolean no null Set to true to return only unread notifications (optional).
halo_send_notification_message parameters
Param Type Required Default Description
messageJson string yes JSON object with message fields. Required: message, agent_id. Optional: subject. Example: {"message": "Please review ticket #5678", "agent_id": 12, "subject": "Review Request"}

Canned Text

Tool Plan Access Description
halo_create_canned_text Pro Write [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.
halo_delete_canned_text Pro Destructive [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.
halo_get_canned_text Free Read-only [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.
halo_list_canned_text Free Read-only [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.
halo_update_canned_text Pro Write [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.
halo_create_canned_text parameters
Param Type Required Default Description
cannedTextJson string yes JSON 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>"}
halo_delete_canned_text parameters
Param Type Required Default Description
cannedTextId integer yes The 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.
halo_get_canned_text parameters
Param Type Required Default Description
cannedTextId integer yes The numeric HaloPSA canned text ID. Use halo_list_canned_text to find valid IDs.
halo_list_canned_text parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID to see templates available to a specific agent (optional).
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
search string no null Search canned text by name or content (optional).
teamId integer no null Filter by team ID to see templates available to a specific team (optional).
halo_update_canned_text parameters
Param Type Required Default Description
cannedTextJson string yes JSON 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

Tool Plan Access Description
halo_create_webhook Pro Write [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.
halo_delete_webhook Pro Destructive [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.
halo_get_webhook Free Read-only [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.
halo_list_webhook_events Free Read-only [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.
halo_list_webhooks Free Read-only [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.
halo_update_webhook Pro Write [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.
halo_create_webhook parameters
Param Type Required Default Description
webhookJson string yes JSON object with webhook fields. Required: name, url. Optional: event_type, secret, enabled. Example: {"name": "Ticket Updates", "url": "https://example.com/webhooks/halo", "enabled": true}
halo_delete_webhook parameters
Param Type Required Default Description
webhookId integer yes The numeric HaloPSA webhook ID to delete. Use halo_list_webhooks to find valid IDs. Verify the webhook with halo_get_webhook before deleting.
halo_get_webhook parameters
Param Type Required Default Description
webhookId integer yes The numeric HaloPSA webhook ID. Use halo_list_webhooks to find valid IDs.
halo_list_webhook_events parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
webhookId integer no null Filter by webhook ID to see events for a specific webhook (optional).
halo_list_webhooks parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
halo_update_webhook parameters
Param Type Required Default Description
webhookJson string yes JSON 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

Tool Plan Access Description
halo_create_automation_rule Pro Write [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.
halo_delete_automation_rule Pro Destructive [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.
halo_get_automation_rule Free Read-only [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.
halo_list_automation_rules Free Read-only [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.
halo_update_automation_rule Pro Write [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.
halo_create_automation_rule parameters
Param Type Required Default Description
ruleJson string yes JSON object with automation rule fields. Required: name. Optional: trigger_type, conditions, actions, enabled. Example: {"name": "Auto-assign VIP tickets", "enabled": true}
halo_delete_automation_rule parameters
Param Type Required Default Description
ruleId integer yes The 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.
halo_get_automation_rule parameters
Param Type Required Default Description
ruleId integer yes The numeric HaloPSA automation rule ID. Use halo_list_automation_rules to find valid IDs.
halo_list_automation_rules parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
halo_update_automation_rule parameters
Param Type Required Default Description
ruleJson string yes JSON 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

Tool Plan Access Description
halo_create_workflow Pro Write [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.
halo_delete_workflow Pro Destructive [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.
halo_get_workflow Free Read-only [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.
halo_list_workflow_steps Free Read-only [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.
halo_list_workflows Free Read-only [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.
halo_update_workflow Pro Write [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.
halo_create_workflow parameters
Param Type Required Default Description
workflowJson string yes JSON object with workflow fields. Required: name. Optional: description, steps. Example: {"name": "New Employee Onboarding", "description": "Standard onboarding process for new hires"}
halo_delete_workflow parameters
Param Type Required Default Description
workflowId integer yes The numeric HaloPSA workflow ID to delete. Use halo_list_workflows to find valid IDs. Verify the workflow with halo_get_workflow before deleting.
halo_get_workflow parameters
Param Type Required Default Description
workflowId integer yes The numeric HaloPSA workflow ID. Use halo_list_workflows to find valid IDs.
halo_list_workflow_steps parameters
Param Type Required Default Description
workflowId integer yes The numeric HaloPSA workflow ID whose steps to list. Use halo_list_workflows to find valid IDs.
halo_list_workflows parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
halo_update_workflow parameters
Param Type Required Default Description
workflowJson string yes JSON 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

Tool Plan Access Description
halo_create_asset_group Pro Write [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.
halo_delete_asset_group Pro Destructive [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.
halo_get_asset_group Free Read-only [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.
halo_list_asset_groups Free Read-only [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.
halo_update_asset_group Pro Write [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.
halo_create_asset_group parameters
Param Type Required Default Description
groupJson string yes JSON object with asset group fields. Required: name. Optional: description. Example: {"name": "Server Room A", "description": "All rack-mounted servers in Room A"}
halo_delete_asset_group parameters
Param Type Required Default Description
groupId integer yes The 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.
halo_get_asset_group parameters
Param Type Required Default Description
groupId integer yes The numeric HaloPSA asset group ID. Use halo_list_asset_groups to find valid IDs.
halo_list_asset_groups parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
halo_update_asset_group parameters
Param Type Required Default Description
groupJson string yes JSON 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

Tool Plan Access Description
halo_create_release_pipeline Pro Write [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.
halo_delete_release_pipeline Pro Destructive [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.
halo_get_release_pipeline Free Read-only [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.
halo_list_release_pipelines Free Read-only [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.
halo_create_release_pipeline parameters
Param Type Required Default Description
pipelineJson string yes JSON object with release pipeline fields. Required: name. Optional: stages, description. Example: {"name": "Standard Deployment", "description": "Dev -> Staging -> Production pipeline"}
halo_delete_release_pipeline parameters
Param Type Required Default Description
pipelineId integer yes The 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.
halo_get_release_pipeline parameters
Param Type Required Default Description
pipelineId integer yes The numeric HaloPSA release pipeline ID. Use halo_list_release_pipelines to find valid IDs.
halo_list_release_pipelines parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).

Products & Components

Tool Plan Access Description
halo_create_product Pro Write [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.
halo_create_product_component Pro Write [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.
halo_delete_product Pro Destructive [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.
halo_get_product Free Read-only [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.
halo_list_product_components Free Read-only [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.
halo_list_products Free Read-only [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.
halo_create_product parameters
Param Type Required Default Description
productJson string yes JSON 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}
halo_create_product_component parameters
Param Type Required Default Description
componentJson string yes JSON object with product component fields. Required: product_id, item_id. Optional: quantity, unit_price. Example: {"product_id": 5, "item_id": 12, "quantity": 1}
halo_delete_product parameters
Param Type Required Default Description
productId integer yes The numeric HaloPSA product ID to delete. Use halo_list_products to find valid IDs. Verify the product with halo_get_product before deleting.
halo_get_product parameters
Param Type Required Default Description
productId integer yes The numeric HaloPSA product ID. Use halo_list_products to find valid IDs.
halo_list_product_components parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
productId integer no null Filter by product ID to list components for a specific product (optional).
halo_list_products parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
search string no null Search products by name or description (optional).

Downtime

Tool Plan Access Description
halo_create_downtime Pro Write [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.
halo_delete_downtime Pro Destructive [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.
halo_get_downtime Free Read-only [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.
halo_list_downtime Free Read-only [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.
halo_create_downtime parameters
Param Type Required Default Description
downtimeJson string yes JSON 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}
halo_delete_downtime parameters
Param Type Required Default Description
downtimeId integer yes The numeric HaloPSA downtime record ID to delete. Use halo_list_downtime to find valid IDs. Verify the record with halo_get_downtime before deleting.
halo_get_downtime parameters
Param Type Required Default Description
downtimeId integer yes The numeric HaloPSA downtime record ID. Use halo_list_downtime to find valid IDs.
halo_list_downtime parameters
Param Type Required Default Description
endDate string no null Filter by end date in ISO 8601 format, e.g. '2026-12-31' (optional).
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
serviceId integer no null Filter by service ID to see downtime for a specific service (optional). Use halo_list_services to find service IDs.
startDate string no null Filter by start date in ISO 8601 format, e.g. '2026-01-01' (optional).

Service Availability

Tool Plan Access Description
halo_create_service_availability Pro Write [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.
halo_delete_service_availability Pro Destructive [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.
halo_get_service_availability Free Read-only [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.
halo_list_service_availability Free Read-only [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.
halo_create_service_availability parameters
Param Type Required Default Description
availabilityJson string yes JSON 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}
halo_delete_service_availability parameters
Param Type Required Default Description
availabilityId integer yes The 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.
halo_get_service_availability parameters
Param Type Required Default Description
availabilityId integer yes The numeric HaloPSA service availability record ID. Use halo_list_service_availability to find valid IDs.
halo_list_service_availability parameters
Param Type Required Default Description
endDate string no null Filter by end date in ISO 8601 format, e.g. '2026-12-31' (optional).
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 100).
serviceId integer no null Filter by service ID to see availability for a specific service (optional). Use halo_list_services to find service IDs.
startDate string no null Filter by start date in ISO 8601 format, e.g. '2026-01-01' (optional).

Contract Rules

Tool Plan Access Description
halo_create_contract_rule Pro Write [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.
halo_delete_contract_rule Pro Destructive [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.
halo_get_contract_rule Free Read-only [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.
halo_list_contract_rules Free Read-only [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.
halo_create_contract_rule parameters
Param Type Required Default Description
contractRuleJson string yes JSON object with contract rule fields. Example: {"name": "Standard Hourly", "contract_id": 42, "charge_rate": 150.00}. Field names must match HaloPSA API field names.
halo_delete_contract_rule parameters
Param Type Required Default Description
contractRuleId integer yes The numeric HaloPSA contract rule ID to delete. Use halo_list_contract_rules to find valid IDs.
halo_get_contract_rule parameters
Param Type Required Default Description
contractRuleId integer yes The numeric HaloPSA contract rule ID. Use halo_list_contract_rules to find valid IDs.
halo_list_contract_rules parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).

Contract Schedules

Tool Plan Access Description
halo_create_contract_schedule Pro Write [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.
halo_delete_contract_schedule Pro Destructive [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.
halo_get_contract_schedule Free Read-only [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.
halo_list_contract_schedules Free Read-only [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.
halo_create_contract_schedule parameters
Param Type Required Default Description
contractScheduleJson string yes JSON object with contract schedule fields. Example: {"name": "Monthly Billing", "contract_id": 42, "frequency": "Monthly"}. Field names must match HaloPSA API field names.
halo_delete_contract_schedule parameters
Param Type Required Default Description
contractScheduleId integer yes The numeric HaloPSA contract schedule ID to delete. Use halo_list_contract_schedules to find valid IDs.
halo_get_contract_schedule parameters
Param Type Required Default Description
contractScheduleId integer yes The numeric HaloPSA contract schedule ID. Use halo_list_contract_schedules to find valid IDs.
halo_list_contract_schedules parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).

Billing Templates

Tool Plan Access Description
halo_create_billing_template Pro Write [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.
halo_delete_billing_template Pro Destructive [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.
halo_get_billing_template Free Read-only [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.
halo_list_billing_templates Free Read-only [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.
halo_create_billing_template parameters
Param Type Required Default Description
billingTemplateJson string yes JSON object with billing template fields. Example: {"name": "Standard MSP Template", "billing_cycle": "Monthly"}. Field names must match HaloPSA API field names.
halo_delete_billing_template parameters
Param Type Required Default Description
billingTemplateId integer yes The numeric HaloPSA billing template ID to delete. Use halo_list_billing_templates to find valid IDs.
halo_get_billing_template parameters
Param Type Required Default Description
billingTemplateId integer yes The numeric HaloPSA billing template ID. Use halo_list_billing_templates to find valid IDs.
halo_list_billing_templates parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).

Budget Types

Tool Plan Access Description
halo_create_budget_type Pro Write [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.
halo_delete_budget_type Pro Destructive [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.
halo_get_budget_type Free Read-only [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.
halo_list_budget_types Free Read-only [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.
halo_create_budget_type parameters
Param Type Required Default Description
budgetTypeJson string yes JSON object with budget type fields. Example: {"name": "Time & Materials"}. Field names must match HaloPSA API field names.
halo_delete_budget_type parameters
Param Type Required Default Description
budgetTypeId integer yes The numeric HaloPSA budget type ID to delete. Use halo_list_budget_types to find valid IDs.
halo_get_budget_type parameters
Param Type Required Default Description
budgetTypeId integer yes The numeric HaloPSA budget type ID. Use halo_list_budget_types to find valid IDs.
halo_list_budget_types parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).

Cost Centres

Tool Plan Access Description
halo_create_cost_centre Pro Write [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.
halo_delete_cost_centre Pro Destructive [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.
halo_get_cost_centre Free Read-only [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.
halo_list_cost_centres Free Read-only [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.
halo_create_cost_centre parameters
Param Type Required Default Description
costCentreJson string yes JSON object with cost centre fields. Example: {"name": "Engineering", "code": "ENG-001"}. Field names must match HaloPSA API field names.
halo_delete_cost_centre parameters
Param Type Required Default Description
costCentreId integer yes The numeric HaloPSA cost centre ID to delete. Use halo_list_cost_centres to find valid IDs.
halo_get_cost_centre parameters
Param Type Required Default Description
costCentreId integer yes The numeric HaloPSA cost centre ID. Use halo_list_cost_centres to find valid IDs.
halo_list_cost_centres parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).

CSP Invoices

Tool Plan Access Description
halo_create_csp_invoice Pro Write [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.
halo_delete_csp_invoice Pro Destructive [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.
halo_get_csp_invoice Free Read-only [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.
halo_list_csp_invoices Free Read-only [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.
halo_create_csp_invoice parameters
Param Type Required Default Description
cspInvoiceJson string yes JSON object with CSP invoice fields. Example: {"client_id": 42, "billing_period": "2024-01", "total": 1500.00}. Field names must match HaloPSA API field names.
halo_delete_csp_invoice parameters
Param Type Required Default Description
cspInvoiceId integer yes The numeric HaloPSA CSP invoice ID to delete. Use halo_list_csp_invoices to find valid IDs.
halo_get_csp_invoice parameters
Param Type Required Default Description
cspInvoiceId integer yes The numeric HaloPSA CSP invoice ID. Use halo_list_csp_invoices to find valid IDs.
halo_list_csp_invoices parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).

Custom Queries

Tool Plan Access Description
halo_create_custom_query Pro Write [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.
halo_delete_custom_query Pro Destructive [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.
halo_get_custom_query Free Read-only [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.
halo_list_custom_queries Free Read-only [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.
halo_create_custom_query parameters
Param Type Required Default Description
customQueryJson string yes JSON object with custom query fields. Example: {"name": "Open Tickets by Client", "sql": "SELECT ..."}. Field names must match HaloPSA API field names.
halo_delete_custom_query parameters
Param Type Required Default Description
customQueryId integer yes The numeric HaloPSA custom query ID to delete. Use halo_list_custom_queries to find valid IDs.
halo_get_custom_query parameters
Param Type Required Default Description
customQueryId integer yes The numeric HaloPSA custom query ID. Use halo_list_custom_queries to find valid IDs.
halo_list_custom_queries parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).

Custom Tables

Tool Plan Access Description
halo_create_custom_table Pro Write [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.
halo_delete_custom_table Pro Destructive [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.
halo_get_custom_table Free Read-only [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.
halo_list_custom_tables Free Read-only [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.
halo_create_custom_table parameters
Param Type Required Default Description
customTableJson string yes JSON object with custom table fields. Example: {"name": "Vendor Certifications", "columns": [...]}. Field names must match HaloPSA API field names.
halo_delete_custom_table parameters
Param Type Required Default Description
customTableId integer yes The numeric HaloPSA custom table ID to delete. Use halo_list_custom_tables to find valid IDs.
halo_get_custom_table parameters
Param Type Required Default Description
customTableId integer yes The numeric HaloPSA custom table ID. Use halo_list_custom_tables to find valid IDs.
halo_list_custom_tables parameters
Param Type Required Default Description
pageNo integer no 1 Page number for pagination (default 1). Increment to retrieve subsequent pages.
pageSize integer no 50 Number of results per page (default 50, max 200).

PDF Templates

Tool Plan Access Description
halo_create_pdf_template Pro Write [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.
halo_delete_pdf_template Pro Destructive [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.
halo_generate_document Pro Write [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.
halo_get_pdf_template Free Read-only [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.
halo_get_pdf_template_library_item Free Read-only [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.
halo_list_pdf_template_library Free Read-only [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.
halo_list_pdf_templates Free Read-only [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.
halo_create_pdf_template parameters
Param Type Required Default Description
templateJson string yes JSON 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.
halo_delete_pdf_template parameters
Param Type Required Default Description
templateId integer yes The 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.
halo_generate_document parameters
Param Type Required Default Description
requestJson string yes JSON 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.
halo_get_pdf_template parameters
Param Type Required Default Description
templateId integer yes The numeric HaloPSA PDF template ID. Use halo_list_pdf_templates to find valid IDs.
halo_get_pdf_template_library_item parameters
Param Type Required Default Description
itemId integer yes The numeric HaloPSA PDF template repository item ID. Use halo_list_pdf_template_library to find valid IDs.
halo_list_pdf_templates parameters
Param Type Required Default Description
search string no null Search string to filter templates by name (optional).
type integer no null Filter by template type ID (optional). Different types correspond to invoices, quotes, contracts, etc.

Email Templates

Tool Plan Access Description
halo_create_email_template Pro Write [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.
halo_create_email_template_variable Pro Write [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.
halo_delete_email_template Pro Destructive [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.
halo_delete_email_template_variable Pro Destructive [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.
halo_get_email_template Free Read-only [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.
halo_get_email_template_variable Free Read-only [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.
halo_list_email_template_variables Free Read-only [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.
halo_list_email_templates Free Read-only [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.
halo_preview_email_template Free Read-only [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.
halo_create_email_template parameters
Param Type Required Default Description
templateJson string yes JSON 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.
halo_create_email_template_variable parameters
Param Type Required Default Description
variableJson string yes JSON 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.
halo_delete_email_template parameters
Param Type Required Default Description
templateId integer yes The 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.
halo_delete_email_template_variable parameters
Param Type Required Default Description
variableId integer yes The 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.
halo_get_email_template parameters
Param Type Required Default Description
templateId integer yes The numeric HaloPSA email template ID. Use halo_list_email_templates to find valid IDs.
halo_get_email_template_variable parameters
Param Type Required Default Description
variableId integer yes The numeric HaloPSA email template variable ID. Use halo_list_email_template_variables to find valid IDs.
halo_list_email_templates parameters
Param Type Required Default Description
isConfig boolean no null Filter to configuration templates only (optional). Set true to see system configuration templates, false for user-created templates.
messageGroup integer no null Filter by message group ID (optional). Groups organise templates by purpose — e.g., ticket notifications, approvals, password resets.
halo_preview_email_template parameters
Param Type Required Default Description
templateJson string yes JSON 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.
ticketId integer no null Ticket 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

Tool Plan Access Description
halo_create_email_rule Pro Write [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.
halo_delete_email_rule Pro Destructive [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.
halo_get_email_rule Free Read-only [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.
halo_list_email_rules Free Read-only [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.
halo_create_email_rule parameters
Param Type Required Default Description
ruleJson string yes JSON 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.
halo_delete_email_rule parameters
Param Type Required Default Description
ruleId integer yes The 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.
halo_get_email_rule parameters
Param Type Required Default Description
ruleId integer yes The numeric HaloPSA email rule ID. Use halo_list_email_rules to find valid IDs.
halo_list_email_rules parameters
Param Type Required Default Description
fromAddress string no null Filter by sender email address (optional). Returns rules matching a specific from address pattern.
type integer no null Filter by rule type ID (optional). Different types handle different inbound email processing scenarios.

Mail Campaigns

Tool Plan Access Description
halo_create_campaign_email Pro Write [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.
halo_create_mail_campaign Pro Write [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.
halo_delete_campaign_email Pro Destructive [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.
halo_delete_mail_campaign Pro Destructive [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.
halo_get_campaign_email Free Read-only [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.
halo_get_campaign_log Free Read-only [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.
halo_get_mail_campaign Free Read-only [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.
halo_list_campaign_emails Free Read-only [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.
halo_list_campaign_logs Free Read-only [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.
halo_list_mail_campaigns Free Read-only [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.
halo_create_campaign_email parameters
Param Type Required Default Description
emailJson string yes JSON 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.
halo_create_mail_campaign parameters
Param Type Required Default Description
campaignJson string yes JSON 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.
halo_delete_campaign_email parameters
Param Type Required Default Description
emailId integer yes The 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.
halo_delete_mail_campaign parameters
Param Type Required Default Description
campaignId integer yes The 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.
halo_get_campaign_email parameters
Param Type Required Default Description
emailId integer yes The numeric HaloPSA campaign email ID. Use halo_list_campaign_emails to find valid IDs.
halo_get_campaign_log parameters
Param Type Required Default Description
logId integer yes The numeric HaloPSA campaign log ID. Use halo_list_campaign_logs to find valid IDs.
halo_get_mail_campaign parameters
Param Type Required Default Description
campaignId integer yes The numeric HaloPSA mail campaign ID. Use halo_list_mail_campaigns to find valid IDs.

Integration Management

Tool Plan Access Description
halo_get_integration_config Free Read-only [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.
halo_get_integration_error Free Read-only [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.
halo_get_integration_request Free Read-only [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.
halo_list_integration_configs Free Read-only [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.
halo_list_integration_errors Free Read-only [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.
halo_list_integration_field_mappings Free Read-only [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.
halo_list_integration_requests Free Read-only [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.
halo_list_integration_site_mappings Free Read-only [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.
halo_get_integration_config parameters
Param Type Required Default Description
configId integer yes The numeric HaloPSA integration config ID. Use halo_list_integration_configs to find valid IDs.
includeDetails boolean no false Include extended details such as field mappings and sync history (default false).
halo_get_integration_error parameters
Param Type Required Default Description
errorId integer yes The numeric HaloPSA integration error ID. Use halo_list_integration_errors to find valid IDs.
halo_get_integration_request parameters
Param Type Required Default Description
requestId integer yes The numeric HaloPSA integration request ID. Use halo_list_integration_requests to find valid IDs.
halo_list_integration_errors parameters
Param Type Required Default Description
detailId integer no null Filter by detail/record ID within the integration (optional).
moduleId integer no null Filter by integration module ID (optional). Use halo_list_integration_configs to find module IDs.
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
halo_list_integration_field_mappings parameters
Param Type Required Default Description
moduleId integer no null Filter by integration module ID (optional). Use halo_list_integration_configs to find module IDs.
halo_list_integration_requests parameters
Param Type Required Default Description
detailId integer no null Filter by detail/record ID within the integration (optional).
inboundOnly boolean no null When true, only return inbound requests from the external system (optional).
moduleId integer no null Filter by integration module ID (optional). Use halo_list_integration_configs to find module IDs.
outboundOnly boolean no null When true, only return outbound requests to the external system (optional).
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
halo_list_integration_site_mappings parameters
Param Type Required Default Description
activeOnly boolean no null When true, only return active mappings (optional).
moduleId integer no null Filter by integration module ID (optional). Use halo_list_integration_configs to find module IDs.
thirdPartyClientId string no null Filter by third-party client/company ID in the external system (optional).

Integration Data

Tool Plan Access Description
halo_get_automate_data Free Read-only [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.
halo_get_auvik_data Free Read-only [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.
halo_get_avalara_data Free Read-only [HaloPSA] Retrieve Avalara tax data from Halo's connected tax integration.
halo_get_azure_ad_data Free Read-only [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.
halo_get_azure_sentinel_data Free Read-only [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.
halo_get_business_central_data Free Read-only [HaloPSA] Retrieve Microsoft Dynamics 365 Business Central data from Halo's connected accounting integration.
halo_get_connectwise_manage_data Free Read-only [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.
halo_get_datto_rmm_data Free Read-only [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.
halo_get_domotz_data Free Read-only [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.
halo_get_exact_online_data Free Read-only [HaloPSA] Retrieve Exact Online accounting data from Halo's connected integration.
halo_get_fortnox_data Free Read-only [HaloPSA] Retrieve Fortnox accounting data from Halo's connected integration.
halo_get_gocardless_data Free Read-only [HaloPSA] Retrieve GoCardless data from Halo's connected payments integration.
halo_get_gocardless_payments Free Read-only [HaloPSA] Retrieve GoCardless payments from Halo's connected payments integration.
halo_get_intacct_data Free Read-only [HaloPSA] Retrieve Sage Intacct accounting data from Halo's connected integration.
halo_get_intune_data Free Read-only [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.
halo_get_itglue_data Free Read-only [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.
halo_get_kaseya_vsa_data Free Read-only [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.
halo_get_kashflow_data Free Read-only [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.
halo_get_liongard_data Free Read-only [HaloPSA] Retrieve Liongard data (inspectors, metrics, timelines) from Halo's connected Liongard integration. Use datatype to select the category of environment data to retrieve.
halo_get_microsoft_csp_data Free Read-only [HaloPSA] Retrieve Microsoft CSP data (subscriptions, licenses, tenants) from Halo's connected Microsoft Partner Center integration. Use datatype to select the category of data: subscriptions, licenses, customers, etc.
halo_get_myob_data Free Read-only [HaloPSA] Retrieve MYOB accounting data from Halo's connected integration.
halo_get_ncentral_data Free Read-only [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.
halo_get_pax8_data Free Read-only [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.
halo_get_prtg_data Free Read-only [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.
halo_get_quickbooks_data Free Read-only [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.
halo_get_sage_business_cloud_data Free Read-only [HaloPSA] Retrieve Sage Business Cloud accounting data from Halo's connected integration.
halo_get_sentinelone_data Free Read-only [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.
halo_get_snelstart_data Free Read-only [HaloPSA] Retrieve SnelStart accounting data from Halo's connected integration. Use datatype to select the category of data.
halo_get_solarwinds_rmm_data Free Read-only [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.
halo_get_sophos_data Free Read-only [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.
halo_get_stripe_data Free Read-only [HaloPSA] Retrieve Stripe data from Halo's connected payments integration.
halo_get_xero_data Free Read-only [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'.
halo_get_automate_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. computers, monitors, scripts).
search string no null Search text to filter results.
halo_get_auvik_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. networks, devices, alerts).
search string no null Search text to filter results.
halo_get_azure_ad_data parameters
Param Type Required Default Description
azureTenants string no null Filter by Azure tenant ID or name.
datatype string no null Data category to retrieve (e.g. users, groups, licenses).
search string no null Search text to filter results.
halo_get_azure_sentinel_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. incidents, alerts, rules).
search string no null Search text to filter results.
halo_get_connectwise_manage_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. tickets, companies, contacts).
search string no null Search text to filter results.
halo_get_datto_rmm_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. devices, alerts, patches).
search string no null Search text to filter results.
halo_get_domotz_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. agents, devices, alerts).
search string no null Search text to filter results.
halo_get_intune_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. devices, compliancepolicies, apps).
search string no null Search text to filter results.
halo_get_itglue_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. configurations, flexibleassets, documents).
search string no null Search text to filter results.
halo_get_kaseya_vsa_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. agents, machinegroups, procedures).
search string no null Search text to filter results.
halo_get_kashflow_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (optional).
tenantId integer no null KashFlow tenant ID to scope results to (optional).
halo_get_liongard_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. inspectors, metrics, timelines).
search string no null Search text to filter results.
halo_get_microsoft_csp_data parameters
Param Type Required Default Description
azureTenants string no null Filter by Azure tenant ID or name.
datatype string no null Data category to retrieve (e.g. subscriptions, licenses, customers).
search string no null Search text to filter results.
halo_get_ncentral_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. devices, serviceitems, tasks).
search string no null Search text to filter results.
halo_get_pax8_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. subscriptions, products, companies).
search string no null Search text to filter results.
halo_get_prtg_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. sensors, devices, alerts).
search string no null Search text to filter results.
halo_get_quickbooks_data parameters
Param Type Required Default Description
accountClassification string no null Filter to a QuickBooks account classification (optional).
accountSubtype string no null Filter to a QuickBooks account sub-type (optional).
accountType string no null Filter to a QuickBooks account type (optional).
companyId string no null QuickBooks 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.
connectionId integer no null Halo connection ID for a specific QBO connection (optional).
datatype string no null QuickBooks 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.
halo_get_snelstart_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (optional).
halo_get_solarwinds_rmm_data parameters
Param Type Required Default Description
datatype string no null Data category to retrieve (e.g. devices, alerts, patches).
search string no null Search text to filter results.
halo_get_xero_data parameters
Param Type Required Default Description
datatype string no null REQUIRED. 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'.
search string no null Search text to filter results.

Accounting Details

Tool Plan Access Description
halo_get_avalara_detail Free Read-only [HaloPSA] Get a single Avalara connection detail by ID.
halo_get_business_central_detail Free Read-only [HaloPSA] Get a single Business Central connection detail by ID.
halo_get_fortnox_detail Free Read-only [HaloPSA] Get a single Fortnox connection detail by ID.
halo_get_kashflow_detail Free Read-only [HaloPSA] Get a single KashFlow connection detail by ID.
halo_get_myob_detail Free Read-only [HaloPSA] Get a single MYOB connection detail by ID.
halo_get_quickbooks_detail Free Read-only [HaloPSA] Get a single QuickBooks Online connection detail by ID.
halo_get_sage_business_cloud_detail Free Read-only [HaloPSA] Get a single Sage Business Cloud connection detail by ID.
halo_get_xero_detail Free Read-only [HaloPSA] Get a single Xero connection detail by ID.
halo_list_avalara_details Free Read-only [HaloPSA] List Avalara tax-integration connection details configured in Halo.
halo_list_business_central_details Free Read-only [HaloPSA] List Microsoft Dynamics 365 Business Central connection details configured in Halo.
halo_list_fortnox_details Free Read-only [HaloPSA] List Fortnox connection details configured in Halo.
halo_list_kashflow_details Free Read-only [HaloPSA] List KashFlow connection details configured in Halo.
halo_list_myob_details Free Read-only [HaloPSA] List MYOB connection details configured in Halo.
halo_list_quickbooks_details Free Read-only [HaloPSA] List QuickBooks Online connection details configured in Halo.
halo_list_sage_business_cloud_details Free Read-only [HaloPSA] List Sage Business Cloud connection details configured in Halo.
halo_list_xero_details Free Read-only [HaloPSA] List Xero connection details configured in Halo.
halo_get_avalara_detail parameters
Param Type Required Default Description
id integer yes The numeric Avalara detail record ID.
halo_get_business_central_detail parameters
Param Type Required Default Description
id integer yes The numeric Business Central detail record ID.
includeDetails boolean no null Include the full detail payload (optional).
halo_get_fortnox_detail parameters
Param Type Required Default Description
id integer yes The numeric Fortnox detail record ID.
halo_get_kashflow_detail parameters
Param Type Required Default Description
id integer yes The numeric KashFlow detail record ID.
includeDetails boolean no null Include the full detail payload (optional).
halo_get_myob_detail parameters
Param Type Required Default Description
id integer yes The numeric MYOB detail record ID.
halo_get_quickbooks_detail parameters
Param Type Required Default Description
id integer yes The numeric QuickBooks detail record ID.
includeDetails boolean no null Include the full detail payload (optional).
halo_get_sage_business_cloud_detail parameters
Param Type Required Default Description
id integer yes The numeric Sage Business Cloud detail record ID.
includeDetails boolean no null Include the full detail payload (optional).
halo_get_xero_detail parameters
Param Type Required Default Description
id integer yes The numeric Xero detail record ID.
includeDetails boolean no null Include the full detail payload (optional).
halo_list_business_central_details parameters
Param Type Required Default Description
companyId string no null Filter to a specific company ID (optional).
connectedOnly boolean no null Return only currently-connected records (optional).
halo_list_kashflow_details parameters
Param Type Required Default Description
includeDisabled boolean no null Include disabled records (optional).
includeEnabled boolean no null Include enabled records (optional).
tenantId integer no null Filter to a specific KashFlow tenant ID (optional).
halo_list_quickbooks_details parameters
Param Type Required Default Description
companyId string no null Filter to a specific QuickBooks company ID (optional).
connectedOnly boolean no null Return only currently-connected records (optional).
halo_list_sage_business_cloud_details parameters
Param Type Required Default Description
connectedOnly boolean no null Return only currently-connected records (optional).
tenantId string no null Filter to a specific Sage tenant ID (optional).
halo_list_xero_details parameters
Param Type Required Default Description
connectedOnly boolean no null Return only currently-connected records (optional).
tenantId string no null Filter to a specific Xero tenant ID (optional).

MCP & AI

Tool Plan Access Description
halo_create_mcp_connection Pro Destructive [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.
halo_create_pii_detection Pro Destructive [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.
halo_delete_mcp_connection Pro Destructive [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.
halo_get_mcp_connection Free Read-only [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.
halo_get_pii_detection Free Read-only [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.
halo_get_virtual_agent_mcp Free Read-only [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.
halo_link_virtual_agent_mcp Pro Destructive [HaloPSA] Link MCP (Model Context Protocol) capabilities to a virtual agent. This enables the MCP connection for the given virtual agent. Requires the virtual agent's UUID.
halo_list_mcp_connections Free Read-only [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.
halo_list_pii_detections Free Read-only [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.
halo_unlink_virtual_agent_mcp Pro Destructive [HaloPSA] Unlink MCP (Model Context Protocol) capabilities from a virtual agent. This removes the MCP connection for the given virtual agent — it cannot be undone. Requires the virtual agent's UUID.
halo_create_mcp_connection parameters
Param Type Required Default Description
bodyJson string yes The raw HaloPSA JSON object for the MCP connection record (e.g. {"name": "My MCP Connection", ...}). Field names must match HaloPSA API field names.
halo_create_pii_detection parameters
Param Type Required Default Description
bodyJson string yes The raw HaloPSA JSON object for the PII detection record (e.g. {"name": "Credit Card Numbers", ...}). Field names must match HaloPSA API field names.
halo_delete_mcp_connection parameters
Param Type Required Default Description
id integer yes The numeric HaloPSA MCP connection ID to delete. Use halo_list_mcp_connections to find valid IDs.
halo_get_mcp_connection parameters
Param Type Required Default Description
id integer yes The numeric HaloPSA MCP connection ID. Use halo_list_mcp_connections to find valid IDs.
halo_get_pii_detection parameters
Param Type Required Default Description
id integer yes The numeric HaloPSA PII detection ID. Use halo_list_pii_detections to find valid IDs.
halo_get_virtual_agent_mcp parameters
Param Type Required Default Description
virtualAgentId string yes The HaloPSA virtual agent ID (a UUID/GUID string).
halo_link_virtual_agent_mcp parameters
Param Type Required Default Description
virtualAgentId string yes The HaloPSA virtual agent ID (a UUID/GUID string) to link MCP to.
halo_unlink_virtual_agent_mcp parameters
Param Type Required Default Description
virtualAgentId string yes The HaloPSA virtual agent ID (a UUID/GUID string) to unlink MCP from.

Integration Diagnostics

Tool Plan Access Description
halo_create_integration_cursor Pro Destructive [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.
halo_create_intermedia_detail Pro Destructive [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.
halo_create_sftp_detail Pro Destructive [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.
halo_delete_integration_cursor Pro Destructive [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.
halo_delete_intermedia_detail Pro Destructive [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.
halo_delete_sftp_detail Pro Destructive [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.
halo_get_cluster Free Read-only [HaloPSA] Retrieve a single cluster by numeric ID. Use halo_list_clusters to find IDs.
halo_get_integration_cursor Free Read-only [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.
halo_get_intermedia_detail Free Read-only [HaloPSA] Retrieve a single Intermedia connection detail by numeric ID. Use halo_list_intermedia_details to find IDs.
halo_get_periodic_history Free Read-only [HaloPSA] Retrieve periodic (recurring) invoice/billing history. Returns the run history for Halo's periodic invoicing processes — useful for diagnosing recurring-billing generation issues.
halo_get_sftp_detail Free Read-only [HaloPSA] Retrieve a single SFTP connection detail by numeric ID. Use halo_list_sftp_details to find IDs.
halo_list_clusters Free Read-only [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.
halo_list_integration_cursors Free Read-only [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.
halo_list_intermedia_details Free Read-only [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.
halo_list_sftp_details Free Read-only [HaloPSA] List configured SFTP connection details used by Halo integrations and imports. Useful for diagnosing file-based integration sync issues.
halo_create_integration_cursor parameters
Param Type Required Default Description
bodyJson string yes JSON object describing the integration cursor to create or update.
halo_create_intermedia_detail parameters
Param Type Required Default Description
bodyJson string yes JSON object describing the Intermedia detail to create or update.
halo_create_sftp_detail parameters
Param Type Required Default Description
bodyJson string yes JSON object describing the SFTP detail to create or update.
halo_delete_integration_cursor parameters
Param Type Required Default Description
id integer yes Numeric ID of the integration cursor to delete.
halo_delete_intermedia_detail parameters
Param Type Required Default Description
id integer yes Numeric ID of the Intermedia detail to delete.
halo_delete_sftp_detail parameters
Param Type Required Default Description
id integer yes Numeric ID of the SFTP detail to delete.
halo_get_cluster parameters
Param Type Required Default Description
id integer yes Numeric ID of the cluster to retrieve.
halo_get_integration_cursor parameters
Param Type Required Default Description
id integer yes Numeric ID of the integration cursor to retrieve.
halo_get_intermedia_detail parameters
Param Type Required Default Description
id integer yes Numeric ID of the Intermedia detail to retrieve.
halo_get_sftp_detail parameters
Param Type Required Default Description
id integer yes Numeric ID of the SFTP detail to retrieve.

Invoice & Order Extras

Tool Plan Access Description
halo_create_invoice_status Pro Destructive [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"}
halo_delete_invoice_status Pro Destructive [HaloPSA] Delete an invoice status by numeric ID. This permanently removes the status definition. Use halo_list_invoice_statuses to find valid IDs.
halo_expire_client_prepay Pro Destructive [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.
halo_get_invoice_status Free Read-only [HaloPSA] Retrieve a single invoice status by numeric ID. Returns the full status definition. Use halo_list_invoice_statuses to find valid IDs.
halo_list_invoice_statuses Free Read-only [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.
halo_register_invoice_view Pro Write [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.
halo_register_kb_article_view Pro Write [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.
halo_register_purchase_order_view Pro Write [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.
halo_register_sales_order_view Pro Write [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.
halo_review_expense Pro Destructive [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.
halo_update_invoice_lines Pro Destructive [HaloPSA] Update one or more invoice line items in bulk. Provide a JSON array of invoice line objects. Each object should carry the line's ID and the fields to change. Returns the updated lines.
halo_update_sales_order_lines Pro Destructive [HaloPSA] Update one or more sales order line items in bulk. Provide a JSON array of sales order line objects. Each object should carry the line's ID and the fields to change. Returns the updated lines.
halo_create_invoice_status parameters
Param Type Required Default Description
bodyJson string yes JSON object describing the invoice status to create. Required: name. Example: {"name": "Awaiting Payment"}
halo_delete_invoice_status parameters
Param Type Required Default Description
id integer yes The numeric HaloPSA invoice status ID to delete. Use halo_list_invoice_statuses to find valid IDs.
halo_expire_client_prepay parameters
Param Type Required Default Description
confirmation string yes To authorize this expiry, set this to exactly "EXPIRE CLIENT PREPAY".
prepayJson string yes JSON array of client prepay objects to expire. Each object should include the prepay ID. Example: [{"id": 7}]
halo_get_invoice_status parameters
Param Type Required Default Description
id integer yes The numeric HaloPSA invoice status ID. Use halo_list_invoice_statuses to find valid IDs.
halo_register_invoice_view parameters
Param Type Required Default Description
bodyJson string yes JSON object describing the invoice view to record. Typically includes the invoice ID and viewer details. Example: {"invoice_id": 1234}
halo_register_kb_article_view parameters
Param Type Required Default Description
bodyJson string yes JSON object describing the KB article view to record. Typically includes the article ID and viewer details. Example: {"kbarticle_id": 88}
halo_register_purchase_order_view parameters
Param Type Required Default Description
bodyJson string yes JSON object describing the purchase order view to record. Typically includes the purchase order ID and viewer details. Example: {"purchaseorder_id": 42}
halo_register_sales_order_view parameters
Param Type Required Default Description
bodyJson string yes JSON object describing the sales order view to record. Typically includes the sales order ID and viewer details. Example: {"salesorder_id": 55}
halo_review_expense parameters
Param Type Required Default Description
confirmation string yes To authorize this review, set this to exactly "REVIEW EXPENSE".
expensesJson string yes JSON array of expense objects to mark as reviewed. Each object should include the expense ID. Example: [{"id": 12}]
halo_update_invoice_lines parameters
Param Type Required Default Description
linesJson string yes JSON array of invoice line objects to update. Each object should include the line ID and the fields to change. Example: [{"id": 101, "quantity": 3, "unit_price": 49.99}]
halo_update_sales_order_lines parameters
Param Type Required Default Description
linesJson string yes JSON array of sales order line objects to update. Each object should include the line ID and the fields to change. Example: [{"id": 55, "quantity": 2, "unit_price": 199.99}]

CRM & Service Extras

Tool Plan Access Description
halo_create_crm_note_reply Pro Write [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.
halo_create_service Pro Write [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.
halo_delete_crm_note_reply Pro Destructive [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.
halo_delete_service Pro Destructive [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.
halo_get_crm_note_reply Free Read-only [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.
halo_get_security_question_call Free Read-only [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.
halo_list_crm_note_replies Free Read-only [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.
halo_list_milestones Free Read-only [HaloPSA] List project milestones. Returns milestone entries including ID, name, target date, and linked project. Use this to review project schedules and delivery checkpoints.
halo_list_users_onbehalf Free Read-only [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.
halo_unsubscribe_service Pro Destructive [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.
halo_validate_security_question Pro Write [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.
halo_validate_security_question_call Pro Write [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.
halo_create_crm_note_reply parameters
Param Type Required Default Description
bodyJson string yes JSON 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"}
halo_create_service parameters
Param Type Required Default Description
bodyJson string yes JSON object with service fields. Typically requires name and may include description, status, and category. Example: {"name": "Email Hosting", "description": "Hosted Exchange service"}
halo_delete_crm_note_reply parameters
Param Type Required Default Description
id integer yes The numeric HaloPSA CRM note reply ID to delete. Use halo_list_crm_note_replies to find valid IDs.
halo_delete_service parameters
Param Type Required Default Description
id integer yes The numeric HaloPSA service ID to delete.
halo_get_crm_note_reply parameters
Param Type Required Default Description
id integer yes The numeric HaloPSA CRM note reply ID. Use halo_list_crm_note_replies to find valid IDs.
halo_get_security_question_call parameters
Param Type Required Default Description
id integer yes The numeric HaloPSA call/ticket ID to fetch the security question for.
halo_unsubscribe_service parameters
Param Type Required Default Description
serviceId integer yes The numeric HaloPSA service ID to unsubscribe from.
halo_validate_security_question parameters
Param Type Required Default Description
bodyJson string yes JSON object with the security-question validation payload, including the user identity and the answer. Example: {"user_id": 42, "answer": "Fluffy"}
halo_validate_security_question_call parameters
Param Type Required Default Description
bodyJson string yes JSON 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)

Tool Plan Access Description
halo_get_atera_data Free Read-only [HaloPSA] Retrieve Atera data from Halo's connected Atera integration.
halo_get_autotask_data Free Read-only [HaloPSA] Retrieve Autotask data from Halo's connected Autotask integration.
halo_get_barracuda_data Free Read-only [HaloPSA] Retrieve Barracuda data from Halo's connected Barracuda integration.
halo_get_connectwise_control_data Free Read-only [HaloPSA] Retrieve ConnectWise Control data from Halo's connected ConnectWise Control integration.
halo_get_connectwise_rmm_data Free Read-only [HaloPSA] Retrieve ConnectWise RMM data from Halo's connected ConnectWise RMM integration.
halo_get_datto_commerce_data Free Read-only [HaloPSA] Retrieve Datto Commerce data from Halo's connected Datto Commerce integration.
halo_get_device42_data Free Read-only [HaloPSA] Retrieve Device42 data from Halo's connected Device42 integration.
halo_get_devops_data Free Read-only [HaloPSA] Retrieve Azure DevOps data from Halo's connected Azure DevOps integration.
halo_get_dynamics_crm_data Free Read-only [HaloPSA] Retrieve Dynamics CRM data from Halo's connected Dynamics CRM integration.
halo_get_freshdesk_data Free Read-only [HaloPSA] Retrieve Freshdesk data from Halo's connected Freshdesk integration.
halo_get_google_calendars_data Free Read-only [HaloPSA] Retrieve Google Calendars data from Halo's connected Google Calendars integration.
halo_get_google_workplace_data Free Read-only [HaloPSA] Retrieve Google Workplace data from Halo's connected Google Workplace integration.
halo_get_gotoassist_data Free Read-only [HaloPSA] Retrieve GoToAssist data from Halo's connected GoToAssist integration.
halo_get_hubspot_data Free Read-only [HaloPSA] Retrieve HubSpot data from Halo's connected HubSpot integration.
halo_get_jamf_data Free Read-only [HaloPSA] Retrieve Jamf data from Halo's connected Jamf integration.
halo_get_jira_data Free Read-only [HaloPSA] Retrieve Jira data from Halo's connected Jira integration.
halo_get_jira_service_management_data Free Read-only [HaloPSA] Retrieve Jira Service Management data from Halo's connected Jira Service Management integration.
halo_get_lansweeper_data Free Read-only [HaloPSA] Retrieve Lansweeper data from Halo's connected Lansweeper integration.
halo_get_logicmonitor_data Free Read-only [HaloPSA] Retrieve LogicMonitor data from Halo's connected LogicMonitor integration.
halo_get_meraki_data Free Read-only [HaloPSA] Retrieve Meraki data from Halo's connected Meraki integration.
halo_get_ninja_rmm_data Free Read-only [HaloPSA] Retrieve NinjaRMM data from Halo's connected NinjaRMM integration.
halo_get_okta_data Free Read-only [HaloPSA] Retrieve Okta data from Halo's connected Okta integration.
halo_get_pagerduty_data Free Read-only [HaloPSA] Retrieve PagerDuty data from Halo's connected PagerDuty integration.
halo_get_passportal_data Free Read-only [HaloPSA] Retrieve Passportal data from Halo's connected Passportal integration.
halo_get_qualys_data Free Read-only [HaloPSA] Retrieve Qualys data from Halo's connected Qualys integration.
halo_get_salesforce_data Free Read-only [HaloPSA] Retrieve Salesforce data from Halo's connected Salesforce integration.
halo_get_servicenow_data Free Read-only [HaloPSA] Retrieve ServiceNow data from Halo's connected ServiceNow integration.
halo_get_servicenow_integration_data Free Read-only [HaloPSA] Retrieve ServiceNow Integration data from Halo's connected ServiceNow Integration integration.
halo_get_shopify_data Free Read-only [HaloPSA] Retrieve Shopify data from Halo's connected Shopify integration.
halo_get_slack_data Free Read-only [HaloPSA] Retrieve Slack data from Halo's connected Slack integration.
halo_get_snow_data Free Read-only [HaloPSA] Retrieve Snow data from Halo's connected Snow integration.
halo_get_splashtop_data Free Read-only [HaloPSA] Retrieve Splashtop data from Halo's connected Splashtop integration.
halo_get_splunk_oncall_data Free Read-only [HaloPSA] Retrieve Splunk On-Call data from Halo's connected Splunk On-Call integration.
halo_get_syncro_data Free Read-only [HaloPSA] Retrieve Syncro data from Halo's connected Syncro integration.
halo_get_tanium_data Free Read-only [HaloPSA] Retrieve Tanium data from Halo's connected Tanium integration.
halo_get_zabbix_data Free Read-only [HaloPSA] Retrieve Zabbix data from Halo's connected Zabbix integration.

Integration Sync

Tool Plan Access Description
halo_adjust_csp_quantity Pro Destructive [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.
halo_adjust_pax8_quantity Pro Destructive [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.
halo_clear_csp_licence_cache Pro Write [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.
halo_import_business_central Pro 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.
halo_import_exact_online Pro Destructive [HaloPSA] Trigger an import sync against the connected Exact Online accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_import_fortnox Pro Destructive [HaloPSA] Trigger an import sync against the connected Fortnox accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_import_intacct Pro Destructive [HaloPSA] Trigger an import sync against the connected Sage Intacct accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_import_kashflow Pro Destructive [HaloPSA] Trigger an import sync against the connected KashFlow accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_import_myob Pro Destructive [HaloPSA] Trigger an import sync against the connected MYOB accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_import_quickbooks_online Pro Destructive [HaloPSA] Trigger an import sync against the connected QuickBooks Online accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_import_sage_business_cloud Pro Destructive [HaloPSA] Trigger an import sync against the connected Sage Business Cloud accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_import_snelstart Pro Destructive [HaloPSA] Trigger an import sync against the connected SnelStart accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_import_xero Pro Destructive [HaloPSA] Trigger an import sync against the connected Xero accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_send_xero_invoice Pro Destructive [HaloPSA] Push an invoice to the connected Xero accounting integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_stripe_create_payment_intent Pro Destructive [HaloPSA] Create a Stripe PaymentIntent via Halo's connected Stripe payments integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_stripe_create_portal_session Pro Destructive [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.
halo_stripe_create_setup_intent Pro Destructive [HaloPSA] Create a Stripe SetupIntent via Halo's connected Stripe payments integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_stripe_create_webhook Pro Destructive [HaloPSA] Create a Stripe webhook endpoint via Halo's connected Stripe payments integration. WARNING: irreversibly syncs data to/from the external accounting system.
halo_stripe_update_invoice_payment Pro Destructive [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.
halo_adjust_csp_quantity parameters
Param Type Required Default Description
confirmation string yes Confirmation guard. Must equal exactly "ADJUST CSP QUANTITY".
currentQuantity integer yes Current seat quantity (for optimistic-concurrency checks upstream).
licenceId integer yes Halo licence ID to adjust.
newQuantity integer yes New seat quantity to apply.
halo_adjust_pax8_quantity parameters
Param Type Required Default Description
confirmation string yes Confirmation guard. Must equal exactly "ADJUST PAX8 QUANTITY".
currentQuantity integer yes Current seat quantity (for optimistic-concurrency checks upstream).
licenceId integer yes Halo licence ID to adjust.
newQuantity integer yes New seat quantity to apply.
halo_import_business_central parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (array) for the import.
confirmation string yes Confirmation guard. Must equal exactly "SYNC BUSINESS CENTRAL".
halo_import_exact_online parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (array) for the import.
confirmation string yes Confirmation guard. Must equal exactly "SYNC EXACT ONLINE".
halo_import_fortnox parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (array) for the import.
confirmation string yes Confirmation guard. Must equal exactly "SYNC FORTNOX".
halo_import_intacct parameters
Param Type Required Default Description
confirmation string yes Confirmation guard. Must equal exactly "SYNC INTACCT".
datatype string no null Optional Sage Intacct data type to scope the import.
locId string no null Optional Sage Intacct location ID to scope the import.
halo_import_kashflow parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (array) for the import.
confirmation string yes Confirmation guard. Must equal exactly "SYNC KASHFLOW".
halo_import_myob parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (array) for the import.
confirmation string yes Confirmation guard. Must equal exactly "SYNC MYOB".
halo_import_quickbooks_online parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (array) for the import.
confirmation string yes Confirmation guard. Must equal exactly "SYNC QUICKBOOKS".
halo_import_sage_business_cloud parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (array) for the import.
confirmation string yes Confirmation guard. Must equal exactly "SYNC SAGE".
halo_import_snelstart parameters
Param Type Required Default Description
confirmation string yes Confirmation guard. Must equal exactly "SYNC SNELSTART".
halo_import_xero parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (array) for the import.
confirmation string yes Confirmation guard. Must equal exactly "SYNC XERO".
halo_send_xero_invoice parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (object) describing the invoice to send.
confirmation string yes Confirmation guard. Must equal exactly "SEND XERO INVOICE".
halo_stripe_create_payment_intent parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (object) for the Stripe PaymentIntent creation.
confirmation string yes Confirmation guard. Must equal exactly "STRIPE CREATE PAYMENT INTENT".
halo_stripe_create_portal_session parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (object) for the Stripe portal session creation.
confirmation string yes Confirmation guard. Must equal exactly "STRIPE CREATE PORTAL SESSION".
halo_stripe_create_setup_intent parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (object) for the Stripe SetupIntent creation.
confirmation string yes Confirmation guard. Must equal exactly "STRIPE CREATE SETUP INTENT".
halo_stripe_create_webhook parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (object) for the Stripe webhook creation.
confirmation string yes Confirmation guard. Must equal exactly "STRIPE CREATE WEBHOOK".
halo_stripe_update_invoice_payment parameters
Param Type Required Default Description
bodyJson string yes Raw Halo JSON body (object) for the Stripe invoice payment update.
confirmation string yes Confirmation guard. Must equal exactly "STRIPE UPDATE INVOICE PAYMENT".

Standard Request Templates

Tool Plan Access Description
halo_create_template Pro Write [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.
halo_delete_template Pro Destructive [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.
halo_get_template Free Read-only [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.
halo_list_templates Free Read-only [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.
halo_create_template parameters
Param Type Required Default Description
templateJson string yes JSON 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.
halo_delete_template parameters
Param Type Required Default Description
templateId integer yes The numeric HaloPSA template ID to delete. Use halo_list_templates to find valid IDs. Verify the template with halo_get_template before deleting.
halo_get_template parameters
Param Type Required Default Description
templateId integer yes The numeric HaloPSA template ID. Use halo_list_templates to find valid IDs.
halo_list_templates parameters
Param Type Required Default Description
clientId integer no null Filter by client ID to see templates available for a specific client (optional).
domain string no null Filter by domain (e.g. 'tickets', 'projects') to see templates for a specific entity type (optional).
pageNo integer no 1 Page number for pagination (default 1).
pageSize integer no 50 Number of results per page (default 50, max 200).
search string no null Search text to filter templates by name (optional).
ticketTypeId integer no null Filter by ticket type ID (optional). Use halo_list_ticket_types to find valid IDs.

Call Scripts

Tool Plan Access Description
halo_get_call_script Free Read-only [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.
halo_list_call_scripts Free Read-only [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.
halo_get_call_script parameters
Param Type Required Default Description
scriptId integer yes The numeric HaloPSA call script ID. Use halo_list_call_scripts to find valid IDs.

Live Chat

Tool Plan Access Description
halo_get_chat Free Read-only [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.
halo_get_chat_profile Free Read-only [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.
halo_list_chat_messages Free Read-only [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.
halo_list_chat_profiles Free Read-only [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.
halo_list_chats Free Read-only [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.
halo_send_chat_message Pro Write [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.
halo_get_chat parameters
Param Type Required Default Description
chatId integer yes The numeric HaloPSA chat session ID. Use halo_list_chats to find valid IDs.
halo_get_chat_profile parameters
Param Type Required Default Description
profileId integer yes The numeric HaloPSA chat profile ID. Use halo_list_chat_profiles to find valid IDs.
halo_list_chat_messages parameters
Param Type Required Default Description
chatId integer yes The numeric HaloPSA chat session ID to retrieve messages for. Use halo_list_chats to find valid IDs.
lastId integer no null Only return messages with ID greater than this value (optional). Use for polling new messages since last check.
halo_list_chats parameters
Param Type Required Default Description
chatProfileId integer no null Filter by chat profile ID (optional). Use halo_list_chat_profiles to find valid IDs.
ignoreAllClosed boolean no null When true, exclude all closed/ended chat sessions from results (optional).
halo_send_chat_message parameters
Param Type Required Default Description
messageJson string yes JSON 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

Tool Plan Access Description
halo_create_remote_session Pro Write [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.
halo_get_remote_session Free Read-only [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.
halo_list_remote_session_teams Free Read-only [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.
halo_list_remote_sessions Free Read-only [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.
halo_create_remote_session parameters
Param Type Required Default Description
sessionJson string yes JSON object representing the remote session to create. Example: {"ticket_id": 100, "agent_id": 5, "type": 1}. Field names must match HaloPSA API field names.
halo_get_remote_session parameters
Param Type Required Default Description
sessionId integer yes The numeric HaloPSA remote session ID. Use halo_list_remote_sessions to find valid IDs.
halo_list_remote_sessions parameters
Param Type Required Default Description
agentId integer no null Filter by agent ID to see sessions for a specific technician (optional). Use halo_list_agents to find valid IDs.
clientId integer no null Filter by client ID to see sessions for a specific customer (optional). Use halo_list_clients to find valid IDs.

Approval Processes

Tool Plan Access Description
halo_create_approval_process Pro Write [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.
halo_create_approval_rule Pro Write [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.
halo_get_approval_process Free Read-only [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.
halo_list_approval_processes Free Read-only [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.
halo_list_approval_rules Free Read-only [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.
halo_create_approval_process parameters
Param Type Required Default Description
processJson string yes JSON object representing the approval process to create. Example: {"name": "Change Approval", "type": 1}. Field names must match HaloPSA API field names.
halo_create_approval_rule parameters
Param Type Required Default Description
ruleJson string yes JSON 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.
halo_get_approval_process parameters
Param Type Required Default Description
processId integer yes The numeric HaloPSA approval process ID. Use halo_list_approval_processes to find valid IDs.
halo_list_approval_rules parameters
Param Type Required Default Description
processId integer no null Filter by approval process ID (optional). Use halo_list_approval_processes to find valid IDs.

Saved Views

Tool Plan Access Description
halo_get_view Free Read-only [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.
halo_list_view_columns Free Read-only [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.
halo_list_view_filters Free Read-only [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.
halo_list_views Free Read-only [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.
halo_get_view parameters
Param Type Required Default Description
viewId integer yes The numeric HaloPSA view ID. Use halo_list_views to find valid IDs.
halo_list_view_columns parameters
Param Type Required Default Description
domain string no null Filter by domain (e.g. 'tickets', 'assets', 'projects') to see columns for a specific entity type (optional).
halo_list_view_filters parameters
Param Type Required Default Description
domain string no null Filter by domain (e.g. 'tickets', 'assets', 'projects') to see filters for a specific entity type (optional).
halo_list_views parameters
Param Type Required Default Description
domain string no null Filter by domain (e.g. 'tickets', 'assets', 'projects') to see views for a specific entity type (optional).
globalOnly boolean no null When true, only return global (shared) views, excluding personal views (optional).

PowerShell Scripts

Tool Plan Access Description
halo_create_script Pro Write [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.
halo_get_script Free Read-only [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.
halo_list_script_executions Free Read-only [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.
halo_list_scripts Free Read-only [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.
halo_create_script parameters
Param Type Required Default Description
scriptJson string yes JSON 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.
halo_get_script parameters
Param Type Required Default Description
scriptId integer yes The numeric HaloPSA PowerShell script ID. Use halo_list_scripts to find valid IDs.
halo_list_script_executions parameters
Param Type Required Default Description
scriptId integer no null Filter by PowerShell script ID to see executions for a specific script (optional). Use halo_list_scripts to find valid IDs.

Call Logs

Tool Plan Access Description
halo_create_call_log Pro Write [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.
halo_list_call_logs Free Read-only [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.
halo_create_call_log parameters
Param Type Required Default Description
callLogJson string yes JSON 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.
halo_list_call_logs parameters
Param Type Required Default Description
showAll boolean no null When true, show all call logs including those not linked to tickets (optional, default false).
Tool Plan Access Description
halo_create_external_link Pro Write [HaloPSA] Create a new external link on a Halo entity. Returns the created link with its assigned ID. The JSON should include the target URL, label, and associated Halo entity. Use this to connect Halo records to external resources like documentation, dashboards, or third-party tools.
halo_generate_external_link Pro Write [HaloPSA] Generate a shareable external link (portal link or guest access URL) for a Halo entity. Returns the generated URL. Use this to create links that can be shared with end users to view tickets, approve changes, or access other Halo resources without requiring a Halo login.
halo_list_external_links Free Read-only [HaloPSA] List external links associated with Halo entities. Returns link IDs, URLs, labels, and associated entity references. External links connect Halo records to resources in other systems. Optionally filter by module or Halo entity ID.
halo_create_external_link parameters
Param Type Required Default Description
linkJson string yes JSON object representing the external link to create. Example: {"url": "https://example.com/doc", "label": "Setup Guide", "module_id": 1, "halo_id": 100}. Field names must match HaloPSA API field names.
halo_generate_external_link parameters
Param Type Required Default Description
requestJson string yes JSON object specifying what to generate a link for. Example: {"module_id": 1, "halo_id": 100, "type": "portal"}. Field names must match HaloPSA API field names.
halo_list_external_links parameters
Param Type Required Default Description
haloId integer no null Filter by Halo entity ID to see links for a specific record (optional).
moduleId integer no null Filter by module ID to see links for a specific entity type (optional).

FAQ Lists

Tool Plan Access Description
halo_get_faq_list Free Read-only [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.
halo_list_faq_lists Free Read-only [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.
halo_get_faq_list parameters
Param Type Required Default Description
faqListId integer yes The numeric HaloPSA FAQ list ID. Use halo_list_faq_lists to find valid IDs.
halo_list_faq_lists parameters
Param Type Required Default Description
parentId integer no null Filter by parent FAQ list ID to see child lists (optional). Omit to see top-level lists.
type integer no null Filter by FAQ list type (optional).
Tool Plan Access Description
halo_list_popup_notes Free Read-only [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.
halo_mark_popup_read Pro Write [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.
halo_list_popup_notes parameters
Param Type Required Default Description
clientId integer no null Filter by client ID to see popup notes for a specific customer (optional). Use halo_list_clients to find valid IDs.
siteId integer no null Filter by site ID to see popup notes for a specific site (optional). Use halo_list_sites to find valid IDs.
userId integer no null Filter by user ID to see popup notes for a specific user (optional). Use halo_list_users to find valid IDs.
halo_mark_popup_read parameters
Param Type Required Default Description
requestJson string yes JSON 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.
Tool Plan Access Description
halo_create_secure_link Pro Write [HaloPSA] Create a new secure secret link for sharing sensitive information. Returns the created link with its unique token URL. The secret is encrypted and the link auto-expires after being viewed or after the specified time. The JSON should include the secret content and optional passphrase/expiry settings.
halo_list_secure_links Free Read-only [HaloPSA] List secure secret links (one-time-use password/secret sharing URLs). Returns link IDs, creation dates, expiry status, and whether the secret has been viewed. Secure links allow sharing sensitive information (passwords, keys) that auto-expire after being accessed. Use this to audit or manage secure links.
halo_validate_secure_link Free Read-only [HaloPSA] Validate a secure secret link token and retrieve the secret if valid. Returns the decrypted secret content if the token is valid and has not expired. If the link requires a passphrase, provide it. Note: accessing the secret may consume the one-time link depending on the link configuration.
halo_create_secure_link parameters
Param Type Required Default Description
linkJson string yes JSON object representing the secure link to create. Example: {"secret": "P@ssw0rd123", "passphrase": "optional-extra-security", "expiry_hours": 24}. Field names must match HaloPSA API field names.
halo_validate_secure_link parameters
Param Type Required Default Description
passphrase string no null Passphrase to decrypt the secret (optional). Required only if the link was created with a passphrase.
token string yes The secure link token string (from the link URL). This is the unique identifier for the shared secret.

Cross-Domain

Tool Plan Access Description
halo_bulk_status_summary Pro Read-only [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).
halo_client_financial_summary Pro Read-only [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. Note: Makes 5 API calls internally (parallel).
halo_entity_relationship_map Pro Read-only [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).
halo_queue_health_dashboard Pro Read-only [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).
halo_technician_dashboard Pro Read-only [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).
halo_weekly_operations_report Pro Read-only [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).
halo_bulk_status_summary parameters
Param Type Required Default Description
clientId integer no null Filter by client ID (optional). Omit for organization-wide counts.
halo_client_financial_summary parameters
Param Type Required Default Description
clientId integer yes Client ID to summarize. Use halo_list_clients or halo_search_clients to find valid IDs.
endDate string no null End date in yyyy-MM-dd format (optional). Defaults to today.
startDate string no null Start date in yyyy-MM-dd format (optional). Defaults to 6 months ago.
halo_entity_relationship_map parameters
Param Type Required Default Description
clientId integer yes Client ID to map relationships for. Use halo_list_clients or halo_search_clients to find valid IDs.
halo_queue_health_dashboard parameters
Param Type Required Default Description
teamId integer yes Team ID to analyze. Use halo_list_teams to find valid team IDs.
halo_technician_dashboard parameters
Param Type Required Default Description
agentId integer yes Agent ID to build dashboard for. Use halo_list_agents or halo_search_agents to find valid IDs.