With Flint's ManageEngine Service Desk Connector you can perform multiple actions on a ticket. This document guide you to use and work with a ManageEngine Service Desk Connector.

Features

  • Operations are performed using REST API
  • Based on operation request will send through specific method
  • Technician Key is required for authentication
  • Provide advanced ITSM functionality
  • Easy to use capability
  • The ability to set Connector execution timeouts

Connector Configuration - config(JSON)

add_manageengine_connector

Configuration parameters

ParameterDescriptionrequired
portPort number on which your ManageEngine Service Desk is runningtrue
host-nameHost on which your ManageEngine Service Desk is runningtrue
is-sslIf your domain access is secured then true, otherwise falsefalse
technician-keyTechnician key associated with your ManageEngine Service Desktrue

Example

 {
  "port":9090,
  "host-name":"localhost",
  "technician-key":"C84F-B00E-A3A1-F7FB4324-625AB5EAE7DD",
  "is-ssl":false 
} 

Actions

add-request

This action helps you to add new requests.

Request parameters
ParameterDescriptionrequired
actionAction to be performed on service request : add-request 
requesterRequester who requested update requesttrue
subjectSubject of the requestfalse
descriptionDescription of the requestfalse
requesttemplateTemplate of the requestfalse
requestTypeType of request belong tofalse
priorityPriority given to the requestfalse
siteSite of the requestfalse
groupGroup to which the request belongsfalse
technicianTechnician assigned to the requestfalse
levelLevel of the requestfalse
statusStatus of the requestfalse
serviceService category to which the request belongsfalse
Response parameters
ParameterDescriptionrequired
responseAdd request of provided requestertrue
Example
response = @call.connector('manageenginesdp')
                .set('action','add-request')
                .set('requester','Flint')
                .set('subject', 'Add request')
                .set('description', 'Add Network request')
                .set('requesttemplate', 'Unable to browse')
                .set('requestType','Incident')
                .set('priority', 'High')
                .set('site', '-')
                .set('group','Network')
                .set('technician', 'John')
                .set('level', 'Tier 1')
                .set('status', 'Open')
                .set('service', 'Hardware')
                .timeout(10000)
                .sync

@log.info(response.to_s)		#Response Result

technician = response.path("$.operation.Details.TECHNICIAN")	#To Fetch Detail Of a Individual Parameter
status = response.path("$.operation.Details.STATUS")	#To Fetch Detail Of a Individual Parameter
@log.info("Status :: #{status}")
@log.info("TECHNICIAN :: #{technician}")

get-request

Get details of provided service request id.

Request parameters
ParameterDescriptionrequired
actionAction to be performed on service request : get-requesttrue
request-idId of service request for which you want to retrive detailstrue
Response parameters
ParameterDescriptionrequired
responseDetails of provided request idtrue
Example
 response=@call.connector("manageengine_connector_name")    
              .set("action","get-request")
              .set("request-id",17)
              .sync

@log.info(response.to_s)	#Response Result 

status = response.path("$.STATUS")	# To Fetch Detail Of a Individual Parameter
requesttemplate = response.path("$.REQUESTTEMPLATE")	# To Fetch Detail Of a Individual Parameter
@log.info("STATUS :: #{status}")
@log.info("REQUEST_TEMPLATE :: #{requesttemplate}")

update-request

Update service request for provided request id.

Request parameters
ParameterDescriptionrequired
actionAction to be performed on service request : update-requesttrue
request-idId of service request to be updatedtrue
requesterRequester who requested update requesttrue
subjectSubject of the requesttrue
descriptionDescription of the requestfalse
requesttemplateTemplate of the requestfalse
priorityPriority given to the requestfalse
siteSite of the requestfalse
groupGroup to which the request belongsfalse
technicianTechnician assigned to the requestfalse
levelLevel of the requestfalse
statusStatus of the requestfalse
serviceService category to which the request belongsfalse
Response parame
ParameterDescriptionrequired
responseUpdated details of provided service request idtrue
Example
response=@call.connector("manageengine_connector_name")    
              .set("action","update-request")
              .set("request-id",17)
              .set("requester","administrator")
              .set("subject","Testing update service request")
              .set("description","Specific descriptio")
              .set("requesttemplate","Unable to browse")
              .set("priority","Low")
              .set("site","-")
              .set("group","Network")
              .set("technician","John")
              .set("level","Tier 3")
              .set("status","Close")
              .set("service",@service)
              .timeout(10000)                                                 
              .sync

@log.info(response.to_s)		#Response Result 

mode = response.path("$.operation.Details.MODE")	# To Fetch Detail Of a Individual Parameter
level = response.path("$.operation.Details.LEVEL")	# To Fetch Detail Of a Individual Parameter
@log.info("MODE :: #{mode}")
@log.info("LEVEL :: #{level}") 

close-request

Close request with provided request id.

