Custom Modules   

ServiceDesk Plus comes with several built-in modules (such as Requests, Changes, Assets, etc.) with their default configurations (such as Status, Priority Matrix, Closure Code, etc.) But, your organization's needs might require entities, fields, and workflows beyond these default modules and configurations.

In such cases, you can use Custom Modules to create your own modules and configurations, besides subforms and subentities for existing templates.

Role Required: SDAdmin

Benefits of Custom Modules  

 Custom Modules is available only in the Enterprise edition. 

Types of Custom Modules 

You can create four types of custom modules: Web Tab, Configuration, Subform, and Subentity.

After you create a custom module, you can start adding relevant data to it. The information entered in custom modules is collected and stored as records.

Type

Purpose

Examples

Access From

Web Tab

Create your own modules to configure, edit, store, and delete records you want.

To enhance custom modules' functionality, you can enable advanced features such as Automations, Reports, Import, and more.

Requests (with automation, reporting, and import features)

Navigation pane (similar to built-in modules)

Configuration

Create custom configurations to store values that:

  • Serve as reference entities: Reuse across modules for dropdown options or as linked fields.
  • Help define workflows: Guide how records progress from submission to closure.

Status and similar to those under Admin > Customization.

Admin > Customization > Custom Configurations

Subform

  • Create form sections (Related fields grouped within a form).
  • You can use subforms to capture multiple entries linked to the main record (such as line items or supporting details) in a tabular format.

In a Purchase Order record, a subform can hold multiple line items (item name, quantity, price) linked to that order.

Web tab, custom configuration, and subentity forms (if added to the template).

Subentity

Create entities to store additional details and manage a record (parent entity) throughout its life cycle.

In a project record (parent), Milestones and Tasks are subentities that help you track and manage the project.

Details page of a record

 

In the ESM Directory, only Configuration type custom modules can be created. 
You can create up to 10 web tabs, 50 custom configurations, 20 subforms, and 20 subentities. In the ESM Directory, you can create up to 20 custom configurations.
You cannot add subentities to custom configurations.    

Create a Custom Module     

Role Required: SDAdmin 

Step 1: Add details

Step 2: Add fields

Step 3: Define and customize form layout

Step 4: Configure permissions

Step 5: Add subentities

Step 6: Create custom actions

Step 7: Configure field and form rules 

Step 8: Publish the custom module

Step 1: Add Details 

Field Name

Description

Comments

Display Name *

Enter the display name of your custom module.

This name is displayed in contexts where a single record is referred, such as record forms or record details page.

Display Plural Name *

Enter the display plural name.

The plural name will be displayed in places referring to the custom module as a whole, such as navigation menu, list views, and reports.

In the navigation menu, the display name will be shown if the custom module contains only one record.

API Name *

Auto-populated based on Display Name but can be modified.

  • Prefixed by cm_ by default.
  • Allowed characters are lowercase letters, numbers, and underscore. 
  • Once saved, the name cannot be edited.

API Plural Name *

Auto-populated based on Display Plural Name but can be modified.

 

Type *

Select the required custom module type from the drop-down.

-

Description

Enter a description.

-

Icon

Click Select Icon and upload your preferred icon for the custom module.

The maximum file size is 5MB.

Supported file formats are JPEG, JPG, PNG, and GIF.

Attachments

Attach files relevant to custom module configurations.

The maximum file size is 10MB.

*Mandatory fields  

Collaboration 

Use Collaborate on the top right of the configuration page to connect with multiple administrators and configure the module together. 

The following sections will appear after the New Custom Module form is saved.

Advanced Features  (Web Tabs Only) 

Enable advanced features for web tabs to enhance their functionality.

Certain features, when enabled, can be configured further. To edit such configurations, hover over the feature and click Edit.    

After selecting the required features, click Next

 

Features

Purpose

Configuration

Automations

Allows technicians to configure automation rules for the custom module.

Supported automation features are Business Rules, Custom Triggers, Workflows, and Timer Actions.

If Automations is enabled, Custom Functions will be enabled automatically and cannot be disabled.

-

Custom Functions

