Customizing Virtual Agent with custom controls
Custom controls are components that ServiceNow® developers can create for use in Virtual Agent topics or topic blocks. Such controls include sliders or video players. Custom controls complement the controls provided in Assistant Designer.
Assistant Designer provides a default set of controls that represent user inputs, bot responses, and utilities for building a Virtual Agent conversation. As a developer, you can use the Asset library in Assistant Designer to create additional controls (interface components) for specific inputs or output responses. For example, a slider is an example of a custom input control that enables end users to select a quantity.
Note: Custom controls don't work on Internet Explorer version 11. Custom controls are also not supported for Microsoft Teams.
Before building a custom control
Custom controls are based on customizable Next Experience Components that you can create by using the Next Experience Design System.
Before building a custom component, you must have the following:
- Basic knowledge of the ServiceNow AI Platform® and application table structures.
- General knowledge of web component concepts, development, and design.
- JavaScript knowledge to define component behavior and that of the custom control.
- Knowledge of the design process for creating custom components for use in Assistant Designer.
To learn more about developing custom components for Virtual Agent, see Develop a component for Virtual Agent.
How custom controls work
To add your custom control to Virtual Agent, follow these main steps:
-
Create a custom control definition.
After building the custom component to be used for the control, create a custom control definition that maps an input or response control to the custom component.
-
Create a custom control using Assistant Designer.
A custom control is an input or response control. Developers build a custom control in Assistant Designer by doing the following:
- Selecting a custom control definition.
- Defining the input parameters for using the control.
- Specifying the output parameters returned by the control. An input control has callbacks that use input from the end user. A response control typically presents information to the end user and doesn't have callbacks.
-
Add a custom control to a topic or topic block.
Topic authors, virtual agent admins, or admins can add a custom control utility to a topic or topic block.
Secure inputs
Beginning with the San Diego release, you can create custom input controls that can accept secure inputs, such as passwords, to pass through to Integration Hub actions or subflows. To enable this, slide the Make inputs secure toggle switch when you create your custom input control. For more information, see Create a Virtual Agent custom control.
---
title: Customizing Virtual Agent with custom controls
description: Custom controls are components that ServiceNow developers can create for use in Virtual Agent topics or topic blocks. Such controls include sliders or video players. Custom controls complement the controls provided in Assistant Designer.
locale: en-US
canonical_url: https://www.servicenow.com/docs/r/australia/conversational-interfaces/virtual-agent/custom-controls.html
release: australia
product: Virtual Agent
classification: virtual-agent
topic_type: concept
last_updated: "2026-10-24"
reading_time_minutes: 3
breadcrumb: [Other Virtual Agent features, Build conversations, Virtual Agent, Conversational Interfaces]
---
# Customizing Virtual Agent with custom controls
Custom controls are components that ServiceNow® developers can create for use in Virtual Agent topics or topic blocks. Such controls include sliders or video players. Custom controls complement the controls provided in Assistant Designer.
Assistant Designer provides a default set of controls that represent [user inputs](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/conversational-interfaces/virtual-agent/va-user-inputs.md), [bot responses](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/conversational-interfaces/virtual-agent/va-bot-responses.md), and [utilities](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/conversational-interfaces/virtual-agent/va-utilities.md) for building a Virtual Agent conversation. As a developer, you can use the Asset library in Assistant Designer to create additional controls \(interface components\) for specific inputs or output responses. For example, a slider is an example of a custom input control that enables end users to select a quantity.
**Note:** Custom controls don't work on Internet Explorer version 11. Custom controls are also not supported for Microsoft Teams.
## Before building a custom control
Custom controls are based on customizable Next Experience Components that you can create by using the Next Experience Design System.
Before building a custom component, you must have the following:
- Basic knowledge of the ServiceNow AI Platform® and application table structures.
- General knowledge of web component concepts, development, and design.
- JavaScript knowledge to define component behavior and that of the custom control.
- Knowledge of the design process for creating custom components for use in Assistant Designer.
To learn more about developing custom components for Virtual Agent, see [Develop a component for Virtual Agent](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/application-development/va-components.md).
## How custom controls work
To add your custom control to Virtual Agent, follow these main steps:
1. [Create a custom control definition](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/conversational-interfaces/virtual-agent/create-custom-control-definition.md).
After building the custom component to be used for the control, create a custom control definition that maps an input or response control to the custom component.
2. [Create a custom control using Assistant Designer.](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/conversational-interfaces/virtual-agent/create-custom-control.md)
A custom control is an input or response control. Developers build a custom control in Assistant Designer by doing the following:
- Selecting a custom control definition.
- Defining the input parameters for using the control.
- Specifying the output parameters returned by the control.
An input control has callbacks that use input from the end user. A response control typically presents information to the end user and doesn't have callbacks.
3. [Add a custom control to a topic or topic block](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/conversational-interfaces/virtual-agent/embed-custom-control.md).
Topic authors, virtual agent admins, or admins can add a custom control utility to a topic or topic block.
## Secure inputs
Beginning with the San Diego release, you can create custom input controls that can accept secure inputs, such as passwords, to pass through to Integration Hub actions or subflows. To enable this, slide the **Make inputs secure** toggle switch when you create your custom input control. For more information, see [Create a Virtual Agent custom control](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/conversational-interfaces/virtual-agent/create-custom-control.md).
| title | Customizing Virtual Agent with custom controls |
| description | Custom controls are components that ServiceNow developers can create for use in Virtual Agent topics or topic blocks. Such controls include sliders or video players. Custom controls complement the controls provided in Assistant Designer. |
| locale | en-US |
| canonical_url | https://www.servicenow.com/docs/r/australia/conversational-interfaces/virtual-agent/custom-controls.html |
| release | australia |
| product | Virtual Agent |
| classification | virtual-agent |
| topic_type | concept |
| last_updated | 2026-10-24 |
| reading_time_minutes | 3 |
| breadcrumb | Other Virtual Agent featuresBuild conversationsVirtual AgentConversational Interfaces |