Category

Chatbot

Text to Speech using Amazon Polly with React JS & Python

By | AI, AWS, Blogs, Chatbot | One Comment

Written by Ishita Saha, Software Engineer, Powerupcloud Technologies

In this blog, we will discuss how we can integrate AWS Polly using Python & React JS to a chatbot application.

Use Case

We are developing a Chatbot Framework where we use AWS Polly for an exquisite & lively voice experience for our users

Problem Statement

We are trying to showcase how we can integrate AWS Polly voice services with our existing chatbot application built on React JS & Python.

What is AWS Polly ?

Amazon Polly is a service that turns text into lifelike speech. Amazon Polly enables existing applications to speak as a first-class feature and creates the opportunity for entirely new categories of speech-enabled products, from mobile apps and cars to devices and appliances. Amazon Polly includes dozens of lifelike voices and support for multiple languages, so you can select the ideal voice and distribute your speech-enabled applications in many geographies. Amazon Polly is easy to use – you just send the text you want converted into speech to the Amazon Polly API, and Amazon Polly immediately returns the audio stream to your application so you can play it directly or store it in a standard audio file format, such as MP3.

AWS Polly is easy to use. We only need an AWS subscription. We can test Polly directly from the AWS Console.

Go to :

https://console.aws.amazon.com/polly/home/SynthesizeSpeech

There is an option to select Voice from Different Languages & Regions.

Why Amazon Polly?

You can use Amazon Polly to power your application with high-quality spoken output. This cost-effective service has very low response times, and is available for virtually any use case, with no restrictions on storing and reusing generated speech.

Implementation

User provides input to the Chatbot. This Input goes to our React JS Frontend, which interacts internally with a Python Application in the backend. This Python application is responsible for interacting with AWS Polly and sending response back to the React app which plays the audio streaming output as mp3.

React JS

In this implementation, we are using the Audio() constructor.

The Audio() constructor creates and returns a new HTMLAudioElement which can be either attached to a document for the user to interact with and/or listen to, or can be used offscreen to manage and play audio.

Syntax :

audio = new Audio(url);

Methods :

play – Make the media object play or resume after pausing.
pause – Pause the media object.
load – Reload the media object.
canPlayType – Determine if a media type can be played.
 
Here, we are using only play() and pause() methods in our implementation.

Step 1: We have to initialize a variable into the state.

this.state = {
audio : "",
languageName: "",
voiceName: ""
}

Step 2 : Remove all unwanted space characters from input.