Allows technicians to manipulate the custom module data and execute automated actions, including internal and external API calls.

Custom Functions can be used in business rules, custom triggers, and web tab custom actions.

-

Import

Supports data import for the custom module.

Supported file formats are XLS, XLSX, and CSV.

If Allow to create a new refer entity is enabled, the system will handle new values during import as follows:

In the import file, if a field referring to a custom configuration (created via Custom Modules) contains an undefined value, the system will:

  • Create a new record for that value in the custom configuration.
  • Link that new record to the corresponding field in the target custom module.

From How do you want to import, select how the data should be imported into the custom module:

  • Add: Imports all records from the file as new entries.
  • Add and update records: Adds new records and updates any existing ones that match the file data.
  • Delete existing records and add new ones: Deletes all current records and replaces them with the new records from the file.
  • Ignore duplicate records: Skips duplicate entries found in the import file and  imports only unique records.
  • Update: Updates existing records that match the file data without adding new records.

Click  to select operations in bulk.

Click Save.

Global  Search

Users can search for specific records from global search, without navigating to the custom module.

-

Custom  Views

Technicians can create and share a customized list view for records matching specific criteria.

Select where custom views can be shared: Select the roles, support groups, or user groups with whom a technician can share their custom view.

Enable defining preferred columns for custom views: If enabled, technicians can select preferred columns for their custom view while creating it.

Enable preferred columns override: When enabled, technicians can choose to view the columns in the All Records list view, overriding the columns preferred for the custom view.
When disabled, technicians can view only the columns defined for that custom view.

Non-login

Users can view the custom module's data without logging in.

From Non-login Fields, select the fields to be displayed in the custom module for non-login users. Click the bulk-select icon to select multiple fields.

Under Non-login Filters, define field criteria to display only the records matching the criteria.

  • Click the plus icon to add more criteria.
  • Use AND/OR logical operators to apply all or any criteria. 

A Non-login URL will be auto-generated for the module. Share this URL with users to access the module without logging in.

The non-login URL will work only after the custom module is published.

Trash

Technicians can remove records from the custom module temporarily by moving them to trash.

These records remain inactive until restored.

This feature will help avoid accidental deletion of data.

Set a restoration period (15, 30, or 45 days) after which unrestored records must be deleted permanently.

Auto Delete

On a daily schedule, the system will delete the first 25 records that have reached their expiry period.

The schedule will run on both active and trashed records.

This feature is useful for clearing outdated data periodically.

Set an expiry period (1, 4, or 8 years) after which records must be deleted permanently.

The expiry period is calculated from the record's created date.

Reports

Allows technicians to generate reports for the custom module data.

-

Tags

Enables technicians to add tags to records and view records linked to the same tag.

-

Step 2: Add Fields 

In Fields List, you can add the fields required to collect information and create records in the custom module.

Field Type

Description

Single-line

Accommodates short text and phrases.

Multi-line

Accommodates long text and detailed descriptions.

Picklist/ Radio

Accommodates a list of options. Users can select only one value from the list and record their decisions.

Multiselect/ Checkbox

Accommodates a list of options. Users can select one or multiple values from the list.

Numeric fields (Numeric, Phone, Currency, Decimal, Percentage)

Accepts numeric values only.

Date/Time

Stores date and/or time values.

Decimal

Accepts decimal values.

Boolean

Stores binary values. Users can select either True or False (Yes or No).

Color

  • Allows users to select a color value from a color picker.
  • Useful for categorizing information.

File Upload

Enables users to upload and store documents, images, or other reference files.

HTML

  • Provides a rich text editor to capture formatted text, including styles, links, tables, and HTML content.
  • Useful for detailed descriptions, notes, or instructions.
  • For inline image support, enable Allow media support.

URL

Accommodates valid URLs only.

 

You can encrypt single-line, multi-line, and phone field types only while creating them. Field encryption cannot be disabled later.
You can mark a field as PII only when you create the custom module. PII marking cannot be undone.
You can also add fields to the layout from the Form Customizer tab. 

Step 3: Define and Customize Form Layout 

Add and customize sections and fields

Add subforms

Edit and delete form elements

