Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Python | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Python | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA | Python |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA | Python
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Databricks | Power Apps | Power Automate |
Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables | Power Apps | Power Automate
Power BI | Power Apps | Power Automate | SQL | VBA | Python | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables
Power BI | Power Apps | Power Automate | SQL | VBA | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
LEARN THIS HANDS ON
Power Apps & Power Automate
Accounts payable teams are still copy‑pasting invoice data from PDFs and sorting vendor emails into the right queues. Even with Power Automate in place, someone usually ends up doing manual triage and data entry. This walkthrough shows how to use AI Builder invoice processing and email classification in Power Automate to remove that manual layer without breaking your downstream finance processes.
You have a shared AP mailbox (e.g. ap@company.com) and a document library for incoming invoices.
The current process:
The goal:
I'll stick to one realistic pattern:
For this scenario you only need two AI Builder capabilities:
Prebuilt Invoice Processing model
Custom Classification model
Both rely on AI Builder credits and capacity. If your environment runs out of credits, AI Builder actions will fail once capacity is exhausted, so treat them as a paid, capacity‑limited resource.
We’ll build a flow that:
Use the standard SharePoint trigger:
When a file is created (properties only)Incoming InvoicesImmediately after the trigger, add:
Add the AI Builder action:
Extract information from invoicesFile content: from Get file contentYou can optionally set locale and language parameters if your invoices are consistently in one language; if not set, the model uses its default behavior and attempts to detect fields regardless of language.
The output is a JSON object. In a typical flow, you’ll see something like:
documents (array of invoices found in the file)fields (header fields)lineItems (table of lines)The exact property names may vary slightly with updates, but the pattern is consistent: a top‑level collection of documents, each with named fields and a line‑item collection.
For Dataverse, you’d create:
ap_invoice
vendor_name, invoice_number, invoice_date, due_date, subtotal, tax, total, currency, source_file_url, confidence_headerap_invoice_line
ap_invoice (lookup), line_number, description, quantity, unit_price, line_total, confidence_lineIn the flow:
Parse the AI Builder JSON using the Parse JSON action if you want strong typing, or use dynamic content directly if you’re comfortable with the raw structure.
Create the header record:
Add a new row (Dataverse)ap_invoicevendor_name → Vendor Name from AI outputinvoice_number → Invoice Numberinvoice_date → Invoice Datedue_date → Due Datesubtotal, tax, total → corresponding monetary fieldssource_file_url → Path from SharePointconfidence_header → an aggregate or minimum of the confidence scores from AI Builder (using the confidence values exposed per field)Loop line items:
Apply to each
lineItems from the AI outputap_invoice_lineap_invoice → the ID from the header recordline_number → index from the loopdescription, quantity, unit_price, line_total from AI outputconfidence_line → confidence for that line if availableIf you’re writing to SQL or another system, use the equivalent insert actions or HTTP calls. The mapping logic stays the same.
AI Builder returns confidence scores per field and often per line. Use them to control downstream behavior:
confidence_header < threshold (e.g. 0.8):
ap_invoice_review tableAlso handle outright failures:
has failed or has timed outThis prevents silent failures where invoices sit in SharePoint without being processed.
Now we tackle the AP mailbox. The pattern:
In Power Automate:
When a new email arrives (V3)ap@company.comInboxOptionally filter by:
Has Attachments = YesUse the trigger outputs directly:
SubjectBody (HTML)If your classifier expects plain text, add:
Html to text (built‑in or custom) to strip HTML tags from the email body.Add the AI Builder text classification action.
Depending on the model you’ve set up, you’ll see something like:
Classify text into categories (AI Builder)Text: subject + body (plain text)With a custom classification model, you will have defined categories such as:
InvoiceStatementVendor QueryPayment ReminderThe output typically includes:
Use a Compose or Variable to store the primary predicted label and its confidence.
Add a Switch action on the predicted label:
Case Invoice:
Invoices folderIncoming Invoices SharePoint libraryCase Statement:
Statements folderCase Vendor Query:
Vendor QueriesCase Payment Reminder:
Add a Condition inside each case (or before the Switch) to check confidence:
AP Review folderThis ensures low‑confidence predictions don’t silently misroute critical vendor communication.
You have two options to connect the two flows:
Attachment‑driven processing (recommended when invoices always come via email):
SourceEmailId, PredictedCategory)Direct invoice processing in the email flow:
The first option keeps flows simpler and lets you reuse the invoice processing logic for invoices that arrive via other channels (uploads, integrations). The second option reduces latency if you need near‑real‑time invoice ingestion from email.
If you choose option 1, make sure:
invoice_number + vendor in DataverseA few constraints matter in real AP environments:
File size and type
Layout variability
Capacity and performance
Security and data residency
Error handling and partial success
Pick five recent invoices and ten AP emails, set up a test environment, and wire the two flows described here with AI Builder invoice processing and text classification. Run them end‑to‑end, inspect the confidence scores and misclassifications, and adjust thresholds and routing before you touch production mailboxes or finance tables.
This article reflects how AP and finance teams are starting to embed AI Builder invoice processing and email classification into Power Automate flows to reduce manual triage and data entry while keeping control of confidence thresholds and downstream posting logic.
Professionals who want to apply these patterns to their own data can explore Excelgoodies' Power Automate Course programme - taught live by instructors, with certification awarded once a real project is running at work.
Insights compiled through ongoing industry research and discussions within the Excelgoodies Analytics Community.
Power Automate
New
Next Batches Now Live
Power BI
SQL
Power Apps
Power Automate
Microsoft Fabrics
Azure Data Engineering