Fortinet black logo

ManageEngine ServiceDesk Plus

ManageEngine ServiceDesk Plus v2.0.0

2.0.0
Copy Link
Copy Doc ID 24ac0da1-9646-11ed-8e6d-fa163e15d75b:479

About the connector

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.

Version information

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

Installing the connector

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

Release Notes for version 2.0.0

The following enhancements have been made to the ManageEngine ServiceDesk Plus connector in version 2.0.0:

  • Updated the connector to be compatible with ManageEngine ServiceDesk Plus API v3.
  • Added a new action and playbook named 'Delete Ticket From Trash'.
  • Updated the parameter 'Requester Name' to 'Requester' in the 'Create Ticket' action.
  • Updated the 'Add Note' action as follows:
    • Added the following input parameters:
      • Show to Requester
      • Mark First Response
      • Add to Linked Request
      • Notify Technician
    • Renamed the 'Note' parameter to 'Description'.
    • Removed the 'Note Public' parameter.
  • Added input parameters to the 'Get All Requesters' action. In the previous version, this action did not have any input parameters.
  • Updated all the input parameters to the 'Get All Open Tickets' action.
  • Added the following input parameters to the 'Close Ticket' action:
    • FCR
    • Has requester acknowledged the resolution?
    • Comments
    • Request Closure Code
    • Request Closure Comments
  • Fixed a bug that prevented version 1.0.0 of this connector from working with version 12.0 of the ManageEngine ServiceDesk Plus API.

Prerequisites to configuring the connector

  • You must have the URL of the ManageEngine ServiceDesk Plus server to which you will connect and perform automated operations.
  • You must have an API key that is configured for your account to access the ManageEngine ServiceDesk Plus endpoint.
  • The FortiSOAR™ server should have outbound connectivity to port 443 on the ManageEngine ServiceDesk Plus Server.

Minimum Permissions Required

  • Not Applicable

Configuring the connector

For the procedure to configure a connector, click here.

Configuration parameters

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.

Configuring activities to be forwarded to FortiSOAR™ from ManageEngine ServiceDesk Plus

To configure activities to be forwarded to FortiSOAR™ from ManageEngine ServiceDesk Plus, you must do the following:

  1. Configure an action rule in the 'Custom Triggers' section on the ManageEngine server to which the ManageEngine ServiceDesk Plus Connector is connected that will be used to forward configured activities from ManageEngine ServiceDesk Plus to FortiSOAR™. The ManageEngine Trigger pushes configured activities to FortiSOAR™. For more information on Custom Triggers, see the Custom Triggers document.
  2. Configure the FortiSOAR forwarder script. The FortiSOAR forwarder script is built to forward configured activities from ManageEngine ServiceDesk Plus to FortiSOAR™. The FortiSOAR forwarder script (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:

  1. Open the ManageEngine server where you have connected the ManageEngine ServiceDesk Plus connector.
  2. To add a custom trigger, click Admin > Helpdesk Customizer > Custom Triggers > Add New Action.
  3. In the Configuration Wizard, add the configuration and details necessary for the new action rule as shown in the following image:
  4. On the host where you want to install the script (fsr_forwarding.py), perform the following steps:
    1. Install Python.
      You must install Python version 3 or later.
    2. On the Host machine, ensure that you can run the forwarder script from anywhere. For this purpose set the python path in the Environment Variable as follows:
      Open Control Panel > System and Security > System > Advanced system settings > Advanced > Environment Variables > System variables. Click New in the System variables section, and in the New System Variable dialog, in the Variable name field, type <Variable Name> and in the Variable value field, type <Python Installation Path>.
      For example:
      %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python34\
    3. From the connector bundle, copy the 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:
      1. Edit the following lines in the fsr_forwarding.py to point to your FortiSOAR™ instance:
        host_uri = '<FortiSOAR IP Address>'
        full_uri = 'https://' + host_uri + '/api/triggers/1/ManageEngine'
    4. Add the 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.
    5. Create a text file named 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.

Actions supported by the connector

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

operation: Create Ticket

Input parameters

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,
{
"level":
{ "name": "Tier 3" },
"category":
{ "name": "Network" }
}

Output

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": ""
}
}

operation: Add Resolution

Input parameters

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.

Output

The output contains the following populated JSON schema:
{
"response_status": {
"status_code": "",
"messages": [
{
"status_code": "",
"type": "",
"message": ""
}
],
"status": ""
}
}

operation: Add Note

Input parameters

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.

Output

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": ""
}
}

operation: Get Ticket Details

Input parameters

Parameter Description
Ticket Request ID Specify the ID of the ticket request for which you want to retrieve details from ServiceDesk Plus.

Output

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": ""
}
}

operation: Get All Requesters

Input parameters

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.

Output

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": ""
}
}

operation: Get All Open Tickets

Input parameters

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.

Output

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": ""
}
]
}

operation: Update Ticket

Input parameters

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,
{
"level":
{ "name": "Tier 3" },
"category":
{ "name": "Network" }
}

Output

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": ""
}
}

operation: Close Ticket

Input parameters

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.

Output

