{"id":43657,"date":"2026-02-11T15:21:13","date_gmt":"2026-02-11T09:51:13","guid":{"rendered":"https:\/\/www.inogic.com\/blog\/?p=43657"},"modified":"2026-02-11T15:21:13","modified_gmt":"2026-02-11T09:51:13","slug":"multi-stage-ai-invoice-approval-in-dynamics-365-using-copilot-agents","status":"publish","type":"post","link":"https:\/\/www.inogic.com\/blog\/2026\/02\/multi-stage-ai-invoice-approval-in-dynamics-365-using-copilot-agents\/","title":{"rendered":"Multi-Stage AI Invoice Approval in Dynamics 365 Using Copilot Agents"},"content":{"rendered":"<p>In many organizations, invoice approvals are still manual, slow, and inconsistent. Small invoices don\u2019t need human intervention, while high-value invoices must go through managers or finance teams. However, most systems treat all invoices the same, leading to delays and unnecessary approvals.<\/p>\n<p>In this blog, we design a smart multi-stage invoice approval process using Copilot Agents in Dynamics 365, where:<\/p>\n<ul>\n<li>AI validates and approves low-risk invoices automatically<\/li>\n<li>Higher-risk invoices are sent to managers via email approval<\/li>\n<li>Invoice status is updated in real time inside Dynamics 365<\/li>\n<\/ul>\n<p>The goal is to reduce manual effort, speed up approvals, and keep users informed without blocking their work.<\/p>\n<p><strong>What This Blog Will Explain: <\/strong><\/p>\n<p>This solution is built around a realistic end-to-end scenario:<\/p>\n<ul>\n<li>A Copilot Agent starts with a clear prompt asking the user to submit an invoice for approval<\/li>\n<li>The user uploads a Dynamics 365 Invoice PDF.<\/li>\n<li>A custom prompt validates whether the document is a valid invoice<\/li>\n<li>If valid, the AI extracts invoice details into structured JSON<\/li>\n<li>An Agent Flow processes this data and triggers a multi-stage approval<\/li>\n<li>The invoice status is updated to In Progress, Approved, or Rejected<\/li>\n<li>Managers receive approval requests via email, without blocking the user<\/li>\n<\/ul>\n<h2>How the Invoice Approval Agent is Used by Business Users<\/h2>\n<p>Although the Invoice Approval Agent is built using Copilot Studio, it is designed to work in the context of invoice processing, not as a standalone chatbot.<\/p>\n<p>In a real business scenario, users typically begin their work from an Invoice record in Dynamics 365. When an invoice is ready for approval, the user already has access to a standard SSRS-generated Invoice PDF, which represents the official invoice document shared with customers.<\/p>\n<p>Now the Copilot Agent make it easy to approve invoice.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-43658\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/1Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"438\" height=\"474\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/1Dynamics-365-Using-Copilot-Agents.jpg 438w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/1Dynamics-365-Using-Copilot-Agents-277x300.jpg 277w\" sizes=\"(max-width: 438px) 100vw, 438px\" \/><\/p>\n<p>When a user opens an Invoice record in Dynamics 365:<\/p>\n<ol>\n<li>The user reviews the invoice details (amount, tax, etc.)<\/li>\n<\/ol>\n<p>To initiate approval, the user opens the Copilot Agent and selects the option<br \/>\n\u201cSubmit an invoice for approval\u201d<strong><br \/>\n<\/strong><\/p>\n<p><strong>Sample Invoice PDF :<\/strong><\/p>\n<p>At this point, the Copilot Agent guides the user to upload the <strong>Invoice PDF document<\/strong>.<br \/>\n<img decoding=\"async\" class=\"alignnone size-full wp-image-43659\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/2Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"514\" height=\"482\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/2Dynamics-365-Using-Copilot-Agents.jpg 514w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/2Dynamics-365-Using-Copilot-Agents-300x281.jpg 300w\" sizes=\"(max-width: 514px) 100vw, 514px\" \/><\/p>\n<h3>AI Stage: Automatic Invoice Approval Based on AI stage Rules<\/h3>\n<p>Once the user submits a valid Invoice PDF to the Copilot Agent, the approval process officially begins.<\/p>\n<p>At this point, the system immediately updates the Invoice Approval field on the Invoice record to:<\/p>\n<p>In-Progress<\/p>\n<p>This status change is important because it signals that:<\/p>\n<ul>\n<li>The invoice is under review<\/li>\n<li>No further user action is required at this stage<\/li>\n<\/ul>\n<p>The approval logic is now fully automated<br \/>\n<img decoding=\"async\" class=\"alignnone size-full wp-image-43660\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/3Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"438\" height=\"461\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/3Dynamics-365-Using-Copilot-Agents.jpg 438w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/3Dynamics-365-Using-Copilot-Agents-285x300.jpg 285w\" sizes=\"(max-width: 438px) 100vw, 438px\" \/> <img decoding=\"async\" class=\"alignnone size-full wp-image-43661\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/4Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"281\" height=\"337\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/4Dynamics-365-Using-Copilot-Agents.jpg 281w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/4Dynamics-365-Using-Copilot-Agents-250x300.jpg 250w\" sizes=\"(max-width: 281px) 100vw, 281px\" \/><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-43662\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/5Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"263\" height=\"347\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/5Dynamics-365-Using-Copilot-Agents.jpg 263w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/5Dynamics-365-Using-Copilot-Agents-227x300.jpg 227w\" sizes=\"(max-width: 263px) 100vw, 263px\" \/> <img decoding=\"async\" class=\"alignnone size-full wp-image-43663\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/6Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"431\" height=\"467\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/6Dynamics-365-Using-Copilot-Agents.jpg 431w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/6Dynamics-365-Using-Copilot-Agents-277x300.jpg 277w\" sizes=\"(max-width: 431px) 100vw, 431px\" \/><\/p>\n<p><strong>What Happens Inside the AI Approval Stage<\/strong><\/p>\n<p>The first stage in the multi-stage approval is the AI Invoice Approval stage.<\/p>\n<p>This stage is responsible for making fast, rule-based decisions using the structured invoice data extracted earlier by the custom prompt.<\/p>\n<h3>Input to the AI stage<\/h3>\n<p>The AI stage receives:<\/p>\n<ul>\n<li>Structured invoice data in <strong>JSON format<\/strong><\/li>\n<li>Key financial values such as:\n<ul>\n<li>Subtotal<\/li>\n<li>Sales Tax<\/li>\n<li>Total<\/li>\n<li>Invoice Number<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2><img decoding=\"async\" class=\"alignnone size-full wp-image-43664\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/7Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"604\" height=\"195\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/7Dynamics-365-Using-Copilot-Agents.jpg 604w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/7Dynamics-365-Using-Copilot-Agents-300x97.jpg 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/h2>\n<h2><img decoding=\"async\" class=\"alignnone size-full wp-image-43665\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/8Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"1193\" height=\"545\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/8Dynamics-365-Using-Copilot-Agents.jpg 1193w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/8Dynamics-365-Using-Copilot-Agents-300x137.jpg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/8Dynamics-365-Using-Copilot-Agents-1024x468.jpg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/8Dynamics-365-Using-Copilot-Agents-768x351.jpg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/8Dynamics-365-Using-Copilot-Agents-660x302.jpg 660w\" sizes=\"(max-width: 1193px) 100vw, 1193px\" \/><br \/>\nApproval Logic Used in This Scenario<\/h2>\n<p><strong>Approve the invoice automatically if the subtotal is less than or equal to 1500<\/strong><\/p>\n<p>The AI stage evaluates:<\/p>\n<ul>\n<li>Whether the invoice data is complete and valid<\/li>\n<li>Whether the subtotal meets the defined threshold<\/li>\n<\/ul>\n<p>If both conditions are satisfied, the AI marks the invoice as <strong>Approved<\/strong>.<\/p>\n<p><strong>Result: AI Auto-Approval<\/strong><\/p>\n<p>In the scenario shown:<\/p>\n<ul>\n<li>The AI stage returns an <strong>Approved<\/strong> decision<\/li>\n<li>The approval workflow ends at this stage<\/li>\n<li>No manager involvement is required<\/li>\n<\/ul>\n<p>Immediately after this decision, the system updates the Invoice record:<\/p>\n<p><strong>Invoice Approval \u2192 Approved<br \/>\n<img decoding=\"async\" class=\"alignnone size-full wp-image-43666\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/9Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"360\" height=\"441\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/9Dynamics-365-Using-Copilot-Agents.jpg 360w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/9Dynamics-365-Using-Copilot-Agents-245x300.jpg 245w\" sizes=\"(max-width: 360px) 100vw, 360px\" \/><\/strong><\/p>\n<h2>Manager Approval Stage: When AI Cannot Approve the Invoice<\/h2>\n<p>Not every invoice can or should be approved automatically.<br \/>\nWhen an invoice does not meet the AI approval criteria, the approval process moves to the Manager Approval stage.<\/p>\n<p>In this scenario, a different invoice PDF is submitted where the subtotal exceeds the AI threshold. As a result, the AI stage does not approve the invoice.<\/p>\n<p>Instead of failing or stopping the process, the workflow is designed to <strong>continue gracefully<\/strong>.<\/p>\n<h2><strong>How it work<\/strong> from AI Stage to Manager Stage<\/h2>\n<p>In the AI approval stage, the following configuration is used:<\/p>\n<ul>\n<li><strong>If Approved<\/strong> \u2192 End approval as <em>Approved<\/em><\/li>\n<li><strong>If Rejected<\/strong> \u2192 Continue to the next stage<\/li>\n<\/ul>\n<p>Because the invoice does not match the AI criteria:<\/p>\n<ul>\n<li>The AI stage returns Rejected<\/li>\n<li>The workflow continues to the Manager Approval (manual stage)<\/li>\n<\/ul>\n<p>At this point:<\/p>\n<ul>\n<li>The Invoice Approval status remains In-Progress<\/li>\n<li>The flow continues running in the background<\/li>\n<li>The user does not need to stay on the screen or wait<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-43667\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/10Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"355\" height=\"465\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/10Dynamics-365-Using-Copilot-Agents.jpg 355w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/10Dynamics-365-Using-Copilot-Agents-229x300.jpg 229w\" sizes=\"(max-width: 355px) 100vw, 355px\" \/><\/p>\n<p><strong>Manager Approval via Email<\/strong><\/p>\n<p>Once the workflow reaches the Manager Approval stage:<\/p>\n<ul>\n<li>A formal approval request is sent via email<\/li>\n<li>The email includes:\n<ul>\n<li>Invoice context<\/li>\n<li>Extracted invoice details (subtotal, tax, total)<\/li>\n<li>Clear Approve and Reject options<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>This allows managers to:<\/p>\n<ul>\n<li>Review the invoice without logging into Dynamics 365<\/li>\n<li>Take action directly from their inbox<\/li>\n<li>Add comments or rationale if required<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone wp-image-43668\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/11Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"391\" height=\"256\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/11Dynamics-365-Using-Copilot-Agents.jpg 607w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/11Dynamics-365-Using-Copilot-Agents-300x196.jpg 300w\" sizes=\"(max-width: 391px) 100vw, 391px\" \/><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-43670\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/13Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"687\" height=\"297\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/13Dynamics-365-Using-Copilot-Agents.jpg 687w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/13Dynamics-365-Using-Copilot-Agents-300x130.jpg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/13Dynamics-365-Using-Copilot-Agents-660x285.jpg 660w\" sizes=\"(max-width: 687px) 100vw, 687px\" \/><\/p>\n<h2>Manual Stage Uses<\/h2>\n<p>The Manual stage is responsible for all human decision-making.<br \/>\nBelow are the most important options used in this stage:<br \/>\n<img decoding=\"async\" class=\"alignnone size-full wp-image-43671\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/14Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"1180\" height=\"554\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/14Dynamics-365-Using-Copilot-Agents.jpg 1180w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/14Dynamics-365-Using-Copilot-Agents-300x141.jpg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/14Dynamics-365-Using-Copilot-Agents-1024x481.jpg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/14Dynamics-365-Using-Copilot-Agents-768x361.jpg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/14Dynamics-365-Using-Copilot-Agents-660x310.jpg 660w\" sizes=\"(max-width: 1180px) 100vw, 1180px\" \/><\/p>\n<h3><strong>Condition Stage Uses (Even When AI Is Used)<\/strong><\/h3>\n<p>The Condition stage in a multi-stage approval is optional, but it plays a very important role in deterministic routing.<\/p>\n<p>Unlike the AI stage, which makes decisions based on reasoning, a Condition stage is used when:<\/p>\n<ul>\n<li>The rule must be explicit and non-negotiable<\/li>\n<li>The logic must be 100% predictable<\/li>\n<li>No AI interpretation is required<\/li>\n<\/ul>\n<p><strong>When a Condition Stage Is Useful<\/strong><\/p>\n<p>A Condition stage is typically used to:<\/p>\n<ul>\n<li>Route approvals based on fixed thresholds\n<ul>\n<li>Example: <em>If subtotal &gt; 10,000 \u2192 Finance approval<\/em><\/li>\n<\/ul>\n<\/li>\n<li>Check system values\n<ul>\n<li>Invoice status<\/li>\n<li>Currency<\/li>\n<li>Customer type<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>In short:<br \/>\n<img decoding=\"async\" class=\"alignnone size-full wp-image-43672\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/15Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"1192\" height=\"562\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/15Dynamics-365-Using-Copilot-Agents.jpg 1192w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/15Dynamics-365-Using-Copilot-Agents-300x141.jpg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/15Dynamics-365-Using-Copilot-Agents-1024x483.jpg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/15Dynamics-365-Using-Copilot-Agents-768x362.jpg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/15Dynamics-365-Using-Copilot-Agents-660x311.jpg 660w\" sizes=\"(max-width: 1192px) 100vw, 1192px\" \/><\/p>\n<p>Conditions answer \u201cIF this, THEN that\u201d \u2014 without reasoning.<\/p>\n<p>Below is a high-level overview of how Copilot and Agent Flow work together in the background to execute this multi-stage invoice approval process.<\/p>\n<p>Custom Copilot Agent<\/p>\n<ul>\n<li>This topic starts when the user selects the option to submit an invoice for approval.<\/li>\n<li>The agent prompts the user to upload a valid Dynamics 365 SSRS invoice PDF and captures the file.<\/li>\n<li>A custom prompt processes the document and extracts invoice details into structured data.<\/li>\n<li>Once validated, the agent confirms submission and triggers an Agent flow.<br \/>\nThe flow then handles multi-stage approval and updates the invoice status accordingly.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-43673\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/16Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"839\" height=\"548\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/16Dynamics-365-Using-Copilot-Agents.jpg 839w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/16Dynamics-365-Using-Copilot-Agents-300x196.jpg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/16Dynamics-365-Using-Copilot-Agents-768x502.jpg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/16Dynamics-365-Using-Copilot-Agents-660x431.jpg 660w\" sizes=\"(max-width: 839px) 100vw, 839px\" \/><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-43674\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/17Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"852\" height=\"559\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/17Dynamics-365-Using-Copilot-Agents.jpg 852w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/17Dynamics-365-Using-Copilot-Agents-300x197.jpg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/17Dynamics-365-Using-Copilot-Agents-768x504.jpg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/17Dynamics-365-Using-Copilot-Agents-660x433.jpg 660w\" sizes=\"(max-width: 852px) 100vw, 852px\" \/><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-43675\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/18Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"849\" height=\"532\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/18Dynamics-365-Using-Copilot-Agents.jpg 849w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/18Dynamics-365-Using-Copilot-Agents-300x188.jpg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/18Dynamics-365-Using-Copilot-Agents-768x481.jpg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/18Dynamics-365-Using-Copilot-Agents-660x414.jpg 660w\" sizes=\"(max-width: 849px) 100vw, 849px\" \/><\/p>\n<p>Custom Copilot Agent Flow<\/p>\n<ul>\n<li>This agent flow starts when the Copilot Agent submits an invoice for approval.<\/li>\n<li>The uploaded SSRS invoice PDF is first processed and converted into structured JSON data.<\/li>\n<li>The flow then validates the invoice, locates the matching record in Dynamics 365, and triggers a multi-stage approval.<\/li>\n<li>Based on AI or manager decision, the invoice status is updated automatically.<br \/>\nThe entire process runs in the background without blocking the user.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-43676\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/19Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"1308\" height=\"608\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/19Dynamics-365-Using-Copilot-Agents.jpg 1308w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/19Dynamics-365-Using-Copilot-Agents-300x139.jpg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/19Dynamics-365-Using-Copilot-Agents-1024x476.jpg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/19Dynamics-365-Using-Copilot-Agents-768x357.jpg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/19Dynamics-365-Using-Copilot-Agents-660x307.jpg 660w\" sizes=\"(max-width: 1308px) 100vw, 1308px\" \/><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-43677\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/20Dynamics-365-Using-Copilot-Agents.jpg\" alt=\"Dynamics 365 Using Copilot Agents\" width=\"773\" height=\"498\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/20Dynamics-365-Using-Copilot-Agents.jpg 773w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/20Dynamics-365-Using-Copilot-Agents-300x193.jpg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/20Dynamics-365-Using-Copilot-Agents-768x495.jpg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2026\/02\/20Dynamics-365-Using-Copilot-Agents-660x425.jpg 660w\" sizes=\"(max-width: 773px) 100vw, 773px\" \/><\/p>\n<h2>Wrapping Up<\/h2>\n<p>Using Copilot Agents with multi-stage approvals transforms invoice processing into a smart, efficient, and reliable experience. By combining AI-based decision making with human approvals only when needed, organizations can reduce manual effort without losing control.<\/p>\n<p>Most importantly, the entire process runs in the background, allowing users to continue their work while approvals happen asynchronously. This approach delivers a balanced, scalable, and enterprise-ready approval model.<\/p>\n<h2>Frequently Asked Questions (FAQ)<\/h2>\n<h2>How does AI invoice approval work in Dynamics 365?<\/h2>\n<p>AI invoice approval in Dynamics 365 works by using a Copilot Agent to process an uploaded SSRS invoice PDF, extract structured data (such as subtotal, tax, total, and invoice number), and pass it to an Agent Flow. The AI stage evaluates predefined rules, such as a subtotal threshold (e.g., \u2264 1500), and automatically approves low-risk invoices. The invoice status is then updated in real time to Approved or moves to the next stage if criteria are not met.<\/p>\n<h2>What is the role of Copilot Agents in invoice approval?<\/h2>\n<p>Copilot Agents act as the intelligent front-end interface for initiating invoice approval in Dynamics 365. The agent prompts users to upload the invoice PDF, validates the document using a custom AI prompt, extracts invoice data into structured JSON, and triggers the multi-stage approval workflow. It ensures that invoice processing begins with accurate, validated data before the approval logic is executed.<\/p>\n<h2>When is manager approval required in multi-stage workflows?<\/h2>\n<p>Manager approval is required when the invoice does not meet the AI stage criteria, such as exceeding a predefined financial threshold or failing validation rules. In this scenario, the AI stage returns a Rejected decision (for automation purposes), and the workflow continues to the Manager Approval stage. An approval request is sent via email, allowing the manager to approve or reject the invoice without logging into Dynamics 365.<\/p>\n<h2>What is the difference between AI stage and Condition stage in a multi-stage approval?<\/h2>\n<p>The AI stage uses reasoning and structured invoice data to make intelligent decisions based on business rules, such as risk level or amount thresholds. A Condition stage, on the other hand, uses deterministic IF \u2013 THEN logic (for example, if subtotal &gt; 10,000, route to Finance). The AI stage allows flexible evaluation, while the Condition stage ensures strict, predictable routing without interpretation.<\/p>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"How does AI invoice approval work in Dynamics 365?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"AI invoice approval in Dynamics 365 works by using a Copilot Agent to process an uploaded SSRS invoice PDF, extract structured data (such as subtotal, tax, total, and invoice number), and pass it to an Agent Flow. The AI stage evaluates predefined rules, such as a subtotal threshold (e.g., \u2264 1500), and automatically approves low-risk invoices. The invoice status is then updated in real time to Approved or moves to the next stage if criteria are not met.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What is the role of Copilot Agents in invoice approval?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Copilot Agents act as the intelligent front-end interface for initiating invoice approval in Dynamics 365. The agent prompts users to upload the invoice PDF, validates the document using a custom AI prompt, extracts invoice data into structured JSON, and triggers the multi-stage approval workflow. It ensures that invoice processing begins with accurate, validated data before the approval logic is executed.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"When is manager approval required in multi-stage workflows?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer<span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span>\",\n      \"text\": \"Manager approval is required when the invoice does not meet the AI stage criteria, such as exceeding a predefined financial threshold or failing validation rules. In this scenario, the AI stage returns a Rejected decision (for automation purposes), and the workflow continues to the Manager Approval stage. An approval request is sent via email, allowing the manager to approve or reject the invoice without logging into Dynamics 365.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What is the difference between AI stage and Condition stage in a multi-stage approval?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"The AI stage uses reasoning and structured invoice data to make intelligent decisions based on business rules, such as risk level or amount thresholds. A Condition stage, on the other hand, uses deterministic IF \u2013 THEN logic (for example, if subtotal > 10,000, route to Finance). The AI stage allows flexible evaluation, while the Condition stage ensures strict, predictable routing without interpretation.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In many organizations, invoice approvals are still manual, slow, and inconsistent. Small invoices don\u2019t need human intervention, while high-value invoices must go through managers or finance teams. However, most systems treat all invoices the same, leading to delays and unnecessary approvals. In this blog, we design a smart multi-stage invoice approval process using Copilot Agents\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.inogic.com\/blog\/2026\/02\/multi-stage-ai-invoice-approval-in-dynamics-365-using-copilot-agents\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":15,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2746,2361],"tags":[3191],"class_list":["post-43657","post","type-post","status-publish","format-standard","hentry","category-copilot","category-technical","tag-copilot-agents"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts\/43657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/comments?post=43657"}],"version-history":[{"count":0,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts\/43657\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/media?parent=43657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/categories?post=43657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/tags?post=43657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}