Oracle by Example brandingOracle Digital Assistant Video Tutorials and Tips

section 02 Minutes Tech Tips

Oracle Digital Assistant 2-Minute Tech Tips captured for the Oracle Developers YouTube channel. The Oracle Groundbreakers series gives technology experts 2 minutes for a tip, which is pretty challenging. However, In Oracle Digital Assistant product management, a challenge does not bother us.

Note: Make sure the video quality is set to 1080p. If it is not, then, in the YouTube video window, select the "cone icon" with the "HD" overlay and select "Quality" to change the setting.

YouTube quality setting

How To Pass The User Timezone Offset to Oracle Digital Assistant Using the Oracle Web SDK

A 2 minute TechTip video about passing the user local time zone to Oracle Digital Assistant using the Oracle Web SDK messenger.

Testing Custom Components Locally While Avoiding Server Restarts To Display Code Changes

In this 2-minute TechTip video, I will show you how to test a custom component in Oracle Digital Assitsant using a node server on the local computer or laptop, and how to avoid restarting the server so that component changes in the Oracle Digital Assistant tester are displayed

How To Version Control Custom Component Services Using GIT

In this video I show how you can use GIT to version control Oracle Digital Asisstant component service projects

Next Level IT Operations with Oracle Digital Assistant

In this (a little more than) 2-minute video, I show you how to use Oracle Digital Assistant and the conversation interface to create the next level of IT help and operations. By example, I will show you how easy and quickly users can get self-service IT support using natural conversation. As you know by experience, human conversation is not always linear. The topic of the conversation is subject to change without notice. I've an example of this too to show how Oracle Digital Assistant deals with those changes. Agent integration? No problem. But see yourself.

Extracting Information in user messages from database values

This 2-Minute TechTip focuses on finding information in a user message that matches an entry in a database. Usually information in a conversation is extracted from user messages by entities you define in a skill. This approach seems to be impracticable if the information is related to hundreds of thousand values in a database table. This video shows a solution based on Oracle REST data Services (ORDS) and text indexes in the Oracle database.

Building robust, speech-ready action lists using value list entities in Oracle Digital Assistant

In this video I explain how you can use entities in Oracle Digital Assistant to build robust action menus that outperform menus you build manually. It's another great example of how to use entities as metadata and not just to extract information from user messages.

Insights - The analytic engine in Oracle Digital Assistant

This video gives you a brief insight in to the analytic engine in Oracle Digital Assistant that allows you to monitor and retrain your skills and digital assistants. "Bots insights", which I refer this feature to is called "Insights" in the product documentation

How to manage custom component state

Components in Oracle #DigitalAssistant have to manage their own state, especially if the component not only displays a message, but also interacts with a user. In this 2-minute technical tip, I explain the two options available for managing state: tokens and an internal variable.

How to implement a FAQ skill that allows users to provide feedback about the quality of an answer.

Recently, users of Oracle Digital Assistant requested for an option to implement a feedback functionality that allows users to help bot administrators to improve the quality of the answer displayed for a user question. This video demonstrates and explores a FAQ skill with feedback function and how you can build the same.

Implementing a tip-of-the-day feature with the Oracle Web SDK

In this 2 Minute Tech Tip you will learn how to use Explicit Bot Invocation and how to send a hidden message to the bot to implement a “tip of the day” feature in Oracle Digital Assistant using the Web SDK.

How zero-downtime works for channels in Oracle Digital Assistant

In this 2-minute TechTip video, I show what happens to an ongoing user bot conversation in Oracle Digital Assistant when the messenger channel used is redirected to another version of a skill or digital assistant on the administration side. The feature Oracle Digital Assistant this video highlights is called "zero downtime"

Programmatically setting values for complex entities in BotML

Oracle Digital Assistant provides built-in entities to extract from user messages. Many entities like DATE, DURATION, NUMBER, PERSON and more are complex objects. This means that their value is not just a simple string or a primitive value, but a set of attributes. Using the System.SetVariable component does not work as expected for complex entities. This video explains how to use the Sysetm.MatchEntities component instead.

Handling user idle time in a bot conversation

In this 2-minute TechTip, I explain how you can use the Oracle Web SDK and the System.CommonResponse component to handle user conversations that exceed a maximum user idle time

Building a "model driven" questionnaire in Oracle Digital Assistant

This video shows how to build a questionnaire in Oracle Digital Asisstant using composite bag entities and the System.CommonResponse component. The idea is to describe an option in which the entity (the model) drives the user conversation while completing the questionnaire

