Did you know? SysAid has an API!

You can download the perl API at http://www.ilient.com/down/sysaid-perl-api.tar.gz

Latest API info, taken from Joseph's post of the above thread.

Basically, you could create an HTTP Request (with POST method) the xml file onto http://servername:port/agenapi (the xml must be encoded with UTF-
The xml file should look like this: 

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <sysaidAgentApiRequest>  
  3.   <login>  
  4.     <agentID>----- ASSET ID -----</agentID>  
  5.     <accountID>----- ACCOUNT ID -----</accountID>  
  6.     <serial>----- SERIAL -----</serial>  
  7.   </login>  
  8.   <submitSR>  
  9.     <id>----- ID -----</id>  
  10.     <category>----- CATEGORY -----</category>  
  11.     <subCategory>----- SUB-CATEGORY -----</subCategory>  
  12.     <thirdLevelCategory>----- THIRD-LEVEL-CATEGORY -----</thirdLevelCategory>  
  13.     <title>----- TITLE -----</title>  
  14.     <description>----- DESCRIPTION -----</description>  
  15.     <status>----- STATUS -----</status>  
  16.     <urgency>----- URGENCY -----</urgency>  
  17.     <additionalFields>----- ADDITIONAL-FIELDS -----</additionalFields>  
  18.     <uniqueFlag>false</uniqueFlag>  
  19.   </submitSR>  
  20. </sysaidAgentApiRequest>  

* Category, subCategory, title, description and status are mandatory fields. You must specify them in every request. 
* If you specify the ID, it would update and existing SR. For new service request, please don't specify the ID (remove the ID tag entirely from the XML). 
* thirdLevelCategory, urgency, uniqueFlag and additionalFields are optional. 
* The uniqueFlag is default false. If you set it to true the system tries to find if there's already a similar service request in the system (by several parameters). In case it finds it, it would update that service request. If not, it would create a new service request. 

* The values you should for each field is specified below. 
status: integer 
urgency: integer 
id: integer 
status: integer 
description: text, unlimited 
title: text, 255 characters 
category: text, 64 characters 
sub category: text, 64 characters 
third level category: text, 64 characters 

* additionalFields needs to be entered in the following format: 
(four pound signs separate between the field name and the field value, four exclamation marks separate between the several additional field you wish to add). 

The FIELD-NAME should be replaced with any of the following (expected data type and maximum size is specified in brackets):

submitUser (text, 64 characters) 
cc (text, 255 characters) 
ci (text, 64 characters) 
fullName (text, 255 characters) 
requestUser (text, 64 characters) 
assignedTo (text, 64 characters) 
assignedGroup (text, 64 characters) 
updateUser (text, 64 characters) 
notes (text, 4000 characters) 
solution (text, 4000 characters) 
resolution (text, 4000 characters) 
dueDate (timestamp: YYYY-MM-DD HH:MM:SS) 
followupPlannedDate (timestamp: YYYY-MM-DD HH:MM:SS) 
followupActualDate (timestamp: YYYY-MM-DD HH:MM:SS) 
knowledgeBase (integer) 
location (integer) 
priority (integer) 
escalation (integer) 
custList1 (integer) 
custList2 (integer) 
custInt1 (integer) 
custInt2 (integer) 
custDate1 (timestamp: YYYY-MM-DD HH:MM:SS) 
custDate2 (timestamp: YYYY-MM-DD HH:MM:SS) 
custText1 (text, 255 characters) 
custText2 (text, 255 characters) 
custNotes (text, 4000 characters) 
followupText (text, 4000 characters) 
followupUser (text, 64 characters)

1. sysaid-agent-reg.pl – This script registers a new agent.

Usage: sysaid-agent-reg.pl <URL> <Agent ID> <Account ID> <Serial> <Name> <Type> <Group>


./sysaid-agent-reg.pl "http://demo.ilient.com:80" test-1234 demo 55BA92A9F11535DD "Api Agent" Server "\\"

2. sysaid-agent-alert.pl - This script creates a new alert (new SR).

Usage: sysaid-agent-alert.pl <URL> <Agent ID> <Account ID> <Serial><Category> <Sub Category> <Third Level Category> <Title> <Description><Status> <Urgency>


./sysaid-agent-alert.pl "http://demo.ilient.com:80" SUN:2198645094 demo 55BA92A9F11535DD Network Pemissions none "Detected unauthrized access" "IPAddress = bla bla" 2 2