Skip to main content

Documents

Our Documents feature leverages AI models to scan business documents and retrieve vendor information for data entry/integrity.

At this stage, this feature is considered Experimental, please validate the data generated by AI.

See the following quick demo for an overview:


tip

The uploaded file is not saved during transport.

Usage

Once fully configured, the Documents feature will be available in:

We use Azure AI Document Intelligence, created from Azure. See Document intelligence

Data

Depending on the configured minimum confidence requirements, the scan data will provide the following information from the scanned document: You'll need to create the same fields in your custom extraction model:

FieldTypeSubTypeDescriptionOnboardingPayee check
VendorAddressFieldStringAddress for the vendor
VendorTaxIdFieldStringGovernment code for the vendor
VendorNameFieldStringName for the vendor
EmailFieldStringEmail for the vendor
PhoneFieldStringPhone for the vendor
CurrencyFieldStringDocument currency
IBANFieldStringVendor's IBAN for payments
SWIFTFieldStringVendor's SWIFT payments
AccountNumberFieldStringVendor's Bank Account Number for payments
BSBFieldStringVendor's BSB (Branch Code AU) for payments

Upload document

Upon triggering AI Documents, the following popup will prompt the user to upload a document for scanning: File upload

Performance

The chosen azure location impact on the performance of this tool. On average, We noticed on average about 4-10 seconds for Document intelligence

File size

Larger files will take longer to upload and scan, regardless of scanning only the first page.

Document Intelligence

Intro

Document intelligence leverages Azure AI Document intelligence (formerly Form Recognizer), a cloud-based Azure AI service that uses advanced machine learning and OCR to automatically extract text, tables, structures, and key-value pairs from PDFs, images, and forms. It transforms unstructured data into actionable, structured data, enabling automated workflows and intelligent document processing. This feature leverages custom extraction models.

For more information, see:

tip

See AI Document Intelligence terms of services for latest updates on costs, terms and conditions.

Deployment

This option requires an AI Business Intelligence resource, configured in Eftsure > Parameters > AI > Documents To enable the Document Intelligence feature, your eftsure administrator needs to perform the following steps in your tenant: The following steps should take less than 10 minutes.

Important

The Business Intelligence below has related costs that depends on consumption. See Pricing for more details.
At the time of writing, Microsoft offers the following Pay as You Go options: Document intelligence We expect the Free tier with 500 invoices per month should be enough for most customers, as this is the number of payee checks, not related the number of invoices received/processed by the customer.

Azure Portal

Follow the steps in Create a Document Intelligence resource
Note the Url and Keys for the next step.

Custom Extraction Model

Your organisation can also train it's own custom extraction model. Once a model has finished training, you can start using it here.

Naming convention

This module uses strict naming conventions for model fields, you must respect the same field names in your model.

Variables mapping

Eftsure inside Dynamics 365 FO

Go to Eftsure Parameters > AI > Documents, Configure Type to Document Intelligence and configure the previous endpoint and keys into Document Intelligence

Document intelligence

Configure the minimum confidence rate to validate outputs.
If using a custom extraction model, change model type and set model name. Save and use the Test document in the toolbar to test the newly deployed flow.

Testing

Use the Eftsure Parameters > AI > Documents Tab to test the output of this tools:
Upon analysing any documents, the following additional information will be made available for troubleshooting:

Testing

This testing screen contains 3 main testing results pane, from left to right

  • Heat Map: Contains all fields as displayed on the document
  • Details: Extracted mapped data
  • Data: Visualisation of webservice data

Use these tools to validation the solution for your requirements.

Extensions

We provide delegate during Payee Check to allow further enhancements via Event subscription:

onVendTableCreated
[SubscribesTo(formStr(PESPayeeCheck), delegateStr(PESPayeeCheck, onVendTableCreated))]
public static void PESPayeeCheck_onVendTableCreated(VendTable v, PES.Tools.WSContent wsContent)
{
}
onCustTableCreated
[SubscribesTo(formStr(PESPayeeCheck), delegateStr(PESPayeeCheck, onCustTableCreated))]
public static void PESPayeeCheck_onCustTableCreated(CustTable v, PES.Tools.WSContent wsContent)
{
}

The results of the document intelligence are stored in the form's response member as a PES.AI.DocumentIntelligence.DocumentResult Object, and can be used for further processing, or creating matching vendor purchase order / invoice... Let's consider the following example:

Vendor creation with additional document information
using System;
using System.Text.Json;

[SubscribesTo(formStr(PESPayeeCheck), delegateStr(PESPayeeCheck, onVendTableCreated))]
public static void PESPayeeCheck_onVendTableCreated(VendTable v, PES.Tools.WSContent wsContent)
{
//Example for parsing Business Intelligence data
JsonDocument document = JsonDocument::Parse(wsContent.GetWSContent());
JsonElement root = document.RootElement;
LogisticsPostalAddress LogisticsPostalAddress;

if (root.GetProperty("analyzeResult").ValueKind != JsonValueKind::Undefined)
{
JsonElement analyzeResult = root.GetProperty("analyzeResult");
if (analyzeResult.GetProperty("documents").ValueKind != JsonValueKind::Undefined)
{
JsonElement documents = analyzeResult.GetProperty("documents");
if (documents.GetArrayLength() > 0)
{
// ... TL;DR
}
}
}
}