X

The Mobile & Digital Assistant Blog covers the latest in mobile and conversational AI development and engagement

Recent Posts

State of Oklahoma Employs Digital Assistants to Help Government Telework

When the COVID-19 pandemic hit, Oklahoma, like every other state, had to figure out a way for its mostly office-based government employees to work from home. Oracle was there to help. Within eight days of receiving a call for help, the local team and members of Oracle’s Austin-based Cloud Solutions Hub were able to design and deploy a chatbot to help Oklahoma’s newly home-based workers get productive as quickly as possible. Office workers unfamiliar with configuring IT gear without hands-on support invariably have questions, and that can lead to bottlenecks. Before COVID-19, the Oklahoma Office of Management and Enterprise IT desk fielded about 500 support calls a month. Overnight, that number spiked to more than 1,500 calls per day, says Jerry Moore, CIO, State of Oklahoma. To eliminate the resulting backlog of IT support calls, the Oracle Cloud Hub engineers built a chatbot that lets users ask basic questions, such as how to reset a password, how to set up a VPN, or how to download workplace applications. The chatbot was instrumental in reducing the volume of calls to the IT helpdesk and getting approximately 30,000 state employees up and running from home so they could keep providing vital constituent services. During that same period, Oracle also built a mobile app for the state’s Department of Human Services that tracks time and purchases related to COVID-19 work. “If an employee buys 12 cases of hand sanitizer, they can take a picture of the purchase and upload it to the app that tracks all activities specific to the pandemic,” Moore says. “Overall, in eight days Oracle  built and delivered two applications.” And those applications ensure that Oklahoma government workers can keep providing important services despite having to shelter in place. Find out  more about Oracle’s state and local government solutions. Learn more about Oklahoma and other public sector agencies who are leading in crisis.

When the COVID-19 pandemic hit, Oklahoma, like every other state, had to figure out a way for its mostly office-based government employees to work from home. Oracle was there to help. Within eight days...

Digital Assistant / Chatbot Development

TechExchange: Use Entities To Build Powerful, Robust And Speech-Ready Action Menus

article by Frank Nimphius, June 2020   In addition to natural language processing (NLP), menus are a popular means of navigation in a chatbot conversation. Action menus are typically used either as fallback when the NLP engine does not resolve a user message with predefined confidence (threshold), or when a resolved user intent has subcategories into which a conversation can be branched. To build action menus you have a choice:  You can build action menus manually using the System.CommonResponse component and BotML.  You can build action menus based on value-list entities that you render using the System.CommonResponse component In this article I will try to convince you to use the latter approach to use entity based menus (or model driven, as I like to refer to this). Behavior of manually built action menus The action menu below has been built manually in BotML. Unlike list-of-values, which set a value to a variable when a user selects an item from the list, action menus trigger a navigation to a specific dialog flow state. With this behavior, action menus are like menus in web and mobile applications.  The sample for this article is very simple: when a user selects an item from the action list, navigation goes to a dialog flow state that confirms the user selection. If the user enters a text message that cannot be resolved to an item label or a keyword defined for the select items, then a textReceived action is triggered. Text received actions are usually directed to the NLP engine (System.Intent component) to resolve the user intent.  The image below shows a choice of three action items, one of which is "Order Pizza". Humans are humans, and because they are, they behave like humans. So if a user instead pf pressing a button (select item) or typing "Order Pizza", types "I want pizza", then the menu does not recognize the user intent to select the Order Pizza item. If the text received action was linked to the System.Intent component state, then the NLP engine probably would get it right and get the user what she wants. But what if the user types in nonsense or a cat walked over the user's keyboard? In this case, shown in the image below, the intent engine would be challenged fro e.g. "grrmpf". Assuming the intent engine does not resolve "grrmpf", the user is actually taken off the track by this.  If the bot is run with voice in the Oracle Digital Assistant Web SDK, how would you press a select button? Probably you would try reading the button label, or more likely fallback to human conversation saying something like "I want to order pizza". This however would have the same effect as "grrmpf" in that your message would be directed to the intent engine.  Behavior of entity driven action menus Action menus you create based on an entity (where a value list entity would be used a metadata for the menu) inherit powerful features if entities Ability to display multiple prompts at random to appear less robotic Validate user input against values and synonyms of the entity Ability to extract values and synonyms (keywords) from free text Ability to detect user input failures and display a help message in the prompt Disambiguate user messages: E.g "I like to cancel order pizza" The image below shows how "gimme pizza" got resolved to that the user wants to order pizza. This did not include an intent but purely got resolved through the use of an entity with the menu. Getting back to the "cat walks keyboard" use case: The image below shows the outcome of "grmpf". The menu shows a message that "grmpf" is not an allowed selection. The maxPrompts setting of the menu defines how many failed user input attempts are allowed before the menu follows a cancel action.  So lets try "order cancel pizza", which meets two select items in the action menu.  As shown in the image below, the entity detects the ambiguity and resolves it with a dialog it displays for the user to select from.   Even the case of a user message doesn't matter using entities How to build entity-driven action menus As mentioned earlier, entities you build for menus are of type "value list". I suggest to mark entities as menu entities in their names to make your code readable. For each option in the action menu, you create a value entry in the list: order, cancel, openingHrs. The synonyms catch options how users could order or cancel pizza or how they would ask for opening hours. Note that synonyms don't need to anticipate the full user sentence. "gimme" that I defined for "order" would work with "gimme a pizza" as well as "could you gimme a pizza".  The error message defined on the entity is displayed whenever a user fails to provide a valid input. In the image below, the message is read from a resource bundle (which I recommend you always use for message strings) that gets the user entered string passed as an input parameter: system.message.messagePayload.text. Notice the Prompt for Disambiguation setting in the image above. If validation of the user message results into multiple action values, then a dialog with the defined prompt will be shown. Again, the prompt uses a message bundle.  Finally, you can specify as many different prompts as you like. Each prompt will be displayed in random order dependent how many failed attempts a user has in providing a valid input. To generate the action menu, a System.CommonResponse component is used. I explain the component properties in a table below the next image. Property Comment variable The "variable" property of the System.CommonResponse component references a variable of the entity type (PizzaActionMenu) in the sample. This ensures that user messages that don't match a label or keyword defined for a select item are validated. autoNumberPostbackAction Setting this property to true adds a numeric value in front of each item. Typing the value as a message will then select the action. In the sample, I used a different implementation of the same so I set this property to false. text The "text" property of the response item displays the prompt. The expression associated with the property references system.entityToResolve.value.prompt to read the prompt from the entity (which then gets it from the resource bundle) actions : label The label of an action is set to a lowercase character (a, b or c) as a shortcut plus a string read from a resource bundle. The resource bundle key is <action>_label (e.g. order_label) so it can be dynamically resolved actions : keyword Keyword defines a comma separated list of short cuts that select (or virtually press) a select item. The sample creates four keywords - order, 1, a, A - for the Order Pizza select item and - cancel, 2, b, B - for the Cancel Pizza item. actions : payload : action  The action of each select item is set to the value of the entity: order, cancel and openingHrs actions : iteratorVariable References system.entityToResolve.value.enumValues to obtain a sequence of entity values. For as long a there are values in the sequence, a select item is being created. transitions : actions An action mapping to a dialog flow state is created for each value in the entity: order, cancel, openingHrs. This way when the user selects a select item, navigation will be to this state. next Very important!. When a user types text that does not match a keyword or label of a select item, but that can be validated by the entity value or synonyms, then the next transition is followed. To make sure the navigation follows to the same dialog flow states as when the user selects a button, an Apache FreeMarker "switch" expression is used. Downloads Download the sample skill and import it to your Oracle Digital Assistant instance. Then open it and run the conversation tester. Type "hi" to get the menu displayed. Download the entity driven action menu skill Related articles TechExchange Quick-Tip: How to Intelligently Cancel Composite Bag Entity Driven User Dialog Flows TechExchange: How-to Use the System.ResolveEntities Component in Oracle Digital Assistant TechExchange: Building Model Driven Questionnaire Conversations Using Composite Bag Entities in Oracle Digital Assistant TechExchange Quick-Tip: Understanding Oracle Digital Assistant Skill Entity Properties - Or, What Does "Fuzzy Match" Do?    

