Social Media & CRM Endpoints (cont.)
Opps (continued)
GET /Opportunities (additional parameters)
| Parameter | Type | Description |
|---|---|---|
order2 | string | Secondary sort field |
startdate | string | Start date (for use with datesearch) |
enddate | string | End date (for use with datesearch) |
datesearch | string | Date field to search — e.g. dateoccured, datecleared |
domain | string | Filter by domain — reqs, opps, or prjs |
facebook_id | string | Filter by Facebook ID |
site_id | integer | Filter by site ID |
team | string | Array of team IDs |
user_id | integer | Filter by user ID |
view_id | integer | Filter profile ID |
include_custom_fields | string | Comma-separated custom field IDs to include |
cf_display_values_only | boolean | Return display values only for custom fields (faster query) |
includedetails (various) | boolean | Various flags to include detail sub-objects |
ticketidonly | boolean | Return only ID fields (not compatible with pagination) |
default_columns | boolean | Include only default columns |
utcoffset | number | UTC offset to apply to dates |
POST /Opportunities
Create a new Opportunity.
Request Body: Array of Faults
Response: Faults (201 Created)
Key fields:
| Field | Type | Description |
|---|---|---|
id | integer | Opportunity ID (auto-assigned) |
summary | string | Opportunity title/summary |
details | string | Full description |
dateoccurred | datetime | Date opportunity was created |
status_id | integer | Status ID |
tickettype_id | integer | Ticket type ID |
client_id | integer | Associated client ID |
site_id | integer | Associated site ID |
user_id | integer | Associated user/contact ID |
agent_id | integer | Assigned agent ID |
team_id | integer | Assigned team ID |
priority_id | integer | Priority ID |
sla_id | integer | SLA ID |
oppcontactname | string | Opportunity contact name |
oppcompanyname | string | Opportunity company name |
oppemailaddress | string | Opportunity email address |
opptel | string | Opportunity telephone |
oppvalue | number | Opportunity value |
oppvalue_monthly | number | Monthly recurring value |
oppvalue_annual | number | Annual recurring value |
oppvalue_oneoff | number | One-off value |
oppconversionprobability | number | Conversion probability (0-100) |
oppprofit | number | Expected profit |
oppcurrentsystem | string | Prospect's current system |
oppcompetitors | string | Competitors involved |
oppdemodate | datetime | Demo date |
opptrialdate | datetime | Trial date |
oppdiscountdate | datetime | Discount expiry date |
oppconverteddate | datetime | Date opportunity was converted |
oppreason | string | Win/loss reason |
pipeline_stage_id | integer | CRM pipeline stage ID |
followupdate | datetime | Follow-up date |
startdate | datetime | Start date |
targetdate | datetime | Target close date |
customfields | array | Custom field values |
GET /Opportunities/{id}
Summary: Get one Faults (Opportunity)
Returns a single Opportunity. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Opportunity ID |
includedetails | boolean | Include extra objects in the response |
includelastaction | boolean | Include the last action |
includelastappointment | boolean | Include the last appointment |
includenextappointment | boolean | Include the next appointment |
includelinkedobjects | boolean | Include linked objects |
include_auditing | boolean | Include audit trail |
nocache | boolean | Bypass response cache |
ticketidonly | boolean | Return only ticket ID details |
isteams | boolean | Return as Teams-compatible format |
utcoffset | number | UTC offset to apply to dates |
Response Schema: Faults
DELETE /Opportunities/{id}
Summary: Delete one Faults (Opportunity)
Deletes a specific Opportunity. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Opportunity ID |
reason | string | Deletion reason |
POST /Opportunities/View
Submit a view event for an Opportunity.
Request Body: Array of Faults
Journey
Manage journey/travel records associated with tickets (mileage tracking for field service).
GET /Journey
Returns a list of Journey records.
POST /Journey
Create or update Journey records.
Request Body: Array of Journey
Key fields:
| Field | Type | Description |
|---|---|---|
id | integer | Journey ID |
faultid | integer | Associated ticket ID |
actionnumber | integer | Associated action number |
description | string | Journey description |
startdate | datetime | Journey start date/time |
enddate | datetime | Journey end date/time |
startodometer | number | Starting odometer reading |
endodometer | number | Ending odometer reading |
vehicle | string | Vehicle identifier |
startgps | string | Starting GPS coordinates |
endgps | string | Ending GPS coordinates |
invoiceable | boolean | Whether the journey is billable |
type | integer | Journey type |
GET /Journey/{id}
Summary: Get one Journey
Returns a single Journey instance. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Journey ID |
includedetails | boolean | Include extra detail objects |
DELETE /Journey/{id}
Delete a Journey record.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Journey ID |
Feed
Activity feed for agents — a chronological stream of events across tickets, clients, and assets.
GET /Feed
Summary: List of Feed
Returns multiple Feed items. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
accountmanager_id | integer | Filter by account manager ID |
agent_only | boolean | Return only agent-related items |
count | integer | Number of feed items to return |
exclude_private | boolean | Exclude private feed items |
followed_only | boolean | Return only items from followed tickets/clients |
newer_than_id | integer | Return items newer than this feed ID |
older_than_id | integer | Return items older than this feed ID |
one_agent_id | integer | Filter to a single agent's activity |
one_agents_tickets_id | integer | Filter to tickets assigned to a specific agent |
one_user_id | integer | Filter to a single user's activity |
related_asset_id | integer | Filter by related asset ID |
related_client_id | integer | Filter by related client ID |
related_site_id | integer | Filter by related site ID |
related_user_id | integer | Filter by related user ID |
user_only | boolean | Return only end-user-related items |
Feedback
Manage customer satisfaction survey responses.
GET /Feedback
Returns a list of Feedback records.
POST /Feedback
Create or update Feedback records.
Request Body: Array of Feedback
Key fields:
| Field | Type | Description |
|---|---|---|
id | integer | Feedback ID |
ticket_id | integer | Associated ticket ID |
key | string | Unique feedback key/token |
score | integer | Satisfaction score |
score_band | integer | Score band/category |
date | datetime | Date feedback was submitted |
comment | string | Customer comment |
user_message | string | Message shown to the user |
is_survey | boolean | Whether this is a survey response |
customsurveyfields | array | Custom survey field responses |
fields | array | Request type field values |
automation_id | integer | Associated automation ID |
GET /Feedback/{id}
Summary: Get one Feedback
Returns a single Feedback instance. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Feedback ID |
includedetails | boolean | Include extra detail objects |
key | string | Feedback access key/token |
clearcomment | boolean | Clear the comment after retrieval |
DELETE /Feedback/{id}
Delete a Feedback record.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Feedback ID |
GET /Feedback/FeedbackMessage
Returns feedback message templates.
HaloNews
Manage HaloPSA news/announcement banners displayed to agents or end users.
GET /HaloNews
Returns a list of HaloNews records.
POST /HaloNews
Create or update HaloNews records.
Request Body: Array of HaloNews
Key fields:
| Field | Type | Description |
|---|---|---|
id | integer | News item ID |
name | string | Internal name |
title | string | Display title |
details | string | Content body |
css | string | Custom CSS (max 4000 chars) |
use | string | Where the news item is displayed |
button_label | string | Call-to-action button label |
button_url | string | Call-to-action button URL |
start_date | datetime | When the announcement becomes active |
end_date | datetime | When the announcement expires |
agent_type | integer | Which agent type can see this |
customer_type | integer | Which customer type can see this |
enabled_module | integer | Module required to be enabled |
read | boolean | Whether the current user has read it |
min_version | string | Minimum HaloPSA version required |
max_version | string | Maximum HaloPSA version applicable |
GET /HaloNews/{id}
Summary: Get one HaloNews
Returns a single HaloNews instance. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | HaloNews ID |
includedetails | boolean | Include extra detail objects |
DELETE /HaloNews/{id}
Delete a HaloNews record.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | HaloNews ID |
POST /HaloNews/read
Mark HaloNews items as read.
Request Body: Array of integers (HaloNews IDs)
MessageContent
Manage email templates (also called message content) used for notifications and communications.
GET /EmailTemplate
Summary: List of MessageContent
Returns multiple MessageContent records. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
access_control_level | integer | Filter by access control level |
messagegroup | integer | Filter by message group ID |
isconfig | boolean | Return configuration templates only |
ignore_mg | boolean | Ignore message group filtering |
release_only | boolean | Return release-related templates only |
portalcss | boolean | Return portal CSS templates |
POST /EmailTemplate
Create or update email templates.
Request Body: Array of MessageContent
Key fields:
| Field | Type | Description |
|---|---|---|
id | integer | Template ID |
name | string | Template name |
description | string | Template description |
body_text | string | Plain text body |
body_html | string | HTML body |
body_sms | string | SMS body |
call_script | string | Phone call script |
type | integer | Template type |
use | string | Template usage context |
messagegroup_id | integer | Message group ID |
access_control_level | integer | Access control level |
announcement_end_date | datetime | Expiry date for announcement templates |
variables | array | Template variable definitions |
approvalprocesses | array | Associated approval processes |
emailrules | array | Email trigger rules |
tickettypes | array | Associated ticket types |
statuses | array | Associated statuses |
GET /EmailTemplate/{id}
Summary: Get one MessageContent
Returns a single MessageContent record. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Template ID |
includedetails | boolean | Include extra detail objects |
messagegroup | integer | Message group context |
DELETE /EmailTemplate/{id}
Delete a MessageContent record.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Template ID |
POST /EmailTemplate/preview
Generate a preview of a message template.
Request Body: Single MessageContent object
MessageContentVariable
Manage custom variables for email templates.
GET /EmailTemplateVariable
Returns a list of MessageContentVariable records.
POST /EmailTemplateVariable
Create or update MessageContentVariable records.
Request Body: Array of MessageContentVariable
Key fields:
| Field | Type | Description |
|---|---|---|
id | integer | Variable ID |
emailtemplate_id | integer | Associated template ID |
variable | string | Variable name/token |
text | string | Variable default content (max 100000 chars) |
translations | array | Translated values per language |
GET /EmailTemplateVariable/{id}
Returns a single MessageContentVariable record.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Variable ID |
DELETE /EmailTemplateVariable/{id}
Delete a MessageContentVariable record.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Variable ID |
NotificationContent
Manage notification message templates for push/in-app notifications.
GET /NotificationMessage
Returns a list of NotificationContent records.
POST /NotificationMessage
Create or update NotificationContent records.
Request Body: Array of NotificationContent
Key fields:
| Field | Type | Description |
|---|---|---|
id | integer | Notification ID |
name | string | Notification name |
message | string | Short notification message |
body_text | string | Full notification body text |
GET /NotificationMessage/{id}
Summary: Get one NotificationContent
Returns a single NotificationContent instance. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | NotificationContent ID |
includedetails | boolean | Include extra detail objects |
DELETE /NotificationMessage/{id}
Delete a NotificationContent record.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | NotificationContent ID |
NotificationLog
GET /NotificationLog
Returns the notification log — a history of notifications sent by the system.