Jump to content

Search the Community

Showing results for tags 'api'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Hornbill Platform and Applications
    • OpenForWork
    • Announcements
    • Blog Article Discussions
    • General Non-Product Discussions
    • Application Beta Program
    • Collaboration
    • Employee Portal
    • Service Manager
    • IT Operations Management
    • Project Manager
    • Supplier Manager
    • Customer Manager
    • Document Manager
    • Timesheet Manager
    • Live Chat
    • Board Manager
    • Mobile Apps
    • System Administration
    • Integration Connectors, API & Webhooks
    • Performance Analytics
    • Hornbill Switch On & Implementation Questions
    • GRC Manager
  • About the Forum
    • Announcements
    • Suggestions and Feedback
    • Problems and Questions
  • Gamers Club's Games
  • Gamers Club's LFT

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start








Website URL





  1. Hi there, Trying to get the Microsoft Graph API connection set up to allow us to sync usernames but seem to be having issues whether using the secret in the json or using the KeySafe method. When trying to set up the KeySafe method and hitting the 'connect' button it says that it's been unable to connect ("Unexpected Exception: Failed to load the requested oauth2 config") and when configuring the key values and data in the .json config file itself the debug log reports endpoint returning a 401 error ("2022/04/12 12:05:49 [DEBUG] [SCRIPT] Generating Bearer Token 2022/04/12 12:05:49 [ERROR] [Azure] BearerToken Error: Invalid HTTP Response: 401"). I have recopied the client ID, client secret/value, and tenent ID several times as errors with seems to be the most widely reported reason for this error but to no avail. The executable/zip appears to be the current one linked to on github by the instructions at https://wiki.hornbill.com/index.php?title=Azure_User_Import and https://wiki.hornbill.com/index.php?title=Azure_App_Registration_Instructions. I'm not entirely sure we've populated all the required values on the KeySafe given how empty it's looking after we've plumbed in all the details we are aware of and given the error message but not sure how we'd even determine what the other values should be. Please can anyone advise what we might try next or that we might have overlooked, don't seem to see any KeySafe logs at https://wiki.hornbill.com/index.php?title=Hornbill_KeySafe either unfortunately. Thanks for any thoughts you might have. Kind regards, Oscar
  2. We are looking at implementing the use of the Hornbill Data Export utility to warehouse some of our data to a local SQL Server database. As part of this we need to create a permanent API Key, which we would like to restrict using the 'Rules' option for security purposes (https://wiki.hornbill.com/index.php?title=API_keys). Therefore can you please advise which service:api combinations are required by the current Hornbill Data Export export utility. Cheers Martyn
  3. In our prior helpdesk, we had triggers from a propriatary HR database that produced requests. We have decided to reproduce that functionality in Hornbill by modifying the code in the triggers to access the Hornbill API. So someone ends their employment, HR changes their status to terminated, and that kicks off the creation of a Termination request in Hornbill. We call them Terminations whether the employee initiated the separation, or the company did. Our development team, who have not ever worked with Hornbill, other than manually entering & servicing requests (no automation or API experience yet), sent me a few questions. I was pleased that I (maybe) knew the answer to one of them. The questions asked were: 1. The specs seem to indicate that they are expecting a SOAP WS call – Can we find out if Hornbill can accept RESTFul call with a JSON payload? 2. On the response they send, can they respond via JSON objects? Or only XML response? 3. Do they need to be called via secure web service? If so we may need to know the authentication un/pw? I think #3 is that they need to use an API Key that I generate for the account we want to use for authentication. No idea on #s 1 & 2. Thanks in advance for any clarification you may be able to provide. Kevin K.
  4. I have two separate scripts: # Define output stream type [OutputType([object])] # Define runbook input params Param ( # API Params #[Parameter (Mandatory= $true)] [string] $reportId = "842", [string] $outputFormat, [string] $runtimeParameter, [string] $comment, [string] $publish ) # Add XMLMC params Add-HB-Param "reportId" $reportId $false Add-HB-Param "outputFormat" $outputFormat $false Add-HB-Param "runtimeParameter" $runtimeParameter $false Add-HB-Param "comment" $comment $false Add-HB-Param "publish" $publish $false # Invoke XMLMC call, output returned as PSObject $xmlmcOutput = Invoke-HB-XMLMC "reporting" "reportRun" $exceptionName = "" $exceptionSummary = "" # Read output status if($xmlmcOutput.status -eq "ok") { if($xmlmcOutput.params.runId -and $xmlmcOutput.params.runId -ne ""){ $runId = $xmlmcOutput.params.runId } if($xmlmcOutput.params.exceptionName -and $xmlmcOutput.params.exceptionName -ne ""){ $exceptionName = $xmlmcOutput.params.exceptionName $exceptionSummary = $xmlmcOutput.params.exceptionDescription } } # Build resultObject to write to output $resultObject = New-Object PSObject -Property @{ Status = $xmlmcOutput.status Error = $xmlmcOutput.error ExceptionName = $exceptionName ExceptionSummary = $exceptionSummary runId = $runId } if($resultObject.Status -ne "ok" -or $exceptionName -ne ""){ Write-Error $resultObject } else { Write-Output $runId } This generates a run ID for a report which downloads successfully if I manually enter the run ID into: # Define output stream type [OutputType([object])] # Define runbook input params Param ( # API Params #[Parameter (Mandatory= $true)] [string] $runId = "45234" ) # Add XMLMC params Add-HB-Param "runId" $runId $false # Invoke XMLMC call, output returned as PSObject $xmlmcOutput = Invoke-HB-XMLMC "reporting" "reportRunGetStatus" $exceptionName = "" $exceptionSummary = "" # Read output status if($xmlmcOutput.status -eq "ok") { if($xmlmcOutput.params.reportRun -and $xmlmcOutput.params.reportRun -ne ""){ $reportRun = $xmlmcOutput.params.reportRun } if($xmlmcOutput.params.files -and $xmlmcOutput.params.files -ne ""){ $files = $xmlmcOutput.params.files } if($xmlmcOutput.params.delivery -and $xmlmcOutput.params.delivery -ne ""){ $delivery = $xmlmcOutput.params.delivery } if($xmlmcOutput.params.exceptionName -and $xmlmcOutput.params.exceptionName -ne ""){ $exceptionName = $xmlmcOutput.params.exceptionName $exceptionSummary = $xmlmcOutput.params.exceptionDescription } } # Build resultObject to write to output $resultObject = New-Object PSObject -Property @{ Status = $xmlmcOutput.status Error = $xmlmcOutput.error ExceptionName = $exceptionName ExceptionSummary = $exceptionSummary reportRun = $reportRun files = $files delivery = $delivery } if($resultObject.Status -ne "ok" -or $exceptionName -ne ""){ Write-Error $resultObject } else { $reportFileLink = $files | Select -ExpandProperty name $reportID = "123" $HornbillKey = "xxxxxxx" [string] $url = "https://mdh-p01-api.hornbill.com/iposervicedesk/dav/" + "reports/" + $reportID + "/" + $reportFileLink $headers = @{} if ($HornbillKey -ne $null) { $headers["Authorization"] = "ESP-APIKEY $HornbillKey" } try { $result = Invoke-WebRequest -Uri $url -Method GET -OutFile "./$reportFileLink" -Headers $headers } Catch { Write-Error $_.Exception.Message } } What I want to do is parse the run ID that is output from the first piece of code so that the report downloads without having to manually specify the run ID to the second piece of code. . "./script1.ps1" - runId $runId Doesn't have the desired effect.
  5. We are just testing implementing a LogIncident and LogServiceRequest API calls. These are api calls are successful and the results returns the RequestId, summary and an empty warning array. We are including the ServiceId and CatalogId in the requests which is showing correctly when we view the request in the live user application. However a linked BPM process is not being spawned when to make these requests, even though the documentation states it will be when the providing the ServiceId. We have also tried the LogRequestBPM node afterwards but this returns the 'defaultProcessNotSet'. We do not set a default BPM process at the Service Level as we have the system set to enforce the selection of the catalog. I wondering if the api documentation needs to be updated when using the combination of ServiceId and CatalogId? We are not passing a bpmName, as we are expecting the provision of the ServiceId and CatalogId to used to determine this rather than having to hard code this or make an earlier call to get the bpmname from the service details. Cheers Martyn
  6. In the API call LogIncident, there is a string parameter 'questions' but we cannot find any further information on the syntax of this string parameter on how to pass and delimiter individual questions and answers. Has anyone got any more details or examples for populating this parameter? Cheers Martyn
  7. Related to the forum post below, we are have to call the 'getCatalog' API call in order to obtain the catalog specific BPM Name, however this call fails reporting no access allowed, unless I give the integration user admin/super user roles. Can you confirm the minimum permissions needed for the 'getCatalog' API call to be able to return the details successfully? Cheers Martyn
  8. @Steve G Can I just double check that when invoking API methods using the APIKey connection parameter, does the session persist? I was thinking the session is closed after each method is invoked, but when looking at the User in the Admin Tool it is showing as Online. If the session does persist, is there a method that is required to be called to terminate the session? The UserLogon/Logoff methods seem to only relate to sessions being made with username/password combinations. Cheers Martyn
  9. As confirmed under linked post below. the current API log request nodes only spawns a BPM if you specify the the serviceId and have a default BPM set at the service level. With the development of the service catalog and catalog items are now available on all current request types to allow use of different BPM workflows, can the API call logic be enhanced to apply the same capability that it offers for 'Service' level requests, so that the catalog specific BPM workflow is spawned when passing both the serviceId and catalogId as parameters. At the moment you have to undertake an additional request first of to obtain the current BPM name from the catalog before being able to call the Log api endpoint as you need to pass the BPM Name, which is not efficient. Similarly you would not want to hard code the BPM Name in your application. Cheers Martyn
  10. I have a scenario where I would like to post text data capture from a client into a Service Request through the API. At present I would like to use either 1) A request custom attribute to store the data Not sure of what Hornbill Service Manager Requests function is best to do this. or 2) A request activity stream entry with a specific type I have successfully done this using "https://api.hornbill.com/apps/com.hornbill.servicemanager/Requests?op=updateReqTimeline" However, once the data is posted I then want to be able to search / find the values via the API For both scenarios above I am not sure of the correct Requests function to do this. Any assistance would be greatly appreciated. Kind Regards Ben
  11. Hello, Looking for some advice, I would like to use Hornbill to trigger an outbound API call to trigger a CI/CD pipeline in Azure DevOps. Does anyone have any experience with this? or is it even possible? Thanks!
  12. Would it be possible for the Code Samples section on the 'api.hornbill.com' be extended to include Go and Python, to match the languages for which the provided api libraries? Cheers Martyn
  13. We are looking we replacing an embedded ZenDesk Log Request Widget for one of our divisions we are looking to move over to Hornbill. As part of this we are looking at the API to determine how to collect the necessary information required to call the LogRequest node. In the web application where we are trying to use the application we will have the email address of the user, so are trying to locate a api method to get the Contact ID of the external user (i.e. Contact) based on the email address. The API library does not seem to provide a method other then GetList to be able to retrieve by searching, but this is marked as internal use only. Any suggestions on what method we should be using? Cheers Martyn
  14. Evening all, almost Friday! New Hornbill Service Manager customer here. I'm currently trying to get my BPM workflow to move past a "Wait on Request Update" suspend node by updating it using PowerShell and the API but I'm hitting an issue and was hoping someone could steer me in the right direction. Up to now I've been able to update the requests using Requests::update to make a number of changes but this doesn't appear to progress the flow past the suspend node. I've also attempted updating the description field via the API while using the "Wait for Request Description" task in the flow but this too didn't go anywhere. This is the code I'm using to do the update to the description field in this case. # Build XMLMC API call Add-Param "requestId" "SR00000646" Add-Param "h_description" "Updated AGAIN!" $xmlmcOutput = Invoke-XMLMC "apps/com.hornbill.servicemanager/Requests" "update" -Verbose Is there a different method I should be using to fulfil the update action that the suspend node is waiting on? Many thanks Brendan
  15. British summer is here (apparently), and now that I'm working on code that relies on dates and times of change requests I've noticed that different formats are being shown depending on what I query. E.g. If I query a request using '' I get:
  16. Hi. I'm not sure if this is the right place to ask this, but, anyway. Since I've applied the last Service Manager update yesterday evening, the h_summary field is no longer being returned when the smGetRequests is run. The field name does not even return in the response anymore so not even like the value is in error. Are you aware of any change or issue within the API? Thanks and regards, Alberto
  17. Hi. When trying to update the sub status of an SR using "Operation - com.hornbill.servicemanager/Requests::smUpdateStatus" I get the following message: API Call Status : fail Error Returned : FlowCode Exception (com.hornbill.servicemanager/entities/Requests/fc_ops/smUpdateSubstatus): nodeName: Set the Output; nodeId: 0a2e4bdf-e634-46a5-afc2-39a985bebbb2; At 264/ 1: "Uncaught TypeError: Cannot read property 'activityId' of undefined" throw(e); _fc_node_exec_0a2e4bdf_e634_46a5_afc2_39a985bebbb2 When trying to update the sub status of an SR using "Operation - com.hornbill.servicemanager/Requests::smUpdateStatus" the sub status does not change and no error is produced. I am however able to successfully change the status of the SR (Open > On Hold > Open). When using this method i submit both Status and Sub Status ID. Any ideas? There does not appear to be much to go wrong within the request. So is this an API bug or a back end configuration issue? Many Thanks Ben
  18. Hi all, I am trying to automate the export of request data and more importantly the responses to questsions using APIs. So far I can get all requests that match search query using : "apps/com.hornbill.servicemanager/Requests" "searchRequests" I can then loop through each request getting various details using : "apps/com.hornbill.servicemanager/Requests" "smGetReqDetails2" This enables me to return the number of questions completed but not the actual responses. Is there another API that has this feature that I can't find? Many Thanks Ben
  19. We are moving from Lynda.com learning to LinkedIn Learning in the next few months, we would like a way if possible to update users details etc via an API.... not sure if this would be possible? We are essentially looking for a way if possible to update accounts with name changes etc but not sure if this is possible.
  20. Hi all, I'm trying to dynamically kick off change requests using the Hornbill api and using the logChangeRequest method, but in order for it to be logged correctly and the BPM to kick in I also need to feed it the expected answers from a progressive capture form. I've tried answering the questions using their field id within the "questions" param, however no matter which way I try to format them I get a FlowCode exception. I'm making the call within a PoSh script and have successfully logged Service Requests/Incidents, just this is currently giving me grief! Example params: $xmlmcParams = " <summary>$summary</summary> <description>$description</description> <requestType>Change Request</requestType> <teamId>STB/IT_#####/IT_#####/</teamId> <status>status.new</status> <sourceType>API</sourceType> <questions> <Question_1>Standard</Question_1> <Question_2>Low</Question_2> <Question_3>Standard process</Question_3> <Question_4>Low</Question_4> <Question_5>Standard process</Question_5> <Question_6>Roll back</Question_6> <Question_7>n/a</Question_7> </questions> <changeType>Standard</changeType>" Exception: FlowCode Exception (com.hornbill.servicemanager/entities/ChangeRequests/fc_ops/logChangeRequest): Input parameter validation error: The simple type value contains unexpected child elements at location &apos;/methodCall/params/questions&apos; Do I also need to supply the questionFieldMap param for this to work? If anyone has a working example of making a call which contains answers which would normally be fed from a prog capture that would be b e a u tiful.
  21. Hi All, Would you be able to let me know the expected attributes for the parameters of the API call below - https://api.hornbill.com/apps/com.hornbill.servicemanager/Requests?op=getCustomerRequests i.e. Should the Customer ID just be passed as a number, What format should the "Query String" be..? etc. Can you also double check the optional parameters are indeed optional and the order is correct?
  22. I am struggling to locate a specific API method for adding a new set of values to a simple list (Service Manager). Is this just done via the generic addRecord method? Cheers Martyn
  23. I am looking to use the 'logRequestBPM' process to spawn BPM process on a number of imported requests (loaded via the Request Import tool) which did not get the BPM spawned due to the connection being lost to our instance. The text in the general description references the Service ID but the Input Parameters section references the 'defaultBpm' but optional. Therefore would I be correct in presuming if we make this call to the api passing only the 'h_pk_reference' the process would pick on the BPM from the Service/Catalog assigned to the request? If we wanted to be explicit and specify the 'defaultBpm', what id does this use? https://api.hornbill.com/apps/com.hornbill.servicemanager/Requests?op=logRequestBPM Cheers Martyn
  24. All, We are looking to run a query involving requests for historic updates - https://api.hornbill.com/apps/com.hornbill.servicemanager/RequestHistoricUpdates?op=read. Unfortunately our API call does not complete as a "queryName" is required as well as the requestid. Our other arguments do not use this parameter. Could you provide some context to what the "queryName" is or what should be specified? I imagine it is something quite simple. Many Thanks, Josh M
  25. Hello everybody We are using the Requests::smGetRequests API to extract data about incidents / requests. What we are trying to do is to find out which requests have received Customer Feedback, and then extract the Customer Feedback via an API. We have gone through the API documents, but cannot work out how to do this. I can see that Requests::smGetDetails does have this information, but this needs a requestId (e.g. IN123456789), and cannot be filtered on the date the feedback was given. Is there an API to get the 'Request Feedback' entity, or the h_itsm_request_feedback? Hope you can help. Alex
  • Create New...