article by Frank Nimphius, June 2020   In addition to natural language processing (NLP), menus are a popular means of navigation in a chatbot conversation. Action menus are typically used either as...

Oracle Digital Assistant Named a Leader in Ovum Decision Matrix for Intelligent Virtual Assistants

Ovum, a leading analyst firm and part of the global technology research organization, Omdia, has recognized Oracle Digital Assistant as a leader in the market in its latest research report, "Ovum Decision Matrix: Selecting an Intelligent Virtual Assistant Solution, 2020–21." The report analyzes the evolution of virtual intelligent assistants, the increasing scope of use cases, and the market landscape, and evaluates 10 niche and large technology vendors to determine Oracle Digital Assistant as one of the leaders in this market. Oracle Digital Assistant is a comprehensive, AI-powered conversational interface for business applications. Oracle Digital Assistant interprets the user’s intent so it can automate processes and deliver contextual responses to their voice or text commands to enrich the user experience, eliminate helpdesk and support overhead, and enable scale for communications and engagement. The Ovum report specifically highlights Oracle Digital Assistant as an easy-to-build solution, thanks to its no code, design-by-example, Conversational Design Interface that is intended to be used by non-developers to build, train, test, deploy, and monitor AI-powered digital assistant on channels of choice. Ovum also noted Oracle Digital Assistant’s advanced linguistic and deep learning-based natural language processing (NLP) models as a key strength that enables the Digital Assistant to better understand domain specific vocabulary, and respond with contextual information and best next step actions accordingly. Oracle Digital Assistant also received kudos in the report for providing an “enterprise-ready” solution. Organizations leveraging Oracle Digital Assistant know that their data is their own, stored securely in Oracle Cloud or via Cloud@Customer for organizations wanting to keep their data within their own boundaries. Furthermore, because it is a comprehensive platform, Oracle Digital Assistant can integrate with existing processes, routing rules, and contact center agents to support enterprises’ unique business needs. In fact, Ovum noted that “A differentiator for ODA [Oracle Digital Assistant] is that a business process engine sits beneath it and is tightly integrated to perform tasks emerging from the conversation. For example, when an end user informs the ODA of a change of address, several relevant processes kick in. Oracle's ODA and business process management R&D teams are also tightly integrated because of the overlap in functions.” Oracle also offers out-of-the-box chatbot skills for Oracle Cloud HCM, Cloud ERP, and Cloud CX, as well as integration with Oracle CX Service to speed up deployment and provide seamless engagement for Oracle Cloud Applications customers – a point that was noted as a strength in the Ovum report. With no apps to download and no training needed to use Oracle Digital Assistant, the use of intelligent assistants has picked up quite significantly in the industry. Over the past years more and more organizations – both public sector and commercial – have come to rely on Oracle Digital Assistant for their needs. Common use cases include enabling easy and 24x7 access to employee HR self-service functions and employee expense and finance functions, offering customer or employee FAQs and information lookup. This enables Oracle Digital Assistant to be the first line of customer/employee helpdesk and drive seamless bot-agent handoff only where needed, and more. These use cases present massive sales and ROI opportunities, freeing up human resources to take on the more complex challenges while at the same time improving the user experience. Oracle’s leadership position in the Ovum report is a testament to the significant R&D investments in AI and NLP-powered Cloud service over these recent years. For more information on how your organization can leverage Oracle Digital Assistant, please visit our website. And to download the full report, click here.

Ovum, a leading analyst firm and part of the global technology research organization, Omdia, has recognized Oracle Digital Assistant as a leader in the market in its latest research report, "Ovum...

Digital Assistant / Chatbot Development

TechExchange Quick-Tip: How-to Use Resource Bundles Defined In A Skill Within Custom Components Without Tying The Component To A Specific Skill

Oracle Digital Assistant skills provide resource bundles as a feature for skill developers to build multi language bot responses, or just for them to keep label and prompts in a single place for ease of administration and management. Custom components that are uploaded to a skill don't have access to resource bundle, which also has to do with how custom components communicate with a skill. The options skill developers have at current to provide translatable label strings and prompts in a custom component are - to create a custom message bundle functionality for custom components. This way custom components get deployed with their message translations and all a skill developer needs to do is to pass the detected or desired language code for the component to pick the correct language strings - pass resources bundle strings to be used as labels and prompts from a skill to a custom component, for which developers create input parameters.  The first option, to create a custom message bundle functionality in a custom component, is a less popular choice among skill developers. Instead the intention is to find a way to pass resource bundle strings for a specific language into the custom component.  In this article I explain a strategy to pass resource bundle strings into a custom component without creating a strong dependency between the skill and the custom component. The implementation introduced in this article also allows developers to pass translations of a language string that matches a detected user language.

Oracle Digital Assistant skills provide resource bundles as a feature for skill developers to build multi language bot responses, or just for them to keep label and prompts in a single place for ease...

Digital Assistant / Chatbot Development

TechExchange: How-to allow customers to provide feedback on the usefulness of answers to frequently asked questions

Sometimes a question is what it is; a question. In this case, it makes little sense for a bot to start a long conversation with the user. Instead, the bot should give a direct answer to the question. Answer intents are a recent addition to Oracle Digital Assistant and use the same machine learning model to understand the user question as regular intents do. With answer intents, Oracle Digital Assistant provides a very reliable and successful implementation of the question-answer user case. A common feature of web-based FAQ pages is that at the end of an answer the user has the opportunity to evaluate the quality of the answer and to provide feedback. Just recently, teams working with answer intents started requesting documentation for a similar implementation pattern for questions answered by Oracle Digital Assistant. In this article I provide a channel independent sample implementation that behaves like answer intents in Oracle Digital Assistant but that allows extension to be added for users to provide feedback and for the answer response itself to optionally add channel specific properties.

Sometimes a question is what it is; a question. In this case, it makes little sense for a bot to start a long conversation with the user. Instead, the bot should give a direct answer to the...

The Role of Digital Assistants in a Time of Remote Work

  By Suhas Uliyar, Vice President, AI and Digital Assistant As the COVID-19 situation continues to unfold, if you are in the human resources or IT/operations division of your organization, you are likely being pushed to the forefront during this extraordinary time. Your division may be actively leading efforts to communicate with your workforce or users as they adjust to a new environment such as remote work, while also complying with ever-shifting policies and guidelines. Given the significant upheaval in the way organizations have to operate these days, there are some common questions that many IT and HR leads are trying to address, including: How can our organization scale and make it as easy as possible for our ecosystem as everyone learns to cope with the new normal? How can we best provide access to policies, guidelines, FAQs, transactions, and data when information is so dynamic? How can we deliver information in real-time without employing more resources? While the more complex communication challenges will still need to be tackled by humans, a digital assistant may offer relief in some areas. For example, organizations may need to automate responses to most basic queries so human minds can be freed up to deal those more complex challenges. Enterprises and organizations may also need to enable more processes and transactions online and offer them in an easy-to-use medium – one that is easily accessible and intuitive.  Meanwhile, organizations are having to reconfigure how they engage with their customers, contractors, and employees – and in the case of public sector organizations and educational institutions, citizens and students, respectively. These various touchpoints include providing real-time, reliable information on health and safety guidelines; offering assistance in setting up a remote working environment; communicating up-to-date changes in policies; and enabling online self-service functions or access to relevant insights, information, and processes from within the organization’s systems.  Before COVID-19, AI-based chatbots or digital assistants were already changing the way we interact with our ecosystem – customers, employees, partners, citizens, and students. Enterprises had started to use digital assistants to provide 24x7 assistance to their stakeholders with self-service assistants for customer support; employee self-service across HR, ERP, CRM, and business intelligence systems; and vendors and partners for ERP self-service for quotes and invoice management.   A digital assistant can provide a consistent channel of communication and engagement in natural language text or voice, so users don’t have to learn an enterprise’s systems to interact or access information they need. Other benefits delivered by digital assistants include: Providing a 24x7 virtual assistant that is always there for stakeholders Offering users access to information on channels of choice like Slack, Microsoft Teams, Messenger, and more Streamlining employee queries, since there’s no waiting in line for the next available representative or help desk agent Freeing up employees to focus on the more complex challenges and queries that only human minds can solve Providing a natural way to access information and transactions across different backend systems, which promotes adoption of and adherence to processes and policies Proactively notifying users of changes in data so they can remain informed  Eliminating data searches, since a digital assistant powered by AI can be adapted to dynamic data changes so users don’t have to search for data  Reducing costs associated with support operations via self-service and automation As a result, digital assistants can help support the current need of a remote workforce and concerned citizens, students, and customers while creating long-term efficiencies for your organization.  For a more in-depth look into how your organization can derive quick value from a digital assistant in these uncertain times and the longer term, please contact us here.    

  By Suhas Uliyar, Vice President, AI and Digital Assistant As the COVID-19 situation continues to unfold, if you are in the human resources or IT/operations division of your organization, you are...

