Service Bots - Characteristics of Virtual Agent Procedures
Virtual agent procedures correspond to a logical conversation that should guide users towards the most targeted information possible. They enable users to communicate with the virtual agent via a dialogue of questions and answers.
Like standard procedures in Self Help projects, they can interact with third-party products via connection packages.
They also have characteristics specific to the virtual agent:
- Dedicated metadata.
See the description.
- Possibility of using wildcards to define dynamic variables.
See the description.
- Possibility of deployment on different display channels, i.e. Web page, Microsoft Teams collaborative platform, etc.
See the description.
Notes
- Procedures are created in the Desktop Studio in edit mode.
- They are then made available to users via the publish mode.
Structure of the dialogue
The dialogue with the virtual agent uses two types of procedures, those with a linear structure and those with a tree structure.
The recommendations are applicable to each type of procedure.
Best Practice
- Restrict the number of steps in procedures to avoid complexifying the user journey. We recommend a maximum of four steps.
- Specify the number of steps in the procedure title or at the end of the paragraph to inform users.
- Use the the side pane of the conversation panel to display procedures with a series of steps.
Types of procedures
Procedures with a linear structure
- These procedures contain a series of Page steps that provide a precise answer to the user's question.
- In the conversation panel, the Next button enables users to proceed to the next step right up to the end of the procedure. Users cannot perform any action. They can only exit the procedure prior to its end.
Procedure | Result | |
---|---|---|
![]() |
![]() |
Procedures with a tree structure
- Each branch of the procedure corresponds to a series of requests or proposals made by the virtual agent in order to clarify the user's question and lead to its resolution.
- Users can interrupt the dialogue in each branch if you add a Stop step.
- A named branch * can be added to manage instances where users do not answer the virtual agent's question or instances where they decide not to choose one of the proposals. This branch will automatically be selected whenever the user's answer is not among one of those expected.
Procedure | Result | |
---|---|---|
![]() |
![]() |
Exiting the dialogue
Users can exit the dialogue:
- By entering a new request that is totally unrelated to the current dialogue. This request does not correspond to the virtual agent's proposals. The virtual agent will exit the current procedure to answer this new request.
- By scrolling to the end of the dialogue to use the Stop step of the procedure.
Best Practice
- In procedures with a tree structure, create a named branch * to check that users really want to exit the dialogue.
example Exit a procedure for creating a ticket
- Define a Stop step for exit branches to avoid looping the dialogue.
Content in procedures
Virtual agent procedures can contain different types of specific content, in addition to the standard content of steps in Self Help projects.
Best Practice
- Specify a procedure title corresponding to keywords that users may enter, in the form of a question or request.
example How to configure the X equipment; I cannot connect to the X service; What is the status of ticket X?
- Start the virtual agent's answer by restating part of the user's question or request. This enables users to check that their question or request has been correctly understood.
example
- User's question: How do I apply for leave?
- Virtual agent's answer: To apply for leave, you should...
- Enter short and precise answers for the virtual agent. They should not be open to interpretation.
- Limit the formatting of answers displayed in the virtual agent's conversation panel to the strict minimum.
- Opt for bullet lists instead of tables for answers that will be displayed in Microsoft Teams.
Images and hyperlinks
- Insert informative and non-illustrative images to keep the virtual agent's answers brief.
- If a procedure contains several images, it should open in the side pane of the virtual agent.
- Open external content in a new window, not in the virtual agent's conversation panel. The Open in a new tab box should be selected.
Related content
- Open related content in the virtual agent's conversation panel, not in a new window. The Open in a new tab box should not be selected.
Specific content
Alternative text
Alternative text provides alternative ways of asking the virtual agent a given question. Each alternative leads to the same procedure and as such, to the same virtual agent's answer.
example (user questions) What is software X? / What is software X used for? / What can I do with software X?
==> The virtual agent will open the same procedure for software X for each of the alternative questions.
- You enter alternative text in each procedure using the specific Alternative Intents metadata.
Related content
Virtual agent procedures can suggest content related to the same topic as this may be helpful to users.
- You add related content to a procedure by inserting a HTML link whose URL contains #. The virtual agent will consider all text associated with this specific link to be text entered by users in the conversation panel.
- In the conversation panel, related content is displayed in the virtual agent's answer in the form of a hyperlink.
example Suggested related content in the virtual agent's answers in the wiki
- If the user's question is "What is an action?", the text of the answer can suggest links to other questions such as, "What is an incident?" or "What is a problem?"
- When users click the link, the new answer will appear in the conversation panel without exiting the current conversation.
Desktop Studio text editor | Result in the conversation panel | |
---|---|---|
![]() |
![]() |
Specific metadata
You define metadata in the Properties pane in the Desktop Studio in edit mode. Four specific items of metadata are used to act on virtual agent procedures.
Best Practice
- You can export the metadata of the Self Help project to a CSV file. This enables you to view and modify it easily in Excel. Next, got to the Online Studio > Import menu to import metadata to the Self Help project.
See the procedure.
Agent Flag metadata
This metadata defines how each virtual agent procedure is run. It is namely used in System procedures in the Social Base package.
Possible values:
- welcome: The procedure is run as soon as the conversation panel opens.
example
- misunderstanding: The procedure is run when the virtual agent is unable to understand what the user has entered. The procedure will usually display an error message asking the user to rephrase the question. It may lead to an escalation procedure.
- rephrase: The procedure is run when the virtual agent is unable to find a single result with a strong correspondence with what the user has entered. In this case, the virtual agent will propose one or more alternative answers that may be relevant.
example
- hidden: The procedure is run only when the virtual agent finds a single result with a strong correspondence with what the user has entered. Note: This procedure is never proposed for a search.
example
- bye: This procedure is run as soon as the sidebar pane closes automatically and does not require any user input (the user has run its procedure until the End step).
example
Dialog Friendly metadata
This metadata defines how virtual agent procedures are opened. By default, they open in the virtual agent's conversation panel.
Possible values:
- True: Procedures open in the conversation panel.
- False: Procedures open in the side pane.
Conversation panel | Side pane | |
---|---|---|
![]() |
![]() |
Best Practice
- We recommend that you use the side pane to display all complex procedures, step-by-step procedures and answers containing several images.
Alternative Intents metadata
This metadata indicates the alternative ways of asking a given question that will open the same virtual agent procedure.
example (user questions) What is software X? / What is software X used for? / What can I do with software X?
==> The virtual agent will open the same procedure for software X for each of the alternative questions.
Notes
- Each alternative must be separated by the . (dot), ! (exclamation mark) or ? (question mark).
example What is software X ! What is software X used for
Best Practice
- Enhance metadata content progressively based on user feedback and on the analysis of user search results.
Tags metadata
This metadata is used to specify keywords to be highlighted. They enable you to suggest user journeys related to the user's request.
The size of a keyword is determined by its frequency, i.e. the number of occurrences in all virtual agent procedures.
Display of keywords | Display of the procedure defined for a keyword | |
---|---|---|
![]() |
![]() |
Notes
- Separate each keyword using the ; (semicolon).
- In the conversation panel, keywords are displayed using a Tags link found at the bottom.
- They can also be displayed in the content of any procedure by inserting the [[show:tags]] instruction in the procedure text.
Best Practice
- Avoid entering more than two words for a given keyword.
- Associate a maximum of ten relevant questions with each keyword.
- Restrict the number of keywords to less than 20 in order to ensure that they remain easy to read.
Wildcards
Wildcards enable the virtual agent to manage open-ended questions. When inserted within procedure text, they make the procedure dynamic. The virtual agent will run searches and display answers by replacing the wildcard with the value entered by the user.
They are namely used in procedures from the User Virtual Agent and Operator Virtual Agent packages. See the Self Help templates list.
- Wildcards are specified using a sequence of characters (*).
example
- What is the status of ticket (*)?
- Who is (*)?
- What is the warranty expiry date for (*)?
- They are used in the input and output variables of procedures.
Operating principle
- Input and output variables are created for each procedure with wildcards.
- When a procedure is run, the value entered by the user will replace the wildcard and will be stored in the input variable for this procedure.
- At the end of the procedure, the input variable will be saved in the output variable. This ensures that it can be used subsequently during the session.
- When the next procedure is run, the output variable of the previous procedure will be passed as the input variable. This ensures that the value entered by the user will be retrieved in the new procedure.
See the use case.
Notes
- The virtual agent's conversational memory is linked to the user and to the user session. It is cleared once the session is ended.
- You can insert several wildcards in a given procedure.
example Do you prefer (*) or (*)? ==> The values entered by the user will be stored respectively in input variables wildcard_value_1 and wildcard_value_2.
- If a procedure is required to interface with sub-procedures, the output variables that store wildcard values used in procedures must be sent to the sub-procedures.
Best Practice
- Restate in the answer the value that was saved in the wildcard variable to ensure that the virtual agent stored it correctly.
example (procedure) What is the status of ticket (*)? ==> Value entered by the user stored in input variable wildcard_value_1.
- User's question: What is the status of ticket I20194325?
- wildcard_value_1 = I20194325
- Virtual agent's answer: The status of ticket I20194325 is...
- Create a branch to manage instances where the input variable of the next procedure is null.
Display channels
Depending on the display channel, e.g. Web page, Microsoft Teams collaborative platform, etc., different configurations will be required. This may include a specific sub-procedure, the addition of a script in the HTML page, etc.
Specific sub-procedure
The Multi Channel Display Sample sub-procedure is available in each template. It enables you to configure the display of answers depending on the channel.
You choose the channel using the executionContext.channel project variable.
Possible values:
- MSTEAMS: Display the procedure in Microsoft Teams.
- SERVICEBOTS: Display the procedure via the virtual agent.
- Default: All other displaying cases.
Displaying the virtual agent in a Web page
You do this by inserting a JavaScript code in the <head> section of the page. This code enables you to specify the domain, agent ID, language, public account and skin to be used. See the procedure.
Procedures
How to display the virtual agent in a Web page
Step 1: Inserting a JavaScript code in the <head> section of the page.
1. Copy and paste the JavaScript code below to the <head> section of the Web page.
Note: You can obtain the JavaScript code in the Online Studio by selecting Administration menu > Service Bots > Agents. This is a simple configuration where the first three parameters are already specified. Moreover, it does not allow you to customize the conversation panel.
Click to see the JavaScript code
<script type="text/javascript">
var ezEvie = new EVSelfHelp.Widget(
{
"agent-id": "MyAgentID",
"lang": "en_US",
"is-test": false,
"config-url": "https://myselfhelpdomain.com/va-themes/ezv-panel/config.json",
"quicklinks": ["Text1","Text2"],
"contextvars":
{
"shoptions": "public",
"theme": "evsh"
},
"custom":
{
/*Global*/
"ff": "verdana",
"fs": "14px",
"f_color": "#1e1f1f",
"main_bg_color":"#ffffff",
/*Header*/
"title": "https://www.domain.com/logo.png", //logo
"subtitle": "Your virtual agent",
"subtitle_size":"1.5em",
"subtitle_align":"center",
"subtitle_color": "#ffffff",
"bg_color": "#6eb0da",
"close_color":"#ffffff",
/*Agent*/
"cb_name": "EVie",
"cb_bgcolor":"#ffffff",
"cb_color": "#6eb0da",
"cb_color_alt": "#2c658a",
/*User*/
"user_color": "#ffffff", //f6f7f9
"user_bgcolor": "#fa7268", //ffbb00
/*Text input*/
"footer_color": "#ffffff",
"placeholder": "Enter your question",
"textarea_border": "1px solid #e8e8e8",
"send_color":"#ffffff",
"send_bgcolor":"#6eb0da",
"textarea_bgcolor":"#ffffff",
"textarea_color":"#1e1f1f",
/*Tags button*/
"tag_color":"#6eb0da",
"tag_enable":true
}
});
</script>
<a href="#" onclick="EVSelfHelp.Widget.getInstance().start();return false;">Call Virtual Agent</a>
2. Specify the parameters below depending on you environment.
www.myselfhelpdomain.com: Address of the Self Help domain hosting the Self Help projects for the virtual agent.
assistant-id: ID of the virtual agent.
lang: Language used by the virtual agent , e.g. fr_FR, en_US.
is-test: Indicates whether or not the agent should use the version of Self Help projects currently being edited. Note: If the value is true, then users must have the appropriate rights. Otherwise the value is false.
config-url: Location of the skin.
quicklinks: Predictive text suggested to users.
contextvars.shoptions: Public account when data must be made accessible to non-connected users.
contextvars.theme: evSH skin to be used for displaying procedures.
Step 2 (optional): Customizing the conversation panel.
1. Adjust the parameters in the custom section to customize the conversation panel of your virtual agent.

How to modify the content of a Self Help procedure
1. Double-click the procedure in the Explorer pane.
The procedure will appear in the Design pane.
2. Double-click the step in the Design pane.
The content of the step will appear in the Description pane.
3. Modify the text in the Content tab of the Description pane.
4. Click .
Content adaptation
- Insert hyperlinks in the content of steps.
- Define related content.
- Create procedures with open-ended questions using wildcards.
- Configure the metadata for each procedure.
- Specify alternative text via the Alternative Intents metadata.
- Specify keywords via the Tags metadata.
Use case: How to use wildcards
- Create a procedure called "My ID is (*)" that asks users for their ID.
- This procedure will lead to another called "Do you know my ID?" which will display the value previously entered by the user.
1. Open the procedure called "My ID is (*)".
2. Create an input variable called wildcard_value_1 that will store the wildcard value entered by the user and an output variable called oSaveID that will send this value to the next procedure.
3. Save the value entered by the user once the procedure has run, in the End step.
4. Open the procedure called "Do you know my ID?".
5. Create an input variable whose value is identical to the oSaveID output variable sent by the previous procedure.