In Form Customizer, you can define the form layout for the custom module. You can add sections, fields, and subforms and customize the style properties of each of them.

You can rearrange sections, fields, and subforms within the form by drag-and-drop actions.

Under Available Fields and Subforms in the left pane, you will find a list of fields added under Fields List, default subforms, and published custom subforms. 

Add and Customize Sections and Fields 

By default, a double-column section is added to the form layout. You can add more sections and fields as needed.

Add a Section

Customize the Section

To customize a section,

Add Fields

From the left pane, drag the required fields to the target placeholder within the desired sections.  

To add a new field, 

Field Property

Available for (Field Types)

Description

Field Name*

All field types

Enter a field name.

API Field Name*

All field types

This is auto-populated based on the field name but can be edited. The field value must follow snake_case.

Holds personally identifiable information (PII)

Single-line, Multi-line, Picklist, Radio, Numeric, Date, Date/Time, Email, Phone

Enable the checkbox to mark that the field holds PII. This is useful during migration and data deletion.

Encrypt the Field

Single-line, Multi-line, Email, Phone

Enable the checkbox to encrypt the field value. This ensures sensitive information in the database remains unreadable to unauthorized users and in compliance with data protection standards.

Description

All field types

Enter a description for the field.

Help Text

All field types

Provide additional context about the field. The text will appear as a tooltip when users hover over the field, helping them understand what information to enter.

Copy Description Content to Help Text

All field types

Enable the checkbox to copy the Description content to Help Text.

Mark as Mandatory

All field types

Enable the checkbox to make the field a required entry.

To save or submit the form, users must provide a value in this field.

Unique

Single-line

Enable the checkbox to ensure no two records in the module contain the same value in the field.  This prevents duplicate data entry.

Primary Field

Single-line

Enable the checkbox to set the field as the primary identifier for the record. This field's value will be used to refer the record across the application.

Default Value

Single-line, Multi-line, Numeric, Boolean, and Date

Set a default value for the field. The field will be auto-filled with this value when the form is opened.

Values

Picklist, Multi-select, Checkbox, and Radio

On the right pane, type the values for options and hit Enter.

Each value can have up to 50 characters, except > and <.

Explore Related Fields

Picklist, Multi-select, Checkbox, and Radio

From the drop-down, select a field to reuse its values.

Only fields of similar field types and used within custom modules will be available for selection.

Explore Related Fields will be disabled if Reference Entity is enabled.

Reference Entity

Picklist, Multi-select, Checkbox, and Radio

  • Enable the checkbox.
  • The Reference Entity drop-down lists default and published custom configurations in service desk instances and ESM Directory.
  • From the drop-down, select the configuration entity you want to reuse for field options.
  • Criteria: Set criteria to use specific records from the selected entity. 
  • Note: Only status-referred and custom configuration-referred picklist fields will appear as State Field in workflow configuration.

Length

Single-line and Numeric

Enter the minimum and maximum number of characters allowed for this field.

A maximum of 100 characters can be allowed.

Allow numbers only

Single-line

Enable the checkbox to allow numeric values only.

*Mandatory fields

Customize the Field Style

In the Customization tab within the slide-out, you can customize the field style.

Add Subforms 

   The API name for default subform (Attachment) cannot be edited. 

 

 

Edit a Form Element

You can also edit the field properties from the Fields List tab. Click the edit icon next to the required field name and edit the details.

Remove a Form Element  

Delete Fields   

To delete the fields within a custom module,

Deleting the fields will delete all its data from the record.  

 

After you configure the form layout, click Next at the bottom of the Form Customizer tab.

The total number of fields that can be added to a custom module form is 90.
You can add up to five subforms to a web tab or subentity form, each with a maximum of 10 fields.
For custom configurations, only the Attachment subform is available.
For subforms, you can add only one section with a maximum of 10 fields.
(Optional for subforms) The form layout must have a primary single-line field.
Marking a field as primary will override the previously selected primary field.
To choose a custom configuration as a reference entity for picklist field types, make sure that you have marked its primary field as Unique to avoid duplicate values. 

Step 4: Configure Permissions  (Web Tabs and Custom Configurations Only)

