ABBYY Vantage Video – Integration with Automation Anywhere™

Watch a video to learn how you can integrate an Automation Anywhere™ Bot with the document processing skills of ABBYY Vantage.

Hello. Today I’d like to share with you a video about how we do an integration between Automation Anywhere and ABBYY Vantage. Once again, being able to take advantage of two best in class platforms from RPA to OCR, with classification and extraction, and really mend them into one full process, giving us the best of both worlds. And what you see in front of us is an Automation Anywhere Bot, and this Bot is responsible for interacting with the Vantage Web Service API to pass documents and take advantage of those skills that we have within ABBYY Vantage.

So what I wanted to show you is my dual setup here, where I can show you the bot visually, but also the steps specifically called out for us. And really this is the high list of steps. Is we’re going to obtain an Access Token. We’re going to go get some skills. Specifically, look for a specific skill that we want to interact with. Then we’re going to process the files. We’re going to upload some files to ABBYY Vantage. We’re going to get the transaction information back. We’re going to download the result file and convert that Json to a CSV.

So it’s fairly simple. In fact, what I’ll do is I’ll go ahead and run the bot so that we can see what happens. I’m going to hit run. And we’re going to have a couple of message boxes that load up for us just to kind of show us the different pieces of the interaction.

This would be our Access Token. This would be our SkillID. Then we have what’s called a TransactionID within ABBYY Vantage. And once again, these message boxes are just for information purposes so that we can track how the bot is progressing. All right, now the documents have been fully processed. So what you’ll see is we have this information extracted to a CSV file. If I double click that CSV file, I will have the results that I’ve gotten back from ABBYY Vantage here within my CSV file here in Excel. So this is just one example of exporting that Json query to something that’s usable for us downstream. It gives us the ability to obviously take that Json, and do anything we want with it. Whether it’s use it within the bot, whether it is passing it to another process downstream, or consuming that Json through some other method.

So the cool part is here that we have that all working as one seamless process, but let’s dive into the bot for just a few seconds here. It’s very simple. It’s just a REST Web Service Action that we’re using within Automation Anywhere. So we’re going to go ahead, for example, post our API to Access Token Request. We’re going to go ahead and extract the data from the response and we will then get an Access Token. So if we wanted to take a look at the Access Token Request, we can pull that up here within our variable. We have a variable where we store all of these specific calls. And you can see here, we’re applying this here to the endpoint. We actually have two different URLs that we’re using. So we use the URL base of the URL, and then we use an Access Token amended to it so that we can keep those as two separate locations.

Obviously then we will extract our Access Token. Now, an interesting part here is that we want to look for a specific skill. So what we do is we can obviously get the skills through a web service post, and then we can extract the specific Web Service ID of that skilled name that we’re looking to interact with Vantage here. So what we’ve done is we’ve asked Vantage to give us a list of skills. And now we’re specifically looking for a specific skill that we will interact with downstream. So we’ll store that SkillID and a variable, which we will then use when we process new transactions.

Now we have a DLL that we use to kind of package that document and pass that over to Vantage. You’ll see, it’s actually fairly simple. All we’re doing is we’re giving it a file. We’re giving it the Web Service URL and the Header, and we’re passing it to Vantage, just programmatically, making sure that we combine all of those beautifully. But then the rest of this is once again, interacting directly with the API to get the transaction information. We actually pass a document to Vantage, and then we ask Vantage to give us the response and then we loop until it happens until we actually get a formal response. And we put a delay of five seconds here. There’s a number of different ways to do this, but this is just a very basic way to show you that we’re passing a document. And then we’re just pulling for status periodically until we get the status that we expect to receive.

Now, when we pass a document to Vantage, the important part to know is that every transaction gets logged. So we can literally see what’s going on in that transaction. We have all of the logs you can see from top to bottom, where we came from. You know, bottom is the very process starting and then it goes through a number of steps where then the workflow is completed.

