From 9e30df2906e3672a4ab28b44108c83436d593a64 Mon Sep 17 00:00:00 2001 From: Tommy Skaue Date: Fri, 12 Jun 2026 10:48:38 +0200 Subject: [PATCH 1/2] Updating the IFA to version 0.7 (#532) * Adding new version * Adding release notes for v0.7 * removed the old solution --- ... InventoryFulfillmentAgent_V1_1_0_0_7.zip} | Bin 128293 -> 131068 bytes .../Solutions/README.md | 12 ++++++++++++ 2 files changed, 12 insertions(+) rename Agents/AI ERP Agents/Inventory Fulfillment Agent/Solutions/{InventoryFulfillmentAgent_V1_1_0_0_6.zip => InventoryFulfillmentAgent_V1_1_0_0_7.zip} (54%) diff --git a/Agents/AI ERP Agents/Inventory Fulfillment Agent/Solutions/InventoryFulfillmentAgent_V1_1_0_0_6.zip b/Agents/AI ERP Agents/Inventory Fulfillment Agent/Solutions/InventoryFulfillmentAgent_V1_1_0_0_7.zip similarity index 54% rename from Agents/AI ERP Agents/Inventory Fulfillment Agent/Solutions/InventoryFulfillmentAgent_V1_1_0_0_6.zip rename to Agents/AI ERP Agents/Inventory Fulfillment Agent/Solutions/InventoryFulfillmentAgent_V1_1_0_0_7.zip index a137bbf4875c7ba98beca555ec49592e331adfc2..749506b01c62751850d246501ba84cb34e105bc6 100644 GIT binary patch delta 41566 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 L9YZkMDYa# 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 P!IESM;&5J_0EYV?&exn} diff --git a/Agents/AI ERP Agents/Inventory Fulfillment Agent/Solutions/README.md b/Agents/AI ERP Agents/Inventory Fulfillment Agent/Solutions/README.md index 57269a36..9ce975e3 100644 --- a/Agents/AI ERP Agents/Inventory Fulfillment Agent/Solutions/README.md +++ b/Agents/AI ERP Agents/Inventory Fulfillment Agent/Solutions/README.md @@ -9,3 +9,15 @@ Welcome to the Inventory Fulfillment Agent template. To get started, follow the This solution is provided as-is. Bugs, feature addition/modification requests, and other changes are the responsibility of the end-user. Always thoroughly test components in a non-prod environment. + +## Changes + +### Inventory Fulfillment Agent v1.0.0.7 + +* Fixed IVS token retrieval for environments that require the documented security service redirect flow. +* Added environment variable support for the default legal entity/company. +* Updated IVS tool calls to use the configured legal entity automatically. +* Fixed on-hand quantity mapping for current IVS response fields, including total on-hand, available to reserve, and total available. +* Improved handling for empty IVS/product search results so β€œno records found” is reported cleanly instead of as an error. +* Removed the previous helper flow for legal entity lookup and simplified the tool configuration. +* Kept solution import compatibility as an update to the existing Inventory Fulfillment Agent solution. From 2dec248fb6a03a1594065d9e2ed1914a5d214fe7 Mon Sep 17 00:00:00 2001 From: Tommy Skaue Date: Tue, 16 Jun 2026 09:53:28 +0200 Subject: [PATCH 2/2] Updaring the IFA Agent readme instructions (#533) * New readme update * Update date changed * Removed unnecessary instructions for variables. * Removed the Scope variable * Minor changes --- .../Inventory Fulfillment Agent/README.md | 381 +++++------------- 1 file changed, 111 insertions(+), 270 deletions(-) diff --git a/Agents/AI ERP Agents/Inventory Fulfillment Agent/README.md b/Agents/AI ERP Agents/Inventory Fulfillment Agent/README.md index ed372447..116b78cb 100644 --- a/Agents/AI ERP Agents/Inventory Fulfillment Agent/README.md +++ b/Agents/AI ERP Agents/Inventory Fulfillment Agent/README.md @@ -3,317 +3,158 @@ > **Document:** Installation playbook > **Audience:** Customer implementation teams, Power Platform admins, F&O admins, and solution owners > **Status:** Deployment-ready working version -> **Last updated:** 06 May 2026 +> **Last updated:** 15 June 2026 -> [!WARNING] -> **Security note β€”** Do not store client secrets in this document. -> The IVS client secret must be entered directly into the relevant Power Platform environment variable. Do not paste, screenshot, email, or record the secret in this playbook or in implementation notes. +> **Before you start:** This guide assumes Inventory Visibility is being configured in a new environment. Save the Entra app registration values, IVS endpoint, environment ID, and default legal entity because they are required during solution import. ---- +## Prerequisites -## πŸ“‘ Table of Contents +1. **Set up a Microsoft Entra app registration for Inventory Visibility.** + Create the app registration and client secret used by Inventory Visibility. Save the Application/client ID, client secret value, and tenant ID. Use a separate app registration for each IVS environment. + References: [Register an application](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app) Β· [Add app credentials](https://learn.microsoft.com/en-us/entra/identity-platform/how-to-add-credentials) -1. [Purpose](#-purpose) -2. [How to Use This Playbook](#-how-to-use-this-playbook) -3. [What Gets Installed](#-what-gets-installed) -4. [Setup Summary](#-setup-summary) -5. [Prerequisites](#-prerequisites) -6. [Required Environment Values](#-required-environment-values) -7. [Deploy IFA](#-deploy-ifa) -8. [Validate IFA](#-validate-ifa) -9. [Troubleshooting](#-troubleshooting) -10. [Microsoft References](#-microsoft-references) +2. **Install and set up Inventory Visibility.** + Install the Dynamics 365 Inventory Visibility add-in and complete the Supply Chain Management setup. Confirm Inventory Visibility is installed, the integration is enabled, and inventory data is syncing. + Reference: [Install and set up Inventory Visibility](https://learn.microsoft.com/en-us/dynamics365/supply-chain/inventory/inventory-visibility-setup) ---- +3. **Set up Product Search for Inventory Visibility.** + Product search must be installed and configured before the agent can search for products. Confirm the required product data has synced and the product search API can return results. + Reference: [Set up product search for Inventory Visibility](https://learn.microsoft.com/en-us/dynamics365/supply-chain/inventory/inventory-visibility-product-search) -## 🎯 Purpose +4. **Optional: set up ATP.** + If users need Available-to-Promise responses, configure Inventory Visibility ATP. If ATP is not needed, disable the ATP tool after import and adjust the agent instructions. + Reference: [Inventory Visibility on-hand change schedules and ATP](https://learn.microsoft.com/en-us/dynamics365/supply-chain/inventory/inventory-visibility-available-to-promise) -This playbook describes how to get the **Inventory Fulfillment Agent (IFA)** running in a customer Power Platform environment. +5. **Enable the Finance and Operations MCP (required for transfer orders and sales orders).** + The transfer order and sales order child agents call Dynamics 365 F&O through the Model Context Protocol (MCP). Make sure the F&O MCP is enabled before testing these workflows. + Reference: [Dynamics 365 F&O Model Context Protocol](https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/copilot/copilot-mcp) -IFA is delivered as a managed Power Platform solution containing: +## Download the Solution -- Copilot Studio agent components -- Inventory Visibility Service (IVS) tools -- Dynamics 365 Finance and Operations (F&O) MCP actions -- Power Automate cloud flows +Download the Inventory Fulfillment Agent solution ZIP from the FastTrack implementation assets repository. -Environment-specific values are supplied after import through environment variables and connection references. The intended outcome is a **published, validated agent** that can run inventory, reservation, transfer order, and sales order workflows according to the scope enabled for the customer environment. +[Inventory Fulfillment Agent on GitHub](https://github.com/microsoft/Dynamics-365-FastTrack-Implementation-Assets/tree/master/Agents/AI%20ERP%20Agents/Inventory%20Fulfillment%20Agent) ---- +Download the solution `.zip` file. **Do not extract it before importing.** -## 🧭 How to Use This Playbook +## Import the Solution -| Section | Use it for | -| --- | --- | -| [What Gets Installed](#-what-gets-installed) | Confirm the imported solution components and ownership boundaries. | -| [Setup Summary](#-setup-summary) | Understand the deployment sequence before starting. | -| [Prerequisites](#-prerequisites) | Confirm licensing, access, Power Platform, IVS, and F&O MCP readiness. | -| [Required Environment Values](#-required-environment-values) | Collect the values needed for variables, references, and validation. | -| [Deploy IFA](#-deploy-ifa) | Run the import and configuration steps with exit checks. | -| [Validate IFA](#-validate-ifa) | Test IVS, Copilot Studio, reservation, and F&O MCP behaviours. | -| [Troubleshooting](#-troubleshooting) | Map common symptoms to likely causes and corrective action. | -| [Microsoft References](#-microsoft-references) | Use official Microsoft documentation for supporting detail. | - ---- - -## πŸ“¦ What Gets Installed - -| Component area | Included items | -| --- | --- | -| **Copilot Studio agent** | Inventory Fulfillment Agent and child agents for order workflows. | -| **Agent actions** | IVS inventory actions and Dynamics 365 F&O MCP actions. | -| **Cloud flows** | IVS token, inventory, product search, reservation, and unreservation flows. | -| **Environment variables** | IVS tenant, app registration, endpoint, scope, and environment values. | -| **Connection references** | Dynamics 365 Finance and Operations connector reference. | -| **Knowledge** | Fulfillment proposal knowledge file, where included in the package. | - ---- - -## πŸš€ Setup Summary - -1. Confirm Copilot Studio, Power Platform, IVS, and F&O MCP prerequisites. -2. Import the IFA Power Platform solution into the target environment. -3. Populate the IVS environment variables with customer-specific values. -4. Configure the Dynamics 365 F&O connection reference. -5. Turn on **Get IVS Access Token**, then turn on the dependent IVS flows. -6. Validate IVS, Copilot Studio, and F&O MCP calls with known customer data. -7. Publish the agent β€” or leave it explicitly ready for customer-controlled publishing. - ---- - -## βœ… Prerequisites - -Complete these checks before import. Treat any failed prerequisite as a deployment blocker unless the scope has been explicitly reduced. - -### Licensing - -| Area | Requirement | -| --- | --- | -| Copilot Studio | Environment has entitlement to create, configure, test, and publish the agent. | -| Power Platform & Power Automate | Installer can import solutions, configure flows, and use required connectors. | -| Dynamics 365 F&O | Users invoking F&O operations have appropriate licensing and security access. | -| MCP usage | Review current F&O MCP and Copilot Studio credit guidance where relevant. | - -### Access - -| System | Required access | -| --- | --- | -| Power Platform | Import solution, update environment variables, configure connection references, turn on flows, and publish customisations. | -| Copilot Studio | Open, test, configure, and publish the imported agent. | -| Power Automate | Turn on flows and inspect run history. | -| Microsoft Entra | Read app registration details and create or rotate the IVS credential if needed. | -| Dynamics 365 F&O | Configure or validate MCP access and run F&O operations used by the agent. | - -### Power Platform Environment +1. Go to Power Apps at [make.powerapps.com](https://make.powerapps.com). +2. Select the target environment. +3. Go to **Solutions**. +4. Select **Import solution**. +5. Browse to the downloaded `.zip` file. +6. Select **Next**. +7. If prompted for a Dynamics 365 Finance and Operations connection, select or create the connection used by the order child agents. +8. Enter the environment variable values listed below. +9. Select **Import**. -| Requirement | Check | -| --- | --- | -| Target environment selected | Installer is in the correct Power Platform environment before import. | -| Dataverse enabled | Environment supports solutions, variables, references, flows, and Copilot Studio. | -| Copilot Studio available | Agent can be opened in Copilot Studio for the target environment. | -| Solution import allowed | Installer can import a Power Platform solution package. | - -### Inventory Visibility Service +Reference: [Import solutions in Power Platform](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/import-update-export-solutions) -| Requirement | Check | -| --- | --- | -| Inventory Visibility installed | Confirm in Lifecycle Services or Power Platform admin centre. | -| Environment linking correct | Check F&O / Dataverse linking mismatch warnings where applicable. | -| IVS endpoint known | Base URL and IVS environment ID are available. | -| Entra app registration exists | Tenant ID and application client ID are available. | -| App credential valid | Client secret exists, is not expired, and can acquire a token. | -| IVS data exists | At least one known item / site / warehouse combination can be used for validation. | +## Environment Variables -### Finance and Operations MCP - -| Requirement | Check | -| --- | --- | -| Product version | F&O version satisfies the current MCP prerequisite. The supplied guidance states **at least 10.0.47**. | -| Environment tier | Target environment is **Tier 2 or above**, or Unified Developer Environment. | -| MCP feature | Dynamics 365 ERP Model Context Protocol server feature is enabled. | -| Allowed MCP client | Copilot Studio is allowed as an MCP client in F&O. | -| Security access | Connection user has access to required data entities, forms, and actions. | +During import, enter the values for the target environment. The table below explains what each value is and where it normally comes from. ---- - -## πŸ”§ Required Environment Values - -> [!IMPORTANT] -> **Before you start β€”** Collect these values before solution import where possible. Leave the IVS client secret out of written notes; enter it directly into the environment variable value field. - -| Value | Used for | Notes | -| --- | --- | --- | -| Power Platform environment name | Confirm import target. | Example: `D365Commerce`. | -| Dataverse environment ID | Support and diagnostics. | Power Platform environment GUID. | -| F&O environment URL | F&O connector and MCP access. | Customer-specific F&O URL. | -| F&O product version | MCP readiness. | Must satisfy current MCP prerequisite. | -| F&O legal entity | IVS and order operations. | Example: `USRT`. | -| IVS base URL | IVS HTTP calls. | Environment-specific IVS endpoint. | -| IVS environment ID | IVS route and security token context. | Confirm expected IVS / F&O environment ID. | -| IVS tenant ID | Entra token request. | Tenant owning the IVS app registration. | -| IVS client ID | Entra token request. | Application client ID. | -| **IVS client secret** | Entra token request. | **Enter securely into the environment variable. Do not record in notes.** | -| IVS scope | Entra token request. | Example: `/.default`. | -| IVS security scope | IVS security token exchange. | Example: `https://inventoryservice.operations365.dynamics.com/.default`. | -| Test item ID | Validation. | Known item with IVS data. | -| Test site ID | Validation. | Required for ATP and reservation checks. | -| Test warehouse / location ID | Validation. | Maps to IVS `locationId`. | -| Test customer account | Sales order validation. | Required only if sales order flow is validated. | -| Transfer warehouses | Transfer order validation. | Source and destination warehouses must differ. | - ---- - -## πŸ› οΈ Deploy IFA - -### Step 1 β€” Import the Solution - -| # | Action | -| :-: | --- | -| 1 | Open the Power Apps maker portal. | -| 2 | Select the target Power Platform environment. | -| 3 | Open **Solutions**. | -| 4 | Select **Import solution**. | -| 5 | Select the IFA solution package. | -| 6 | Review the solution name, publisher, version, and package type. | -| 7 | Resolve dependency warnings. | -| 8 | Select or create required connections when prompted. | -| 9 | Enter required environment variable values if prompted. | -| 10 | Start the import and wait for completion. | - -> βœ… **Exit check β€”** The Inventory Fulfillment Agent solution appears in the target environment. - ---- - -### Step 2 β€” Configure IVS Environment Variables - -| # | Action | -| :-: | --- | -| 1 | Open the imported Inventory Fulfilment Agent solution. | -| 2 | Select **Environment variables**. | -| 3 | Update the IVS variables with customer-specific values. | -| 4 | Resolve every environment variable warning. | -| 5 | Save changes. | -| 6 | Select **Publish all customisations**. | - -> βœ… **Exit check β€”** The solution overview no longer reports missing required environment variable values. - -#### Expected IVS Variables - -| Display name | Typical logical name | Required value | +| Environment variable | What to enter | Where to get it | | --- | --- | --- | -| `IVS_BaseUrl` | `ftc_IVS_BaseUrl` or `new_IVS_BaseUrl` | IVS base endpoint URL. | -| `IVS_ClientId` | `ftc_IVS_ClientId` or `new_IVS_ClientId` | Entra application client ID. | -| `IVS_ClientSecret` | `ftc_IVS_ClientSecret` or `new_IVS_ClientSecret` | Entra app client secret. | -| `IVS_EnvironmentId` | `ftc_IVS_EnvironmentId` or `new_IVS_EnvironmentId` | IVS / F&O environment ID. | -| `IVS_Scope` | `ftc_IVS_Scope` or `new_IVS_Scope` | Entra token request scope. | -| `IVS_TenantId` | `ftc_IVS_TenantId` or `new_IVS_TenantId` | Microsoft Entra tenant ID. | -| `IVS_SecurityScope` | `new_IVS_SecurityScope`, if present | IVS security token exchange scope. | +| IVS_TenantId | Microsoft Entra tenant ID used by the IVS app registration. | Microsoft Entra app registration or Azure tenant overview. | +| IVS Inventory Visibility Endpoint | Inventory Visibility endpoint, for example `https://inventoryservice..gateway.prod.island.powerapps.com`. | Inventory Visibility setup or endpoint details for the installed IVS add-in. | +| IVS Client ID | Application/client ID from the Entra app registration. | Microsoft Entra app registration overview. | +| IVS Client Secret | Client secret **value** from the app registration (not the secret ID). Enter directly into the variable; do not record elsewhere. | Microsoft Entra app registration secret created for IVS. | +| IVS_EnvironmentId | IVS/F&O environment GUID used by the Inventory Visibility API route. | Dynamics 365 / IVS environment details. | +| IVS Default Legal Entity | Default company/legal entity code, for example `usrt` or `usmf`. | Dynamics 365 Finance and Operations legal entity setup. | ---- +## Turn On the Cloud Flows -### Step 3 β€” Configure the F&O Connection Reference +Managed solutions may import cloud flows in a deactivated state. Turn them on in this order β€” the access-token flow **must** be on first because the others depend on it. -| # | Action | -| :-: | --- | -| 1 | In the solution, select **Connection references**. | -| 2 | Open the Dynamics 365 F&O connection reference. | -| 3 | Bind it to a valid Dynamics 365 F&O connection. | -| 4 | Confirm the connection points to the correct F&O environment. | -| 5 | Save the connection reference. | +1. **Get IVS Access Token** β€” turn on first; confirm a successful run in the flow run history. +2. IVS ATP / Inventory Check +3. IVS Product Search +4. IVS Onhand Reserve +5. IVS Onhand Unreserve -> βœ… **Exit check β€”** The connection reference has a valid connection and no warning is shown. +> If the agent returns token or authentication errors during testing, this step (or the environment variables above) is the usual cause. -#### Connection Reference +## Test the Agent -| Connection reference | Connector | -| --- | --- | -| `cr91d_agent9_4ET9z6.shared_dynamicsax.shared-dynamicsax-96e68f2b-5d16-41f7-919c-77b16415d9a9` | `/providers/Microsoft.PowerApps/apis/shared_dynamicsax` | - ---- - -### Step 4 β€” Turn On Cloud Flows +After import completes, turn on the flows, then open the agent in Copilot Studio and test the main capabilities. -Turn on **Get IVS Access Token** first. Then turn on the dependent IVS flows in order. +> **Note:** These test steps assume the agent is being tested against **Contoso Demo data**. Substitute your own item, site, warehouse, and customer values when testing other environments. -| Order | Flow | Check | -| :-: | --- | --- | -| 1 | Get IVS Access Token | Flow turns on and token validation succeeds. | -| 2 | IVS ATP Inventory Check v2 *(or IVS inventory check flow)* | Flow turns on with no configuration errors. | -| 3 | IVS Product Search | Flow turns on with no configuration errors. | -| 4 | IVS Onhand Reserve v2 | Flow turns on with no configuration errors. | -| 5 | IVS Onhand Unreserve v2 | Flow turns on with no configuration errors. | +- Search for product 81327 +- Check stock for item 81327 +- Check ATP for item 81327 at site central warehouse dc-central +- Reserve 2 of item 81327 at site central warehouse dc-central +- Create a transfer order for item 81327 from warehouse houston to warehouse dc-central quantity 1 +- Create a sales order for customer US-001 for item 81327 quantity 2 -> βœ… **Exit check β€”** All required flows are on, and **Get IVS Access Token** has a successful run history entry. +## Publish the Agent ---- +When validation has passed (and F&O MCP validation has passed if transfer/sales order workflows are in scope), publish the agent in Copilot Studio β€” or leave it explicitly ready for customer-controlled publishing. Configure channels if channel deployment is in scope. -### Step 5 β€” Open the Agent in Copilot Studio +## Capabilities -| # | Action | -| :-: | --- | -| 1 | Open Copilot Studio. | -| 2 | Select the target environment. | -| 3 | Open **Inventory Fulfillment Agent**. | -| 4 | Confirm the imported actions, child agents, topics, and knowledge are present. | -| 5 | Use test chat to confirm the agent can select IVS actions and F&O child agents. | +The agent supports the following business tasks: -> βœ… **Exit check β€”** The agent opens in Copilot Studio and can invoke the expected tools in test chat. +- Product search +- On-hand inventory checks +- ATP checks +- Soft reservations +- Unreservation +- Transfer order creation +- Sales order creation ---- +## Tools and Child Agents -### Step 6 β€” Publish the Agent +IVS actions are implemented as tools. A tool is a specific callable action, such as checking inventory, searching products, reserving stock, or unreserving stock. -| # | Action | -| :-: | --- | -| 1 | Confirm IVS validation has passed. | -| 2 | Confirm F&O MCP validation has passed if transfer order or sales order workflows are in scope. | -| 3 | Publish the agent. | -| 4 | Configure channels if channel deployment is in scope. | +Transfer orders and sales orders are handled by child agents. A child agent is used for a more complex process that may require multiple steps, such as summarising the request, asking for confirmation, creating a header, and then creating lines. -> βœ… **Exit check β€”** The agent is published or explicitly left ready for customer-controlled publishing. +## Customizing the Agent ---- +You can modify the agent after import to match the capabilities you want to expose. -## πŸ§ͺ Validate IFA +- If you do not use ATP, disable the ATP tool and remove ATP references from the instructions. +- If you do not want users to create reservations, disable the reserve and unreserve tools. +- If you only want inventory lookup, disable the transfer order and sales order child agents. +- Adjust the instructions to match your company terminology, warehouse naming, fulfilment rules, and support model. -Use known customer data for validation. Run only the scenarios that are in scope. - -| Area | Prompt pattern | Expected result | -| --- | --- | --- | -| **Product search** | *"Find product `` in ``."* | Agent returns matching products or asks one focused clarification question. | -| **On-hand inventory** | *"Check on-hand inventory for item `` in site `` warehouse ``."* | Agent calls IVS and reports current inventory. | -| **ATP** | *"Check ATP for item `` in site `` warehouse `` for the next 7 days."* | Agent calls IVS ATP and reports projected availability. | -| **Reserve** | *"Reserve `` of item `` at site `` warehouse ``."* | Agent asks for confirmation before reservation and returns reservation ID on success. | -| **Unreserve** | *"Unreserve reservation `` for item `` at site `` warehouse `` quantity ``."* | Agent asks for confirmation and reports unreservation result. | -| **Transfer order** | *"Create a transfer order in `` from `` to `` for `` of item ``."* | Agent routes to Transfer Order Agent and uses F&O MCP after confirmation. | -| **Sales order** | *"Create a sales order in `` for customer `` for `` of item ``."* | Agent routes to Sales Order Agent and uses F&O MCP after confirmation. | - ---- - -## 🩺 Troubleshooting +## Troubleshooting | Symptom | Likely cause | Action | | --- | --- | --- | -| `AADSTS7000222` in `Get_Access_Token` | Entra client secret is expired. | Create a new app credential, update `IVS_ClientSecret`, publish, and rerun **Get IVS Access Token**. | -| `401 invalid_client` in token flow | Wrong client secret, wrong client ID, wrong tenant, or expired credential. | Validate tenant ID, client ID, secret, and credential expiry in Entra. | -| `Get_Access_Token` succeeds but `Get_IVS_Token` fails | IVS security scope, environment ID, or service principal access is wrong. | Validate `IVS_SecurityScope`, `IVS_EnvironmentId`, IVS setup, and app permissions. | -| IVS flow reaches HTTP action but inventory call fails | Wrong IVS base URL / environment ID, IVS not installed, or item / dimension data missing. | Confirm endpoint values and test known IVS data. | -| Flow cannot be turned on | Missing connection, missing environment variable, invalid child flow reference, or insufficient permission. | Fix connection references and environment variables, then turn on **Get IVS Access Token** before dependent flows. | -| Agent selects IVS action but missing values reach the flow | Action input mapping or Copilot Studio tool binding is incomplete. | Inspect action inputs and ensure required flow trigger inputs are exposed to the agent. | -| F&O MCP calls fail with access denied | Connection user lacks F&O security permissions or MCP client is not allowed. | Validate F&O security roles and **Allowed MCP Clients** configuration. | -| Solution import fails | Missing dependency or insufficient import privilege. | Download import log, resolve dependency, and retry with sufficient Power Platform permissions. | - ---- - -## πŸ“š Microsoft References +| `AADSTS7000222` in Get IVS Access Token | Entra client secret is expired. | Create a new app credential, update the client secret variable, publish, and rerun Get IVS Access Token. | +| `401 invalid_client` in token flow | Wrong client secret, client ID, tenant, or expired credential. | Validate tenant ID, client ID, secret value, and credential expiry in Entra. | +| Access token succeeds but IVS token fails | Wrong environment ID, or service principal access. | Validate the environment ID, IVS setup, and app permissions. | +| IVS HTTP call reached but inventory call fails | Wrong endpoint URL / environment ID, IVS not installed, or item/dimension data missing. | Confirm endpoint values and test with known IVS data. | +| A flow cannot be turned on | Missing connection, missing environment variable, or insufficient permission. | Fix connection references and variables, then turn on Get IVS Access Token before the dependent flows. | +| F&O MCP calls fail with access denied | Connection user lacks F&O security permissions, or the MCP client is not allowed. | Validate F&O security roles and the Allowed MCP Clients configuration. | +| Solution import fails | Missing dependency or insufficient import privilege. | Download the import log, resolve the dependency, and retry with sufficient permissions. | + +## Quick Setup Checklist + +- [ ] Entra app registration created and client secret saved securely (not in notes). +- [ ] Inventory Visibility installed and configured. +- [ ] Product Search configured and synced. +- [ ] ATP configured if required. +- [ ] F&O MCP prerequisites met (if transfer/sales orders are in scope). +- [ ] Solution ZIP downloaded from GitHub. +- [ ] Finance and Operations connection selected during import. +- [ ] Environment variables entered for the target environment. +- [ ] Cloud flows turned on (Get IVS Access Token first). +- [ ] Agent tested in Copilot Studio. +- [ ] Agent published and ready for end-user consumption. + +## Microsoft References | Area | Reference | | --- | --- | -| Copilot Studio licensing and access | | -| Power Platform solution import | | -| Environment variables | | -| Connection references | | -| Inventory Visibility setup | | -| Microsoft Entra app registration | | -| Microsoft Entra app credentials | | -| Dynamics 365 F&O MCP | | +| Copilot Studio licensing and access | https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-licensing-subscriptions | +| Power Platform solution import | https://learn.microsoft.com/en-us/power-apps/maker/data-platform/import-update-export-solutions | +| Environment variables | https://learn.microsoft.com/en-us/power-apps/maker/data-platform/environmentvariables | +| Connection references | https://learn.microsoft.com/en-us/power-apps/maker/data-platform/create-connection-reference | +| Inventory Visibility setup | https://learn.microsoft.com/en-us/dynamics365/supply-chain/inventory/inventory-visibility-setup | +| Microsoft Entra app registration | https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app | +| Microsoft Entra app credentials | https://learn.microsoft.com/en-us/entra/identity-platform/how-to-add-credentials | +| Dynamics 365 F&O MCP | https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/copilot/copilot-mcp |