<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Aura – </title>
    <link>/docs/experiences-builder/development-use-cases/bot-uc-development/</link>
    <description>Recent content on Aura</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    
	  <atom:link href="/docs/experiences-builder/development-use-cases/bot-uc-development/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: </title>
      <link>/docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/</guid>
      <description>
        
        
        &lt;h1 id=&#34;build-an-aura-bot-dialog&#34;&gt;Build an Aura Bot dialog&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This section includes different processes for building an Aura bot dialog when developing a local use case, both general guidelines and specific ones for concrete scenarios&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://technicaldocs.auracognitive.com/master/docs/components/aura-bot-platform/aura-bot-components/internal-dialogs/&#34;&gt;Dialogs&lt;/a&gt; are software components that model conversations with the final users by interchanging messages with them. Currently, &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; supports the Microsoft Bot Framework SDK v4 for JavaScript as the internal bot engine.&lt;/p&gt;
&lt;p&gt;When developing a &lt;strong&gt;local use case&lt;/strong&gt;, that can be both an experience built from scratch or inspired in a global use case, the OB developers must build a new local dialog that includes the logic of the use case or modify an existing one.&lt;/p&gt;
&lt;p&gt;The dialog will interact with the customer using a conversational interface, this is, interchanging messages back and forth and, if required, the dialog will summon &lt;strong&gt;Kernel&lt;/strong&gt; or third-party APIs in order to fetch data to fulfil the user&amp;rsquo;s request.&lt;/p&gt;
&lt;p&gt;Before getting started, we recommend you to read some useful Microsoft documentation:&lt;br&gt;
&amp;#x1f4c4; &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-howto-send-messages?view=azure-bot-service-4.0&amp;amp;tabs=javascript&#34;&gt;Send and receive text message&lt;/a&gt;&lt;br&gt;
&amp;#x1f4c4; &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-concept-dialog?view=azure-bot-service-4.0&#34;&gt;Dialogs library&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;scenarios-for-building-a-dialog&#34;&gt;Scenarios for building a dialog&lt;/h2&gt;
&lt;p&gt;Bot developers can find different scenarios when building a dialog over &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../../../../docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/library/&#34;&gt;Build an Aura Bot library&lt;/a&gt; that will contain the dialog, in case it does not exist.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../../docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/build-dialog-general/&#34;&gt;General guidelines for building a dialog&lt;/a&gt;: most common scenario for building a dialog over &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../../docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/dialog-async-api/&#34;&gt;Build a dialog that use async APIs&lt;/a&gt;, that is, APIs that do not provide the information back immediately, but with a certain standby time as they must perform a specific task derived from the user’s request.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../../docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/bypass-mode/&#34;&gt;Configure bypass mode&lt;/a&gt; to force sending any input message to &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; directly to a external service and vice versa.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../../docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/build-operation/&#34;&gt;Build an operation&lt;/a&gt;, which are a type of intents that can be used inside a dialog&amp;rsquo;s conversational flow.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../../../docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/dialog-channelmodelv3/&#34;&gt;Migrate a dialog to channelData v3&lt;/a&gt;, including the steps for making your use case compatible with &lt;code&gt;channelData&lt;/code&gt; v3.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/use-case-migration-bf-4.19/&#34;&gt;Migrate use cases to Bot Framework 4.19&lt;/a&gt;, which is the version used by Aura’s upcoming architecture based on Microsoft skills protocol.&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/experiences-builder/development-use-cases/bot-uc-development/test-dialogs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/experiences-builder/development-use-cases/bot-uc-development/test-dialogs/</guid>
      <description>
        
        
        &lt;h1 id=&#34;test-an-aura-bot-dialog&#34;&gt;Test an Aura Bot dialog&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Guidelines for the design and execution of unit tests for the validation of an Aura Bot dialog&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;When developing a use case, and once the &lt;a href=&#34;../../../../docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/&#34;&gt;use case dialog is built&lt;/a&gt;, it is required to test the dialog in order to verify its proper performance in terms of the conversational flow between the user and &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt;