Bridging the gap for remote workers through digital assistants

By Suhas Uliyar, Vice President, AI and Digital Assistant AI-based chatbots or digital assistants stand to change the way we interact with business applications, not just consumer ones. The main benefit is the ability to get immediate responses to queries via natural local language, without having to download apps or get training. While we have the freedom to engage in user-friendly experiences in our personal lives – such as Alexa and Siri – there have been few options for people in their professional lives. But that’s changing. As Steve Miranda, Oracle’s executive vice president of application development, remarked, “In HR, every common question or transaction has lent itself nicely to digital assistants. Within the next year, we will be calling HTML our ‘old UI.’ Every transaction you have will be through a digital assistant UI.” Work-at-home requirements associated with the spread of COVID-19 have made it all the more important to give employees easy access to ever-changing information – on company policies, insurance coverage, and public health guidance, in addition to the usual cadence of questions on vacation balances, status of expenses, and IT workarounds.  Here are a few key ways in which chatbots and digital assistants can help. An assistant for every employee Finding answers to simple questions can be a frustrating experience if there is no easy way to do so. Take, for example, basic questions like “how many vacation days do I have left?” or “what do I do if I have a change in marital status?” In some cases, employees need to log into their VPN to find the policy document or a web page, or the application – which they then need to further navigate to find answers to these straightforward questions. With a digital assistant, employees can simply speak the question out loud in a natural way or simply input the text, instead of having to navigate multiple screens or interfaces, and they will receive an immediate response. Not only that, the digital assistant can further help them by recommending or taking action as a follow-up to their original interaction and be a true assistant for the employees. For example, rather than just informing the employee on what to do to change their marital status, the digital assistant can actually trigger the change process by gathering the necessary information and then updating the relevant systems with that information.  Answering general policy questions With rapidly evolving governmental directives such as sheltering-in-place and social distancing, most organizations are quickly adapting their HR policies and guidelines. At the same time, employees need help and answers from their organizations more than ever. Questions may range widely from policies on employment, travel guidelines, and health and safety instructions, as well as guidelines on dealing with and working during the pandemic. In some cases, the information is very dynamic and changes by the minute. Digital assistants give employees a consistent channel, which is available 24x7, to ask their questions so they can get an immediate response – while freeing up the HR and IT/support teams to manage the more complex challenges they are facing today. In fact, you can also use digital assistants to send proactive alerts and notifications like changes in policies, so that employees don’t need to keep checking or search for the latest information time and again.  Supporting employee health and safety Practicing social distancing has also had an impact on recruitment, onboarding, and training processes for organizations. In effect, these processes provide resources and support that most organizations may seriously need in these uncertain times. Using a digital assistant, businesses can drive candidates’ pre-screening and interview scheduling online, across any messaging channel. You can drive virtual onboarding by enabling easy remote online access to relevant trainings, policies, and materials all via a digital assistant. Data can also be safely recorded to keep track of employee health status based on the organization’s health policy and guidelines. A digital assistant can also save the employee from the time-consuming task of completing forms or reporting on any health-related issues at work.  Employee self-service Whether working remotely or on-site as needed, employees may need access to both information and processes beyond just the HR systems. From submitting expenses to filing IT support tickets to making changes to travel plans, we touch a number of systems or applications as employees. Some processes even span across multiple systems, like role- or location-based expense reimbursement policies, where the system requires role information from the HR system before interacting with the finance/ERP system for reimbursement. A digital assistant is one common interaction point for employees, contractors, or partners across multiple applications and can provide a quick, consistent, and concise response.  Leading an organization through this unprecedented time has put an increased demand on the HR function. As a result, organizations would be wise to leverage AI-powered technologies such as digital assistants to scale their functions, create online connection and engagement, and provide dynamic updates on policies and safety guidance without bogging down human communication channels – which need to be available for essential tasks. A digital assistant can support an organization by providing benefits such as: Lowering operational costs via online self-service & automation Expanding HR availability 24x7 across different channels Enabling easy access to information and processes delivered via text or natural language Delivering consistent information and maintaining employee engagement Enabling proactive HR outreach Digital assistants can support the functions employees may need now while creating efficiencies for the long term. For more information or to discuss how a digital assistant can support your needs, email us here. Stay well, and be safe.  

By Suhas Uliyar, Vice President, AI and Digital Assistant AI-based chatbots or digital assistants stand to change the way we interact with business applications, not just consumer ones. The...

Digital Assistant / Chatbot Development

TechExchange Quick-Tip: Exploring the Oracle Digital Assistant Test Suite For Automated Conversation Testing

article by Frank Nimphius, February 2020   Bot conversations in Oracle Digital Assistant are not sequential, or in other words, many paths lead to the same result. The image below shows examples of user input and the expected outcome. Notice that "Please show me the menu", "I like to order pasta". I like to order a pasta with bacon" and "I like to order a pasta with bacon and garlic" lead to the same outcome, which is the confirmation of an order. Where the different user messages differ is in the number of states that are visited in the context of the conversation. To throughly test a skill in Oracle Digital Assistant, all possible conversation paths must be tried, and this for every change you apply to the dialog flow or any version or clone of a skills.  Good news is that Oracle Digital Assistant introduced the first implementation of a test suite that allows you, on a skill level, to record a conversation in the embedded conversation tester, which then can be repeatedly run whenever needed. With this you can say that a conversation is the unit of testing in Oracle Digital Assistant skills.   “Tell me and I will forget, show me and I may remember; involve me and I will understand.” ― Confucius This article provides a starter skill, as well as simple steps you can follow to explore the test suite feature and learn how to use it.  To follow along, please download download the starter skill and ensure you have Oracle Digital Assistant 20.01 or later available. In Oracle Digital Assistant, import and open the started skill (if you don't see the import, use the search field and type "Alfredo". Before You Start The test suite feature is not enabled by default. To enable it, in Oracle Digital Assistant. select the "burger" menu item and choose the Feature Management option in the Setting menu section. Change the profile list to Enable all and apply the changes.  Exploring the Test Suite Navigate to the Pasta Alfredo skill and open it. Press the conversation tester to launch the embedded skill tester. Notice (see image below) that the tester header contains links to access test cases and test results, as well as a link to create test cases by saving a conversation.  Start by typing I like to order pasta into the Message field and press the enter-key on your keyboard.  You can navigate the card layout to see the pasta menu. To continue, type I want bacon pasta into the Message field and press the enter-key. It doesn't matter what the message text is for as long as it contains bacon pasta (the magic of entity extraction). Note: Don't press the buy button. by the time of writing, due to a know issue, using a postback action results in an invalid test case that wont be saved.  Next, type Cheese and garlic and press the enter-key. In the order confirmation, notice the the date and time information. This will become relevant later when you test the conversation. Next, click the Save as Test Case button. Provide a name like shown in the image below and press the Save Conversation button.  Reset the conversation by clicking on the Reset link in the header. Next, type I like to order bacon pasta and beef ragout. Notice in the image below that this user message displays a disambiguation dialog alerting the user that only one pasta can be ordered at a time. This dialog wasn't displayed in the first conversation. You can navigate the cards and notice that the card layout only contains two cards. Next, type Okay. If I can only have one, then beef ragout please. This message has "beef ragout" as a valid entity value in it (which is all that matters) Next, type I like cheese and oil into the Message window and press the enter-key. After the confirmation is displayed, click the Save as Text Case link and save the conversation as shown in the image below. Important Note:  Test case don't need to be complete conversations that end with a return statement (transition). You can, for example, stop the conversation in the tester at any time and save the test case. The last message displayed by the bot will then be the outcome the test case will determine success or failure with.  Next, select the Test Cases link. Notice that there are 4 test cases. Two of the test cases is what you created when following the instructions in this article. Two test cases were part of the starter skill you imported. What you learn with this is that test cases you create belong to a skill and will be exported and imported with the skill. This also means that when you version or clone a skill, that those skills will have contain the test cases too.  Note: Test cases can also be exported for a skill without exporting the whole skill. For this, you would exit the skill (navigating to the skill dashboard) and then use  the menu icon in the right bottom of the skill tile. This way you can export test cases to import into other skills.  Notice that the conversation recorded for each skill is saved as a JSON payload. You may want to compare the payload of one of the test cases you created with the SMS test case already provided. You will notice differences in the component rendering expressed in the payload. So for a test case it also matters which channel simulation was used when recording the conversation.  Next, press the Run All Test Cases button to execute the tests. You can change the name of the job if you want. For this article, just keep it and press Submit.  Give it a few minutes to process. Then, click the Test Run Results link.  Notice in the image below (and un your test run) that two test cases out of 4 failed.  Expand one of the failed test cases to learn about the problem. The problem in this case is the date and time information printed within the order confirmation (told you that this will become a problem). Reality is that you cannot exclude that content in a bot message changes. If it wasn't the date and time, it could be a generated order ID that changes between bot test runs.  One option to fix the problem would be to press the Apply Actual  button to modify the test case. While this helps for infrequent changes, it does not for the date and time in the example. To solve this problem, and to fix the test case forever, click on the test case name link.  The link navigates the UI to the test case definition. Scroll the Conversation field content to the bottom. Find the CONFIRMATION entry with the date and time information.   Replace the date and time information with a place holder. The image below uses ${DATE} as a placeholder.  You can however choose whatever name you want for the placeholder. Notice that when you move the cursor out of the Conversation field, the DATE placeholder is shown as a variable.  Next (inportant!), do the same for the other test case that failed, The test case too contains the date and time information.  When you rerun the test cases with the applied changes, then all tests succeed. When you switch to the test case results and you see tests still in progress, refresh the browser page frequently until you see the final test results.  Summary This article provided a brief overview of the test suite in Oracle Digital Assistant that you can use to record and replay conversations. The test cases are exported, versioned and cloned with the skills. You run the test cases from the conversation tester, or from anywhere in the skill editor using the Run Tests button.  Note that a test case stops at the first difference in a conversation. If there are 3 user interactions in a conversation and the first one fails, then the test case stops here and does not continue testing the other two interactions. If you want to test different parts of a conversation it is recommended to create multiple shorter test cases and e.g. use entity slotting to skip some states in between the conversation.    Download Pasta Alfredo Starter Skill   Related Content TechExchange Quick-Tip: How-to Test Apache FreeMarker Expressions in Oracle Digital Assistant All 2-Minute Oracle Digital Assistant TechTip Videos on YouTube TechExchange Quick-Tip: Understanding Oracle Digital Assistant Skill Entity Properties - Or, What Does "Fuzzy Match" Do?  

