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


&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;Description of the &lt;em&gt;&lt;strong&gt;handover-genesys&lt;/strong&gt;&lt;/em&gt; dialogs that use the bypass mode. Currently, these dialogs are only available for WhatsApp channel.&lt;/p&gt;

&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The Github repository &lt;a href=&#34;https://github.com/Telefonica/aura-bot-libraries-test/tree/master/packages/factotum-test/src/handover-genesys&#34;&gt;handover-genesys&lt;/a&gt; includes the available family of dialogs for the management of the handover use case for WhatsApp channel.&lt;/p&gt;
&lt;p&gt;The dialog &lt;code&gt;handover-bypass-dialog.ts&lt;/code&gt; uses the &lt;strong&gt;bypass mode&lt;/strong&gt; to allow a direct connection with Genesys and, once activated, &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; directly sends the communication to a Genesys&amp;rsquo; agent.&lt;/p&gt;
&lt;p&gt;Remember that the main functionality of &lt;strong&gt;bypass mode&lt;/strong&gt;, is that once we are in &lt;strong&gt;bypass mode&lt;/strong&gt; within a conversation, any input message to the &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; will be directly sent to the external service. Likewise, any message from the external service will be shown to the user without going through &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; recognition system.&lt;/p&gt;
&lt;h3 id=&#34;settings&#34;&gt;Settings&lt;/h3&gt;
&lt;p&gt;This section describes the configuration of &lt;code&gt;handover-bypass-dialog.ts&lt;/code&gt; dialog in &lt;em&gt;&lt;strong&gt;aura-configuration-api&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Currently, this dialog is exclusively configured for WhatsApp channel and certain intents. Check the configuration in the &lt;a href=&#34;https://github.com/Telefonica/aura-bot-libraries-test/tree/master/packages/factotum-test/settings/&#34;&gt;&lt;em&gt;settings/&lt;/em&gt; repository&lt;/a&gt;, by OB and language.&lt;/p&gt;
&lt;p&gt;An extract of the &lt;code&gt;dialog-config.json&lt;/code&gt; file is included below:&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-json&#34; data-lang=&#34;json&#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:#204a87;font-weight:bold&#34;&gt;&amp;#34;id&amp;#34;&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;handover-bypass&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:#204a87;font-weight:bold&#34;&gt;&amp;#34;suggestions&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;false&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:#204a87;font-weight:bold&#34;&gt;&amp;#34;triggerConditions&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;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:#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:#204a87;font-weight:bold&#34;&gt;&amp;#34;intent&amp;#34;&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;intent.common.handover&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:#204a87;font-weight:bold&#34;&gt;&amp;#34;intent&amp;#34;&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;intent.common.help&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:#204a87;font-weight:bold&#34;&gt;&amp;#34;intent&amp;#34;&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;intent.miscellaneous.advice&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:#204a87;font-weight:bold&#34;&gt;&amp;#34;onlyIn&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;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;whatsapp&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;whatsapp2&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 style=&#34;color:#a40000&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;i18n&#34;&gt;I18n&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;key&lt;/th&gt;
&lt;th&gt;example (es-cr)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;handover:handover.connect-to-agent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Debido a la naturaleza de tu petición, vamos a intentar ponerte en contacto con un agente de nuestro servicio de atención.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;handover:handover.end-of-handover&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Recuerda que puedo seguir ayudándote.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;handover:handover.error-connecting-to-agent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Se ha producido un error y no podemos contactar con los agentes, recuerda que seguimos atendiéndote en el 1004 y Movistar.es. También puedes intentarlo más tarde.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;handover:handover.error-message-to-genesys&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Se ha producido un error al enviar tu mensaje.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;handover:handover.off-hours-message&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Recuerda que seguimos atendiéndote en el 1004 y Movistar.es.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;handover:handover.unexpected-error&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Se ha producido un error y no podemos contactar con los agentes, recuerda que seguimos atendiéndote en el 1004 y Movistar.es. También puedes intentarlo más tarde.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;flows&#34;&gt;Flows&lt;/h2&gt;
&lt;p&gt;If the recognized intent for a user&amp;rsquo;s message is handled by &lt;em&gt;&lt;strong&gt;handover-genesys&lt;/strong&gt;&lt;/em&gt; dialogs, the &lt;em&gt;&lt;strong&gt;main&lt;/strong&gt;&lt;/em&gt; dialog will pass the conversational flow to it.&lt;/p&gt;
&lt;h3 id=&#34;validating-the-incoming-message&#34;&gt;Validating the incoming message&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;aura-bridge&lt;/strong&gt;&lt;/em&gt; sends all messages from &lt;strong&gt;Handover&lt;/strong&gt; with &lt;code&gt;auraCommand&lt;/code&gt; information in &lt;code&gt;channelData&lt;/code&gt;. The &lt;code&gt;auraCommand&lt;/code&gt; has the following format:&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:#204a87;font-weight:bold&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;AuraCommandType&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;Suggestion&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&#34;&gt;value&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 style=&#34;color:#000&#34;&gt;intent&lt;/span&gt;: &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;env.AURA_GENESYS_AURA_COMMAND_DEFAULT_INTENT&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;Therefore, if the &lt;code&gt;AURA_GENESYS_AURA_COMMAND_DEFAULT_INTENT&lt;/code&gt; environment variable value is set with the intent associated with this dialog, all messages from &lt;strong&gt;Handover&lt;/strong&gt; will be managed by this one regardless of the bypass state (the &lt;em&gt;&lt;strong&gt;aura-bot&lt;/strong&gt;&lt;/em&gt; recognizers will send it directly to the associated dialog with the intent).&lt;/p&gt;
&lt;p&gt;This also implies that a &lt;strong&gt;Handover&lt;/strong&gt; message can arrive and there is not a chat session opened with &lt;strong&gt;Handover&lt;/strong&gt;. To deal with this behavior, a new step has been added: &lt;code&gt;validatorMessageStep&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In this previous step to validate the incomming message, if the message has been sent from &lt;strong&gt;Handover&lt;/strong&gt; and the bypass model is not in &lt;code&gt;conversationData&lt;/code&gt; (bypass not created), then the message is ignored. Otherwise, the message will be processed by the next step: &lt;code&gt;startStep&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;start-bypass-mode&#34;&gt;Start bypass mode&lt;/h3&gt;
&lt;p&gt;The first time a user accesses this dialog, the cached information about &lt;strong&gt;bypass mode&lt;/strong&gt; will not exist in the &lt;code&gt;conversationData&lt;/code&gt;, so the &lt;code&gt;OnInit&lt;/code&gt; step of the dialog will be invoked to start the communication with the &lt;strong&gt;Handover&lt;/strong&gt; system.&lt;/p&gt;
&lt;p&gt;At the beginning of the process, the dialog will create the bypass model with the following initial values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bypass state: &lt;code&gt;Init&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Genesys connection state: &lt;code&gt;Connecting&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Bypass model TTL: Value of the &lt;code&gt;HANDOVER_BYPASS_MODEL_TTL&lt;/code&gt; variable&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Afterwards, the dialog will send a information message to the user (&lt;code&gt;handover:handover.connect-to-agent&lt;/code&gt;) and you will make a request to the &lt;code&gt;Genesys Request Chat&lt;/code&gt; endpoint using &lt;a href=&#34;../../../../docs/experiences-builder/api-clients/external-api-clients/#genesys-api-client&#34;&gt;&lt;em&gt;&lt;strong&gt;genesis-api-client&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The request to connect with Genesys contains the following information:&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-javascript&#34; data-lang=&#34;javascript&#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;nickname&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;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// Obtained from the information sent by the bridge or at its defect activity.from.id
&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:#8f5902;font-style:italic&#34;&gt;&lt;/span&gt;      &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;userData&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 style=&#34;color:#8f5902;font-style:italic&#34;&gt;// Detailed in &amp;#34;User Data profiles&amp;#34; section
&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:#8f5902;font-style:italic&#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;If the connection was made correctly, we will have a new chat to communicate with &lt;strong&gt;Handover&lt;/strong&gt; identified by the field &lt;code&gt;chatId&lt;/code&gt;. Immediately, and using the information obtained in the previous step, the previous message exchanged between the user and Aura will be sent to Genesys using &lt;code&gt;Genesys Send Message&lt;/code&gt; endpoint.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Format is described in &lt;a href=&#34;#message-history-format&#34;&gt;Message history format&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Finally, the dialog will keep the &lt;strong&gt;bypass model&lt;/strong&gt; in &lt;code&gt;conversationData&lt;/code&gt; as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bypass state: &lt;code&gt;Bypass&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Genesys connection state: &lt;code&gt;Connected&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Session: Chat information obtained in response to the call &lt;code&gt;Genesys Request Chat&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the variable &lt;code&gt;HANDOVER_ALWAYS_USE_REMOTE_CACHE&lt;/code&gt; is configured to &lt;code&gt;true&lt;/code&gt;, data will be saved remotely in the cache.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-plantuml&#34; data-lang=&#34;plantuml&#34;&gt;@startuml
title Start bypass mode

actor User
participant Channel #2f9c3c
participant Bridge #3275a8
participant Bot #ebba65
participant NLPRecognizerMiddleware
participant BypassModeMiddleware
participant BypassDialog
participant Genesys #ebdff7

User-&amp;gt;Channel: Write: &amp;#34;I want to speak with agent&amp;#34;
Channel-&amp;gt;Bridge: Channel Message Request
Note right of Channel: &amp;lt;example&amp;gt;
Bridge-&amp;gt;Bot: DL Message
Note right of Bridge: &amp;lt;example&amp;gt;
Bot-&amp;gt;NLPRecognizerMiddleware: recognize from context
NLPRecognizerMiddleware-&amp;gt;NLPRecognizerMiddleware: recognized intent: intent.common.handover
NLPRecognizerMiddleware-&amp;gt;BypassModeMiddleware: request context
Note right of BypassModeMiddleware: does nothing
BypassModeMiddleware-&amp;gt;BypassDialog: request context
BypassDialog-&amp;gt;BypassDialog: OnInit
BypassDialog-&amp;gt;Bot:
Bot-&amp;gt;Bridge:
Bridge-&amp;gt;Channel:
Channel-&amp;gt;User: Message: &amp;#34;handover:WA.handover.connect-to-agent&amp;#34;
Note right of BypassDialog: Set bypass to &amp;#34;Init&amp;#34; state
BypassDialog-&amp;gt;Genesys: Request Chat
Genesys-&amp;gt;BypassDialog:
BypassDialog-&amp;gt;Genesys: Send Message (message history)
Genesys-&amp;gt;BypassDialog:
Note right of BypassDialog: Set bypass to &amp;#34;Bypass&amp;#34; state
Genesys-&amp;gt;Bridge: PushNotification - Conversation starter messages with genesys
Bridge-&amp;gt;Bot:
Note right of Bot: For simplicity, we did not add the full bot sequence diagram
Bot-&amp;gt;Bridge:
Bridge-&amp;gt;Channel:
Channel-&amp;gt;User: Conversation starter messages with genesys

@enduml
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;error-connecting-with-handover&#34;&gt;Error connecting with Handover&lt;/h3&gt;
&lt;p&gt;In case of error when the request is made to the &lt;code&gt;Genesys Request Chat&lt;/code&gt; endpoint using &lt;a href=&#34;../../../../docs/experiences-builder/api-clients/external-api-clients/#genesys-api-client&#34;&gt;&lt;em&gt;&lt;strong&gt;genesis-api-client&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;, the bypass model information will be deleted in &lt;code&gt;conversationData&lt;/code&gt;, error logs informations will be generated and the message &lt;code&gt;handover:handover.error-connecting-to-agent&lt;/code&gt; to the user will be sent.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-plantuml&#34; data-lang=&#34;plantuml&#34;&gt;@startuml
title Error connecting with handover

actor User
participant Channel #2f9c3c
participant Bridge #3275a8
participant Bot #ebba65
participant NLPRecognizerMiddleware
participant BypassModeMiddleware
participant BypassDialog
participant Genesys #ebdff7

User-&amp;gt;Channel: Write: &amp;#34;I want to speak with agent&amp;#34;
Channel-&amp;gt;Bridge: Channel Message Request
Note right of Channel: &amp;lt;example&amp;gt;
Bridge-&amp;gt;Bot: DL Message
Note right of Bridge: &amp;lt;example&amp;gt;
Bot-&amp;gt;NLPRecognizerMiddleware: recognize from context
NLPRecognizerMiddleware-&amp;gt;NLPRecognizerMiddleware: recognized intent: intent.handover.bypass.init
NLPRecognizerMiddleware-&amp;gt;BypassModeMiddleware: request context
Note right of BypassModeMiddleware: does nothing
BypassModeMiddleware-&amp;gt;BypassDialog: request context
BypassDialog-&amp;gt;BypassDialog: OnInit
BypassDialog-&amp;gt;Bot:
Bot-&amp;gt;Bridge:
Bridge-&amp;gt;Channel:
Channel-&amp;gt;User: Message: &amp;#34;handover:WA.handover.connect-to-agent&amp;#34;
BypassDialog-&amp;gt;Genesys: Request Chat
Genesys-&amp;gt;BypassDialog:
BypassDialog-&amp;gt;BypassDialog: Capture and log error
BypassDialog-&amp;gt;Bot:
Bot-&amp;gt;Bridge:
Bridge-&amp;gt;Channel:
Channel-&amp;gt;User: Message: &amp;#34;handover:WA.handover.error-connecting-to-agent&amp;#34;

@enduml
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;sending-user-messages&#34;&gt;Sending user messages&lt;/h3&gt;
&lt;p&gt;Being in a &lt;code&gt;bypass&lt;/code&gt; state, any message received in the dialog will be processed by the &lt;code&gt;onByPass&lt;/code&gt; method.&lt;/p&gt;
&lt;p&gt;Once the &lt;strong&gt;bypass mode&lt;/strong&gt; has started (see &lt;a href=&#34;#start-bypass-mode&#34;&gt;Start bypass mode&lt;/a&gt;), any user message will be sent to Genesys using &lt;code&gt;sendGenesysMessageToAgent&lt;/code&gt; (&lt;a href=&#34;../../../../docs/experiences-builder/api-clients/external-api-clients/#genesys-api-client&#34;&gt;&lt;em&gt;&lt;strong&gt;genesis-api-client&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Then, the &lt;strong&gt;bypass model&lt;/strong&gt; is updated with the &lt;code&gt;alias&lt;/code&gt; field returned by the previous call.&lt;/p&gt;
&lt;p&gt;If an error occurs, error logs will be generated and an error message will be sent to the user with &lt;code&gt;handover:handover.error-message-to-genesys&lt;/code&gt; key.&lt;/p&gt;
&lt;h3 id=&#34;receiving-agent-or-system-messages&#34;&gt;Receiving agent or system messages&lt;/h3&gt;
&lt;p&gt;Being in a &lt;code&gt;bypass&lt;/code&gt; state, any message received in the dialog will be processed by the &lt;code&gt;onByPass&lt;/code&gt; method.&lt;/p&gt;
&lt;p&gt;When a message is received from Genesys, the message handler returns a function to handle this message using &lt;code&gt;participantType&lt;/code&gt; and &lt;code&gt;eventType&lt;/code&gt; fields.&lt;/p&gt;
&lt;p&gt;Messages currently handled (using &lt;code&gt;eventType&lt;/code&gt;) for agent or system:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;message&lt;/strong&gt;. Debug logs will be generated and the message of &lt;code&gt;context.activity.text&lt;/code&gt; is sent to the user using &lt;code&gt;sendActivity&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-plantuml&#34; data-lang=&#34;plantuml&#34;&gt;@startuml
title Agent or System send information

actor User
participant Agent #ebdff7
participant Channel #2f9c3c
participant Bridge #3275a8
participant Bot #ebba65
participant BypassModeMiddleware
participant BypassDialog

Agent-&amp;gt;Bridge: Write: &amp;#34;Hello, I am an Agent, how can I help you?&amp;#34;
Bridge-&amp;gt;Bot: DL Message
Bot-&amp;gt;BypassModeMiddleware: request context
Note right of BypassModeMiddleware: bypass state (continue)
BypassModeMiddleware-&amp;gt;BypassDialog: request context
BypassDialog-&amp;gt;BypassDialog: OnBypass
BypassDialog-&amp;gt;BypassDialog: externalMessageHandler.message
BypassDialog-&amp;gt;Bot:
Bot-&amp;gt;Bridge:
Bridge-&amp;gt;Channel:
Channel-&amp;gt;User: Message: &amp;#34;Hello, I am an Agent, how can I help you?&amp;#34;

@enduml
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;conversation-close&#34;&gt;Conversation close&lt;/h3&gt;
&lt;p&gt;The conversation can only be closed by Genesys. To close the conversation, Genesys will send a closing message with &lt;code&gt;quit-reason-code&lt;/code&gt; information (&lt;code&gt;GCTI_SYSTEM&lt;/code&gt; field).&lt;/p&gt;
&lt;p&gt;When the dialog receives this information, the message handler returns a function to handle this message using &lt;code&gt;participantType&lt;/code&gt; (&lt;code&gt;Client&lt;/code&gt;) and &lt;code&gt;eventType&lt;/code&gt; (&lt;code&gt;ParticipantLeft&lt;/code&gt;) fields:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;participantLeft&lt;/strong&gt;. It closes the bypass (the &lt;strong&gt;bypass model&lt;/strong&gt; information will be deleted in &lt;code&gt;conversationData&lt;/code&gt;) and sends activity to the user with &lt;code&gt;handover:handover.end-of-handover&lt;/code&gt; message.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;The &lt;a href=&#34;#handover-offhours&#34;&gt;Handover offhours&lt;/a&gt; section describes the closing process in detail.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;handover-offhours&#34;&gt;Handover offhours&lt;/h3&gt;
&lt;p&gt;When Genesys is in &lt;code&gt;offhours&lt;/code&gt; state, the connection will normally be done as described by the process &lt;a href=&#34;#start-bypass-mode&#34;&gt;Start bypass mode&lt;/a&gt;, but it will immediately send information indicating that it is in &lt;code&gt;offhours&lt;/code&gt; state.&lt;/p&gt;
&lt;p&gt;Any information message sent by Genesys will be sent to the user using &lt;code&gt;sendActivity&lt;/code&gt;. After this, Genesys will send a closing message with &lt;code&gt;quit-reason-code&lt;/code&gt; equal to &lt;code&gt;5&lt;/code&gt; (&lt;code&gt;GCTI_SYSTEM&lt;/code&gt; field).&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-json&#34; data-lang=&#34;json&#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:#204a87;font-weight:bold&#34;&gt;&amp;#34;from&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;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:#204a87;font-weight:bold&#34;&gt;&amp;#34;nickname&amp;#34;&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;UserNickname&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:#204a87;font-weight:bold&#34;&gt;&amp;#34;participantId&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&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:#204a87;font-weight:bold&#34;&gt;&amp;#34;type&amp;#34;&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;Client&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:#204a87;font-weight:bold&#34;&gt;&amp;#34;index&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;4&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:#204a87;font-weight:bold&#34;&gt;&amp;#34;type&amp;#34;&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;ParticipantLeft&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:#204a87;font-weight:bold&#34;&gt;&amp;#34;utcTime&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1616662697000&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:#204a87;font-weight:bold&#34;&gt;&amp;#34;eventAttributes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;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:#204a87;font-weight:bold&#34;&gt;&amp;#34;GCTI_SYSTEM&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;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:#204a87;font-weight:bold&#34;&gt;&amp;#34;quit-reason-code&amp;#34;&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;5&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 this case, the message handler returns a function to handle this message using &lt;code&gt;participantType&lt;/code&gt; (&lt;code&gt;Client&lt;/code&gt;) and &lt;code&gt;eventType&lt;/code&gt; (&lt;code&gt;ParticipantLeft&lt;/code&gt;) fields.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;participantLeft&lt;/strong&gt;. It closes the bypass (the &lt;strong&gt;bypass model&lt;/strong&gt; information will be deleted in &lt;code&gt;conversationData&lt;/code&gt;) and sends activity to user with &lt;code&gt;handover:handover.off-hours-message&lt;/code&gt; message.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-plantuml&#34; data-lang=&#34;plantuml&#34;&gt;@startuml
title Handover off hours

actor User
participant Channel #2f9c3c
participant Bridge #3275a8
participant Bot #ebba65
participant NLPRecognizerMiddleware
participant BypassModeMiddleware
participant BypassDialog
participant Genesys #ebdff7

User-&amp;gt;Channel: Write: &amp;#34;I want to speak with agent&amp;#34;
Channel-&amp;gt;Bridge: Channel Message Request
Bridge-&amp;gt;Bot: DL Message
Bot-&amp;gt;NLPRecognizerMiddleware: recognize from context
NLPRecognizerMiddleware-&amp;gt;NLPRecognizerMiddleware: recognized intent: intent.handover.bypass.init
NLPRecognizerMiddleware-&amp;gt;BypassModeMiddleware: request context
Note right of BypassModeMiddleware: does nothing
BypassModeMiddleware-&amp;gt;BypassDialog: request context
BypassDialog-&amp;gt;BypassDialog: OnInit
BypassDialog-&amp;gt;Bot:
Bot-&amp;gt;Bridge:
Bridge-&amp;gt;Channel:
Channel-&amp;gt;User: Message: &amp;#34;handover:WA.handover.connect-to-agent&amp;#34;
BypassDialog-&amp;gt;Genesys: Request Chat
Genesys-&amp;gt;BypassDialog:
Note right of BypassDialog: Create conversationData.bypassMode with default data and status BYPASS
Genesys-&amp;gt;Bridge: Hello! Yes, this is an automated message because we are not available right now ...
Bridge-&amp;gt;Bot: DL Message
Bot-&amp;gt;BypassModeMiddleware: request context
Note right of BypassModeMiddleware: bypass state (continue)
BypassModeMiddleware-&amp;gt;BypassDialog: request context
BypassDialog-&amp;gt;BypassDialog: OnBypass
BypassDialog-&amp;gt;BypassDialog: externalMessageHandler.message
BypassDialog-&amp;gt;Bot:
Bot-&amp;gt;Bridge:
Bridge-&amp;gt;Channel:
Channel-&amp;gt;User: Message: &amp;#34;Hello! Yes, this is an automated ...&amp;#34;

Genesys-&amp;gt;Bridge: ParticipantLeft (quit-reason-code: &amp;#34;5&amp;#34;)
Bridge-&amp;gt;Bot: DL Message
Bot-&amp;gt;BypassModeMiddleware: request context
Note right of BypassModeMiddleware: bypass state (continue)
BypassModeMiddleware-&amp;gt;BypassDialog: request context
BypassDialog-&amp;gt;BypassDialog: OnBypass
BypassDialog-&amp;gt;BypassDialog: clientMessageHandler.participantLeft
Note right of BypassDialog: close bypass
BypassDialog-&amp;gt;Bot:
Bot-&amp;gt;Bridge:
Bridge-&amp;gt;Channel:
Channel-&amp;gt;User: Message: &amp;#34;handover:handover.off-hours-message&amp;#34;

@enduml
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;non-controlled-exceptions&#34;&gt;Non-controlled exceptions&lt;/h3&gt;
&lt;p&gt;If an error not indicated previously in the flows occurs in any procedure, error logs information will be generated and the message &lt;code&gt;handover:handover.unexpected-error&lt;/code&gt; to the user will be sent.&lt;/p&gt;
&lt;h2 id=&#34;settings-1&#34;&gt;Settings&lt;/h2&gt;
&lt;p&gt;This section lists and describes all the variables the &lt;em&gt;&lt;strong&gt;handover-genesys&lt;/strong&gt;&lt;/em&gt; dialog uses and that can be configured to adapt the environment:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Property&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;HANDOVER_BYPASS_MODEL_TTL&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;Bypass model TTL. By default: &lt;code&gt;25&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;HANDOVER_CHAT_SERVICE_NAME&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Genesys chat service name. By default: &lt;code&gt;request-whatsapp-aura&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;HANDOVER_CHECK_STATUS_CHAT_SERVICE_NAME&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Genesys chat service name to testing. By default: &lt;code&gt;request-whatsapp-testaura&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;HANDOVER_USERDATA_GCTI_GMS_NODEGROUP&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;userData value to &lt;code&gt;GCTI_GMS_NODEGROUP&lt;/code&gt;. By default: &lt;code&gt;GMS_Cluster&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;HANDOVER_CLIENT_BASIC_AUTH_NAME&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;User for basic authentication in &lt;em&gt;genesys&lt;/em&gt; api. By default ``&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;HANDOVER_CLIENT_BASIC_AUTH_PASSWORD&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Password for basic authentication in &lt;em&gt;&lt;strong&gt;genesys-api&lt;/strong&gt;&lt;/em&gt;. By default ``&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HANDOVER_CLIENT_BASE_PATH_URL&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Base path to &lt;a href=&#34;../../../../docs/experiences-builder/api-clients/external-api-clients/#genesys-api-client&#34;&gt;&lt;em&gt;&lt;strong&gt;genesis-api-client&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;HANDOVER_ALWAYS_USE_REMOTE_CACHE&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;Always use remote cache to keep conversation. By default: &lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;message-history-format&#34;&gt;Message history format&lt;/h2&gt;
&lt;p&gt;As mentioned above, after connecting with Genesys, the message history is sent as an ordinary message. This message must meet the following format:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-pre&#34; data-lang=&#34;pre&#34;&gt;  (&amp;lt;DATE_ISO_FORMAT&amp;gt;)[&amp;lt;Usuario|AURA&amp;gt;]:&amp;lt;MESSAGE&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Example of message historic in the correct format:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-pre&#34; data-lang=&#34;pre&#34;&gt;   (2021-03-15T09:48:23)[Usuario]:Hola
   (2021-03-15T09:48:24)[AURA]:Hola. ¿Qué puedo hacer por ti?
   (2021-03-15T09:48:26)[Usuario]:¿Cuál es el importe de mi factura?
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;connections-profiles&#34;&gt;Connection&amp;rsquo;s profiles&lt;/h2&gt;
&lt;p&gt;The dialog can use a different profile to send specific data in &lt;code&gt;userData&lt;/code&gt; on the request to &lt;code&gt;Genesys Request Chat&lt;/code&gt; for each OB.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Currently, only the configuration for &lt;code&gt;es&lt;/code&gt; is available.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;es&#34;&gt;es&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;userData field&lt;/th&gt;
&lt;th&gt;value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;userData[GCTI_GMS_PushDeviceId]&lt;/td&gt;
&lt;td&gt;&lt;code&gt;AuraConversationData&lt;/code&gt; model in base64&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;userData[GCTI_GMS_NodeGroup]&lt;/td&gt;
&lt;td&gt;Value of &lt;em&gt;HANDOVER_USERDATA_GCTI_GMS_NODEGROUP&lt;/em&gt; variable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;userData[GCTI_Chat_AsyncMode]&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;userData[GCTI_Chat_PushSubscribe]&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;userData[GCTI_GMS_PushDeviceType]&lt;/td&gt;
&lt;td&gt;customhttp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;userData[GCTI_GMS_NotifyRequestor]&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;userData[GCTI_GMS_PushIncludePayload]&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;userData[GCTI_GMS_PushDebug]&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;userData[nickname]&lt;/td&gt;
&lt;td&gt;Obtained from the information sent by the bridge or, failing that, from &lt;code&gt;activity.from.id&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;userData[telefono]&lt;/td&gt;
&lt;td&gt;activity.from.id&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;userData[TipoAtencion]&lt;/td&gt;
&lt;td&gt;&amp;lsquo;GP_Atencion&amp;rsquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;userData[Origen_N1]&lt;/td&gt;
&lt;td&gt;&amp;lsquo;Whatsapp&amp;rsquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;userData[RoutingEspecifico]&lt;/td&gt;
&lt;td&gt;&#39;&#39;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;the field &lt;code&gt;userData[GCTI_GMS_PushDeviceId]&lt;/code&gt; is an object that must implement the &lt;code&gt;auraConversationData&lt;/code&gt; interface (defined in &lt;em&gt;@telefonica/aura-utilities/lib/aura-models&lt;/em&gt;), but it is coded in base64 to be sent in the request as a string.&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:#8f5902;font-style:italic&#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:#8f5902;font-style:italic&#34;&gt; * @interface AuraConversationData
&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:#8f5902;font-style:italic&#34;&gt; * @description Information needed to keep the conversation between handover and the bot.
&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:#8f5902;font-style:italic&#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:#204a87;font-weight:bold&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;interface&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;AuraConversationData&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&#34;&gt;auraId&lt;/span&gt;: &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;string&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&#34;&gt;auraChannelId&lt;/span&gt;: &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;string&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&#34;&gt;conversationId&lt;/span&gt;: &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;string&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&#34;&gt;correlator&lt;/span&gt;: &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;string&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&#34;&gt;answerCallback?&lt;/span&gt;: &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;string&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;This field, therefore, must be decoded in base64 to be managed correctly.&lt;/p&gt;

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