How can we help?
{{docApp.searchError}}
{{product.name}}
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 - Requests
- Class:
Entity
- Required Privilege Level:
guest
- Required Rights: none
Description
This flowcode is used to update the Status of a request and optionally update the Sub-status. You can choose whether to update the timeline, set the visibility of the timeline post and choose to set an indefinite or fixed off-hold time if updating the request status to 'On Hold'
Request Parameters
The smUpdateStatus 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 |
---|---|---|---|
requestId |
xs:string |
Yes | The h_pk_reference value of the h_itsm_requests record. |
status |
xs:string |
Yes | The status that the request is to be updated to (New, Open, On Hold, Resolved, Closed, Cancelled). |
subStatus |
xs:string |
No | The sub-status that the request is to be updated to |
updateTimeline |
xs:string |
No | Indicates whether or not a system update is made to the request timeline. Default is No. This param is superseded by the input param manualUpdateTimeline. |
manualUpdateTimeline |
xs:string |
No | Freetext update to the request timeline. This supersedes the input param updateTimeline. |
visibility |
xs:string |
No | The request timeline post visibility. If not specified, the application option value will be used. |
onHoldUntilDate |
xs:dateTime |
No | If placing on hold, you can provide the date and time that the request is to be placed On Hold until. |
statusActionReason |
xs:string |
No | This parameter is now deprecated. |
Response Parameters
Name | Type | Description |
---|---|---|
activityId |
xs:string |
The ID of the entry created in the activity stream |
exceptionName |
xs:string |
Name of the returned exception |
exceptionDescription |
xs:string |
Description of the returned exception |
Code Examples
curl -X POST 'https://api.hornbill.com/yourinstanceid/xmlmc/apps/com.hornbill.servicemanager/Requests' \
-H 'Authorization: ESP-APIKEY yourHornbillAPIKey' \
-H 'Content-Type: application/json' \
-d '{"@service":"apps/com.hornbill.servicemanager/Requests","@method":"smUpdateStatus","params":{"requestId":"xs:string","status":"xs:string","subStatus":"xs:string","updateTimeline":"xs:string","manualUpdateTimeline":"xs:string","visibility":"xs:string","onHoldUntilDate":"xs:dateTime","statusActionReason":"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("requestId", "xs:string")
hornbillAPI.SetParam("status", "xs:string")
hornbillAPI.SetParam("subStatus", "xs:string")
hornbillAPI.SetParam("updateTimeline", "xs:string")
hornbillAPI.SetParam("manualUpdateTimeline", "xs:string")
hornbillAPI.SetParam("visibility", "xs:string")
hornbillAPI.SetParam("onHoldUntilDate", "xs:dateTime")
hornbillAPI.SetParam("statusActionReason", "xs:string")
responseBody, apiError := hornbillAPI.Invoke("apps/com.hornbill.servicemanager/Requests", "smUpdateStatus")
if apiError != nil {
fmt.Println(apiError)
return
}
fmt.Println(responseBody)
}
const endpoint = "https://api.hornbill.com/yourinstanceid/xmlmc/apps/com.hornbill.servicemanager/Requests";
const payload = {
"@service": "apps/com.hornbill.servicemanager/Requests",
"@method": "smUpdateStatus",
"params": {
"requestId": "xs:string",
"status": "xs:string",
"subStatus": "xs:string",
"updateTimeline": "xs:string",
"manualUpdateTimeline": "xs:string",
"visibility": "xs:string",
"onHoldUntilDate": "xs:dateTime",
"statusActionReason": "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/Requests";
const payload = {
"@service": "apps/com.hornbill.servicemanager/Requests",
"@method": "smUpdateStatus",
"params": {
"requestId": "xs:string",
"status": "xs:string",
"subStatus": "xs:string",
"updateTimeline": "xs:string",
"manualUpdateTimeline": "xs:string",
"visibility": "xs:string",
"onHoldUntilDate": "xs:dateTime",
"statusActionReason": "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/Requests";
$payload = (object) [
'@service' => 'apps/com.hornbill.servicemanager/Requests',
'@method' => 'smUpdateStatus',
'params' => (object) [
'requestId' => 'xs:string',
'status' => 'xs:string',
'subStatus' => 'xs:string',
'updateTimeline' => 'xs:string',
'manualUpdateTimeline' => 'xs:string',
'visibility' => 'xs:string',
'onHoldUntilDate' => 'xs:dateTime',
'statusActionReason' => '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/Requests"
$Body = @{
"@service" = "apps/com.hornbill.servicemanager/Requests"
"@method" = "smUpdateStatus"
params = @{
requestId = "xs:string"
status = "xs:string"
subStatus = "xs:string"
updateTimeline = "xs:string"
manualUpdateTimeline = "xs:string"
visibility = "xs:string"
onHoldUntilDate = "xs:dateTime"
statusActionReason = "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/Requests"
headers = {
"Authorization": "ESP-APIKEY yourHornbillAPIKey"
}
payload={
"@service":"apps/com.hornbill.servicemanager/Requests",
"@method":"smUpdateStatus",
"params":{
"requestId":"xs:string",
"status":"xs:string",
"subStatus":"xs:string",
"updateTimeline":"xs:string",
"manualUpdateTimeline":"xs:string",
"visibility":"xs:string",
"onHoldUntilDate":"xs:dateTime",
"statusActionReason":"xs:string",
},
}
response = requests.request("POST", endpoint, json=payload, headers=headers)
print(response.text)
- Version {{docApp.book.version}}
- Node {{docApp.node}} / {{docApp.build}}
In This Document