---
title: HaloITSM API Integration on Truto
slug: haloitsm
category: Helpdesk
canonical: "https://truto.one/integrations/detail/haloitsm/"
---

# HaloITSM API Integration on Truto



**Category:** Helpdesk  
**Status:** Generally available

## Unified APIs

### Unified User Directory API

- **Groups** — Groups are a collection of users in the source application. In some applications, they might also be called Teams.
- **Users** — The User object represents a User.

## MCP-ready AI tools

Truto exposes 84 tools for HaloITSM that AI agents can call directly.

- **list_all_haloitsm_users** — List users in HaloITSM. Returns count and an array of user objects with key details such as name, email, and status.
- **get_single_haloitsm_user_by_id** — Get details of a specific user in HaloITSM using id. Returns fields such as id, name, emailaddress, site_name, department, and related contact information.
- **create_a_haloitsm_user** — Create or update one or more users in HaloITSM. If id is included, the user record is updated; if not, a new user is created. Returns key user fields including id, name, emailaddress, site_name, department, and lastlogindate.
- **delete_a_haloitsm_user_by_id** — Delete a user in HaloITSM using id. Also removes related objects associated with the specified user. Returns status 200 upon successful deletion.
- **list_all_haloitsm_teams** — List teams in HaloITSM. Returns an array of teams with key details such as team name, type, and membership-related information.
- **get_single_haloitsm_team_by_id** — Get details of a specific team in HaloITSM using id. Returns fields such as id, name, department_name, inactive, emailaddress, and agents.
- **create_a_haloitsm_team** — Create or update one or more teams in HaloITSM. If id is provided, updates the existing team; otherwise, creates a new team. Returns id, name, department_id, and other team configuration details in the response.
- **delete_a_haloitsm_team_by_id** — Delete a team in HaloITSM by id. Removes the team and related objects. Returns a success confirmation in the response.
- **list_all_haloitsm_actions** — List actions in HaloITSM. Returns count of actions and array of action objects. Requires no parameters.
- **get_single_haloitsm_action_by_id** — Get details of a specific action in HaloITSM using id and ticket_id. Returns key fields describing the action, such as identifiers, metadata, and related ticket information.
- **create_a_haloitsm_action** — Create or update one or more actions in HaloITSM. If id is provided, updates the action; otherwise creates a new one. Requires ticket_id. Returns action details including id, ticket_id, outcome, datetime, and action status fields.
- **delete_a_haloitsm_action_by_id** — Delete an action in HaloITSM using ticket_id and id. Removes the action and related objects. Returns status confirming deletion.
- **list_all_haloitsm_agents** — List all agents in HaloITSM. Returns an array of agent objects including key fields such as name, email, and role.
- **get_single_haloitsm_agent_by_id** — Get details about a specific agent in HaloITSM using id. Returns key agent fields such as name, email, status, and role information.
- **create_a_haloitsm_agent** — Create or update one or more agents in HaloITSM. If id is included, the agent is updated; if not, a new agent is created. Returns key agent details such as id, name, email, and status in the response.
- **delete_a_haloitsm_agent_by_id** — Delete an agent in HaloITSM using id. Removes the agent and all related objects. Requires id.
- **list_all_haloitsm_appointments** — List appointments in HaloITSM. Returns an array of appointments including key fields such as appointment details, assigned agents, dates, and related entities.
- **get_single_haloitsm_appointment_by_id** — Get a specific appointment in HaloITSM using id. Returns key fields such as id, subject, confirmed, start_date, end_date, agent_name, client_name, and status.
- **create_a_haloitsm_appointment** — Create or update one or more appointments in HaloITSM. If id is included, the appointment is updated. If not, a new appointment is created. Returns appointment details including updated or newly created records.
- **delete_a_haloitsm_appointment_by_id** — Delete an appointment in HaloITSM by id. Requires id. Deletes the appointment and all related objects. Returns a success status upon completion.
- **list_all_haloitsm_assets** — List assets in HaloITSM. Returns record_count, page_no, page_size, and an array of asset objects with key fields such as id, inventory_number, client_id, site_id, and assettype_id.
- **get_single_haloitsm_asset_by_id** — Get a specific asset in HaloITSM by id. Returns key details such as id, inventory_number, client_name, assettype_name, warranty dates, and related counts.
- **create_a_haloitsm_asset** — Create or update one or more assets in HaloITSM. If id is included in the request, the asset is updated; if omitted, a new asset is created. Returns an array of created or updated asset details in the response.
- **delete_a_haloitsm_asset_by_id** — Delete an asset in HaloITSM using the specified id. This operation removes the asset and its related objects. Returns confirmation of deletion.
- **list_all_haloitsm_clients** — List clients in HaloITSM. Returns count and an array of client objects including id, name, colour, inactive, toplevel_id, toplevel_name, and customfields.
- **get_single_haloitsm_client_by_id** — Get details about a specific client in HaloITSM using id. Returns fields such as id, name, inactive status, colour, customfields, notes, invoice settings, contact details, and statistics including ticket counts.
- **create_a_haloitsm_client** — Create or update one or more clients in HaloITSM. If id is included, the client is updated; if id is not included, a new client is created. Returns details of the updated or newly created clients in the response.
- **delete_a_haloitsm_client_by_id** — Delete a specific client in HaloITSM with the given id. Deletes the client and related objects. Returns status 200 upon successful deletion.
- **list_all_haloitsm_contracts** — List contracts in HaloITSM. Returns contract details such as contract identifiers, associated client information, and contract attributes.
- **get_single_haloitsm_contract_by_id** — Get details of a specific contract in HaloITSM using id. Returns key fields such as client_name, ref, start_date, end_date, status, and billing details for the contract.
- **create_a_haloitsm_contract** — Create or update one or more contracts in HaloITSM. If id is included, updates the existing record; if not, creates a new one. Returns contract details including key fields like id and name.
- **delete_a_haloitsm_contract_by_id** — Delete a contract in HaloITSM by id. Removes the contract and all related objects associated with the specified id. Returns confirmation of deletion in the response.
- **list_all_haloitsm_invoices** — List invoices in HaloITSM. Returns count and an array of invoice objects. Each invoice includes key fields such as id, client_id, invoicenumber, name, invoice_date, amountdue, and invoicevalue.
- **get_single_haloitsm_invoice_by_id** — Get a specific invoice in HaloITSM using id. Returns detailed invoice information including key fields describing the invoice record.
- **create_a_haloitsm_invoice** — Create or update one or more invoices in HaloITSM. If id is included, the invoice is updated; otherwise, a new invoice is created. Returns details of the created or updated invoices in the response.
- **delete_a_haloitsm_invoice_by_id** — Delete an invoice in HaloITSM with the specified id. The response confirms successful deletion of the invoice and its related objects.
- **list_all_haloitsm_items** — List items in HaloITSM. Returns record_count and an array of item objects including key fields like id, name, status, assetgroup_name, quantity_on_order, and pricing details.
- **get_single_haloitsm_item_by_id** — Get details for a specific item in HaloITSM using id. Returns key item fields in the response root object.
- **create_a_haloitsm_item** — Create or update one or more items in HaloITSM. If id is included, updates the existing item; otherwise, creates a new item. Returns root array with item details including id and update status.
- **delete_a_haloitsm_item_by_id** — Delete an item in HaloITSM by id. Requires id. The response confirms deletion of the item and related objects.
- **list_all_haloitsm_knowledge_base** — List all knowledge-base articles in HaloITSM. Returns an array of articles with key fields containing article metadata and content details.
- **get_single_haloitsm_knowledge_base_by_id** — Get a specific knowledge base article in HaloITSM using id. Returns key fields describing the article such as title, content, and metadata.
- **create_a_haloitsm_knowledge_base** — Create or update a knowledge base article in HaloITSM. If id is provided, the article is updated; if not, a new article is created. The response returns the created or updated article details including id and key metadata fields.
- **delete_a_haloitsm_knowledge_base_by_id** — Delete the knowledge base article with the specified id in HaloITSM. Removes the article and related objects. Returns a success status in the response.
- **list_all_haloitsm_opportunites** — List opportunities in HaloITSM. Returns count and an array of opportunity objects in the root field of the response.
- **get_single_haloitsm_opportunite_by_id** — Get details of a specific opportunity in HaloITSM using id. Returns key fields such as id, summary, details, status_id, client_name, team, opportunity type, value, and related dates providing full opportunity context.
- **create_a_haloitsm_opportunite** — Create or update one or more opportunities in HaloITSM. If id is provided, updates the existing opportunity; if not, creates a new one. Returns the updated or newly created opportunity records in the response.
- **delete_a_haloitsm_opportunite_by_id** — Delete an opportunity in HaloITSM with the specified id. Returns confirmation of deletion including the removed opportunity details.
- **list_all_haloitsm_projects** — List projects in HaloITSM. Returns count of projects (record_count) and an array of project objects (tickets) containing detailed project information.
- **get_single_haloitsm_project_by_id** — Get details of a specific project in HaloITSM using id. Returns fields such as id, summary, status_id, client_name, sla_id, priority_id, datecreated, lastactiondate, and more, providing full project information.
- **create_a_haloitsm_project** — Create or update one or more projects in HaloITSM. If id is provided, updates an existing project; if not, creates a new one. Returns project details including key fields such as id and name.
- **delete_a_haloitsm_project_by_id** — Delete a specific project in HaloITSM with the given id. Deletes the project and related objects. Returns confirmation of successful deletion.
- **list_all_haloitsm_quotes** — List quotes in HaloITSM. Returns the total record_count, pagination details (page_no, page_size), and an array of quote objects containing fields such as id, dateoccurred, summary, client_name, status_id, and priority_id.
- **get_single_haloitsm_quote_by_id** — Get details for a specific quote in HaloITSM using id. Returns key fields including title, ticket_id, status, po_ref, date, expiry_date, revenue, total, cost, profit, user details, and line items in the response.
- **create_a_haloitsm_quote** — Create or update one or more quotes in HaloITSM. If id is provided, the quote is updated; otherwise, a new quote is created. Returns quote details including id, status, and associated information.
- **delete_a_haloitsm_quote_by_id** — Delete a specific quote in HaloITSM using the id. Removes the quote and related objects. Returns status 200 on success.
- **list_all_haloitsm_reports** — List reports in HaloITSM. Returns fields including page_no, page_size, record_count, columns_id, columns, and an array of report objects in tickets.
- **get_single_haloitsm_report_by_id** — Get a specific report in HaloITSM using id. Returns fields such as id, name, sql, reportingperiod, charttitle, charttype, count, client, includesummary, and schedule details in the response.
- **create_a_haloitsm_report** — Create or update one or more reports in HaloITSM. If id is provided, updates the existing report; otherwise, creates a new report. Returns details of the reports including their ids and updated information.
- **delete_a_haloitsm_report_by_id** — Delete a specific report in HaloITSM using id. The operation removes the report and all related objects. Returns a status 200 response upon successful deletion.
- **list_all_haloitsm_sites** — List Sites in HaloITSM. Returns each site's id, name, client_id, inactive status, phonenumber, sla_id, client_name, colour, and customfields in the response.
- **get_single_haloitsm_site_by_id** — Get details of a specific site in HaloITSM. Requires id. Returns key fields describing the site, including its configuration and properties.
- **create_a_haloitsm_site** — Create or update one or more sites in HaloITSM. If id is included, the site is updated; if not, a new site is created. The response returns details of the processed sites including their identifiers and properties.
- **delete_a_haloitsm_site_by_id** — Delete a specific site in HaloITSM using id. Deletes the site and its related objects. Returns confirmation of successful deletion.
- **list_all_haloitsm_status** — List all statuses in HaloITSM. Returns an array of statuses with key fields such as name, id, and type that describe each available status.
- **get_single_haloitsm_status_by_id** — Get details of a specific status in HaloITSM using id. Returns key fields of the status object such as name, id, and settings relevant to the status configuration.
- **create_a_haloitsm_status** — Create or update one or more status in HaloITSM. If id is included, updates existing status; if not, creates new. Returns the list of created or updated statuses in the response.
- **delete_a_haloitsm_status_by_id** — Delete a specific status in HaloITSM using id. Deletes the status and related objects. Returns confirmation of deletion in the response.
- **list_all_haloitsm_suppliers** — List suppliers in HaloITSM. Returns an array of suppliers containing key details such as supplier names and identifiers. Requires no path parameters.
- **get_single_haloitsm_supplier_by_id** — Get details of a specific supplier in HaloITSM using id. Returns key supplier fields such as id, name, contact_name, email_address, phone_number, inactive status, and customfields in the response.
- **create_a_haloitsm_supplier** — Create or update one or more suppliers in HaloITSM. If id is included, updates that supplier; otherwise, creates a new supplier. Returns details of created or updated suppliers.
- **delete_a_haloitsm_supplier_by_id** — Delete a supplier in HaloITSM using id. This operation removes the supplier and related objects. Returns confirmation of successful deletion.
- **list_all_haloitsm_ticket_types** — List all ticket-types in HaloITSM. Returns id, name, ticket_count, use, and sequence for each ticket type.
- **get_single_haloitsm_ticket_type_by_id** — Get a specific ticket type in HaloITSM using id. Returns details including name, ticket_count, workflow_name, approval_process_name, default_team, default_agent_name, default_priority, and related configuration fields.
- **create_a_haloitsm_ticket_type** — Create or update one or more ticket-types in HaloITSM. If id is provided, updates the existing record; if not, creates a new one. Returns an array of ticket-type objects with their details in the root of the response.
- **delete_a_haloitsm_ticket_type_by_id** — Delete a specific ticket type in HaloITSM using id. Deletes the ticket type and related objects with the specified id. Returns status 200 upon successful deletion.
- **list_all_haloitsm_tickets** — List tickets in HaloITSM. Returns ticket objects with key fields such as ticket ID, status, client, and SLA details in the response. No required parameters.
- **get_single_haloitsm_ticket_by_id** — Get details of a specific ticket in HaloITSM using id. Returns key fields such as ticket ID, SLA ID, Status ID, Client ID, Name, and LastIncomingEmailDate.
- **create_a_haloitsm_ticket** — Create or update one or more tickets in HaloITSM. If id is included, the ticket is updated; if not, new tickets are created. Returns each ticket's status and details in the response.
- **delete_a_haloitsm_ticket_by_id** — Delete a specific ticket in HaloITSM by id. Removes the ticket and related objects. Returns confirmation of deletion in the response.
- **list_all_haloitsm_attachments** — List attachments in HaloITSM using ticket_id. Returns an array of attachments in Base64 format with fields describing file metadata and encoding details.
- **get_single_haloitsm_attachment_by_id** — Get details of a specific attachment in HaloITSM using id. Returns a single attachment object in Base64 format in the response.
- **create_a_haloitsm_attachment** — Create or update one or more attachments in HaloITSM. If id is included, updates the attachment; otherwise, creates a new one. Attachments must be provided in Base64 format. Returns attachment details in response.
- **delete_a_haloitsm_attachment_by_id** — Delete an attachment in HaloITSM using id. Removes the attachment and related objects. Returns confirmation of successful deletion in the response.