article by Frank Nimphius, February 2020   Bot conversations in Oracle Digital Assistant are not sequential, or in other words, many paths lead to the same result. The image below shows examples of user...

Digital Assistant / Chatbot Development

TechExchange: Integrating Oracle Digital Assistant with Oracle Rest Data Service (ORDS)

Article by Kadday Oucif, January 2020 Being able to integrate Oracle Digital Assistant with the Oracle Database is a frequently asked topic addressed in this article. In a very informative way and in great detail, this article steps you through the creation of a Oracle Autonomous Transaction Processing (ATP) database cloud instance and the creation of database REST services that allow CRUD access to data stored in the database. In a second step, the article then looks into how to create a custom Oracle Digital Assistant component that accesses the ORDS Rest service within a chatbot conversation.  Following the instructions in this article, and downloading the sample skill built for it, you will obtain a working sample that integrates Oracle Rest Data Services in Oracle Digital Assistant chatbot conversations. This article is also suited for developers that are new to Oracle Digital Assistant because each part of the hands-on outlines background  information that teach dialog flows, custom component development and conversation testing.  READ ARTICLE (PDF) Download Sample Skill (ZIP) Related Content TechExchange: All 2-Minutes Oracle Digital Assistant Tech Tip Videos on YouTube TechExchange Quick-Tip: Follow Best Practices By Keeping External Configurations Out of Your Dialog Flow TechExchange: The various options for creating and working with mockup data in Oracle Digital Assistant

Article by Kadday Oucif, January 2020 Being able to integrate Oracle Digital Assistant with the Oracle Database is a frequently asked topic addressed in this article. In a very informative way and in...

Digital Assistant / Chatbot Development

TechExchange: Getting Started With Oracle Digital Assistant on Oracle Cloud Infrastructure (OCI)

article by Frank Nimphius, January 2020 Oracle Digital Assistant is a cloud service on Oracle Cloud Infrastructure (OCI). To provision and administer Oracle Digital Assistant instances, you use the browser based OCI administration console. This article describes the minimum steps required to subscribe to a free Oracle Cloud trial and to setup an Oracle Digital Assistant instance. Once you have access to Oracle Digital Assistant, I recommend you try one of the hands-on tutorials provided here: https://docs.oracle.com/en/cloud/paas/digital-assistant/tutorials.html    READ article and get started (PDF) ------------ Related Content: Oracle Digital Assistant Product Documentation Oracle Digital Assistant help forum Oracle Cloud Infrastructure documentation Oracle TechExchange content related to the OCI version of Oracle Digital Assistant TechExchange: Mastering Dynamic Entities in Oracle Digital Assistant TechExchange Quick-Tip: Using RAW Message Payloads in Custom Components to Leverage Channel Specific UI Extensions (MS TEAMS Example) TechExchange - QuickTip: Oracle Digital Assistant As an Agent Overview of the new Oracle Web SDK and its customization features in Oracle Digital Assistant 19.10 and later TechExchange: How to Build a Remote JWT Token Server in Node for Use With Oracle Web SDK Client Authentication

article by Frank Nimphius, January 2020 Oracle Digital Assistant is a cloud service on Oracle Cloud Infrastructure (OCI). To provision and administer Oracle Digital Assistant instances, you use the...

Digital Assistant / Chatbot Development

New Oracle Digital Assistant Platform Release (19.12) on OCI

As we close out an awesome 2019, we’d like to celebrate with the launch of our 19.12 ODA Platform release. This release coincides with our full transition into being an OCI Native Service.  A) Oracle Voice:  Oracle Voice is now generally available to all our customers and partners as a key feature within the ODA platform. With Oracle Voice, customers can use cutting-edge automatic speech recognition that is pre-built with enterprise vocabulary. Additionally, customers can do this end-to-end within the ODA Platform without having to worry about using external transcription APIs.    B) Oracle Native SDKs: When it comes to incorporating digital assistants in various client environments, we strongly believe one size doesn’t fit all. After working with several customers to understand different usage models for ODA client SDKs, we have released the GA versions of our Oracle Web SDK and Oracle Android SDK -- both enabled with Oracle Voice. The Oracle Web SDK also features Auto Complete suggestions to better guide the users. Additionally we'll soon be releasing several derivatives of the Web SDK such as the Hybrid SDK for Cordova-based mobile development, a headless Web SDK for customers who want to create a chat UI from scratch, and a VBCS Web Component for developers who would like to embed an ODA channel within their VBCS/JET web applications.   C) Scenario validation with Test Suite: Our customers have long used the Bot Tester to verify how their Skills are performing in various scenarios. Now they can save these scenarios as test cases and validate them before making any major changes in their Skills. Each test case can be customized through UI or in JSON, and can be enhanced by passing in dynamic variables.   As we complete our transition into a full OCI Native service, we have brought in other exciting features into this native version of the platform such as enhancements to our Service Cloud DA-as-Agent channels, Q&A Intents, Optimized NLU models, etc. We hope you’re able to get the maximum value from the above capabilities in the coming months.

As we close out an awesome 2019, we’d like to celebrate with the launch of our 19.12 ODA Platform release. This release coincides with our full transition into being an OCI Native Service.  A) Oracle...

Digital Assistant / Chatbot Development

TechExchange Quick-Tip: Using RAW Message Payloads in Custom Components to Leverage Channel Specific UI Extensions (MS TEAMS Example)