response = response.replace(/\//g, " ");
response = response.replace(/(\r\n|\n|\r)/gm, "");

Step 3 : If any existing reply from Bot is already in play. We can stop it.

if (this.state.audio != undefined) {
     this.state.audio.pause();
   }

Step 4 :

This method interacts with our Python Application. It sends requests to our Python backend with the following parameters. We create a new Audio() object. We are passing the following parameters dynamically to handle speaker() method :

  • languageName
  • voiceName
  • inputText
handleSpeaker = inputText => {
this.setState({
     audio: ""
   });
   this.setState({
     audio: new Audio(
       POLLY_API +
         "/texttospeech?LanguageCode=" +
         this.state.languageName +
         "&VoiceId=" +
         this.state.voiceName +
         "&OutputFormat=mp3"
    "&Text=" + inputText
     )
   });
}

Step 5 : On getting the response from our POLLY_API Python App, we will need to play the mp3 file.

this.state.audio.play();

Python

The Python application communicates with AWS Polly using AWS Python SDK – boto3.

Step 1: Now we will need to configure AWS credentials for accessing AWS Polly by using Secret Key, Access Keys & Region.

import boto3
def connectToPolly():
 polly_client = boto3.Session(
     aws_access_key=”xxxxxx”,
     aws_secret_key=”xxxxxx”,
     region=”xxxxxx”).client('polly')

 return polly_client

Here, we are creating a polly client to access AWS Polly Services.

Step 2: We are using synthesize_speech() to get an audio stream file.

Request Syntax :

response = client.synthesize_speech(
    Engine='standard'|'neural',
    LanguageCode='arb'|'cmn-CN'|'cy-GB'|'da-DK'|'de-DE'|'en-AU'|'en-GB'|'en-GB-WLS'|'en-IN'|'en-US'|'es-ES'|'es-MX'|'es-US'|'fr-CA'|'fr-FR'|'is-IS'|'it-IT'|'ja-JP'|'hi-IN'|'ko-KR'|'nb-NO'|'nl-NL'|'pl-PL'|'pt-BR'|'pt-PT'|'ro-RO'|'ru-RU'|'sv-SE'|'tr-TR',
        				OutputFormat='json'|'mp3'|'ogg_vorbis'|'pcm',
    									TextType='ssml'|'text',
    VoiceId='Aditi'|'Amy'|'Astrid'|'Bianca'|'Brian'|'Camila'|'Carla'|'Carmen'|'Celine'|'Chantal'|'Conchita'|'Cristiano'|'Dora'|'Emma'|'Enrique'|'Ewa'|'Filiz'|'Geraint'|'Giorgio'|'Gwyneth'|'Hans'|'Ines'|'Ivy'|'Jacek'|'Jan'|'Joanna'|'Joey'|'Justin'|'Karl'|'Kendra'|'Kimberly'|'Lea'|'Liv'|'Lotte'|'Lucia'|'Lupe'|'Mads'|'Maja'|'Marlene'|'Mathieu'|'Matthew'|'Maxim'|'Mia'|'Miguel'|'Mizuki'|'Naja'|'Nicole'|'Penelope'|'Raveena'|'Ricardo'|'Ruben'|'Russell'|'Salli'|'Seoyeon'|'Takumi'|'Tatyana'|'Vicki'|'Vitoria'|'Zeina'|'Zhiyu'
)

Response Syntax :

{
    'AudioStream': StreamingBody(),
    'ContentType': 'string',
    'RequestCharacters': 123
}

We are calling textToSpeech Flask API which accepts parameters sent by React and further proceeds to call AWS Polly internally. The response is sent back to React as a mp3 file. The React application then plays out the audio file for the user.

@app.route('/textToSpeech', methods=['GET'])
def textToSpeech():
 languageCode = request.args.get('LanguageCode')
 voiceId = request.args.get('VoiceId')
 outputFormat = request.args.get('OutputFormat')
 polly_client = credentials.connectToPolly(aws_access_key, aws_secret_key, region)
 response = polly_client.synthesize_speech(Text="<speak>" + text + "</speak>",    
     LanguageCode=languageCode,
     VoiceId=voiceId,
     OutputFormat=outputFormat,
     TextType='ssml')
 return send_file(response.get("AudioStream"),
           AUDIO_FORMATS['mp3'])

Conclusion

This blog showcases the simple implementation of React JS integration with Python to utilize AWS Polly services. This can be used as a reference for such use cases with chatbots.

Chatbots 2.0 – The new Series of bots & their influence on Automation

By | AI, Artificial Intelligence, Blogs, Chatbot | No Comments

Written by Rishabh Sood, Associate Director — Advanced Services Group at Powerupcoud Technologies

Chatbots as a concept are not new. In fact, under the domain of Artificial Intelligence, the origin of chatbots is quite early, tracing back to as early as 1955. Alan Turing published “Complete Machinery & Intelligence”, starting an unending debate, “Can machines think?”, laying the foundation of the Turing test & eventually leading to ELIZA in 1966, the 1st ever chatbot. It failed to pass the Turing test but did start a horde of chatbots to follow, each one more mature than its predecessor.

The next few years saw a host of chatbots, from PARRY to ALICE, but hardly any saw the light of the day. The actual war on the chatbots started with the larger players coming into the picture. Apple led with Siri in 2010, followed closely by Google Now, Amazon’s Alexa & Microsoft’s Cortana. These chatbots made life a tad easier for the users, as they could now speak to Siri
to book an Uber or tell Alexa to switch off the lights (another way to make our lives more cushioned). While these chatbots did create a huge value to users in terms of making their daily chores automated (& speak to a companion, for the lonely ones), business still was a long way from extracting benefits from the automated conversational channel.

Fast track to the world of today & we see chatbots part of every business. Every company has budgets allocated for automating at least 1 process on chatbots. Oracle says that 80% of the businesses are already using or have plans to start using chatbots for major business functions by 2020.
Chatbots have been implemented across companies & functions, primarily with a focus on automating support systems (internal as well as external). Most of the bots available in the market today respond to user queries basis keywords/phrases match. The more advanced bots today use the concept of intent matching & entities extraction to respond to more complex user queries. A handful of bots today even interact with the enterprise
systems to provide real-time data to the users. Most of the commercially successful bots in the market today are text-based interactions.

Most of the bots in action today augment tasks, which are repeatable/predictable in nature. Such tasks, if not automated, would require considerable human effort, if not automated. These chatbots are powered by Natural Language Processing engines to identify the user’s intent (verb or action), which then is passed to the bot’s brain to execute a series of steps, to generate a response for the identified intent. A handful of bots also contain Natural Language Generation engines to generate conversations, with a human touch to it. Sadly, 99.9% of today’s implementations will still fail more than 60 years old Turing test.

It’s true that the conversational Engines, as chatbots are often referred to as, have been there for a couple of years, but the usefulness of their existence will now be brought to test. The last couple of months have seen a considerable improvement in how the conversational engines add value to the businesses, that someone refers to as the chatbot 2.0 wave.

At Powerup, we continuously spend efforts on researching & making our products & offerings better, to suit the increasing market demands. So, what can one expect from this new wave of bots? For starters, the whole world is moving towards voice-based interactions, the text remains only for the traditional few. So, the bots need to be equipped with the smart & intelligent voice to text engines, which can understand different accents & word pronunciations, in addition, to be able to extract the relevant text from the noise in the user’s query, to deliver actual value. The likes of Google & Microsoft have spent billions of dollars on voice to text engines, but the above still remains a tough nut to crack, keeping the accuracy of the voice-based system limited in the business world.

With the voice-based devices, such as Amazon Echo & Google Home, bring convenience & accessibility together. Being available for cheap & in mass (the smart speakers’ market is slated to grow to $11.79 billion by 2023), makes it a regular household item, rather than a luxury. The bots will have to start interacting with users via such devices, not limited to the
traditional channels of Web & Social. This will not only require the traditional voice to text layers to be built in, but specific skills (such as Alexa Voice Services for Alexa compatible devices) to be written. A key factor here is how the user experience on a platform that is purely voice-based (although Echo Spot also has a small screen attached to it), where visual rendering is almost nil, is seamless & equally engaging for the users, as is on traditional channels.

In 2017, 45% of the people globally were reported to have preferred speaking to a chatbot, rather than a human agent. 2 years down the line, chatbots are all set to become mainstream, rather than alternative sources of communication. But this poses a greater challenge for the companies into the business. The bots will now have to start delivering business value, in terms of ROI, conversions, conversation drops & metrics that matter to the business. HnM uses a bot that quizzes the users to understand their references & then show clothing recommendations basis the above-identified preferences. This significantly increased their conversion on customer queries.

The new age of chatbots has already started moving in a more conversational direction, rather than the rule-based response generation, which the earlier bots were capable of. This means the bots now understand human speech better & are able to sustain conversations with humans for longer periods. This has been possible due to the movement of the traditional intent & entity models on NLP to advancement on Neural networks & Convolutional networks, building word clouds & deriving relations on these to understand user queries.

Traditionally, Retail has remained the biggest adopter of the chatbots. According to Statista.com, Retail remained to occupy more than 50% of the chunk in the chatbots market till 2016. With the advancement being brought into the world of chatbots at lightning speed, other sectors are picking up the pace. Healthcare & Telecommunications, followed by Banking are joining the race of deriving business outputs via chatbots, reporting 27%, 25% & 20% acceptance in the area in 2018. The new wave of bots is slated to narrow this gap across sectors in terms of adoption further. A study released by Deloitte this year highlights the increase of internal chatbot use-cases growing more than customer-facing functions, reporting IT use-cases to be the highest.

Chatbots have always remained as a way of conversing with users. Businesses have always focused on how the experience on a chatbot can be improved for the end customer, while technology has focused on how chatbots can be made more intelligent. The bots, being one of the highest growing channels of communication with the customers, generates a host of data in the form of conversational logs. Businesses can derive a host of insights from this data,
as the adoption of bots among customers increases over the next couple of years. A challenge that most businesses will face would be the regulatory authorities, such as GDPR in the EU. How business work around these, would be interesting to see.

Mobile apps remain the widest adopted means of usage & communication in the 21 st century, but the customers are tired of installing multiple apps on their phones. An average user installs more than 50 apps on a smartphone, the trend is only going to change. With multiple players consolidating the usage of apps, users will limit the no of apps that get the coveted memory on their mobile phones. This will give an opportunity to the businesses to push chatbots as a communication channel, by integrating bots not only on their websites (mobile compatible of course) but other mobile adaptable channels, such as Google Assistant.

According to Harvard Business Review researchers, a 5-minute delay in responding to a customer query increases the chances of losing the customer by 100%, while a 10-minute delay increases this chance 4 times. This basic premise of customer service is taken care of by automated conversational engines, chatbots.

Chatbots have a bright future, especially with the technological advancement, availability & adaptability increasing. How the new age bots add value to the business, remains to be seen and monitored.

It would be great to hear what you think the future of automated user engagement would be and their degree of influence.

SAML for Single Sign-on in Chatbots.

By | AI, Blogs, Chatbot, SAML | No Comments

Written by Rachana Sharma, Associate Tech Lead, Powerupcloud Technologies

Identity management plays an important role in any kind of a chatbot Application today to authenticate a user. Chatbots are used widely for fetching user level details & data, which is fetched in realtime from an ERP or a CRM application. Thus security & identity management is a fundamental part of such chatbots to ensure relevant information is fetched.

SAML(Security Assertion markup language) is an SSO(single sign-on) protocol is one such protocol & one of the most adapted ones for Identity Management. It is a secure XML based communication mechanism to communicate identities between organizations. The primary use-case where we use SAML is internet SSO, which eliminates the need to maintain multiple authentication credentials (passwords) in multiple places and hence ease the access and increases security from any type of breach, which may happen due to identity theft and fishing.

Entities:

  • User
  • IDP(Identity Provider): Organisation that maintains the directory for a user and an authentication mechanism.
  • SP(Service Provider): Organisation of the host the targeted service.

All these entities are inter-related, as the user has an account in IDP. We can think of it as an employee having an account with the employer. the user wants to use an SP (particular application like chatbot application) while IDP and SP are related as they want to federate identities.

The way SAML work:

SAML SSO works by transferring the user’s identity from one place (the identity provider) to another (the service provider). This is done through an exchange of digitally signed XML documents.

  1. User Accesses the chatbot on the portal or maybe through a URL
  2. The application identifies the user’s origin (by application sub-domain, user IP address, or similar) and redirects the user back to the identity provider. Federate identity software running at IDP kicks into action and validates a users identity
  3. Constructs a specially formatted message which has information about the user, called claims. Claims can have info like username, email etc. To do this IDP may rely on an Account Attribute store( a common example of this can be the AD).
  4. The message is signed using an X.509 certificate, and IDP then posts this information to the service provider.
  5. SP determines that the message has come from a known IDP, and has a certificate fingerprint, retrieves the authentication response and validates it using the certificate fingerprint and creates a session specific to the user in the targeted application and allows direct access to the user.

When a user interacts with the chatbot, all that is visible to them is a click on the chat icon and they are able to interact with the chatbot.

How a basic chatbot application works and why we need authentication here:

Users on a chatbot application access the bot via a channel, which could be a mobile or a web browser or even Social Media based channels. For any channel access, UI transfers the user request to the bot’s back-end At the back-end, the user’s request is processed with Natural Language Processing and machine learning algorithms. The NLP returns the intent based on the user query and then fetches the data from the client APIs. If the query does not need the user to be authenticated, such as a static query response.

Following are the steps to identity Management using SAML for a chatbot application:

Prerequisites:

  • Python3
  • Flask
  • REST APIs

Let us take a sample flask bot application.

Index.py

from flask import Flask,request

import json

import ml_logic

app = Flask(__name__)

@app.route(‘/get_request’)

def hello():

return “Hello World!”

@app.route(‘/bot_request’, methods=[‘POST’])

def create_task():

bot_request = request.json[“user_request”]

user_id = request.json[“user_id”]

response = ml_logic.process(user_id,bot_request)

return json.dumps(response)

if __name__ == ‘__main__’:

app.run()

1. We will host this flask app as Service Provider for ADFS authentication. We have used Python3-saml demo-flask module to provide SAML support to out back-end Flask app. After setting up this library, combining both flask apps and hosting it with https will give us our SP URL.

  1. We have used ADFS as IDP here. After we get SP, we need this Service provider URL to be configured as Trusted Relying party in ADFS of the client.
  2. Once set up of Relying party trust is done, all we have to do is to provide IDP and SP related details in settings.py file present in python3-saml/demo-flask/saml.
  • SP information is the information about the flask app you have hosted.

Please note that the highlighted text will vary as per your environment.

Below is some screenshot for the ADFS setup with the chatbot.


Text to speech using JavaScript and Python and AWS Polly

By | AI, Alexa, AWS, Blogs, Chatbot | No Comments

Written by Saikrishna Dronavalli, Former Software Engineer, Powerupcloud Technologies.

Giving voice responses is an important feature of your application these days. In this post, we will discuss how to convert text to speech using JavaScript and Python.

JavaScript

Among all the ways using simple JavaScript library is an easy process to convert a text into speech. All we need to do is add the JavaScript library and call the respective function with the text you want to convert to speech as an argument.

I am using ResponsiveVoice.JSplugin for this. Please follow the following procedure and sample code snippets provided.

Download the plugin from the website and add it to your HTML page or use the CDN in your HTML page as shown below.

For different usages please follow the code snippets.

Fetching all Available voices

Stopping, pausing and resuming the voice

Conversion when the browser supports voice


Using Python

I will show you two ways for Text to speech conversion using python.

AWS-POLLY

Polly is a text to speech synthesis service from AWS. It is a very simple service to use. All you need is an AWS subscription.

we can test AWS services using in multiple ways like AWS CLI(command line interface), API Client for different technologies and using AWS console.

  • To test Polly in AWS console login to your AWS account and go to Polly console. Fill the text area and choose the language and region and voice and click on listen to speech button.

By using Polly API client we can do all operations which can be performed on AWS console such upload your own lexicon and can use it for text to speech synthesis besides using the default voices provided by the Polly etc.

Install boto3 client by using these instructions.

  • Once your installation is successfully completed then we need to create a Client Object for Polly as shown below.

once you create a client you can do all the operations that you can do on AWS Polly console-like getting the supported voices, synthesizing speech, uploading a lexicon, deleting a lexicon, etc…

To know all the voice in a particular language

To convert text to speech

to convert the text into speech the request will look like

Using pyttsx

install it using below command in Linux

sudo pip install pyttsx

converting text to speech using pyttsx

Besides just conversion, you can also add events.

For more information on using pyttsx please visit here.

That’s it. Happy conversion!

Building Bots using Microsoft Bot Framework and Nodejs

By | AI, Azure, Blogs, Chatbot | No Comments

Written By: Saikrishna Dronavalli, Former Software Engineer, Powerupcloud Technologies

Microsoft provides a very simple and yet powerful framework for creating chatbots. Below are high-level steps for creating bots using Microsoft bot framework.

  • Create a repository on GitHub
  • Create a web application in azure.
  • Register a bot with Microsoft bot framework.
  • Develop the bot code.
  • Test the bot.
  • Deploy it in Azure.
  • Deploy it in the different mediums. (Facebook Messenger, Slack, Kik, Telegram, Twillo SMS etc..)

Requirements

1.github account.

2.microsoft account. (for creating a bot with the Microsoft bot framework)

3.Azure subscription. (for creating a web application and deploying bot application in the azure web app)

Create a repository on GitHub

This is trivial. I am using GitHub because in some section of the bot framework we need to make the continuous integration of the application with the azure web app. Using Github makes it so simple. We can save the effort of re-deploying every time you make a change to your code. Go to GitHub and create a repo.

Create a web application in azure

Bot Framework is powered by Azure’s App Service. Visit Azure’s portal and navigate to Web Apps. Create a new WebApp.

Once created, it is time to link it with out github repo and deploy. Select the app you have created click on App Deployment > Deployment options. Click Choose Source, then select the deployment source.choose Github here.

You might have to authenticate using your GitHub creds, go ahead and do that.

We have now set up continuous deployment via GitHub. You don’t really have to worry about whether its .NET, Java, Python, Node, etc — One of the benefits of using app service is, Azure will take care of CI/CD heavy lifting as long as you hooked it up with the repo.

Register your bot with Microsoft bot framework

For creating a bot which is accessible by the world we need to register the bot with Microsoft bot framework which gives us a unique Microsoft App ID, Microsoft App password which we need to use in the coding part of the bot.

use https://azure-webapp-url/api/messages for Messaging Endpoint as shown below.

Proceed to create App id and password and App password as shown in below screenshots. You might want to store the passwords etc in a text file for later use.

Click on Finish and go back to bot framework. Provide the App Id in the required fields and accept the terms and conditions click on the register

Develop the Bot

Now the interesting part — actually building our bot. Clone the GitHub repository you have created to your local machine. Note that our web app is currently blank, we actually need to put some code and start building the bot. I chose Nodejs for this tutorial.

Lets create a Package JSON and node modules.

npm init

One of the major modules necessary for making use of the bot framework is botbuilder. Let us go ahead and get that. We also need another module for creating the server.

npm install --save botbuilder
npm install --save restify

Let us create js file and add the following code — app.js

Note:

  • The server.post has a path set to /api/message because while registering the bot, the endpoint URL was given as https://azure-webapp-url/api/messagesIf you like some other URL, you are free to choose so but make sure that you use the URL that was registered.
  • You have to add your own appId and app password in var botConnectorOptions block.

Next, create an index.html  page with the following content

<html>
<body>
<h2>Hello world</h2>
</body>
</html>

Testing the Bot

For testing the bot we need to use Microsoft bot framework emulator. Install it and run your application using

node app.js

This will run the application on the port we specified in app.js file. open the bot emulator enter the URL http://localhost:3978/api/messages.Provide the app id and app password here also click on connect.

Start typing any messages and if you get a reply from the bot — congrats! you have successfully developed a basic bot using Microsoft bot builder.

As I said, this is bare bones of a bot without any actual functionality. Now that the basic bot is working on a local emulator, time to push the changes to GitHub and let Azure Web app take care of the deployment

git add .
git commit -m “commit message”
git push origin master

I pushed it to the master branch because that was the branch I chose while configuring GitHub integration for CI/CD.

Verifying the Bot

Now that deployment is done, time to see it live from the Azure web app endpoint. You can visit https://dev.botframework.com. If everything went well so far, you should see your bot listed. Click on “Test” and you should ideally see “Accepted” as the response.

You can also test your bot locally using ngrok. Open the bot emulator and provide the endpoint URL you have specified during the registration process. Provide the app id and app password. Start chatting with your bot. If you get the replies your endpoint is working properly.

Deploy The Bot To Different Mediums

One of the advantages of using Bot Framework is how easily it allows you to quickly build a bot and make it available in almost all of the major chat platforms available today. If you have to code all of these integrations yourself and maintain, it sure will take a lot of time and effort. Let’s see how we can integrate our bot across all platforms.

Visit your bot page under my bots in bot framework website. Click on the add button on the required medium, which will show you the steps to be followed for enabling the bot in the respective channel.

It’s that simple. As an example, I will go through Slack set up to give you a sense of how the process looks like.

visit https://api.slack.com/applications/new and create a new slack application for your bot.

Open OAuth & permissions click on add a new redirect URL paste “https://slack.botframework.com” as redirect URL.

Create a slack bot. Select the ‘Bot Users’ tab and add a bot to your app

Gather the client Id and client secret. which is under basic information→App credentials.

provide them in the ‘submit your credentials’ part of your bot under slack section in https://dev.botframework.com. click on submit slack credentials. Once the credentials have been validated, choose to enable this bot on slack, and click on I am done configuring slack.

Install slack bot. Visit install app section of your slack bot and click on install app and provide all the permissions required for installing. Once your bot is installed open slack and search for your bot in slack and start sending messages.


There are many other platforms you can integrate with and in each case, you will get clear instructions like below to make the integration working:

That’s about it. The goal was to demonstrate how easy it is to deploy a bot and also integrate using Azure Bot Framework. I hope you found it useful!

Happy chat-botting!

Making procurement a breeze for a large Telco – Botzer in action

By | AI, Botzer, Chatbot | No Comments

Written by Sahil Verma, Former Product Manager — Conversational AI at Powerupcloud Technologies.

Procurement is a dreaded vertical in any company, the sheer amount of data, multiple stakeholders involved, a host of unrecorded transactions happening offline. Procurement has always been a complex function not only the execution function but the conceptual level itself. Most of the procurement functions are traditional in nature, with hardly any centralized Enterprise repository containing the complete data. This makes the job of the procurement department, coordinating & responding to the vendor & internal buyers queries extremely difficult.

Now imagine an Enterprise, which is spread across geographies, having a workforce of over 25,000 employees and 2 subsidiaries equally large. The enterprise has a comprehensive procurement function, frequently engaging in the procurement of goods and services. A nightmare for the department. The largest telecommunications company in the APAC gets an excessive amount of calls, emails & even social media requests to the internal procurement help-desk. These queries are mostly related to the policy details & Frequently Asked Questions on these policies.

The telecommunications giant approached the Powerup Advanced Services Group (ASG) team to help decongest the bandwidth for the support team. With a conversational expertise Powerup, ASG has developed, building an Enterprise-class chatbot platform, analyzed the conversations the support team has had with the procurement, as well as the employees. The basic tenet for successful conversational automation is to automate the processes/queries which bring down the repetitive tasks at least by 90%. The powerup team was able to identify the top 90% queries from the transactional conversation’s data set (call records, emails, etc.). These 90% queries were then automated on Botzer, the enterprise-class chatbot solution, that could help the entire organization with the procurement policies and FAQs, without which the help-desk would be the single point of contact for any procurement-related queries. The chatbot not only aimed at reducing the manual load on the current procurement helpdesk team but also aimed at reducing the TAT (turnaround time), by at least 80%.

To start with, the most important part of the procurement function — procurement policies and procurement processes were identified for automation.

Design Approach

A very important aspect of a conversational interface is to give it a believable persona, something that the users can relate to. Since the target audience was the internal Singtel employees, who raise procurement requests, while the bot was providing a professional service to the employee by resolving their professional queries, the bot was given a professional and a compliant persona. The bot was a professional bot, which would resolve the user’s queries within 2–3 conversations and would be empathetic to the user queries (being a user query automation chatbot).

The next step was to name the bot, for the employees to relate with. The name ‘Claire’ comes out of ‘Clarity’ — this was an appropriate name for this chatbot as this bot will provide clarity on users’ procurement-related queries.

A very important principle for chatbot design is to have a guided flow for the users, highlighting the scope & the coverage of the bot queries. Along with this, it should allow open conversations, to allow users to have a free flow of conversations with the bot.

The following points were a critical piece for the chatbot solution design:

  1. Guided Flows
    Let the user know the bot’s knowledge scope, by communicating very clearly what the chatbot is capable of. This includes giving users well-articulated, menu options. These options were designed to be clickable, as well as conversational.

2. Suggestions
To give users a better conversational experience & an empathetic persona, the bot doesn’t only answer user queries, it also gives suggestions for the next possible questions from the user.

3. Easy to Read Information
A very important component of a bot is the User experience. How the bot not only converses with the users but also how easily the users can navigate via the bot. Presenting information in a readable manner with the user, the swipeable carousel elements enhance the user experience.

4. Analytics Dashboard
Any conversational interface needs continuous improvement, not only in terms of Natural Language Processing, but also queries to be automated. For the, a continuous monitoring & reporting system is foremost for the business users to analyze the Bot & its performance. Analytics which give insights about the most frequently asked questions and unanswered queries which can help the training of the bot further.

Most of the queries could be classified under a limited set of service queries.

Powerupcloud’s Botzer was a perfect fit for the telecom giant, with readymade modules & integrations available.

Continuous Improvement

The chatbot will get smarter based on the chat history from the users. A dedicated business continuously reviews the list of unanswered queries on a weekly basis and trains the bot to understand these queries.

Impact

Claire has been successful in Claire-ifying user queries and is now an integral part of the procurement ecosystem within the organization. Claire is available in all important procurement-related employee portals of the telecom giant.

The chatbot is capable of handling over 200 concurrent queries at a moment and has also reduced the amount of time the helpdesk team spent on answering the employee queries by more than 50% within a month of go-live.

Virtual Receptionist Bot

By | AI Case Study, Azure, Botzer, Case Study, Chatbot | No Comments

One of the world’s largest IT park builders

Problem Statement

One of the world’s largest IT park builders was looking to automate their front-desk
assistant roles to cater to a large volume of visitors, better response and added
security.

Proposed Solution

Powerup implemented botzer.io – a receptionist bot which takes the image of the
visitor, checks the database for repeating/new visitor, checks the calendar for
appointment and prints visitor badge with access code. The visitors can also interact
with the bot through chat or voice asking for directions within the building. Botzer
A receptionist is integrated with Google Nearby to answer queries like nearby taxi
stand, metro station, coffee shops, restaurants, etc.

Cloud Platform

Microsoft Azure.

Technologies used

Botzer.io, Azure Face API.

Virtual Concierge Automation

By | AI Case Study, Azure, Botzer, Case Study, Chatbot | No Comments

Customer: One of the largest real estate providers

Problem Statement

One of the largest Real Estate providers who owns 16 of the largest malls in
Singapore wanted to automate its offline consumer rewards program on mobile
platform to increase the footfall of customers in their malls.

Proposed Solution

Powerup developed a chatbot, supported on Android & iOS devices, on its product
Botzer. The bot integrated with 23 APIs & applications, allowing users to book cabs,
restaurant tables, check parking lots availability & browse through the retailer catalog
in the bot. High reach marketing campaigns are run on the bot through which users
have rewarded star points, which can be redeemed offline at the malls.
The solution helped increase footfall in malls by more than 14% within 3 months of
launch.

Cloud Platform

Azure.

Technologies used

Botzer.

Customer service Chatbot

By | AI Case Study, AWS, Botzer, Case Study, Chatbot, ML | No Comments

Customer: India’s leading lending company

Problem Statement

A leading lending company from India has seen an increasing number of support calls
to their customer service team, hence they decided to use chatbot capabilities to
bring down the dependency on the human support team to address customer concerns.

Proposed Solution

Powerup implemented the Botzer.io chatbot platform with Amazon Lex & Polly.
Customer calls get diverted from IVR to the chatbot, which takes customers’
requests as voice input do entity matching, triggers workflows and answers back immediately. The voice engine supports 2 languages today – English & Hindi.
Customers can get details like Statement of Account, EMI tenure, Balance Due etc.

Cloud Platform

AWS.

Technologies used

Botzer, Lex, Polly.

HRMS Automation Chatbot

By | AI Case Study, Azure, Botzer, Case Study, Chatbot, ML | No Comments

Customer: The largest telecom provider in Singapore

Problem Statement

The customer is one of the largest telecom providers with a subscriber base in Asia, Australia & Africa & have 25000+ employees spread across the globe. It is a nightmare for the HR department to respond to employee queries around policies & real-time updates their HRMS, hosted on Success Factors on SAP. This created a need to have a comprehensive solution to cater to needs across geographies by automate the process for New Hire On-boarding and Leave Application process. This helps solve user request quickly avoiding any delay in response by the HR function through a chatbot which understands the exact user’s questions and answers to it appropriately. It also saves time of the HR team in addressing user issues by just clicks instead of looking for resolutions in the guide.

Proposed Solution

Powerup integrated with Success Factors on SAP & deployed a chatbot on their HR Central website, which allows their employees to query policies & get real-time updates on HRMS data. The bot, built on Botzer, also allowed the employees to apply for leaves & approve pending requests in SAP.

Cloud Platform

Azure.

Technologies used

Botzer.