Automated Invoice Processing System (MS365 + OCR + Airtable)
Budget: $250 – $750 USD
**Project description**
In general, this workflow should retrieve e-mail messages from a Microsft 365 shared mailbox, download the PDF attachment, put this trough a good OCR solution, e.g. Mistral. Retrieve specific data from the PDF to put these values in an Airtable. I have created a lovable webapp which then should be connected to this Airtable database.
**In detail**
My client wants a webapp, which i already have created in [lovable.dev](http://lovable.dev) for automating the process of invoice collection services.
The webapp will exist of the following items:
- Customers / Clients list
- Company name, address, history of invoices / e-mails, Approved credit amount, Whitelist of e-mailaddresses, insurance limit (most crucial one), above limit (percentage)
On the dashboad i have created 4 widgets
- Total invoices
- Approved
- In Progress
- Declined
Then i have a widget beneath it, which shows the latest / recent invoices of today
A client will send an e-mail to a specific e-mail address with an invoice. This invoice needs to be downloaded and checked on specific values. For an example:
- Company name
- Address
- Bankaccount number / IBAN
- Payments terms (how many days)
- Taxes (BTW)
- Prices / Total amount of the invoice
- Description of the product / article line
- KvK number
When the e-mail is send by the client, i need to create a automation in Microsoft 365 admin center to trigger a webhook, which will trigger N8N to lower the amount of executions.
When the trigger is activated, N8N will retrieve the e-mail, download the attachment, put it trough somekind of OCR, i though Mistral OCR would be a good option, retrieve the nessecary data and put this in an Airtable format.
The [Lovable.dev](http://Lovable.dev) webapp should be connected to the Airtable database to filter / show the relevant data in a more friendly way.
Additional checks to keep in mind:
- Add an human option to check / approve before flow continues
- Add status of approval ( onetime approval client only, No approval, which checks the insurance limits and if it is not available or added, this requires a manual action to add the insured amount. If the invoice amount exceeds the secure amount of credits, it should not be rejected, but it should be flagged als manual review.
- We need an option, field, checkbox to tell the system the invoice has been paid, so the credits are give free again
- We have 4 differents clients,
1) For every invoice send, the system will send a agreement mail
2) clients which do not receive an agreement mail
3) clients who only need a onetime agreement mail, after this, no agreement mail
4) clients who receive an custom agreement for every invoice,
- Whitelist of secured e-mail addresses from which the system may receive invoices, if e-mail is not listed it should be added to a manual approved action.
- When a client receives an e-mail which they should approve and did not respond in 24 hours, a new message needs to be send as a friendly reminder. These invoices should be visible benead in progress or pending status
- The limits above the insured limit should be visiable. How much money is outstanding above the insurance limit and may never be higher then the insurance limit + percentage which is noted at the customer field.
In general, this workflow should retrieve e-mail messages from a Microsft 365 shared mailbox, download the PDF attachment, put this trough a good OCR solution, e.g. Mistral. Retrieve specific data from the PDF to put these values in an Airtable. I have created a lovable webapp which then should be connected to this Airtable database.
**In detail**
My client wants a webapp, which i already have created in [lovable.dev](http://lovable.dev) for automating the process of invoice collection services.
The webapp will exist of the following items:
- Customers / Clients list
- Company name, address, history of invoices / e-mails, Approved credit amount, Whitelist of e-mailaddresses, insurance limit (most crucial one), above limit (percentage)
On the dashboad i have created 4 widgets
- Total invoices
- Approved
- In Progress
- Declined
Then i have a widget beneath it, which shows the latest / recent invoices of today
A client will send an e-mail to a specific e-mail address with an invoice. This invoice needs to be downloaded and checked on specific values. For an example:
- Company name
- Address
- Bankaccount number / IBAN
- Payments terms (how many days)
- Taxes (BTW)
- Prices / Total amount of the invoice
- Description of the product / article line
- KvK number
When the e-mail is send by the client, i need to create a automation in Microsoft 365 admin center to trigger a webhook, which will trigger N8N to lower the amount of executions.
When the trigger is activated, N8N will retrieve the e-mail, download the attachment, put it trough somekind of OCR, i though Mistral OCR would be a good option, retrieve the nessecary data and put this in an Airtable format.
The [Lovable.dev](http://Lovable.dev) webapp should be connected to the Airtable database to filter / show the relevant data in a more friendly way.
Additional checks to keep in mind:
- Add an human option to check / approve before flow continues
- Add status of approval ( onetime approval client only, No approval, which checks the insurance limits and if it is not available or added, this requires a manual action to add the insured amount. If the invoice amount exceeds the secure amount of credits, it should not be rejected, but it should be flagged als manual review.
- We need an option, field, checkbox to tell the system the invoice has been paid, so the credits are give free again
- We have 4 differents clients,
1) For every invoice send, the system will send a agreement mail
2) clients which do not receive an agreement mail
3) clients who only need a onetime agreement mail, after this, no agreement mail
4) clients who receive an custom agreement for every invoice,
- Whitelist of secured e-mail addresses from which the system may receive invoices, if e-mail is not listed it should be added to a manual approved action.
- When a client receives an e-mail which they should approve and did not respond in 24 hours, a new message needs to be send as a friendly reminder. These invoices should be visible benead in progress or pending status
- The limits above the insured limit should be visiable. How much money is outstanding above the insurance limit and may never be higher then the insurance limit + percentage which is noted at the customer field.