Connectors in Oracle Digital Assistant ensure that the bot response is rendered best for different messengers. The foundation of this rendering is the conversation message model (CMM) that is the metadata used by Oracle Digital Assistant built-in components to define the bot user interface. The metadata is then transformed by connectors to the format expected by messengers like Facebook, Slack, MS Teams and many more. Custom components integrate with CMM through the MessageModel class in the Oracle custom component SDK.  Like when using the System.CommonResponse component channelCustomProperties component (as explained in another Oracle TechExchange article), you can return a message payload from custom components that are messenger specific and that allow you to use layout extensions available on a specific messenger channel. By doing so, you bypass the payload format transformation in the channel connectors and instead post the payload "as is" to the messenger client.  In this article, I explain how you use the MessageModel's RAW message format to send a channel specific layout. The example used is Microsoft Teams' adaptive card layout. 

Connectors in Oracle Digital Assistant ensure that the bot response is rendered best for different messengers. The foundation of this rendering is the conversation message model (CMM) that is the...

Digital Assistant / Chatbot Development

TechExchange Quick-Tip: Working with the new QnA Intent in Oracle Digital Assistant 19.4.1 and later

Starting Oracle Digital Assistant 19.4.1, you have two options to handle questions in a bot conversation.  QnA Module - the QnA module in Oracle Digital Assistant allows you to upload frequently asked question documents that consist of one or many questions associated with a single answer. The QnA module uses elastic search to find the best matching answer or answers to a question. Dependent on how you configure the QnA module routing, bot users may get multiple hits for a question. Multiple possible answers to a question are shown in a carousel layout for the user to browse and select the answer she feels is the most relevant.  QnA modules are referenced from the System.QnA component that you add to a state in the skill dialog flow. The decision whether or not QnA is called, is then made by the intent engine through the System.Intent component. Again, depending on your configuration settings, the QnA module can be queried parallel to the intent model or only if the intent model does not resolve an intent for the user message.  QnA intent - The new QnA intent allows you to return a defined an answer for a resolved intent. Intents that have a response defined will not be resolved by the System.Intent component, which means there is no need for you to create a dialog flow state to return the response. QnA intents are kind of a "QnA light" in that they don't require any dialog flow settings and in that they only return a single answer, which sometimes is a customer requirement. The QnA intent is documented in the ODA product documentation.  This article provides a quick tutorial for you to try the new QnA intent. I assume you have access to Oracle Digital Assistant 19.4.1 or later and also assume you understand how to import skills using the Oracle Digital Assistant skill dashboard. 

Starting Oracle Digital Assistant 19.4.1, you have two options to handle questions in a bot conversation.  QnA Module - the QnA module in Oracle Digital Assistant allows you to upload frequently asked...

Digital Assistant / Chatbot Development

New Oracle Digital Assistant Platform Release (19.4.1)

We are excited to announce the 19.4.1 version of the Oracle Digital Assistant platform with a host of cool features and capabilities. I’d like to thank all our valued customers and partners who worked with us to deliver these innovations: A) Q&A Intents + optimized ML model: To streamline integration of Q&A with transactional intents, 19.4.1 comes with Q&A Intents. These intents are similar to transactional intents, except that you can specify answers when you define them. These answers do not require any further dialog or YAML changes, and hence are easily configurable by business analysts. We have also updated the Trainer Tm model to ensure it can work effectively with lots of Q&A Intents — to leverage this, you simply have to enable "Optimize for Answer Intents" option for Trainer Tm model under settings. B) DA as Agent channels:  Customers have often appreciated the breadth of channels the ODA Platform provides. Now for customers who already have an existing contact center pre-configured with Oracle Service Cloud and channels such as Live Chat, they can simply add ODA on to their contact center  with the new "DA as Agent" channel.  This is as simple as say hiring a new agent — the ODA plugs into your Service Cloud backend as a new agent, and is able to honor all the complex routing strategies that you may have implemented in Service Cloud for your contact center. C) Service Cloud optimized insights: For business analysts, 19.4.1 comes with a streamlined view of deflection and usage-based insights. You can view popular intents through word clouds and retrain your skills with a single click.  D) Conversation Designer Update: Thanks again for all the feedback you provided for the Conversation Designer Beta. We have now rolled most of the feedback and fixes into the Conversation Designer Update. Additionally 19.4.1 comes with entity highlighting in user queries and ODA responses within the Conversation Designer.  Overall the 19.4.1 release improves the stability of the platform and provides significant new functionality. We strongly recommend all our existing customers to upgrade to this release. Over the next 3-4 weeks, we will reach out to you on the upgrade plan for 19.4.1. Meanwhile, if you have any questions about upgrades, please reach out to your customer success PM.

We are excited to announce the 19.4.1 version of the Oracle Digital Assistant platform with a host of cool features and capabilities. I’d like to thank all our valued customers and partners who worked...

Digital Assistant / Chatbot Development

TechExchange Quick-Tip: A Generic Way To Share Information Between Skills in a Digital Assistant Using User-Scope Variables

Oracle Digital Assistant orchestrates individual chatbots (skills) to a unified chatbot experience. In this architecture, skills are individual chatbots that represent modular building blocks and perform a specific task or set of tasks. The role of the digital assistant is to "host" skills and intelligently route user messages to the skills and intents that fit the best.  Although skills are independent chatbots, they may need to exchange information when executed in the context of a digital assistant. A usecase e.g. is to share an access token obtained in an authorization skill that then is used in other skills to perform backend service access. This way you don't need to implement the authorization logic in all skills but just one. Another use case is where skills implement related tasks: one skill to perform a banking transaction whereas a second tracks the transaction.  In this article, I'll explain how to use Oracle Digital Assistant user-scope variables to exchange information between skills. I'll also explain how to use custom skill parameters to avoid dependencies in the skill BotML code. The design goals are Skills should not depend on implementation details of other skills Skills should be designed for stand-alone use and not as a dependent detail of a master Information is shared using user scope variables. The name of the user scope variables should be defined by the digital assistant designer, not the skill developer

Oracle Digital Assistant orchestrates individual chatbots (skills) to a unified chatbot experience. In this architecture, skills are individual chatbots that represent modular building blocks...

Customer Success Stories

Big News: Oracle Unveils AI-Voice for the Enterprise; Expands Partnership with Microsoft with Digital Assistant-Teams Integration

Oracle today announced availability of its AI-trained voice with Oracle Digital Assistant. “Enterprises are demanding an AI-powered voice assistant that understands their specific vocabulary and enables naturally expressive interactions for its users,” said Suhas Uliyar, vice president, AI and Digital Assistant, Oracle. “Most of all though, enterprises value a highly secure AI-powered voice assistant that stores their businesses sensitive data in Oracle’s second-generation cloud infrastructure.” Read the full announcement here: Oracle Unveils AI-Voice for the Enterprise, and see what Oracle Digital Assistant customers are saying about the value of driving conversational voice and text interactions with Oracle Digital Assistant, the only true enterprise AI-powered digital assistant in the market today. In another significant announcement, Oracle and Microsoft expand on their Cloud partnership with the availability of integration between Microsoft Teams and Oracle Digital Assistant. With this, Microsoft 365 and Oracle Cloud customers can access Oracle Cloud applications using Oracle Digital Assistant – an  AI-powered conversational voice and text interface, directly from within Teams. “Our aim is to have it (Oracle Digital Assistant) be the preferred method to get questions answered 24x7, access to policies and an amazing end-to-end approach for completing transactions with more speed and accuracy. We knew we wanted our HR digital assistant to be available where employees spend their time online, and an integration with Teams was therefore essential. Our vision is to have it become to employees what J.A.R.V.I.S. is to Iron Man.” says Mark Burgess, senior director, HR Technology Solutions, Honeywell. Read the full announcement here: Oracle and Microsoft Expand Cloud Partnership to Boost Workplace Productivity For more information on Oracle Digital Assistant for Teams, enterprises can now sign up for a private preview by sending in a request to oda_teams_ww_grp@oracle.com If you are at OracleOpenWorld, don't miss Oracle executive, Suhas Uliyar's session that goes into details around these announcements and is packed with exciting solution demos. GEN5607 Oracle Speaks: Conversational AI for Enterprise Apps with a Chatbot Assistant Tuesday, September 16, 2019, 1:45 pm -2:30 pm Moscone South, Room 209 More information on Oracle Digital Assistant at Oracle OpenWorld at bit.ly/ODA_OOW19 and join the conversation using #OOW19, #OracleAssistant