Within our skill, the one thing I will tell you is our document processing skill has an output within it. And you can see here, we’re telling the software to don’t provide an output, which by default is an FTP output, but we’re just saying don’t provide one. Instead, we’ll use our Automation Anywhere actions to pull the results. So that’s what we have here. This would be a typical setup of a Process Skill, where we’re going to provide a document and we’re going to classify and extract, and then we’re going to output it, but just know here, if we’re just interacting with the Web Service API, we want to make sure that we have this first option selected here.

And then of course we will pull. And that’s what I was sharing with you here on the Automation Anywhere side. We will pull for that document periodically until we get a proper status. That means we’ve extracted the data. And then from here, we can download the result file, which is the Json file and we can convert that to anything we want. In our demo we’ve converted it to CSV, but you can obviously do all sorts of exciting things with that Json. So this is an overall solution that gives us the best in class of both worlds from RPA to OCR and classification and extraction. I hope you enjoyed this video. If you have any questions on this, please reach out. Thank you so much.

“Automation Anywhere” is a trademark/service mark or registered trademark/service mark of Automation Anywhere, Inc. in the United States and other countries.

ABBYY Vantage Video – Getting Started

Watch a video to discover the basics about how to get started with ABBYY Vantage, an AI based cognitive services data extraction platform.

Hello. Today I’d like to share with you ABBYY Vantage. The unique part of this platform is that it’s an easy and quick way to implement an OCR extraction process. Now, what you see in front of us is kind of our home screen. When we log in, this is where we go. On the left is our menu of our different options that we have. And on the middle is the content. Always the content about that specific menu item. And then on the right is an action screen, which always tells us what we can do in that context of that screen. Now, the document screen here is actually our sandbox. I’ll come back to this in a minute, but the sandbox is where we can upload documents and kind of see right now, right in front of us, the classification and extraction results.

One of the more important parts about ABBYY Vantage is understanding skills. We have three types of skills. We can teach the software about how to classify a document. Now, when we say classify, we mean, how do we determine the document type? One of the ways that we do that is by literally uploading samples of documents so that the software can see and start feeling what we call variants or classes of those documents. We have what are called document skills. So once the software knows a document type, we want to typically extract information on that document. And so that’s what a document skill does is we can upload samples in using machine learning, literally just lasso data and teach the software where information is found on documents that are either structured or completely unstructured.

And then lastly, we have a process skill. A process skill gives us the ability to bring everything together so we can allow the software to use classification skills and document skills, and literally map out a business process. In fact, I’ll show you one, just to give you an idea of what I mean. So here is a process skill. We have an input and we have certain actions or properties about that input. We have a classify step of the activity of the process. We have an extraction activity, we have some routing decisions, and then we have an output. And this is kind of bringing every one of those skills together to give us the ability to see our business process.

Here on the left, then going back to the menu is a manual review screen. So within this process, we can make certain conditions and decisions about when we send items for manual human in the loop review. And then of course we have an administration section here.

Let me go back however, to a couple of things that I didn’t share with you about skills. You have a skills catalog, which is where all of your skills live. You have a skills monitor, which tells you about the interaction of the skills. So you literally can see statistics about documents that are flowing through a specific skill. You can see throughput and you can see if items are lining up in a queue and you can see how long those skills are taking to run. And you can literally see event logs about every single transaction that takes place and this is typically helpful when we’re debugging and kind of seeing throughput expectations. So skills monitor is a more of an administrative review of how our skill is processing. Is it efficient and what do we need to do to make sure that that skill is rock solid? And then of course we have our skills designer. Remember I said there are three skills documents, classification, and process. Once again, the document skill is all about extraction. Teaching the software about extraction. Classification is teaching the software how to recognize different types of documents and then process skill is bringing it all together. So I just wanted to share this platform with you. This is a very unique opportunity for us to onboard a OCR extraction or classification process within minutes, and look forward to diving into this software with you. Thank you so much.

ABBYY Vantage Video – Creating a Classification Skill