The output contains the following populated JSON schema:
{
"response_status": {
"status_code": "",
"messages": [
{
"status_code": "",
"type": "",
"message": ""
}
],
"status": ""
}
}

operation: Delete Ticket

Input parameters

Parameter Description
Ticket Request ID Specify the ID of the ticket that you want to delete (move to trash) from ServiceDesk Plus.

Output

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": ""
}
}

operation: Delete Ticket From Trash

Input parameters

Parameter Description
Ticket Request ID Specify the ID of the ticket that you want to permanently delete from the 'trash' in ServiceDesk Plus.

Output

The output contains the following populated JSON schema:
{
"response_status": {
"status_code": "",
"status": ""
}
}

Included playbooks

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.

  • Add Note
  • Add Resolution
  • Close Ticket
  • Create Ticket**
  • Delete Ticket
  • Delete Ticket From Trash
  • Get All Open Tickets
  • Get All Requesters
  • Get Ticket Details
  • Update FortiSOARs Incident**
  • Update Ticket

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
Previous
Next

About the connector

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.

Version information

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

Installing the connector

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

Release Notes for version 2.0.0

The following enhancements have been made to the ManageEngine ServiceDesk Plus connector in version 2.0.0:

Prerequisites to configuring the connector

Minimum Permissions Required

Configuring the connector

For the procedure to configure a connector, click here.

Configuration parameters

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.

Configuring activities to be forwarded to FortiSOAR™ from ManageEngine ServiceDesk Plus

To configure activities to be forwarded to FortiSOAR™ from ManageEngine ServiceDesk Plus, you must do the following:

  1. Configure an action rule in the 'Custom Triggers' section on the ManageEngine server to which the ManageEngine ServiceDesk Plus Connector is connected that will be used to forward configured activities from ManageEngine ServiceDesk Plus to FortiSOAR™. The ManageEngine Trigger pushes configured activities to FortiSOAR™. For more information on Custom Triggers, see the Custom Triggers document.
  2. Configure the FortiSOAR forwarder script. The FortiSOAR forwarder script is built to forward configured activities from ManageEngine ServiceDesk Plus to FortiSOAR™. The FortiSOAR forwarder script (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:

  1. Open the ManageEngine server where you have connected the ManageEngine ServiceDesk Plus connector.
  2. To add a custom trigger, click Admin > Helpdesk Customizer > Custom Triggers > Add New Action.
  3. In the Configuration Wizard, add the configuration and details necessary for the new action rule as shown in the following image:
  4. On the host where you want to install the script (fsr_forwarding.py), perform the following steps:
    1. Install Python.
      You must install Python version 3 or later.
    2. On the Host machine, ensure that you can run the forwarder script from anywhere. For this purpose set the python path in the Environment Variable as follows:
      Open Control Panel > System and Security > System > Advanced system settings > Advanced > Environment Variables > System variables. Click New in the System variables section, and in the New System Variable dialog, in the Variable name field, type <Variable Name> and in the Variable value field, type <Python Installation Path>.
      For example:
      %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python34\
    3. From the connector bundle, copy the 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:
      1. Edit the following lines in the fsr_forwarding.py to point to your FortiSOAR™ instance:
        host_uri = '<FortiSOAR IP Address>'
        full_uri = 'https://' + host_uri + '/api/triggers/1/ManageEngine'
    4. Add the 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.
    5. Create a text file named 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.

Actions supported by the connector

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

operation: Create Ticket

Input parameters

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,
{
"level":
{ "name": "Tier 3" },
"category":
{ "name": "Network" }
}

Output

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": ""
}
}

operation: Add Resolution

Input parameters

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.

Output

The output contains the following populated JSON schema:
{
"response_status": {
"status_code": "",
"messages": [
{
"status_code": "",
"type": "",
"message": ""
}
],
"status": ""
}
}

operation: Add Note

Input parameters

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.

Output

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": ""
}
}

operation: Get Ticket Details

Input parameters

Parameter Description
Ticket Request ID Specify the ID of the ticket request for which you want to retrieve details from ServiceDesk Plus.

Output

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": ""
}
}

operation: Get All Requesters

Input parameters

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.

Output

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": ""
}
}

operation: Get All Open Tickets

Input parameters

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.

Output

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": ""
}
]
}

operation: Update Ticket

Input parameters

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,
{
"level":
{ "name": "Tier 3" },
"category":
{ "name": "Network" }
}

Output

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": ""
}
}

operation: Close Ticket

Input parameters

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.

Output

The output contains the following populated JSON schema:
{
"response_status": {
"status_code": "",
"messages": [
{
"status_code": "",
"type": "",
"message": ""
}
],
"status": ""
}
}

operation: Delete Ticket

Input parameters

Parameter Description
Ticket Request ID Specify the ID of the ticket that you want to delete (move to trash) from ServiceDesk Plus.

Output

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": ""
}
}

operation: Delete Ticket From Trash

Input parameters

Parameter Description
Ticket Request ID Specify the ID of the ticket that you want to permanently delete from the 'trash' in ServiceDesk Plus.

Output

The output contains the following populated JSON schema:
{
"response_status": {
"status_code": "",
"status": ""
}
}

Included playbooks

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
Previous
Next