Oracle today announced availability of its AI-trained voice with Oracle Digital Assistant. “Enterprises are demanding an AI-powered voice assistant that understands their specific vocabulary and...

#OOW19: Focus on Customer Sessions this Oracle OpenWorld

Oracle OpenWorld 2019 provides a unique opportunity for all of us to learn. Learn about Oracle Cloud services, strategic direction, key trends in the industry, product use cases, and such. But perhaps more than anything else, it provides us an opportunity to learn from our peers – learn from organizations who may be facing similar industry challenges or are guided by similar innovation goals or are looking to drive transformation or deliver/meet unique business needs. This Oracle OpenWorld plan to spend some time learning from your peers. We are very excited to have a slew of sessions featuring customer organizations including, Banco Daycoval, Exelon, FedEx, HSBC, Honeywell, Telefonica SA, Tokyo Gas, University of Adelaide, among others. For convenience, I have curated a list of sessions where you will hear first-hand from Oracle Digital Assistant customers and get to hear about their use cases, business goals, results achieved and best practices that may be of interest to you. Monday, September 16, 2019 PRO5704: Why Chatbots Fail: 10 Common Mistakes Developing a Digital Assistant (Chatbot) 1:15 a.m. - 12:00 p.m. | Moscone West - Room 2024B CON5620: Design Your Own Digital Assistant and Chatbot Conversations 1:45 p.m. - 2:30 p.m. | Moscone South - Room 159A DEV5644: Oracle Digital Assistant Architecture Patterns and Design Practices 6:00 p.m. - 6:45 p.m. | Moscone South - Room 303   Tuesday, September 17, 2019 GEN5607: Oracle Speaks: Conversational AI for Enterprise Apps with a Chatbot Assistant 1:45 p.m. - 2:30 p.m. | Moscone South - Room 209 CON5609: Explore Oracle Digital Assistant Channels, Client SDKs, and Messaging Services 5:15 p.m. - 6:00 p.m. | Moscone South - Room 151B Wednesday, September 18, 2019 GEN6040: Extend Oracle SaaS and Design New Experiences with Intelligent Automation 11:15 a.m. - 12:00 p.m. | Moscone South - Room 207/208 CAS5610: Oracle Digital Assistant Customer Panel 3:45 p.m. - 4:30 p.m. | Moscone South - Room 151B CON5616: Five Crucial Ways Oracle Digital Assistant Will Transform Your Enterprise Applications 4:45 p.m. - 5:30 p.m. | Moscone South - Room 151B You may want to pre-register for some or all of these sessions by adding to your Schedule Builder today. And, do keep bit.ly/ODA_OOW19 handy on your devices so you can look at what’s ahead wherever, whenever. For a snapshot of what to expect, check out my previous blog post. The team is also planning to drive updates via social channels so be sure to join in on the conversation using #OOW19 #OracleAssistant. Oh, and one final tip – you may want to wear some comfortable shoes! See you soon at Oracle OpenWorld!

Oracle OpenWorld 2019 provides a unique opportunity for all of us to learn. Learn about Oracle Cloud services, strategic direction, key trends in the industry, product use cases, and such. But perhaps...

Digital Assistant / Chatbot Development

Oh, the Things You Will See for Oracle Digital Assistant at Oracle OpenWorld 2019

Oracle OpenWorld 2019 is just around the corner. We look forward to seeing you in San Francisco from September 16-19, 2019. Whether you are looking to learn about Oracle’s latest technologies, product roadmaps, customer implementations, get hands-on learning, dive into product demonstrations and/or networking with your peers, we are confident that this year’s conference will not disappoint!  For easier navigation, here we highlight key sessions and activities for all interested in Oracle Digital Assistant. A reminder that you can access the very latest information on upcoming sessions and events for Oracle Digital Assistant by simply going to bit.ly/ODA_OOW19 on your devices before or during Oracle OpenWorld. As always, for the latest information on Oracle Digital Assistant, visit Oracle.com/da Looking Beyond Keynotes GEN5607 Oracle Speaks: Conversational AI for Enterprise Apps with a Chatbot Assistant featuring customer Honeywell Tuesday, September 17, 01:45 PM - 02:30 PM | Moscone South - Room 209 Join Oracle executive, Suhas Uliyar, vice president, Digital Assistant, AI and Integration, live at Oracle OpenWorld  in a General Session like you haven’t seen before! Learn about areas of investments for Oracle Digital Assistant, latest product enhancements and see  chatbot technology live in action. Hear directly from our customer, Honeywell, on how they are seeing quantifiable benefits from use of Oracle Digital Assistant. GEN4060 Extend Oracle SaaS and Design New Experiences with Intelligent Automation featuring customer Ferrari Wednesday, September 18, 11:15 AM - 12:00 PM | Moscone South - Room 207/208 If you are looking to add new capabilities to extend Oracle SaaS applications, or trying to create ways to support new business models, then you would definitely want to make your way to this General Session. Oracle executive, Suhas Uliyar, vice president, Digital Assistant, AI and Integration, is joined on stage by lead executives for the different Oracle Cloud Platform services and our customer, Ferrari, to showcase the power of one Cloud platform. Hear Directly from Digital Assistant Customers One of the biggest benefits of attending Oracle OpenWorld is hearing directly from peers in other organizations about their use cases, how they are driving value with Oracle Cloud services and finding paths to success and innovation. We are very excited to have a slew of sessions featuring customer organizations including, Banco Daycoval, Exelon, FedEx, HSBC, Honeywell, IFFCO, Telefonica SA, Tokyo Gas, University of Adelaide, among others. Partners including AuraPlayer, Avanttic, eProseed, Fishbowl Solutions, IntraSee and Rubicon Red alongside Oracle’s technical experts, would also be at hand, and presenting sessions to support dialogues around best practices and implementations. Browse through our customer-centric sessions listing to add to your Schedule Builder Hands-On-Labs Take Oracle Digital Assistant for a test drive. Get hands-on experience working, building or delivering use cases for a Digital Assistant that fits your business model. See how you can create your own skills to easily converse with Cloud applications. Reserve your spot today for one or both of these hands-on-Labs (seating limited): HOL5639 Compose Digital Assistant for Oracle Applications with SaaS Skills HOL5640 Getting hands on with Oracle Digital Assistant Conversation Designer Demos and Product Showcases Seeing is believing. Experience it live to learn more about how Oracle Digital Assistant can create value for your organization. Don’t miss Oracle Digital Assistant demo stations in demo ground conveniently located on both the technology and applications showcase floors. Access complete list of Digital Assistant demos Blogs and Social Start a conversation or stay up to date with Oracle Digital Assistant happenings, the latest announcements, tracking key activities from Oracle OpenWorld in real time using social channels and hashtags #OOW19, #OracleAssistant. Follow us on: Blogs: Oracle Digital Assistant Twitter: @OracleMobile For more information, visit bit.ly/ODA_OOW19  

Oracle OpenWorld 2019 is just around the corner. We look forward to seeing you in San Francisco from September 16-19, 2019. Whether you are looking to learn about Oracle’s latest technologies,...

Digital Assistant / Chatbot Development

TechExchange: How to turn your chatbot ideas and designs into a proof-of-concept with the new Conversation Designer (Beta) in Oracle Digital Assistant

The development of an Oracle Digital Assistant projects, like any other Chatbot project, does not begin with the technology. Instead you start with a planning phase that clearly identifies the bot's usecases, its data requirements, the intents and entities, and the conversation flow. Having a solid agreed-upon idea of what to build and in which increments to build it, as well as getting stake holder buy-in, is an important pre-requisite to a successful bot project. The next step is to identify intents and utterances with which to train the bot. This is easier said than done and you should definitely avoid making them up. Make sure you find realistic data from real customer interactions and derive intentions and expressions from them. Like in mathematics, if the algorithm you use (the model) is wrong, then chances are bad that the end result will be correct nevertheless. So make sure that you identify good intents and utterances before you build a bot. Once you are done and the conditions look good, you can put your ideas into action and create a first model of what your bot could become later. Oracle Digital Assistant got a new Conversation Designer added as a beta feature in September 2019. With the Conversational Designer, you can build skill conversations declaratively so that technical and non-technical people can follow and collaborate. With the modeled conversation, you can then run a recorded simulation of your conversation design, or even generate the Oracle Digital Assistant skill, including intents, entities and the dialog flows, to perform a realistic test and demonstration to show to stake holders,  This article is a quick start that will help you get going easily with the Oracle Digital Assistant Conversation Designer. The tutorial example teaches you about the editing environment, the dialogs, and the code generator.

