Custom Schedules Function

ServiceDesk Plus allows administrators to execute custom schedules using a built-in script execution tool called Custom Schedules Function. The custom schedules function scripts can be built from scratch using Deluge, Zoho's propriety scripting language.

 

Custom Schedules functions can be used to build your own automation operations such as sending notifications or updating request status by analysing the queries fetched from reports.

 

Role Required: SDAdmin

 

To create custom schedules functions, go to Admin >> General Settings >> Custom Schedules Function. You can create custom schedules functions as Custom Actions or Global Functions.

Custom Actions

Custom actions are actionable custom functions that allow users to manipulate data in ServiceDesk Plus and other external applications. You can write a script to fetch data from Query Reports and execute an action based on the fetched data.

Create Custom Actions

Use the New button to create a custom action.

Provide a name and description for your custom action.

Use the simple drag-and-drop action to select objects from the Deluge Script Editor onto the canvas.

 

 

You must write the custom schedules function with reportObj as the argument.

After executing the custom schedules function, the Map data type will be returned in the following format:


 
{
"message":"Executed successfully",

"status":"success/failure"
}

 

You can perform the specified action by returning the map from the custom schedules function. The format used in custom schedules functions is the same as the python script and class. For more details, visit this page.

The new field values must be returned from the custom schedules function in a specific format as demonstrated below:

Let's consider a sample script to update request status to Closed.

 

input_data = {
	"request": {
		"status": {
			"name": "Closed"
		}
	}
}

for each data in dataObj{
	workorderid = data.get("workorderid");
	requeserid = data.get("Requeser_Id");
	app_url = "http://servername:portnumber/api/v3/requests/" + workorderid;
	params = {"input_data": input_data};
	response = invokeurl
	[
		url: url
		type: PUT
		parameters: params
		headers: headers
	];
}

 

Within custom schedules functions, you can call global functions that can store information essential to connect with external applications, common functionalities, and configurations.

To check out Deluge use cases, visit this page.

Test Execution of Scripts 

After writing the custom schedules function,

  1. Click Save and Test to test run the custom action.
  2. Choose a sample report from the list of reports displayed.
  3. The data that will be passed to the custom schedules function will be displayed under the parameter reportObj.
  4. Click Execute.

The script will be executed and the output will be printed along with info statements that are used for debugging.

 

If you make any API calls by using invokeurl while testing the custom schedules function, the API will be invoked. Ensure that you don't invoke an API that might result in unintended consequences. 

 

Debugging Tip 

When you test a custom schedules function, you can debug the code and print the output by using a statement called info. For example, to understand the structure of reportObj and context, you can simply run the following script and study the response.

info reportObj;
info context;
return true;

 

For more details on Deluge, visit Deluge help guide

 

After a custom action is created, you can use it to create custom schedules. The custom schedule where the custom action is active is displayed in the custom action list view.

Custom Actions List View 

After creating custom actions, you can manage them from the list view as follows:

 

 

Only active custom actions will be available to use in the configurations mentioned above