Want to develop an interface with the Naverisk system?
This reference guide is intended for developers creating an interface with the Naverisk system. This is a technical document showing how to use the Naverisk API. The API uses SOAP and this document provides the information required to make the SOAP requests and process the responses correctly. This document also includes examples of each call, demonstrating how to add the request to a tool called Postman.
In your code, it is recommended to use Json.NET from Json.NET - Newtonsoft which is a free third-party dll to convert the response to an object which you can then use. The documentation can be found here:
If your requests are not working:
If you get the error “Unable to handle request without a valid action parameter. Please supply a valid soap action.” => The request parameters are case-sensitive. So for example, in the login request if you type in “login” instead of “Login” or “Username” instead of “username” then the request will not succeed. We realize that our web services are not consistently cased nor named so it is necessary to be careful when typing in the requests. All the requests in this document have been tested - so if it does not work then look carefully at how it is written here.
Ensure that you have a login username and password for a user that has sufficient rights.
Ensure that you do POST requests
Ensure that you have the correct Naverisk Website Address (which you use when you go to the Naverisk Website).
Ensure that you have added a Content-Type header of “text/xml; charset=utf-8”.
Ensure that you have a currently logged-on session guid
There is variation in the APIs as to whether tags that you do not want to provide a value for should be included in the request with no value or completely excluded from the request.
1.0 Postman
We recommend using Postman to test your API calls. We will use Postman throughout this guide to explain the API requests and their responses.
Postman can be downloaded here: Download Postman | Get Started for Free. The version we have worked on within this reference guide is 9.15.10. Postman may also be accessed via your web browser. In both cases, you need to create a free Postman account.
1.1 Postman Newman
You can also install Postman Newman - a command-line tool. It makes it easy to run your postman collections as part of some other process. eg your build system.
1.2 Postman Collection
Create a collection in Postman. You may call the collection whatever you like. Here we have called it Naverisk”. This collection will be used to hold all the API requests you create when you are testing the API. You do not have to do this, but it certainly helps when coding against the API so that you can understand precisely how to make an API request and also see the response that is returned.
1.3 Adding a Request to the Collection
In this guide, for each API, we will say “Add a request to your Postman collection and use this xml.” This section explains how to do that. Note the Request URL is different for each Webservice.
The steps are:
Right click on your Postman collection and select “Add Request” from the menu.
Request name: Login
Request type: POST
Click on Headers tab and add the header:
Key: Content-Type
Value: text/xml; charset=utf-8
Click on Body tab and select raw: change raw type to XML
Enter in the request XML
1.4 Collection Variables
See the Postman documentation here: Using variables | Postman Learning Center.
What you can do is create a collection variable called session_guid. Then when you login you just need to update this variable. You can then use this variable in all of your requests. ie {{session_guid}}
2.0 Authentication Webservice
The Authentication Webservice URL is https://<NaveriskWebsiteAddress>/api/AuthenticationService.asmx.
2.1 Login
This request logs in a user bypassing the username and the password. This request will return a Session Guid used to identify all further requests to the API.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this XML.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<Login
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<username>username</username>
<password>password</password>
</Login>
</s:Body>
</s:Envelope>
Click Send button
If all goes well then you will see a response of “Status: 200 OK”. Click on the Body tab to see the response. Here is what the above looks like in Postman:
The response data includes the Session Guid which will be used for other requests. There is also the UserID and the ClientID.
2.2 Logoff
This request logs off the user and so discards the Session Guid.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<Logoff
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<sessionGuid>{{session_guid}}</sessionGuid>
</Logoff>
</s:Body>
</s:Envelope>
Click Send button
If all goes well then you will see a response of “Status: 200 OK”. Click on the Body tab to see the response. Here is what the above looks like in Postman:
2.3 Create User
This request logs creates a user
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml. These are the mandatory parameters for this request.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CreateUser
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientId>1</clientId>
<username>testuser</username>
<password>password</password>
<confirmPassword>password</confirmPassword>
<firstname>Test</firstname>
<lastname>User</lastname>
<emailAddress>test.users@somewhere.com</emailAddress>
<userGroups>1</userGroups>
<startTab>Service Desk</startTab>
<defaultSearch>0</defaultSearch>
<timezoneOffsetName>Auckland</timezoneOffsetName>
<receiveAnnouncements>true</receiveAnnouncements>
<ticketExpandEnable>true</ticketExpandEnable>
<roleName>Test</roleName>
<phoneNumber>099999999</phoneNumber>
<mobileNumber>0278888888</mobileNumber>
<faxNumber>0888888888</faxNumber>
<voip>Test</voip>
<enableSounds>true</enableSounds>
<userTimeout>5</userTimeout>
<canAssignTicket>true</canAssignTicket>
<sessionGuid>{{session_guid}}</sessionGuid>
</CreateUser>
</s:Body>
</s:Envelope>
Click Send button
Will return “success” = true if the request successfully creates the client. Will also return the generated user id in the PrimaryIdentifier field.
Parameters:
Parameter | Details | Mandatory |
clientId | The parent client id | Yes |
username |
| Yes |
password |
| Yes |
confiirmPassword |
| Yes |
firstname |
| Yes |
lastname |
| Yes |
emailAddress |
| Yes |
userGroups | Comma delimited list of group ids | Yes |
startTab | Home, Service Desk, Devices, Scheduling, Projects, Reports, Cloud, Clients, Settings (defaults to Home) | No |
defaultSearch | 0 = tickets, 1 = devices, 2= software, default to 0 | No |
timezoneOffsetName | The TimeZone name. Foe example “Greenland” or “Auckland” | No |
receiveAnnouncements | true/false | No |
ticketExpandEnable | true/false | No |
roleName |
| No |
phoneNumber |
| No |
mobileNumber |
| No |
faxNumber |
| No |
voip |
| No |
enableSounds | true/false | No |
userTimeout | eg 60 | No |
canAssignTicket | true/false | No |
sessionGuid |
| Yes |
3.0 Client Webservice
The Client Webservice URL is https://<NaveriskWebsiteAddress>/api/ClientService.asmx
3.1 Get Client List
This request returns a list of clients which the user you have authenticated as is allowed to see.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetClientsList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<sessionGuid>{{session_guid}}</sessionGuid>
</GetClientsList>
</s:Body>
</s:Envelope>
Click Send button
Sample Response:
{"Keys": [“2”, “3”],
"Values":[“ClientName2”, “ClientName3”]}
3.2 Get Detailed Client List
This request returns a list of clients with detailed client data which the user you have authenticated as is allowed to see.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetClientDetailedList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<sessionGuid>{{session_guid}}</sessionGuid>
</GetClientDetailedList>
</s:Body>
</s:Envelope>
Click Send button
Sample Response:
{“List”: [
{"LicenseType":"Standard", "CombinedID":"1", "ClientTypeID":1, "ParentID":"", "Name":"ClientName"}, {"LicenseType":"Standard", "CombinedID":"2", "ClientTypeID":2, "ParentID":"1", "Name":"ClientName2"}, {"LicenseType":"Standard", "CombinedID":"3", "ClientTypeID":2, "ParentID":"1", "Name":"ClientName3"}]}
3.3 Get Client Child List
This request returns a list of clients who are children (or sub clients) of the client.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetChildClientsList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientID>1</clientID>
<sessionGuid>{{session_guid}}</sessionGuid>
</GetChildClientsList>
</s:Body>
</s:Envelope>
Click Send button
Sample Response:
{"Keys": [“2”, “3”],
"Values":[“ClientName2”, “ClientName3”]}
3.4 Get Parent and Client Child List
This request returns a list of clients who are children (or sub clients) of the client.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetParentAndChildClientsList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientID>1</clientID>
<sessionGuid>{{session_guid}}</sessionGuid>
</GetParentAndChildClientsList>
</s:Body>
</s:Envelope>
Click Send button
Sample Response:
{"Keys": [““, “2”, “3”],
"Values":[““, “ClientName2”, “ClientName3”]}
3.5 Create Client
This request creates a client.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CreateClient
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientId>1</clientId>
<name>Test Client</name>
<industry></industry>
<status>Good</status>
<numberOfStaff>0</numberOfStaff>
<address></address>
<sessionGuid>{{session_guid}}</sessionGuid>
</CreateClient>
</s:Body>
</s:Envelope>
Click Send button
Will return “success” = true if the request successfully creates the client. Will also return the generated client id in the PrimaryIdentifier field.
Parameters:
Parameter | Details | Mandatory |
clientId | The parent client id | Yes |
name |
| Yes |
industry |
| No |
status | Client status | No |
numberOfStaff |
| Yes |
address |
| No |
3.6 Modify Client
This request modifies a client.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ModifyClient
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<targetClientId>265</targetClientId>
<name>Test Client Modified</name>
<industry></industry>
<status>Good</status>
<numberOfStaff>5</numberOfStaff>
<address></address>
<sessionGuid>{{session_guid}}</sessionGuid>
</ModifyClient>
</s:Body>
</s:Envelope>
Click Send button
Will return “success” = true if the request successfully modifies the client.
Parameters:
Parameter | Details | Mandatory |
tagetClientId | The client to modify | Yes |
name |
| Yes |
industry |
| No |
status | Client status | No |
numberOfStaff |
| Yes |
address |
| No |
3.7 Set Client Integration
This request sets the integration system for the client.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<SetClientIntegration
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientId>265</clientId>
<ProductName>Zendesk</ProductName>
<settings></settings>
<WebServiceUrl></WebServiceUrl>
<UserName></UserName>
<Password></Password>
<company></company>
<Status>0</Status>
<sessionGuid>{{session_guid}}</sessionGuid>
</SetClientIntegration>
</s:Body>
</s:Envelope>
Click Send button
Will return “success” = true if the request successfully sets the client system integration settings.
Parameters:
Parameter | Details | Mandatory |
tagetClientId | The client to modify | Yes |
name |
| Yes |
industry |
| No |
status | Client status | No |
numberOfStaff |
| Yes |
address |
| No |
4.0 Device Webservice
The Device Webservice URL is https://<NaveriskWebsiteAddress>/api/DeviceService.asmx
4.1 Get Device List
This request returns a list of devices for the given client.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetDeviceList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientID>1</clientID>
<sessionGuid>{{session_guid}}</sessionGuid>
</GetDeviceList>
</s:Body>
</s:Envelope>
Click Send button
Sample Response:
{"Keys": [“1000_1”, “1001_1”],
"Values":[“Device 1”, “Device 2”]}
4.2 Get Client Device List
This request returns the list of devices owned by the client with two filtering options:
Only include devices with the agent installed
Only include SNMP devices
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetClientDeviceList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientID>1</clientID>
<DeviceWithAgent>true</DeviceWithAgent>
<includeSNMPDevice>true</includeSNMPDevice>
<sessionGuid>{{session_guid}}</sessionGuid>
</GetClientDeviceList>
</s:Body>
</s:Envelope>
Click Send button
Sample Response:
{"List” : [
{Device 1 properties},
{Device 2 properties}]}
4.3 Get Device Details
This request returns the details of the device.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetDeviceDetails
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientID>1</clientID>
<deviceID>1</deviceID>
<sessionGuid>{{session_guid}}</sessionGuid>
</GetDeviceDetails>
</s:Body>
</s:Envelope>
Click Send button
This one needs a lot of work on describing the response. It is not enough by any means to just regurgitate an example of what is returned. It needs to document what is returned so that it can be understood.
4.4 Change Device Maintenance Mode
This request sets the device in and out of maintenance mode.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ChangeDeviceMaintenanceMode
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientID>1</clientID>
<DeviceListEnable>3_1,4_1</DeviceListEnable>
<DeviceListDisable>5_1,6_1</DeviceListDisable>
<DeviceListPerformance>7_1,8_1</DeviceListPerformance>
<sessionGuid>{{session_guid}}</sessionGuid>
</ChangeDeviceMaintenanceMode>
</s:Body>
</s:Envelope>
Click Send button
The response will include “Error” and “Success” values. “Success” will be true or false.
4.5 Get Agent Device List
This request returns the list of devices which have agents installed and the user is allowed to see.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetAgentDeviceList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientID>1</clientID>
<sessionGuid>{{session_guid}}</sessionGuid>
</GetAgentDeviceList>
</s:Body>
</s:Envelope>
Click Send button
Sample Response:
{"Keys": [“1000_1”, “1001_1”],
"Values":[“Device 1”, “Device 2”]}
4.6 Installed Software By Device (Naverisk 2023 R1 onwards)
This request returns a list of devices, each with a list of software installed on them. The ‘deviceIds’ parameter can be one of the following:
a single Device to return the list of all installed software on the selected device,
a list of Devices separated by commas (eg “2,4,6”) to return the list of all installed software on all the selected devices,
blank to return the list of all installed software of the selected client and sub-clients devices.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<InstalledSoftwareByDevice
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientId>1</clientId>
<deviceIds></deviceIds>
<sessionGuid>{{session_guid}}</sessionGuid>
</InstalledSoftwareByDevice>
</s:Body>
</s:Envelope>
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<InstalledSoftwareByDevice
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientId>1</clientId>
<deviceIds></deviceIds>
<sessionGuid>{{session_guid}}</sessionGuid>
</InstalledSoftwareByDevice>
</s:Body>
</s:Envelope>
Click Send button
Sample Response:
Sample Response:
{
"retrieveDate": 1677465456969,
"devices": [
{
"clientId": 1,
"deviceId": 4,
"operatingSystem": "Microsoft Windows 10 Pro 22H2",
"installedSoftware": [
{
"id": 1769,
"installIdentifier": "Notepad++.Notepad++",
"name": "Notepad++",
"version": "8.4.6",
"installDate": ""
},
{
"id": 1765,
"installIdentifier": "",
"name": "7-Zip 22.01 (x64 edition)",
"version": "22.01.00.0",
"installDate": 1667214000000
}
]
},
{
"clientId": 1,
"deviceId": 5,
"operatingSystem": "Microsoft Windows 10 Pro 22H2",
"installedSoftware": [
{
"id": 1769,
"installIdentifier": "Notepad++.Notepad++",
"name": "Notepad++",
"version": "8.4.6",
"installDate": ""
},
{
"id": 1765,
"installIdentifier": "",
"name": "7-Zip 22.01 (x64 edition)",
"version": "22.01.00.0",
"installDate": 1667214000000
}
]
}
]
]
}
Note that the dates in this sample are numbers - future revisions of this API will have differently formatted Dates.
5.0 Ticket Webservice
The Ticket Webservice URL is https://<NaveriskWebsiteAddress>/api/TicketService.asmx
5.1 Get Ticket List
This request returns a list of tickets, filtered by the parameters, which the user is allowed to see.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml (as an example).
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetTicketList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<start>0</start>
<itemCount>25</itemCount>
<sort>2</sort>
<sortColumn>201</sortColumn>
<consoleType>0</consoleType>
<clearPreviousMonitors>true</clearPreviousMonitors>
<userSpecific>true</userSpecific>
<monitorList>true</monitorList>
<includeStates></includeStates>
<clientIDFilter></clientIDFilter>
<userIDFilter></userIDFilter>
<agreementIDFilter></agreementIDFilter>
<sourceIDFilter></sourceIDFilter>
<priorityIDFilter></priorityIDFilter>
<jobTypeIDFilter></jobTypeIDFilter>
<categoryIDFilter></categoryIDFilter>
<statusIDFilter></statusIDFilter>
<deviceTypeIDFilter></deviceTypeIDFilter>
<slaClassIDFilter></slaClassIDFilter>
<slaStatusIDFilter></slaStatusIDFilter>
<subSourceIDFilter></subSourceIDFilter>
<isBillableFilter></isBillableFilter>
<LocationFilter></LocationFilter>
<ticketNumber></ticketNumber>
<triggerFilter></triggerFilter>
<personFilter></personFilter>
<scheduledFilter></scheduledFilter>
<deviceNameFilter></deviceNameFilter>
<incidentTypeIDFilter></incidentTypeIDFilter>
<sPRstatus></sPRstatus>
<sessionGuid>{{session_guid}}</sessionGuid>
</GetTicketList>
</s:Body>
</s:Envelope>
OR (only including the mandatory parameters)
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetTicketList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<start>0</start>
<itemCount>25</itemCount>
<sort>2</sort>
<sortColumn>201</sortColumn>
<consoleType>0</consoleType>
<sessionGuid>{{session_guid}}</sessionGuid>
</GetTicketList>
</s:Body>
</s:Envelope>
Click Send button
Parameters:
Parameter | Details | Mandatory |
start | Start row number, starting at row 0 | Yes |
itemCount | Number of rows to return | Yes |
sort | 0 No sort, 1 Ascending, 2 Descending | Yes |
sortColumn | 201: Incident Identifier | Yes |
consoleType | The types of SLA Classes: | Yes |
5.2 Close Ticket List
This request closes the ticket. The user who you are logged on as is the one who actions the close. The notes are attached to the closed ticket.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml (as an example).
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CloseTicketList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<eventIDList>4,5</eventIDList>
<notes>Your notes</notes>
<sessionGuid>{{session_guid}}</sessionGuid>
</CloseTicketList>
</s:Body>
</s:Envelope>
Click Send button
Note the eventIDList property is in fact the ticket Id list.
5.3 Create Sales Ticket
This request creates a sales ticket.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml (as an example).
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CreateSalesTicket
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientID>1</clientID>
<incidentCombinedID></incidentCombinedID>
<slaStatusID>5</slaStatusID>
<description>some description</description>
<from>sender@someCompany.com</from>
<to>receiver@someCompany.com</to>
<emailSubject>subject</emailSubject>
<emailBody>subject</emailBody>
<sendEmail>false</sendEmail>
<sessionGuid>{{session_guid}}</sessionGuid>
</CreateSalesTicket>
</s:Body>
</s:Envelope>
Click Send button
Will return “success” = true if the request successfully creates the ticket. Will also return the generated ticket id in the PrimaryIdentifier field.
Parameters:
Parameter | Details | Mandatory |
clientID |
| Yes |
incidentCombinedID | A ticket that you want to relate this ticket to | No |
slaStatusID | 1: Warning | Yes |
description |
| Yes |
from | Email address from | Yes |
to | Email address to | Yes |
emailSubject |
| Yes |
emailBody |
| Yes |
sendEmail | true | false | Yes |
5.4 Create Manual Ticket
This request creates a manual ticket.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml (as an example).
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CreateManualTicket
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<incidentID>0</incidentID>
<clientID>1</clientID>
<deviceID>10_1</deviceID>
<slaClassID>1</slaClassID>
<slaStatusID>1</slaStatusID>
<trigger>tigger</trigger>
<description>description</description>
<userID>200</userID>
<personID>200</personID>
<ticketSourceID>1_1</ticketSourceID>
<ticketPriorityID>1_1</ticketPriorityID>
<ticketJobTypeID>2_1</ticketJobTypeID>
<ticketCategoryID>1_1</ticketCategoryID>
<ticketStatusID>1_1</ticketStatusID>
<ticketType>1</ticketType>
<TicketIncidentStateID>2</TicketIncidentStateID>
<triggerType>0</triggerType>
<ticketDuration>60</ticketDuration>
<remindHrs></remindHrs>
<sendCalendar></sendCalendar>
<triggerOnceDateTimeText></triggerOnceDateTimeText>
<triggerDailyRecursEveryText></triggerDailyRecursEveryText>
<triggerDailyOccursTimeText></triggerDailyOccursTimeText>
<triggerDailyStartDateText></triggerDailyStartDateText>
<triggerDailyEndDateText></triggerDailyEndDateText>
<triggerWeeklyRecursEveryText></triggerWeeklyRecursEveryText>
<triggerWeeklyWeekday></triggerWeeklyWeekday>
<triggerWeeklyOccursTimeText></triggerWeeklyOccursTimeText>
<triggerWeeklyStartDateText></triggerWeeklyStartDateText>
<triggerWeeklyEndDateText></triggerWeeklyEndDateText>
<triggerMonthlyRecursEveryDayText></triggerMonthlyRecursEveryDayText>
<triggerMonthlyRecursEveryMonthText></triggerMonthlyRecursEveryMonthText>
<triggerMonthlyOccursTimeText></triggerMonthlyOccursTimeText>
<triggerMonthlyStartDateText></triggerMonthlyStartDateText>
<triggerMonthlyEndDateText></triggerMonthlyEndDateText>
<TriggerMonthlyRepeatType>0</TriggerMonthlyRepeatType>
<TriggerMonthlyRepeatWeekdayNumber>0</TriggerMonthlyRepeatWeekdayNumber>
<TriggerMonthlyRepeatWeekdayValue>0</TriggerMonthlyRepeatWeekdayValue>
<sessionGuid>{{session_guid}}</sessionGuid>
</CreateManualTicket>
</s:Body>
</s:Envelope>
Click Send button
Will return “success” = true if the request successfully creates the ticket. Will also return the generated ticket id in the PrimaryIdentifier field.
Parameters:
Parameter | Details | Mandatory |
clientID |
| Yes |
incidentID | A ticket that you want to relate this ticket to. Can be set to 0. | Yes |
deviceID | For example: 10_1 where 10 is the deviceID and 1 is the ClientID | Yes |
slaClassID | 1: Performance | Yes |
slaStatusID | 1: Warning | Yes |
trigger | Trigger text | Yes |
description | Description text | Yes |
userID | Ticket assigned user | No |
personID | Ticket contact | Yes |
ticketSourceID | For example 2_1 where 2 is the ticket source id and 1 is the client id | Yes |
ticketPriorityID | For example 2_1 where 2 is the ticket priority id and 1 is the client id | Yes |
ticketJobTypeID | For example 2_1 where 2 is the ticket job type id and 1 is the client id | Yes |
ticketCategoryID | For example 2_1 where 2 is the ticket category id and 1 is the client id | No |
ticketStatusID | For example 2_1 where 2 is the ticket job status id and 1 is the client id | Yes |
ticketType | 1: Incident | Yes |
TicketIncidentStateID | The ticket status: | Yes |
triggerType | 0: None | Yes |
ticketDuration | Ticket duration in whole minutes | No |
remindHrs | To be documented | No |
sendCalendar | To be documented | No |
triggerOnceDateTimeText | To be documented |
|
5.5 Create Manual Ticket for Devices
This request creates a manual ticket for each device in a device list
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml (as an example).
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CreateManualTicketForDevices
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<incidentID>0</incidentID>
<clientID>1</clientID>
<deviceIDList>10_1</deviceIDList>
<slaClassID>1</slaClassID>
<slaStatusID>1</slaStatusID>
<trigger>tigger</trigger>
<description>description</description>
<userID>200</userID>
<personID>200</personID>
<ticketSourceID>1_1</ticketSourceID>
<ticketPriorityID>1_1</ticketPriorityID>
<ticketJobTypeID>2_1</ticketJobTypeID>
<ticketCategoryID>1_1</ticketCategoryID>
<ticketStatusID>1_1</ticketStatusID>
<ticketType>1</ticketType>
<TicketIncidentStateID>2</TicketIncidentStateID>
<triggerType>0</triggerType>
<ticketDuration>60</ticketDuration>
<remindHrs></remindHrs>
<sendCalendar></sendCalendar>
<triggerOnceDateTimeText></triggerOnceDateTimeText>
<triggerDailyRecursEveryText></triggerDailyRecursEveryText>
<triggerDailyOccursTimeText></triggerDailyOccursTimeText>
<triggerDailyStartDateText></triggerDailyStartDateText>
<triggerDailyEndDateText></triggerDailyEndDateText>
<triggerWeeklyRecursEveryText></triggerWeeklyRecursEveryText>
<triggerWeeklyWeekday></triggerWeeklyWeekday>
<triggerWeeklyOccursTimeText></triggerWeeklyOccursTimeText>
<triggerWeeklyStartDateText></triggerWeeklyStartDateText>
<triggerWeeklyEndDateText></triggerWeeklyEndDateText>
<triggerMonthlyRecursEveryDayText></triggerMonthlyRecursEveryDayText>
<triggerMonthlyRecursEveryMonthText></triggerMonthlyRecursEveryMonthText>
<triggerMonthlyOccursTimeText></triggerMonthlyOccursTimeText>
<triggerMonthlyStartDateText></triggerMonthlyStartDateText>
<triggerMonthlyEndDateText></triggerMonthlyEndDateText>
<TriggerMonthlyRepeatType>0</TriggerMonthlyRepeatType>
<TriggerMonthlyRepeatWeekdayNumber>0</TriggerMonthlyRepeatWeekdayNumber>
<TriggerMonthlyRepeatWeekdayValue>0</TriggerMonthlyRepeatWeekdayValue>
<sessionGuid>{{session_guid}}</sessionGuid>
</CreateManualTicketForDevices>
</s:Body>
</s:Envelope>
Click Send button
Parameters: See the Create Manual Ticket section. The only difference is that we have the property deviceIDList instead of deviceID.
5.6 Add Note to Ticket List
This request adds a note to a list of tickets.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml (as an example).
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<AddNoteToTicketList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<eventIDList>3_1</eventIDList>
<notes>add notes ticket from API</notes>
<sessionGuid>{{session_guid}}</sessionGuid>
</AddNoteToTicketList>
</s:Body>
</s:Envelope>
Click Send button
Parameters:
Parameter | Details | Mandatory |
eventIDList | The list of tickets, For example 2_1,3_1 where 2 and 3 are ticket ids and 1 is the client id. | Yes |
notes | The notes to add to each ticket | Yes |
5.7 Add History Note to Ticket
This request adds time/expense notes to an existing ticket
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml (as an example).
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<AddHistoryNotesToTicket
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<incidentCombinedID>3_1</incidentCombinedID>
<noteType>3</noteType>
<notes>add notes ticket from API</notes>
<isBillable>true</isBillable>
<duration>24</duration>
<startDateTime>2014-03-25</startDateTime>
<agreementCombinedID></agreementCombinedID>
<costPerHour>5</costPerHour>
<technicianCombinedID>1_1</technicianCombinedID>
<expenseCombinedID></expenseCombinedID>
<expenseAmount>0</expenseAmount>
<sessionGuid>{{session_guid}}</sessionGuid>
</AddHistoryNotesToTicket>
</s:Body>
</s:Envelope>
Click Send button
Parameters:
Parameter | Details | Mandatory |
incidentCombinedID | The ticket. For example 2_1 where 2 is the ticket id and 1 is the client id. | Yes |
noteType |
| Yes |
notes |
| Yes |
isBillable | true or false | No |
duration | 24 | No |
startDateTime | yyy-mm-dd | Yes |
agreementCombinedID | For example 2_1 where 2 is the agreement id and 1 is the client id. | No |
costPerHour |
| Yes |
technicianCombinedID |
| No |
expenseCombinedID |
| No |
expenseAmount |
| No |
5.8 Get Ticket History
This request returns the Ticket History.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml (as an example).
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetTicketHistory
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<incidentID>4</incidentID>
<iClientid>1</iClientid>
<sessionGuid>{{session_guid}}</sessionGuid>
</GetTicketHistory>
</s:Body>
</s:Envelope>
Click Send button
Parameters:
Parameter | Details | Mandatory |
incidentID | The ticket id | Yes |
iClientId | The client id | Yes |
5.9 Archive Ticket List
This request will archive the tickets in the list.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml (as an example).
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ArchiveTicketList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<eventIDList>4,5</eventIDList>
<notes>Ticket archived because ...</notes>
<sessionGuid>{{session_guid}}</sessionGuid>
</ArchiveTicketList>
</s:Body>
</s:Envelope>
Click Send button
Parameters:
Parameter | Details | Mandatory |
eventIDList | the comma delimited list of ticket ids that are to be archived. | Yes |
notes | The not to add to each ticket regarding it being archived. | Yes |
5.10 Change Ticket Status List
This request will change the status of each of the tickets in the list. The user you are logged in as will be the one who actioned it.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml (as an example).
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ChangeTicketStatusList
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<eventIDList>2_1,3_1</eventIDList>
<status>active</status>
<notes>Ticket status changed because ...</notes>
<sessionGuid>{{session_guid}}</sessionGuid>
</ChangeTicketStatusList>
</s:Body>
</s:Envelope>
Click Send button
Parameters:
Parameter | Details | Mandatory |
eventIDList | The comma delimited list of ticket ids that are to have their status changed. This web service requires a combined id for each ticket. eg 2_1 where 2 is the ticket id and 1 is the client id. | Yes |
status | Options are:
| Yes |
notes | The not to add to each ticket regarding the status being changed. | Yes |
6.0 Person Webservice
The Authentication Webservice URL is https://<NaveriskWebsiteAddress>/api/PersonService.asmx.
6.1 Create Contact
This request creates a Contact.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CreatePerson
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientId>1</clientId>
<firstName>Joe</firstName>
<lastName>Bloggss</lastName>
<phone>0210000000</phone>
<mobile>0210000000</mobile>
<email>joe@bloggs.com</email>
<fax>0210000000</fax>
<jobTitle>Developer</jobTitle>
<sessionGuid>{{session_guid}}</sessionGuid>
</CreatePerson>
</s:Body>
</s:Envelope>
6.2 Create Multiple Contacts
This request creates multiple contacts.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<CreateMultiplePerson
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientId>1</clientId>
<SerilisedPersonList>[{"_additionalParameters": "", "firstName":"Joe","lastName":"Smith","jobTitle":"Developer","email":"joe@smith.com","phone1":"0220000000","phone2":"0220000000","fax":"0220000000","contactNumber":"0220000000", "address": "", "state": "", "city": "", "zip": "", "contactMethod": "", "contactType": "", "emailType": false, "isARContact": false, "isDecisionMakerContact": false, "isEquipmentContact": false}]</SerilisedPersonList>
<primaryContactName>Joe Smith</primaryContactName>
<sessionGuid>{{session_guid}}</sessionGuid>
</CreateMultiplePerson>
</s:Body>
</s:Envelope>
Click Send button
Will return “success” = true if the request successfully creates the contacts.
Parameters:
Parameter | Details | Mandatory |
clientId |
| Yes |
SerilisedPersonList._additonalParameters | Set to ““. Ignored. | Yes |
SerilisedPersonList.firstName |
| Yes |
SerilisedPersonList.lastName |
| Yes |
SerilisedPersonList.jobTitle |
| Yes |
SerilisedPersonList.email |
| Yes |
SerilisedPersonList.phone1 | Saved to phone | Yes |
SerilisedPersonList.phone2 | Saved to mobile | Yes |
SerilisedPersonList.fax |
| Yes |
SerilisedPersonList.contactNumber | Set to ““. Ignored. | Yes |
SerilisedPersonList.address | Set to ““. Ignored. | Yes |
SerilisedPersonList.state | Set to ““. Ignored. | Yes |
SerilisedPersonList.city | Set to ““. Ignored. | Yes |
SerilisedPersonList.zip | Set to ““. Ignored. | Yes |
SerilisedPersonList.contactMethod | Set to ““. Ignored. | Yes |
SerilisedPersonList.contactType | Set to ““. Ignored. | Yes |
SerilisedPersonList.emailType | Set to false. Ignored. | Yes |
SerilisedPersonList.isARContact | Set to false. Ignored. | Yes |
SerilisedPersonList.isDecisionMakerContact | Set to false. Ignored. | Yes |
SerilisedPersonList.isEquipmentContact | Set to false. Ignored. | Yes |
primaryContactName | Matches on firstName + “ “ + lastName and makes that contact the primary contact. | Yes |
6.3 Modify Contact
This request modifies a Contact.
Add a request to your Postman collection (see 1.3 Adding a Request to the Collection) and use this xml.
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ModifyPerson
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://Iris.net">
<clientId>1</clientId>
<personID>9672</personID>
<firstName>Joe</firstName>
<lastName>Bloggs</lastName>
<phone>0210000000</phone>
<mobile>0210000000</mobile>
<email>joe@bloggs.com</email>
<fax>0210000000</fax>
<IsPrimaryContact>false</IsPrimaryContact>
<sessionGuid>{{session_guid}}</sessionGuid>
</ModifyPerson>
</s:Body>
</s:Envelope>
Click Send button
Will return “success” = true if the request successfully finds and modifies the contact.
If you need further assistance with the API then please contact the support team.
7.0 JSON API Addendum (Naverisk 2023 R1 onwards)
This is a sample request for login using xml. This will return the usual response as above.
Note the addition of the method name at the end. All calls are POST requests and the json field names are case sensitive as are the API method names.
Also note the following:
Calls with array type structures may not be supported at this time.
Session GUID is part of the payload in all requests.
All parameters are compulsory in json requests, although empty string or default values are allowed.
APIs that contain a string of JSON will need to still take it in as JSON string and extra care must be taken to ensure all special characters are escaped accordingly.
https://qatest.naverisk.com/api/PersonService.asmx/CreateMultiplePerson
Content-Type: application/json; charset=utf-8
Accept: application/json
{
"clientId": "3134",
"SerilisedPersonList": "[{\"_additionalParameters\": \"\", \"firstName\":\"Joe\",\"lastName\":\"Smith\",\"jobTitle\":\"Developer\",\"email\":\"joe@smith.com\",\"phone1\":\"0220000000\",\"phone2\":\"0220000000\",\"fax\":\"0220000000\",\"contactNumber\":\"0220000000\", \"address\": \"\", \"state\": \"\", \"city\": \"\", \"zip\": \"\", \"contactMethod\": \"\", \"contactType\": \"\", \"emailType\": false, \"isARContact\": false, \"isDecisionMakerContact\": false, \"isEquipmentContact\": false}]",
"primaryContactName": "Joe Smith",
"sessionGuid": "72f55bb4-6a5e-4990-9320-6e30c92e9604"
}
7.1 Example difference in requests
This is a sample request for login using xml. This will return the usual response as above.
POST http://localhost/api/AuthenticationService.asmx
Content-Type: text/xml; charset=utf-8
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<Login xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://Iris.net">
<username>myuser</username>
<password>mypassword</password>
</Login>
</s:Body>
</s:Envelope>
Next is the same request as JSON. Notice the extra/changed headers and the method name. The result will be a simple json object with the same contents as above minus the xml/html/js wrapping.
POST http://localhost/api/AuthenticationService.asmx/Login
Content-Type: application/json; charset=utf-8
Accept: application/json
{
"username": "myuser",
"password": "mypassword"
}
8.0 Status Webservice
Each of these APIs is called directly from the URL, e.g. https://<NaveriskWebsiteAddress>/healthy.
8.1 Healthy
This request returns an HTTP Response Code, either 200 if Naverisk is healthy, or 500 if Naverisk is unhealthy. “Healthy” is defined as the database being available, and the remoting client being connected.
GET http://localhost:8081/healthy
Content-Type: application/json; charset=utf-8
Accept: application/json
8.2 Ready
This request returns an HTTP Response Code, either 200 if Naverisk is ready, or 500 if Naverisk is not ready. “Ready” is defined as all of the startup procedures executing correctly (_isOk in ModelManager)
GET http://localhost:8081/ready
Content-Type: application/json; charset=utf-8
Accept: application/json
8.3 Version
This request returns a VersionResponse item containing all of the current version information of the site controller. The Minimum Mobile App Version is a string explicitly defined in the VersionResponse item.
GET http://localhost:8081/version
Content-Type: application/json; charset=utf-8
Accept: application/json
VersionResponse:
{
"minimumMobileAppVersion": "2023.1.0.0",
"newestAgentVersion": "2023.2.1.1935",
"newestPackageVersions": {
"eventLogScanPackageVersion": "2023.2.1.1935",
"filePackageVersion": "2023.2.1.1935",
"hardwareScanPackageVersion": "2023.2.1.1935",
"networkControllerPackageVersion": "2023.2.1.1935",
"operatingSystemScanPackageVersion": "2023.2.1.1935",
"performanceMonitorPackageVersion": "2023.2.1.1935",
"portMonitorPackageVersion": "2023.2.1.1935",
"remoteConsolePackageVersion": "2023.2.1.1935",
"remoteControlPackageVersion": "2023.2.1.1935",
"snmpPackageVersion": "2023.2.1.1935",
"softwareScanPackageVersion": "2023.2.1.1935",
"windowsUpdatePackageVersion": "2023.2.1.1935"
},
"siteControllerVersion": "2023.2.3838.0",
"websiteVersion": "2023.2.3838.0"
}