.
This step is mandatory for the OB developers in order to merge their Pull Requests.&lt;/p&gt;
&lt;p&gt;This task comprises three main steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Generate the unit tests and place them on the use case library.&lt;/li&gt;
&lt;li&gt;Execute the unit tests through the &lt;a href=&#34;https://docs.microsoft.com/en-us/javascript/api/botbuilder-core/testadapter?view=botbuilder-ts-latest&#34;&gt;Test Adapter&lt;/a&gt; that simulates sending messages from the user to the bot.&lt;/li&gt;
&lt;li&gt;Validate the dialog with the unit tests within an iterative process: if results are not satisfactory, the required modifications must be done in the dialog &lt;code&gt;.ts&lt;/code&gt; file.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;generate-the-unit-tests-files&#34;&gt;Generate the unit tests files&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Within the &lt;a href=&#34;../../../../docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/library/&#34;&gt;use case library&lt;/a&gt;, it is recommended that the unit tests files are placed in the folder &lt;em&gt;src/&lt;/em&gt; folder.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;They should be named with the same name as the correponding dialog, which must be also included in this folder:&lt;br&gt;
Dialog: &lt;code&gt;&amp;lt;dialog-name&amp;gt;.ts&lt;/code&gt;    ➡     Test file: &lt;code&gt;&amp;lt;dialog-name&amp;gt;.spec.ts&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Moreover, if auxiliary files are required for the tests, they can be optionally placed in a folder named &lt;em&gt;/test&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;#x1f4cc; For a proper understanding of the unit tests for dialogs, it is recommended that developers check the source code of the Aura dialog &lt;a href=&#34;https://github.com/Telefonica/aura-bot-libraries/blob/master/packages/common/src/greetings-dialog.ts&#34;&gt;&lt;code&gt;greetings&lt;/code&gt;&lt;/a&gt; from the library &lt;code&gt;common&lt;/code&gt; and its associated unit tests, as an example.
The code of these unit tests can be also used as a template for designing your own tests.&lt;/p&gt;
&lt;h2 id=&#34;execute-the-aura-bot-dialogs-unit-tests&#34;&gt;Execute the Aura Bot dialogs unit tests&lt;/h2&gt;
&lt;p&gt;For the execution of the unit tests, read the guidelines &lt;a href=&#34;../../../../docs/developers-workspace/test-aura/test-bot/debug-typescript-test/&#34;&gt;How to debug with mocha and Typescript&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/experiences-builder/development-use-cases/bot-uc-development/use-case-packaging/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/experiences-builder/development-use-cases/bot-uc-development/use-case-packaging/</guid>
      <description>
        
        
        &lt;h1 id=&#34;package-a-developed-use-case&#34;&gt;Package a developed use case&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Guidelines for a use case packaging, previous to its deployment&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;instructions-for-packaging-a-use-case&#34;&gt;Instructions for packaging a use case&lt;/h2&gt;
&lt;p&gt;Once a use case is developed, and previous to its deployment, the use case must be packaged.&lt;/p&gt;
&lt;p&gt;The use case&amp;rsquo;s library should be packed as a &lt;code&gt;.tgz&lt;/code&gt; file executing the following command from the library root folder:
&lt;code&gt;$ npm pack&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The outcome of the command is a &lt;code&gt;.tgz&lt;/code&gt; file with the deployable code of the library.&lt;/p&gt;
&lt;p&gt;Although the library was not published in npm registry, it is recommendable to update the &lt;code&gt;package.json&lt;/code&gt; version field with every change, to be able to track the specific version being deployed in all the environments.&lt;/p&gt;
&lt;p&gt;This package is the one that will be installed and tested in the minibot or delivered to the Local Operation Team to be deployed.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/experiences-builder/development-use-cases/bot-uc-development/test-use-case/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/experiences-builder/development-use-cases/bot-uc-development/test-use-case/</guid>
      <description>
        
        
        &lt;h1 id=&#34;test-a-developed-use-case-locally&#34;&gt;Test a developed use case locally&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Once the use case is developed, and prior to its deployment, it is required to test it in local environment. Learn how to do it in this document&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;test-a-developed-use-case&#34;&gt;Test a developed use case&lt;/h2&gt;