## How it works

1. **Link your customer's HaloITSM account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach HaloITSM.** The Proxy API is a 1-to-1 mapping of the HaloITSM API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Automate incident creation from monitoring and security alerts** — Security and observability SaaS platforms can automatically create HaloITSM tickets when threats or anomalies are detected, linking assets and users directly. This eliminates manual ticket logging and accelerates mean time to resolution for IT teams.
- **Sync employee directories for zero-touch IT provisioning** — HR and identity platforms can push new hire records into HaloITSM as users, assign them to teams and sites, and trigger onboarding tickets — all through Truto's Unified User Directory API. This lets your customers offer automated IT provisioning without custom API work.
- **Keep asset inventories in sync with the CMDB** — Endpoint management, ITAM, and device security tools can continuously push discovered hardware and software into HaloITSM's asset registry, ensuring support agents always have up-to-date device context when triaging incidents.
- **Bridge the quote-to-cash lifecycle for MSPs** — CPQ, billing, and sales automation platforms serving MSPs can create clients, push quotes and contracts, and generate invoices directly in HaloITSM — closing the loop between sales and service delivery without manual data entry.
- **Centralize project and ticket workflows across tools** — Project management and professional services automation platforms can create and track HaloITSM projects and tickets bidirectionally, giving delivery teams a unified view of work without switching between systems.

