March 21, 2021

Silicon and Carbon - together

So far, we have seen how RPA can bring more value when integrated with AI. The level of the value is of course dependent on the business model and how you have embedded it into your automation. Be it a machine learning model that predicts what the outcome will be, be it a translation service that translates a content or another cognitive service that does a sentiment analysis. 

Regardless of what model you choose, the question remains... How can you trust AI ? Or can you trust AI fully ? 

I think the answer is still far from being a "OF COURSE, WHY NOT ?"

For sure, RPA & AI combination brings a huge value, it makes our lives more easier, but even though the AI model we use is "narrow" and is expected to take care of the task it was trained for, we cannot let it handle our business critical automation until it can prove that it can do the job flawlessly. "Flawlessly" is only possible if the model is well trained and until we see the outcome, we should keep AI under control. 

By control, we mean to bring human into this process and let the silicon work together with the carbon while in the meantime, letting the carbon train the silicon...

This means, you can still embed AI into your solution and set some rules. The confidence level can be one of those rules. The robot can for instance read a text, analyses it and classifies it as positive or negative if it is really certain with its finding with a score of 80%, meaning if it is 80% sure that the text is positive or negative. For an ML model, setting a confidence score is a no brainer.

Here comes a tricky question... What happens then if it is below 80% ? The simple answer is, you can program it to escalate it and ask for help from a human if this is the case. This situation is what we call as : "human-in-the-loop" state. When a robot ends up in this situation, it can send an email, warns someone with a pop-up message, or can find another way to ask for help. Regardless of the method, the receiver of this escalation is a human. The input from the human, then, can be used to train the robot so that it does not need to escalate when the same case occurs.

You might also want to ask another question..."What happens if the human does not answer in a timely manner ?"  This is a very relevant one since it might take a while until someone gets back to the robot.  Should it then wait until it receives an answer ? Of course, not. The robot should be able to put the process on hold until the answer comes and continue with another one, as otherwise it gets locked unnecessarily as it is impossible to know when this input will come.

Shortly, the robot can run another process when it has escalated the earlier one to a human and once it receives an input, it takes it from there and continues with the rest of the process.

Assume that I have an excel sheet with some movie critiques in it and I want my robot to read the content and provides me a feedback for every critique, either positive or negative. I want it to provide me with this info if it is 80% confident and otherwise, expect it to escalate it to get a human input.

Let's see how it works...



By using an ML model, the robot reads the content, classifies it if the confidence score is above 80%. if not, it expects to get a human feedback and also uses it to train itself. So the next time, it does need to involve a human for the same critique. Consider that my input got a confidence score of 100% since the robot fully respects my entry :)

This is a good example of a human-robot cooperation, where you can feel yourself more comfortable as you are in control and train the robot to become smarter. 

If we look from a scenario perspective, it fits to the sixth one in the below picture:






March 14, 2021

Email classification with the help of AI and RPA - Deep Dive

After having shared the email classification video, I got a couple of requests to show the details of the flow. 

I have now recorded the video below:




It all starts by checking the messages coming with a specific subject and from a specific email address. I put those requirements so that the automation reacts only to those emails and nothing else. With the delay and the loop, I let the process run all the time and wake up when those specific emails come in to the mailbox. 

Then, by using Microsoft translator cognitive service, I am translating the emails to English since the ML model has been built only to classify the emails in English. Adding this activity removes this limitation.




By using the "emailclassification" ML skill, the system evaluates the content of the translated email (if it is a non-English email) and comparing the confidence score, which I set deliberately pretty low, it classifies it and moves it to the corresponding email folder.

Alphabet.Workflow.Activities gives me the possibility to update the subject of the email with the translation. For the moment, the activity only updates the subject and not the body and this is why I am doing the update on the Subject level.






The Message Boxes used in the flow are there just for the demo purposes and removing them makes the flow run quicker and without a human interaction.

Hope you find this useful.

Next week, I will focus on the human interaction part in more details as the robots might need to get some confirmation from time to time, especially when they are not sure with the outcome, for instance when reading a document. You can instruct the robot to use document understanding framework and also put a confidence score if a ML model is required. For any score below the confidence score, you might want the robot contact a human to get his/her approval. This is a recommended way to proceed when using the framework, especially in the beginning. The good thing is that you can use the human input to train the ML model. 

This setup, I mean using RPA-AI and Human, opens new doors and gives you the possibility to build very complicated flows.

See you next week !









March 04, 2021

Email classification with the help of AI and RPA

As promised in my earlier blog entry, I would like to show you how AI and RPA can cooperate to classify emails landing to a contact centre's mailbox.

Let's have a look:








As you can see, there are four emails in four different languages (Japanese, Turkish, Swedish and French) in the mailbox. The ML model developed works only in English, and this is why the non-English emails first need to be translated into English so that the ML can understand the content. 

First of all, a robot constantly monitors the mailbox to fetch the right emails. The right emails can be separated from the others via some filters, like a specific word in the subject, the sender or based on if they are unread. Once the conditions are met, the process kicks in. To translate the emails, a translation cognitive service is used. Once the email is translated, the ML model looks into the content, understands it and then moves it to the correct folder. Assuming a contact centre receiving thousands of emails, this automation helps enormously to the agents by removing this mundane task from them so that they can spend more time with their customers. Just for the sake of the demo, I am showing both the translation and the confidence score on the screen, but those parts of the automation can be removed easily to have an uninterrupted and continuous process. 

Providing even the possibility to understand the content of the non-English emails, makes the agents who will then respond to the customers jobs even easier. To make the automation even more complex, the agents can respond the emails by writing in English, but an automation can translate it into the emails' original languages and then send them to the senders. That part of the process can also be automated and those responses can either be provided by the robots without involving people, even though this of course brings the challenge of having not perfect translations even though those AI services are becoming more and more intelligent day by day or by involving a human before they are sent. We call this "human-in-the-loop" concept, which I will talk about later.

For the next blog entry, please provide some feedbacks. I can continue with more examples and even go deeper and discuss how I have created this automation. 

Looking forward to your feedbacks...

Understanding Documents thanks to RPAI (Part 2)

The summer vacation was great, but it is also exciting to be back and kick off the first blog entry after the break... In the first part of ...