In the Permissions tab, you can set user criteria to define permissions for the custom module.

Record-Level Permission

Module-Level Permission

The user who created the custom module will have full access, regardless of whether they meet any of the criteria.

Module-Level Permission

Allowed Actions

View

View only

Add

View and add records

Edit

View, add, and edit records

Delete

View, add, and delete records

All operations

View, add, edit, and delete records

 

If Associated Records is chosen, All operations will be disabled and cannot be configured. 
If criteria is set for All operations, other permission levels will be disabled and cannot be configured. To enable other levels, click Reset

After you finish all necessary configurations, click Save

Custom modules without layout or permission configurations cannot be published. 

Step  5: Add Subentities (Web Tab-Only)

In Sub Entity, you can add subentities required for the web tab.

You can also create your own subentities. See how.

 To a web tab, you can add up to 10 subentities.  
You cannot edit the API name of a default subentity.  
 You cannot edit the API name of a custom subentity after the custom module is published.  

● Custom subentity
● Task
● Comment
● Notification
● Work log
● Checklist
● Reminder

Field

Configuration

Dependencies

Enable the checkbox to support task dependency mapping.

Sub Entities

Select the subentities you want to associate with Task.

Fields

Select the fields to be shown on the task form, in addition to default fields.

Operations

Select the operations to be available on the task list view toolbar.

Group Criteria

Set criteria to populate the Group drop-down on the task form with groups that meet the criteria.

Owner Criteria

Set criteria to populate the Owner drop-down on the task form with users who meet the criteria.

 

Field

Configuration

Mentions

Enable this option to allow @mentions within comments.

Mentions criteria

Set user criteria to define which users can be tagged.

Reactions

Enable this option to allow emojis in comments.

Replies

Enable this option to allow users to reply to comments.

 

Notification is added to the web tab by default and cannot be removed.

Field

Configuration

Delimiter

Set a delimiter that helps technicians identify the custom module of a conversation.

This delimiter is prefixed to the record ID and added to the subject line of conversations automatically.

A delimiter must contain two letters only.

Example: If the delimiter is set as CL, a record ID will appear in the subject line as #CL-$RecordID##

Field

Configuration

Maximum records allowed

Set the maximum number of reminders that can be set.

Field

Configuration

Allow null time entry

Enable this option to allow saving a work log without specifying time details.

Auto-fill work log start and end time based on Time Taken

If enabled, the end time will be filled in with the current date and the start time will be filled in automatically based on the Time Taken value technicians enter. 

Otherwise, start and end time fields will be empty and marked as mandatory.

Include Cost Fields

Enable this option to capture cost-related details in the work log, such as rate, total cost, or billable amount.

Include non-operational hours by default

If enabled, the Include non-operational hours option will be enabled.

Owner Criteria

Define criteria to populate the Owner drop-down with users who meet the criteria.

 

For example, in an onboarding record, a checklist can include tasks like setting up a laptop, creating email accounts, and assigning access rights. The record can only be closed once all tasks are checked off.

Field

Configuration

Maximum records allowed

Set the maximum number of checklists that can be associated with a record.

Edit Subentities

Remove Subentities  

To remove a subentity, hover over it and click the delete icon . You will find the removed subentity in the left pane.

Removing a subentity from published custom modules will delete all records within the subentity permanently. If the removed subentity is added back to the custom module, it will be considered as a new subentity.  

Step 6: Create Custom Actions (Web Tab-Only)

Using Custom Actions, you can configure personalized actions and shortcuts for frequent operations in a web tab.

The operations include:

Action

What it does

Use Case

Quick add

Without navigating to the form, create records with pre-filled values or by entering only key fields.

An HR can quickly log onboarding requests with pre-filled values (for example, Department - HR; Priority - Medium). They would need to enter only the employee’s name and start date.

See how.

Bulk edit

Update one or more records by editing specific fields with pre-filled values or via user input.

After a schedule change, the HR manager can reschedule and bulk-update the joining dates of multiple hires.

See how.

Trigger custom function

Run predefined custom functions across multiple records.

A vendor manager can trigger reminders to technicians for contracts nearing expiry.