Watch a video on how to create your first Classification Skill in ABBYY Vantage using the Classification Skill Designer.

Hello. Today I’d like to share with you how we create our first Vantage Classification Skill. So I’m logged into Vantage. The first thing I’ll do is go to our Skills Designer and create a Classification Skill. We will give it a proper name. And we will create it. One of the first important things to understand about a Classification Skill is that we have this concept called Classes. Classes are the different variants or types of this specific document that we have. And in this case, I have a direct deposit form. So what I’ll do is I’ll create a class. I have a form from a fake company called ACME, and then another company called Custom Kitchens.

Now I’ll just share with you an example of this direct deposit form. This is from the company ACME. So I want to tell the software, what ACME looks like. What the different styles of forms are. And then I have another one here for Custom Kitchens of Bayshore. And this is another form. Now the idea with classification is that we can teach the software through samples, how to recognize these different classes separately. So in this case, what I’m going to do is upload a few samples of each type. I’m just going to drag and drop them. And I’m going to move on to the next one. The software will asynchronously add those to that class. So in other words, I can work while the software is still learning and applying those different documents. In this case, I’m going to go ahead and upload these other samples to this other class.

So now that these are uploaded, you’ll notice that the train button on the far bottom, right, is now activated. I have the ability to train the software with those documents. Now that the training is completed, I can move on to our results tab and we can see statistics about the documents. So we can see the accuracy level. We can see the number of classes. We can see the documents that were used for those classes. We can even upload additional documents. So if I had another document that we want to upload, say this blank document, I would have the ability to go ahead and upload and use those documents.

The next step here is we have the ability to publish this Classification Skill. We can give it a name and description, some keywords so that we can find it as we search and even upload some demo documents. Once we’re done, we will hit publish. You can find that Classification Skill in your Skills Catalog under the Classification Skills section. So you can see here. Here’s the first one we just created together. And now you’ve created your very first Classification Skill within ABBYY Vantage. Congratulations!

ABBYY Vantage Video – Creating a Document Skill

Watch a video to learn how to create a Document Skill with ABBYY Vantage’s Document Skill Designer.

Hello. Today I’m going to show you how we create our very first Document Skill within ABBYY Vantage. Now, when we’re logged into Vantage, what we want to do is go to our Skill Designer and we want to select “Document Skill”. We can give the skill a name and then we can proceed. The first thing we want to do is upload some samples of the documents that we want to teach the software, how to extract. So I will do that. I’m going to upload two different samples. In practice, you would want multiple samples and potentially multiple samples of even the same format, if that’s where you’re going. So we will upload for this demo, just two different samples, but in practice, we would have multiples. We will continue moving down our action screen.

So we’ve uploaded documents. Now we want to label and create some business rules. This is where we tell the software where the information is on the document that I want to extract. It’s actually very, very simple. You can see the types of fields that we can extract here. We can do tables. We can do barcodes. We can do checkboxes. We can group elements. And of course we can grab any text on the document. What I’m going to do is I’m not going to touch anything besides lassoing the field for the sample that I want to extract. When I click that, you’ll see a new field is populated here on the right. For the sakes of this demo, I’m just going to select a few different fields. And the software will add the fields here. I will go ahead and give them a proper name.

The other cool part about Vantage is we get the ability to group fields. So just for fun, I thought I’d show you how we can group, for example, the banking information. So what I’ll do is I’ll click the “Add Group” here. I can rename the group. And as you’ll see, I can click to create an item. And here, once again, we just lasso the fields. And so what we can do here is rename the fields.

The other thing that we can do at this point is obviously we have checkboxes on this form, which are going to be pretty key for the type of data that we want to extract on this document. And so what I can do is I can click the “Add Checkbox” or “Checkmark” field. The software will put this checkmark here, and now I need to teach it where it’s found. So I’m going to click it and I’m just going to tell the software it’s located here. And then I’m going to give it a proper name. And I will do the same thing for the savings account. Once again, we will name that properly.