Optimizing bot responses for the text messaging channel

Chatbots created with Oracle Digital Assistant work on multiple messenger channels. However, not all channels support rich user interfaces and some only support text. This video shows you how Oracle Digital Assistant detects text channels and what you can do to even further improve text channel optimizations

How to enable users to cancel composite bag entity conversations

Composite bag entities in Oracle Digital Assistant are a domain object driven approach to designing bot conversations. This video explains how you can implement a cancel or exit option to your composite bag entity dialogs that allow users to discontinue a started conversation.

How to integrate calls to REST services in a bot conversation

This 2-minute TechTip video explains how to use the https Node.js module to access REST services from custom components in Oracle Digital Assistant. Following this approach, you can query data to be displayed in a bot conversation, or write data during or at the end of a conversation.

Navigate websites or web applications through conversation

This video explains the concept of "navigation through conversation" that you can implement using Oracle Digital Assistant and Oracle Web SDK. The idea behind "navigation through conversation" is to synchronize a hosting website or web application with content queried or displayed in a conversation. In the example, a conversation is used to find a technical resource for a project. By selecting a candidate in the conversation, the hosting website is synchronized to show more details about the selected person. Using a bot conversation this example assists users to find the right page or content in a website; something many websites could make use of.

Using the embedded test suite in Oracle Digital Assistant to automate conversation testing

Conversation are the units to test in Oracle Digital Assistant in specific and chatbots in general. As you can imagine, different conversations can lead to the same result. For example "I like to order pasta", "Please show me the menu", "I like a Fetuccine Alfredo" and similar all lead to an order for pasta.

All possible conversations paths must be tested when you update a dialog flow or when you create versions or clones of a skill. Good to know that the new test suite in Oracle Digital Assistant can do it for you. In this video, you will learn how to record test cases and how to run them.

Understanding Custom Entity Properties

This video explains properties that exist for custom entities and the composite bag entity. Watch this video to learn about how to set up multi-value matches, use fuzzy matches, display disambiguation prompts and more.

The 4 Security features of the Oracle Web SDK

You use the Oracle Web SDK to integrate Oracle Digital Assistant to your web site. This video explains the 4 security features you can use by doing so.

Dynamic Entities in Oracle Digital Assistant

Dynamic entities in Oracle Digital Assistant (19.10+) are value list entities for which you can create, modify and delete content at runtime using Oracle Digital Assistant REST platform APIs. In only 2 minutes, this video explains how it works and demonstrates the feature

Integrating Oracle Digital Assistant in Oracle JET web and hybrid mobile applications

Oracle Digital Assistant provides a Web SDK that you can use to integrate Oracle Digital Assistant chatbots to your website or hybrid mobile application. In this video, Geertjan Wielenga excellently explains how this integration works.

How-to control design time access to Orace Digital Assistant instances in OCI

Did you know that you can control access to Oracle Digital Assistant instances (design time access) using compartments in the Oracle Cloud Infrastructure (OCI) cloud? This video gives you a brief overview of how to create compartments, how-to create user groups, how-to grant permissions and how to create Oracle Digital Assistant instance(s) for a compartment.

Overview of the new Oracle Web SDK (Web Messenger)

Oracle Digital Asistsant on Oracle Cloud Infrastructure (OCI) comes with a new Oracle Web SDK that you can use to expose Oracle Digital Asisstant to your website and web application. This video provides a brief overview of the Web SDK messenger functionality, including how Oracle speech works in this context.

Getting started with the new Oracle Web SDK (Web Messenger)

This video demonstrates the minimum steps involved in exposing Oracle Digital Assistant bots to you custom website or web applications using the new Oracle Web SDK in OCI

How-to Use the System.CommonResponse channelCustomProperties Property to Render Channel Specific Layouts (Adaptive Cards Sample)

Channels are different in the layouts they suport. Oracle Digital Assistant internally uses channel specific connectors to render the optimal layout for built-in component and custom component responses. To render layouts that are vailable on a specific channel only, you can use the channelCustomProperties variable on the System.CommonResponse component in ODA 19.12 and later.

Sending RAW Message Payloads From Custom Components

Custom components in Oracle Digital Assistant allow you to send raw message pyloads to a messenger client. A raw message payload is sent to the client as is and allows you to leverage channel specific layouts (like adaptive cards in MS Teams). For his you need to be able to detect the channel type the component is "talking to" and then use the ODA custom component MessageModel class to define the component response.

