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

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.