The development of an Oracle Digital Assistant projects, like any other Chatbot project, does not begin with the technology. Instead you start with a planning phase that clearly identifies the...

Digital Assistant / Chatbot Development

TechExchange Quick-Tip: How To Implement a textReceived Action Transition Behavior in QnA

article by Frank Nimphius, August 2019   "textReceived" is an action transition that exist on many Oracle Digital Assistant select components and that is followed when users enter free text instead of selecting a value from a choice. For example, in a retail bot, if the user is prompted to select the size of a shirt to buy and the user instead types "I like to buy a pair of shorts", then the textReceived action would allow the bot designer to stop the current conversation flow and navigate to a System.Intent component state to discover the new intent and extract the new entity information.  To implement this on a component (e.g. System.CommonResponse, System.List) supporting the textReceived action transition, you use the following component configuration in the dialog flow name_of_date:   component: "System.List"   properties:      ...   transitions:     next: ...     actions:       textReceived: "intent_state" System.QnA The System.QnA component that is used in a skill to display QnA questions and answers does not have a textReceived action. However, this does not mean you cannot implement the behavior described in the previous paragraph. The System.QnA component has a property "transitionOnTextReceived", that when set to true, follows the "next" transition when a user entered text instead of selecting the answer for a question. For example, the following message, when entered in the skill tester, understands the request as an intent and follows up with a conversation. The same skill answers with a QnA view when the message is not identified as a request for a conversation but a question ("sometimes a question is what it is; a question"). As shown in the image below, the QnA component displays a card layout if there are many candidate questions and answers matching the initial user question (you can fine-tune the QnA matches using settings on the System.QnA component and the QnA feature in Oracle Digital Assistant).   So if a user, instead of selecting the "view" action button, types a new message into the messenger client, then this triggers the dialog flow state to navigate out of the System.QnA component state to the state defined by the next transition. In the image below, the navigation is to a System.Intent component state, which then detects a new intent.  So what's the challenge then? The challenge is that the next transition is also followed when the user selected a View action button (the label of the button can be customized). So to implement the textReceived transition behavior, you need to be able to tell whether a user selected a answer from the QnA component layout or typed free text.  The System.Intent component shown in the image below handles the user message first and either routes it to a dialog flow state handling the intent or a QnA state handling a question. Notice the qnaSkipIfIntentFound and the qnaMinimumMatch properties that you can use to "fine tune" the behavior on the System.Intent component level. To implement the textReceived transition behavior on the System.QnA component state, you set the keepTurn property to true, so that the dialog flow transition immediately continues after the user entered free text. Important, the transitionOnTextReceived property must be set to true as otherwise the System.QnA component tries to find the user entered message as a question in QnA. The secret recipe to success is the expression used in the next transition: "${(system.message.stateCount<=1 && system.message.messagePayload.text?has_content)?then('state_name_if_has_content','state_name_if_empty')}" When a user selects an answer from QnA cards, then the message payload is empty, whereas if the user typed free text, it will have content. Using this expression you can distinguish between a QnA selection and a new user message. (Note, you can also navigate to a System.Switch component state and use the expression in there to determine the next navigation).  So in the image above (and the skill you can download for this article), when a user selects an answer from the QnA component, navigation is to a dialog asking if the user wants to ask another question (in which case navigation goes back to the System.QnA component state). If however the user typed free text, the transition is to the System.Intent dialog flow state explained earlier in this article.  Note: The "system.message.stateCount<=1" part of the expression ensures the state not to go into an infinite loop if the Q&A question returns a single answer.  Download Skill You can download a sample skill used to take the screen shots shown in this article.  Download Skill (ZIP) Import the skill Train the skill Start by asking "I have a question about credit cards" Then select the "view" option for a question Click "yes" to ask a new question Ask "how can I cancel a card?" Order a new card (intent): I like to order a new credit card  Related articles TechExchange Quick-Tip: How-to add the user query string to the Q&A optionsLabel property on the System.Intent component YouTube Video: Calling QnA Module in Separate Skill TechExchange - Using Apache Freemarker Expression in Oracle Intelligent Bots  

article by Frank Nimphius, August 2019   "textReceived" is an action transition that exist on many Oracle Digital Assistant select components and that is followed when users enter free text instead of...

Digital Assistant / Chatbot Development

TechExchange: How-to Download Documents in Oracle Digital Assistant Conversations

In a recent Oracle TechExchange article, Upload Documents in an Oracle Digital Assistant Conversation with Messengers like Facebook or the Oracle JavaScript Client SDK, I explained how to upload documents in a messenger client through Oracle Digital Assistant. In this article I now explain the opposite, which is how to download of documents like audio, video, image and document files within a bot conversation. Basically, to download documents in Oracle Digital Assistant conversations, you have three implementation options available Using the System.CommonResponse component attachment response type, you navigate to a dialog flow state that returns the download URL along with the document type (audio, video, image, file) to the messenger client to download the content. The rendering of the document, whether it is in place within the messenger conversation, or in an external browser or webview window, is not in the control of Oracle Digital Assistant but the messenger used. Using a custom component, you use the JavaScript MessageModel object available in the Oracle custom component SDK. Using a custom component is what you would use if the document URL and type is accessed dynamically from a remote service call. The rendering location, in-place within the messenger client, or external in a web browser or webview, depends on the messenger client used. Oracle Digital Assistant , like any other chatbot too, does not control the messenger client. Using the System.CommonResponse component url action, you can redirect the user to an online source that is always opened in a separate browser tab, or in a webview on a mobile devices.

In a recent Oracle TechExchange article, Upload Documents in an Oracle Digital Assistant Conversation with Messengers like Facebook or the Oracle JavaScript Client SDK, I explained how to...

OpenWorld is Next Month - Let’s Talk

Computer interfaces have come a long way. From punch cards, to keyboards, to graphical user interfaces (GUI) + mouse, to swiping your finger, elbows, or nose at that mobile phone or tablet. (Laugh if you must, but if you’ve ever had a pair of heavy gloves on, and get an important call, you know what I mean). Now imagine if you were a bee keeper, and had to take a call, or try to use a mobile app on your phone. Yeah, that could sting...   Voice is What’s Next for the Enterprise Jeff Bezos and team deserve credit for having the foresight and success with their Alexa powered devices. I have a few at home, and my family talks to them regularly - while apparently, Amazon listens to us? :-\  Bottom line, the average consumer is using voice more and more to talk to computers. It's expected. Oracle's recent acquisition of speak.ai shows it's leading the way in bringing voice powered apps to the enter prise. To learn more, checkout this webcast, Oracle's New AI Voice for the Enterprise. It's lends credence as to why Oracle was honored by Gartner when it was named a leader for Multi-Experience Development Platforms. (MXDP). Third year in a row - but who's counting?  :) Oracle's Voice for the Enterprise That brings me to the enterprise – Oracle’s sweet spot. That’s where security and privacy are taken more seriously. It’s not a matter of if – but when, that we will be talking to mission critical systems as the new normal. 100%. I have no doubt.  Most analysts agree. In fact, Gartner predicts Gartner predicts that by 2022, 70% of white-collar workers will interact with conversational platforms on a daily basis. This year’s OpenWorld, you’ll see exciting progress with our AI powered, conversational interfaces. The Oracle Digital Assistant (ODA) platform is leveraged by all the Oracle SaaS and on-premises app teams to build conversational interfaces for solutions. And with the recent speak.ai acquisition, ODA will be able to handle complex sentences like: “Find the address to the closest parking garage, near the Japanese restaurant by the Space Needle”  and understand the unique context and vocabulary that various systems (HCM, ERP, CX, etc.) use regularly.   OpenWorld 2019 - The Must Attend General Session by Suhas Uliyar For Oracle Digital Assistant, if there’s one key session to catch (Ok, maybe Larry’s keynote is higher on your list) it’s the General Session led by Suhas Uliyar, Oracle VP of Product Management for Oracle Digital Assistant where you’ll see and hear about the latest and greatest related to Oracle Digital Assistant.   For a dedicated list of Oracle Digital Assistant related sessions, check the program guide. Can't wait? Catch an early glimpse from Suhas' recent interview (the guy is a workaholic) by Regalix. Ok - I've covered a lot of ground. OpenWorld is around the corner. If you're planning to attend, digital assistants will be everywhere! Stop by and have a chat. Cheers!