Handling Smalltalk in Oracle Digital Assistant

Smalltalk are off-topic messages users sent to a bot. Example messages are: "Are you a bot?", "May I ask you something?", "Tell me a joke" and more. Bots don't have to answer Smalltalk messages in detail or a follow-up conversation, but should not ignore them either. Instead, bots could use these messages as a "boomerang" and remind users of the task(s) or business the bot was created for. This two-minute tech video shows how Small Talk can be handled in Oracle Digital Assistant. The implementation shown in the video is available on GitHub:

Four Options to Extract Information From User Messages in Oracle Digital Assistant

This video explains how to extract information from user messages. It covers information extracted when resolving the user intent, as well as information that is extracted when users are prompted for input.

User scope variables in Oracle Digital Assistant

There exist 4 types of variables that bot designers can work with in Oracle Digital Assistant: system-, profile-, dialog flow- and user scope variables. This video explains user scope variables, which are special in that they "survive" a conversation session and thus can be used as the bot's memory for a user.

Introduction to Oracle Digital Assistant QnA Intents

Oracle Digital Assistant 19.4.1 and later support QnA intents in addition to the existing QnA module. QnA intents are defined like normal intents. However, QnA intents return a predefined translatable bot response when resolved rather than triggering a dialog flow navigation. It's an easy and lightweight option for bot designers to implement FAQs on the conversational channel.

Using a custom skill to handle help in Oracle Digital Assistant

In Oracle Digital Assistant 19.4.1 and later, you can configure a custom skill to handle the case in which a user enters "help" as the first message to Oracle Digital Assistant. Oracle Digital Assistant uses system intents, one of which is help, to assist users. If you want to customize the default implementation, you'll get a hint in this video.

Changes to the deployment of custom components in Oracle Digital Assistant 19.4.1 and later

Starting Oracle Digital Assistant 19.4.1, Oracle has changed the upload mechanism for custom component deployments to the local skill container. In summary, the change is that the deployment package must contain all dependent node modules. This video explains the changes and what you need to do to package dependencies into your future deployments. The full details about the change are published in this article:

Creating Multi-Select Value Lists in Oracle Digital Assistant Skills

This video explains how you create multi-select value lists in Oracle Digital Assistant skills using entities and the System.System.CommonResponse component.

Using OAuth2 with Oracle Digital Assistant

OAuth 2.0 (Open Authorization) is the standard protocol for token-based authorization. It allows clients (such as chatbots) to access protected resources on behalf of a resource owner without passing the resource owner's credentials with the request. This video explains how to use OAuth2 to authorize custom component requests in Oracle Digital Assistant. In its sample, the video shows accessing Facebook user profile information as the OAuth2 protected resource.

Oracle Digital Assistant Conversation Designer

Before you design chatbot conversations, you typically meet stakeholders and business users and run conversation design workshops, to identify chatbot tasks, data requirements, and expectations. Once you have an initial draft of your conversations design, the next step is to show your design in action, ideally without waiting for developers to create the actual chatbot. This is exactly what the new Conversation Designer in Oracle Digital Assistant can do for you.

Reading Data Objects from an Array Stored in a Dialog Flow Variable

In Oracle Digital Assistant, backend data is queried through a custom component and then stored in a dialog flow variable. The dialog flow variable, in case where the queried data is an array, can the be referenced form a System.CommonResonse component to display a list of values ​​or a carousel of cards. Chances are that not all attributes of a data object are displayed on a card. One way to access information that is not displayed in a card is to use the selected card index to read the equivalent data object in the array, as explained in this video.

Download Image, Video, Audio and Other Files

Downloading content such as audio, video, pictures, or files is a common usecase when working with chatbots and Oracle Digital Assistant. This video explains how to download content in a skill conversation using either the System.CommonResponse component or a custom component. The sample sources used in this video are available on the Oracle TechExchange blog.

Read a Current Conversation's Message History From a Custom Component

This video explains a new REST API added to Oracle Digital Assistant 19.1.5 that allows you to perform authorized REST calls to the conversation logs (if enabled) to query the user bot message exchange of a conversation session.

Call a Skill from another Skill

Oracle Digital Assistant combines multiple skills into a single chatbot experience for the user. This means that a bot user does not need know about the skill handling a specific request as it just works for him or her. However, as a bot designer, you may have the requirement for a skill to explicitly call another skill. This video explains how to call a skill from a skill in Oracle Digital Assistant 19.1.5.