## What you can build

- **Alert-to-incident pipeline with asset linking** — Automatically create HaloITSM tickets from detected events, look up the affected asset and user, link them to the ticket, and append diagnostic logs as actions — all without agent intervention.
- **Two-way user and team directory sync** — Keep your product's user directory and HaloITSM's users and teams continuously synchronized using Truto's Unified User Directory API, handling onboarding, offboarding, and department changes automatically.
- **Automated onboarding ticket generator** — When a new employee is created, automatically open a typed ticket (e.g., 'New Hire Hardware Request') assigned to the correct team and site, triggering HaloITSM's built-in approval workflows.
- **Real-time CMDB asset enrichment** — Push device metadata — serial numbers, OS versions, warranty status — from your endpoint or asset management tool into HaloITSM assets so helpdesk agents see full context during ticket triage.
- **Quote-to-project handoff for MSPs** — Convert closed-won deals into HaloITSM clients, quotes with line items, contracts, and implementation projects in a single automated workflow, eliminating rekeying between sales and delivery.
- **Ticket action audit trail** — Append structured notes, status transitions, and external event logs to existing HaloITSM tickets as actions, creating a complete audit trail of automated and manual activity without overwriting ticket data.

## FAQs

### What authentication method does the HaloITSM integration use?

HaloITSM uses OAuth 2.0 client credentials for API authentication. Truto handles token issuance and refresh automatically, so your end users connect their HaloITSM instance once and you never manage tokens directly.

