Chat & Collaboration Endpoints
Chat & Collaboration
LiveChatHeader
GET /Chat
Summary: List of LiveChatHeader
Returns multiple LiveChatHeader objects. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
| after | string | Cursor for pagination |
| chatprofile_id | string | Filter by chat profile ID |
| checkavailable | boolean | Check agent availability |
| count | integer | Number of records to return |
| ignore_all_closed | boolean | Ignore all closed chats |
| order | string | Primary sort field |
| order2 | string | Secondary sort field |
| order3 | string | Tertiary sort field |
| order4 | string | Quaternary sort field |
| order5 | string | Quinary sort field |
| orderdesc | boolean | Descending for primary sort |
| orderdesc2 | boolean | Descending for secondary sort |
| orderdesc3 | boolean | Descending for tertiary sort |
| orderdesc4 | boolean | Descending for quaternary sort |
| orderdesc5 | boolean | Descending for quinary sort |
| page_no | integer | Page number |
| page_size | integer | Page size |
| pageinate | boolean | Enable pagination |
| teams_conversation_id | string | Filter by Microsoft Teams conversation ID |
| ticket_id | integer | Filter by associated ticket ID |
POST /Chat
Creates a new LiveChatHeader record.
No query parameters. No documented request body schema.
GET /Chat/{id}
Returns a single LiveChatHeader by ID.
| Parameter | Type | Description |
|---|---|---|
| id (path) | integer | Chat header ID (required) |
LiveChatMsg
GET /ChatMessage
Summary: List of LiveChatMsg
Returns multiple LiveChatMsg objects. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
| chat_id | integer | Filter by chat session ID |
| last_id | integer | Return messages after this ID |
| max_id | integer | Return messages up to this ID |
POST /ChatMessage
Creates one or more chat messages.
Request Body: Array of LiveChatMsg
LiveChatMsg schema:
| Property | Type | Description |
|---|---|---|
| id | integer | Message ID |
| chat_id | integer | Parent chat session ID |
| sender_id | integer | Sender's user/agent ID |
| text | string | Message text (HTML) |
| textplain | string | Plain text version of message |
| value_int | integer | Integer value (for flow inputs) |
| value_bool | boolean | Boolean value (for flow inputs) |
| value_date | datetime | Date value (for flow inputs) |
| value_multi | string | Multi-select value (for flow inputs) |
| timestamp | datetime | Message timestamp |
| system_id | integer | System message type ID |
| ticket_id | integer | Associated ticket ID |
| user_id | integer | Associated end-user ID |
| agent_id | integer | Associated agent ID |
| unknown_id | string | Identifier for anonymous users |
| display_name | string | Display name of sender |
| lastmessageid | integer | ID of the last message in session |
| input_id | integer | Current flow input step ID |
| next_input_id | integer | Next flow input step ID |
| chatprofileid | string | Chat profile ID |
| chatprofilekey | string | Chat profile key |
| chat_image_type | integer | Image type for chat avatar |
| attachment_id | integer | Single attachment ID |
| attachment_ids | array | List of attachment ID pairs |
| kb_search_results | array | KB article search results |
| services_search_results | array | Services search results |
| is_message_safe | boolean | Whether message passed safety checks |
| modified_by_agent_id | integer | Agent who last modified the message |
| modified_by_agent_name | string | Name of agent who modified |
| _warning | string | Warning message |
| _abandoned | boolean | Whether the chat was abandoned |
POST /ChatMessage/IsTyping
Sends a typing indicator for a live chat session.
Request Body: LiveChatIsTyping
LiveChatIsTyping schema:
| Property | Type | Required | Description |
|---|---|---|---|
| chat_id | integer | Yes | Chat session ID |
| sender_id | integer | Yes | Sender's ID |
| timestamp | datetime | No | Timestamp of typing event |
| _stopped | boolean | No | Whether typing has stopped |
ChatFlow
POST /ChatFlow
Processes a chat flow step.
Request Body: Array of ChatFlowProcess
ChatFlowProcess schema:
| Property | Type | Description |
|---|---|---|
| chat_id | integer | Chat session ID |
| chat_profile_id | string | Chat profile ID |
| flow_step | integer | Current flow step index |
ChatMatchingData
POST /ChatMatchingData
Stores chat matching data used for customer identification.
Request Body: Array of ChatMatchingData
ChatMatchingData schema:
| Property | Type | Description |
|---|---|---|
| guid | uuid | Unique identifier |
| key | uuid | Matching key |
| json_content | any | JSON content payload |
ChatProfile
GET /ChatProfile
Summary: List of ChatProfile
Returns multiple ChatProfile objects. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
| type | integer | Filter by profile type |
POST /ChatProfile
Creates one or more chat profiles.
Request Body: Array of ChatProfile
ChatProfile schema (key fields):
| Property | Type | Description |
|---|---|---|
| id | string | Profile ID |
| name | string | Profile name |
| key | string | Public access key |
| intent | string | AI/NLP intent identifier |
| access_type | integer | Access restriction type |
| greeting | string | Initial greeting message |
| bot_name | string | Name displayed for the bot |
| technamevisibility | integer | Whether tech name is visible to user |
| techmustonline | boolean | Require tech to be online |
| workdays_id | integer | Working hours schedule ID |
| logticket | integer | Auto-log ticket setting |
| tickettype_id | integer | Default ticket type ID |
| icon | string | Icon identifier |
| colour | string | Brand color |
| theme | string | UI theme |
| enable_feedback | boolean | Enable post-chat feedback |
| feedback_message_before | string | Feedback prompt before rating |
| feedback_message_after | string | Feedback message after rating |
| steps | array | Chat flow steps (FlowDetail) |
| flow_chart_json | string | Flow chart configuration JSON |
| cors_whitelist_list | array | Allowed CORS origins |
| access_control | array | Access control rules |
| access_control_level | integer | Access control enforcement level |
| default_ticket_clientsite | integer | Default client/site for new tickets |
| bubble_type | integer | Chat bubble display type |
| message_box_size | integer | Message input box size |
| _chat_available | boolean | Whether chat is currently available |
| _chat_mode | string | Current chat mode |
| agent_roles | array | Allowed agent roles |
GET /ChatProfile/{id}
Summary: Get one ChatProfile
Returns a single ChatProfile by ID. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
| id (path) | string | Profile ID (required) |
| check_available | boolean | Check agent availability |
| includedetails | boolean | Include full detail data |
| key | string | Public access key for unauthenticated access |
DELETE /ChatProfile/{id}
Deletes a chat profile by ID.
| Parameter | Type | Description |
|---|---|---|
| id (path) | string | Profile ID (required) |
Slack
POST /Slack/Manifest
Creates a Slack app manifest for installation.
Request Body: CreateSlackManifest
CreateSlackManifest schema:
| Property | Type | Description |
|---|---|---|
| name | string | App name |
| shortDescription | string | Short description for Slack directory |
| longDescription | string | Long description for Slack directory |
| startChatDescription | string | Description for starting a chat |
| endChatDescription | string | Description for ending a chat |
POST /Slack/Command
Handles an incoming Slack slash command. No documented request body.
POST /Slack/Event
Handles an incoming Slack event webhook. No documented request body.
POST /Slack/Interactivity
Handles Slack interactive component callbacks (buttons, modals, etc.). No documented request body.
SlackChatApp
GET /SlackChatApp
Returns all Slack Chat App configurations. No query parameters.
POST /SlackChatApp
Creates one or more Slack Chat App configurations.
Request Body: Array of SlackChatApp
SlackChatApp schema:
| Property | Type | Description |
|---|---|---|
| id | integer | Record ID |
| name | string | App name |
| app_id | string | Slack app ID |
| new_bot_user_oauth_token | string | Bot OAuth token (write-only) |
| new_signing_secret | string | Signing secret (write-only) |
| chat_profile_id | string | Associated HaloPSA chat profile ID |
| chat_profile_name | string | Name of associated chat profile |
GET /SlackChatApp/{id}
Returns a single Slack Chat App configuration by ID.
| Parameter | Type | Description |
|---|---|---|
| id (path) | integer | App configuration ID (required) |
DELETE /SlackChatApp/{id}
Deletes a Slack Chat App configuration by ID.
| Parameter | Type | Description |
|---|---|---|
| id (path) | integer | App configuration ID (required) |
SlackDetails
GET /SlackDetails
Summary: List of SlackDetails
Returns Slack integration configuration records. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
| agent_id | string | Filter by agent ID |
| channel_name | string | Filter by Slack channel name |
| includedisabled | string | Include disabled integrations |
| includeenabled | string | Include enabled integrations |
| team_name | string | Filter by Slack team/workspace name |
POST /SlackDetails
Creates or updates Slack integration details.
Request Body: Array of SlackDetails
SlackDetails schema (key fields):
| Property | Type | Description |
|---|---|---|
| id | integer | Record ID |
| name | string | Slack channel name |
| teamname | string | Slack workspace/team name |
| team_id | string | Slack team ID |
| new_access_token | string | OAuth access token (write-only) |
| webhookurl | string | Incoming webhook URL |
| enabled | boolean | Whether integration is enabled |
| agent_id | integer | Associated HaloPSA agent ID |
| channel_id | string | Slack channel ID |
| allow_ticket_create | boolean | Allow ticket creation via Slack command |
| ticket_type | integer | Default ticket type for new tickets |
| command_ticket_type | integer | Ticket type for slash command tickets |
| command_user | integer | Default user for slash command tickets |
| oauth_code | string | OAuth authorization code |
| oauth_redirect | string | OAuth redirect URI |
| scopes | array | Granted OAuth scopes |
| uninstalled | boolean | Whether app has been uninstalled |
GET /SlackDetails/{id}
Summary: Get one SlackDetails
Returns a single Slack integration detail record. Requires authentication.
| Parameter | Type | Description |
|---|---|---|
| id (path) | integer | Record ID (required) |
| includedetails | boolean | Include full detail data |
DELETE /SlackDetails/{id}
Deletes a Slack integration detail record.
| Parameter | Type | Description |
|---|---|---|
| id (path) | integer | Record ID (required) |
POST /SlackDetails/Uninstall
Triggers uninstall flow for a Slack integration. No request body.