top of page
  • Writer's pictureIlia Zelenkin

How to get line items from an invoice or receipt with

Okay, so we already know to extract data from invoices. In many cases, you'd also want to extract line items in the same workflow.

For instance, if you analyze invoices, you can use line items to understand the quantities you buy each month and then forecast future needs.

In another example, if you receive a lot of purchase orders, line items contain important information about ordered quantities that impact your inventory.

Challenges in Extracting line items

If you extract line items manually, there is no need to explain the challenge - it is very very boring. We, humans, hate that kind of task. Thus, naturally, everyone wants to automate this activity and here we run into trouble.

If you issue purchase orders and the template is always the same, then you use table extraction and that's it. Well, the table will in CSV format, and you will still have to split it into columns. But it is quite easy.

However, if you receive invoices from multiple vendors with a different format or wording, you cannot use simple table extraction because you will have different tables.

Video Instruction

A.I. converts data to a common format

And this is where artificial intelligence plays a major role. No matter the format or the column name wording, A.I. tries to understand the real meaning and produce a standard output.

Thus, if you send to Bitskout Purchase Order template a set of 10 different purchase orders, all with different line item tables, it will still produce a standard output of 21 columns. This way you can set up a real automation and stop worrying about the format.

Configuring the automation

In order to extract the line items we will need to set up three tools:

  • - to run the scenario

  • Bitskout - to create a purchase order or invoice analysis plugin

  • - to visualize the data. As we use as an output, we will convert line items into sub-items.

Configuring Bitskout

To set up the plugin we will use the Bitskout template library. Navigate to the Templates page and using search locate the Invoices template, and then press "Use template":

The next screen will show you the output options - choose as an output. And then press Create.

Now, our plugin is ready. The next step is to configure a scenario.

Configuring scenario

In this example, we will use the simple trigger of a new file upload to Dropbox. You can use different triggers like a new email with a purchase order, etc. Once the trigger is set and we have a link to the file that Bitskout needs to analyze, let's add a Bitskout module called "Run Plugin for File".

In this module, you'll need to specify the plugin name and the download URL. Download URL in this case is taken from the previous modules and it should be a public URL that Bitskout can access.

Next, we need to create an item on with the main purchase order or invoice data. We will use the Create Item module.

Once the item has been created we can now add sub-items to it. But first, we need to parse our line items table that is in CSV format. We will native Parse CSV module for it:

Thus the parameters should be as you see above. The CSV data is taken from the Bitskout module. There is a field called LINE_ITEMS and this is the one we are looking for.

The next step is to set up a sub-item creation part. We will use Create Sub-item module for it:

Please pay attention to the board name - it is called "Sub-items of ". has a tricky way to store data about sub-items by creating a board under a board. In any case, map the values from the Parse CSV module to the corresponding columns.

Now you can run it.


Now you can automatically process invoices and get line item data as well. Why line items are such a big deal? Well, as simple as it may get, even automating invoice information is super effective, if we can also extract line items in the same workflow, it can triple the RoI of this automations.

This is because the time it takes to manually input data from an invoice should not be calculated as 1 invoice = 1 document, but it should be 1 invoice = 1 document X number of line items.

3 views0 comments
bottom of page