### Which HaloITSM resources can I read and write through Truto?

Truto supports full CRUD (list, get, create, delete) across 22 HaloITSM resources including tickets, actions, users, teams, agents, assets, clients, contracts, invoices, quotes, opportunities, projects, sites, suppliers, knowledge base articles, reports, appointments, items, statuses, ticket types, and attachments.

### Does Truto handle pagination for HaloITSM list endpoints?

Yes. Truto abstracts away HaloITSM's pagination so you get a consistent interface for iterating through large result sets of tickets, assets, users, or any other resource without managing page tokens or offsets yourself.

### Can I use Truto's Unified API with HaloITSM?

HaloITSM is mapped to Truto's Unified User Directory API, which provides a normalized schema for Users and Groups (Teams). This means you can build one integration that works across HaloITSM and other directory-compatible apps without writing provider-specific code.

### How do ticket actions work versus ticket updates?

In HaloITSM, actions are discrete events attached to a ticket — public or private notes, status changes, logged calls, and audit entries. Use create_a_haloitsm_action to append activity to a ticket without overwriting its core fields, and use ticket endpoints to modify the ticket record itself.

### Can I filter or search resources when listing them?

Yes. HaloITSM's API supports query parameters for filtering on list endpoints (e.g., filtering assets by type or tickets by status). Truto passes these filters through, so you can scope API calls to exactly the data your integration needs.