Custom actions will appear in Actions on the list view toolbar and the details page toolbar.

Along with custom actions you create, the tab also lists default actions supported for the custom module, such as adding and editing records via form, viewing history and conversations. Other actions are shown in the list based on the features enabled under the Details tab.

The default operations cannot be edited or deleted.  
For a web tab, you can create up to five custom actions.  

To create a custom action,

Field

Description

Display Name *

Specify the name to be displayed for the custom action in Actions.

API Name *

Auto-populated based on the display name, but can be customized.

Operation *

Choose an operation:

Add: Create records.

Edit: Bulk-edit specific fields or run a custom function across multiple records.

 If the form contains more than 10 mandatory fields, only Edit can be configured.

Actions: Choose one to define the custom action.

Custom Function

(Edit only)

Available only if Custom Function is enabled in the Details tab.  

From the drop-down, select an existing custom function (under Admin > Developer Space > Custom Function > <web tab>) or click Add New to create one.

Field Update

Select and configure the fields to be included in the custom action.

You can select up to 10 fields.  

Field Name: Fields added to the form layout will be available for selection. Select a field from the drop-down.

Default Value: Set a default value that will be set or displayed in the field when the custom action form is accessed.

Form Data: Enable the checkbox to allow user input for the field when executing the action.  Enabled by default for field types that do not support Default Value.   

Mandatory Field: Enable the checkbox to make the field a mandatory input when executing the action.

*Mandatory

 You must select between Default Value and Form Data.  
 For the Add operation, mandatory fields in the form will be listed by default and cannot be edited or removed.   

Step 7: Define Field and Form Rules (Web Tab-Only)

In the Field and Form Rules tab, you can configure rules that dynamically modify template forms based on user input.

These actions can be configured to execute when any/all of the following events occur in the web tab form:

Form Event

Description

On form load

Rule will execute each time the request form is loaded.

On form change

Rule will execute when the specified form field is modified.

On form submit

Rule will execute on form submission.

 

To configure a rule,

For more information, click here

Custom Module Statuses   

Use the status drop-down at the top right of the configuration page to mark the status of a custom module and control its accessibility. 

The available statuses are:

Status

Description

Draft

A custom module is being created.

Published

Custom module is active and ready to access.

Suspended

Custom module is temporarily disabled for user access.

Retired

Custom module is permanently disabled for user access. However, the module data will remain in the database.

 After you retire a custom module, it cannot be edited or reused.

Only the published custom modules can be accessed in the application.
You cannot change the status of published custom configurations, subforms, and subentities while they are being used in the application. To change their status, dissociate them from the module that is using them.

(Web Tab-Only) After publishing the custom module, you can create different layouts for the record details page under the Details Customizer tab. To know how to customize layout, click here.

Edit a Custom Module    

You can only edit custom modules in Draft.

 You cannot edit the fields of the custom subforms in published web tabs. To make changes, remove the subform from the web tab and edit it in the subform configuration.  

Delete Custom Modules 

To delete a custom module,

You cannot retrieve deleted custom modules. 
Deleting a custom module will delete all its records permanently.   

Access Custom Modules      

You can access a web tab from the navigation pane. To learn more about managing records in a web tab, click here.

To access custom configurations, go to Admin > Customization > Custom Configurations. Each custom configuration will be displayed as tabs in the list view. To learn more about managing custom configurations, click here.

You can access subforms and subentities from web tabs and custom configurations that use them.

List View Actions 

On the custom module list view, you can perform the following actions:

View All Custom Modules 

On the list view, you will find a list of all custom modules. Use module and status filters to display custom modules of specific types and statuses.

Click + New to create a custom module. 

Edit/Delete a Custom Module 

Move to ESM Directory  (Custom Configurations Only)

You cannot move a custom configuration to ESM Directory if it contains portal-specific refer entity fields.

Search For a Custom Module 

Click Search on the top and use keywords on the required column to search for a custom module.

Manage the List View 

Select the number of records to be shown per page from the drop-down on the top. You can also navigate to different index pages by using the navigation buttons.

 View History 

Additional Resources 

Manage web tabs

Manage custom configurations