How can we help?
Searching in {{docApp.searchFilterBySpecificBookTitle}}
{{docApp.searchResultFilteredItems.length}} results for: {{docApp.currentResultsSearchText}}
in {{docApp.searchFilterBySpecificBookTitle}}
Search results have been limited. There are a total of {{docApp.searchResponse.totalResultsAvailable}} matches.
You have an odd number of " characters in your search terms - each one needs closing with a matching " character!
-
{{resultItem.title}}
{{resultItem.url}}
{{docApp.libraryHomeViewProduct.title || docApp.libraryHomeViewProduct.id}}
{{docApp.libraryHomeViewProduct.description}}
{{group.title || group.id}}
{{group.description}}
Operation Information
- Application Reference:
com.hornbill.servicemanager
- Scope:
Entity - ServiceRequests
- Class:
Entity
- Required Privilege Level:
user
- Required Rights: Group A - createServiceRequests
Description
This flowcode operation logs a Service Request using the provided parameters. Firstly it calls the component flowcode operation logRequest to actually log the service request before updating the record with any extended table details. Finally it spawns a bpm process if a service id has been provided.
Request Parameters
The logServiceRequest API takes the following input parameters.
Note
When sending a JSON request payload to the API, the order of parameters is not significant. However, for XML request payloads, parameters must be provided in the exact order specified in this documentation to comply with input validation requirements.
Name | Type | Required | Description |
---|---|---|---|
summary |
xs:string |
No | The service request summary. |
description |
xs:string |
No | The service request description. |
requestType |
xs:string |
No | The type of request (Service Request) |
customerId |
xs:string |
No | The customer Id (Co-worker / Contact). If the customer is a co-worker, the id will be their User ID. If the customer is a contact, the id will be the h_pk_id value of their record in the h_sys_contact table. |
customerType |
xs:string |
No | The customer type (Co-worker / Contact). 0 for a co-worker, 1 for a contact. |
ownerId |
xs:string |
No | The co-worker Id of the owner of the service request. |
teamId |
xs:string |
No | The Id of the team assigned to the Request. This is the h_id value of the record in the h_sys_groups table for the assigned team. |
status |
xs:string |
No | The status of the service request. Examples are status.new, status.open, status.resolved. When not supplied, the value "status.new" is considered. |
priorityId |
xs:string |
No | The Id of the chosen priority for the service request. By default, High (1), Medium (2), Low (3). |
categoryId |
xs:string |
No | The Id of the chosen category for the service request. |
categoryName |
xs:string |
No | The Name of the category |
image |
xs:string |
No | WebDAV path to an image (from email only). |
sourceType |
xs:string |
No | The source from where the service request was raised (e.g. Email / Post). |
sourceId |
xs:string |
No | The Id if the source object it was raised from (if Email:messageId, if Post:ActivityStreamID and ActivityID). |
assetId |
xs:string |
No | The Id(s) of all assets to be associated to the service request. |
impact |
xs:string |
No | The impact of the service request. E.g. High, Medium, Low. |
urgencyId |
xs:string |
No | The ID of the request's Urgency level |
serviceId |
xs:string |
No | The id of the selected service. This will be used to spawn a bpm process. |
questions |
xs:string |
No | Questions that were answered during progressive capture |
resolutionDetails |
xs:string |
No | The resolution details if the service request is to be raised and resolved at the same time |
fileName |
xs:string |
No | The full path for the file(s) to be attached |
siteId |
xs:string |
No | ID of the site this request is affecting |
siteName |
xs:string |
No | Name of the site this request is affecting |
catalogId |
xs:string |
No | The Catalog Id the Request was raised against |
catalogName |
xs:string |
No | The Catalog Name the Request was raised against |
externalRefNumber |
xs:string |
No | This parameter is to be set with the External Reference Number of a Request. |
bpmName |
xs:string |
No | The custom BPM Name when raising a request via a customised Service Catalog |
questionFieldMap |
xs:string |
No | Question Field Map as JSON |
senderDetails |
xs:string |
No | JSON string containing email sender details if the request is being raised via the autoresponder. |
ccDetails |
xs:string |
No | JSON string containing email cc receipient details if the request is being raised via the autoresponder. |
connectionMap |
xs:string |
No | Connection Map as JSON |
connectionUpdateTimeline |
xs:boolean |
No | Update timeline true/false |
connectionTimelineVisibility |
xs:string |
No | Visibility level of timeline updates for added connections. Timeline update visibility defaults to Team if not provided. |
employeeAssignmentUserId |
xs:string |
No | The user id of the employee assignment assigned to the Request. |
employeeAssignmentNumber |
xs:string |
No | The assignment number of the employee assignment assigned to the Request. |
Response Parameters
Name | Type | Description |
---|---|---|
requestId |
xs:string |
The Id of the new service request. |
bpmProcessId |
xs:string |
The Id of the spawned Bpm process for the new service request. |
exceptionName |
xs:string |
The name / code of any exception thrown during the creation of the service request. |
exceptionDescription |
xs:string |
A description of any exception thrown during the creation of the service request. |
summary |
xs:string |
The provided summary of the service request. |
warnings |
xs:string |
Any warnings that were encountered when logging the service request. |
Request Parameters - Additional Information
questionFieldMap
The questionFieldMap
input parameter enables the population of any of the available fields against your request records.
The input is of type xs:string
, but the API expects a string representation of a JSON object, with key-value pairs for each field needing updating, where they keys are the database field names and the values are in their native datatypes. The following example, when provided as a string to the questionFieldMap
input parameter, would prompt the API to update the h_custom_a
, h_custom_p
, h_custom_21
and h_custom_26
fields angainst the target request:
{
"h_custom_a": "A VARCHAR(255) string to be written into h_custom_a",
"h_custom_p": "A LONGTEXT string to be written into h_custom_p",
"h_custom_21": "2023-11-01 15:07:42",
"h_custom_26": 42
}
connectionMap
The connectionMap
input parameter enables the association of the request being created with users and contacts in the form of Request Connections.
The input is of type xs:string
, but the API expects a string representation of a JSON array of objects, with key-value pairs in each object. The following example, when provided as a string to the connectionMap
input parameter, would add two connections to the newly created request:
[
{
"connectionType": "connection.impacted",
"userType": "account",
"userId": "change",
"comment": "I am impacted"
},
{
"connectionType": "connection.interested",
"userType": "contact",
"userId": "42"
}
]
The keys available to the connection objects are:
connectionType
- Mandatory - Type:xs:string
- The type of connection. Values to use can be found in therequestConnectionType
Simple List.userType
- Mandatory - Type:xs:string
- Can beaccount
orcontact
, depending on whether the user being associated as a connection is a user of the Hornbill platform (basic or full), or an externally-supported organization contact.userId
- Mandatory - Type:xs:string
- The ID of the user.comment
- Optional - Type:xs:string
- A comment to associate to the connection.
Code Examples
curl -X POST 'https://api.hornbill.com/yourinstanceid/xmlmc/apps/com.hornbill.servicemanager/ServiceRequests' \
-H 'Authorization: ESP-APIKEY yourHornbillAPIKey' \
-H 'Content-Type: application/json' \
-d '{"@service":"apps/com.hornbill.servicemanager/ServiceRequests","@method":"logServiceRequest","params":{"summary":"xs:string","description":"xs:string","requestType":"xs:string","customerId":"xs:string","customerType":"xs:string","ownerId":"xs:string","teamId":"xs:string","status":"xs:string","priorityId":"xs:string","categoryId":"xs:string","categoryName":"xs:string","image":"xs:string","sourceType":"xs:string","sourceId":"xs:string","assetId":"xs:string","impact":"xs:string","urgencyId":"xs:string","serviceId":"xs:string","questions":"xs:string","resolutionDetails":"xs:string","fileName":"xs:string","siteId":"xs:string","siteName":"xs:string","catalogId":"xs:string","catalogName":"xs:string","externalRefNumber":"xs:string","bpmName":"xs:string","questionFieldMap":"xs:string","senderDetails":"xs:string","ccDetails":"xs:string","connectionMap":"xs:string","connectionUpdateTimeline":false,"connectionTimelineVisibility":"xs:string","employeeAssignmentUserId":"xs:string","employeeAssignmentNumber":"xs:string"}}'
package main
import (
"fmt"
apiLib "github.com/hornbill/goApiLib"
)
func main() {
hornbillAPI := apiLib.NewXmlmcInstance("yourinstanceid")
hornbillAPI.SetAPIKey("yourHornbillAPIKey")
hornbillAPI.SetJSONResponse(true)
hornbillAPI.SetParam("summary", "xs:string")
hornbillAPI.SetParam("description", "xs:string")
hornbillAPI.SetParam("requestType", "xs:string")
hornbillAPI.SetParam("customerId", "xs:string")
hornbillAPI.SetParam("customerType", "xs:string")
hornbillAPI.SetParam("ownerId", "xs:string")
hornbillAPI.SetParam("teamId", "xs:string")
hornbillAPI.SetParam("status", "xs:string")
hornbillAPI.SetParam("priorityId", "xs:string")
hornbillAPI.SetParam("categoryId", "xs:string")
hornbillAPI.SetParam("categoryName", "xs:string")
hornbillAPI.SetParam("image", "xs:string")
hornbillAPI.SetParam("sourceType", "xs:string")
hornbillAPI.SetParam("sourceId", "xs:string")
hornbillAPI.SetParam("assetId", "xs:string")
hornbillAPI.SetParam("impact", "xs:string")
hornbillAPI.SetParam("urgencyId", "xs:string")
hornbillAPI.SetParam("serviceId", "xs:string")
hornbillAPI.SetParam("questions", "xs:string")
hornbillAPI.SetParam("resolutionDetails", "xs:string")
hornbillAPI.SetParam("fileName", "xs:string")
hornbillAPI.SetParam("siteId", "xs:string")
hornbillAPI.SetParam("siteName", "xs:string")
hornbillAPI.SetParam("catalogId", "xs:string")
hornbillAPI.SetParam("catalogName", "xs:string")
hornbillAPI.SetParam("externalRefNumber", "xs:string")
hornbillAPI.SetParam("bpmName", "xs:string")
hornbillAPI.SetParam("questionFieldMap", "xs:string")
hornbillAPI.SetParam("senderDetails", "xs:string")
hornbillAPI.SetParam("ccDetails", "xs:string")
hornbillAPI.SetParam("connectionMap", "xs:string")
hornbillAPI.SetParam("connectionUpdateTimeline", "xs:boolean")
hornbillAPI.SetParam("connectionTimelineVisibility", "xs:string")
hornbillAPI.SetParam("employeeAssignmentUserId", "xs:string")
hornbillAPI.SetParam("employeeAssignmentNumber", "xs:string")
responseBody, apiError := hornbillAPI.Invoke("apps/com.hornbill.servicemanager/ServiceRequests", "logServiceRequest")
if apiError != nil {
fmt.Println(apiError)
return
}
fmt.Println(responseBody)
}
const endpoint = "https://api.hornbill.com/yourinstanceid/xmlmc/apps/com.hornbill.servicemanager/ServiceRequests";
const payload = {
"@service": "apps/com.hornbill.servicemanager/ServiceRequests",
"@method": "logServiceRequest",
"params": {
"summary": "xs:string",
"description": "xs:string",
"requestType": "xs:string",
"customerId": "xs:string",
"customerType": "xs:string",
"ownerId": "xs:string",
"teamId": "xs:string",
"status": "xs:string",
"priorityId": "xs:string",
"categoryId": "xs:string",
"categoryName": "xs:string",
"image": "xs:string",
"sourceType": "xs:string",
"sourceId": "xs:string",
"assetId": "xs:string",
"impact": "xs:string",
"urgencyId": "xs:string",
"serviceId": "xs:string",
"questions": "xs:string",
"resolutionDetails": "xs:string",
"fileName": "xs:string",
"siteId": "xs:string",
"siteName": "xs:string",
"catalogId": "xs:string",
"catalogName": "xs:string",
"externalRefNumber": "xs:string",
"bpmName": "xs:string",
"questionFieldMap": "xs:string",
"senderDetails": "xs:string",
"ccDetails": "xs:string",
"connectionMap": "xs:string",
"connectionUpdateTimeline": false,
"connectionTimelineVisibility": "xs:string",
"employeeAssignmentUserId": "xs:string",
"employeeAssignmentNumber": "xs:string"
}
};
fetch(endpoint, {
method: 'POST',
headers: {
"Authorization": "ESP-APIKEY yourHornbillAPIKey"
},
body: JSON.stringify(payload)
}).then(res => res.json())
.then(res => console.log(res));
const axios = require('axios');
const endpoint = "https://api.hornbill.com/yourinstanceid/xmlmc/apps/com.hornbill.servicemanager/ServiceRequests";
const payload = {
"@service": "apps/com.hornbill.servicemanager/ServiceRequests",
"@method": "logServiceRequest",
"params": {
"summary": "xs:string",
"description": "xs:string",
"requestType": "xs:string",
"customerId": "xs:string",
"customerType": "xs:string",
"ownerId": "xs:string",
"teamId": "xs:string",
"status": "xs:string",
"priorityId": "xs:string",
"categoryId": "xs:string",
"categoryName": "xs:string",
"image": "xs:string",
"sourceType": "xs:string",
"sourceId": "xs:string",
"assetId": "xs:string",
"impact": "xs:string",
"urgencyId": "xs:string",
"serviceId": "xs:string",
"questions": "xs:string",
"resolutionDetails": "xs:string",
"fileName": "xs:string",
"siteId": "xs:string",
"siteName": "xs:string",
"catalogId": "xs:string",
"catalogName": "xs:string",
"externalRefNumber": "xs:string",
"bpmName": "xs:string",
"questionFieldMap": "xs:string",
"senderDetails": "xs:string",
"ccDetails": "xs:string",
"connectionMap": "xs:string",
"connectionUpdateTimeline": false,
"connectionTimelineVisibility": "xs:string",
"employeeAssignmentUserId": "xs:string",
"employeeAssignmentNumber": "xs:string"
}
};
const axiosConfig = {
headers: {
"Authorization": "ESP-APIKEY yourHornbillAPIKey"
}
};
axios.post(endpoint, payload, axiosConfig)
.then((res) => {
console.log("RESPONSE RECEIVED: ", res);
})
.catch((err) => {
console.log("AXIOS ERROR: ", err);
})
$endpoint = "https://api.hornbill.com/yourinstanceid/xmlmc/apps/com.hornbill.servicemanager/ServiceRequests";
$payload = (object) [
'@service' => 'apps/com.hornbill.servicemanager/ServiceRequests',
'@method' => 'logServiceRequest',
'params' => (object) [
'summary' => 'xs:string',
'description' => 'xs:string',
'requestType' => 'xs:string',
'customerId' => 'xs:string',
'customerType' => 'xs:string',
'ownerId' => 'xs:string',
'teamId' => 'xs:string',
'status' => 'xs:string',
'priorityId' => 'xs:string',
'categoryId' => 'xs:string',
'categoryName' => 'xs:string',
'image' => 'xs:string',
'sourceType' => 'xs:string',
'sourceId' => 'xs:string',
'assetId' => 'xs:string',
'impact' => 'xs:string',
'urgencyId' => 'xs:string',
'serviceId' => 'xs:string',
'questions' => 'xs:string',
'resolutionDetails' => 'xs:string',
'fileName' => 'xs:string',
'siteId' => 'xs:string',
'siteName' => 'xs:string',
'catalogId' => 'xs:string',
'catalogName' => 'xs:string',
'externalRefNumber' => 'xs:string',
'bpmName' => 'xs:string',
'questionFieldMap' => 'xs:string',
'senderDetails' => 'xs:string',
'ccDetails' => 'xs:string',
'connectionMap' => 'xs:string',
'connectionUpdateTimeline' => 'xs:boolean',
'connectionTimelineVisibility' => 'xs:string',
'employeeAssignmentUserId' => 'xs:string',
'employeeAssignmentNumber' => 'xs:string',
]
];
$headers = [
'Authorization: ESP-APIKEY yourHornbillAPIKey',
'Content-Type: application/json'
];
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $endpoint);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$resp = curl_exec($curl);
curl_close($curl);
echo $resp;
$Endpoint = "https://api.hornbill.com/yourinstanceid/xmlmc/apps/com.hornbill.servicemanager/ServiceRequests"
$Body = @{
"@service" = "apps/com.hornbill.servicemanager/ServiceRequests"
"@method" = "logServiceRequest"
params = @{
summary = "xs:string"
description = "xs:string"
requestType = "xs:string"
customerId = "xs:string"
customerType = "xs:string"
ownerId = "xs:string"
teamId = "xs:string"
status = "xs:string"
priorityId = "xs:string"
categoryId = "xs:string"
categoryName = "xs:string"
image = "xs:string"
sourceType = "xs:string"
sourceId = "xs:string"
assetId = "xs:string"
impact = "xs:string"
urgencyId = "xs:string"
serviceId = "xs:string"
questions = "xs:string"
resolutionDetails = "xs:string"
fileName = "xs:string"
siteId = "xs:string"
siteName = "xs:string"
catalogId = "xs:string"
catalogName = "xs:string"
externalRefNumber = "xs:string"
bpmName = "xs:string"
questionFieldMap = "xs:string"
senderDetails = "xs:string"
ccDetails = "xs:string"
connectionMap = "xs:string"
connectionUpdateTimeline = "xs:boolean"
connectionTimelineVisibility = "xs:string"
employeeAssignmentUserId = "xs:string"
employeeAssignmentNumber = "xs:string"
}
}
$Header = @{
"Authorization" = "ESP-APIKEY yourHornbillAPIKey"
}
$Parameters = @{
Method = "POST"
Uri = $Endpoint
Headers = $Header
Body = ($Body | ConvertTo-Json)
ContentType = "application/json"
}
Invoke-RestMethod @Parameters
import requests
import json
endpoint = "https://api.hornbill.com/yourinstanceid/xmlmc/apps/com.hornbill.servicemanager/ServiceRequests"
headers = {
"Authorization": "ESP-APIKEY yourHornbillAPIKey"
}
payload={
"@service":"apps/com.hornbill.servicemanager/ServiceRequests",
"@method":"logServiceRequest",
"params":{
"summary":"xs:string",
"description":"xs:string",
"requestType":"xs:string",
"customerId":"xs:string",
"customerType":"xs:string",
"ownerId":"xs:string",
"teamId":"xs:string",
"status":"xs:string",
"priorityId":"xs:string",
"categoryId":"xs:string",
"categoryName":"xs:string",
"image":"xs:string",
"sourceType":"xs:string",
"sourceId":"xs:string",
"assetId":"xs:string",
"impact":"xs:string",
"urgencyId":"xs:string",
"serviceId":"xs:string",
"questions":"xs:string",
"resolutionDetails":"xs:string",
"fileName":"xs:string",
"siteId":"xs:string",
"siteName":"xs:string",
"catalogId":"xs:string",
"catalogName":"xs:string",
"externalRefNumber":"xs:string",
"bpmName":"xs:string",
"questionFieldMap":"xs:string",
"senderDetails":"xs:string",
"ccDetails":"xs:string",
"connectionMap":"xs:string",
"connectionUpdateTimeline":"xs:boolean",
"connectionTimelineVisibility":"xs:string",
"employeeAssignmentUserId":"xs:string",
"employeeAssignmentNumber":"xs:string",
},
}
response = requests.request("POST", endpoint, json=payload, headers=headers)
print(response.text)
- Version {{docApp.book.version}}
- Node {{docApp.node}} / {{docApp.build}}