Oracle Digital Assistant: Referencing a QnA Module in a Separate Skill

The QnA system component allows you to integrate Frequently Asked Questions (FAQ) into a chatbot (Oracle Digital Assistant) conversation. But what if you want to answer a question differently, depending on who the user is? Well, it is feasible and this video explains how.

Exporting Conversation Logs from Oracle Digital Assistant

Oracle Digital Assistant has three options for exporting log files. All three are briefly explained in this video. A new option introduced is to use the Bots Insights REST API to export logs.

Oracle Digital Assistant: Uploading Documents and Images

Chatbot use-cases like incident and expense reporting require bot users to be able to upload images and documents through the messenger client and the bot to a remote server. So when the conversation pauses for the user to provide input, then the following could happen

  • The user enters free text
  • The user taps a list item or button, if the input allows it
  • The user uploads a document or image

Oracle Digital Assistant supports uploading images and documents through the System.Text, System.List, and System.CommonResponse components. Watch this video to learn how it works.

Read the Oracle TechExchange article and download the demo sources: Article & Sample

JavaScript Variable Destructuring in Custom Components

One for developers of custom components. This 2-minute tech tip explains how JavaScript variable destructuring works in Oracle Digital Assistant custom components. It also provides a solution for the very unlikely situation where no input parameters may be given (similar to the probability that oxygen masks fall off the ceiling in a plane).

ES 6, known as ECMA Script 2015 or JavaScript 6, introduced the concept of destructuring for creating variables and assigning values to them. Destructuring, as an expression, reads values ​​from arrays and objects and assigns them to variables. Custom components in Oracle Digital Assistant support JavaScript destructuring and custom component developers may use this syntax to assign component input parameter values to variables.

Customizing the Oracle Bots Node SDK Base Template

By default, the component template in Oracle Nodes.js SDK creates new custom components with a "Hello World" content type. This raises the question of how often you write "Hello World" applications and how many you put into production.

Joking aside, whole generations of developers learned new technologies with "hello world". Once they understood their craft, they built real solutions. This video explains how to customize the Oracle Bots Node.js SDK with your content so that the generated content is useful to you the next time you create a new custom component.

Using the Oracle Digital Assistant Web View Feature

Oracle Digital Assistant provides a weview feature that in Oracle Digital Assistant 19.1.5 and later supports local webview hosting in addition to the existing integration of remote web application.

Local webviews, for example, can be built to integrate UI widgets, like date picker and calendars, or data input forms into a bot conversation. Also, webviews allow bot designers to hide sensitive information, like passwords and credit card information, from the messenger chat history. This video shows how you create webviews for local deployment.