Request parameters
ParameterDescriptionrequired
actionAction to be performed on service request : close-requesttrue
request-idId of service request to be closedtrue
close-acceptedTo close a service request valid values is "Accepted"true
close-commentComment to be added while closing requestfalse
Response parameters
ParameterDescriptionrequired
responseDetails of provided service request id with updated statustrue
Example
response=@call.connector("manageengine_connector_name")    
              .set("action","close-request")
              .set("request-id",17)
              .set("close-accepted","Accepted")
              .set("close-comment","Virtual machine provision successfully")                               
              .sync

@log.info(response.to_s)		#Response Result

status = response.path("$.operation.Details.STATUS")	# To Fetch Detail Of a Individual Parameter
@log.info("STATUS :: status")  

add-note

Add note in provided request.

Request parameters
ParameterDescriptionrequired
actionAction to be performed on service request : add-notetrue
request-idId of service request that you want to add note totrue
ispublicUsed to represent whether note is public or privatefalse
notestextText to be entered as notetrue
Response parameters
ParameterDescriptionrequired
responseUpdated details of provided service request idtrue
Example
response=@call.connector("manageengine_connector_name")    
              .set("action","add-note")
              .set("request-id",17)
              .set("ispublic","false")
              .set("notestext","Create Virtual machine")                               
              .sync

@log.info(response.to_s)		#Response Result

details = response.path("$.operation.Details")	# To Fetch Detail Of a Individual Parameter
@log.info("DETAILS :: #{details}")

assign-request

assign the request by request_id to other technician

Request parameters
ParameterDescriptionrequired
actionAction to be performed on service request : assign-requesttrue
request-idId of service request to be assigntrue
technicianidId of technician to whom service request to be assigntrue
Response parameters
ParameterDescriptionrequired
responseAssign request to provided technicianidtrue
Example
response = @call.connector('manageenginesdp')
                .set('action', 'assign-request')
                .set('request-id', 22)
                .set('technicianid', '2')
                .sync

@log.info(response.to_s)       #Response Result

Message = response.path("$.operation.result.message")	# To Fetch Detail Of a Individual Parameter
status = response.path("$.operation.result.status")  	# To Fetch Detail Of a Individual Parameter
@log.info("Status :: #{status}")
@log.info("message :: #{Message}")

add-resolution

add a resolution to the request by request_id

Request parameters
ParameterDescriptionDescription
request-idAdd request-id of service request to add resolutiontrue
resolutiontextSome resolution texttrue
Response parameters
ParameterDescriptionrequired
responseAdd resolution for provided request-idtrue
Example
response = @call.connector('manageenginesdp')
                .set('action', 'add-resolution')
                .set('request-id', 22)
                .set('resolutiontext', 'Hello resolution for problem is here')
                .sync

@log.info("#{response.to_s}") 		 #Response Result

MESSAGE = response.path("$.operation.result.message")	# To Fetch Detail Of a Individual Parameter
STATUS = response.path("$.operation.result.status") 	# To Fetch Detail Of a Individual Parameter
@log.info("Status :: #{STATUS}")
@log.info("message :: #{MESSAGE}")

pickup-request

to Pickup the request by request_id

Request parameters
ParameterDescriptionrequired
request-idProvide request-id to pickup-request from requeststrue
Response parameters
ParameterDescriptionrequired
responsePick-up request of provided request-idtrue
Example
response = @call.connector('manageenginesdp')
                .set('action', 'pickup-request')
                .set('request-id', 22)
                .sync

@log.info(response.to_s)  			#Response Result

MESSAGE = response.path("$.operation.result.message")	# To Fetch Detail Of a Individual Parameter
STATUS = response.path("$.operation.result.status")		# To Fetch Detail Of a Individual Parameter
@log.info("Status :: #{STATUS}")
@log.info("message :: #{MESSAGE}")

add-worklog

to add new worklog for the given input

Request parameters
ParameterDescriptionrequired
associated_entity Module to which the worklog belongstrue
associated_entity_id Id of the entity to which the worklog belongstrue
description Description about the worklogfalse
namename and/or id of the technician to whom the worklog is assigned.true
start_time Date and time to start Worklogfalse
end_time Date and time to end Worklogfalse
Response parameters
ParameterDescriptionrequired
responseAdd work-log of the technician for the provided associated-entitytrue
Example
response = @call.connector('manageenginesdp')
                .set('action','add-worklog')
                .set('associated_entity', 'request')
                .set('associated_entity_id', 22)
                .set('description', 'Add to Network request')
                .set('name', 'Howard Stern')
                .set('start_time','1421042555857')
                .set('end_time','1421142655857')
                .sync

@log.info("#{response}")			#Response Result

NAME = response.path("$.worklog.technician.name")	# To Fetch Detail Of a Individual Parameter
Entity = response.path("$.worklog.associated_entity")# To Fetch Detail Of a Individual Parameter
@log.info("Name :: #{NAME}")
@log.info("Associated-entity :: #{Entity}")

 

Connector request error handling

Here is how you can handle the connector requests success or failures within your Flintbit. This would help you to take appropriate action if something failed.

 if response.exitcode == 0               # success.
  @log.info("success")
  # take action in case of success
else                                     # Fail
  @log.error("fail")
  @log("Reason:" + response.message)     # Failure Reason 
  # Take action in case of failure
end

On this page: