Support Logout NAV Navbar

Intro to Active.AI Platform

Active.AI conversational platform provides an AI-based customer engagement system that can cover all channels, be it messenger or voice, be it a direct customer channel or an assisted one and can power the bank to provide the deep engagement expected in this digital era. Active.AI's enterprise-grade platform can bring to live, a seamless, uniform and consistent experience across channels at different points of time. The customer-centric journey we are talking about is all around situations, sentiments, and emotions and every time it has to be contextual. A siloed approach of a chatbot here and a voice channel there can only provide a fragmented experience. An end to end AI platform for your conversational channels or virtual assistant (VA) can take the engagement several levels deeper through:

A platform approach for conversational channels for your customers can provide hyper-personalization, deeper engagement, and consistent and uniform experience through direct and assisted channels and even beyond the banks' own channels. Irrespective of channels, the Active.AI platform understands conversations, learn from conversations, replies appropriately and helps out in different possible ways based on all the data and analytics collated from various sources that already exist in the banks.

Into all

Triniti

Triniti is Active.AI's patent-pending proprietary conversational AI engine that has purpose-built models for understanding natural conversations, cognitive Q&A, Machine Comprehension and Predictive Services. In this document, we introduce the conversational engine and cognitive Q&A.
The powerful conversational AI engine caters to

The cognitive Q&A module caters to

Detailed capabilities and how to set them up are explained in the further sections of this document. A high-level component set are shown below.
Into triniti

Morfeus

The conversational middleware is the backbone of the platform that

Into morfeus 3.3

Neyo

The business applications layer of the Active.AI platform caters to all the out of the box supported vertical use cases. Currently, this covers various financial services verticals like banking, NBFCs, Securities and Insurance. Within banking use cases of various lines of businesses like retail banking and corporate banking are available out of the box. The supported use cases like balance inquiry, funds transfer, bill payments, card blocking, and credit card repayments, various service requests and many more such user journeys and configuring them are detailed in the appropriate sections of this document.

Supported Configurations

The platform currently supports & is certified with the following software and OS configurations:

Desc
OS Linux (RHEL 7.x, CentOS 7 and 8, Amazon Linux)
Containers Docker 18.09
JDK 17
Web Servers Apache HTTP Server 2.4.x, Oracle HTTP Server, NGINX
App Servers Tomcat 9.0.65, JBoss EAP 7.4
DB Servers MySQL 8.0.28, MariaDB 10.x+, Oracle 19c
ElasticSearch v7.17.2
Neo4j v4.4.5
Redis v6.2

Pre-requisites

Morfeus platform requires few pre-requisite software to run. Here are the dependent software units -

Each of these software's can be run via dockers as well as can be installed in non-docker mode. Please refer to relevant sections for more details.

Dockerized Install

Morfeus platform requires below pre-requisites to be installed.

Please refer to instructions listed here to install docker in your respective enviornment

Alternatively, you can also follow the below steps in MacOS or Linux. You can use yum or homebrew to install docker.

    # Using yum
    yum update
    yum install -y docker
    service docker start 
    # Using homebrew
    brew update
    brew install docker
    service docker start 
    docker run -dit --name=mysql -p 33.7:33.7 --env="MYSQL_ROOT_PASSWORD=password" mysql:8.0.28    

Once the mysql installation is over, please create an empty database.

    docker exec -t bash <mysql container id>
    mysql -u<username> -p
    mysql > CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';
    mysql > create database morfeus_db;
    mysql > GRANT ALL PRIVILEGES ON morfeus_db.* TO 'newuser'@'%';
 docker run -dit --name redis -p 6379:6379 redis
 docker run --name elasticsearch -dit -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch
/elasticsearch-oss:7.17.2

Please install neo4j from here

docker run \
    --publish=7474:7474 --publish=7687:7687 \
    --volume=$HOME/neo4j/data:/data \
    neo4j

Standalone Install

Quick Installation

Dockers

A quick install guide to Morfeus platform. This steps uses docker to install all required artifacts. Please refer to dockerized install page for details.

Install Morfeus

Morfeus docker images are hosted in dockerhub repository. Please contact us for details. You can also refer to resources page for more details.

Morfeus docker requires following enviornment properties to work properly. Please note the property names and its default values.

MYSQL_DATABASE=morfeus_db 
MYSQL_HOST=localhost 
MYSQL_PORT=33.7 
MYSQL_USER=root 
MYSQL_ROOT_PASSWORD=password 
REDIS_HOST=localhost 
REDIS_PORT=6379 
NEO4J_USERNAME=neo4j 
NEO4J_PASSWORD=password 
NEO4J_URL=bolt://localhost:7687 
MCAST_PORT=55599 
MAX_JVM_MEM=-Xmx2560m

To run morfeus docker with the above default properties just type the below docker command to boot morfeus server.

docker run -d -p 8080:8080 activeintelligencepteltd/morfeus:2.5.1

In case you are customizing any of the property names, please use the below command to boot morfeus server

docker run -d -p 8080:8080 -e {property_name}={property value} activeintelligencepteltd/morfeus:2.5.1

Once the installation is done, follow the verification steps to ensure that system is up and running and configured correctly by following these steps

Setup on Workspaces (Hosted)

What is Workspaces?

Setup a Workspace

Workspacelogin

  1. Click on "Add workspace".
  2. Mention the name of the workspace in the prompted window.
  3. Select "Banking (Retail Banking, Corporate Banking or Retail lending) / Insurance / Trading / Custom" domain.
  4. Click on create a workspace.

Wokspace creation

Workspace creation will load base data and default data to the workspace as following :

Path of file admin-backend-api/src/main/resources/properties/config.properties

Enable webapp

Manage ai1

Manage ai2

Country

Instance Creation

Morfeus instance

Morfeus instance up

Trinity instance

Download the sample workspace from here

Standalone Installation

Complimenting the containerized installation strategies, all products in Active.ai supports standalone, from the scratch installations as well. Many a times our customer needs a details non-container based installation procedure in-line with their own IT strategy. In this section we will go through in detail setup procedure of Morfeus on 4 types of application servers.

Morfeus on Tomcat

Tomcat is most common application server in enterprise java world. Morfeus runs both in development enviornments as well as production in Tomcat.

Pre Requisites

Install Tomcat from https://tomcat.apache.org site. Please check for the supported version. All other prerequisite can be installed from this link.

Tomcat Setup

* Add the following configuration in tomcat/conf/context.xml

     <Resource name="jms/mqConnectionFactory"
              auth="Container"
              type="org.apache.activemq.ActiveMQConnectionFactory"
              description="JMS Connection Factory"
              factory="org.apache.activemq.jndi.JNDIReferenceFactory"
              brokerURL="vm://localhost:61616?brokerConfig=xbean:file:${ACTIVEMQ-CONF-PATH}/activemq.xml" 
              trustAllPackages="true" />

    <Resource name="jms/socialInQueue"
              auth="Container"
              type="org.apache.activemq.command.ActiveMQQueue"
              factory="org.apache.activemq.jndi.JNDIReferenceFactory"
              physicalName="SocialInQueue"/>

    <Resource name="jms/socialOutQueue"
              auth="Container"
              type="org.apache.activemq.command.ActiveMQQueue"
              factory="org.apache.activemq.jndi.JNDIReferenceFactory"
              physicalName="SocialOutQueue"/>

    <Resource name="jms/socialBroadcastInQueue"
             auth="Container"
             type="org.apache.activemq.command.ActiveMQQueue"
             factory="org.apache.activemq.jndi.JNDIReferenceFactory"
             physicalName="socialBroadcastInQueue"/>


    <Resource name="jms/socialBroadcastOutQueue"
             auth="Container"
             type="org.apache.activemq.command.ActiveMQQueue"
             factory="org.apache.activemq.jndi.JNDIReferenceFactory"
             physicalName="socialBroadcastOutQueue"/>

    <Resource name="jms/auditQueue"
              auth="Container"
              type="org.apache.activemq.command.ActiveMQQueue"
              factory="org.apache.activemq.jndi.JNDIReferenceFactory"
              physicalName="AuditQueue"/>
    <Resource name="jms/transactionAuditQueue"
              auth="Container"
              type="org.apache.activemq.command.ActiveMQQueue"
              factory="org.apache.activemq.jndi.JNDIReferenceFactory"
              physicalName="TransactionAuditQueue"/>
    <Resource name="jms/userProfileQueue"
              auth="Container"
              type="org.apache.activemq.command.ActiveMQQueue"
              factory="org.apache.activemq.jndi.JNDIReferenceFactory"
              physicalName="UserProfileQueue"/>

    <Resource name="jdbc/MorfeusDB" 
              global="jdbc/MorfeusDB" 
              auth="Container" 
              type="javax.sql.DataSource" 
              driverClassName="com.mysql.jdbc.Driver" 
              url="jdbc:mysql://localhost:33.7/{database_name}" 
              username="{username}" 
              password="{password}" 
              maxTotal="100" 
              maxIdle="20" 
              minIdle="5" 
              maxWaitMillis="10000"/>

morfeus.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resources className="org.apache.catalina.webresources.StandardRoot" cachingAllowed="true" cacheMaxSize="100000">
        <JarResources 
            className="org.apache.catalina.webresources.DirResourceSet" 
            base="{EXTERNAL_LIB_LOCATION}/morfeus-lib"
            webAppMount="/WEB-INF/lib" />
    </Resources>
</Context>

catalina.sh

JAVA_OPTS="$JAVA_OPTS -Dorg.owasp.esapi.resources={ESAPI config folder location}"
JAVA_OPTS="$JAVA_OPTS -Dadmin.config.path={Admin Config Path}"
JAVA_OPTS="$JAVA_OPTS -Dretail.banking.resources={Retail banking properties folder location}"
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses"
JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=flyway.disable,redis" (OPTIONAL: To disable flyway)
JAVA_OPTS="$JAVA_OPTS -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector"
JAVA_OPTS="$JAVA_OPTS -Dlog4j2.DiscardThreshold=INFO"
JAVA_OPTS="$JAVA_OPTS -Dlog4j2.AsyncQueueFullPolicy=Discard"
JAVA_OPTS="$JAVA_OPTS -DMORFEUS_LOG_LEVEL=DEBUG"
JAVA_OPTS="$JAVA_OPTS -DOTHER_LOGS_LEVEL=DEBUG"
JAVA_OPTS="$JAVA_OPTS -Dorg.apache.activemq.SERIALIZABLE_PACKAGES='*'"
JAVA_OPTS="$JAVA_OPTS -DredisHost=localhost"
JAVA_OPTS="$JAVA_OPTS -DredisPort=6379"
JAVA_OPTS="$JAVA_OPTS -DtranslateRedisHost=localhost"
JAVA_OPTS="$JAVA_OPTS -DtranslateRedisPort=6379"
JAVA_OPTS="$JAVA_OPTS -DtranslateRedisDatabase={Number}"
JAVA_OPTS="$JAVA_OPTS -DLOG_PATH={Morfeus log files path}"
JAVA_OPTS="$JAVA_OPTS -Djgroups.udp.mcast_port=55599"

Once all the above steps are done, move to verification steps.

Morfeus On JBoss

JBoss, is an application server authored by JBoss, now developed by Red Hat.

Pre Requisites

Install Jboss from https://developers.redhat.com/products/eap/download/ site. All other prerequisite can be installed from this link.

Jboss Setup

Goto JBOSS_HOME/standalone/configuration
open standalone-full.xml
Add below code in datasources - subsystem.

<datasource jndi-name="java:jboss/env/jdbc/MorfeusDB" pool-name="Morfeus" enabled="true" use-java-context="true">
    <connection-url>jdbc:mysql://localhost:33.7/activeai</connection-url>
    <driver>mysql</driver>
    <security>
        <user-name>root</user-name>
       <password>root</password>
    </security>
    <statement>
        <prepared-statement-cache-size>100</prepared-statement-cache-size>
        <share-prepared-statements>true</share-prepared-statements>
    </statement>
</datasource>
<subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0">
    <server name="default">
        <security enabled="false"/>
        <security-setting name="#">
            <role name="guest" delete-non-durable-queue="true" create-non-durable-queue="true" consume="true" send="true"/>
        </security-setting>
        <address-setting name="#" message-counter-history-day-limit="10" page-size-bytes="2097152" max-size-bytes="10485760" expiry-address="jms.queue.ExpiryQueue" dead-letter-address="jms.queue.DLQ"/>
        <http-connector name="http-connector" endpoint="http-acceptor" socket-binding="http"/>
        <http-connector name="http-connector-throughput" endpoint="http-acceptor-throughput" socket-binding="http">
            <param name="batch-delay" value="50"/>
        </http-connector>
        <in-vm-connector name="in-vm" server-id="0"/>
        <http-acceptor name="http-acceptor" http-listener="default"/>
        <http-acceptor name="http-acceptor-throughput" http-listener="default">
            <param name="batch-delay" value="50"/>
            <param name="direct-deliver" value="false"/>
        </http-acceptor>
        <in-vm-acceptor name="in-vm" server-id="0"/>
        <jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/>
        <jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/>
        <jms-queue name="emailQ" entries="java:/queue/emailQ java:/jboss/exported/emailQ"/>
        <jms-queue name="smsQ" entries="java:/queue/smsQ java:/jboss/exported/smsQ"/>
        <jms-queue name="socialOutQueue" entries="java:/queue/socialOutQueue java:/jboss/exported/socialOutQueue"/>
        <jms-queue name="socialInQueue" entries="java:/queue/socialInQueue java:/jboss/exported/socialInQueue"/>
        <jms-queue name="transactionAuditQueue" entries="java:/queue/transactionAuditQueue java:/jboss/exported/transactionAuditQueue"/>
        <jms-queue name="auditQueue" entries="java:/queue/auditQueue java:/jboss/exported/auditQueue"/>
        <jms-queue name="userProfileQueue" entries="java:/queue/userProfileQueue java:/jboss/exported/userProfileQueue"/>
        <jms-queue name="loginQueue" entries="java:/queue/loginQueue java:/jboss/exported/loginQueue"/>
        <jms-queue name="spendQueryQueue" entries="java:/queue/spendQueryQueue java:/jboss/exported/spendQueryQueue"/>
        <jms-queue name="socialBroadcastInQueue" entries="java:/queue/socialBroadcastInQueue java:/jboss/exported/socialBroadcastInQueue"/>
        <jms-queue name="socialBroadcastOutQueue" entries="java:/queue/socialBroadcastOutQueue java:/jboss/exported/socialBroadcastOutQueue"/>
        <connection-factory name="mqConnectionFactory" reconnect-attempts="5" entries="java:jboss/mqConnectionFactory" connectors="http-connector"/>
        <connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/>
        <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector"/>
        <pooled-connection-factory name="activemq-ra" transaction="xa" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm"/>
    </server>
</subsystem>
<subsystem xmlns="urn:jboss:domain:resource-adapters:5.0">
    <resource-adapters>
        <resource-adapter id="activemq-ra.rar">
            <archive>
                activemq-ra.rar
            </archive>
            <transaction-support>XATransaction</transaction-support>
            <config-property name="ServerUrl">
                vm://localhost:61616
            </config-property>
            <config-property name="UserName">
                admin
            </config-property>
            <config-property name="UseInboundSession">
                false
            </config-property>
            <config-property name="Password">
                password
            </config-property>
            <connection-definitions>
                <connection-definition class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory" jndi-name="java:jboss/mqConnectionFactory" enabled="true" pool-name="mqConnectionFactory" />
            </connection-definitions>
            <admin-objects>
                <admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/jms/socialInQueue" use-java-context="true" pool-name="socialInQueue">
                    <config-property name="PhysicalName">
                        socialInQueue
                    </config-property>
                </admin-object>
                <admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/jms/transactionAuditQueue" use-java-context="true" pool-name="transactionAuditQueue">
                    <config-property name="PhysicalName">
                        transactionAuditQueue
                    </config-property>
                </admin-object>
                <admin-object class-name="org.apache.activemq.command.ActiveMQTopic" jndi-name="java:/jms/socialOutQueue" use-java-context="true" pool-name="socialOutQueue">
                    <config-property name="PhysicalName">
                        socialOutQueue
                    </config-property>
                </admin-object>
                <admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/jms/loginQueue" use-java-context="true" pool-name="loginQueue">
                    <config-property name="PhysicalName">
                        loginQueue
                    </config-property>
                </admin-object>
                <admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/jms/auditQueue" use-java-context="true" pool-name="auditQueue">
                    <config-property name="PhysicalName">
                        auditQueue
                    </config-property>
                </admin-object>
                <admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/jms/spendQueryQueue" use-java-context="true" pool-name="spendQueryQueue">
                    <config-property name="PhysicalName">
                        spendQueryQueue
                    </config-property>
                </admin-object>
                <admin-object class-name="org.apache.activemq.command.ActiveMQQueue" jndi-name="java:/jms/userProfileQueue" use-java-context="true" pool-name="userProfileQueue">
                    <config-property name="PhysicalName">
                        userProfileQueue
                    </config-property>
                </admin-object>
            </admin-objects>
        </resource-adapter>
    </resource-adapters>
</subsystem>

nohup sh standalone.sh -c standalone-full.xml -Dorg.owasp.esapi.resources=/home/dev01/morfeus/config/ESAPI -DredisHost=localhost -DredisPort=6379 -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management=0.0.0.0 -Djboss.socket.binding.port-offset=100 -Dorg.owasp.esapi.resources=/home/dev01/morfeus/config/ESAPI -Dretail.banking.resources=/home/dev01/retailbanking -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses -Djboss.server.log.threshold=DEBUG -DLOG_PATH=/data1/software/logs -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dlog4j2.DiscardThreshold=DEBUG -Dlog4j2.AsyncQueueFullPolicy=Discard -DMORFEUS_LOG_LEVEL=DEBUG -DOTHER_LOGS_LEVEL=DEBUG -Dadmin.config.path=/home/dev01/morfeus/config  &

Once all the above steps are done, move to verification steps.

Morfeus on Weblogic

Pre Requisites

Setting up Weblogic  12.2.1.3 installation and configuring domain:

  1. Download : the weblogic quick installer
  2. run java -jar quickInstallerJarName
  3. cd /fmw_12.2.1.3.0_wls_quick_Disk1_1of1/wls12213/oracle_common/common/bin
  4. sh config.sh
  5. cd /fmw_12.2.1.3.0_wls_quick_Disk1_1of1/wls12213/user_projects/domains/morfeus/bin/
  6. add morfeus environment variable in startWeblogic.sh file

    JAVA\_OPTIONS="$JAVA\_OPTIONS -Xmx1024m -Xdebug -Xnoagent -Xrunjdwp:transport=dt\_socket,address=8457,server=y,suspend=n"
    JAVA\_OPTIONS="$JAVA\_OPTIONS -Dorg.owasp.esapi.resources=/morfeus/config/admin/esapi"  
    JAVA\_OPTIONS="$JAVA\_OPTIONS -Dadmin.config.path=/morfeus/config/admin/"  
    JAVA\_OPTIONS="$JAVA\_OPTIONS -Dretail.banking.resources=/Project/morfeus/retailbanking/"  
    JAVA\_OPTIONS="$JAVA\_OPTIONS -[Djava.net](http://Djava.net).preferIPv4Stack=true -[Djava.net](http://Djava.net).preferIPv4Addresses"  
    #JAVA\_OPTIONS="$JAVA\_OPTIONS -Dspring.profiles.active=flyway.disable"  
    JAVA\_OPTIONS="$JAVA\_OPTIONS -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector"  
    JAVA\_OPTIONS="$JAVA\_OPTIONS -Dlog4j2.DiscardThreshold=INFO"  
    JAVA\_OPTIONS="$JAVA\_OPTIONS -Dlog4j2.AsyncQueueFullPolicy=Discard"  
    JAVA\_OPTIONS="$JAVA\_OPTIONS -DMORFEUS\_LOG\_LEVEL=DEBUG"  
    JAVA\_OPTIONS="$JAVA\_OPTIONS -DOTHER\_LOGS\_LEVEL=DEBUG"  
    JAVA\_OPTIONS="$JAVA\_OPTIONS -Dorg.apache.activemq.SERIALIZABLE\_PACKAGES='\*'"  
    JAVA\_OPTIONS="$JAVA\_OPTIONS -DredisHost=localhost"  
    JAVA\_OPTIONS="$JAVA\_OPTIONS -DredisPort=6379"  
    JAVA\_OPTIONS="$JAVA\_OPTIONS -DLOG\_PATH=/Project/morfeus/logs"
    
  7. Configure datasource as show in DataSource setup.

  8. Deploy the wars and activate them.

  9. sh startWebLogic.sh

DataSource  setup:

1. Login to the Weblogic console.

Login weblogic

2. Navigate to the Services → Data Sources . Create data source with MorfeusDB JNDI name with 

Datasource1

3. Configure the database credentials and map to the required server in Targets tab.

Datasource1

WAR  deployment:

1.Using the Deployments option, upload the wars 

Wardeploy

War1

JMS Configuration

  1. Configure the JMS Server

Jms1

2. Configure the JMS Modules with required queues and target to the above JMS Server. 

Jms2

Shared Library Configuration

Below entry in weblogic.xml 

<wls:library-ref>

<wls:library-name>CommonJars</wls:library-name>

</wls:library-ref>

CommonJars is a war which can to be deployed as Library and referred by Morfeus war.

Install, Upgrade Triniti

Welcome to Triniti installation guide. The access to artifactory links will be provided from your Active.ai sales representative.

OS Compatibility

Triniti is certified on the operating systems below

OS Dependencies

Please install the following OS dependencies before proceeding

Triniti Dependencies

If your server does not have access to internet and active ai aritfactory network, please download the following dependencies before proceeding with the installation. Please refer to resources for details on Triniti Dependencies, External Dependencies and Generic AI Models

Installation

Proceed with installation only if you have access to the internet and active ai artifactory to download the dependencies automatically or you have downloaded the dependencies in the previous

DATA_HOME : //data BASE_MODELS_HOME : // triniti45_models DEVICE : cpu VERSION : 4.5.03 SERVER_PORT : 8000 ``` Edit the supervisord.conf file as per your setup

[triniti45_8000] environment=DATA_HOME="/data", CUDA_VISIBLE_DEVICES="", TOKENIZERS_PARALLELISM=false, LOGS_HOME="/opt/logs", BASE_MODELS_HOME="/opt/models", PYTHONUNBUFFERED=1 directory=/opt/triniti45_setup_12102022/trinitiv45_env/lib/python3.8/site-packages/triniti stdout_logfile=/opt/logs/%(program_name)s.log stderr_logfile=/opt/logs/%(program_name)s.log command=bash -c 'source /opt/triniti45_setup_12102022/trinitiv45_env/bin/activate && python3 -m triniti.cli restart --host 192.168.3.71 --port 8000' process_name=%(program_name)s numprocs=1 autorestart=false user=dev01 stdout_logfile_maxbytes=1GB stdout_logfile_backups=10 stderr_logfile_maxbytes=1GB stderr_logfile_backups=10


### Starting and Stopping Triniti 

<ol>
<li>activate the virtual environment</li>
<li>source /bin/activate</li>
<li>Run supervisord -c supervisord.conf ( start the Triniti server in supervisord daemon mode)</li>
<li>To Manage Triniti Via supervisor</li>
<li>Supervisorctl status (Check triniti service status) supervisorctl restart < triniti_manager> (restart Triniti services)</li>
<li>supervisorctl stop (stop Triniti services) supervisorctl start (start Triniti services)</li>
</ol>

### Docker Installation

<ol>
<li>docker pull 940330296631.dkr.ecr.ap-southeast-1.amazonaws.com/triniti:triniti:4.5</li>

<li>docker run -d -p 80:80 -p 8080:8080 --name triniti45 940330296631.dkr.ecr.ap-southeast-1.amazonaws.com/triniti:triniti4.5</li>
</ol>

On AWS

Via Cloudformation

Verifying Installation

Below are the steps to verify if morfeus server is running properly -

java -[Djava.net](http://Djava.net).preferIPv4Stack=true -[Djava.net](http://Djava.net).preferIPv6Addresses=false -classpath jgroups-3.1.0.Final.jar org.jgroups.tests.Probe

Setup Hello Card Assistant using Import Workspace

This section helps in setting up a workspace with a sample Hello Card use case. You can also follow along with the steps to configure the same in your local.

To setup morfeus and admin portal locally, follow this article.



In this tutorial, you will build a simple assistant which will help in blocking card.

hellocardchat

Create a new workspace

Login to the admin portal

  1. Click on "Add workspace".
  2. Mention the name of the workspace in the prompted window.
  3. Select "Banking (Retail Banking, Corporate Banking or Retail lending) / Insurance / Trading / Custom" domain.
  4. Click on create a workspace.

workspace creation

Workspace creation will load base data and default data to the workspace as following :

Path of file admin-backend-api/src/main/resources/properties/config.properties

Import Workspace

  1. Download HelloCard workspace from here.
  2. Go to the dashboard of the admin panel.
  3. Click on the top right side 3-dots on your workspace to open options dialog.
  4. Click on the Import Workspace option.
  5. Click on Yes button on the popup to confirm the workspace overwrite.
  6. Select the ZIP file downloaded in the first step.
  7. A progress bar will appear. Wait for it to finish loading.

import workspace

Configure WebSDK

  1. Click on the workspace to open Configure Workspace window.
  2. Click on Manage Channels
  3. In the enabled channels, you will see `Webapp' channel. Click on the top right side 3-dots on the channel to open options dialog.
  4. Click on the Edit Channel option.
  5. In the General Configuration, you will find the Input Message URL Endpoint.
  6. Copy the bot channel ID from the URL. If the URL is like http://zu8po5p1w9.triniti.ai:80/morfeus/v1/channels/35w35008033.76/message, 35w35008033.76 is the bot channel ID.
  7. In your WebSDK code open index.js located inside js folder.
  8. Update the botId with the bot channel ID obtained earlier.

Update the bot configuration

  1. Click on the workspace to open Configure Workspace window.
  2. Click on Manage Rules.
  3. In the General tab, look for Elastic Search URL update it to point it to your Elastic Search. And Save.
  4. Click on the Deploy option on the left side menu.
  5. Go to the Bot Ops tab and click the Create button under Datalake Indices.

Verify

Verify Intent Data

  1. Click on the workspace to open Configure Workspace window.
  2. Click on Manage AI option on the left side menu.
  3. Click on Setup Intents.
  4. txn-productclosure intent is present with sample utterances.

Verify Entities Data

  1. Click on the workspace to open Configure Workspace window.
  2. Click on Manage AI option on the left side menu.
  3. Click on Setup Entities.

Verify Workflow

  1. Click on the workspace to open Configure Workspace window.
  2. Click on Manage Functions option on the left side menu.
  3. Open Block Card function.
  4. Go to the Fulfillment tab.
  5. Click on Manage Workflow button.

workflow

To know more about workflow, check here.

Verify Flow

  1. Open WebSDK Channel Chatbot in the browser.
  2. Type "Block card".

Deployment Options

On Premise

The below diagram explains the architetcure for on premise deployments.

Architecture

<onprem >

Deployment Entities

Deployment Entity Description Comments
Web Server Web Server Optional for cloud or non 3 tier architecture , can run on App Server
App Server (Runtime) Conversational Middleware Runtime (Morfeus)
App Server (Admin ) Conversational Middleware Admin Server (Morfeus) Optional , recommended for better security . Can be also deployed on App Server
AI Runtime Conversational AI Engine (Triniti)
AI Language Server AI Language translation Only for multi lingual deployments
Database Configuration, user and transaction storage
Secondary Cache For additional performance
Analytics Reporting
Graph Knowledge Graph

Scalability

The Active AI Platform deployment architecture supports High Availabiity and Scalability with support for clustering and failover.

Entity Scalability & High Availability Failover Comments
Web Server Yes Yes Positioned behind the existing Enterprise Hardward Load Balancer in sticky session mode
App Server (Morfeus Runtime) Yes Yes Load Balancing & failover done by the mod_jk plugin in web server
Admin Server (Morfeus Admin) Yes No An internal Web Server and ELB is a pre requisite
AI Runtime (Triniti Slave) Yes Yes Triniti Slaves are software load balanced by Morfeus , internal hardware load balancer can be used as well
AI Master&Manager (Triniti Slave) No No AI Manager is not meant for real time processing
AI Language Server (Slave) Yes Yes Triniti Slaves are software load balanced by Morfeus , internal hardware load balancer can be used as well
Database Yes Yes Scalability and HA options can be configured as per the Database provider
Elastic Cache(Analytics) Yes Yes Support for Scalability and HA in cluster mode
Redis(Cache) Yes Yes Support for Scalability and HA in cluster mode
Neo4J(KnowledgeGraph) Yes Yes Support for Scalability and HA in cluster mode

DR

The Active AI Platform deployment architecture supports various standard DR strategies.

Entity DR Comments
Web Server Yes Support for Active-Active or Active-Passive based on Enterprise policies
App Server (Morfeus Runtime) Yes Support for Active-Active or Active-Passive based on Enterprise policies
Admin Server (Morfeus Admin) Yes Support for Active-Active or Active-Passive based on Enterprise policies
AI Runtime(Triniti Slave) Yes Support for Active-Active or Active-Passive based on Enterprise policies
AI Master&Manager (Triniti Slave) No Support for Active-Passive modes
AI Language Server (Slave) Yes Support for Active-Active or Active-Passive based on Enterprise policies
Database Cloud Support for Active-Active or Active-Passive based on Enterprise replication policies
Elastic Cache(Analytics) Cloud Support for Active-Active or Active-Passive based on Enterprise policies
Redis(Cache) Cloud Support for Active-Active or Active-Passive based on Enterprise policies
Neo4J(KnowledgeGraph) Cloud Support for Active-Active or Active-Passive based on Enterprise policies

AWS Cloud

The Active AI Platforms is compatible with AWS and supports containerization based deployment strategies

Architecture

<sws >

Deployment Entities

Deployment Entity Description Comments
App Server (Runtime) Conversational Middleware Runtime (Morfeus)
App Server (Admin ) Conversational Middleware Admin Server (Morfeus) Optional , recommended for better security . Can be also deployed on App Server
AI Runtime Conversational AI Engine (Triniti)
AI Language Server AI Language translation Only for multi lingual deployments
Database Configuration, user and transaction storage RDS , Managed Services
Secondary Cache For additional performance Elastic Cache
Analytics Reporting Managed ElasticSearch
Graph Knowledge Graph
ELB Application Load Balancer mode
WAF Optional , Recommended
EFS Triniti Training
NAT Gateway
S3 & Cloudfront For hosting WebSDK
Guard Duty Optional , Recommended for Security
ElasticSearch (Logs) Log Aggregation across instances
CloudWatch Monitoring

DR

The Active AI Platform deployment architecture supports High Availability and Scalability with support for clustering and failover. It utilizes the underlying capabilities of AWS like AutoScale and clustering and HA capabilities for Managed Instances.

Sizing Estimates

This section provides an estimate of the infrastructure requirements for deploying the platform in different configurations and environments

The platform supports deployments in the following environments

· On Premise (Bare Metal Servers)

· Cloud (AWS)

Platform Software & OS Support

Please refer to supported configuration page for details.

Sizing Definitions

Deployment Types Environment Concurrent Users Comments
Small (Non-HA)

Bare Metal

600

Small (HA)

Bare Metal

1,200

Medium (HA)

Bare Metal

2,400

Large & Custom (HA)

Bare Metal

4,000

Please contact us
Small

AWS Private Cloud

600

Can Auto Scale
Medium

AWS Private Cloud

1,200

Can Auto Scale

On Premise

SIT & UAT Deployments

SIT
Setup No. of nodes Cores Memory (GB) Storage GB (SSD)
Web

Server

1 1 4 25
App & Admin Server 1 1 8 25
AI Runtime Server 1 4 32 50
Database Server 1 2 8 50
AI Master & Manager Server 1 16 32 50
AI Language Server* 1 1 16 50
Analytics & Cache Server 1 2 8 25
UAT
Setup No. of nodes Cores Memory (GB) Storage GB (SSD)
Web

Server

1 2 4 25
App & Admin Server 1 2 8 50
AI Runtime Server 1 4 32 50
Database

Server

1 2 8 50
AI Master & Manager Server 1 16 32 50
AI Language Server* 1 1 16 50
Analytics & Cache Server 1 2 8 25
SIT & UAT
Setup No. of nodes Cores Memory (GB) Storage GB (SSD)
Web

Server

1 2 4 50
App & Admin Server 1 2 16 100
AI Runtime Server 2 4 64 100
Database

Server

1 2 8 100
AI Master & Manager Server 1 16 32 100
AI Language Server* 1 2 32 100
Analytics & Cache Server 1 2 16 100

Production HA (Small)

Production
Setup No. of nodes Cores Memory (GB) Storage GB (SSD)
Web

Server

2 4 8 25
App

Server

2 4 8 50
Admin

Server

1 2 8 50
AI Runtime Server 2 4 32 50
Database

Server

2 4 16 50 + 100 GB (SAN)
AI Master & Manager Server 1 16 32 50
AI Language Server* 2 2 16 50
Analytics & Cache Server 2 2 16 50

Production Non HA (Small)

Production
Setup No. of nodes Cores Memory (GB) Storage GB (SSD)
Web

Server

1 4 8 25
App

Server

1 4 8 50
Admin

Server

1 2 8 50
AI Runtime Server 1 4 32 50
Database

Server

1 4 16 50 + 100 GB (SAN)
AI Master & Manager Server 1 16 32 50
AI Language Server 1 2 16 50
Analytics & Cache Server 1 2 16 50

Production HA (Medium)

Production
Setup No. of nodes Cores Memory (GB) Storage GB (SSD)
Web

Server

2 4 8 25
App

Server

2 8 16 50
Admin

Server

1 2 8 50
AI Runtime Server 2 8 64 50
Database

Server

2 8 16 50 + 250 GB (SAN)
AI Master & Manager Server 1 16 32 50
AI Language Server 2 4 16 50
Analytics & Cache Server 2 4 16 50

GPU

We would recommend attaching a GPU with the AI Master Server for faster training cycles.

Deployment Types GPU Recommendation Comments
Small

Tesla P100

Medium & Large

Tesla V100

Assumptions

• Application Log archival period on all servers is assumed to be 1 week

• Database archival period is assumed to be 6 months

• AI Runtime and Master Servers will be running Triniti Dockers

• Admin Server is optional but recommended

• NFS between AI Master and Runtime is required

• Replication will be handled and configured by customer team based on current practices

• Switchover from production to DR will be handled and configured by customer team based on current practices

AWS

SIT & UAT

SIT
Setup No. of nodes Instance Type Storage GB (SSD)
App & Admin Server 1 t3.medium 25
AI Runtime Server 1 r5.xlarge 50
Database Server 1 db.t3.medium 50
AI Master & Manager Server 1 c5.4x large ( Spot ) 50
AI Language Server * 1 r5.large 50
Analytics Server 1 t2.medium.elasticsearch 50
Cache Server 1 cache.t2.medium 50
UAT
Setup No. of nodes Instance Type Storage GB (SSD)
App & Admin Server 1 t3.large 50
AI Runtime Server 1 r5.xlarge 50
Database

Server

1 db.t3.large 50
AI Master & Manager Server 1 c5.4x large ( Spot ) 50
AI Language Server * 1 r5.large 50
Analytics Server 1 t2.medium.elasticsearch 50
Cache Server 1 cache.t2.medium 50
SIT & UAT
Setup No. of nodes Instance Type Storage GB (SSD)
App & Admin Server 1 t3.xlarge 100
AI Runtime Server 2 r5.xlarge 100
Database

Server

1 db.t3.xlarge 100
AI Master & Manager Server 1 c5.4x large ( Spot ) 100
AI Master & Manager Server 1 c5.4x large ( Spot ) 50
AI Language Server * 1 r5.large 100
Analytics Server 1 t2.medium.elasticsearch 100
Cache Server 1 cache.m4.large 100

Production Deployment

Production
Setup No. of nodes Instance Type Storage GB (SSD)
App

Server

1 C5.xlarge 100
Admin

Server

1 t3.large 100
AI Runtime Server 1 r5.xlarge 100
Database

Server

1 db.t3.xlarge 100
AI Master & Manager Server 1 c5.4x large ( Spot ) 100
AI Language Server* 1 r5.large 100
Analytics Server 1 m5.large.elasticsearch

100
Cache Server 1 cache.m4.large 50
Log Server 1 m5.xlarge.elasticsearch 500

• AI & Morfeus Runtime are configured for Auto Scale • Language Server is for multi lingual deployments • RDS , ES should be configured with Auto Extend • Graph Server to be run as a docker in Server

Assumptions

• Application Log archival period on all servers is assumed to be 1 week

• ES Log Server is assumed to be 6 months

• Database archival period is assumed to be 6 months

• AI Runtime and Master Servers will be running Triniti Dockers

• AI Training Server can be utilized on demand via Spot Instances for better optimization

• CloudWatch is setup for monitoring and alerts.

GPU

We would recommend using a GPU instance type for the AI Master Server for faster training cycles. Spot instances (on demand) would be used.

Deployment Types Instance Recommendation Comments
AI Master & Manager Server

P3.2x large (Spot)

Release Notes

Triniti

3.2

Date Release Notes
Jan-2020 Inmprove co-ref resolution for CP

3.1

Date Release Notes
Oct-2019 Improve Train time for CP
Handle negation , action in Q&A
Reduce Q&A docker size

2.3

Date Release Notes
Aug-2019 New Classifier based on deep learning
New CP based on Deep Learning
New paraphrasing module

2.2

Date Release Notes
Apr-2019 NER based on Deeplearning
Context Handling Module

2.1

Date Release Notes
Jan-2019 Build new Q&A system(less training annotation , faster , generic)
Dockerising Q&A system
Triniti integration with Q&A system
Master-Slave reload for Q&A system

2

Date Release Notes
Aug-2018 Unified Api V2
NLU Support
Inproved Logging
Externilize triniti Configurations
New data format

1.1

Date Release Notes
Apr-2018 Unified Api V1
Architecture chnages to Master-Slave reload functionality to be common across cloud, on prem
Dockerising Triniti
Remove module interdependencies for reload
Generic Context Change Module

1

Date Release Notes
Jan-2018 Intent Classification
Faq non-faq detection
Outlier detection
Context Change
Entity Recogniser
knowledge based search
Nunber Conversion
Date Conversion
Spell Check
Product Action matrix
Rule validator
Pre-Classification
Master-Slave using Pub-Sub architecture

Morfeus

Coming Soon !!

Morfeus Admin

2.5.0

Date Release Notes
creating a way to config for hitting integration url from RB using domainrulesmstr table
Audit User ip address
Default rule for audit & related FAQ template
ES Client
Ontology
Developer mode to false by default
Unit Tests
Self learning - Top insights to filter based on selected date range
Functionality -> Data tab to show 2 tabs Custom/Base
User Chat audit from elastic search engine
Related FAQ impl in Triniti AI
Verify ES cluster setup
Add index to audit external calls
MorfeusAdmin login to have IP based restriction
Axis: Complete Migration from 1.3.X to develop with testing of RB flows
Chat History Extension - To support anonymous as well as logged in users
By default disable Secondary Classifier
Channel Alexa: Revamp
Channel Slack development
OAuth Config - Client and Secret to be secured in backend using AWS KMS
Reports.JSON updating for Functionality type & subtype
Adding rules for Login functionality - One Portal
Generate the rules based on Currency Code
Validate the unsupported through Ontology
To support welcome template and workflow option
Set default rules for fallback and MLT
Entity Mapping & Data ID update
Module level training
Knowledge Graph - fixes
SSE implementation - Spring based
Grain Type support for UnifiedAPI
Password based authentication for elastic search
Channel-Webex
Audit language, is compound query and expanded message
Live Chat V3 migration
Message type filter for self learning
Faq / non faq load for Triniti V2
Inter-server channel
Channel-whatsApp :Migrate from Project to Morfeus as an inherent channel
Support for web search using es fallback
Option to set cookie path and domain using bot rules
Ontology Revamp
JWT Authentication Support In admin
FAQ functionality upgrades
SR editor revamp
Analytics Improvement
Load Autosuggest for SAAS Portal supporting rb-us instance
Bug Fixes for faq domain
Function fullfilment feature
Fix quick links on faq template
Update the Restore workspace snapshot
Option to disable auditing in database
Git sync intent_phrases.txt file
Related faq after CTA optional
Self learning export
Enable context expansion for predefined products
Limit the auditing size
ES search is returning same FAQ ID variants. It should return only the unique FAQs.
MessageType "voice" in desktop
Verification of all banking functionality ( IFSC etc ) in MySQL and Oracle
Function feature improvements
Unmapped intent to consider as FAQs
Enable compound query for FAQ
Remove bot domain int id from function table
HDFC Sprint 2 ISG pre-login security issue
Enhancement for Deployment Tool
Update defaults botrules
Export individual FAQ
Google Assistant with display and templates support
Analytics :: intermittently analytics are not displaying
FAQ - Template response not working
Notification bar hidden and userinfo popup - triniti-ai websdk
Send Mail password fix
Admin - DateTime Issue in Analytics
In workspaces > Bot ops > export templates > not working
in workspaces > NTUC project > we are facing issue while importing smalltalk
Manage Self Learning launch issue in weblogic
Auto-complete issue
Cross-Site Scripting, Cache issue in offline & 415 error not handled
CSV Excel Formula Injection
Mail service failing
Admin date format issue
fix import workspace issue
Change the output file from bundle.js > templateEditor.js
Messages are not saving while editing or creating
new field for websdk security in channel config
Keyphrases fix for one and admin
Saaas portal Rules and Config tab
import export of template editor
Campaign
Self learning
FAQ untagged keyphrases bug
Consider start and end date for each campaign
Question is getting polluted with answer in git sync
Analytics query should return ip address in response
Triniti language translator engine name is wrong
AI - analytics changes
AI -accuracy query optimization not to include init-welcome, command & postback
customer user chat search for multiple words not working
Self Learning >> FeedBack >> On exporting the Feedback, The exported excel is not showing up the "Date","UserId","CustomerId","Confidence","Sentiment","Feedback Type","Feedback" column.
User Chat Open API
Saas Security Bug Fix
NO-CONTENT Bug Fix
Audit need for Website & Netbanking separately
Exigency Management Bug Fixes
Saas Bug Fixes
Self Learning >> uncategorized count shows the different values each time when user clicks on "Uncategroized" link in the Top insights.
Self Learning >> Unactegorized category is showing the "FAQ", "Txn- card settings" in the uncategorized category, Only uncategorized utterance has to be displayed in the list.
Admin :: Deploy > AI Configuration > Export Zip is not working
Morfeus Admin password to be salted with random number
fix import workspace issue
download template based on category
Manage self learning filter do not work
Information missing from excel sheet after exporting from manage self-learning
"Search Statement" do not work
in manage-self learning if we search with "make a claim" > it is giving different results.
in origination :: if we refresh page > origination count will be zero
PEN Test : wild card SQL Injection attacks
PEN Test : Manage FAQ : Formula Injection attacks
PEN Test : Manage Acronyms : parameter manipulation
move config from property to message
Restrict underscore (_) in password field in UI on registration
After clicking save on login policy multiple columns are created in botrulemstr
Customer profile details are lost
Data not found for following in one-dev

2.2.0

Date Release Notes
Release 2.2.0
adding rule to enable or disable download transcript feature in manual chat
Elasticsearch
OAuth : Bot id & domain changes
Zendesk Development
Remove Last modified column from functionality in portal
Self learning index migration utility
Add default template json while creating a new bot
Bot operations - Workflow export import option
Default bot rule values for Unified API updated
Added missing RB integration services to domainbConfig.json
FAQ response template with option of workflow linking
Merge self learning index with message_audit index
Port missing fields from messageauditmstr to ES message_audit index
FAQ UI changes , import & export format changes as per Spotter requirements
Adding indexes for performance raised by Kotak
Small Talk Bug Fixes
Default Hooks and service creation on creating bot from workspace
Elastic search cluster support
User Chat audit from elastic search engine
Admin to show the date formats as per the System Date format
Rules to override TRINITI and disambiguate in controller
Triniti V2 data format updates
Export and Import Functions
FAQ Export & Import as zip
Support non-english to english translation for spotter training
Add BASE and CUSTOM tab for Function Data
Workflow Debugger
Morfeus Admin - Training, Data Syncing, KeyPhrase
Include bot Id in audit trial api for sso login (SaaS)
Adding New Api to fetch all service by service category
Triniti template json changes
Audit Open API Changes
Enterprise manager Enhancements to support on-prem installations
Oauth Proxy - external login handling
Port Customer Support to Triniti.ai
Export individual FAQ
Export a Single Functions
Audit trail search filter should have function name
List template to support compact and large style
Add modified and created date for Function -> Data -> Base tab
Faq Intents and services changes
APi Changes for Saas
Git sync default user name to display
Adding Log file the log directory defined in system path
netflix load balancer pinging too many times per bot level to ES - lets not do this for cloud system. for on prem we continue to do as scale and cluster management is on Morfeus
RedisConnection issue fix related to connection factory
Export Not working in UAT
Auto suggested & related FAQ's to be filter based on user segmentation
Exigency Management Bug Fixes
Manage self learning : - sorting is not working . all latest records should display on top
Manage Self learning >> FAQ >> Composite Score is not displayed in the grid.
Self Learning >> Unactegorized category is showing the "FAQ", "Txn- card settings" in the uncategorized category, Only uncategorized utterance has to be displayed in the list.
Self Learning >> Exporting for the data showing the progress bar as exporting for longtime but the export is not happening.
Entity to be shows with category like sys.emailId
Self Learning
Browser Stack bugs
Analytics develop : merge 1.3.X changes
BusinessRule Open API
Admin :: Manage AI > Git Sync : FAQ issue
Delete bot with bot code, exposed for Triniti failing
If faq import fails, no error is displayed
Open API Audit for faq and message and Faq Validation
Admin Report is not loading for Record with 17 lakhs data
Analytics : My-sql fixes
Sonar fixes - Develop
Export data for user and customer report not working
Morfeus Admin : Portal One RB utterances file renaming
Workspace ACL is not working.
Indusind bank: Timestamp not updated post any updates in Admin Manage product rules
Faq bug fixes for checker and maker
Export / Import workspace issues
Maker - checker bug fixes for small talk and faq
Add Response Type in saving faq
Campaign Management
Kotak Bug Fixes
Saas Audit API Bug Fix
Two MorfeusSessionId is getting created in Websdk due to which logout template getting display without user login
SelfLearning Revamp : reverting back msearch query for producing ESQuery for top insight
SelfLearning Revamp : self learning index mapping alteration to see multiple word metadata information.
Admin -> Analyse Dashboard
SelfLearning Revamp : export not accounting for uncategorized selection in fetching documents from elastic search
When uncategorized is selected, filtered top insights show "top products/actions" which is wrong Confidence range meter should be fixed
SelfLearning Revamp : remove Uncategorized in filtered top insights when the user has already clicked on uncategorized from un-filtered top insights.
Change password option should not happen for Saas User
Quartz Jobs are not getting triggered
Workspace Creation Bug Fix
Bot image upload option should validate image type and extension - security fix - client side validation

WebSDK

2.5.4
Date Release Notes
11/12/2019 1. Identifying the webview with a class name identifier.
2. Scroll to End behaviour [Please check scrollToEnd config in the document]
3. PA-3.76: Application Behaviour in case of multiple notification before receiving response from hybrid
2.5.3
Date Release Notes
29/11/2019 1. PA-3311 - To support keyboardState[hidden], when the the key board state is passed from the Workflow Editor
2. PA-3292 - Pass xAPIKey & xAPISecret in Template API call
3. PA-3219 - When new resources are loaded, the cache mechanism we use trigger a Notification - on click on the notification the bot will reload and load the new resources
4. PA-3308 - null check for Debug Icon
5. PA-3300 - Anchor tag with hyperlink is converted to "here", now anchor tag is retained same, hyperlink is converted to here

2.5.2

Date Release Notes
14/11/2019 1. Error handling in showing the Debug Info icon, If the data is not a JSON - was throwing an error, handled it now.

2.5.1

Date Release Notes
07/11/2019 1. PA-3272 - Support for Video Template in WEBSDK
2. PA-3205 - Support for only button based flows
3. PA-3217 - [Axis] Monkey Testing - Handle in WEBSDK
4. PA-3220 - [Kotak] Google Speech Key Expire or limit reach speech icon should be removed.
5. A better error message for Voice SDK
6. File headers for all the files in COREWEBSDK

2.5.0

Date Release Notes
23/10/2019 1. PA-3202 - To show a Live Chat Notification with a chime sound, if the current tab is inactive.
2. WEB-1110: Support for nTrigger in push notification
3. PA-3208: Placeholder to replace the hyperlinks and speak the placeholder in the Speech Response
4. PA-3177 - Disabling all the buttons of Chat History Response
5. PA-3103 - Quick Tags - Can be configured with INIT_DATA
6. PA-3182 - Pass "Gmt-Offset" as header in every request of WEB-SDK

2.4.0

Date Release Notes
01/10/2019 1. PA-3079: Error, undefined and null checks in COREWEBSDK
2. PA-3.70: Error handling for Seamless Voice Integrations
3. PA-3099: To reduce the network requests, moving the SVG images to inline
4. WEB-1095 Handling of inData[deviceInfo] given by Native app so that the data will be available for all requests
5. [Axis] PA-3123: UI fix for button card Template
6. PA-3008: Dynamic Debug icon color - If a response is a result of Context expansion or ontology change the colour of info icon to green and purple respectively
7. PA-3149: Message type=voice in voice audit mode
8. PA-3053: Fix for lastInfoButton undefined
9. PA-2665: Two integration - iframe & inline. If iframe, chatBox & chatButton will the data param of window.options else the window.options is read/write using sessionStorage
10. PA-3133: Passing xAPIKey & xAPISecret for Chat History
11. PA-3117: If the keyboard state is defined in Workflow for a node [Disable], WEBSDK to honour that
12. PA-3142: Show Debug info for multiple calls of same API
13. PA-3053: Remove Teach API
14. PA-3049: Chat History - Anonymous, Implementation of mode flag
15. PA-3007: WEBSDK to npm
16. PA-2986 - Debug Info - To represent the JSON in table format
17. PA-3028 - WEBSDK Support for Template Editor, To parse the data & markup
18. PA-2886 - HDFC Sprint 2 ISG pre-login security issue
19. PA-3.71 - change showCrossOnPostlogin -> showCrossOnPostLogin
20. PA-3149: If the keyboard state is defined in Workflow for a node [Text], WEBSDK to honour that in Seamless Voice mode and TTS

2.3.3

Date Release Notes
03/09/2019 PA-3053: Support for lastInfoButton

2.3.2

Date Release Notes
03/09/2019 1. PA-2986 - Debug Info - To represent the JSON in table format
2. PA-3028 - WEBSDK Support for Template Editor, To parse the data & markup

2.3.1

Date Release Notes
20/08/2019 PA-2886 - HDFC Sprint 2 ISG pre-login security issue

2.3.0

Date Release Notes
06-Aug-2019 1. PA-2265 Need to reduce initParam
2. PA-2945 Implement new tab login feature for websdk

1.3.20

Date Release Notes
06-Aug-2019 1. [PA-2438] - need null check on pagename extraction
2. [PA-2675] - Feedback Icon is getting displayed for all transaction in middle of Transaction
3. [PA-2747] - Pass xAPIKey and XAPISecret in Server Sent Event Call
4. [PA-2760] - notifyOnLogin for Hybird should fired based on configuration "showCrossOnPostlogin"
5. [PA-2767] - Webview session Expire on PostLogin it is display LoginTemplate instead of StartOverchat
6. [PA-2904] - Support pageContext for init and authMessage API

1.3.19

Date Release Notes
04-Jul-2019 1. [PA-2722] - NotificationId is not getting passed to Morfeus init API
2. [PA-2733] - Change cust_seg - custSeg, because Morfeus is expecting custSeg

1.3.18

Date Release Notes
14-Jun-2019 1. [PA-2021] - MinimizedState issue
2. [PA-2080] - Quicklinks are not getting hide when bot is auto log out from a webview
3. [PA-2172] - Websdk :: Last login date not formatting properly
4. [PA-2262] - AutoSuggestion Stop working after first utterance
5. [PA-2263] - Mic icon is getting display on for IE & Firefox
6. [PA-2264] - IE10 browser is not supported
7. [PA-2307] - Unable to open webview in Hybrid App (Websdk 1.3.0. Release 13)
8. [PA-2337] - micSupported helper is failing on mobile devices
9. [PA-2350] - Footer placeholder is not coming
10. [PA-23.7] - When webview is opened after login user is able to logout but webview is not closing
11. [PA-2387] - [WEBSDK] iOS 12.2 safari does not support service worker
12. [PA-2398] - New build process of morfeuswebsdk 1.3 is failing
13. [PA-2495] - Pass xAPIKey and XAPISecret in Auto Suggest
14. [PA-2500] - Chat bot is not displaying message if triniti service are down
15. [PA-2610] - autoSuggestConfig - set the autoSuggestConfig only in init call
16. [PA-2705] - Minimize not working because top reference frame is referring to the same frame
17. [PA-2137] - Notify hybridsdk container once webview opens and closes
18. [PA-2345] - Pass showInWebview and update text message to native mobile container
19. [PA-2296] - Template Editor - RB List Template
20. [PA-2297] - Morfeus OAuth Proxy: webSDK support
21. [PA-2349] - Need core websdk changes for dynamically passing stylesheet url
22. [PA-23.7] - [Test] Template Editor - RB List & Transaction Confirmation Template
23. [PA-2377] - [WEBSDK] Support for Template Editor Templates
24. [PA-2378] - Integrate Template Editor to Triniti.ai Web
25. [PA-2379] - Integrate Template Editor to Workflow Editor
26. [PA-2380] - Integrate Template Editor to FAQ Response

1.3.17

Date Release Notes
25-Apr-2019 [PA-2329] - Feedback.js is not getting called on click in 1.3 websdk

1.3.16

Date Release Notes
24-Apr-2019 1. [PA-2317] - [HDFC] Custom Templates are not getting updated
2. [PA-2329] - Feedback.js is not getting called on click in 1.3 websdk

1.3.15

Date Release Notes
11-Apr-2019 1. [PA-2284] - For custom templates, do proper referencing of apikey in template url
2. [PA-2277] - Give a call to native mobile container once there is successful init request made by websdk
3. [PA-2278] - For hybrid app, do authMessage call when user taps on received notification

1.3.14

Date Release Notes
28-Mar-2019 PA-2201 - Code cleanup - SonarQube

1.3.13

Date Release Notes
22-Mar-2019 [PA-1763] - Kotak - Utterance displayed in the bot is different from the utterance sent in the request
[PA-2036] - Show more scroll button listener does not reinitialize after logout
[PA-2126] - Micsupported helper returns true always for all browsers even if speech is not supported
[PA-2201] - Code cleanup - SonarQube
[PA-1630] - Add Feedback template for the THUMBS UP as well in the FAQs
[PA-2135] - Allow webviews of different heights
[PA-2152] - Add a wrapper for the Template Choice for - "bot-response__answer", like a Tab based layout, which should Default as the Tab Title

1.3.12

Date Release Notes
07-Mar-2019 1. [PA-2159] - [HDFC] Additional parameters for Quick Access PIN (or MPIN) Login
2. [PA-2136] - Morfeus WebSDK enhancement - Add X-API-SECRET parameter in header for every request & set withCredentials & crossDomain for AJAX requests

1.3.11

Date Release Notes
22-Feb-2019 [PA-1801] - Image template type not rendering on websdk
[PA-2033] - Feedback template must block all the special characters from feedback template and if user doesnot type and click on submit it should not show any submit message
[PA-2092] - Live Agent connecting message displays twice
[PA-2100] - Handle when quick_replies is not present in response in sdkIndex.js
[PA-2093] - Adding background style support for chatBoxFrame
[PA-2067] - Morfeus WebSDK enhancement - Add X-API-KEY parameter in header for every request.

1.3.10

Date Release Notes
07-Feb-2019 [PA-1949] - Websdk changes for Triniti.ai
[PA-1992] - Voice feature working incorrectly on tablets
[PA-2027] - HB-219: VoiceSDK not initializing/responding on iPad
[PA-2054] - Path of sw_cache.js is wrong in specified wrongly in sdk.js
[PA-1759] - Introduce image compression into websdk build system
[PA-1931] - Websdk Jenkins plan for nightly builds
[PA-1936] - Documentation of web-sdk
[PA-1991] - Perform logout from native
[PA-2003] - SSE not getting closed and messages getting duplicated
[PA-2007] - Accept customerinfo values for hybridsdk in postlogin bot and send to morfeus on every network call
[PA-1785] - Create a reference project implementation on websdk - deployments-websdk
[PA-1930] - Possible change in distribution system accessible via npm versions
[PA-1932] - PR review strategies
[PA-1934] - Custom grunt task for web-sdk - v1
[PA-1972] - Notify Hybrid when user logins
[PA-2034] - Lighthouse integration in grunt-corewebsdk-build plugin for version 1.0.5
[PA-2035] - Test suite integration in grunt-corewebsdk-build plugin for version 1.0.5
[PA-2039] - Jenkins job for WEBSDK-1.3.10-SNAPSHOT
[PA-2055] - [Behavioural Testing] Deploy morfeuswebsdk in another server and access it from another server in an iframe

1.3.9

Date Release Notes
16-Jan-2019 1. [PA-1895] - RELATED_FAQ need to be postback request not auto Text request
2. [PA-1897] - Dynamic WebSdk

1.3.8

Date Release Notes
11-Dec-2018 ABP2-90: For Hybrid - When clicked on quick links, adding a disabled class and then removing in ajax success
PA-1777: Removed ajaxq and adding block in feedback element
PA-1777: Implementing ajaxq and making the callService API async false
PA-1713: Fixing the postMessage call, exposing the window.options.customerId & appSessionToken to window and removed the parsing logic for the configData
PA-1799: Revert code due to double message bug
PA-1799: Fixed missing closing brace in switch statement
PA-1713: initialize websdk without init and take init params from client
PA-1740: Add comments/descriptions
PA-1740: Improved efficiency of code by using modular functions
PA-1740: Use minified version of siriwave library file
PA-1817: Improve conditional statements/logic to apply anchor class
PA-1740: Add siriwave library, update voice UI functionality for webSDK and hybrid app
PA-1799: Update function when loading chat bot for the first time to not focus on the query box
PA-1713: read sw file and remove cache grunt task
PA-1799: Add functionality improvements to toggle show/hide for chat bot
PA-1789: Add condition to check for 'placeholder-faq' intent name
PA-1789: Add solution for Case 1
PA-1777_handle_csrf_token_for_feedback: add transperancy style for chatbox
PA-1589_120: empty string in case of long press of del button
WEB-1589: toggle paste action for otp
PA-1780: Need intents from Morfeus for FAQ's
PA-1771: FIXED - Log out button doesn't disappear when user is logged out
PA-1777_disbale_TTS_based_on_confg
PA-1777_handle_xcsrf_for_feedback
PA-1690: proper order of messages in session history
PA-1660: handle last login for session history
PA-1650: revert sdkType changes

1.3.7

Date Release Notes
13-Nov-2018 PA-1740: Add custom waveform functions and integrate custom VUI code
PA-1710: Add comments for functions
PA-1710: Add variable anchorToTop for conditional checking
PA-1710: Update function based on client specification
PA-1710: Add function to allow first message to anchor to top of chat container"
PA-1684: ssl check fail meeage
PA-1689: looged into different device error on ios hybrid
PA-1676: Add null condition check for scrollToEnd
PA-1676: Update logic statement for scrollToEnd function
PA-1675: Update logic statement for scroll trigger
PA-1856: scroll changes final
PA-1856: scroll messgaes
WEB-1083:removed hardcode message
WEB-1083:fix for security vulnerability
PA-1650: handle sdktype for hybrid
PA-1856: scroll module
WEB-1081: handle last login date for chat history
WEB-1080: last login date in chat history
AMC-189: Changed Event name to hybridMenuAction
AMC-198: Adding postEvent method in sdkIndex and websdkEvents

1.3.7

Date Release Notes
09-Oct-2018 WEB-1079:wrong xcsrf token getting sent to morfeus when chathistory api
WEB-1078_webview_safari_issue
WEB-1064: Header missing
WEB-1077: Prevent double tap
WEB-1072: disable quick tags before init
WEB-1072: unecessary code removed
WEB-1072: notify on logout
WEB-1072: timeout not getting called appropriately
WEB-1073: Hardclose
WEB-1071:disable input box before init
WEB-1068: access of xsrf token in webview for hybrid sdk"
WEB-1066: syntax error correction
WEB-1063: read value of timeout from init"
WEB-1063:custom timeout for response render
WEB-1061: Hybrid intigration
WEB-1061: Callback

1.3.5

Date Release Notes
11-Sep-2018 PA-1450: csrf token
PA-1450: Return csrf token
WEB-1052: Chat history
WEB-1032: Enable inputbox after init success
WEB-1052: Spinner template
WEB-1051: Multiple auth message call
Updated payload data for WEB-1049
WEB-1049: wrongly removed code
WEB-1049: display the title of the element instead of button name
WEB-1048: google analytics in websdk-hybrid
WEB-1045: Concurent logout
WEB-1045: Show logout message
WEB-1043: Fix typo
WEB-1044: Remove wrong api call
WEB-1043: postlogin for anonymous user21
WEB-1036: Cross button
WEB-1031: notify on logout for webview cases
WEB-1038: Quickinit postback value

1.3.4

Date Release Notes
14-Aug-2018 WEB-1021: Countrycode
WEB-1000: MAsking
WEB-1021: Country code
WEB-244_video_player_in_cards
WEB-990: Chat history
WEB-1021: Country code
WEB-999: Country code3
WEB-1021: List ttitle
WEB-244: support media template in websdk
WEB-244_video_player_template
KOT-561: Ios
WEB-1016_handle_postLoginConfig_from_response
WEB-1014_config_for_startOverChat
WEB-1015_chat_history_disable
WEB-1014: remove disablePingPostLogin
WEB-1014: pass response
WEB-1104: handle infinite init
WEB-1011: callback on idle timeout
WEB-1005: Show utterance for postback
WEB-806_i18n_implementation
WEB-1002: Show postback utterance
WEB-1000: Mask otp
WEB-987_use_existing_function
WEB-987_resolved_conflict
WEB-970: removed extra comma
WEB-986: Logout modal
WEB-985: Initial chat message for fallback
WEB-970_retireJS
WEB-809: without croppie
WEB-982_merge_conflict_resolve2

1.3.3

Date Release Notes
10-July-2018 WEB-918: Slim scroll
WEB-953_enable_buttons
WEB-962: feedback thumbs not disabling
WEB-956: Payment url
WEB-956: payment url change
WEB-942: mexpire check
WEB-942: logout callback to native container of mobile6 files changed
WEB-479: resolve conflict and error fix4 3
WEB-958: Allow special chars
WEB-887: Chat history
WEB-944: destroyon close
WEB-941: Voice issue
WEB-886: open link in target iframe
WEB-941: Display error message
WEB-941: Custom error handling
WEB-940: Hide chatbox
WEB-934: Offline
WEB-932: Error message
WEB-932: Error response
WEB-932: Fix typo
WEB-932: startoverchat3
WEB-793:cherry pick on
WEB-793: voice support for hybrid app
WEB-937:focus on input if text card is coming in last response
WEB-939: webview logout message
WEB-936: Unlinkify email id
WEB-935: Autosuggestion exception
WEB-936: Remove linkifying of email
WEB-935: remove exception
WEB-928: Logout bubble with message
WEB-907_utterance
WEB-924: Flickering issue
WEB-923: Ie issue5
WEB-919: external utterance

1.3.2

Date Release Notes
12-June-2018 WEB-896: Cards template
WEB-823_remove_unwanted_directories340 4927
WEB-912_added_web_url_to_unsupported_types
WEB-896: Slider
WEB-913: allow permission
WEB-902: preserve previous message id
WEB-883_diff added
WEB-904: update version
WEB-895:quick links not visible on ie102
WEB-881:add removeStorage
WEB-881_ga_undefined2 1
WEB-885: authmessage csrf
WEB-885 retrybot added in window options
WEB-885: Error handling2
WEB-765: jsdoc coments
WEB-765: Template2
WEB-765: Minimized state 9
WEB-879: Feedback template for last message
WEB-870_cherry_pick_feedback_changes
WEB-449: Login based session handling
WEB-680: check for initial cards count
WEB-680: else if statement added
WEB-868: Feedback icon for first template only
WEB-680: make it work on config3 3
WEB-859 missing variable
WEB-859 condition missing
WEB-859: select utterance display2
WEB-859: Faq template
WEB-861: enabling of cards if not action taken in webview and wrong disabling of buttons
WEB-866: Http errors

1.3.1

Date Release Notes
15-May-2018 WEB-680: logic correction
WEB-680: remove timeout from scrollToEnd
WEB-858: Resolve conflicts
WEB-858: Feedback close
WEB-858: Feedback template
WEB-859: Typo
WEB-859: Display utterance
WEB-835: Error handling
WEB-680: scroll to first message and insert a show more button to load other messages6 10 8
WEB-859: button uttereance
WEB-585: include precompile templates js
WEB-859: select utterance display
WEB-585: remove images
WEB-585:chart libs removed
WEB-585: handlebars libs inclusion grunt revert for handlebars and importTemplate fn for customTemplate
WEB-858: Feedback template
WEB-585: reduce websdk size
WEB-858: Feedback partial
WEB-835: Handle html reposne
WEB-828 enable slim scroll plugin
WEB-841: Cache issue
WEB-827: chatbuttonwindow bootom height
WEB-837: teach api error handling21
WEB-827: Chatbutton botom height
WEB-824: Quick tag issue
WEB-836: Ssl pinning postmessage fix
PA-1017 string matching to be done case insensitive
WEB-680: toggling of card status4
WEB-680: logical error fix
IVA-1283: do not addrress response coming after logout5 3
WEB-680: handle typinf animation case
WEB-789: Ssl pinning check
WEB-680: remove scroll for typing animation when focus on card on start
WEB-680: check for cardScrollingConfig
WEB-680: reorder check conditions
WEB-789: SSL pinning
WEB-680_scroll_to_start
KOT-294: Updated external utterance3 2
KOT-294: External param
WEB-826: Remove typing animation during empty response
WEB-282: Close icon in hybrid
KOT-362: Sdk type to webview
WEB-772: Logout based on header
WEB-771: when location permission is in blocked state render a bot bubble with configured message3 2
WEB-680_scroll_to_start
WEB-821: Cherrypick code from develop to 1.1.0-RC
PA-992 1.2.0-SNAPSHOT
HU-77: show check image on click of button5
PA-992 1.1.0-RC
KOT-281: Fix typo
WEB-765: Remove unnecessary line
KOT-281: Cross icon

1.3.0

Date Release Notes
10-Apr-2018 WEB-808: Slick card issue in firefox
WEB-807: Ntuc ie issue
KOT-293 -> Webview X-CRSF token is share with SDK on success AJAX call
WEB-794: postbackUrl functioning
WEB-772: Logout header
WEB-772: Logout using m-expire header13
KOT-229 reverted changes
WEB-770: Change to websdk
KOT-229 -> Last Login Date format change based client4
WEB-770: External utterance
KOT-228: Close button
KOT-217 - sdkIndex.js
KOT-236: Override hidechatbox
WEB-772: Replace /n
IVA-887: Mozilla splash screen
WEB-764: logout url
WEB-770: Authmessage along with init
WEB-764: login logout api endpoint change
IVA-887: Splash screen
WEB-753: Linkify buttoncard template text
kotak-233 concurrentLoginEvent

1.2.3

Date Release Notes
13-Mar-2018 WEB-737 logic correction for disabling buttons
WEB-737 convert data-radio value to boolean
WEB-735: capture quick link names
WEB-645: analyticsTemplate added
INDUSIND-1420: Change permission image
KOT-204: Hide Emoji templateon click of a emoji
IVA-767: Cahnge to one line variable declaration
IVA-767: Alignment issue reverted
IVA-767: Alignment issue
IVA-767: Feedbackmodal enable onclick of cross button
INDUSIND-1446: Remove text active.ai from permission modal
WEB-544: change for button life cycle for handling show-info buttons3, 1
WEB-619: Notification check
WEB-619: User will be only asked if permisssion is not granted
WEB-619: Default style change of permission ui ,
WEB-619: Add new ui for permission in push
WEB-645: add analytics script in grunt config and insert analytics script
WEB-544: button life cycle for carousel card buttons
WEB-654: missed the method rename
WEB-544: disable clicked button for carousal card
WEB-544: proper place for calling disableCarouselCardButtons fn
WEB-544 added JSDoc
WEB-544: double parse stringified button payload
WEB-544: apply button life cycle to carousel template buttons
WEB-645: add extra params to calling processResponse
WEB-645: port ga to develop
WEB-654: Close webview from post message
WEB-641: display appropriate default error message
WEB-641: display error template on ajax call fail
WEB-628_category title does not appear in submenu
WEB-630 do not render quick links when quick links is empty in config or override default is set to true ,

1.2.2

Date Release Notes
13-Feb-2018 WEB-605 chatBoxUi.js
WEB-632 check auth state and toggle close button
WEB-629_webviewheader_proper_check
WEB-623 set xcsrf token for hybrid app from webview and send xcsrf token to webview
INDUSIND-1420: webheader close
K)T-130: revert changes in sdk.js
KOT-130: Change backbutton action
WEB-623 recieve and set aisession from webview for hybrid app
WEB-596: Splash screen hybrid config
WEB-623: datatype external_url for develop
WEB-594: Hide the manualchat icon during ai chat
WEB-594: Change bot icon in manualchat
WEB-551 changed html structuring and styling changes4
WEB-621: Remove div
WEB-551 webview header
WEB-621: Remove unnecessary if block
WEB-620 changed css property for lockIcon div that it does not hide the chatbox
WEB-593: Update the if block
WEB-593: Fix typo intentname
WEB-593: Add false condition
WEB-593: Add else block
WEB-593: Toggling manualchat
WEB-593: Toggling autosuggestion during manualchat
WEB-617 replaced host with hostname
WEB-613: For develop4
ABP-1859: Fix typo
ABP-1859: Remove trailing and leading specialchars
WEB-605 removed kotak specific splash screen code
WEB-598 introduced location.port in identifying parentDomain
WEB-601: For develop
WEB-598 attach parent domain value to query params
web-597
WEB-500: Remove unnecessary space
WEB-500: Upadte the file
WEB-500: Typo fix
WEB-500: Remove typo
WEB-500: Change spacing
WEB-500 removed data index attribute
WEB-500 back button fix and use of images
WEB-602: For develop
WEB-500 handle back button
WEB-499: Case checking
WEB-599: Type auto for develop
WEB-592: Fix typo
WEB-592: call splashscreen.hide
WEB-455: Remove typo
WEB-500 popular query toggle display css changes for scroll8 1
WEB-455: Add splash screen module
WEB-455: Rename splash screen module and template
WEB-455: Change template name to splash screen
WEB-455: Change grunt file
WEB-500 adjust block submenu and list submenu and styling
WEB-455: Configure splash from initdata
WEB-455: Remove splash screen rendering from chatbox.js
WEB-455: Add splash screen module
WEB-595 changed header key m_auth to m-auth
WEB-592: Open chatbot onclick of notification and remove the splash screen
WEB-498: Change initData position from callservice to processresponse5 1 8
WEB-498: Fix a typo
WEB-450: Change init config
WEB-500 styling enhacements for popular query menu options and popular query
WEB-500 click for popular query and styling
WEB-498: Add toggle popular query option 1
WEB-498: Add class submenu
WEB-582 chatbutton and chatbox to be fixed on scroll2
WEB-498: Add popular query div to footer template
WEB-498: Craete basic skeleton
WEB-529: Move window.init to onload function
WEB-581: Add jsdoc2
WEB-581: Autosuggest feature for develop
web-582
WEB-582
WEB-561: Change serviceworker file2
web-527 local bundle websdk
WEB-558:Add deserialization function in serviceworker
removed trailing which is failing the json parse

1.2.1

Date Release Notes
09-Jan-2018 Change devicid typo
Remove unnecessary if else condition
Fix registerdevice failing
Modularized the function
Add notificationid and notificationparameter reading within websdk
Copying serviceworker
Fix the height issue onclick of chatbutton
Fix typo
Stringify the initandshow param
Fix init and show bug
Remove typing animation for button type postbackUrl
Change authmessage payload
Add double stringify for postbackUrl
Change code according to new payload
Fix typo
Add opening of external link with postback functionality
Modify service worker file to take payload from data message
Modify files according to push notification payload for authmessage and init
serverSent.js
changes as per PR
Uodate broken build
commit
commit and code
enable card buttons
handle anchor tag in sub title
Accepting window height from websdk's initialize config
passing Stringified data in websdkdata event
button life cycle
Change object.assign to jquery.extend for ie fix
docs update
servet Sent
callback removed
view_notification
serverSent

iOS SDK

Name Release Version Date Release Notes
MorfeusMessagingKit
2.5.0 01/06/2020 New Api to triggerInappBrowser
New Activity for AppBrowser
New method to remove right button of header
Notification Enhancement
2.4.20 10/31/2019 Fetcing RSA URL for router.triniti.ai domain
set sessionID in payload for onSearchResponse
2.4.10 10/17/2019 - Native Voice feature
- New API to
- enum SpeechProviderForVoice : SpeechProviderNative, SpeechProviderGoogle
- Default value for SpeechProviderForVoice is SpeechProviderGoogle
- timestamp added as string value alongwith the mobileios.htm url
2.4.00 10/01/2019 Sync MFSDKHybridKit version with Morfeus platform
1.3.52 09/18/2019 Screen Timeout issue
Giving callback to web when app goes Background to Foreground
1.3.50 08/26/2019 - in data parameters added to pass extra user information to the bot
1.3.48 06/27/2019 Remove reInitiateChatBot method
- added logs inside hybrid kit
1.3.47 05/28/2019 New property to check QAP is enable or not.
Replace method getDataFromNative to getFromNativeWithCallBack
1.3.46 05/27/2019 An api to let websdk get native stored data
1.3.44 05/21/2019 Pass customerInfo to websdk only when passed from client app.
1.3.42 05/02/2019 New API(enableScheduledBackgroundRefresh) to enable scheduled background refresh.
Enables native header based on web config.
Block user from using native buttons when webview shown during chat.
Integrate MFNotification module.

Change websdk update dialog.
1.3.40 03/08/2019 Support Trinti websdk
New API to set workspace Id and open chat screen.
Overlay native header when opened webview inside websdk.
Root check false positive.
Extract MFSecurity module.
1.3.20 02/13/2019 Native header can be customize by setting MFSDKHeader property
0.0.30 12/26/2018 Passing device information data to websdk
MorfeusVoiceKit
2.4.10 10/16/2019 Native ios speech recognition support
2.4.00 10/01/2019 Sync MFSDKVoice version with Morfeus platform
1.1.7 09/18/2019 New API to set Speech Rate setSpeechRate(float 1.0f)
Removed spaces while STT for mobile no. & DOB
Added spaces while TTS for mobile no.
Handle STT Email issue
1.1.6 02/28/2019 Format last recognised text.
1.1.5 02/01/2019 Consider intermediate speech text to return most accurate result
Add max speech limit to audio recorder to reduce OUOUT_OF_RANGE error.
1.1.3 10/18/2018 Increase suggestion limit to 150
1.1.0 10/17/2018 AAMSD-604: Use suggestion provided through MFSpeechSuggestion.json
API to pass speech context details with STT request.
1.0.4 07/31/2018 SpeechConfig allow Text-To-Speech language code with country detail
MFNotificationKit
1.0.0 01/06/2020 Logs added for methods and proper comments provided
0.1.0 06/11/2019 Release MFNotificationKit

Android SDK

Name Release Version Date Release Notes
MorfeusMessagingKit
2.5.0 01/06/2020 New Api to triggerInappBrowser
New Activity for AppBrowser
New method to remove right button of header
Notification Enhancement
2.4.20 10/31/2019 Fatcing RSAURL for router.triniti.ai domain
set sessionID in payload for onSearchResponse
2.4.10 10/17/2019 Native Voice feature
New API to setSpeechProviderForVoice(MFSDKSessionProperties.SpeechProviderForVoice.{ENUM})
enum SpeechProviderForVoice : GOOGLE_SPEECH_PROVIDER, ANDROID_SPEECH_PROVIDER
Default value for SpeechProviderForVoice is GOOGLE_SPEECH_PROVIDER
New API to enableNativeVoiceOffline(boolean)
Default value for enableNativeVoiceOffline is false
2.4.00 10/01/2019 Sync MFSDKHybridKit version with Morfeus platform
1.3.52 09/18/2019 Screen Timeout issue
Giving callback to web when app goes Background to Foreground
1.3.51 09/13/2019 Added logoutWebSdk() onBackPressed
1.3.50 08/26/2019 New API to createPDFFromBase64()
New Expose method setFileProviderAuthority() to MFSDKProperties
1.3.49 07/30/2019 New inDataExtraInformation properties to MFSDKSessionProperties
1.3.48 06/27/2019 Remove reinitiateChatBot() method from onPageFinished() in ChatActivity
Commented MFNotification code from voiceSdkInitialise()
1.3.47 05/28/2019 New property to check QAP is enable or not.
Replace method getDataFromNative to getFromNativeWithCallBack
1.3.46 05/27/2019 Handle Location Permission for webview.
New API to allow WebSDK to fetch stored data from native.
1.3.45 05/24/2019 New API to set left and right padding in header.
Remove unused permission from Android Manifest.
1.3.44 05/21/2019 Pass customerInfo to websdk only when passed from client app.
1.3.43 05/09/2019 New API to set statusbar color.
Remove chat activity status bar color.
1.3.42 05/02/2019 New API(enableScheduledBackgroundRefresh) to enable scheduled background refresh.
New API(allowAllCertificate) to accept all ssl certificates.
New header api to adjust title image margin.
Enables native header based on web config.
Block user from using native buttons when webview shown during chat.
Integrate MFNotification module.

Fixed safetynet unknown host exception.
Change websdk update dialog.
1.3.41 03/23/2019 OkHttp duplicate class conflict issue.
1.3.40 03/08/2019 Support Trinti websdk
New API to set workspace Id and open chat screen.
AAMSD-717 Overlay native header when opened webview inside websdk.

AAMSD-179 Root check false positive.

Extract MFSecurity module.
1.3.30 02/25/2019 Integrated MFNotification-0.1.0
1.3.20 02/08/2019 New API to configure exit dialog.
Pass init properties with invokeInit to WebSDK.
Allow websdk to store applicationId and channelId into local storage.
Include kotak deep linking change.
Validate passed sdk properties and dispaly error message on fail.
Added new list of error codes
Added new actionbar config properties.
New API to configure chat header UI.
Handle single customerId rsa encryption.
Handle websdk update in runtime.

Updated logger, logging all websdk-native interaction.
1.3.10 02/01/2019 Allow client to pass extra user properties
Handle encryption for single customerId based login
Initialise websdk using new invokeInit function
Distribute HybridSDK through gradle artifactory
RSA API Call Optimisation
Updating NavigationBar for logout/login scenario
Google Safety net API
Provision to set SpeechToText & TextToSpeech language code
New API to configure language.

Consider port number given with bot url
MFNotification
1.0.0 01/06/2020 Fixes Background & Forground issues
Added Progaurd Rules for MFNotification
0.1.0 06/11/2019 Release MFNotification
MFSDKVoice
2.4.10 10/16/2019 Native Voice feature
New API to setSpeechProvider() & enableNativeVoiceOffline(boolean)
Default Speech Provider is GOOGLE_SPEECH_PROVIDER
Default value for enableNativeVoiceOffline is false
2.4.00 10/01/2019 Sync MFSDKVoice version with Morfeus platform
1.1.7 09/18/2019 New API to set Speech Rate setSpeechRate(float 1.0f)
Removed spaces while STT for mobile no. & DOB
Added spaces while TTS for mobile no.
Handle STT Email issue
1.1.6 02/28/2019 Format last recognised text.
1.1.5 02/01/2019 Consider intermediate speech text to return most accurate result
Add max speech limit to audio recorder to reduce OUOUT_OF_RANGE error.
1.1.4 12/04/2018 Crash on Samsung Galaxy J2 (OS 5.1.1)
1.1.3 10/18/2018 Increase suggestion limit to 150
1.1.2 10/18/2018 SDK Listener nullablity issue
1.1.1 10/17/2018 SpeechConfig obfuscation issue.
1.1.0 10/17/2018 Use suggestion provided through MFSpeechSuggestion.json
API to pass speech context details with STT request.
1.0.5 10/17/2018 Random crash on 30 min interval.
Trim recognised mobile number.
1.0.4 07/31/2018 SpeechConfig allow Text-To-Speech language code with country detail
1.0.3 07/16/2018 Fixes AMC-12

Retail Banking

Coming Soon !!

Install, Upgrade Manager

Welcome to Manager installation guide. The access to artifactory links will be provided from your Active.ai sales representative.

OS Compatibility

Manager is certified on the operating systems below

OS Dependencies

Please install the following OS dependencies before proceeding

Manager Dependencies

If your server does not have access to internet and active ai aritfactory network, please download the following dependencies before proceeding with the installation. Please refer to resources for details on Manager Dependencies, External Dependencies and Generic AI Models

Installation

Proceed with installation only if you have access to the internet and active ai artifactory to download the dependencies automatically or you have downloaded the dependencies in the previous

payload_store : //data/store db_store : //data manager_url : http://localhost:8090 server_kinds : - triniti routes: train_url_path : /train unload_url_path : /unload_load_model process_url_path : /triniti/process manager_callback_url_path : /train/status servers: triniti : - url: http://localhost:8000 training_allowed: True ``` Edit the supervisord.conf file as per your setup

[program:manager_8090] - environment=MANAGER_PAYLOAD_DATA_HOME=//data/store, - MANAGER_HOME="//", MANAGER_ENV="// manager-triniti_env", MANAGER_DB_HOME="//data" , LOGS_HOME="// logs" - directory=/opt/manager-triniti/manager-triniti_env/lib/python3.8/site-packages/onprem - stdout_logfile=/opt/logs/%(program_name)s.log - stderr_logfile=/opt/logs/%(program_name)s.log - command=uvicorn server_fastapi:app --port 8090 --host --reload


### Starting and Stopping Manager 

<ol>
<li>activate the virtual environment</li>
<li>source /bin/activate</li>
<li>Run supervisord -c supervisord.conf ( start the Manager server in supervisord daemon mode)</li>
<li>To Manage Manager Via supervisor</li>
<li>Supervisorctl status (Check Manager service status) supervisorctl restart < manager_8090> (restart Manager services)</li>
<li>supervisorctl stop (stop Manager services) supervisorctl start (start Manager services)</li>
</ol>

### Docker Installation

<ol>
<li>docker pull 940330296631.dkr.ecr.ap-southeast-1.amazonaws.com/Manager:omprem1</li>

<li>docker run -itd -p 8090:80 -v /manager:/data -v /var/log/supervisor:/var/log/supervisor --name onprem-manager --restart=always -e MANAGER_DATA_HOME=/data -e MANAGER_DB_HOME=/data  -e MANAGER_PAYLOAD_DATA_HOME=/data/store 940330296631.dkr.ecr.ap-southeast-1.amazonaws.com/manager:onprem1</li>

</ol>