Tag Archives: Dynamics 365
Precision in the Pharmacy: Transforming Warehouse and Inventory Visibility in Pharmaceutical Manufacturing
Summary: CloudFronts implemented real-time bin, lot, and location tracking using Microsoft Dynamics 365 Business Central for a pharmaceutical manufacturer in India. The solution eliminated manual inventory tracking gaps by digitizing quarantine, testing, and approval movements across warehouse locations. Inventory traceability improved from manual rack-level visibility to system-driven audit-ready tracking at every transaction level. Only approved finished goods are now visible for dispatch, reducing compliance risks and preventing unusable stock from entering the supply chain. About the Customer This engagement involved a mid-sized pharmaceutical manufacturing company based in India, operating in regulated production environments with strict quality and compliance requirements. The organization manages multiple SKUs across formulations, with a strong focus on GMP-compliant inventory and warehouse processes. The Challenge CloudFronts identified that inventory visibility across warehouse and quality processes was fragmented, manual, and prone to audit risks. Prior to the implementation, the organization struggled to track the exact physical location and status of materials during different stages of the quality lifecycle. Warehouse operations relied heavily on manual bin tracking, where rack-level information was either recorded offline or inconsistently updated in the system. This made it difficult for users to answer basic but critical questions such as: Additionally, location transfers between key stages, such as Quarantine, Under Test, Approved, and Rejected – were not system-driven. These movements were handled manually, increasing the risk of: From our experience across pharmaceutical implementations, these gaps directly impact batch traceability, regulatory readiness, and operational efficiency – especially during audits or product recalls. The Solution CloudFronts implemented a warehouse and inventory visibility framework using Microsoft Dynamics 365 Business Central, specifically tailored for pharmaceutical quality processes. The solution was designed to ensure real-time, audit-ready tracking of inventory across bins, lots, and locations. At the core of the solution was multi-dimensional inventory tracking, combining: We configured Microsoft Dynamics 365 Business Central to capture a manual “Bin No.” field at every transaction level, ensuring that users can explicitly define and track the exact rack or storage position of materials. This design decision was critical for audit scenarios, where inspectors require precise physical traceability. To address quality-driven inventory movement, we structured the warehouse into logical locations: We then automated inventory movement across these locations based on quality outcomes. For example: This was achieved through controlled workflows and validations within Microsoft Dynamics 365 Business Central, ensuring that: Additionally, we configured tracking line visibility rules, ensuring that only Approved inventory is available for downstream processes such as sales and dispatch. This eliminates the risk of accidental usage of blocked or rejected stock. From an architecture standpoint, the system leverages: Business Impact CloudFronts delivered measurable improvements in inventory control, accuracy, and compliance (CloudFronts implementation, 2024). To conclude, CloudFronts improved warehouse operations by replacing manual tracking with system-driven visibility using Microsoft Dynamics 365 Business Central. This ensures every batch is traceable, movements are controlled, and only approved inventory is used. Pharmaceutical companies adopting structured inventory visibility can reduce compliance risks while improving efficiency. If you’re looking to strengthen inventory tracking, quality control, or warehouse processes, a well-designed Microsoft Dynamics 365 Business Central implementation can deliver clear, measurable results. I hope you found this blog useful, and if you would like to discuss anything or explore a future implementation, you can reach out to us at transform@cloudfonts.com.
Posting Date vs Clearing Date – Why Prior-Year Entries Appear in Business Central Bank Reconciliation
Summary In one of our recent client engagements for a service company based in Africa, we observed that prior-year transactions appearing in current-year bank reconciliation in Microsoft Dynamics 365 Business Central caused confusion during financial review and raised concerns about data accuracy. This occurs due to differences between posting date and clearing date and is a normal accounting scenario, not a system issue, as reconciliation is based on open entries until they are cleared and matched with bank statements. “Why is a 2024 entry appearing in reconciliation when the year is already closed?” At first glance, this may seem like a system issue. However, it is actually a fundamental accounting concept that every finance team should understand. Understanding the Scenario Let’s break down the situation: a. A payment (check) was issued on 31-Dec-2024b. The vendor deposited the check in January 2025c. The bank processed the transaction in 2025 During January 2025 reconciliation, the system shows: a. A 2024 ledger entry on the system sideb. A 2025 bank statement line on the bank side This often raises a common concern: “Why is a prior-year transaction still appearing?” The Root Cause – Timing Difference in Accounting This is a classic example of a timing difference in accounting. There are two important dates involved: a. Posting Date (System) – The date when the transaction is recorded in Business Central (31-Dec-2024)b. Clearing Date (Bank) – The date when the bank processes the transaction (January 2025) These dates do not always match – and that is completely normal in financial operations. How Business Central Handles This Microsoft Dynamics 365 Business Central follows a simple and accurate principle: Bank reconciliation is based on open (unreconciled) entries, not fiscal years. This means: a. Even if the financial year is closedb. Even if financial statements are finalizedc. Any unreconciled bank ledger entry will still appear The 2024 transaction appears in the January 2025 reconciliation because: a. It was posted in 2024b. It was not cleared by the bank at that timec. It remained open in the system Once the bank processes it in 2025, Business Central correctly includes it in the reconciliation. The Solution – Simple and Straightforward There are no error and no correction required. The correct approach is: a. Match the 2024 ledger entry with the 2025 bank statement lineb. Once matched, the entry is marked as reconciledc. It will no longer appear in future reconciliations Key Takeaway Bank reconciliation is not about when a transaction is recorded – it is about when it is cleared. Understanding this distinction helps finance teams: a. Avoid unnecessary confusionb. Improve reconciliation accuracyc. Ensure smoother financial operations in Business Central To conclude, seeing prior-year entries during reconciliation in Microsoft Dynamics 365 Business Central is completely normal and expected in scenarios involving timing differences. By understanding how posting dates and clearing dates interact, organizations can confidently manage reconciliations without misinterpreting system behavior. If you are implementing or optimizing bank reconciliation in Business Central and want more clarity in your finance processes, feel free to reach out to us at transform@cloudfonts.com. We have helped multiple organizations streamline exactly these scenarios.
How to Handle Language and Format Region in RDLC Reports in Microsoft Dynamics 365 Business Central
In global implementations of Microsoft Dynamics 365 Business Central, reports are consumed by users across multiple regions. While the underlying data remains the same, the way it is presented—especially numbers, dates, and currency-must adapt to regional expectations. A common mistake developers make is focusing only on translations while ignoring regional formatting differences. This often results in reports where values appear correct but are interpreted incorrectly due to formatting. This blog explains how to dynamically control both language and format region in RDLC reports using AL, ensuring accurate and user-friendly reporting across regions. What You Will Learn The Report Example Below is a working example where the report dynamically sets language and formatting before execution: report 50121 “Test Multilingual Report”{ Caption = ‘Test Multilingual Report’; UsageCategory = ReportsAndAnalysis; ApplicationArea = All; DefaultLayout = RDLC; RDLCLayout = ‘./Report Layouts/TEstrepo.rdl’; dataset { dataitem(PurchaseHeader; “Purchase Header”) { column(Customer_No; “Buy-from Vendor No.”) { } column(Customer_Name; “Buy-from Vendor Name”) { } column(Balance_LCY; Amount) { } } } trigger OnPreReport() var LanguageMgt: Codeunit Language; VendorRec: Record Vendor; begin if VendorRec.Get(PurchaseHeader.”Buy-from Vendor No.”) then begin CurrReport.Language := LanguageMgt.GetLanguageIdOrDefault(VendorRec.”Language Code”); CurrReport.FormatRegion := LanguageMgt.GetFormatRegionOrDefault(VendorRec.”Format Region”); end; end;} What This Code Actually Does Before the report starts rendering, the OnPreReport trigger executes. a. CurrReport.Language sets the language used for captions and labels in the report b. CurrReport.FormatRegion defines how numbers, dates, and currency values are formatted The key point is that these values are applied at runtime, meaning the same report behaves differently depending on the data it processes. Why This Matters Consider the same numeric value: a. In US format: 1,234.56 b. In French format: 1.234,56 If a report shows the wrong format, users may misread values. In financial documents, this is not just a cosmetic issue-it can lead to real errors. By setting FormatRegion, you ensure that: a. Decimal separators are correct b. Thousand separators follow regional standard c. Currency formatting aligns with expectations Best Practices for RDLC Reports in Business Central Common Mistake to Avoid Avoid hardcoded expressions like: =Format(Fields!Balance_LCY.Value, “#,##0.00”) This overrides regional settings and prevents dynamic formatting. Why This Matters for Global Implementations Accurate localization ensures: Final Thoughts Multilingual reporting in Microsoft Dynamics 365 Business Central is not just about translating text. True localization means presenting data in a way that aligns with regional expectations. By dynamically setting both language and format region using AL, you can build scalable, globally adaptable reports without increasing RDLC complexity. I hope you found this blog useful. If you would like to discuss anything further, feel free to reach out to us at transform@cloudfronts.com.
Why Report Formatting Matters as Much as Calculations in Microsoft Dynamics 365 Business Central
Summary RDLC expressions may seem like small details, but they have a significant impact on the overall user experience. When building reports in Microsoft Dynamics 365 Business Central: Small refinements in formatting can dramatically elevate the quality of your reports – and the perception of your solution. When building reports in Microsoft Dynamics 365 Business Central, most developers focus heavily on calculations – totals, balances, VAT, charges, and more. But after working across multiple client implementations, one thing becomes very clear: A correctly calculated number is only half the job. How that number is displayed defines how professional your report looks. In this article, we’ll walk through practical RDLC expression patterns that help you: Let’s break it down step by step. The Business Requirement Consider common reports such as: Typically, you calculate totals using: Then the client asks for refinements: These are very common requirements in Indian financial reporting. Example 1: Hide Zero and Format Numbers RDLC Expression =IIf( Fields!BaseAmount.Value + Fields!ServiceCharge.Value + Fields!VATAmount.Value + Fields!TransportCharge.Value = 0, “”, Replace( Format( Fields!BaseAmount.Value + Fields!ServiceCharge.Value + Fields!VATAmount.Value + Fields!TransportCharge.Value, “#,##,##0” ), “,”, ” ” )) What This Does Step 1 – Calculate TotalAdds all amount fields. Step 2 – If Total = 0Returns blank (nothing displayed). Step 3 – If Total ≠ 0 Example Output Actual Value Displayed Value 0 (blank) 5000 5 000 125000 1 25 000 12345678 1 23 45 678 Even a small formatting tweak like this makes reports significantly cleaner. Example 2: Negative Values in Brackets (Accounting Format) Many clients prefer: (50 000) instead of -50 000 RDLC Expression =IIf( Fields!NetAmount.Value = 0, “”, IIf( Fields!NetAmount.Value < 0, “(” & Replace(Format(Abs(Fields!NetAmount.Value), “#,##,##0”), “,”, ” “) & “)”, Replace(Format(Fields!NetAmount.Value, “#,##,##0”), “,”, ” “) )) How It Works Where This Is Useful Example 3: Adding Currency Symbol To include ₹ in your reports: RDLC Expression =IIf( Fields!InvoiceAmount.Value = 0, “”, “₹ ” & Replace( Format(Fields!InvoiceAmount.Value, “#,##,##0”), “,”, ” ” )) Output 250000 → ₹ 2 50 000 Clean. Readable. Professional. Important Note About IIf() A common mistake developers make: IIf() evaluates both TRUE and FALSE conditions. If your fields can be NULL, always handle safely: =IIf(IsNothing(Fields!Amount.Value), 0, Fields!Amount.Value) This prevents runtime errors in production. Best Practice: Keep Expressions Clean If you’re calculating the same total multiple times: Do not repeat logic in RDLC. Instead, create a calculated field in your dataset: TotalAmount = BaseAmount + ServiceCharge + VATAmount + TransportCharge Then simplify your expression: =IIf( Fields!TotalAmount.Value = 0, “”, Replace(Format(Fields!TotalAmount.Value, “#,##,##0”), “,”, ” “)) Benefits Especially important in large Business Central reports. Why This Matters in Real Projects In most implementations, clients rarely complain about incorrect calculations. Instead, they say: These are formatting concerns, not calculation issues. And they are what separate: a. A technically correct reportfromb. A production-ready financial document Key Takeaways I hope you found this blog useful. If you would like to discuss anything further, feel free to reach out to us at transform@cloudfronts.com.
Designing a Controlled Purchase Approval Workflow in Microsoft Dynamics 365 Business Central
In a recent implementation, we were asked to redesign the purchase process for a client who needed tighter financial control. The requirement was not just about adding approvals. It was about enforcing structure, visibility, and responsibility at every stage of the purchase lifecycle. The client wanted: To achieve this, we implemented a structured workflow in Microsoft Dynamics 365 Business Central, supported by document stage flags and user-based permission control. The Core Challenge Standard approval workflows can handle basic approval logic. However, they do not always provide: We needed a solution that was both technically controlled and functionally transparent. Our Approach We structured the solution around three pillars: 1. Multi-Level Purchase Order Workflow We divided the Purchase Order process into distinct stages: Each stage had a different approver and responsibility. Roles configured: This ensured segregation of duties throughout the process. 2. Stage Identification Using Flags One important improvement we implemented was the use of stage flags on the document. We introduced boolean fields such as: These flags helped us clearly identify: Instead of relying only on the document Status (Open, Released, Pending Approval), we created logical control using these flags. Why was this important? Because standard document status alone cannot differentiate between: By using flags, we achieved: The system logic checked these flags before allowing the Post action. If the required flags were not set, posting was blocked. 3. Restricting Approval Actions via User Setup Another major requirement was controlling who can: To implement this, we extended the User Setup configuration. We added permission indicators such as: In our page action logic, we validated User Setup before enabling the action. If the logged-in user did not have the required permission flag, the action was either: This ensured that only authorized users could trigger workflow transitions. For example: This removed ambiguity and prevented unauthorized workflow manipulation. Handling Rejections and Cancellations We carefully handled rejection scenarios. When a request was: We did not reset the document to Open status. Instead: This design prevented document inconsistency and ensured clean reprocessing. Direct Purchase Invoice Workflow For direct Purchase Invoices (without PO), we implemented the same structure: This ensured that direct invoices did not bypass financial control. How This Resolved the Client’s Concerns Before implementation, the client faced: After implementing: The system now enforces: Most importantly, the solution aligned system behavior with real business hierarchy. Key Takeaways A strong approval workflow is not just about enabling the Approval feature in Business Central. It requires: By combining workflow configuration, document flags, and user-based permission validation, we created a robust and audit-ready purchase control mechanism. Final Thoughts When designing approval workflows, always think beyond basic approval entries. Consider: A well-designed workflow does not slow down operations. It protects them. If you are working on a similar purchase control requirement in Business Central, implementing stage flags along with User Setup-based access control can significantly strengthen your solution. I hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com.
If Business Central Has a Project Module, Why Do Companies Still Use Project Operations?
Summary Many project-based organizations evaluating Microsoft solutions often ask the same question: If Microsoft Dynamics 365 Business Central already includes a project module, why do companies also use Microsoft Dynamics 365 Project Operations? This article explains the difference between the two systems, why both exist in the Microsoft ecosystem, and how integrating Project Operations with Business Central helps organizations manage project delivery and financial performance more effectively. Table of Contents 1. Why This Question Comes Up 2. Business Central: Built for Project Accounting 3. Project Operations: Built for Project Delivery 4. Why Companies Use Both 5. The Value of Integration The Outcome Why This Question Comes Up Many organizations assume Microsoft Dynamics 365 Business Central can manage all aspects of project operations because it includes the Jobs module. The Jobs module supports project budgeting, costing, and invoicing, which works well for organizations focused mainly on financial tracking. However, as projects grow more complex, involving multiple resources, time tracking, delivery planning, and client reporting, companies begin to experience limitations. This is when the difference between project accounting and project delivery becomes important. One system manages project finances. The other manages how projects are executed. Business Central: Built for Project Accounting Microsoft Dynamics 365 Business Central is an ERP system designed primarily for financial management. Its Jobs module helps finance teams track the financial performance of projects. Using Business Central, organizations can: Track project budgets and costs Manage purchase orders and project expenses Generate project invoices Monitor project profitability Handle revenue recognition and financial reporting For finance teams, this provides strong control over costs, billing, and compliance. However, financial visibility alone does not guarantee successful project delivery. Project Operations: Built for Project Delivery Microsoft Dynamics 365 Project Operations focuses on how projects are planned and executed. It provides tools specifically designed for project managers and delivery teams. Project Operations enables organizations to: Plan projects and manage tasks Schedule resources and manage capacity Track time and expenses Monitor project progress Collaborate across teams These capabilities help project managers manage people, timelines, and delivery commitments. However, Project Operations is not designed to replace an ERP system for financial management. Why Companies Use Both In most project-based organizations, different teams depend on different systems. Team Focus System Project Managers Planning and project delivery Project Operations Finance Teams Cost control, billing, accounting Business Central Trying to manage everything in a single system often creates operational friction. Project teams struggle with financial processes, while finance teams lack visibility into project execution. The Value of Integration When Microsoft Dynamics 365 Project Operations integrates with Microsoft Dynamics 365 Business Central, organizations gain the best of both systems. A typical workflow looks like this: Opportunities and project quotes are created Projects are planned and executed in Project Operations Time, expenses, and resource usage are captured Billing data flows to Business Central Finance manages invoicing and accounting This integration connects project execution with financial performance. Project managers gain operational visibility, while finance teams maintain control over billing and reporting. The Outcome Projects are delivered more efficiently Financial reporting remains accurate and compliant Manual work and duplicate data entry are reduced Project managers and finance teams work from connected data This creates a unified platform where project delivery and financial performance remain aligned. Final Thought The question is not whether Business Central can manage projects — it can. The real question is whether one system should manage both delivery and financial operations. For many organizations, combining Microsoft Dynamics 365 Project Operations with Microsoft Dynamics 365 Business Central provides the ideal balance between operational execution and financial governance. At CloudFronts Technologies, we help organizations connect Project Operations with Business Central through our PO-BC integration solution. For more information: PO-BC Integration Solution on Microsoft AppSource If you would like to discuss how this integration can support your organization, feel free to reach out to us at transform@cloudfronts.com.
How to Generate and Use SSL Certificates in Microsoft Dynamics 365 Business Central
Security is a critical aspect of any ERP implementation. When integrating Microsoft Dynamics 365 Business Central with external systems such as APIs, payment gateways, banks, IRIS, VAT systems, or third-party services, SSL/TLS certificates play a key role in securing communication. A common misconception is that Business Central itself generates SSL certificates. In reality, Business Central only consumes certificates-the generation and management are handled externally. In this blog, we will cover: What Is an SSL Certificate in Business Central? An SSL (Secure Sockets Layer) / TLS certificate is used to:\Hook: In Business Central, certificates are commonly used for: Important: Business Central does not create SSL certificates—it only stores and uses them. Steps to Generate an SSL Certificate (Self-Signed) This approach is typically used for development or on-premises environments. Step 1: Create a Self‑Signed Certificate in IIS Step 2: Provide Certificate Details Step 3: Copy the Certificate Thumbprint This thumbprint will be required in the next step. Step 4: Configure Certificate Using PowerShell Step 5: Verify Required Properties Ensure all required certificate properties are set to True, including: Step 6: Bind the Certificate in IIS Step 7: Add Certificate Using MMC Step 8: Verify Certificate Installation The certificate should now be visible under: Step 9: Grant Permissions to Business Central Service This ensures the Business Central service can access the certificate. To conclude, SSL certificates are a core security component in Business Central integrations. While Business Central does not generate certificates, it provides robust mechanisms to store and consume certificates securely in both cloud and on‑prem environments. Understanding the generation, configuration, and usage flow ensures secure, compliant, and reliable integrations. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
Finding the Right Events in Business Central: Payment Journals & Purchase Orders
When working with Payment Journals in Microsoft Dynamics 365 Business Central, one of the most common customization requirements is to trigger custom logic immediately after the user selects the Applies-to Doc. No.. In one of my recent client projects, the requirement was very specific: As soon as a payment journal line is applied to an invoice (via Applies-to Doc. No. lookup), the system should automatically calculate amounts and create additional retained lines (VAT and IRIS). Sounds simple, right? The real challenge was finding the correct event that fires after the lookup completes and after Business Central internally updates the journal line fields. This blog documents: Problem Statement The client wanted the following behavior in Payment Journal: The logic must run right after the lookup, not during posting and not on page validation. Why Page Events Were Not Enough Initially, it is natural to look for: However, in this case: So even though the value was visible, the amounts were not reliable yet. Using Event Recorder to Find the Right Event This is where Event Recorder becomes extremely powerful. Steps I Followed The recorder captured a detailed list of: After analyzing the sequence, one event stood out. The Key Event That Solved the Problem The event that fulfilled the exact requirement was: [EventSubscriber( ObjectType::Table, Database::”Gen. Journal Line”, ‘OnLookupAppliestoDocNoOnAfterSetJournalLineFieldsFromApplication’, ”, false, false)]local procedure OnAfterLookupAppliesToDocNo(var GenJournalLine: Record “Gen. Journal Line”) Why This Event Is Perfect This is exactly the moment where custom business logic should run. Implementing the Business Logic Below is the simplified version of the logic implemented inside the subscriber: local procedure OnAfterLookupAppliesToDocNo(var GenJournalLine: Record “Gen. Journal Line”)begin GenJournalLine.GetUpdatedAmount(); if GenJournalLine.”Applies-to Doc. No.” <> ” then begin GenJournalLine.GetUpdatedAmount_(GenJournalLine); AppliestoDocNo := GenJournalLine.”Applies-to Doc. No.”; GenJournalLine.CreateRetainedVATLine(GenJournalLine, AppliestoDocNo); GenJournalLine.CreateRetainedIRISLine(GenJournalLine, AppliestoDocNo); end;end; What This Code Does All of this happens immediately after the lookup, without waiting for posting. Important Design Notes Key Takeaway Finding the right event is often harder than writing the logic itself. In scenarios where: This table event: OnLookupAppliestoDocNoOnAfterSetJournalLineFieldsFromApplication is a hidden gem for Payment Journal customizations involving Applies-to logic. Another Real-World Case: Invoice Discount Recalculation on Purchase Orders In the same project, we faced another tricky requirement related to Invoice Discounts on Purchase Orders. The Problem did not fire reliably when invoice discounts were recalculated by the system This became an issue because the client wanted custom tax and withholding logic (IR, IS, Withheld VAT, Excise) to be recalculated immediately after invoice discount recalculation. Why Page and Line Events Failed Again Business Central recalculates invoice discounts using an internal codeunit: Purch – Calc Disc. By Type This logic: So once again, page-level and line-level events were too early or never triggered. Finding the Right Event (Again) Using Event Recorder Using Event Recorder, I traced the execution when: This led to the discovery of another perfectly-timed system event. The Key Event for Invoice Discount Scenarios [EventSubscriber( ObjectType::Codeunit, Codeunit::”Purch – Calc Disc. By Type”, ‘OnAfterResetRecalculateInvoiceDisc’, ”, false, false)]local procedure OnAfterResetRecalculateInvoiceDisc(var PurchaseHeader: Record “Purchase Header”) Why This Event Works Applying Custom Logic on Purchase Lines local procedure OnAfterResetRecalculateInvoiceDisc(var PurchaseHeader: Record “Purchase Header”)var PurchLine: Record “Purchase Line”;begin PurchLine.SetRange(“Document Type”, PurchaseHeader.”Document Type”); PurchLine.SetRange(“Document No.”, PurchaseHeader.”No.”); if PurchLine.FindSet() then repeat PurchLine.UpdateIRandIS(); PurchLine.CalculateWithHeldVAT(); PurchLine.CalculateIR(); PurchLine.CalculateIS(); PurchLine.CalculateExcise(); PurchLine.Modify(); until PurchLine.Next() = 0;end; What Happens Here All of this happens automatically, without relying on UI triggers. Key Lessons from Both Scenarios Final Thoughts Both of these scenarios reinforce one important principle in Business Central development: Finding the right event matters more than writing the logic itself. Whether it is: The solution lies in understanding where Business Central actually performs the work – and subscribing after that point. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
From Dashboards to Decision Intelligence
Traditional business intelligence platforms have historically focused on visualization-charts, KPIs, and trend lines that describe what has already happened. Power BI excels at this, enabling users to explore data interactively and monitor performance at scale. However, modern business users expect more than visuals. They need clarity, reasoning, and guidance on what actions to take next. This marks the shift from dashboards toward true decision intelligence. Business Challenges Most organizations face a similar challenge. Dashboards answer what happened but rarely explain why it happened. Business users depend on analysts to interpret insights, which slows down decision-making and creates bottlenecks. At the same time, data is fragmented across CRM systems, ERP platforms, project tools, and external APIs. Bringing this data together is difficult, and forming a single, trusted view becomes increasingly complex as data volumes grow. Why Visualization Alone Is Not Enough Even with powerful visualization tools, interpretation remains manual. KPIs lack business context, anomalies are not automatically explained, and insights rely heavily on tribal knowledge. This creates a gap between data availability and decision confidence. Introducing Agent Bricks Agent Bricks is introduced to close this gap. It acts as an AI orchestration and reasoning layer that consumes curated analytical data and applies large language model-based reasoning. Instead of presenting raw numbers, Agent Bricks generates contextual insights, explanations, and recommendations aligned to business scenarios. Importantly, it enhances Power BI rather than replacing it. High-Level Architecture From an architecture standpoint, data flows from enterprise systems such as CRM, ERP, project management tools, and APIs. Azure Logic Apps manage ingestion, Azure Databricks handles analytics and modeling, Agent Bricks performs AI reasoning, and Power BI remains the consumption layer. To conclude, dashboards remain a critical foundation for analytics, but they are no longer enough to support modern decision-making. As data complexity and business expectations grow, organizations need systems that can interpret data, explain outcomes, and guide actions. Agent Bricks enables this shift by introducing AI-driven reasoning on top of existing Power BI investments. By bridging the gap between analytics and decision-making, it helps organizations move from passive reporting to proactive, insight-led execution. This marks the first step in the evolution from dashboards to true decision intelligence. We hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
Project Contract Types in D365: Fixed Price vs Time & Material vs Milestone
When you run a project-based business-like in construction, IT, consulting, or engineering-how you charge your customers matters just as much as what you deliver. If you’re using Dynamics 365 Project Operations, you’ll need to decide how to bill your projects. Microsoft gives you three main contract types: Let’s break down what each of these means, when to use them, and how Dynamics 365 helps manage them. 1. Fixed Price – One Total Amount What is it? The customer pays a fixed amount for the full project or part of it, no matter how many hours or resources you actually use. When to use: What Dynamics 365 helps you do: Be careful: Think of this like constructing a house for a fixed price. You get paid in stages, not by the number of hours worked. 2. Time & Material – Pay as You Go What is it? The customer pays based on the hours your team works and the cost of materials used. When to use: What Dynamics 365 helps you do: Be careful: This is like a taxi ride-you pay based on how far you go and how long it takes. 3. Milestone Billing – Pay for Key Deliverables What is it? You agree on certain key points (milestones) in the project. When those are completed, the customer is billed. When to use: What Dynamics 365 helps you do: Be careful: It’s like paying an architect after each part of a building design is done—not for every hour they work. To conclude, choosing the right contract type helps you: When your billing matches your work style, profits become more predictable—and projects run smoother. Need Help Deciding? If you’re not sure which billing model is best for your business-or how to set it up in Dynamics 365 Project Operations-we’re here to help. Feel free to reach out. You can reach out to us at transform@cloudfronts.com. Let’s find the right setup for your success.