Note: With the release of Oracle Digital Assistant 19.1.5 we will document two use cases for local webviews on the Oracle TechExchange blog ( integrating an Oracle JET calendar compoent into a bot conversation and the integration of Google reCaptcha

How to Perform Input Validation in Chatbot Conversations

Input validation is not only for mobile and web applications, but chatbots as well. Besides the application security related aspect, input c validation also helps to improve the accurancy of data collected from users. This video shows how entities can help bot designers to validate user input. Entities, as may you know, are not just good for use within NLP, but can be referenced through variables from components in Oracle Digital Assistant too.

How to Create Alternating Bot Responses Using Resource Bundles

Dislaying alternating bot responses makes a bot appearing less robotic and more engaging to users. In a previous Oracle TechExchange blog article, Grant Ronald explains how to implement the same with string messages defined in BotML. In this video, we demonstrate how to use message bundles to hold the alternating bot messages. After all, using resource bundles for strings is common in software development and makes it easy to create translatable versions.

How to Reference Message Bundles from Prompts Defined in Entities and Composite Bag Items

Oracle Digital Assistant allows you to define prompts on the entity level. These prompts are displayed when using the System.ResolveEntities or the System.CommonResponse component. This video explains how to reference and use resource bundles in entity and composite bag entity items

Using a Translatable Resource Bundle String to Create Bot Responses in ODA

Using resoure bundles for displaying text, labels and prompts is common design practice in software evelopment. This video shows how to use resource bundles in Oracle Digital Assistant conversation flows that are translatable into mulitple languages.

Creating Mockup Data in Oracle Digital Assistant

Beside of conversations, chatbots need data. Especially when starting out with a chatbot project, you may need to be able to quickly show something to the stakeholders to illustrate your ideas and concepts. If things need to be quick, then often the integration of real backends is either not possible or not required. Another reason to look for and use mockup data is to bridge the time it takes service developers to provide access to backend systems.

Ths video explains the various options available in Oracle Digital Assistant for creating mockup data in the dialog flow.

READ MORE: TechExchange: The various options for creating and working with mockup data in Oracle Digital Assistant

Testing Apache FreeMarker Expressions in Oracle Digital Assistant

Skills in Oracle Digital Assistant support Apache Freemarker expressions and directives in the dialog flows and entities. Bot designers can use Apache FreeMarker to access values from objects, format data and dates, perform logical and arithmetic operations and much more. Unfortunately there is no debugging or testing environment for Apache FreeMarker. Well, at least not until you watch this 2 minutes video tip that we created in cooperation with Bastiaan van der Kooij (CX Builders).

READ MORE: TechExchange Quick-Tip: How-to Test Apache FreeMarker Expressions in Oracle Digital Assistant

Implementing Pagination In Common Response Component Lists

The Common Response component in Oracle Digital Assistant supports pagination for card layouts using the rangeSize and rangeStart component properties. But what if you need the same for a simple list of values? The solution to this is to define page ranging on the entity itself. This video shows you how to do it.

Common Response Component: Applying Keyword Shortcuts to Lists and Cards in a Conversations

The System.CommonResponse component provides a keyword property to be usd with buttons, lists and cards. This video shows how to set keywords on list and card layouts and how to use Apache FreeMarker expressions to dynamically create and assign keywords.

Quick overview of the System.ResolveEntities component

System.Resolve entities renders bot responses for system, custom and composite entities. By doing so it also knows how to generate user dialog interactions for information not provided yet by a user. This tip also shows how to interact with the component upon entity matches.

Let there be Light! Controlling your smart home using Oracle Digital Assistant

Using IFTTT Apps, you can integrate conversations in Oracle Digital Asisstant with your smart home. This video shows you how.

"Remote controlling" Skill Bots from Digital Assistant Using Parameterization

Skills in Oracle Digital Assistant can have custom parameters defined that you can use to achieve consistent entity and component configuration in the skill, or to provide controls for digital assistant bot designers to "harmonize" the behavior of different skills.

Out-of-order Message Handling

Chatbots, and therefore Oracle Digital Assistant, do not control the user's messenger client. This means that there is nothing that prevents bot users from scrolling the chat history and selecting an action item (button, list, map) that no longer focuses on the current state of the conversation.

As this is a common problem of the conversation channel, bot designers need to be aware that this can happen and that they need to handle it. Oracle Digital Assistant provides default behavior for out-of-order messages handling and hooks that you can use to customize the behavior.

Creating Custom Component Services for Oracle Digital Assistant

Beside others, custom components in Oracle Digital Assistant are used for integrating backend system calls into your bot conversations. This video explains how to use the Oracle Bots Node.js SDK to start a new custom component service project and how to deploy it to a skill in Oracle Digital Assistant.

Printing Multi-line Text in a Single Chatbot Bubble

Usually chatbot text responses display in multiple bubbles. Often however, bot designers want to return multi-line text messages to the user that should display in a single bubble. This video explains how to do this in Oracle Digital Assistant.

Dialog Flow Code Editor Tips

This vide explains how to comment and uncomment complete code blocks in a dialog flow editor and how to select multiple variable names to e.g. use them in a System.ResetVariables component.

Adaptive Bot Design: Optimizing Bot Responses for a Channel

Adaptive design is not a widely used terminology in the development of chatbots. It is more a term from the design of web applications. However, adaptive design also applies to chatbots, at least if the bot should be able to support different messenger channels. This video explains how to detect the channel of a conversation for the bot designer to optimize the bot responses for the channel capabilities.

About Transitions in a Bot Conversation

Bot conversations in Oracle Digital Assistant use transitions to navigate from one dialogflow state to a next. Known transitions include "next", "error" "action" and "empty" transitions, configured in a local state or globally. This video explains what you need to be aware of and the precedence the different options take.

About Entity Extraction in a Bot Conversation

It's not in the human nature to respond to a question with a single word. So when asked "what type of pizza do you like", then most likely the response is "salami, please". Dialog flows in Oracle Digital Assistant prompt users for specific information. If a pizza bot expects "salami" as a user response for selecting a pizza type, how does it handle "good question. I think salami would be great?" This video explains how Oracle Digital Assistant deals with such answers.