ServiceDesk Plus Cloud Integration
ManageEngine SupportCenter Plus integrates with ManageEngine ServiceDesk Plus Cloud, an ITIL-ready help desk software. This integration allows Support Reps to automatically log trouble tickets from SupportCenter Plus.
Follow the steps given below to configure the ServiceDesk Plus Cloud integration.
Step 1: Copy configuration files
Step 2: Creating a new action menu
- Go to Admin -> Menu Invocation (under Helpdesk Settings)
- Menu Name -> Should be same as menu name configured in SDPOD.xml (<menu name="SDPODIntegration">)
- Display Text -> Name it as per your choice, Ex. "Raise SDP Cloud Request"
- Select type as "Execute Class" and provider Executor class as "com.scp.sdpod.SDPOnDemandActionImplementation" and save.
Now you will find a new menu under action as shown,

NOTE: The original implementation class file (SDPOnDemandActionImplementation.java) is available under the [SCP_Home]\actionplugins\sdp\src\com\scp\sdpod directory. You can modify the file as per your requirement, compile it using JDK 1.7 and update the sdpodimpl.jar file (update the jar file in [SCP_Home]\server\default\lib directory). Finally, restart the server.
Step 3: Configuring SDPOD.xml file
-
Open the SDPOD.xml file copied under "[SCP_Home]/server/default/conf" directory
-
Specify the URL, request parameter values and authentication details of the ServiceDesk Plus Cloud instance on which you would like to create the ticket under the <request> tag.
Example, <url>https://scp-tech.sdpondemand.manageengine.com/api/v3/requests/</url>
Example, <auth_token>409e5455***************c4eb2eeb</auth_token>
Using oAuthToken mention the below entries if you do not have an authtoken.
-
<refresh_token>[SDPOD_refreshtoken]</refresh_token>
-
Example, <refresh_token>1000.81a912f**************fe54fa.94dfb**********78e3b960d71f44c05</refresh_token>
-
<client_id>[SDPOD_clientid]</client_id>
-
Example, <client_id>1000.KA4B***********RHYQNY</client_id>
-
<client_secret>[SDPOD_clientsecret]</client_secret>
-
Example, <client_secret>15e8b5425*************64bd71cd6</client_secret>
Configuring <param> tags
<name>subject</name> #SDP Cloud field
<value>$subject</value> #SCP field
</param>
<name>requester</name>
<value>supportcenter@abc.com</value>
</param>
Parameter details
Param name (SDPCloud)
|
Value (SCP)
|
Notes
|
requester
|
Dynamic variable : $contact
Staitc Variable :
Either name or email of one user
|
If a name is used, then 'add requester' role is needed in ServiceDesk Plus Cloud for the user whose auth_token is used
|
subject
|
$subject
|
|
description
|
$description
|
|
priority
|
$priority
|
Notes:
-
Both the SupportCenter Plus and ServiceDesk Plus Cloud must have same value for these fields.
-
These fields must be made visible in the request template for the requester.
|
category
|
$category
|
subcategory
|
$subcategory
|
item
|
$item
|
mode
|
$mode
|
level
|
$level
|
status
|
$status
|
udf_long1
|
$requestID
Note: Error will be thrown if the additional fields are not present in the request template.
|
This will store the SupportCenter Plus request ID in ServiceDesk Plus Cloud additional field udf_long1
|
udf_char2
|
http://[scp_URL]/WorkOrder.do?woMode=viewWO&woID=$requestID
|
This will store the SupportCenter Plus request link in ServiceDesk Plus Cloud additional field udf_char2
|
- Configuring custom message tags, these will be shown according to the success or failure of the menu action.
- <success>Ticket is created in ServiceDesk Plus Cloud with Id: $display_id</success>
- <failure>Failed to Integrate to ServiceDesk Plus Cloud</failure>
- Handling a response from ServiceDesk Plus Cloud with response tag, returns the response in JSON format. Response tag contains param and notes tags.
<name>SDPOD_ID</name> #SCP Field
<value>$display_id</value> #SDP OnDemand field
</param>
<name>status</name>
<value>$status</value>
</param>
Note: SDPOD_ID is the additional field in SupportCenter Plus which will store the ServiceDesk Plus Cloud request ID on successful creation of the request in the ServiceDesk Plus Cloud. Similarly, other SupportCenter Plus fields can also be updated from ServiceDesk Plus Cloud.
<notes>
<note>Ticket is created in ServiceDesk Plus Cloud with Id: $display_id</note>
</notes>
Updating SupportCenter Plus ticket from ServiceDesk Plus Cloud
Manual update
-
Create a new action menu with menu name as UpdateSDPODTicket and executor class as com.scp.sdpod.SDPOnDemandActionImplementation
-
Configure the SDPOD.xml file with URL, tokens and custom messages for the menu UpdateSDPODTicket.
-
Updating the SupportCenter Plus ticket need not require param fields in request tag. The param fields mentioned inside response tag will be updated in the SupportCenter Plus request with the fetched Cloud field values.
"status", "group", "category", "sub category", "item", "priority", "level", "item" and "additional fields" are the supported fields while updating the request.
-
Invoke the menu action from the request page to update the SupportCenter Plus request with ServiceDesk Plus Cloud request.
Automated update through custom schedules
-
Configure a custom view to update only the necessary requests.
Column |
Condition |
Value |
Request Status |
is not |
"Closed", "Resolved" |
SDPOD_ID
(Additional field created to store OnDemand request ID)
|
greater than |
0 |
This will update only requests which were not closed or resolved and having a valid Cloud request ID
- Configure the SDPOD.xml file
- Menu name used "UpdateSDPODTicket". Under this menu provide URL and token details.
- Provide the custom view name created above in the xml following authentication details as,
<view_name>Update</view_name><bu_name>[SCP_BU]</bu_name>
- Configure fields to be updated in the response param tags
- All the requests matching the criteria will be updated by the configured schedule.
Note: Requests cannot be "Closed" through this system update, but resolved.
Authorization
There are two authorization methods to create a ServiceDesk Plus Cloud request.
Creating authtoken
Creating Oauthtoken
To generate a client_id and client_secret.
- Click on Add Client ID to create a new Client ID and Client Secret.
- Provide the Client Name, Client Domain and Authorized redirect URLs and type as WEB based. (The redirect URL is the callback entry point of the app and is different from the entry point of the app.)
- You will get OAuth details with the Client ID and Client Secret shared between Zoho and the application.
Getting authorization
Here, we will invoke the authorization URL https://accounts.zoho.com/oauth/v2/auth with the following parameters as a query string.
Format,
https://accounts.zoho.com/oauth/v2/auth?scope={scope}&client_id={client_id}&response_type=code&access_type=offline&redirect_uri={redirect_uri}
Parameter |
Type |
Description |
*client_id |
Unique Identifier |
The ID that was assigned to your app when you registered it. |
*response_type |
string |
"code" as value |
*redirect_uri |
URI |
Configured as in step 1 |
*access_type |
string |
"offline" (this will give the application an access_token as well as a refresh_token) |
*scope |
string |
Specifies the scope allowed for your app. Has to be separated by commas. Ex,
SDPOnDemand.requests.CREATE,SDPOnDemand.requests.READ
This allows the token to only create and read requests.
|
- In the browser, invoke the above formed Authorization URL. Now the user is shown a 'User consent page'. If the user clicks Accept, Zoho redirects the user back to your site with an 'Authorization code' found as the parameter in the address link. Copy this code to be used in the next step.
Generating refresh_token
https://accounts.zoho.com/oauth/v2/token?code={code}&client_id={client_id}&client_secret={client_secret}&redirect_uri={redirect_uri}&grant_type=authorization_code
Parameter |
Type |
Description |
*client_id |
Unique Identifier |
Obtained in Step 1 |
*client_secret |
string |
Obtained in Step 1 |
*code |
string |
Authorization code obtained in Step 2 |
*redirect_uri |
URI |
Configured as in step 1 |
*grant_type |
string |
authorization_code" as value |
To invoke the above URL, use postman or other tools to send a post request.
Example
POST oauth/v2/tokenHOST:: https://accounts.zoho.com
Query string
https://accounts.zoho.com/oauth/v2/token
?code=1000.****************************f160
&grant_type=authorization_code
&client_id=1000.R2Z0W*********************Q5EN
&client_secret=39c**********************************921b
&redirect_uri=redirect_uri
- Once the URL is sent with authorization code, you will receive the response with access_token and refresh_token.
Provide client_id, client_secret and refresh_token in the SDPOD.xml. Thus integration between SupportCenter Plus and ServiceDesk Plus Cloud can be done.