In In this article I explain how you can use the Apache FreeMarker Online Tester to debug and test expressions in Oracle Digital Assistant
In In this article I explain how you can use the Apache FreeMarker Online Tester to debug and test expressions in Oracle Digital Assistant
This article explains how you can determine the value (which could be a synonym) that resolved an entity using Oracle Digital Assistant 20.09 or later.
This article explains how you can determine the value (which could be a synonym) that resolved an entity using Oracle Digital Assistant 20.09 or later.
Messenger behave different when it comes to the number of buttons or select items they can render. To address limitations you can configure the data items that are displayed at a time on composite bag entity bag items. For the users to be able to browse all data values, you then use buttons exposed on the System.CommonResponse component or the System.ResolveEntities component. What happens when a user tabs on a button is that the component navigates to a next or previous page range. There may be a time where you need to know what the current page range is. In composite bag entities, the page range is identified by the range start index, which, of course, is different for each bag item. In this article I explain how you can access the current page range for a bag item in a composite bag entity at runtime using an Apache FreeMarker expression.
Messenger behave different when it comes to the number of buttons or select items they can render. To address limitations you can configure the data items that are displayed at a time on composite bag...
While chatbots shouldn't pretend to be human, they shouldn't behave robotic either. A bot that has a single prompt for interacting with a human can only display that single prompt, which sounds like a broken record if the prompt needs to be displayed again. In this article, I'm going to show you how to create alternating prompts using the prompt property that "escalate" problems after users provide invalid data entries by displaying additional information that guide users or suggest an alternative
While chatbots shouldn't pretend to be human, they shouldn't behave robotic either. A bot that has a single prompt for interacting with a human can only display that single prompt, which sounds like...
The attachment type is a useful feature of the System.CommonResponse component, especially when the messenger is rendering images as part of a conversation. A feature I was looking for is the ability to add a title string or a header text. So far I helped myself by adding a text response before rendering the attachment response. Well, I've done that so far.
The attachment type is a useful feature of the System.CommonResponse component, especially when the messenger is rendering images as part of a conversation. A feature I was looking for is the ability...
Oracle Digital Assistant allows a single Digital Assistant to be accessible on a wide variety of channels such as Web, MS Teams and Slack . All without any code change. It also allows you to selectively customize and take advantage of features specific to the channel. This can be done without compromising the compatibility and reusability. This article shows some examples of what can be done on the web.
Oracle Digital Assistant allows a single Digital Assistant to be accessible on a wide variety of channels such as Web, MS Teams and Slack . All without any code change. It also allows you...
Chatbots should be confident when it comes to resolving intent and extracting entities. However, high confidence also means that the bot may sometimes not resolve information if the user makes mistakes while entering it. This article shows how you can add unsharpness to entity extraction using the Fuzzy Match option on an entity to allow users spelling mistakes or providing values that don't perfectly match a known entity value or synonym.
Chatbots should be confident when it comes to resolving intent and extracting entities. However, high confidence also means that the bot may sometimes not resolve information if the user...
Parent-child relationships are a common pattern in software development. The relationship usually describes a one-to-many dependency between two sets of data, one of which (the child) depends on the choice of the other (the parent). For example, a chatbot that handles expenses may prompt a user for providing the type of an expense, which could be accommodation, transportation, parking fees, office supplies and many others. Then, if a user selects transportation as the type of expense, the system may prompts with a dependent list of options, that may include flight, rental car, train, taxi, bus, others as selectable values. This article explains how to define parent-child relationships in Oracle Digital Assistant using the System.CommonResponse component and a composite bag entity.
Parent-child relationships are a common pattern in software development. The relationship usually describes a one-to-many dependency between two sets of data, one of which (the child) depends on the...
Identity providers authenticate users and return an authorization code for an application to access protected resources. With identity providers from Google and Microsoft, Oracle Digital Assistant 20.08 and later support two additional identity providers. This article explains how to configure Microsoft and Google as identity providers and how to use the OAUTH2 components of the Oracle Digital Assistant dialog flow with them.
Identity providers authenticate users and return an authorization code for an application to access protected resources. With identity providers from Google and Microsoft, Oracle Digital Assistant...
article by Grant Ronald, November 2020 In a digital assistant skill the intent component returns confidence score when resolving the user input. Typically this is measured against a threshold to decide if the skill understands the user utterance or not. However there is a great conversational technique for when an intent is above the threshold but you choose to vary the response based on the confidence score. img src: pixabay.com This article explains how to implement varying bot responses based on intent confidence. A sample skill is provided for download as a starting point for using this practice in your own Oracle Digital Assistant implementations. READ FULL ARTICLE (PDF) Download Sample Sample Skill (ZIP) Related Content TechExchange: Displaying Multiple Answers For Frequently Asked Questions Using Regular Intents and NLP TechExchange: Building A Production Quality FAQ In An Hour With Oracle Digital Assistant TechExchange: All 2-Minutes Oracle Digital Assistant Tech Tip Videos on YouTube TechExchange: Use Entities To Build Powerful, Robust And Speech-Ready Action Menus
article by Grant Ronald, November 2020 In a digital assistant skill the intent component returns confidence score when resolving the user input. Typically this is measured against a threshold to...
Join Oracle’s Joe Huang and ComEd’s David Crone for a live webcast, as they discuss chatbot development and showcase demos to help automate engagement and provide seamless workflows between bots and humans.
Join Oracle’s Joe Huang and ComEd’s David Crone for a live webcast, as they discuss chatbot development and showcase demos to help automate engagement and provide seamless workflows between bots...
Messaging channels are limited in the number of action items that can be displayed as buttons or values in a select list or on cards. To address these limitations, you can implement pagination so that the user can browse larger lists of values in pre-defined chunks. This article explains how to implement pagination for card layouts and lists that are based on entity lists and array variables.
Messaging channels are limited in the number of action items that can be displayed as buttons or values in a select list or on cards. To address these limitations, you can implement pagination so...
Learn six ways the AI-powered Oracle Digital Assistant with pre-built app skills and the ability to customize can drive efficiency and productivity, improve customer and employee experience, and support digital transformation.
Learn six ways the AI-powered Oracle Digital Assistant with pre-built app skills and the ability to customize can drive efficiency and productivity, improve customer and employee experience, and...
On mobile devices in particular, scanning QR codes is a quick and easy way to navigate to a URL. When Oracle Digital Assistant runs on the web as a messenger using the Oracle Web SDK, users can scan a QR code to display a launch option or to save the information contained in a code. This article explains how to integrate QR code scanning using the on-device camera (or the camera attached to a device) from Oracle Digital Assistant.
On mobile devices in particular, scanning QR codes is a quick and easy way to navigate to a URL. When Oracle Digital Assistant runs on the web as a messenger using the Oracle Web SDK, users can scan a...
To do anything useful with a chatbot, you need to be able to access backend services from within a conversation. However, this is easier said than done if the service to access is deployed on-premise, if access is protected by a firewall or authentication code is required such that it cannot be accessed directly by a custom component in Oracle Digital Assistant. The Oracle API Gateway and Oracle Identity Cloud Service (IDCS) product in Oracle Cloud Infrastructure (OCI) are your way out of this without cutting corners or violating your backend service security requirements.
To do anything useful with a chatbot, you need to be able to access backend services from within a conversation. However, this is easier said than done if the service to access is deployed on-premise,...
Some functions in a digital assistant are typically required by many skills. An example of such functionality is user authentication, which should be performed once for a digital assistant, but must be triggered by all skills of a digital assistant. You could duplicate the code it takes to perform user authentication into each skill or look for a way to modularize the problem. A feature to modularize the problem is to have a skill calling a skill, which is a feature built-in to Oracle Digital Assistant. This article discusses the options and techniques skill developers have available and the practices to follow to implement shared functionality in a separate skill. It is important to mention that the intention of this article is not to say "you must use skill-to-skill conversation" all the time because often a custom component can also be used to wrap and share common functionality. Even copying shared code into several skills sometimes doesn't pose a burden or overhead. This article introduces skill-to-skill calls as a way to share functionality through modularization. Its one more tool in your tool box.
Some functions in a digital assistant are typically required by many skills. An example of such functionality is user authentication, which should be performed once for a digital assistant, but must...
Answer intent uses machine learning to understand a user question and return a single answer. The QnA framework used earlier used elastic search instead, which didn't offer the same level of confidence as NLP. For this reason, the QnA framework always showed several possible question / answer pairs that would match a user message. Although the answer to a question that is returned by answer intents has a high confidence, some customers have expressed their preference for the "old" user interface, which lists multiple question-answer pairs if the runner-up answers resolve in a configurable range of confidence. This article explains how to use NLP and regular intents to resolve answers the "new way" while displaying it the "old way". The target audience for this article are Oracle Digital Assistant developers who used the QnA feature available in 19.x version of Oracle Digital Assistant and who now move to using answer intents in Oracle Digital Assistant on Oracle Cloud Infrastructure (ODA 20.x and later).
Answer intent uses machine learning to understand a user question and return a single answer. The QnA framework used earlier used elastic search instead, which didn't offer the same level...
In this article I explain the concept of model-driven conversations using entities in Oracle Digital Assistant and provide a sample to proof the concept.
In this article I explain the concept of model-driven conversations using entities in Oracle Digital Assistant and provide a sample to proof the concept.
Kotlin, which was originally developed by JetBrains, is an open source programming language compatible with Java and therefore the Android Java SDK. This article explain how you build Android mobile applications that integrate Oracle Digital Assistant chatbots using Android Studio and Kotlin.
Kotlin, which was originally developed by JetBrains, is an open source programming language compatible with Java and therefore the Android Java SDK. This article explain how you build Android mobile...
article by Frank Nimphius, September 2020 In an earlier article on Oracle TechExchange, I explained how to implement a feedback feature for answers to frequently asked questions. In the article I used a custom component that actually handled the feedback interaction with a user. In this article I explain the same use case using BotML for handling the feedback conversation (or any other follow-up conversation needed). A benefit of the approach explained in the article is that it is easier to implement for developers that are new to Oracle Digital Assistant and custom components. Where the previous solution required a complex - though interesting - custom component to be developed, this solution goes with pure BotML. As with many article on Oracle techExchange, there are a couple of things you will learn Formatting messages using an Apache FreeMarker array Defining answers as regular intents Adding icons to Common Response component actions Using a delegate object on the Oracle Web SDK Using CSS to customize the Oracle Web SDK rendering The images below show the final product of this article. As an example I used frequently asked questions about Oracle Digital Assistant. The "thumb up" and "thumb down" icons are actions that a user can use to provide feedback. If the user does not want to provide feedback, then she could continue the conversation with a next message. The design goal of this implementation is to not be annoying by forcing the user to provide feedback. Providing feedback is made optional. Disclaimer: Dependent on when you read this articles, the answers to questions in the screenshots may have changed or been updated. The user is free to choose whether she wants to provide feedback or not. If she wants, then she would press one of the provided icons (which you choose how they look). Otherwise she would simply send another message that will be passed to the intent engine. The image above shows a conversation the user continued without providing feedback. The conversation below then had the user clicking the thumbs-up button. The sample for this article prints a message in response to the user selected action button. In your production bot, the selected action should lead to a custom component call that then logs the user feedback so you can improve your chatbot. The BotML (YAML) Code All code in this sample is in BotML. Shown in the image below is the System.Intent component state. The System.Intent component state has an actions transition defined for all intents that are regular intents that start a conversation and no answers to a question. The example only has the unresolvedIntent defined for this. All other regular intents that get resolved are considered an answer to a question being asked by a user. Those intents follow the next transition to the prepareAnswerAndFeedback state. For an explanation of what answer intents are and when to use them compared to when to use regular intents for answering questions, see this article. The state shown in the image below defines an array using Apache FreeMarker expressions. The array is saved in the answerWithFeedback variable and contains items with text added and blank items. The blank items mark the end of a paragraph. So basically I am formatting a message into paragraphs without using markup or encoded line-break characters, The answer to a question is displayed by a System.CommonResponse component. The System.CommonResponse component iterates over the array that got created in the previous dialog flow step to print the message. For this it has the iteratorVariable pointing to the answerWithFeedback variable and its separateBubbles property set to false. This way multiple lines of the array get printed in a single speech bubble. Two actions Ok and Bad are used for the user to provide feedback. The action items use resource bundle strings for their labels. Notice how the labels are printed as a single blank character for when the message channel is the Oracle Web SDK (websdk). This way the label is used by all messengers that e.g. don't support icons on action items and buttons. If you use a messenger that does support icons, for which you don't want the labels to show, you could add the messenger channel to the expression that checks whether or not the label should be printed as a blank character. In the image below, I use a reference to pixabay.com for the thuumb-up and thumb-down icons. In your production environment you should use your own images that you store on an Internet facing server or a content delivery network (CDN). Notice the three actions transitions defined for the System.CommonResponse component state. negativeFeedback - the transition is followed when the user presses the "thumb-down" action positiveFeedback - the transition is followed when the user presses the "thumb-up" action textReceived - the transition followed when the user doesn't select one of the buttons but types a new test message The dialog flow state shown in the image below handle the three transition types. For the feedback options you replace the System.Output components with custom components that report the user feedback to a backend system for you to improve the answers if needed. The handleTextReceived dialog flow state prints a confirmation message to then direct the flow to the System.Intent component state to pass it to the intent engine. Intents and Resource Bundles The answers to print response to a question are saved in resource bundles, which means they can be translated if needed. The intent names are unique and can be used as the key name for a resource bundle string. The image below shows a resource bundle definition. Note that the resource bundle strings are created in the User-Defined tab. The answer for an intent is accessed when creating the array for the formatted message. To access the resource bundle content for an intent you use ${rb(iResult.value.intentMatches.summary[0].intent)}. Note: "rb" is the name of the variable of type "resourcebundle" that you need to define in your dialog flow. "iResult" is the name of the "nlpresult" variable and is also referenced from the System.Intent component. Oracle Web SDK client configuration Two settings are required for the Oracle Web SDK to work as shown in the initial set of screenshots. settings.js The settings.js file that holds the web SDK configurations in the sample provided with the Oracle Web SDK download needs a delegate object that responds to the postback message. The postback message is sent when a user presses the thumb-up and thumb-down buttons. The beforePostbackSend function highlighted in the image below allows you to modify postback messages. In this example, it looks for answers that have a single blank character. If so, the function does not send the message to the server but re-routes it to Bots.sendMessage() as a hidden message. Note: What the delegate object function in the image above does is to hide a blank message bubble. The blank message bubble would otherwise displayed when a user selects the thumb-up or thumb-down button. The function suppresses this empty bubble by sending a hidden user message. This function is not needed if you wanted to display a label and an icon. (see: "Alternative solution" later in this article) index.html settings You could run the sample without changing the index.html file. All changes that are required are those in the settings.js file. Without the changes in the index.html file, the buttons with the thumb-up and thumb-down actions will be rendered in a vertical orientation. The style information show below change the icons so they can be laid out next to each other as shown in the image at the beginning of the article. Alternative solution Alternative to displaying buttons just with a label you can display the buttons with an icon and a label. In this case you don't use the Apache FreeMarker expression in the showAnswer state to conditionally set the label to a blank character. Instead you always add the label as read from the resource bundle. Also, the beforePostbackSend() function in the settings.js file can be left empty because no special handling is required. Last, but not least, the index.html does not require any styling as you would need the buttons to be vertically aligned to allow the label to be placed next to the icon Downloads Sample Skill Import the skill Train the model Run the sample in the integrated conversation tester. Start by "what is an API call" and then "tell me about pricing" Configure your settings.js and (optional) index.html file of the web SDK implementation (sample) as explained in this article Run sample in web messenger Related Content Oracle Native Client SDK References & Downloads Oracle Web SDK product documentation (all you need to know) TechExchange: Use font awesome and a custom component to create an icon menu for the Oracle Web SDK TechExchange: Oracle Digital Assistant Web SDK customization and programming examples TechExchange: How to respond to user inactivity using the Oracle Web SDK messenger. An implementation strategy TechExchange: What Is Best for Frequently Asked Questions In Oracle Digital Assistant? Regular or Answer Intents?
article by Frank Nimphius, September 2020 In an earlier article on Oracle TechExchange, I explained how to implement a feedback feature for answers to frequently asked questions. In the article I used...
The Oracle Bots Node SDK provides a complete environment for creating custom components. In this article I explain the use of nodemon to automate the restart of the Oracle Bots Node SDK integrated Node server during debugging and local testing.
The Oracle Bots Node SDK provides a complete environment for creating custom components. In this article I explain the use of nodemon to automate the restart of the Oracle Bots Node SDK integrated...
If you need to view the Insights data for a Digital Assistant and at the same time also view the events for its constituent skills, you can export the data to a CSV file and create your own reports from there. You also can automate the export, which gives you a way to monitor how well an Oracle Digital Assistant is functioning at certain time intervals, for example. You do this making by REST calls to the Insights for Skills API from a script, as described in this topic.
If you need to view the Insights data for a Digital Assistant and at the same time also view the events for its constituent skills, you can export the data to a CSV file and create your own...
Sometimes small nuggets turn out to be more valuable than the bigger ones. Hope this is one of those little tips that you will enjoy and use. So in this quick tip I explain how you can add character shortcuts to values lists in Oracle Digital Assistant.
Sometimes small nuggets turn out to be more valuable than the bigger ones. Hope this is one of those little tips that you will enjoy and use. So in this quick tip I explain how you can add character...
Oracle Digital Assistant lives in the cloud where it uses universal time (UTC) for all data operations. Dependent to where you live in this world, the timezone offset of your local time compared to UTC varies. For Germany, where I am based in, the timezone offset is 2 hours that Germany is ahead of UTC (or 7200000 ms). UTC is a common date and time reference used in many applications and software products. However, the user local time is often needed, for example if there are deadlines like opening hours to enforce and check. This article explains how you can obtain the local time in Oracle Digital Assistant using the Oracle Web SDK.
Oracle Digital Assistant lives in the cloud where it uses universal time (UTC) for all data operations. Dependent to where you live in this world, the timezone offset of your local time compared to...
Answer intent in Oracle Digital Assistant uses Trainer Tm, a machine learning model, to understand how users ask for a particular answer. Unlike other systems that map an answer to one or more questions in order to retrieve the answer, the machine learning based system learns from examples (utterances) allowing it to produce answer with high confidence. Also, by using Trainer Tm as the machine learning model in Oracle Digital Assistant, answer intents use the same optimized algorithm as regular intents, which leads to the question of what is better to use for FAQ, answer intents or regular intents. Before going into any details, let me share the answer ...
Answer intent in Oracle Digital Assistant uses Trainer Tm, a machine learning model, to understand how users ask for a particular answer. Unlike other systems that map an answer to one or more...
Value-list entities in Oracle Digital Assistant are limited in the number of values they can hold even if they are created as dynamic entities. Reality is that customers look for a way to extract entities from a large set of data values that easily may be in the hundreds of thousand records. In this article we explain how this requirement can be achieved with the Oracle database and Oracle Data Rest Services (ORDS).
Value-list entities in Oracle Digital Assistant are limited in the number of values they can hold even if they are created as dynamic entities. Reality is that customers look for a way to...
Answer intents in Oracle Digital Assistant skills integrate frequently asked questions to a user – bot conversation. Frequently asked questions is neither a new concept nor is it a chatbot specific concept, which means that many resources exist on the web for chatbot developers to use as a starting point. In this article we will show how you can use Node.js to scrape existing frequently asked questions from a website and save it in a format that you then can import as answer intents to an Oracle Digital Assistant skill
Answer intents in Oracle Digital Assistant skills integrate frequently asked questions to a user – bot conversation. Frequently asked questions is neither a new concept nor is it a chatbot specific...
This article explains how you can display a calendar widget for an input text prompt using the Oracle Web SDK. The solution uses a resource bundle entry to return HTML markup for the calendar. The Oracle Web SDK JavaScript API is used to send the selected date information back to the skill to update the underlying variable.
This article explains how you can display a calendar widget for an input text prompt using the Oracle Web SDK. The solution uses a resource bundle entry to return HTML markup for the calendar....
New conversational AI capabilities enable customers to interact via channel of their of choice across the enterprise By Suhas Uliyar, Vice President, AI and Digital Assistant, Oracle Call them chatbots, virtual assistants, or simply bots. Whatever the name, AI-powered conversational interfaces are becoming mainstream staples for consumers and enterprise alike. In fact, leading analyst firm Gartner believes that “by 2022, 70 percent of white collar workers will interact with conversational platforms on a daily basis.”1 When Oracle unveiled its chatbot platform at OpenWorld 2016, it helped set the pace for automation in the enterprise. Automation is a means for increasing scale and efficiency and accelerating efforts to digital – and considering that recent global events and challenges have forced a restructuring of how we work, AI and digital assistants are fundamental to that transformation. Oracle Digital Assistant has been solving the needs of the enterprise since 2016, and analyst firm Omdia recently noted, “By offering full integration with its software as a service (SaaS) applications, Oracle made it exponentially easier for end users to command and control the capabilities of these applications.”2 Today we are announcing a new set of updates to enhance the multilingual capabilities of Oracle Digital Assistant. These features are helping customers such as Loyola University of Chicago and communications startup Yokeru provide their users with the information they need through the channel of their choice. The new features include: New Deep Learning Models: Customers can leverage the power of Oracle Cloud Infrastructure’s native GPU and CPU architecture to improve the ability to distinguish nuances in customer queries, such as: Similar vs. Unrelated phrases: “Can I get some flatbread?” vs. “Can I get some flowers?” Additional context within long sentences: “I have a large party later this afternoon, and I have several guests coming over. I’d like to order some large pizzas.” Closely related sentences: “I want to cancel my order” vs. “Why was my order cancelled?” Distinguishing names that sound like locations: “When will Devon Arlington come to Stratford-upon-Avon?” or “Find Paris Hilton from the Paris office” Distinguishing number vs. currency: “Lunch with 3 for 60 bucks” Colloquial terms: “I have a budget for 20M bucks” (colloquial usage) Currency formats: “Please add a tip for 2,50 €” (different currency formats) Versatile Data Shapes: Customers can use both large as well as small datasets to train their skills without concern that an imbalance would impact the NLU performance. Custom Domain Vocabulary: Customers can expand the assistants understanding to their own custom domain vocabulary. Data Manufacturing Pipeline: Data is critical to achieving high accuracy in deep learning models. The data manufacturing pipeline provides a cohesive set of tools providing all stakeholders, from technical to line-of-business, the ability to generate, refine, curate, and evaluate conversational data. Combining human sourced intelligence with advanced machine learning delivers better, more nuanced results that only humans can offer. Native Multilingual: With Native Multilingual NLU, customers can add training data in different languages, eliminating the need for external translation services to understand users who do not speak English – and customers can provide multilingual outputs directly using resource bundles. Key Phrase word clouds and Multilingual retrainer: Digital Assistant now features intent and key phrase clouds to help business analysts quickly understand common themes of engagements. The business analyst can quickly drill down into the details of a specific phrase. Since its introduction, Oracle Digital Assistant has offered valuable features and capabilities, including: Digital assistants for FAQs: When considering B2C call centers and B2E help desk, it’s easy to see how a bot can field common incoming questions and requests, providing customers the satisfaction of an instant response 24/7, while offloading staffing resources to work on other tasks. Automated bot-to-agent transfer: Oracle Digital Assistant offers prebuilt integration to Oracle Service Cloud, offering a seamless experience for customers during handoff to a live agent, while providing agents historical information about the recent customer engagement. Enterprise assistant skills: From cloud applications such as Oracle Cloud ERP, Oracle Cloud HCM, and Oracle Cloud CX to on-premises applications like PeopleSoft and JD Edwards, Oracle teams have developed prebuilt assistant skills and templates to meet customer demand. Popular conversational channels: With support for well-known smart speakers to popular text-based channels including SMS, WhatsApp, WeChat, Facebook Messenger – plus collaboration tools like Slack and Teams – Oracle Digital Assistant is ready. Oracle Voice: Oracle invested in its own AI-powered voice capabilities bringing together an end-to-end, secure, and private solution (GDPR, PII), while providing a customizable framework to support terminology that is unique to different industries and businesses. One digital assistant: Oracle Digital Assistant can unify all assistant skills into one digital assistant, making it easy for users to interact with multiple systems from one conversation. Conversations are contextual and personalized to individual users and roles. Chatbots and conversational AI are quickly becoming integral tools for enterprise communication and information sharing, in addition to automating traditionally manual tasks. With the new updates to Oracle Digital Assistant, we are delivering the innovative features users are seeking – such as multilingual capabilities – to further weave digital assistants into the fabric of the enterprise. As a result, customers are able to offer automation across their entire organization, using a highly secure AI-powered voice assistant that stores their business’ sensitive data in Oracle’s second generation cloud infrastructure. Customer Quotes Loyola University of Chicago “With more than 17,000 students demanding more timely, more modern engagement, we established a five year plan to advance the Loyola Digital Experience (LDE) strategy. The Transformational Theme of LDE includes leveraging artificial intelligence (AI) and deployment of ‘LUie,’ an AI digital assistant running on the Oracle Digital Assistant with automation and integration from IntraSee,” said Susan M. Malisch, VP & CIO, Loyola University of Chicago. “LUie currently provides hundreds of answers to common questions. Early results have been great with initial accuracy rates of 86%. Feedback has been encouraging with 91% positive comments and we are now looking to broaden LUie to handle even more questions for more audiences. We’re excited about LUie’s future potential.” Yokeru “Throughout the COVID-19 pandemic, millions self-isolated to protect their health and the wellbeing of the community – but for many, the extended period of self-isolation resulted in negative impacts on mental and physical health. In response, Yokeru developed an AI-enabled call centre to contact and identify vulnerable members of the community using the phone line,” said Monty Alexander, CEO, Yokeru. “Through Oracle Digital Assistant and Oracle Autonomous Database, we were able to rapidly develop this system to enable the London Borough of Hammersmith and Fulham to monitor 9,000 Shielded households – resulting in the elimination of over 100 working days of traditional call centre time. The flexibility of Oracle's software on the underlying Oracle Cloud Infrastructure is incredible, and we’re looking forward to understanding how we can develop this technology to support our community in the future.” State of Oklahoma “In eight days Oracle built and delivered two applications,” said Jerry Moore, CIO, State of Oklahoma. “Not only was this an impressive feat, but showed Oracle’s commitment to helping us and our communities run more smoothly in this difficult time.” To learn more, check out What's New in the Oracle Digital Assistant documentation. 1Smarter with Gartner, “Chatbots Will Appeal to Modern Workers,” 31 July 2019, https://www.gartner.com/smarterwithgartner/chatbots-will-appeal-to-modern-workers/ 2Omdia, “Analyst Commentary: Oracle Digital Assistant democratizing Oracle apps,” Mark Beccue, Q3 2020, https://tractica.omdia.com/research/analyst-commentary-oracle-digital-assistant-democratizing-oracle-apps/
New conversational AI capabilities enable customers to interact via channel of their of choice across the enterprise By Suhas Uliyar, Vice President, AI and Digital Assistant, Oracle Call them...
According to the Merriam Webster, democratize means to “To make (something) available to all people” and that’s exactly what Oracle Digital Assistant is about – making applications more accessible all people, conversationally easy. I’ve borrowed this blog’s title from the Omdia analyst, Mark Beccue’s commentary “Oracle Digital Assistant democratizing Oracle apps” and as you will see, it’s apropos. Historically, the internet came about commercially in the late 90s, and made the world’s information available to anyone w/ a PC. In 2007, Apple introduced the iPhone and effectively put a computer in all our modern-day pockets. More recently, cheap compute power, and effectively infinite cloud storage brought about breakthroughs in artificial intelligence, and thus, the advent of sophisticated conversational AI. Now we don’t have to navigate to a website, or download, install and figure out a mobile app; more and more commonly, we simply ask, to get what we need. To quote from the analyst’s commentary: “By offering full integration with its software as a service (SaaS) applications, Oracle made it exponentially easier for end users to command and control the capabilities of these applications.” This doesn't mean that we will no longer need the full power of the web or mobile apps that SaaS apps offer. No, we’re far from that. But for the non-power or infrequent users, conversational interfaces are more approachable. And even power users can benefit from ready access and simplicity of a conversational interface. Do most people need or want to learn a procurement system to order a new computer? Relearn the HR system’s benefits procedures to update a small change to the family’s health plan? Or become a digital marketing expert to check on the success/status of a campaign? Probably not, or at least, we can admit that having to do so creates frictions for employee productivity. Conversational interfaces are here today. More and more, you’ll simply ask your personal digital assistant and carry on with your day. That’s the topic of the Omdia analyst commentary: “Oracle Digital Assistant democratizing Oracle apps,” and if you’re interested, I’d courage you to check it out here. To learn more about Oracle Digital Assistant, start here. FYI: For the latest on Oracle Digital Assistant, watch our webcast live/replay: “Innovations update for Oracle Digital Assistant, conversational-AI for 2020 and beyond” hosted by Suhas Uliyar, Vice President, Digital Assistant, Cognitive AI and Integration Cloud, Oracle and Serdar Canbek, Senior Manager, Operations reporting and Analytics, Office Depot, as they discuss the latest innovation, and real-world customer results that Oracle Digital Assistant offers.
According to the Merriam Webster, democratize means to “To make (something) available to all people” and that’s exactly what Oracle Digital Assistant is about – making applications more accessible...
#outlook a { padding: 0; } body { width: 100% !important; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; margin: 20px 0px 0px 0px; padding: 0; background-color: #FFFFFF; -webkit-font-smoothing: antialiased; } img { outline: none; text-decoration: none; border: none; -ms-interpolation-mode: bicubic; } a img { border: none; } a.anchorCls { color: #00758F !important; text-decoration: underline !important; font-family: Arial, Helvetica, sans-serif; } table td { border-collapse: collapse; } a:link, span.MsoHyperlink, span.MsoHyperlinkFollowed { color: inherit; text-decoration: none; } .line-sp a, .line-sp a:link, .line-sp a:visited { color: inherit; text-decoration: none; } td a, td a:link, td a:visited { color: inherit; text-decoration: none; } @media only screen and (max-width: 540px) { .vb-fullwidth { width: 100% !important; height: auto !important; } .devicewidthinner { text-align: center!important; padding-right: 0px !important; width: 100% !important; padding-left: 0px !important; } .devicewidth { text-align: center!important; padding-right: 0px !important; width: 100% !important; padding-left: 0px !important; } .fs22 { font-size: 22px !important; } .fs14 { font-size: 14px !important; } .pad-bsp20 { padding-bottom: 20px !important; } .pad-bsp30 { padding-bottom: 30px !important; } .pad-bsp15 { padding-bottom: 15px !important; } .pad-bsp10 { padding-bottom: 10px !important; } .pad-bsp0 { padding-bottom: 0px !important; } .no-bdr { border: none !important; } .pad-lr10 { padding-left: 10px !important; padding-right: 10px !important; } .pad-tb30 { padding-top: 30px !important; padding-bottom: 30px !important; } .pad-tb20 { padding-top: 20px !important; padding-bottom: 20px !important; } .pad-tsp20 { padding-top: 20px !important; } .pad-tsp10 { padding-top: 10px !important; } .pad-tsp15 { padding-top: 15px !important; } .pad-tsp0 { padding-top: 0px !important; } .mb10 { margin-bottom: 10px !important; } .mar-b20 { margin-bottom: 20px !important; } .mar-b30 { margin-bottom: 30px !important; } .mar-b15 { margin-bottom: 15px !important; } .mar-b10 { margin-bottom: 10px !important; } .mar-t20 { margin-top: 20px !important; } .mar-t30 { margin-top: 30px !important; } .mar-t15 { margin-top: 15px !important; } .mar-t10 { margin-top: 10px !important; } .box-cta-arrow { width: 20px !important; height: auto !important; } .box-cta-txt { font-size: 12px !important; padding-right: 8px !important; } .box-cta { padding-top: 9px !important; padding-bottom: 9px !important; padding-right: 16px !important; padding-left: 15px !important; width: auto !important; } .text-cta { font-size: 14px !important; padding-right: 8px !important; } .bdr-cta { padding-top: 9px !important; padding-bottom: 9px !important; padding-right: 14px !important; padding-left: 14px !important; width: auto !important; } .cb-btn-left { text-align: left !important; margin: auto !important; } .cb-hide { display: none !important; } .cb-r-sp { padding-right: 0px !important; } .cb-oracle-logo { width: 120px !important; height: auto !important; } .cb-logo-space { padding-left: 10px; padding-right: 10px; } .prd-logo { width: 145px !important; } .ico30 { width: 30px !important; height: 30px !important; } .icon55 { width: 55px !important; height: 55px !important; } .ct-img-tbl { float: left; width: 55px!important; } .ct-text-tbl { float: left; width: 117px!important; margin-left: 30px!important; } .chat-text-sp { vertical-align: middle !important; text-align: left !important; } .cb-middle { margin: 0 auto !important; } .cb-center { padding-right: 0px !important; text-align: center !important; } .cb-btn-ctr { text-align: center !important; margin: auto !important; } .cb-autoheight { height: auto !important; } .txt-top { display: none; } .img-top { display: block !important; max-height: none !important; } .cb-signature { width: 55% !important; height: auto !important; } .float-l { float: left !important; } .height0 { height: 0px !important; } .c-left { text-align: left !important; } .ftr-devicewidth { text-align: center!important; padding-right: 0px !important; width: 100% !important; padding-left: 0px !important; } .rs-ftr { margin: 0px !important; padding-left: 0px !important; width: 100% !important; padding-top: 0px !important; } .rs-ftr td { font-size: 12px !important; } .rs-ftr-logo { width: 260px; height: auto; } .rs-ftr-lr { padding-left: 15px !important; padding-right: 15px !important; } .line-sp { line-height: 20px; } .tech-logo { width: 120px !important; height: auto !important; } .ar-cb-btn-left { text-align: right !important; float: right; } .ar-c-left { text-align: right !important; } .ar-cb-center { padding-left: 0px !important; text-align: center !important; } .ar-cb-r-sp { padding-left: 0px !important; } .section-ctr { text-align: center !important; margin: auto !important; } } // akam-sw.js install script version 1.3.3 "serviceWorker"in navigator&&"find"in[]&&function(){var e=new Promise(function(e){"complete"===document.readyState||!1?e():(window.addEventListener("load",function(){e()}),setTimeout(function(){"complete"!==document.readyState&&e()},1e4))}),n=window.akamServiceWorkerInvoked,r="1.3.3";if(n)aka3pmLog("akam-setup already invoked");else{window.akamServiceWorkerInvoked=!0,window.aka3pmLog=function(){window.akamServiceWorkerDebug&&console.log.apply(console,arguments)};function o(e){(window.BOOMR_mq=window.BOOMR_mq||[]).push(["addVar",{"sm.sw.s":e,"sm.sw.v":r}])}var i="/akam-sw.js",a=new Map;navigator.serviceWorker.addEventListener("message",function(e){var n,r,o=e.data;if(o.isAka3pm)if(o.command){var i=(n=o.command,(r=a.get(n))&&r.length>0?r.shift():null);i&&i(e.data.response)}else if(o.commandToClient)switch(o.commandToClient){case"enableDebug":window.akamServiceWorkerDebug||(window.akamServiceWorkerDebug=!0,aka3pmLog("Setup script debug enabled via service worker message"),p());break;case"boomerangMQ":o.payload&&(window.BOOMR_mq=window.BOOMR_mq||[]).push(o.payload)}aka3pmLog("akam-sw message: "+JSON.stringify(e.data))});var t=function(e){return new Promise(function(n){var r,o;r=e.command,o=n,a.has(r)||a.set(r,[]),a.get(r).push(o),navigator.serviceWorker.controller&&(e.isAka3pm=!0,navigator.serviceWorker.controller.postMessage(e))})},c=function(e){return t({command:"navTiming",navTiming:e})},s=null,m={},d=function(){var e=i;return s&&(e+="?othersw="+encodeURIComponent(s)),function(e,n){return new Promise(function(r,i){aka3pmLog("Registering service worker with URL: "+e),navigator.serviceWorker.register(e,n).then(function(e){aka3pmLog("ServiceWorker registration successful with scope: ",e.scope),r(e),o(1)}).catch(function(e){aka3pmLog("ServiceWorker registration failed: ",e),o(0),i(e)})})}(e,m)},g=ServiceWorkerContainer.prototype.register;if(ServiceWorkerContainer.prototype.register=function(n,r){return n.includes(i)?g.call(this,n,r):(aka3pmLog("Overriding registration of service worker for: "+n),s=new URL(n,window.location.href),m=r,navigator.serviceWorker.controller?new Promise(function(n,r){var o=navigator.serviceWorker.controller.scriptURL;if(o.includes(i)){var a=encodeURIComponent(s);o.includes(a)?(aka3pmLog("Cancelling registration as we already integrate other SW: "+s),navigator.serviceWorker.getRegistration().then(function(e){n(e)})):e.then(function(){aka3pmLog("Unregistering existing 3pm service worker"),navigator.serviceWorker.getRegistration().then(function(e){e.unregister().then(function(){return d()}).then(function(e){n(e)}).catch(function(e){r(e)})})})}else aka3pmLog("Cancelling registration as we already have akam-sw.js installed"),navigator.serviceWorker.getRegistration().then(function(e){n(e)})}):g.call(this,n,r))},navigator.serviceWorker.controller){var u=navigator.serviceWorker.controller.scriptURL;u.includes("/akam-sw.js")||u.includes("/akam-sw-preprod.js")||u.includes("/threepm-sw.js")||(aka3pmLog("Detected existing service worker. Removing and re-adding inside akam-sw.js"),s=new URL(u,window.location.href),e.then(function(){navigator.serviceWorker.getRegistration().then(function(e){m={scope:e.scope},e.unregister(),d()})}))}else e.then(function(){window.akamServiceWorkerPreprod&&(i="/akam-sw-preprod.js"),d()});if(window.performance){var w=window.performance.timing,l=w.responseEnd-w.responseStart;c(l)}e.then(function(){t({command:"pageLoad"})});var k=!1;function p(){window.akamServiceWorkerDebug&&!k&&(k=!0,aka3pmLog("Initializing debug functions at window scope"),window.aka3pmInjectSwPolicy=function(e){return t({command:"updatePolicy",policy:e})},window.aka3pmDisableInjectedPolicy=function(){return t({command:"disableInjectedPolicy"})},window.aka3pmDeleteInjectedPolicy=function(){return t({command:"deleteInjectedPolicy"})},window.aka3pmGetStateAsync=function(){return t({command:"getState"})},window.aka3pmDumpState=function(){aka3pmGetStateAsync().then(function(e){aka3pmLog(JSON.stringify(e,null,"\t"))})},window.aka3pmInjectTiming=function(e){return c(e)},window.aka3pmUpdatePolicyFromNetwork=function(){return t({command:"pullPolicyFromNetwork"})})}p()}}();(window.BOOMR_mq=window.BOOMR_mq||[]).push(["addVar",{"rua.upush":"false","rua.cpush":"false","rua.upre":"false","rua.cpre":"false","rua.uprl":"false","rua.cprl":"false","rua.cprf":"false","rua.trans":"SJ-c90634b4-7282-4691-958a-4dee947c3be5","rua.cook":"true","rua.ims":"false","rua.ufprl":"false","rua.cfprl":"true"}]);!function(e){var n="https://s.go-mpulse.net/boomerang/";if("False"=="True")e.BOOMR_config=e.BOOMR_config||{},e.BOOMR_config.PageParams=e.BOOMR_config.PageParams||{},e.BOOMR_config.PageParams.pci=!0,n="https://s2.go-mpulse.net/boomerang/";if(window.BOOMR_API_key="DXNLE-YBWWY-AR74T-WMD99-77VRA",function(){function e(){if(!o){var e=document.createElement("script");e.id="boomr-scr-as",e.src=window.BOOMR.url,e.async=!0,i.parentNode.appendChild(e),o=!0}}function t(e){o=!0;var n,t,a,r,d=document,O=window;if(window.BOOMR.snippetMethod=e?"if":"i",t=function(e,n){var t=d.createElement("script");t.id=n||"boomr-if-as",t.src=window.BOOMR.url,BOOMR_lstart=(new Date).getTime(),e=e||d.body,e.appendChild(t)},!window.addEventListener&&window.attachEvent&&navigator.userAgent.match(/MSIE [67]\./))return window.BOOMR.snippetMethod="s",void t(i.parentNode,"boomr-async");a=document.createElement("IFRAME"),a.src="about:blank",a.title="",a.role="presentation",a.loading="eager",r=(a.frameElement||a).style,r.width=0,r.height=0,r.border=0,r.display="none",i.parentNode.appendChild(a);try{O=a.contentWindow,d=O.document.open()}catch(c){n=document.domain,a.src="javascript:var d=document.open();d.domain='"+n+"';void(0);",O=a.contentWindow,d=O.document.open()}if(n)d._boomrl=function(){this.domain=n,t()},d.write("");else if(O._boomrl=function(){t()},O.addEventListener)O.addEventListener("load",O._boomrl,!1);else if(O.attachEvent)O.attachEvent("onload",O._boomrl);d.close()}function a(e){window.BOOMR_onload=e&&e.timeStamp||(new Date).getTime()}if(!window.BOOMR||!window.BOOMR.version&&!window.BOOMR.snippetExecuted){window.BOOMR=window.BOOMR||{},window.BOOMR.snippetStart=(new Date).getTime(),window.BOOMR.snippetExecuted=!0,window.BOOMR.snippetVersion=12,window.BOOMR.url=n+"DXNLE-YBWWY-AR74T-WMD99-77VRA";var i=document.currentScript||document.getElementsByTagName("script")[0],o=!1,r=document.createElement("link");if(r.relList&&"function"==typeof r.relList.supports&&r.relList.supports("preload")&&"as"in r)window.BOOMR.snippetMethod="p",r.href=window.BOOMR.url,r.rel="preload",r.as="script",r.addEventListener("load",e),r.addEventListener("error",function(){t(!0)}),setTimeout(function(){if(!o)t(!0)},3e3),BOOMR_lstart=(new Date).getTime(),i.parentNode.appendChild(r);else t(!1);if(window.addEventListener)window.addEventListener("load",a,!1);else if(window.attachEvent)window.attachEvent("onload",a)}}(),"".length>0)if(e&&"performance"in e&&e.performance&&"function"==typeof e.performance.setResourceTimingBufferSize)e.performance.setResourceTimingBufferSize();!function(){if(BOOMR=e.BOOMR||{},BOOMR.plugins=BOOMR.plugins||{},!BOOMR.plugins.AK){var n="true"=="true"?1:0,t="cookiepresent",a="vu7tgtqxftmvyxyxa6ya-f-b1f57e8d1-clientnsv4-s.akamaihd.net",i={"ak.v":"27","ak.cp":"82485","ak.ai":parseInt("604074",10),"ak.ol":"0","ak.cr":7,"ak.ipv":4,"ak.proto":"h2","ak.rid":"ba7b0f0","ak.r":36216,"ak.a2":n,"ak.m":"dscx","ak.n":"essl","ak.bpcip":"173.63.51.0","ak.cport":52761,"ak.gh":"23.59.250.132","ak.quicv":"","ak.tlsv":"tls1.3","ak.0rtt":"","ak.csrc":"-","ak.acc":"","ak.t":"1595344816","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==zd0IMQmj6JT8HRjuHs+TFFiXBwDhGsfa3Sk20ZcobgHB9G3RWm5GqgUUA89M6rSoS/4Mt9HIhaZoFYAHcpA5Mr5hUVlCfj7u0fq9S00WKg1W2j29EujJccYX4NpbYpNUl7F50lIC+b32em6rZSqbS6KVyTHOPUJ53sZBwDg1+eLCG/zPB7CJkNvgBxQIeHswwBW11FeSox3tuA3VcR6UBF+F7MroZgWvB3JPrsqvmc2QZSe3Ly2k866IpCXu150CTWlPHXOhz/72j5+9LxNdj0L61u449Bu/ym9uk4KHBs2+hZTgr2OJLigpMeGHKu50ksXgBA9OaDZ4v87l08l+zniJoymWC1Y/HOYs4CR11O7ux9GrUnM3qCVpFZZa3UgUCgbFpT9v2sKiPTjf3pzd5dS5W4vstnEvtPEMF+CTu6k=","ak.pv":"102"};if(""!==t)i["ak.ruds"]=t;var o={i:!1,av:function(n){var t="http.initiator";if(n&&(!n[t]||"spa_hard"===n[t]))i["ak.feo"]=void 0!==e.aFeoApplied?1:0,BOOMR.addVar(i)},rv:function(){var e=["ak.bpcip","ak.cport","ak.cr","ak.csrc","ak.gh","ak.ipv","ak.m","ak.n","ak.ol","ak.proto","ak.quicv","ak.tlsv","ak.0rtt","ak.r","ak.acc","ak.t"];BOOMR.removeVar(e)}};BOOMR.plugins.AK={akVars:i,akDNSPreFetchDomain:a,init:function(){if(!o.i){var e=BOOMR.subscribe;e("before_beacon",o.av,null,null),e("onbeacon",o.rv,null,null),o.i=!0}return this},is_complete:function(){return!0}}}}()}(window); Innovations update for Oracle Digital Assistant The conversational-AI for 2020 and beyond July 28, 2020 10 a.m. PT/1 p.m. ET Register Now Office Depot elevates customer service with Oracle Digital Assistant In these unprecedented times, organizations are looking for ways to maintain communication and engagement with their customers, employees and citizens, while maintaining business continuity. Intelligent digital assistants can support scale and broaden reach for IT helpdesk and customer service while providing easy to use conversational access to key self-serve functionality. Join this webcast to learn how the latest innovations in Oracle Digital Assistant enable further democratization of information, securely and intelligently. Hear directly from Oracle executives and see first-hand Office Depot’s digital assistant in action as it elevates customer service and drives convenience and personalized engagement for their e-commerce customers. Register Now Featured Speakers Suhas Uliyar Vice President, Digital Assistant, Cognitive AI and Integration Cloud, Oracle Serdar Canbek Senior Manager, Operations reporting and Analytics, Office Depot Terms of Use and Privacy | Subscriptions | Unsubscribe | Contact Us | Copyright © 2020, Oracle and/or its affiliates. All rights reserved. Oracle Corporation - Worldwide Headquarters, 500 Oracle Parkway, OPL - E-mail Services, Redwood Shores, CA 94065, United States
Innovations update for Oracle Digital AssistantThe conversational-AI for 2020 and beyond July 28, 202010 a.m. PT/1 p.m. ET Register Now Office Depot elevates customer service with Oracle Digital...
The Oracle Web SDK provides extensive configuration and customization options using properties, event handlers, and delegates. This article introduces the features built into the Oracle Web SDK and provides examples of customizations to demonstrate the extensibility features of Oracle Web Messenger and Channel. This article also includes instructions for customers migrating from the previous, now outdated version of the SDK to the new Oracle Web SDK 20.6.1.
The Oracle Web SDK provides extensive configuration and customization options using properties, event handlers, and delegates. This article introduces the features built into the Oracle Web SDK and...
Even with the best intentions in the world, synthetic utterances can introduce bias, often because we all have our own myopic view of the world. It is also fair to ask the question “what makes a good utterances or training corpus?” So how might you kick-start training your NLP model? Read on.
Even with the best intentions in the world, synthetic utterances can introduce bias, often because we all have our own myopic view of the world. It is also fair to ask the question “what makes a good...
GIT is a free open source version control system available at https://git-scm.com/about/free-and-open-source. This article does not explain GIT but shows how you can use GIT to version control Oracle Digital Assistant custom component service projects. In this article I propose a GIT repository structure that has directories built for each skill requiring custom components. This proposal is for custom components that should be deployed to the local component container in a skill. You would probably use a different code organization if components will be deployed to a remote repository.
GIT is a free open source version control system available at https://git-scm.com/about/free-and-open-source. This article does not explain GIT but shows how you can use GIT to version control Oracle...
Especially when Oracle Digital Assistant is made available on websites or web applications, developers look for a web-type look and feel and behavior of bot responses to seamlessly integrate the bot into the surrounding web environment. Because Oracle Digital Assistant can be exposed through multiple messenger channels as well as by voice, it is important that the goal of better web integration does not tie a bot to a single channel. In this article I explain how you use font awesome and a custom component to render menus as iconic buttons on the web and as action lists on other channels.
Especially when Oracle Digital Assistant is made available on websites or web applications, developers look for a web-type look and feel and behavior of bot responses to seamlessly integrate the bot...
Menus look much better when icons are displayed for the selected items. Often, a well-chosen icon even improves usability because people recognize patterns so much better than reading labels. In this article I explain how to create icon references for list items in action and value-list menus created with the System.CommonResponse component
Menus look much better when icons are displayed for the selected items. Often, a well-chosen icon even improves usability because people recognize patterns so much better than reading labels. In this...
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...
It is a facility we are all familiar with: IT help and operations (ITOps) – the ability to self-serve a password reset, log a request or research a problem you might be having with you PC. However, the next generation of ITOps is aiming to provide those same self-service capabilities through natural, human conversation. Consider the benefits of being able to converse as you would with an IT specialist but with the scale of an automated system. This article discussed the key design consideration and demonstrates through a reference implementation how this can be quickly developed using Oracle Digital Assistant
It is a facility we are all familiar with: IT help and operations (ITOps) – the ability to self-serve a password reset, log a request or research a problem you might be having with you PC. However,...
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...
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...
Like built-in components, custom components may have an interaction with a users that spans multiple turns. To have a conversation with a user, components needs to maintain state to tell the UI to render and the behavior to execute. In this article I explain two options you can use to manage and maintain state in custom components.
Like built-in components, custom components may have an interaction with a users that spans multiple turns. To have a conversation with a user, components needs to maintain state to tell the UI to...
This article explains how you can add a search engine API into your Oracle Digital Assistant Skill. This functionality is useful when you want to add public knowledge, FAQs, documentation and general information from a specific site or domain to your skill. Search engine API integration can serve as a fallback when your skill otherwise will not be able to provide an answer.
This article explains how you can add a search engine API into your Oracle Digital Assistant Skill. This functionality is useful when you want to add public knowledge, FAQs, documentation and...
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...
The current version of Oracle Web SDK (oda-native-client-sdk-js-20.5.1) introduced an important forward-looking change in the structure of the message object passed to the delegate object that developers can optionally implement to intercept and modify user- and bot messages. The applied changes may have a negative impact to Oracle TechExchange articles and samples that use the delegate object functionality with the previous message object structure. The change required to the samples and article is minor and can be corrected by changing change all references to the delegate function argument to .messagePayload.
The current version of Oracle Web SDK (oda-native-client-sdk-js-20.5.1) introduced an important forward-looking change in the structure of the message object passed to the delegate object that...
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...
Frequently asked questions (FAQs) are a common feature of most businesses and institutions. However in recent times the demand to get up-to-date official information from government departments (such as Health, Welfare or Education) or your place of work (homeworking policy, remote IT access etc.) have become a critical factor for many. Digital Assistants allow these official FAQs to be quickly surfaced through all manner of channels (text, voice, social), and done so in way where users don’t have to first of all find the FAQ document then use the correct search terms. A conversational Digital Assistant can be trained to understand the natural language request from the user and deliver the right answer regardless of how the user might phrase their question. This article explains 6 short steps, including a starter template, to deliver a production quality FAQ digital assistant which also encompasses conversation best-practices, resilience and guidelines for an engaging user experience; all of which can built in less than 60 minutes.
Frequently asked questions (FAQs) are a common feature of most businesses and institutions. However in recent times the demand to get up-to-date official information from government departments (such...
Displaying a tip of the day was a very popular feature in client-server applications and on the web. The goal of such tips was to provide easily digestible information that could be fun or help you better understand a program or technology. For some time now I am observing that chatbot developers implement web application functions such as font formatting, dropdown menus, etc. in their web messenger (Oracle Web SDK). So I thought that a tip-of-the-day feature would be cool and engaging for bot users.
Displaying a tip of the day was a very popular feature in client-server applications and on the web. The goal of such tips was to provide easily digestible information that could be fun or help you...
This article explains how composite bag entity items that are based on complex entities like DATE, NUMBER or CURRENCY can have their values set using a custom component. The use case for this is e.g. to set a DATE item to a current date or set an item to a derived value. A sample skill and sample code can be downloaded.
This article explains how composite bag entity items that are based on complex entities like DATE, NUMBER or CURRENCY can have their values set using a custom component. The use case for this is...
This article explains how users of an Oracle Digital Assistant chatbot conversation can upload images and documents through the Oracle Web SDK.
This article explains how users of an Oracle Digital Assistant chatbot conversation can upload images and documents through the Oracle Web SDK.
Using a bot on a website or web application often requires to apply web design patterns to the messenger to better integrate and to meet user expectations. Good to know in this context is that customizing the web messenger user interface has become easy in the new Oracle Web SDK. This article explains how you can create a drop down menu for bot users to start a specific conversation. The idea of a drop down menu is to provide a fixed option as a short cut for users to get to the information or conversation they need.
Using a bot on a website or web application often requires to apply web design patterns to the messenger to better integrate and to meet user expectations. Good to know in this context is...
External application that trigger application initiated conversations (AIC) in Oracle Digital Assistant send a specific payload for messengers like Twilio SMS, Slack or MS Teams. This article explains how you can access the payload properties, which, for example, also includes the user ID, from BotML for the purpose of debugging or similar use cases.
External application that trigger application initiated conversations (AIC) in Oracle Digital Assistant send a specific payload for messengers like Twilio SMS, Slack or MS Teams. This article explains...
A common requirement for chatbot is to have the bot reaching out to the user for a conversation. Use cases include reminders for an appointment or the renewal of a subscription, a data event, like a stock exceeding a specific value and many more. Using application-initiated conversations (AIC) in Oracle Digital Assistant, external applications can "trigger" the start of a conversation between a chatbot and a user. This article explains how to setup application-initiated conversations for the MS Teams channel.
A common requirement for chatbot is to have the bot reaching out to the user for a conversation. Use cases include reminders for an appointment or the renewal of a subscription, a data event, like...
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 touch points 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...
Twilio’s voice API extends applications with flexible call center features, soft phones, call tracking, interactive voice response (IVR) menus and more. This article explains how you can use Twilio voice APIs to expose Oracle Digital Assistant to telephony.
Twilio’s voice API extends applications with flexible call center features, soft phones, call tracking, interactive voice response (IVR) menus and more. This article explains how you can use...
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...
During a bot conversation, users can be distracted for a short time and become inactive. With the Oracle Web SDK, your skills can remind users after a certain idle time or even cancel the conversation. This behavior however does not come out-of-the box but requires you to design your dialog flow conversation for it. This article explains an implementation strategy that allows bot to remind users of the conversation they started and also to close a conversation that sat idle for too long. Using this implementation you can also avoid users from staying idle beyond the time configured as the channel session expiry time.
During a bot conversation, users can be distracted for a short time and become inactive. With the Oracle Web SDK, your skills can remind users after a certain idle time or even cancel...
The answer intent feature has been introduced to recent versions of Oracle Digital Assistant (ODA) and is available in ODA 19.4.1 and for Oracle Digital Assistant versions executing on the Oracle Cloud Infrastructure (OCI). Improvements to Oracle's intent resolution engine made it possible to provide questions and answers as intents. In this setup, utterances added to an intent are used to train the model so that the model is able to display the answer with the highest confidence it has. Questions and answers defined for the Q&A framework differ from answer intents in the format of the imported CSV documents and, of course, the configuration for tuning the understanding the model has. But there are similarities as well, like questions that also could have alternative questions associated to an answer. This article provides instructions and a utility to convert Q&A modules to answer intents.
The answer intent feature has been introduced to recent versions of Oracle Digital Assistant (ODA) and is available in ODA 19.4.1 and for Oracle Digital Assistant versions executing on the Oracle...
Composite bag entities group related entities and items of type string, location and attachment to a single entity that represents a real world object like an order, a booking, a reservation, an incident report and many more. The value for each item in a composite bag entity can be resolved through natural language processing (nlp) or by the user when prompted to enter a value. A quality of composite bag entities is that they can be resolved without developers to write dialog flow states for each of the contained bag items. Using the System.CommonResponse component or the System.ResolveEntities component, user prompts are automatically generated until the user cancels or completed providing required information. This article outlines an approach for building model-driven questionnaires using composite bag entities, the common response built-in component and resource bundles. The example use case is a course evaluation skill that students use at the end of a training class to provide feedback about the instructor and the training material and content.
Composite bag entities group related entities and items of type string, location and attachment to a single entity that represents a real world object like an order, a booking, a reservation,...
A good practice for messages in a bot conversation is to keep them short. Messenger have a limited area for displaying messages, so longer text responses cause the user to scroll as they read. Often also the full message is not needed for a user to understand and continue. This article explains how you can optimize longer bot messages displayed in the Oracle Web Messenger client to only show the message in full if the user clicks on a link or button.
A good practice for messages in a bot conversation is to keep them short. Messenger have a limited area for displaying messages, so longer text responses cause the user to scroll as they read....
Messengers differ in the components and layouts of the user interface that they support. An extreme example of this difference is the comparison of SMS as messenger with Facebook Messenger. While Facebook Messenger offers extensive user interface components such as cards, lists, images and attachments, SMS is just text. Differences however also exist between messengers that support rich user interfaces components. Slack, for example, does not have support for horizontal card layouts, whereas Microsoft Teams supports adaptive cards, a proprietary layouts format that allows bot designers to build their own card layouts. As a developer of chatbots, it's not just about finding the lowest common denominator for the design of the user interface for bots that can be reached via different channels. It's also about presenting the best possible user interface for each channel (image below). The implementation to represent the best possible user interface for a channel is what I call adaptive bot design.
Messengers differ in the components and layouts of the user interface that they support. An extreme example of this difference is the comparison of SMS as messenger with Facebook Messenger. While...
Composite bag entities in Oracle Digital Assistant are a domain object driven approach to designing bot conversations. With composite bag entities, conversation design is modeled as domain objects which then intelligently get resolved using the System.ResolveEntities and the System.CommonResponse component. This article explains how you can implement an intelligent cancel or exit option to your composite bag entity dialogs that allow users to discontinue a started conversation.
Composite bag entities in Oracle Digital Assistant are a domain object driven approach to designing bot conversations. With composite bag entities, conversation design is modeled as domain objects...
You use custom components in Oracle Digital Assistant to access REST services for querying or updating data. Because custom components are developed in Node.js, you use Node modules to handle the REST service access. In this article I explain how you use the Node https module to query data and how to write data back to an Oracle Digital Assistant skill.
You use custom components in Oracle Digital Assistant to access REST services for querying or updating data. Because custom components are developed in Node.js, you use Node modules to handle the REST...
In a previous TechExchange article I explained how to generate JWT tokens using a remote service. Generating JWT tokens remotely and not as part of the Oracle Web SDK is the recommended and secure way of creating tokens. However, for development and testing you may look for a fast and easy option to create tokens, in which case generating JWT tokens locally becomes handy. In this article I explain how you can create JWT tokens locally.
In a previous TechExchange article I explained how to generate JWT tokens using a remote service. Generating JWT tokens remotely and not as part of the Oracle Web SDK is the recommended and secure...
Using the Oracle iOS SDK for Oracle Digital Assistant, you can integrate your digital assistant with iOS apps. The SDK connects to the Oracle Chat Server, the intermediary between the Oracle iOS channel configured in Oracle Digital Assistant and the client. The chat server then passes messages to the skill for processing and delivers the skill's response to the client. This article is a quick-start guide and tutorial that guides you through creating and testing an iOS application that hosts the Oracle Digital Assistant Messenger for iOS.
Using the Oracle iOS SDK for Oracle Digital Assistant, you can integrate your digital assistant with iOS apps. The SDK connects to the Oracle Chat Server, the intermediary between the Oracle...
The Oracle Digital Assistant Web Messenger (Oracle Web SDK) can be configured to read bot responses to a user. The language and tone of a bot is usually to match an organization or brand. Likewise, the voice and accent of the text-to-speech (TTS) audio also should match the organization or brand.
The Oracle Digital Assistant Web Messenger (Oracle Web SDK) can be configured to read bot responses to a user. The language and tone of a bot is usually to match an organization or brand....
This article explains how you can extend the Oracle Web SDK's delegate feature to execute code asynchronously. For example, when triggering navigation on the website or web application hosting the web messenger, there is no need to wait for navigation to complete to continue with the conversation.
This article explains how you can extend the Oracle Web SDK's delegate feature to execute code asynchronously. For example, when triggering navigation on the website or web application hosting the web...
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...
Entities in Oracle Digital Assistant extract information from user messages based on patterns or values they represent. Users can have a natural conversation with a chatbot as they will only be prompted for information they have not yet provided. "I like a scoop of strawberry ice cream " implies the intent (to buy ice cream), the flavor (strawberry) and the size (a scoop). The only prompt to display for this example would be "how would you like to pay?". By various examples, this article explores and explains properties you can set on custom properties.
Entities in Oracle Digital Assistant extract information from user messages based on patterns or values they represent. Users can have a natural conversation with a chatbot as they will only be...
Its a busted myth that people don't scroll or read. However, long blocks of text are not very appealing and often result in users only scanning the text and not reading it. This is especially true for displays with reduced sizes as they exists as messengers. A design principle for creating user interfaces for conversations is to adapt to the target messenger and, if necessary, shorten text blocks to appropriate sizes. Using Oracle Digital Assistant, one way of breaking up long text into smaller chunks is to use a custom component. This article explains a custom component solution that breaks up text into text blocks that are displayed with a configurable delay.
Its a busted myth that people don't scroll or read. However, long blocks of text are not very appealing and often result in users only scanning the text and not reading it. This is especially true for...
A common requirement for videos is to show them in place within a messenger. Not all messengers however support embedded videos and other media. The new Oracle Web SDK does render videos embedded in the conversation. In this article I explain how you embed YouTube videos to your chatbot conversations.
A common requirement for videos is to show them in place within a messenger. Not all messengers however support embedded videos and other media. The new Oracle Web SDK does render videos embedded...
The Oracle Web SDK is a new SDK and web messenger available in the OCI versions of Oracle Digital Assistant (version 19.10 and later). The messenger is written in JavaScript and can be added to your website and web applications. It exposes events that you can use to intercept bot responses before they are displayed, and a headless model that lets you write your own messenger web client. In both cases, you may want additional metadata information to be added to the bot response, which is exactly what you can use the customChannelProperties of the System.CommonResponse component for. This article explains how to add custom channel properties to a bot response, how to restrict the information to be added only to responses that are passed to the web messenger and how to deal with the information in a web application.
The Oracle Web SDK is a new SDK and web messenger available in the OCI versions of Oracle Digital Assistant (version 19.10 and later). The messenger is written in JavaScript and can be added to your...
The Oracle Web SDK is a JavaScript library that you can use to integrate Oracle Digital Assistant into your website or web application. The library provides a customizable messenger that communicates with the Oracle Digital Assistant web channel via the Oracle Digital Assistant message server. The Oracle JavaScript Extension Toolset (JET) is a development and runtime environment for single page (SPA) web and mobile applications. Oracle JET also is the underlying technology used in Oracle Visual Builder. This article explains how to configure and integrate the Oracle Web SDK messenger in Oracle JET web applications.
The Oracle Web SDK is a JavaScript library that you can use to integrate Oracle Digital Assistant into your website or web application. The library provides a customizable messenger that communicates...
Oracle Digital Assistant is the Oracle cloud based platform for creating intelligent chatbots. If you subscribe to Oracle Digital Assistant beyond a trial period, you should know how to protect Oracle Digital Assistant instances for read and write access and how to restrict access to specific users. Oracle Digital Assistant uses Oracle Cloud Infrastructure (OCI) Identity and Access Management (IAM) for design time and platform API security. You use the IAM console to create and manage accounts for bot developers, business users, analytic users and administrators. This article explains and illustrates how you create users and how you associate them to user groups and policies that control access to Oracle Digital Assistant OCI.
Oracle Digital Assistant is the Oracle cloud based platform for creating intelligent chatbots. If you subscribe to Oracle Digital Assistant beyond a trial period, you should know how to protect Oracle...
Online questionnaires often need to be dynamic in the number and type of questions displayed to a user. In this article I explain how you create a simple questionnaire using Oracle BotML in Oracle Digital Assistant. You learn about how to use Apache FreeMarker to create a "for-loop" and how to read values from an array data source.
Online questionnaires often need to be dynamic in the number and type of questions displayed to a user. In this article I explain how you create a simple questionnaire using Oracle BotML in...
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...
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...
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...
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...
Messengers differ in the layout they support. The Oracle Digital Assistant connector architecture renders the best possible bot response for a connected client based on its internal metadata (CMM). With the connector architecture, a skill that renders a rich card layout on Facebook would render a list of text messages on SMS without the user needing to code for it. Still, a messenger platform like Microsoft Teams, Facebook or Slack may provide functionality that is not created by the connector architecture. The System.CommonResponse component has a property called "channelCustomProperties" that you can use to implement channel specific layout properties. This way you can optimize the Oracle Digital Assistant generated bot response for specific channels. This article explains the channelCustomProperties property by example of adaptive cards in the Microsoft Teams channel.
Messengers differ in the layout they support. The Oracle Digital Assistant connector architecture renders the best possible bot response for a connected client based on its internal metadata (CMM)....
When you are using a digital assistant, user input is routed to the most appropriate skill automatically by the digital assistant. But what if you want to pre-process the user input? For example, you mind find extraneous punctuation such as an exclamation mark which impacts the intent resolution so you want to strip it out before the System.Intent. Or maybe you want to force a particular behavior by altering or augmenting the original user input in order to slightly skew the intent resolution.
When you are using a digital assistant, user input is routed to the most appropriate skill automatically by the digital assistant. But what if you want to pre-process the user input? For example,...
Users fail because the design fails. Conversational design skills are an important asset for any bot developer, regardless of the development platform used. With chatbots you always build for two types of users: 1. new users that use a bot for the first time 2. expert users that did use the bot before This article explains a solution that allows experienced users to skip a dialog in a bot-user interaction
Users fail because the design fails. Conversational design skills are an important asset for any bot developer, regardless of the development platform used. With chatbots you always build for...
Dynamic entities are value list entities for which you create, modify and delete values at runtime using Oracle Dynamic Entities REST APIs. Dynamic entities, like other entities, can be used with NLP entity extraction to find information in user messages or to validate user input against a known set of values and synonyms. Use cases for dynamic entities are value lists that frequently change due to underlying data changes and include product catalogs, food menus, departments, events and event locations, flight tables and many more. There is no known lower limit for the frequency of changes, though given that any change to the list data in a dynamic entity is followed by a model training, you want to keep the frequency of change reasonable. This article introduces and explains dynamic entities in Oracle Digital Assistant version 19.10 and later.
Dynamic entities are value list entities for which you create, modify and delete values at runtime using Oracle Dynamic Entities REST APIs. Dynamic entities, like other entities, can be used with NLP...
By default, Oracle Digital Assistant (ODA) supports the integration of human agents into bot conversations through the Oracle Service Cloud (OSC). A new open source project that extends the existing integration to third-party agent systems has now been released to GitHub by Tamer Qumhieh. The project leverages ODA out of the box features integrating with Oracle Service Cloud to different agent systems. With this, you will be able to use the out of the box System.AgentInitiation and System.AgentConversation components; hence your skill is totally abstracted from back-end agent system details.
By default, Oracle Digital Assistant (ODA) supports the integration of human agents into bot conversations through the Oracle Service Cloud (OSC). A new open source project that extends the existing...
Oracle Digital Assistant lets you to integrate with the Oracle Service Cloud Chat Service in two ways: DA as an Oracle Service Cloud agent lets you turn a digital assistant into an automated agent that participates in Oracle Service Cloud chats in much the same what that live agents do. All conversations take place in an Oracle Service Cloud Live Help chat window regardless of whether the agent is a human agent or a digital assistant. Live-agent transfer enables you to hand off a skill's conversation to an Oracle Service Cloud live agent. With this feature, you can enhance your skill to handle user tasks that require human intervention by transferring the conversation to a live agent. The conversation continues in the same user channel that the customer used to invoke the skill. In this article, I explain DA as an Oracle Service Cloud agent, which is a new feature in Oracle Digital Assistant 19.4.1, in more detail. You can read up about both implementations in the Oracle Digital Assistant product documentation:
Oracle Digital Assistant lets you to integrate with the Oracle Service Cloud Chat Service in two ways: DA as an Oracle Service Cloud agent lets you turn a digital assistant into an automated agent...
With Oracle Digital Assistant 19.10 and later, Oracle provides a new Web SDK, the Oracle Web SDK, for integrating Oracle Digital Assistant to Web applications and web sites. This article will guide you through the steps required to integrate the Oracle Digital Assistant web SDK in a Visual Builder Cloud Service (VBCS) project.
With Oracle Digital Assistant 19.10 and later, Oracle provides a new Web SDK, the Oracle Web SDK, for integrating Oracle Digital Assistant to Web applications and web sites. This article will guide...
Microsoft teams and other channels, e.g. Slack, do not have the same mechanism for accessing user profile information like e.g. the Oracle Web SDKs has. The reason for this is that, when using MS Teams, the user is already identified by the Microsoft platform. However, it is a common requirement that bots can access user information such as the user's first and last name. For you to access user profile information in MS Teams you need to call a protected Microsoft REST endpoint from within your bot (using a custom component). This article walks you through the steps to retrieve user profile information - MS Team Name, First Name, and Email ID. The examples use Postman for accessing the MS Teams API and a custom component for accessing the conversation identifier.
Microsoft teams and other channels, e.g. Slack, do not have the same mechanism for accessing user profile information like e.g. the Oracle Web SDKs has. The reason for this is that, when using...
Oracle Digital Assistant analyzes user messages to identify intents and to extract information. This article explains 4 options you can use to find and extract information from user messages sent to skills in Digital Assistant.
Oracle Digital Assistant analyzes user messages to identify intents and to extract information. This article explains 4 options you can use to find and extract information from user messages sent...
There are entity use cases in which a particular bot user only needs a subset of the values that could be extracted by an entity. However, there is a good reason to train the bot with all possible entity values and not just those of interest to the user. The following is a use case from one of our internal teams which is a common enough use case worth sharing with the wider community: that an entity value can be further validated against a dynamic subset of values based on, in this case, the current user.
There are entity use cases in which a particular bot user only needs a subset of the values that could be extracted by an entity. However, there is a good reason to train the bot with...
In Oracle Digital Assistant version 19.10 (Oracle Digital Assistant for Oracle SaaS) and later, a new Oracle Web SDK integrates Oracle Digital Assistant with web applications and web pages. In addition to its extensive functionality, the Oracle Web SDK supports client security through domain whitelisting and signed JSON Web Token (JWT). Once JWT client security is enabled for an Oracle Web channel, all messages to the web channel require a signed and valid token to be processed by the associated digital assistant. This article explains how to create a JWT token for use with the Oracle Web SDK messenger. The provided sample follows the recommended security practice, which is to generate the token on a remote server and not in the browser application itself.
In Oracle Digital Assistant version 19.10 (Oracle Digital Assistant for Oracle SaaS) and later, a new Oracle Web SDK integrates Oracle Digital Assistant with web applications and web pages. In...
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...
User scope variables in Oracle Digital Assistant keep their values beyond conversation sessions. So if, in the context of a conversation, the bot needs to memorize information, then this information should be saved in a user scope variable. User scope variables are defined at runtime, and not at design time. The variables are saved in the instance specific Oracle Digital Assistant internal database. User scope variables cannot be shared between users and also are messenger specific. This means that a user who runs the same bot on two different messaging channels will save information twice. As far as the content goes that can be saved in a user scope variable, the same types apply as can be used with variables defined in a dialog flow. To create user scope variables and to store values, you can use the System.SetVariable component or a custom components. To read from user scope variables, you use an expression the dialog flow or a custom component. This article explains how to work with user scope variables in a dialog flow.
User scope variables in Oracle Digital Assistant keep their values beyond conversation sessions. So if, in the context of a conversation, the bot needs to memorize information, then this information...
In Oracle Digital Assistant 19.10 and later, Oracle provides a new web SDK for integrating Oracle Digital Assistant to web applications and web sites. The new Oracle Web SDK provides the features available in the current version of the Oracle JS Client SDK, but then goes beyond in providing new messenger functionalities as well as client security. This article explores customization features of the new Oracle Web SDK that you can download for Oracle Digital Assistant 19.10 and later from https://www.oracle.com/downloads/cloud/amce-downloads.html (see Oracle Web SDK v1.0). The download contains a developer guide in its readme that explains all properties you can use with the new Web SDK.
In Oracle Digital Assistant 19.10 and later, Oracle provides a new web SDK for integrating Oracle Digital Assistant to web applications and web sites. The new Oracle Web SDK provides the features...
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...
Oracle Digital Assistant uses system intents to provide common functionality. Initially, system intents existed for help, unresolved intents and to exit a conversation. The default help implementation for the system help intent displays the configured skills along with sample utterances for users to learn about the options. This article explains how you can
Oracle Digital Assistant uses system intents to provide common functionality. Initially, system intents existed for help, unresolved intents and to exit a conversation. The default help implementation...
As of Oracle Digital Assistant 19.4.1, the local deployment of custom components has changed to the point that custom component tar balls (".tgz" files) must now contain all node module dependencies. This change addresses the new Acceptable Use of the Public Registry announcement by NPM , Inc.
As of Oracle Digital Assistant 19.4.1, the local deployment of custom components has changed to the point that custom component tar balls (".tgz" files) must now contain all node module dependencies....
Using multi select lists are common user interface widgets in mobile and web application development. In conversations, graphical multi select lists are difficult to create because users not only would need to select values, they also would need to click on a button to progress to a next dialog flow state. Here, form based use cases as in web and mobile are much better suited for the use of multi select lists. Still, multi value selects is an options available in Oracle Digital Assistant. This article explains how to create multi select lists in Oracle Digital Assistant skills.
Using multi select lists are common user interface widgets in mobile and web application development. In conversations, graphical multi select lists are difficult to create because users not...