ServiceDesk Plus is an IT support ticketing system for small and mid-sized businesses from ManageEngine. ServiceDesk Plus handles tickets and assets and helps structure and discipline your IT department.
This document provides information about the ManageEngine ServiceDesk Plus connector, which facilitates automated interactions, with a ManageEngine ServiceDesk Plus server using FortiSOAR™ playbooks. Add the ManageEngine ServiceDesk Plus connector as a step in FortiSOAR™ playbooks and perform automated operations, such as creating a ticket request in ServiceDesk Plus, updating a ticket in ServiceDesk Plus, or retrieving information about a ticket request from ServiceDesk Plus.
Connector Version: 2.0.0
FortiSOAR™ Version Tested on: 7.3.0-2034
ManageEngine ServiceDesk Plus Version Tested on: 14.1 Build 14102
Authored By: Fortinet
Certified: Yes
Use the Content Hub to install the connector. For the detailed procedure to install a connector, click here.
You can also use the following yum command as a root
user to install connectors from an SSH session:
yum install cyops-connector-manage-engine-service-desk-plus
The following enhancements have been made to the ManageEngine ServiceDesk Plus connector in version 2.0.0:
For the procedure to configure a connector, click here.
In FortiSOAR™, on the Content Hub (or Connector Store) page, click the Manage tab, and then click the ManageEngine ServiceDesk Plus connector card. On the connector popup, click the Configurations tab to enter the required configuration details:
Parameter | Description |
---|---|
Server URL | Specify the URL of the ManageEngine ServiceDesk Plus server to which you will connect and perform the automated operations. |
API Key | Specify the API key that is configured for your account to access the ManageEngine ServiceDesk Plus endpoint. |
Verify SSL | Specifies whether the SSL certificate for the server is to be verified or not. |
To configure activities to be forwarded to FortiSOAR™ from ManageEngine ServiceDesk Plus, you must do the following:
fsr_forwarding.py
) is bundled with the connector and located at: /opt/cyops/configs/integrations/connectors/manage-engine-service-desk-plus_2_0_0/fsr_forwarding.py
on your FortiSOAR™ server, if your FortiSOAR version is 7.2.0 or later. If you have FortiSOAR version 7.2.0 or earlier, then the forwarder script is located at: opt/cyops-integrations/integrations/connectors/manage-engine-service-desk-plus_2_0_0/fsr_forwarding.py
The procedure of how to configure the above two steps follows:
Configuration Wizard
, add the configuration and details necessary for the new action rule as shown in the following image:fsr_forwarding.py
), perform the following steps:
Environment Variable
as follows: New System Variable
dialog, in the Variable name field, type <Variable Name>
and in the Variable value field, type <Python Installation Path>.
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python34\
fsr_forwarding.py
script to the host machine at the location [SDP_Home]/integration/custom_scripts
. and update the fsr_forwarding.py
script as follows:
fsr_forwarding.py
to point to your FortiSOAR™ instance:host_uri = '<FortiSOAR IP Address>'
full_uri = 'https://' + host_uri + '/api/triggers/1/ManageEngine'
keys
directory in the same location and copy the FortiSOAR™ appliance keys from the FortiSOAR™ machine location /opt/cyops-workflow/sealab/.envdir
into the keys
directory.fsr_forwarding.txt
in the host machine at the location [SDP_Home]/integration/custom_scripts/executor_files
, and then enter the following in the fsr_forwarding.txt
file:py fsr_forwarding.py $COMPLETE_V3_JSON_FILE
After you complete the above procedure, whenever the ManageEngine ServiceDesk Plus tickets get updated based on the criterion you have specified in the 'Action' rule, the Update FortiSOARs Incident
playbook gets triggered, which in turn updates the corresponding FortiSOAR™ incidents.
The following automated operations can be included in playbooks, and you can also use the annotations to access operations from FortiSOAR:
Function | Description | Annotation and Category |
---|---|---|
Create Ticket | Creates a ticket in ServiceDesk Plus based on the requester, subject, and other input parameters you have specified. | create_record Investigation |
Add Resolution | Adds a resolution to an existing ticket in ServiceDesk Plus based on the ticket request ID and resolution you have specified. | add_resolution Investigation |
Add Note | Adds a note to an existing ticket in ServiceDesk Plus based on the ticket request ID, description, and other input parameters you have specified. | add_note Investigation |
Get Ticket Details | Retrieves details of a specific ticket from ServiceDesk Plus based on the ticket request ID you have specified. | get_record Investigation |
Get All Requesters | Retrieves details of all requesters or specific requesters from ServiceDesk Plus based on the input parameters you have specified. | get_all_requester Investigation |
Get All Open Tickets | Retrieves details of all open tickets or specific open tickets from ServiceDesk Plus based on the input parameters you have specified. | get_all_open_requests Investigation |
Update Ticket | Updates an existing ticket in ServiceDesk Plus based on the ticket request ID and other input parameters you have specified. | update_record Investigation |
Close Ticket | Closes a ticket in ServiceDesk Plus based on the ticket request ID and other input parameters you have specified. | close_record Investigation |
Delete Ticket | Deletes a ticket (moves it to 'trash') from ServiceDesk Plus based on the ticket request ID you have specified. | delete_request Investigation |
Delete Ticket From Trash | Permanently deletes a ticket from the 'Trash' in ServiceDesk Plus based on the Ticket Request ID you have specified. | delete_request_from_trash Investigation |
Parameter | Description |
---|---|
Subject | Specify the subject of the ticket request that you want to create in ServiceDesk Plus. |
Description | (Optional) Specify the description of the ticket request that you want to create in ServiceDesk Plus. |
Request Type | (Optional) Specify the type of ticket request that you want to create in ServiceDesk Plus. Request type can be Incident, Request For Information, etc. |
Status | (Optional) Select the status that you want to assign to the ticket request you want to create in ServiceDesk Plus. You can choose between Assigned, Cancelled, Closed, In Progress, Onhold, Open, or Resolved. |
Priority | (Optional) Select the priority that you want to assign to the ticket request you want to create in ServiceDesk Plus. You can choose between High, Low, Medium, or Normal. |
Urgency | (Optional) Select the urgency that you want to assign to the ticket request you want to create in ServiceDesk Plus. You can choose between High, Low, Normal, or Urgent. |
Group | (Optional) Specify the group that you want to assign to the ticket request you want to create in ServiceDesk Plus. Group can be Hardware Problems, Network, Printer Problems, etc |
Requester | Specify the requester name, in the JSON format, who is requesting the creation of the ticket in ServiceDesk Plus. For example, {"name":"Guest", "id":"3"} |
Other Fields | (Optional) Add custom fields, in the JSON format, to the ticket request that you want to create in ServiceDesk Plus. For example,{ |
The output contains the following populated JSON schema:
{
"request": {
"is_first_response_overdue": "",
"impact_details": "",
"impact": {
"id": "",
"name": ""
},
"urgency": {
"id": "",
"name": ""
},
"level": {
"id": "",
"name": ""
},
"description": "",
"priority": {
"id": "",
"color": "",
"name": ""
},
"sla": "",
"template": {
"id": "",
"name": ""
},
"created_by": {
"id": "",
"name": "",
"email_id": ""
},
"requester": {
"id": "",
"name": "",
"email_id": ""
},
"first_response_due_by_time": "",
"service_category": {
"id": "",
"name": ""
},
"is_reopened": "",
"status": {
"id": "",
"color": "",
"name": ""
},
"approval_status": "",
"email_cc": [],
"due_by_time": "",
"closure_info": {
"closure_code": {
"id": "",
"name": ""
},
"requester_ack_comments": "",
"closure_comments": "",
"requester_ack_resolution": ""
},
"is_trashed": "",
"request_template_task_ids": [],
"assets": [],
"category": {
"id": "",
"name": ""
},
"editor": {
"id": "",
"name": "",
"email_id": ""
},
"time_elapsed": {
"display_value": "",
"value": ""
},
"on_behalf_of": "",
"is_service_request": "",
"assigned_time": {
"display_value": "",
"value": ""
},
"technician": {
"id": "",
"name": "",
"email_id": ""
},
"request_type": {
"id": "",
"name": ""
},
"subject": "",
"department": "",
"udf_fields": {
"udf_date_601": {
"display_value": "",
"value": ""
},
"udf_pick_20": "",
"udf_mline_314": "",
"udf_pick_44": "",
"udf_long_367": "",
"udf_sline_25": "",
"udf_sline_26": "",
"udf_decimal_42": ""
},
"resolution": "",
"mode": {
"id": "",
"name": ""
},
"id": "",
"resolved_time": {
"display_value": "",
"value": ""
},
"responded_time": "",
"attachments": [],
"completed_time": {
"display_value": "",
"value": ""
},
"site": "",
"email_ids_to_notify": [],
"is_fcr": "",
"is_overdue": "",
"email_to": [],
"last_updated_time": "",
"subcategory": {
"id": "",
"name": ""
},
"item": "",
"created_time": {
"display_value": "",
"value": ""
},
"group": {
"id": "",
"name": ""
}
},
"response_status": {
"status_code": "",
"status": ""
}
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket request to which you want to add the resolution in ServiceDesk Plus. |
Resolution | Specify the resolution that you want to add to the specified ticket in ServiceDesk Plus. |
The output contains the following populated JSON schema:
{
"response_status": {
"status_code": "",
"messages": [
{
"status_code": "",
"type": "",
"message": ""
}
],
"status": ""
}
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket request to which you want to add the note in ServiceDesk Plus. |
Description | Specify the note that you want to add to the specified ticket in ServiceDesk Plus. |
Show to Requester | Select this checkbox, i.e., set it to 'True', if you want the added note to be displayed to the requester. By default, this is set as 'False', i.e., it is set as a 'Private' note. |
Mark First Response | Select this checkbox, i.e., set it to 'True', to set the response date when the request/ticket receives its first response. By default, this is set as 'False'. |
Add to Linked Requests | Select this checkbox, i.e., set it to 'True', to add the note to the linked requests. By default, this is set as 'False'. |
Notify Technician | Select this checkbox, i.e., set it to True, to notify the technician when the note is added. By default, this is set as False. |
The output contains the following populated JSON schema:
{
"note": {
"request": {
"subject": "",
"id": ""
},
"last_updated_by": "",
"added_time": {
"display_value": "",
"value": ""
},
"has_attachments": "",
"attachments": [],
"last_updated_time": "",
"added_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"image_token": "",
"show_to_requester": "",
"description": "",
"id": ""
},
"response_status": {
"status_code": "",
"status": ""
}
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket request for which you want to retrieve details from ServiceDesk Plus. |
The output contains the following populated JSON schema:
{
"request": {
"ola_due_by_time": "",
"resolution": {
"submitted_on": {
"display_value": "",
"value": ""
},
"submitted_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"resolution_attachments": [],
"content": ""
},
"onhold_time": "",
"is_trashed": "",
"id": "",
"assigned_time": "",
"requester": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"cancel_requested_by": "",
"sla_violated_technician": "",
"item": "",
"has_resolution_attachments": "",
"impact": "",
"sla": {
"name": "",
"id": ""
},
"priority": {
"color": "",
"name": "",
"id": ""
},
"sla_violated_group": "",
"tags": [],
"has_notes": "",
"is_current_ola_violated": "",
"image_token": "",
"status": {
"color": "",
"name": "",
"id": ""
},
"template": {
"is_service_template": "",
"service_category": "",
"name": "",
"id": ""
},
"primary_asset": "",
"request_type": "",
"cancel_requested_time": "",
"chat_type": "",
"is_service_request": "",
"cancel_requested": "",
"has_request_initiated_change": "",
"has_attachments": "",
"has_linked_requests": "",
"has_request_caused_by_change": "",
"has_problem": "",
"subject": "",
"linked_to_request": "",
"mode": "",
"is_read": "",
"lifecycle": "",
"reason_for_cancel": "",
"assets": [],
"group": "",
"email_to": [],
"created_time": {
"display_value": "",
"value": ""
},
"level": "",
"approval_status": "",
"service_category": "",
"created_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"scheduled_end_time": "",
"first_response_due_by_time": "",
"last_updated_time": {
"display_value": "",
"value": ""
},
"impact_details": "",
"subcategory": "",
"email_cc": [],
"scheduled_start_time": "",
"email_ids_to_notify": [],
"notification_status": "",
"description": "",
"has_dependency": "",
"has_conversation": "",
"callback_url": "",
"urgency": {
"name": "",
"id": ""
},
"is_shared": "",
"request_template_task_ids": [],
"department": "",
"is_reopened": "",
"has_draft": "",
"is_overdue": "",
"technician": "",
"due_by_time": {
"display_value": "",
"value": ""
},
"has_project": "",
"is_first_response_overdue": "",
"cancel_requested_is_pending": "",
"recommend_template": "",
"unreplied_count": "",
"category": "",
"maintenance": ""
},
"response_status": {
"status_code": "",
"status": ""
}
}
Note: All the input parameters are optional. However, if you do not specify any parameter, then no filter criterion is applied, and an unfiltered list is returned.
Parameter | Description |
---|---|
Requester ID | Specify the ID of the requester whose details you want to retrieve from ServiceDesk Plus. |
Name | Specify the name of the requester whose details you want to retrieve from ServiceDesk Plus. |
Employee ID | Specify the employee ID of the requester whose details you want to retrieve from ServiceDesk Plus. |
Email ID | Specify the email ID of the requester whose details you want to retrieve from ServiceDesk Plus. |
Type | Select the type of requester whose details you want to retrieve from ServiceDesk Plus. You can choose between User or Technician. |
Other Fields | Specify custom fields, in the JSON format, that you want to use for filtering requesters whose details you want to retrieve from ServiceDesk Plus. For example, {"name": "abc"} |
Fields Required | Specify the fields required to be retrieved for the requesters you want to retrieve from ServiceDesk Plus. You can specify multiple fields using a comma separator. For example, name,status,phone,mobile,jobtitle |
Sort By | Specify the field using which you want to sort the requesters retrieved from ServiceDesk Plus. For example, name |
Sort Order | Select the order in which you want to sort the requesters retrieved from ServiceDesk Plus. You can choose between Ascending or Descending. |
Start Index | Specify the index of the first item (requester) to be returned by this operation. This parameter is useful if you want to get a subset of records. Note: You can specify the minimum number as 1. |
Record Count | Specify the maximum number of records (requesters) to be returned by this operation in a single request. Note: You can specify the minimum number as 1. |
The output contains the following populated JSON schema:
{
"requester": [
{
"email_id": "",
"is_technician": "",
"employee_id": "",
"name": "",
"profile_pic": {
"content-url": ""
},
"id": "",
"department": "",
"type": "",
"citype": {
"name": "",
"id": ""
}
}
],
"response_status": {
"status_code": "",
"status": ""
},
"image_token": "",
"list_info": {
"has_more_rows": "",
"start_index": "",
"search_fields": "",
"sort_field": "",
"sort_order": "",
"row_count": ""
}
}
Note: All the input parameters are optional. However, if you do not specify any parameter, then no filter criterion is applied, and an unfiltered list is returned.
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket request for which you want to retrieve details from ServiceDesk Plus. |
Subject | Specify the subject of the ticket request for which you want to retrieve details from ServiceDesk Plus. |
Priority | Select the priority of the ticket request for which you want to retrieve details from ServiceDesk Plus. You can choose between High, Low, Medium, or Normal. |
Requester Name | Specify the name of the requester whose open tickets details you want to retrieve details from ServiceDesk Plus. |
Other Fields | Specify custom fields, in the JSON format, that you want to use for filtering open tickets whose details you want to retrieve from ServiceDesk Plus. For example, { "urgency.name": "Low" } |
Sort By | Specify the field using which you want to sort the open tickets retrieved from ServiceDesk Plus. For example, subject |
Sort Order | Select the order in which you want to sort the open tickets retrieved from ServiceDesk Plus. You can choose between Ascending or Descending. |
Start From | Specify the index of the first item (open tickets) to be returned by this operation. This parameter is useful if you want to get a subset of records. By default, this is set as 1. |
Limit Upto | Specify the index till when, i.e., the last item (open tickets) to be returned by this operation. |
The output contains the following populated JSON schema:
{
"response_status": [
{
"status_code": "",
"status": ""
}
],
"list_info": {
"has_more_rows": "",
"start_index": "",
"search_fields": {
"urgency.name": "",
"status.name": ""
},
"total_count": "",
"get_total_count": "",
"row_count": ""
},
"requests": [
{
"requester": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"template": {
"is_service_template": "",
"service_category": "",
"name": "",
"id": ""
},
"short_description": "",
"created_time": {
"display_value": "",
"value": ""
},
"subject": "",
"time_elapsed": "",
"is_overdue": "",
"technician": "",
"priority": {
"color": "",
"name": "",
"id": ""
},
"created_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"due_by_time": {
"display_value": "",
"value": ""
},
"response_time_elapsed": "",
"site": "",
"is_service_request": "",
"cancel_requested_is_pending": "",
"cancel_requested": "",
"id": "",
"status": {
"color": "",
"name": "",
"id": ""
},
"group": ""
}
]
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket that you want to update in ServiceDesk Plus. |
Subject | Specify the subject of the ticket request that you want to update in ServiceDesk Plus. |
Description | (Optional) Specify the description of the ticket request that you want to update in ServiceDesk Plus. |
Status | (Optional) Select the status that you want to assign to the ticket request you want to update in ServiceDesk Plus. You can choose between Assigned, Cancelled, Closed, In Progress, Onhold, Open, or Resolved. |
Priority | (Optional) Select the priority that you want to assign to the ticket request you want to update in ServiceDesk Plus. You can choose between High, Low, Medium, or Normal. |
Urgency | (Optional) Select the urgency that you want to assign to the ticket request you want to update in ServiceDesk Plus. You can choose between High, Low, Normal, or Urgent. |
Other Fields | (Optional) Add custom fields, in the JSON format, to the ticket request that you want to update in ServiceDesk Plus. For example, { |
The output contains the following populated JSON schema:
{
"request": {
"ola_due_by_time": "",
"resolution": {
"submitted_on": {
"display_value": "",
"value": ""
},
"submitted_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"resolution_attachments": [],
"content": ""
},
"onhold_time": "",
"is_trashed": "",
"id": "",
"assigned_time": "",
"requester": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"cancel_requested_by": "",
"sla_violated_technician": "",
"item": "",
"has_resolution_attachments": "",
"impact": "",
"sla": "",
"resolved_time": {
"display_value": "",
"value": ""
},
"priority": "",
"sla_violated_group": "",
"tags": [],
"has_notes": "",
"is_current_ola_violated": "",
"image_token": "",
"status": {
"color": "",
"name": "",
"id": ""
},
"template": {
"is_service_template": "",
"service_category": "",
"name": "",
"id": ""
},
"primary_asset": "",
"request_type": "",
"cancel_requested_time": "",
"responded_time": {
"display_value": "",
"value": ""
},
"age_after_violation": "",
"chat_type": "",
"is_service_request": "",
"cancel_requested": "",
"has_request_initiated_change": "",
"has_attachments": "",
"has_linked_requests": "",
"has_request_caused_by_change": "",
"has_problem": "",
"is_fcr": "",
"response_time_elapsed": {
"display_value": "",
"value": ""
},
"total_unassigned_time": {
"display_value": "",
"value": ""
},
"completed_time": {
"display_value": "",
"value": ""
},
"subject": "",
"linked_to_request": "",
"mode": "",
"is_read": "",
"lifecycle": "",
"reason_for_cancel": "",
"assets": [],
"group": "",
"email_to": [],
"created_time": {
"display_value": "",
"value": ""
},
"level": "",
"approval_status": "",
"service_category": "",
"created_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"scheduled_end_time": "",
"first_response_due_by_time": "",
"last_updated_time": {
"display_value": "",
"value": ""
},
"impact_details": "",
"subcategory": "",
"email_cc": [],
"scheduled_start_time": "",
"email_ids_to_notify": [],
"time_elapsed": {
"display_value": "",
"value": ""
},
"notification_status": "",
"description": "",
"has_dependency": "",
"closure_info": {
"requester_ack_comments": "",
"closure_code": "",
"closure_comments": "",
"requester_ack_resolution": ""
},
"has_conversation": "",
"callback_url": "",
"urgency": {
"name": "",
"id": ""
},
"is_shared": "",
"request_template_task_ids": [],
"department": "",
"is_reopened": "",
"has_draft": "",
"is_overdue": "",
"technician": "",
"due_by_time": "",
"has_project": "",
"age_after_sla_response_violation": "",
"is_first_response_overdue": "",
"cancel_requested_is_pending": "",
"recommend_template": "",
"unreplied_count": "",
"category": "",
"maintenance": ""
},
"response_status": {
"status_code": "",
"status": ""
}
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket that you want to close in ServiceDesk Plus. |
FCR | Select this option if the ticket that you want to close in ServiceDesk Plus has been marked as First Call Resolution (FCR). |
Has requester acknowledged the resolution? | Select this option if the resolution of the ticket that you want to close in ServiceDesk Plus has been acknowledged by the requester. |
Comments | (Optional) Specify the comment specified by the requester while acknowledging the resolution of the ticket. |
Request Closure Code | (Optional) Select the closure code that you want to assign to the ticket that you want to close in ServiceDesk Plus. You can choose between Cancelled, Failed, Moved, Postponed, Sucess, or Unable to Reproduce. |
Request Closure Comments | (Optional) Specify the closure comment to be added to the ticket that you want to close in ServiceDesk Plus. |
The output contains the following populated JSON schema:
{
"response_status": {
"status_code": "",
"messages": [
{
"status_code": "",
"type": "",
"message": ""
}
],
"status": ""
}
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket that you want to delete (move to trash) from ServiceDesk Plus. |
The output contains the following populated JSON schema:
{
"request": {
"ola_due_by_time": "",
"deleted_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": "",
"is_vipuser": "",
"id": "",
"department": ""
},
"resolution": {
"resolution_attachments": [],
"content": ""
},
"onhold_time": "",
"is_trashed": "",
"id": "",
"assigned_time": "",
"requester": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"cancel_requested_by": "",
"sla_violated_technician": "",
"item": "",
"has_resolution_attachments": "",
"impact": "",
"sla": "",
"priority": "",
"sla_violated_group": "",
"tags": [],
"has_notes": "",
"is_current_ola_violated": "",
"image_token": "",
"status": {
"color": "",
"name": "",
"id": ""
},
"template": {
"is_service_template": "",
"service_category": "",
"name": "",
"id": ""
},
"primary_asset": "",
"request_type": "",
"cancel_requested_time": "",
"chat_type": "",
"is_service_request": "",
"cancel_requested": "",
"has_request_initiated_change": "",
"has_attachments": "",
"has_linked_requests": "",
"has_request_caused_by_change": "",
"has_problem": "",
"subject": "",
"linked_to_request": "",
"mode": "",
"is_read": "",
"lifecycle": "",
"reason_for_cancel": "",
"assets": [],
"group": "",
"email_to": [],
"created_time": {
"display_value": "",
"value": ""
},
"level": "",
"approval_status": "",
"service_category": "",
"created_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"scheduled_end_time": "",
"first_response_due_by_time": "",
"last_updated_time": "",
"impact_details": "",
"subcategory": "",
"email_cc": [],
"scheduled_start_time": "",
"email_ids_to_notify": [],
"notification_status": "",
"description": "",
"has_dependency": "",
"has_conversation": "",
"callback_url": "",
"urgency": "",
"is_shared": "",
"request_template_task_ids": [],
"department": "",
"is_reopened": "",
"has_draft": "",
"is_overdue": "",
"technician": "",
"due_by_time": "",
"has_project": "",
"deleted_on": {
"display_value": "",
"value": ""
},
"is_first_response_overdue": "",
"cancel_requested_is_pending": "",
"recommend_template": "",
"unreplied_count": "",
"category": "",
"maintenance": ""
},
"response_status": {
"status_code": "",
"status": ""
}
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket that you want to permanently delete from the 'trash' in ServiceDesk Plus. |
The output contains the following populated JSON schema:
{
"response_status": {
"status_code": "",
"status": ""
}
}
The Sample - ManageEngine ServiceDesk Plus - 2.0.0
playbook collection comes bundled with the ManageEngine ServiceDesk Plus connector. These playbooks contain steps using which you can perform all supported actions. You can see bundled playbooks in the Automation > Playbooks section in FortiSOAR™ after importing the ManageEngine ServiceDesk Plus connector.
Note: If you are planning to use any of the sample playbooks in your environment, ensure that you clone those playbooks and move them to a different collection since the sample playbook collection gets deleted during the connector upgrade and delete.
**NOTE: The Incident module in FortiSOAR has 5 values that can be assigned to the 'status' field; whereas, the 'status' field in ManageEngine ServiceDesk Plus, by default, has 7 values that can be assigned, and other options can also be added. In the case of the 'Create Ticket' and 'Update FortiSOARs Incident' playbooks, the 7 default 'status' values from ManageEngine ServiceDesk Plus are mapped to the 'status' field FortiSOAR incident module as follows:
ManageEngine ServiceDesk Plus - 'Status' field value | FortiSOAR Incident Module- 'Status' field value |
---|---|
Open | Open |
In Progress | In Progress |
Assigned | In Progress |
Resolved | Resolved |
Closed | Resolved |
Onhold | Awaiting |
Cancelled | Inactive |
ServiceDesk Plus is an IT support ticketing system for small and mid-sized businesses from ManageEngine. ServiceDesk Plus handles tickets and assets and helps structure and discipline your IT department.
This document provides information about the ManageEngine ServiceDesk Plus connector, which facilitates automated interactions, with a ManageEngine ServiceDesk Plus server using FortiSOAR™ playbooks. Add the ManageEngine ServiceDesk Plus connector as a step in FortiSOAR™ playbooks and perform automated operations, such as creating a ticket request in ServiceDesk Plus, updating a ticket in ServiceDesk Plus, or retrieving information about a ticket request from ServiceDesk Plus.
Connector Version: 2.0.0
FortiSOAR™ Version Tested on: 7.3.0-2034
ManageEngine ServiceDesk Plus Version Tested on: 14.1 Build 14102
Authored By: Fortinet
Certified: Yes
Use the Content Hub to install the connector. For the detailed procedure to install a connector, click here.
You can also use the following yum command as a root
user to install connectors from an SSH session:
yum install cyops-connector-manage-engine-service-desk-plus
The following enhancements have been made to the ManageEngine ServiceDesk Plus connector in version 2.0.0:
For the procedure to configure a connector, click here.
In FortiSOAR™, on the Content Hub (or Connector Store) page, click the Manage tab, and then click the ManageEngine ServiceDesk Plus connector card. On the connector popup, click the Configurations tab to enter the required configuration details:
Parameter | Description |
---|---|
Server URL | Specify the URL of the ManageEngine ServiceDesk Plus server to which you will connect and perform the automated operations. |
API Key | Specify the API key that is configured for your account to access the ManageEngine ServiceDesk Plus endpoint. |
Verify SSL | Specifies whether the SSL certificate for the server is to be verified or not. |
To configure activities to be forwarded to FortiSOAR™ from ManageEngine ServiceDesk Plus, you must do the following:
fsr_forwarding.py
) is bundled with the connector and located at: /opt/cyops/configs/integrations/connectors/manage-engine-service-desk-plus_2_0_0/fsr_forwarding.py
on your FortiSOAR™ server, if your FortiSOAR version is 7.2.0 or later. If you have FortiSOAR version 7.2.0 or earlier, then the forwarder script is located at: opt/cyops-integrations/integrations/connectors/manage-engine-service-desk-plus_2_0_0/fsr_forwarding.py
The procedure of how to configure the above two steps follows:
Configuration Wizard
, add the configuration and details necessary for the new action rule as shown in the following image:fsr_forwarding.py
), perform the following steps:
Environment Variable
as follows: New System Variable
dialog, in the Variable name field, type <Variable Name>
and in the Variable value field, type <Python Installation Path>.
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python34\
fsr_forwarding.py
script to the host machine at the location [SDP_Home]/integration/custom_scripts
. and update the fsr_forwarding.py
script as follows:
fsr_forwarding.py
to point to your FortiSOAR™ instance:host_uri = '<FortiSOAR IP Address>'
full_uri = 'https://' + host_uri + '/api/triggers/1/ManageEngine'
keys
directory in the same location and copy the FortiSOAR™ appliance keys from the FortiSOAR™ machine location /opt/cyops-workflow/sealab/.envdir
into the keys
directory.fsr_forwarding.txt
in the host machine at the location [SDP_Home]/integration/custom_scripts/executor_files
, and then enter the following in the fsr_forwarding.txt
file:py fsr_forwarding.py $COMPLETE_V3_JSON_FILE
After you complete the above procedure, whenever the ManageEngine ServiceDesk Plus tickets get updated based on the criterion you have specified in the 'Action' rule, the Update FortiSOARs Incident
playbook gets triggered, which in turn updates the corresponding FortiSOAR™ incidents.
The following automated operations can be included in playbooks, and you can also use the annotations to access operations from FortiSOAR:
Function | Description | Annotation and Category |
---|---|---|
Create Ticket | Creates a ticket in ServiceDesk Plus based on the requester, subject, and other input parameters you have specified. | create_record Investigation |
Add Resolution | Adds a resolution to an existing ticket in ServiceDesk Plus based on the ticket request ID and resolution you have specified. | add_resolution Investigation |
Add Note | Adds a note to an existing ticket in ServiceDesk Plus based on the ticket request ID, description, and other input parameters you have specified. | add_note Investigation |
Get Ticket Details | Retrieves details of a specific ticket from ServiceDesk Plus based on the ticket request ID you have specified. | get_record Investigation |
Get All Requesters | Retrieves details of all requesters or specific requesters from ServiceDesk Plus based on the input parameters you have specified. | get_all_requester Investigation |
Get All Open Tickets | Retrieves details of all open tickets or specific open tickets from ServiceDesk Plus based on the input parameters you have specified. | get_all_open_requests Investigation |
Update Ticket | Updates an existing ticket in ServiceDesk Plus based on the ticket request ID and other input parameters you have specified. | update_record Investigation |
Close Ticket | Closes a ticket in ServiceDesk Plus based on the ticket request ID and other input parameters you have specified. | close_record Investigation |
Delete Ticket | Deletes a ticket (moves it to 'trash') from ServiceDesk Plus based on the ticket request ID you have specified. | delete_request Investigation |
Delete Ticket From Trash | Permanently deletes a ticket from the 'Trash' in ServiceDesk Plus based on the Ticket Request ID you have specified. | delete_request_from_trash Investigation |
Parameter | Description |
---|---|
Subject | Specify the subject of the ticket request that you want to create in ServiceDesk Plus. |
Description | (Optional) Specify the description of the ticket request that you want to create in ServiceDesk Plus. |
Request Type | (Optional) Specify the type of ticket request that you want to create in ServiceDesk Plus. Request type can be Incident, Request For Information, etc. |
Status | (Optional) Select the status that you want to assign to the ticket request you want to create in ServiceDesk Plus. You can choose between Assigned, Cancelled, Closed, In Progress, Onhold, Open, or Resolved. |
Priority | (Optional) Select the priority that you want to assign to the ticket request you want to create in ServiceDesk Plus. You can choose between High, Low, Medium, or Normal. |
Urgency | (Optional) Select the urgency that you want to assign to the ticket request you want to create in ServiceDesk Plus. You can choose between High, Low, Normal, or Urgent. |
Group | (Optional) Specify the group that you want to assign to the ticket request you want to create in ServiceDesk Plus. Group can be Hardware Problems, Network, Printer Problems, etc |
Requester | Specify the requester name, in the JSON format, who is requesting the creation of the ticket in ServiceDesk Plus. For example, {"name":"Guest", "id":"3"} |
Other Fields | (Optional) Add custom fields, in the JSON format, to the ticket request that you want to create in ServiceDesk Plus. For example,{ |
The output contains the following populated JSON schema:
{
"request": {
"is_first_response_overdue": "",
"impact_details": "",
"impact": {
"id": "",
"name": ""
},
"urgency": {
"id": "",
"name": ""
},
"level": {
"id": "",
"name": ""
},
"description": "",
"priority": {
"id": "",
"color": "",
"name": ""
},
"sla": "",
"template": {
"id": "",
"name": ""
},
"created_by": {
"id": "",
"name": "",
"email_id": ""
},
"requester": {
"id": "",
"name": "",
"email_id": ""
},
"first_response_due_by_time": "",
"service_category": {
"id": "",
"name": ""
},
"is_reopened": "",
"status": {
"id": "",
"color": "",
"name": ""
},
"approval_status": "",
"email_cc": [],
"due_by_time": "",
"closure_info": {
"closure_code": {
"id": "",
"name": ""
},
"requester_ack_comments": "",
"closure_comments": "",
"requester_ack_resolution": ""
},
"is_trashed": "",
"request_template_task_ids": [],
"assets": [],
"category": {
"id": "",
"name": ""
},
"editor": {
"id": "",
"name": "",
"email_id": ""
},
"time_elapsed": {
"display_value": "",
"value": ""
},
"on_behalf_of": "",
"is_service_request": "",
"assigned_time": {
"display_value": "",
"value": ""
},
"technician": {
"id": "",
"name": "",
"email_id": ""
},
"request_type": {
"id": "",
"name": ""
},
"subject": "",
"department": "",
"udf_fields": {
"udf_date_601": {
"display_value": "",
"value": ""
},
"udf_pick_20": "",
"udf_mline_314": "",
"udf_pick_44": "",
"udf_long_367": "",
"udf_sline_25": "",
"udf_sline_26": "",
"udf_decimal_42": ""
},
"resolution": "",
"mode": {
"id": "",
"name": ""
},
"id": "",
"resolved_time": {
"display_value": "",
"value": ""
},
"responded_time": "",
"attachments": [],
"completed_time": {
"display_value": "",
"value": ""
},
"site": "",
"email_ids_to_notify": [],
"is_fcr": "",
"is_overdue": "",
"email_to": [],
"last_updated_time": "",
"subcategory": {
"id": "",
"name": ""
},
"item": "",
"created_time": {
"display_value": "",
"value": ""
},
"group": {
"id": "",
"name": ""
}
},
"response_status": {
"status_code": "",
"status": ""
}
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket request to which you want to add the resolution in ServiceDesk Plus. |
Resolution | Specify the resolution that you want to add to the specified ticket in ServiceDesk Plus. |
The output contains the following populated JSON schema:
{
"response_status": {
"status_code": "",
"messages": [
{
"status_code": "",
"type": "",
"message": ""
}
],
"status": ""
}
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket request to which you want to add the note in ServiceDesk Plus. |
Description | Specify the note that you want to add to the specified ticket in ServiceDesk Plus. |
Show to Requester | Select this checkbox, i.e., set it to 'True', if you want the added note to be displayed to the requester. By default, this is set as 'False', i.e., it is set as a 'Private' note. |
Mark First Response | Select this checkbox, i.e., set it to 'True', to set the response date when the request/ticket receives its first response. By default, this is set as 'False'. |
Add to Linked Requests | Select this checkbox, i.e., set it to 'True', to add the note to the linked requests. By default, this is set as 'False'. |
Notify Technician | Select this checkbox, i.e., set it to True, to notify the technician when the note is added. By default, this is set as False. |
The output contains the following populated JSON schema:
{
"note": {
"request": {
"subject": "",
"id": ""
},
"last_updated_by": "",
"added_time": {
"display_value": "",
"value": ""
},
"has_attachments": "",
"attachments": [],
"last_updated_time": "",
"added_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"image_token": "",
"show_to_requester": "",
"description": "",
"id": ""
},
"response_status": {
"status_code": "",
"status": ""
}
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket request for which you want to retrieve details from ServiceDesk Plus. |
The output contains the following populated JSON schema:
{
"request": {
"ola_due_by_time": "",
"resolution": {
"submitted_on": {
"display_value": "",
"value": ""
},
"submitted_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"resolution_attachments": [],
"content": ""
},
"onhold_time": "",
"is_trashed": "",
"id": "",
"assigned_time": "",
"requester": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"cancel_requested_by": "",
"sla_violated_technician": "",
"item": "",
"has_resolution_attachments": "",
"impact": "",
"sla": {
"name": "",
"id": ""
},
"priority": {
"color": "",
"name": "",
"id": ""
},
"sla_violated_group": "",
"tags": [],
"has_notes": "",
"is_current_ola_violated": "",
"image_token": "",
"status": {
"color": "",
"name": "",
"id": ""
},
"template": {
"is_service_template": "",
"service_category": "",
"name": "",
"id": ""
},
"primary_asset": "",
"request_type": "",
"cancel_requested_time": "",
"chat_type": "",
"is_service_request": "",
"cancel_requested": "",
"has_request_initiated_change": "",
"has_attachments": "",
"has_linked_requests": "",
"has_request_caused_by_change": "",
"has_problem": "",
"subject": "",
"linked_to_request": "",
"mode": "",
"is_read": "",
"lifecycle": "",
"reason_for_cancel": "",
"assets": [],
"group": "",
"email_to": [],
"created_time": {
"display_value": "",
"value": ""
},
"level": "",
"approval_status": "",
"service_category": "",
"created_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"scheduled_end_time": "",
"first_response_due_by_time": "",
"last_updated_time": {
"display_value": "",
"value": ""
},
"impact_details": "",
"subcategory": "",
"email_cc": [],
"scheduled_start_time": "",
"email_ids_to_notify": [],
"notification_status": "",
"description": "",
"has_dependency": "",
"has_conversation": "",
"callback_url": "",
"urgency": {
"name": "",
"id": ""
},
"is_shared": "",
"request_template_task_ids": [],
"department": "",
"is_reopened": "",
"has_draft": "",
"is_overdue": "",
"technician": "",
"due_by_time": {
"display_value": "",
"value": ""
},
"has_project": "",
"is_first_response_overdue": "",
"cancel_requested_is_pending": "",
"recommend_template": "",
"unreplied_count": "",
"category": "",
"maintenance": ""
},
"response_status": {
"status_code": "",
"status": ""
}
}
Note: All the input parameters are optional. However, if you do not specify any parameter, then no filter criterion is applied, and an unfiltered list is returned.
Parameter | Description |
---|---|
Requester ID | Specify the ID of the requester whose details you want to retrieve from ServiceDesk Plus. |
Name | Specify the name of the requester whose details you want to retrieve from ServiceDesk Plus. |
Employee ID | Specify the employee ID of the requester whose details you want to retrieve from ServiceDesk Plus. |
Email ID | Specify the email ID of the requester whose details you want to retrieve from ServiceDesk Plus. |
Type | Select the type of requester whose details you want to retrieve from ServiceDesk Plus. You can choose between User or Technician. |
Other Fields | Specify custom fields, in the JSON format, that you want to use for filtering requesters whose details you want to retrieve from ServiceDesk Plus. For example, {"name": "abc"} |
Fields Required | Specify the fields required to be retrieved for the requesters you want to retrieve from ServiceDesk Plus. You can specify multiple fields using a comma separator. For example, name,status,phone,mobile,jobtitle |
Sort By | Specify the field using which you want to sort the requesters retrieved from ServiceDesk Plus. For example, name |
Sort Order | Select the order in which you want to sort the requesters retrieved from ServiceDesk Plus. You can choose between Ascending or Descending. |
Start Index | Specify the index of the first item (requester) to be returned by this operation. This parameter is useful if you want to get a subset of records. Note: You can specify the minimum number as 1. |
Record Count | Specify the maximum number of records (requesters) to be returned by this operation in a single request. Note: You can specify the minimum number as 1. |
The output contains the following populated JSON schema:
{
"requester": [
{
"email_id": "",
"is_technician": "",
"employee_id": "",
"name": "",
"profile_pic": {
"content-url": ""
},
"id": "",
"department": "",
"type": "",
"citype": {
"name": "",
"id": ""
}
}
],
"response_status": {
"status_code": "",
"status": ""
},
"image_token": "",
"list_info": {
"has_more_rows": "",
"start_index": "",
"search_fields": "",
"sort_field": "",
"sort_order": "",
"row_count": ""
}
}
Note: All the input parameters are optional. However, if you do not specify any parameter, then no filter criterion is applied, and an unfiltered list is returned.
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket request for which you want to retrieve details from ServiceDesk Plus. |
Subject | Specify the subject of the ticket request for which you want to retrieve details from ServiceDesk Plus. |
Priority | Select the priority of the ticket request for which you want to retrieve details from ServiceDesk Plus. You can choose between High, Low, Medium, or Normal. |
Requester Name | Specify the name of the requester whose open tickets details you want to retrieve details from ServiceDesk Plus. |
Other Fields | Specify custom fields, in the JSON format, that you want to use for filtering open tickets whose details you want to retrieve from ServiceDesk Plus. For example, { "urgency.name": "Low" } |
Sort By | Specify the field using which you want to sort the open tickets retrieved from ServiceDesk Plus. For example, subject |
Sort Order | Select the order in which you want to sort the open tickets retrieved from ServiceDesk Plus. You can choose between Ascending or Descending. |
Start From | Specify the index of the first item (open tickets) to be returned by this operation. This parameter is useful if you want to get a subset of records. By default, this is set as 1. |
Limit Upto | Specify the index till when, i.e., the last item (open tickets) to be returned by this operation. |
The output contains the following populated JSON schema:
{
"response_status": [
{
"status_code": "",
"status": ""
}
],
"list_info": {
"has_more_rows": "",
"start_index": "",
"search_fields": {
"urgency.name": "",
"status.name": ""
},
"total_count": "",
"get_total_count": "",
"row_count": ""
},
"requests": [
{
"requester": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"template": {
"is_service_template": "",
"service_category": "",
"name": "",
"id": ""
},
"short_description": "",
"created_time": {
"display_value": "",
"value": ""
},
"subject": "",
"time_elapsed": "",
"is_overdue": "",
"technician": "",
"priority": {
"color": "",
"name": "",
"id": ""
},
"created_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"due_by_time": {
"display_value": "",
"value": ""
},
"response_time_elapsed": "",
"site": "",
"is_service_request": "",
"cancel_requested_is_pending": "",
"cancel_requested": "",
"id": "",
"status": {
"color": "",
"name": "",
"id": ""
},
"group": ""
}
]
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket that you want to update in ServiceDesk Plus. |
Subject | Specify the subject of the ticket request that you want to update in ServiceDesk Plus. |
Description | (Optional) Specify the description of the ticket request that you want to update in ServiceDesk Plus. |
Status | (Optional) Select the status that you want to assign to the ticket request you want to update in ServiceDesk Plus. You can choose between Assigned, Cancelled, Closed, In Progress, Onhold, Open, or Resolved. |
Priority | (Optional) Select the priority that you want to assign to the ticket request you want to update in ServiceDesk Plus. You can choose between High, Low, Medium, or Normal. |
Urgency | (Optional) Select the urgency that you want to assign to the ticket request you want to update in ServiceDesk Plus. You can choose between High, Low, Normal, or Urgent. |
Other Fields | (Optional) Add custom fields, in the JSON format, to the ticket request that you want to update in ServiceDesk Plus. For example, { |
The output contains the following populated JSON schema:
{
"request": {
"ola_due_by_time": "",
"resolution": {
"submitted_on": {
"display_value": "",
"value": ""
},
"submitted_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"resolution_attachments": [],
"content": ""
},
"onhold_time": "",
"is_trashed": "",
"id": "",
"assigned_time": "",
"requester": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"cancel_requested_by": "",
"sla_violated_technician": "",
"item": "",
"has_resolution_attachments": "",
"impact": "",
"sla": "",
"resolved_time": {
"display_value": "",
"value": ""
},
"priority": "",
"sla_violated_group": "",
"tags": [],
"has_notes": "",
"is_current_ola_violated": "",
"image_token": "",
"status": {
"color": "",
"name": "",
"id": ""
},
"template": {
"is_service_template": "",
"service_category": "",
"name": "",
"id": ""
},
"primary_asset": "",
"request_type": "",
"cancel_requested_time": "",
"responded_time": {
"display_value": "",
"value": ""
},
"age_after_violation": "",
"chat_type": "",
"is_service_request": "",
"cancel_requested": "",
"has_request_initiated_change": "",
"has_attachments": "",
"has_linked_requests": "",
"has_request_caused_by_change": "",
"has_problem": "",
"is_fcr": "",
"response_time_elapsed": {
"display_value": "",
"value": ""
},
"total_unassigned_time": {
"display_value": "",
"value": ""
},
"completed_time": {
"display_value": "",
"value": ""
},
"subject": "",
"linked_to_request": "",
"mode": "",
"is_read": "",
"lifecycle": "",
"reason_for_cancel": "",
"assets": [],
"group": "",
"email_to": [],
"created_time": {
"display_value": "",
"value": ""
},
"level": "",
"approval_status": "",
"service_category": "",
"created_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"scheduled_end_time": "",
"first_response_due_by_time": "",
"last_updated_time": {
"display_value": "",
"value": ""
},
"impact_details": "",
"subcategory": "",
"email_cc": [],
"scheduled_start_time": "",
"email_ids_to_notify": [],
"time_elapsed": {
"display_value": "",
"value": ""
},
"notification_status": "",
"description": "",
"has_dependency": "",
"closure_info": {
"requester_ack_comments": "",
"closure_code": "",
"closure_comments": "",
"requester_ack_resolution": ""
},
"has_conversation": "",
"callback_url": "",
"urgency": {
"name": "",
"id": ""
},
"is_shared": "",
"request_template_task_ids": [],
"department": "",
"is_reopened": "",
"has_draft": "",
"is_overdue": "",
"technician": "",
"due_by_time": "",
"has_project": "",
"age_after_sla_response_violation": "",
"is_first_response_overdue": "",
"cancel_requested_is_pending": "",
"recommend_template": "",
"unreplied_count": "",
"category": "",
"maintenance": ""
},
"response_status": {
"status_code": "",
"status": ""
}
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket that you want to close in ServiceDesk Plus. |
FCR | Select this option if the ticket that you want to close in ServiceDesk Plus has been marked as First Call Resolution (FCR). |
Has requester acknowledged the resolution? | Select this option if the resolution of the ticket that you want to close in ServiceDesk Plus has been acknowledged by the requester. |
Comments | (Optional) Specify the comment specified by the requester while acknowledging the resolution of the ticket. |
Request Closure Code | (Optional) Select the closure code that you want to assign to the ticket that you want to close in ServiceDesk Plus. You can choose between Cancelled, Failed, Moved, Postponed, Sucess, or Unable to Reproduce. |
Request Closure Comments | (Optional) Specify the closure comment to be added to the ticket that you want to close in ServiceDesk Plus. |
The output contains the following populated JSON schema:
{
"response_status": {
"status_code": "",
"messages": [
{
"status_code": "",
"type": "",
"message": ""
}
],
"status": ""
}
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket that you want to delete (move to trash) from ServiceDesk Plus. |
The output contains the following populated JSON schema:
{
"request": {
"ola_due_by_time": "",
"deleted_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": "",
"is_vipuser": "",
"id": "",
"department": ""
},
"resolution": {
"resolution_attachments": [],
"content": ""
},
"onhold_time": "",
"is_trashed": "",
"id": "",
"assigned_time": "",
"requester": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"cancel_requested_by": "",
"sla_violated_technician": "",
"item": "",
"has_resolution_attachments": "",
"impact": "",
"sla": "",
"priority": "",
"sla_violated_group": "",
"tags": [],
"has_notes": "",
"is_current_ola_violated": "",
"image_token": "",
"status": {
"color": "",
"name": "",
"id": ""
},
"template": {
"is_service_template": "",
"service_category": "",
"name": "",
"id": ""
},
"primary_asset": "",
"request_type": "",
"cancel_requested_time": "",
"chat_type": "",
"is_service_request": "",
"cancel_requested": "",
"has_request_initiated_change": "",
"has_attachments": "",
"has_linked_requests": "",
"has_request_caused_by_change": "",
"has_problem": "",
"subject": "",
"linked_to_request": "",
"mode": "",
"is_read": "",
"lifecycle": "",
"reason_for_cancel": "",
"assets": [],
"group": "",
"email_to": [],
"created_time": {
"display_value": "",
"value": ""
},
"level": "",
"approval_status": "",
"service_category": "",
"created_by": {
"email_id": "",
"phone": "",
"name": "",
"mobile": "",
"profile_pic": {
"content-url": ""
},
"is_vipuser": "",
"id": "",
"department": ""
},
"scheduled_end_time": "",
"first_response_due_by_time": "",
"last_updated_time": "",
"impact_details": "",
"subcategory": "",
"email_cc": [],
"scheduled_start_time": "",
"email_ids_to_notify": [],
"notification_status": "",
"description": "",
"has_dependency": "",
"has_conversation": "",
"callback_url": "",
"urgency": "",
"is_shared": "",
"request_template_task_ids": [],
"department": "",
"is_reopened": "",
"has_draft": "",
"is_overdue": "",
"technician": "",
"due_by_time": "",
"has_project": "",
"deleted_on": {
"display_value": "",
"value": ""
},
"is_first_response_overdue": "",
"cancel_requested_is_pending": "",
"recommend_template": "",
"unreplied_count": "",
"category": "",
"maintenance": ""
},
"response_status": {
"status_code": "",
"status": ""
}
}
Parameter | Description |
---|---|
Ticket Request ID | Specify the ID of the ticket that you want to permanently delete from the 'trash' in ServiceDesk Plus. |
The output contains the following populated JSON schema:
{
"response_status": {
"status_code": "",
"status": ""
}
}
The Sample - ManageEngine ServiceDesk Plus - 2.0.0
playbook collection comes bundled with the ManageEngine ServiceDesk Plus connector. These playbooks contain steps using which you can perform all supported actions. You can see bundled playbooks in the Automation > Playbooks section in FortiSOAR™ after importing the ManageEngine ServiceDesk Plus connector.
Note: If you are planning to use any of the sample playbooks in your environment, ensure that you clone those playbooks and move them to a different collection since the sample playbook collection gets deleted during the connector upgrade and delete.
**NOTE: The Incident module in FortiSOAR has 5 values that can be assigned to the 'status' field; whereas, the 'status' field in ManageEngine ServiceDesk Plus, by default, has 7 values that can be assigned, and other options can also be added. In the case of the 'Create Ticket' and 'Update FortiSOARs Incident' playbooks, the 7 default 'status' values from ManageEngine ServiceDesk Plus are mapped to the 'status' field FortiSOAR incident module as follows:
ManageEngine ServiceDesk Plus - 'Status' field value | FortiSOAR Incident Module- 'Status' field value |
---|---|
Open | Open |
In Progress | In Progress |
Assigned | In Progress |
Resolved | Resolved |
Closed | Resolved |
Onhold | Awaiting |
Cancelled | Inactive |