Computer interfaces have come a long way. From punch cards, to keyboards, to graphical user interfaces (GUI) + mouse, to swiping your finger, elbows, or nose at that mobile phone or tablet. (Laugh if...

Oracle Three-Peat!

Oracle Three-Peats Gartner Magic Quadrant We are excited to share that for 2019, Oracle has been recognized as a Leader in Gartner’s first Multi-Experience Development Platform (MDXP) Magic Quadrant!! But wait, you say, if this is the first MDXP report, what’s with the three-peat headline? Well, historically speaking, prior to MXDP, its predecessor was Mobile Application Development Platforms (MADP), of which, Oracle was also “named a leader” for the previous 2 years, back to back. Gartner recognized that market trends were changing and the previous title was too focused on mobile and needed to be updated to reflect evolving trends that reached beyond mobile and include progressive web apps, conversational apps (chatbots) and immersive apps (AR/VR) - as the types of apps people were using to engage businesses. We absolutely agree – especially considering the growth in AI powered conversational interfaces! From the 2019 MXDP report, key takeaways for Oracle included: Core back-end services:  Considering Oracle’s deep portfolio of SaaS and on-premises applications, and preexisting connectors to our own and 3rd party applications, this is Oracle’s sweet spot. Customer experience: “Reference customers for Oracle reported some of the highest levels of satisfaction, compared with those of other vendors in this Magic Quadrant.”  I think that line speaks for itself. Code-centric developer tooling: Oracle has been supportive of open platforms and tools for many years now. For MXDP, we offered: great support for JavaScript, check. React and Cordova, check. SDKs for iOS and Android, check. And “one of the highest satisfaction scores for developer training and support” Check-mate! Oracle is honored by be recognize as a leader (again) and the teams will continue to strive to deliver innovative products for its customers. To download your complimentary copy of Gartner’s 2019 Multi-Experience Development Platform report, click here. Our official press release is here.

Oracle Three-Peats Gartner Magic Quadrant We are excited to share that for 2019, Oracle has been recognized as a Leader in Gartner’s first Multi-Experience Development Platform (MDXP) Magic Quadrant!! Bu...

Digital Assistant / Chatbot Development

Oracle Finds Its AI-Powered Voice

By Suhas Uliyar, Oracle VP Product Management   These are exciting times for those of us who are working in Artificial Intelligence (AI) and Machine Learning (ML) space.  Take Voice Assistants as an example. In the consumer world, voice assistants have gone from “the next best thing” to ubiquitous household items. We turn to these voice devices at our homes to get the weather forecast, listen to our favorite tunes, find out the latest in news, play trivia, or simply to entertain ourselves. All this while we are acutely aware that at the end of the day, it is simply a machine. It is nowhere near the capacity of a human mind to be able to process complex statements let alone switch gears from one topic to the other and making sense of it all. Plus, there’s the fact that it is recording our private conversations! But convenience outweighs even our hesitation due to privacy concerns. In the enterprise world, however, such security breaches are a non-starter! So, how do we drive an intelligent Voice Assistant for an enterprise - enabling it to analyze enterprise specific and domain specific vocabulary that the open domain models are not trained with? Make voice, user interactions become more expressive that requires the voice assistant to process even the more complex queries, deriving intelligence from all available enterprise resources and respond in context to the request made? And more importantly, how do we avoid the security and privacy issues that we are seeing with most of the current consumer-grade voice assistants today? Join me on a live webcast as we unveil Oracle’s new AI-Voice for the enterprise this Wednesday, July 17that 10 am PT. I will be going through the details on how we are doing things different at Oracle and the possibilities with an enterprise-grade, secure AI-voice enabled Digital Assistant. I will also be going through a demo that you wouldn’t want to miss. To register, simply sign up here: http://bit.ly/OracleNewAIVoice Happy to discuss more during or after the webcast!    

By Suhas Uliyar, Oracle VP Product Management   These are exciting times for those of us who are working in Artificial Intelligence (AI) and Machine Learning (ML) space.  Take Voice Assistants as an...

Oracle's New AI Powered Voice

  My family and I continue to have more and more conversations with Alexa, Siri and Google Assistant lately. Yeah, all three - I’ve no excuse. Having three AI based sources within speaking range of each other, we have a tendency to fact check them against one another - especially when someone doesn’t quite trust or agree with the answer they get. For example, is Australia considered a continent or is it Oceania? Is a hot dog a sandwich?  Who is the best NBA player of all time ever? At the end of the day, even for these sophisticated conversational AI sources, the “trusted” source is key. The old programming adage, garbage in – garbage out, still applies.  Content is King, but Context is Everything Extracting accurate text, from the spoken word, has gotten pretty accurate.  Talk to Alexa, Google and even Siri, they can translate voice to text well enough. Extracting the intent – the meaning behind those words, is hard. It’s hard, because context is everything.  When people talk, we humans are pretty good at switching topics, without much fuss. Go from basketball, to fishing, to baking cookies – not a problem. Switching gears on AI – problem.  Conversational AI – All In Here at Oracle, we’re making great strides to address context.  The Oracle SaaS teams in particular, are all-in on adopting conversational interfaces for their products.  The Customer Experience (CX) team is making access to CRM systems easier.  The Human Capital Management (HCM) team, is also embracing the future – as we speak. <groan>.  And because the Oracle SaaS teams are using Oracle Digital Assistant platform, conversing with the Oracle powered assistant, switching context between app skills from a single digital assistant, will be much easier. Oracle’s New AI Powered Voice You might ponder, Alexa, Google and Siri, they’ve pretty much have the voice to text portion locked down. But in the enterprise space, it’s different. We can do better - not only from a technical perspective, but also from the all the more important privacy and security perspective.  While Oracle Digital Assistant is it’s own platform, within Oracle’s own cloud environment, processing voice to text, using Alexa, etc., isn’t always an ideal or even acceptable situation.  That’s why Oracle’s investing in it’s own AI powered voice technologies.  From what I’ve seen – it’s well worth the investment and a potential game changer in the enterprise. You can hear a quick intro on this topic, on this 10 min podcast interview with Suhas Uliyar, VP Product Management, and also catch a deeper dive in this upcoming free webcast on July 17. And of course, to see how much conversational AI is being embraced, check out Oracle OpenWorld – where Digital Assistant will literally be the talk of the show.  FWIW, Australia is a continent.  Oceania is a region that includes the country/continent of Australia. A hotdog is a sandwich.  And the GOAT NBA player is of course, Michael Jordan. 

  My family and I continue to have more and more conversations with Alexa, Siri and Google Assistant lately. Yeah, all three - I’ve no excuse. Having three AI based sources within speaking range of...

Digital Assistant / Chatbot Development

TechExchange Quick-Tip: Customizing the Oracle Bots Node.js SDK Component Template

The Oracle Bots Node.js SDK includes a command line utility that you can install globally on your local computer and that lets you easily create new custom component and custom component projects. The custom components created by the Oracle Bots Node.js SDK contain a "hello world" content that contains examples fo the two main function calls: metadata() and invoke(). In addition, the invoke() function implementation shows example code for how to access input parameters ("human" in the example), how to print responses to the bot ("conversation.replay(...)) and how to pass control back to the bot ("done()"). Unless "hello world" is all you need to build, or if this is the first time you use the Oracle Bots Node.js SDK to create custom components, you may be interested to learn how to customize the template to contain e.g. the author name, a use license and more. Especially when working in teams you may want to enforce consistency across custom components that are integrated, which includes a common set of input parameters (e.g. always use "variable" as an input parameter for the reference to the dialog flow variable to update (like system components do). This article explains how to modify the component template in a global Oracle Bots Node.js SDK installation.

The Oracle Bots Node.js SDK includes a command line utility that you can install globally on your local computer and that lets you easily create new custom component and custom component projects. The...