One of the important things to do when you use a checkbox is to tell the software, which one is the properly checked value. So in today’s document here, I’m going to unselect checking just so the software is known by my clicking, which one is properly checked.

Now that I’ve defined the fields for one document, I can do it for the next document. And so what I’ll do, even though the document looks different, that’s okay. We’re going to teach the software by clicking here on the right where to find this information. And all we do is we click in the field and then we click the text on the document. Here we got our banking information field.

And then remember on the checkboxes, we just want to teach the software where they’re found. So we click and point. And then the only thing we want to do last on the checkbox is make sure the one that’s selected on the document is properly selected on the form. So since the checking is the one selected on the document, we’re going to keep that selected there.

Now that I’ve trained my two documents. And in reality, we would want more, but for today’s demo, we will move on to the next available action, which is training. I will click the training button and eventually what will happen is we’ll see some results here in the results tab. Now we can look at the results tab for these pair of documents. We have the fields listed the banking information listed. We can tell that the software can find which correct fields and which ones are not correct. In this case, they’re all correct. These are pretty basic forms; however, so we would expect that. And we can see specifically which documents were correct and if there were incorrect findings on the form, we would have an incorrect option here as well.

Just like we do with any other skill, the very last action that we have is to publish. Before I publish, I want to show you one more thing about every field that you have. If I go back to the editor, I just wanted to inform you that there is this little gear. This is our field options. The options that we have on a field are to make it a required field. And we also have advanced properties. And then we can of course create business rules. Today we’re not going to talk about business rules, but I will click the button just so you get an idea of what a business rule is. We can look up information. We can merge fields. We can compare fields. We can even script fields here, but what I really wanted to call your attention to is how do we zone in and teach a software about the type of data for that field? Because not all data is just text. We have different data types that are supported. We can also mark fields as required fields or key fields or dimension fields. And we can provide more context around that if you have questions. We can also set a maximum length and sometimes more importantly define the type of data that we want to extract off of the field using a regular expression. And there is a regular expression editor. So this is how we really zone in and make sure that we’re teaching the OCR about the type of data that we expect to find in that field.

Once again, the last thing we’ll do here is publish. I’m going to go ahead and publish our skill, and that will take us back to the skills catalog, which again is where we live to find all of our skills.

And I hope you’ve enjoyed this video, creating your very first Vantage Document Skill. Thank you.

ABBYY FlexiCapture 12 Video – Link to Automation Anywhere™

Watch a video to learn how to integrate Automation Anywhere™’s RPA technology with ABBYY’s OCR software, ABBYY FlexiCapture.

Hello. Today I’d like to show you a video of how we integrate Automation Anywhere with ABBYY FlexiCapture. The combination of these two tools gives us a really unique advantage in using a best in class RPA through Automation Anywhere, and a best in class OCR technology through ABBYY. And it’s actually a pretty simple integration, just a few steps to walk through. So what I have in front of us is a bot. It’s just an automation bot. And the purpose of this bot is to call the ABBYY Web Service API. Now the ABBYY Web Service API is very advanced. A lot of cool unique methods in there that we can call and customize our document capture workflow. But you can see here, it’s actually fairly simple, at least in the way that I’m interacting here with this bot.

What we’re going to do is we’re going to open a session. We’re going to open a batch. We’re going to pass it a file. We’re going to close a batch and then we’ll tell the software to process a batch. So it’s actually quite simple. Now before I go into a few of these steps and describe kind of our approach here, let me just run the bot. And the purpose of the bot here is to make sure that we pass a document into this batch. So right now there are zero documents and zero pages. We’re going to pass a document in here and the software will automatically process it. I’ll go back to our bot and I’ll hit run. When I do this, the software will perform those series of API calls. And when it’s done, we will have a batch within FlexiCapture that has pages. I’m going to just go ahead and refresh my screen. You can see now the software is Processing, and now it’s in Verification. Now that I’m in Verification, I have a document that’s been passed in to ABBYY for further OCR processing. So that’s kind of the idea of the bot.