&lt;p&gt;There are two different options to test your brand-new use case:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using &lt;strong&gt;Aura Minibot&lt;/strong&gt; locally, the recommended method.&lt;/li&gt;
&lt;li&gt;Through full bot local deployment.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;test-a-use-case-using-aura-minibot&#34;&gt;Test a use case using Aura minibot&lt;/h2&gt;
&lt;p&gt;It is highly recommended to use Aura minibot for testing the use case in your local environment.&lt;/p&gt;
&lt;p&gt;For this purpose, read the &lt;a href=&#34;../../../../docs/experiences-builder/tools/aura-minibot/&#34;&gt;Aura minibot guidelines&lt;/a&gt; to know firstly how to install and run Aura minibot.&lt;/p&gt;
&lt;p&gt;If you have already installed Aura minibot, go directly to section &lt;a href=&#34;../../../../docs/experiences-builder/tools/aura-minibot/#develop-a-new-use-case&#34;&gt;Develop a new use case&lt;/a&gt; to know how to import the use case library, after its &lt;a href=&#34;../../../../docs/experiences-builder/development-use-cases/bot-uc-development/use-case-packaging/&#34;&gt;packaging as a &lt;code&gt;.tgz&lt;/code&gt; file&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;test-a-use-case-through-full-aura-bot&#34;&gt;Test a use case through full Aura Bot&lt;/h2&gt;
&lt;p&gt;Firstly, to work with full &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt;, read the guidelines for the &lt;a href=&#34;../../../../docs/developers-workspace/install-configure/aura-full-bot/&#34;&gt;installation and configuration of full Aura Bot&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now, test your use case following these instructions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Deploy the library to be tested. There are two options:
&lt;ul&gt;
&lt;li&gt;
&lt;ol&gt;
&lt;li&gt;Add the library &lt;code&gt;.tgz&lt;/code&gt; file to the file &lt;code&gt;plugin-config.json&lt;/code&gt; (placed in the &lt;code&gt;aura-bot-platform&lt;/code&gt; Github repository).&lt;br&gt;
Note that manual addition of libraries to &lt;code&gt;plugin-config.json&lt;/code&gt; file requires manual installation too:&lt;br&gt;
&lt;code&gt;npm install &amp;lt;library&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Use the automatic script:&lt;br&gt;
&lt;code&gt;npm run import-libraries&lt;/code&gt;&lt;br&gt;
This process will install any &lt;code&gt;.tgz&lt;/code&gt; in &lt;code&gt;aura-bot-platform/local_modules&lt;/code&gt; folder.&lt;br&gt;
The previous command will add the library in &lt;code&gt;package.json&lt;/code&gt; and &lt;code&gt;plugin-config.json&lt;/code&gt; files and will install them into the project.&lt;br&gt;
If a further configuration of the library is required (for example, disabling some dialogs), this must be done manually by editing &lt;code&gt;plugin-config.json&lt;/code&gt; available at the root of the &lt;em&gt;aura-bot-platform&lt;/em&gt; folder.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the simplest case, &lt;code&gt;plugin-config.json&lt;/code&gt; is an array of strings, each of them containing the name of the npm package of a library. It is the way used by &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; to configure the plugins that are going to be deployed in the runtime of each instance and is the format defined by the library used internally by &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; &lt;a href=&#34;https://github.com/c9/architect&#34;&gt;architect&lt;/a&gt;.
However, every element from this array can also be an object containing more information.&lt;/p&gt;
&lt;p&gt;Note that the following two examples are totally equivalent:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-typescript&#34; data-lang=&#34;typescript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;@telefonica/aura-bot-bill-library&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;@telefonica/aura-bot-common-library&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-typescript&#34; data-lang=&#34;typescript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;packagePath&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;@telefonica/aura-bot-bill-library&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;packagePath&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;@telefonica/aura-bot-common-library&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When a package name is included in the &lt;code&gt;plugin-config.json&lt;/code&gt; file, it is loaded when running the bot, and all the dialogs specified in the use case library file &lt;a href=&#34;../../../../docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/library/#indexts-file&#34;&gt;&lt;code&gt;index.ts&lt;/code&gt;&lt;/a&gt; are loaded.&lt;/p&gt;
&lt;p&gt;If for any reason, it is required to exclude one or more dialogs from the library, in order to not be loaded, they can be specified with the exclude property of the library, for example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-typescript&#34; data-lang=&#34;typescript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;@telefonica/aura-bot-bill-library&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;@telefonica/aura-bot-common-library&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;packagePath&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;@telefonica/aura-bot-other-library&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;exclude&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;./first-dialog&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In the previous example, all the dialogs from &lt;em&gt;&lt;strong&gt;aura-bot-bill-library&lt;/strong&gt;&lt;/em&gt; and &lt;em&gt;&lt;strong&gt;aura-bot-common-library&lt;/strong&gt;&lt;/em&gt; are loaded, as well as all the dialogs from &lt;em&gt;&lt;strong&gt;aura-bot-other-library&lt;/strong&gt;&lt;/em&gt;.
However, the dialog &lt;em&gt;&lt;strong&gt;./first-dialog&lt;/strong&gt;&lt;/em&gt; is excluded (relative path, as specified within the &lt;code&gt;index.ts&lt;/code&gt; file).&lt;/p&gt;
&lt;h2 id=&#34;max-response-times-due-to-graceful-shutdown-policy-recommendation&#34;&gt;Max response times due to graceful shutdown policy (Recommendation)&lt;/h2&gt;
&lt;p&gt;Due to the infrastructure configuration, we recommend that the response time for the developed use cases should be less than the time configured in the &lt;a href=&#34;../../../../docs/components/aura-bot-platform/configuration/environment-variables/#:~:text=AURA_SHUTDOWN_GRACEFUL_TTL&#34;&gt;&lt;code&gt;AURA_SHUTDOWN_GRACEFUL_TTL&lt;/code&gt; &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; environment variable&lt;/a&gt;. If the message takes longer than the configured time, it could be lost due to &lt;em&gt;&lt;strong&gt;aura-bot&amp;rsquo;s&lt;/strong&gt;&lt;/em&gt; graceful shutdown policy, resulting in the user not receiving a response.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: </title>
      <link>/docs/experiences-builder/development-use-cases/bot-uc-development/use-case-deployment/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/experiences-builder/development-use-cases/bot-uc-development/use-case-deployment/</guid>
      <description>
        
        
        &lt;h1 id=&#34;deploy-a-developed-use-case&#34;&gt;Deploy a developed use case&lt;/h1&gt;


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Guidelines for the deployment of a new use case in Aura, in order to make it available for Aura users and the recommended checks to be done before deployment&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;check-points-before-use-case-deployment&#34;&gt;Check points before use case deployment&lt;/h2&gt;
&lt;p&gt;Once the use case is developed and tested, and before its deployment, it is required to make certain verifications to assure its proper performance in the intended channel.&lt;/p&gt;
&lt;h3 id=&#34;check-that-the-intended-channel-is-enabled&#34;&gt;Check that the intended channel is enabled&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;../../../../docs/components/aura-configuration-api/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; must include an entry for each one of the desired channels the Aura users are going to use to interact with the &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; instance.&lt;/p&gt;
&lt;p&gt;For example, if the Novum application is the intended channel, an entry such as the following one should be included in &lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-typescript&#34; data-lang=&#34;typescript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;novum-mytelco&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;nov&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;channel_id&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;45494a5b-835a-4fff-a813-b3d2be529dbe&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a40000&#34;&gt;…&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;…&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;At this stage, developers should validate with the local DevOps team that the channel name, prefix and identifier are the right ones. This channel identifier should be unique for the specific channel in Aura.&lt;/p&gt;
&lt;p&gt;In case other channels are supported, additional entries such as the one provided in the example should be included.&lt;/p&gt;
&lt;h3 id=&#34;check-that-the-required-scopes-and-purposes-are-included&#34;&gt;Check that the required scopes and purposes are included&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;../../../../docs/components/aura-configuration-api/&#34;&gt;&lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; must include the &lt;strong&gt;Kernel&lt;/strong&gt; scopes and the purposes granted for the user which are needed to cover all the enabled use cases (dialogs).&lt;/p&gt;
&lt;p&gt;These scopes and purposes should include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The ones needed to get the user&amp;rsquo;s access token&lt;/li&gt;
&lt;li&gt;The ones needed to inject user&amp;rsquo;s information into the messages reaching the &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; instance&lt;/li&gt;
&lt;li&gt;The ones needed for the functionality implemented by each enabled use case.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The information regarding which scopes and purposes are needed can be located in the &lt;strong&gt;Kernel&lt;/strong&gt; documentation website](&lt;a href=&#34;https://developers.baikalplatform.com/&#34;&gt;https://developers.baikalplatform.com/&lt;/a&gt;) and, more concretely, in the specific sections for each &lt;strong&gt;Kernel&lt;/strong&gt; installation made in every available environment for each specific country.&lt;/p&gt;
&lt;p&gt;For example, in case of the &lt;strong&gt;Kernel&lt;/strong&gt; User Profile API, for the production environment in Spain, the scopes and purposes information can be located at the &lt;a href=&#34;https://developers.baikalplatform.com/apis/userprofile/es-pro/v3/#section/Resources-and-Operations-overview&#34;&gt;Authentication section in User Profile (3.5.1)&lt;/a&gt;. Notice the sections highlighted in bold on the previous URL to infer the specific URL to use for each concrete country and environment.&lt;/p&gt;
&lt;p&gt;It is important to note that if the scope information is omitted, the requested access token is issued for all the scopes declared when the client application was created in the &lt;strong&gt;Kernel&lt;/strong&gt; infrastructure.&lt;/p&gt;
&lt;p&gt;An example of the scopes and purposes to be included into the concrete channel configuration to be able to invoke the previous APIs is the following one:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-typescript&#34; data-lang=&#34;typescript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;novum-mytelco&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;nov&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;channel_id&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;45494a5b-835a-4fff-a813-b3d2be529dbe&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;fpa_auth_scopes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;device-catalog:devices-read device-stock:stock-read&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;fpa_auth_purposes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;customer-self-service detect-abnormal-usage device-recommendations-v3 sim-upgrade-suggestion aura-read-insight-events identify-customer bolt-on-suggestion&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;......&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Two examples, for the &lt;strong&gt;Kernel&lt;/strong&gt; User Profile API and the Subscribed Products API, are shown below, where scopes and purposes are found:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../../../../images/building-dialogs/user-profile-purposes.png&#34; alt=&#34;User profile &amp;gt; Authentication &amp;gt; Purposes&#34;&gt;  &lt;img src=&#34;../../../../images/building-dialogs/suscribed-products-purposes.png&#34; alt=&#34;Suscribed products &amp;gt; Authentication &amp;gt; Purposes&#34;&gt;&lt;/p&gt;
&lt;p&gt;The following snippet shows how to indicate the scopes and purposes needed by an Aura user to execute all the dialogs within a library (if authorization setting is set at library level) or one of the dialogs (if set at dialog level), which are included in the dialog configuration (&lt;a href=&#34;../../../../docs/experiences-builder/development-use-cases/bot-uc-development/build-dialog/library/#dialog-configjson&#34;&gt;&lt;code&gt;dialog-config.json&lt;/code&gt;&lt;/a&gt;.
These scopes and purposes are validated before making the correspondent API request to &lt;strong&gt;Kernel&lt;/strong&gt;, to handle permissions errors beforehand and avoiding making a request that will fail in the end.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-typescript&#34; data-lang=&#34;typescript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;details-services&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;suggestions&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;authorization&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;purposes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;customer-self-service&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;scopes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;subscribed-products-user-read&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;deploy-a-developed-use-case-1&#34;&gt;Deploy a developed use case&lt;/h2&gt;
&lt;p&gt;Once your developed use case is successfully tested in your local environment, provide the library&amp;rsquo;s &lt;code&gt;.tgz&lt;/code&gt; file to your Local DevOps Team, which is responsible for the use case deployment.&lt;/p&gt;
&lt;p&gt;This process will include the publication of the use case library and &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; &lt;a href=&#34;../../../../docs/developers-workspace/general-operation-system/make-up/&#34;&gt;make-up&lt;/a&gt; and running.&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
