---
sourceDocument: Yokohama Conversational Interfaces
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/yokohama/conversational-interfaces

 Release :

    - yokohama

ft:locale :

    - en-US

ft:publication_title :

    - Yokohama Conversational Interfaces

ft:clusterId :

    - convint

bundleId :

    - convint

workflow :

    - Platform


---

# Virtual Agent Designer controls

# Virtual Agent Designer controls {#ariaid-title1}

Release version: Yokohama  
Updated January 30, 2025  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes to read
Summarize  
![AI sparkle icon](https://servicenow.com/docs/portal-asset/ai-sparkle-icon) Summarized using AI  
This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.  

## Summary of Virtual Agent Designer controls

Virtual Agent Designer allows you to create conversational topics using various controls that manage the flow of interaction with users.
These controls collect, process, and present information, and can also interact with records on your ServiceNow instance.
Each control type serves specific functions in building dynamic and responsive chatbot conversations.
Show full answer Show less  

## Control Types

* **Start segment:** Automatically included in every topic flow; sets the greeting when a conversation starts and cannot be removed or added manually.
* **End segment:** Automatically included; provides a final confirmation message before conversation ends and must be connected to all conversation branches.
* **User Input:** Prompts users and captures their responses during the conversation.
* **Bot Response:** Displays messages from the bot to the user.
* **Utilities:** Handles backend logic such as running scripts, branching conversations, or invoking Workflow Studio workflows.

## Data Pills and Scripting

Data pills are a key feature that enable you to insert dynamic information into controls without scripting. You can select variables from script or user input variables to personalize conversations quickly. For more complex needs, scripting allows additional functionality such as message translation.

## Conditional Control Execution

Most controls include a **condition property** that determines whether the control is used or skipped based on dynamic criteria. You can set conditions using a visual condition builder or by writing scripts that return true or false. This capability allows you to tailor conversations dynamically based on user context, permissions, or other logic.

For example, using a script condition, you can restrict the creation of incident records to users who have the necessary permissions, ensuring the chatbot respects user roles and system security.  
A Virtual Agent topic consists of
a collection of controls within a topic flow. Use these controls to collect, process, and present
information to your users. Controls can also read, create, and update records on your
instance.
Each set of controls performs specific functions in a conversation flow.  
{#virtual-agent-controls__table_ubt_ywt_d2b__entry__2}

| Category | Description |
|-|-|
| Start segment | Appears automatically in a topic flow and cannot be added to or removed from a conversation. This control can be configured with a greeting response that appears when a conversation begins. |
| End segment | Appears automatically in a topic flow and cannot be added to or removed from a conversation. This control can be configured with a final confirmation message before the end of a conversation. Ensure that all branches of your topic eventually connect to this control. |
| [User Input](https://servicenow-prod.fluidtopics.net/eQGVrD~7FoujIzQs94XCiQ "Use the collection of input controls provided by Virtual Agent Designer to prompt and capture information from the user in a conversation.") | Prompts and captures information from the user in a conversation. |
| [Bot Response](https://servicenow-prod.fluidtopics.net/rvsgkzQtJHiMZPq2DNYVZw "Virtual Agent Designer offers various controls for displaying bot responses in a conversation. Because the bot responses occur in third-party platforms, the format for each output may vary.") | Displays bot responses in a conversation. |
| [Utilities](https://servicenow-prod.fluidtopics.net/XlcbYdmDY_STaUQ8Uuwnlw "You can control interactions within a topic by using utilities in Virtual Agent Designer. These utilities perform various actions such as adding topic blocks (reusable components), running a script, or adding different conversation paths (branches) in a topic. Utilities are represented as nodes in a conversation flow but do not display anything to the user.") | Handles actions and logic within a topic, such as running a script or adding different conversation paths (branches) in a topic. You can also use them to call automated Workflow Studio workflows. |
[Table 1. Control types]

{#virtual-agent-controls__table_ubt_ywt_d2b}  
For controls that have prompts, messages, default values, or confirmation messages, you can enter any of the following input values:

* Text strings
* Data pills
* Strings with embedded data pills
* Scripts that return strings
{#virtual-agent-controls__ul_qf1_1gy_c3b}

## Data pills {#virtual-agent-controls__section_i2c_mgz_1gb}

Use data pills to quickly and easily add dynamic information to your controls without using a script. Select the data pill icon ![]() to open the data pill picker interface. In this interface, you can select data from script variables and from input variables set by your User Input controls.

Using data pills enables you to quickly and easily access the data in your variables. In
contrast, scripting provides more complex options, like handling translation. The following
examples illustrate how to use a text bot response that includes the name of the customer,
handled both as a data pill and a script.  
{#virtual-agent-controls__table_qkt_kv5_bgb__entry__2}

| Method | Result |
|-|-|
| Data pill |   |
| Data pill |   |
| Script |   |
| Script | ![A text control showing a dynamic scripted response message.]() |
[Table 2. Data pill and scripted responses]

{#virtual-agent-controls__table_qkt_kv5_bgb}

The first example uses the data pill selector to choose Get Name, an
input variable that contains the name of the customer. The second example accomplishes the same
thing using a script. The script example also uses `gs.getMessage` to handle
translating the message.

## Hide or skip this node (condition property) {#virtual-agent-controls__section_lmr_5wt_d2b}

Almost all controls have a condition property. The exceptions are the Decision utility and the
Start and End nodes.  
In user input controls, the condition property determines whether the control is used or skipped in a conversation. To always use the control, leave the condition field empty. To determine the conditions under which the control is used, do one of the following:

* Create a condition using the condition builder interface, which lets you add data pills to specify conditions built using this interface.
* Provide a script for the condition property that returns a value of true or false. If the return value is false, the control is not used and the conversation will continue to the next control along that branch of the topic.
{#virtual-agent-controls__ul_szm_tdp_rsb}

Use conditions to make your conversations more dynamic based on context, data, or scripted
logic.  
{#virtual-agent-controls__table_xgn_qy5_bgb__entry__2}

| Scripted condition | Condition builder condition |
|-|-|
| Sample script for conditionally showing the node: (function execute() { var gr = new GlideRecord('incident'); return gr.canCreate(); })() |   |
[ ]

{#virtual-agent-controls__table_xgn_qy5_bgb}

In this example, a condition script returns a value of true if the current user is able to
create incident records. This condition prevents a utilities control from creating an incident
when the user does not have permission to do so.