Let’s go into some of the specifics of how we make this happen. First off architecturally, we use the Web Service API, like I already shared. It’s very powerful, gives us just a ton of flexibility in the way that we process documents. But one of the more important ways that we interact with the API is everything uses what we call a “session”. So if I expand our session, you can see here, I have a REST Web Service activity where we’re going to post to a Web Service URL variable. Now it’s pretty simple. I’ll just show you mine. This is on my local system, so you can see the value there, but I’m going to post it. I have a couple of disabled steps here just to see some responses. And then we’re going to go ahead and extract the text. That text will tell us the “SessionId”. That SessionId is fairly critical to downstream processing. So it’s an important value that we want to keep, and we will store that in this SessionId variable. So then as we interact with the API going down, for example, I may want to open a batch. Well, when I open a batch, we have to send the Web Service API here in value step number 10. In this post, we have to send a series of Json. So in order to do that, you can see here what I’ve done is I have stored our Json in a variable called “Open Batch”. So if I look at our Open Batch, you can see here, I have my Json here.

Now, a couple of interesting parts of this Json that you’ll see is there’s a “sessionid” and a “batchid”. Once again, these are other values that have been provided either by other steps or by other variables. And so we need to populate those values in our Automation Anywhere workflow. And the way that we’ve done, at least for this demo today is we just simply use a “String: Replace”. So you can see here, we’re going to go take that Json. We’re going to go look for this kind of flag of the variable, and we’re going to populate it with another variable that was populated from another step. And so that’s how we replace that sessionid and batchid so that when we have our Json, and we post it, then we have the ability to pass in those variables with the proper values.

The only other thing I’ll mention is that every time we made a Json call, we want a Json response and the way that we do that is, we have a dictionary. You can see here, this is my open batch response. And within that response, we have the ability to store that here at the post. Now, anytime I want to reference that response, say, I want to maybe do some debugging, or I want to use a value from that response. You can see here that now we can populate that dictionary with what we call a “Body” element of the Json. And that will give us the ability to see that Json in full from which we can then parse and do all sorts of fun things through the Json. So I’m a big fan of using the variables to your own benefit here using replacements and those sorts of things so that you can call the Web Service API and make life quite a bit easier on you.

The only other thing, I’ll mention here, just so you’re aware, there’s a couple of different ways that you can do it, but one of the ideas of integration with Automation Anywhere, is you’ve got to pass it a file that needs to be a base 64 image. And so what we’ve done in our demo here today is we have a little DLL that we’ve written. It’s like a three-line DLL. That’s very simple, but the purpose of this DLL is to take an image specifically a file. And take that file and create a base 64 string out of it, and then we store that string right here in this variable called “Base64Bytes”. And that’s what we will pass then to ABBYY, to ingest it and perform the extraction downstream. So a couple of hints there. There might be a couple of other ways that you may think how to do that, but this is actually a very simple way. It gives us a little bit of control and we actually wrote this DLL in .NET, but you have other. Python is out of the box with Automation Anywhere and of course you can implement other string extraction there to perform your file conversion over to base 64.

The only other thing I’ll mention here in this workflow. To wrap it up is we process the batch. And you can see here we are going to make sure our Json is pretty by giving it the information we need, so we have a couple of string replaces. We post it and then we do have a message box of the body here. That’s what makes this integration to ABBYY FlexiCapture so powerful is that it’s just Web Service Calls. It’s very clean. We can either use the software purely in the cloud. We can use it in a hybrid model or we can use it purely on premise. So the option here for web service interaction is really, really clean and a lot of different ways we can store the proper Json communications credentials within Automation Anywhere’s package to really make this a seamless interaction.

If you have any questions on this, please reach out. Thank you so much.

“Automation Anywhere” is a trademark/service mark or registered trademark/service mark of Automation Anywhere, Inc. in the United States and other countries.