PowerApps Archives -

Category Archives: PowerApps

How a Texas-Based AI and Cybersecurity Services Company Streamlined Dataverse Choice Management in Dynamics 365

Summary In rapidly evolving sales organizations, business requirements rarely remain static. New products, services, sales categories, commercial models, and operational scenarios can continuously introduce the need for additional values in Dynamics 365. For one of our clients, this resulted in a recurring dependency on the technical team. Whenever the business needed to add or modify values in a Dynamics 365 Choice column, they had to approach the implementation team for a seemingly small configuration change. At first glance, replacing the Choice column with a Lookup table appeared to be a natural solution. However, that approach would introduce a much larger change: migrating existing records, replacing references throughout the application, modifying system processes, reviewing integrations, and potentially impacting logic that already depended on the existing Choice values. Instead of redesigning the data model to solve a configuration problem, I approached the requirement from a solution-architecture perspective. I built a self-service Dataverse Choice Manager that allows authorized users to select a Dataverse table and Choice column, add or update options, publish the metadata, and automatically create an audit record and notify system administrators. The solution uses supported Dataverse Web API and Metadata APIs to perform controlled schema-level operations while introducing governance, auditability, and guardrails around those changes. The result is a model where the business can adapt its Choice values without continuously depending on developers, while the technical team retains control over security, governance, auditing, and platform integrity. Case Study Read more about our Journey with this Customer over here: View Case Study Table of Contents Introduction Business Requirement The Architectural Decision How I Solved It Implementation Procedure End-to-End Working Custom Auditing and Governance Working Within Dataverse Platform Boundaries Benefits of the Solution Limitations and Guardrails Conclusion Introduction Dynamics 365 implementations often evolve alongside the businesses they support. A sales organization may initially define a finite set of values for a Choice column. Over time, however, new products are introduced, sales processes change, new commercial categories emerge, and terminology evolves. The technical change may appear trivial: “I just need to add one more option to this Choice field.” But when the same request occurs repeatedly, a different problem emerges. The business becomes dependent on the technical team for configuration changes that are fundamentally part of day-to-day business evolution. For one of our clients, this pattern was becoming increasingly common. The organization is highly sales-focused and operates in an environment where business requirements continue to evolve. The question therefore became: Can I give the business controlled self-service access to Choice values without redesigning the existing Dataverse data model? Rather than immediately changing the schema, I looked at the problem from a solution-design perspective. The answer was to build a controlled metadata management layer over Dataverse. Business Requirement The client’s requirement was straightforward: Select a Dynamics 365 table. Select a Choice column. Add a new option when the business needs one. Update an existing option label when terminology changes. The challenge was not simply performing these operations. The challenge was performing them safely. A typical Dynamics 365 user does not need unrestricted access to the Dataverse schema. Giving users broad customization privileges would create an entirely different governance problem. I therefore needed to balance two competing objectives: Business agility The sales team should not need to raise a development request every time a new Choice value is required. Technical governance The organization still needs to know: Who made the change? What was changed? When was it changed? Which table was affected? Which Choice column was affected? What was the previous value? What is the new value? Was the change successfully published? This led us to a more important architectural principle: Self-service does not have to mean unrestricted access. The solution should expose only the operations that the business needs while keeping the underlying metadata APIs behind a controlled interface. The Architectural Decision Option 1: Replace the Choice with a Lookup One possible solution was to replace the existing Choice column with a Lookup pointing to a new Dataverse table. Conceptually, this would provide an excellent long-term model for highly dynamic business values. For example: Sales Record | +– Category Lookup | +– Category A +– Category B +– Category C +– Category D The business could then create new category records without changing metadata. However, the problem was the existing implementation. The Choice column was already being used across the solution. Replacing it would potentially require: Identifying all existing records containing the Choice value. Creating corresponding records in the new Lookup table. Migrating existing data. Replacing the existing field references. Updating JavaScript. Reviewing plugins. Reviewing Power Automate flows. Reviewing business rules. Reviewing integrations. Updating reports and Power BI dependencies. Testing existing processes. Deploying the changes across environments. In other words, a small configuration problem could turn into a substantial data-model transformation. The Architectural Conclusion The problem was not necessarily that the Choice column was the wrong data type. The problem was that the organization needed a controlled way to manage its values. Therefore, rather than redesigning the data model, I preserved the existing architecture and built a self-service management capability around it. How I Solved It I designed a web-resource-based application inside Dynamics 365: Dataverse Choice Manager Dataverse Picklist Manager. The application provides a simple interface through which an authorized user can: Select a Dataverse table. Retrieve the available Choice columns. Select a Choice column. Retrieve its existing options. Add a new option. Update an existing option. Publish the affected table. Generate an audit record. Notify the system administrator. From the user’s perspective, this becomes a simple business operation. From the platform perspective, however, the application is interacting directly with Dataverse metadata. The high-level architecture is: Dynamics 365 User | v Dataverse Choice Manager | +——————–+ | | v v Dataverse Web API Metadata Actions | | | InsertOptionValue | UpdateOptionValue | DeleteOptionValue | PublishXml | v Dataverse Metadata | v Choice Column Updated | +———————-+ | | v v Custom Audit Log System Administrator Email This is where the solution becomes more … Continue reading How a Texas-Based AI and Cybersecurity Services Company Streamlined Dataverse Choice Management in Dynamics 365

Share Story :

Dynamics 365 Sales AI: Turn CRM Data into Dynamic Word Reports for Executive Insights

Posted On August 26, 2026 by Posted in Tagged in , ,

☼ Light ☶ Sepia ☽ Dark 01Summary Account data in CRM is rarely in one place, with revenue, pipeline, quotes, and years of meeting notes spread across separate records. We built a one-click Account Intelligence Report that runs inside Dynamics 365 and assembles the complete account picture on screen in seconds. With a second click, an AI analyst reviews every appointment note to produce a plain-language engagement history, current status, open commitments on both sides, and talking points for the next meeting. The complete report, combining facts and AI insights, can then be exported as a branded, editable Microsoft Word document with a single click. Everything runs within the signed-in user’s existing Dynamics session, with no new servers or third-party libraries, while inheriting the user’s existing data permissions by design. Table of Contents 01Summary→ 02The 40-Minute Problem→ 03Solution Overview→ 04Technical Approach→ 05Impact→ 06Conclusion→ 07Let’s Talk→ 02The 40-Minute Problem Picture an account manager thirty minutes before a quarterly business review with a customer they have worked with for three years. The relationship is rich. The context, though, is buried. The revenue figure sits on the Account. The live pipeline is spread across a handful of opportunity records. There are a dozen quotes from the last two quarters, most of them not tracked and easy to forget. Then there are the meeting notes. Dozens of appointments, each with its own thread of what was said, promised, and agreed. None of that is missing. It is all in the CRM. The trouble is that it is everywhere at once. To reconstruct the story of an account, someone has to open twenty records, read between them, and hold the whole picture in their head. So they do not bother. They skim the last two meetings, walk in half prepared, and the deeper context stays invisible until it becomes a problem. This is not a data problem in the sense of not capturing enough. It is a synthesis problem. The organisation already holds the intelligence. It simply has no fast, trustworthy way to assemble it into something a human can act on before a meeting begins. ⓘThe real bottleneck The hardest work in account management is rarely finding the information. It is pulling it together. Connecting revenue, pipeline, and history into one coherent, current view, at the exact moment you need it, is where most of the effort actually goes. 03Solution Overview We set out to solve that synthesis problem with the smallest possible footprint, for a U.S.-based manufacturing facility running Dynamics 365 Sales. The result is a single command on the Account form called the Account Intelligence Report. From the account you are already looking at, one click opens a clean, paper-style report inside the application. It is not another tab to manage or another system to log into. It is part of the CRM you already use. The report does three things, in order: It gathers. In seconds it pulls the account’s revenue, its sales-revenue targets, the most relevant quotes, every open opportunity, and all related appointments together with their notes. It reads. A second click sends those meeting notes to an AI model that writes up the account’s engagement history and distils it into clear, decision-ready insights. It delivers. One more click produces a professional, branded Word document, a finished brief you can email, print, or bring into the meeting. The whole experience is built to feel instant. You stay in the flow of your work, and the report comes to you. What the Report Actually Contains The report is organised the way an account manager actually thinks about an account, not the way a database is organised. At the top is a compact dashboard. Revenue, quote totals, open opportunities, and appointment counts sit at a glance. Below that is the structured document itself. Revenue and pipeline at a glance The opening section brings together the numbers that frame the relationship: the customer’s revenue, the potential opportunity, budget and revenue year-to-date, and the estimated revenue outlook. This single block replaces what would otherwise mean cross-referencing the Account record with a separate sales-revenue table. Quotes and open opportunities Next is a focused view of quotes from the last six months, including those not tracked quotes that quietly accumulate and are easy to lose, alongside every open opportunity in the same window, with its stage, originating lead, product segment, and bid date. Totals calculate automatically, so pipeline value is always visible without a manual add-up. Every related appointment, with its notes This is where the report earns its keep. It lists all related appointments and, crucially, lets you expand any meeting to read exactly what was discussed. Attendees are pulled out, and the full substance of each meeting is available inline. For a customer with a long history, this becomes a navigable timeline of the entire relationship, every visit, call, and commitment, in one place. 💡Why appointments are the hard part Meeting history is usually collected through two different paths in CRM. Sometimes a customer is recorded as a participant, sometimes as the subject of the meeting. The report queries both, then merges and de-duplicates the results, so nothing is missed and nothing is doubled. 04Technical Approach The AI Analyst: Years of Notes in One Read Gathering the notes is only half the battle. Someone still has to read them. The "Get AI Insights" action does exactly that. It takes the full set of appointment notes for the account and asks an AI model, Azure OpenAI, to do what a thorough colleague would do before a meeting: read everything, then tell you what matters. The output is deliberately structured, so it slots straight into the report rather than producing a vague paragraph. It returns six things: Engagement history — a single flowing narrative of the relationship from the earliest meeting to the most recent, with dates, attendees, and the key decisions along the way. Current status — a direct read on where things stand and the overall momentum, in two to four points. … Continue reading Dynamics 365 Sales AI: Turn CRM Data into Dynamic Word Reports for Executive Insights

Share Story :

Using Dataverse MCP with Claude to Unlock Business Insights for Senior Leaders

Using Dataverse MCP with Claude to Unlock Business Insights for Senior Leaders Summary MCP Servers are making their way into the mainstream, connecting AI applications together with the AI tool of your choice to utilize them. One such powerful MCP Server, amongst several built by Microsoft, is the Dataverse MCP server. This post walks through what Dataverse MCP brings to users across five capability areas, practical use cases by role, the operational efficiency gains we’ve seen internally at CloudFronts, and answers to the questions this naturally raises around data security and scope. Table of Contents 01 Summary 02 A Quick Recap on MCP Servers 03 Dataverse MCP Capabilities 04 Use Cases by Role 05 Business Impact 06 FAQs 07 Conclusion A Quick Recap on MCP Servers Like several business and personal applications have come up with their own MCP Server, one such powerful MCP Server amongst many by Microsoft is the Dataverse MCP server. Before talking about some use cases, here’s a quick recap of what MCP Servers in general are, to set some context for readers stumbling upon “MCP Servers” for the first time: 1They are an API connection between applications, but capable of understanding human language to connect and execute. 2Don’t need technical knowledge to connect different applications and interact with each other functionally, operating on natural language. 3Widely used by AI Agents to talk to each other and get things done. 4Continue to work after the initial setup. So, given that, here’s what Dataverse MCP brings to users. Dataverse MCP Capabilities Briefly, there are 5 main categories in which Dataverse MCP Servers help: 1Discovery — Use Dataverse MCP to explore the schema of your Dynamics 365 CE / Dataverse environment. Assuming you are a technical team member, you need to explore behind the scenes when customizing solutions, which is where Dataverse MCP can be useful. It’ll go under the hood and make sense of your query to bring you the technical details, instead of you having to remember how it is set up and collate that information. Useful for Solution Architects. 2Query — Query data in simple language by just describing, in human language, what you would otherwise design an Advanced Find for. And when it returns this data, it can go a step further and process or work on the info you asked it to fetch (maybe package it in an Excel file, ready to download from your AI application). 3Record CRUD — Although it’ll ask you for permissions, you can ask your AI tool, connected through Dataverse MCP, to create, update, and delete records. The other day, I just made my Time Entries for the week and asked it to collect Invoice information for a custom entity and bulk-update a custom status on some contacts. So, anything that would need you to go into the system and scrub through forms can be done using Dataverse MCP. 4Schema — I would advise using this carefully. Dataverse MCP is capable of also updating the schema, like creating new tables, fields, etc. If done correctly, with the correct publisher and established naming conventions, this is possible. But I did find myself stuck with incorrect schema creation and a bit of a mess. So, this one is to be used carefully. At times, the schema definition is misunderstood, and you’ve already altered what’s set. 5Skills/Playbooks — Upsert and Delete Skills. This topic on Dataverse Skills deserves a separate blog post in itself. Use Cases by Role To keep things simple, here are some common use cases by role on how Dataverse MCP can be useful: 1Solution Architect — you can use Dataverse MCP to query metadata/schema to help identify what the developers have done, if going through developer documentation is too much to go through. 2Manager — if you want to query some data, you can do this by simply establishing some common vocabulary as context first, and then letting Dataverse MCP query what you need, then process that info retrieved within the chat context to make better sense of what you need. 3Developer — if you want to create a series of tables and a templatized field-set in those, you can simply do so by uploading an Excel file and utilizing Dataverse MCP to create the right fields and schema based on the customizations described. Doing this at scale for multiple customers is painstaking and time-consuming, so utilize Dataverse MCP to get this turned around quickly. 4Even your own data — to identify pitfalls and take measures immediately. Every Monday I need to check where I should pay attention the most and get sticking issues out of the way, and this gives me a good understanding, or a high-level picture, of where I need to pay attention. A weekly check-in: asking Claude, connected via Dataverse MCP, to review time entry compliance over the last 90 days. Business Impact We have enabled Dataverse MCP for all team members to help with their operational efficiencies. Business Impact here is operational efficiency gains — if this saves me an hour a day, it saves me 20 hours a month, and about 240 hours a year, which is a significant gain on a broader time horizon. So, if I multiply this by 15 team members, then we are collectively saving 3,600 hours a year, which can be taken back to focus on growth and client projects more so. FAQs Now, this naturally brings some questions to mind, which I thought to anticipate and answer: 1Is the data being used by Claude? No data is copied over to Claude or its models — only MCP (Model Context Protocol) is used to have a conversation with your existing data, in this case Dataverse. No data is sent anywhere. 2Will users be able to query and modify data belonging to someone else? No — only data which belongs to self is available for any operation. It follows the security architecture of the hosting SaaS application itself, in this case Dynamics 365 CRM / Dataverse. … Continue reading Using Dataverse MCP with Claude to Unlock Business Insights for Senior Leaders

Share Story :

Closing the Loop on Return Logistics: How a U.S.-Based Consumer Appliance Manufacturer Automated FedEx Shipment Tracking in Dynamics 365 Customer Service

Summary Our previous article (Check out my previous blog here – Transforming Return Logistics for a USA Manufacturer: Automating Shipment Processing with Dynamics 365 Customer Service) covered how we integrated Dynamics 365 Customer Service with FedEx to automate the creation of return shipments for a USA-based manufacturer — solving the shipment-creation half of the requirement. But creating a shipment is only the start. Once a package leaves the customer, the business still needs to know what’s happening to it — has FedEx received it, is it still with the customer, or has it been delivered? Previously, agents answered this manually by checking the FedEx site case by case, which didn’t scale. The second phase closes that gap with a scheduled integration between Dynamics 365 Customer Service, Dataverse, Integration, and the FedEx Tracking API. It automatically identifies eligible Cases, pulls the latest FedEx tracking events, determines whether the shipment has entered FedEx possession, and updates the Case accordingly. The result is a closed-loop process: Create Shipment → Capture Tracking Number → Monitor Shipment → Detect FedEx Possession → Update CRM. This article covers how the integration was designed, how tracking events were interpreted, how Integration processes the API response, and the technical considerations involved in building against the FedEx Tracking API. Table of Contents From Shipment Creation to Shipment Visibility The Business Challenge Solution Overview Identifying Cases Requiring Tracking Calling the FedEx Tracking API Understanding FedEx Tracking Events Determining Whether a Shipment Has Been Tendered Updating Dynamics 365 Customer Service Handling Exceptions and Empty Tracking Responses Technical Architecture Designing the Integration Around Business Events Business Impact FedEx Tracking API Limitations and Guardrails Final Thoughts This Blog Explains Why shipment creation alone was not enough to complete the return logistics process. How Dynamics 365 Customer Service was connected to the FedEx Tracking API. How eligible Cases are identified automatically. How tracking events such as Dropped Off, Picked Up, and In FedEx Possession are interpreted. How the solution determines when a shipment should be considered tendered. How the latest tracking information is written back to Dynamics 365. How Integration handles API responses and exceptions. The limitations and throttling considerations of the FedEx Tracking API. From Shipment Creation to Shipment Visibility In the previous implementation article (Check out my previous blog here – Transforming Return Logistics for a USA Manufacturer: Automating Shipment Processing with Dynamics 365 Customer Service), the primary objective was to eliminate the manual process of creating FedEx return shipments. The customer service representative could initiate the shipment directly from the Dynamics 365 Case. The system handled the rest: Collect Case and customer information. Register the shipment with FedEx. Generate the return label. Capture the tracking number. Store the tracking number against the Case. Send the return label to the customer. That created a significant improvement in the shipment creation process. However, there was still a gap. The tracking number was now inside Dynamics 365, but the shipment status was still outside Dynamics 365. This highlighted an important principle in integration design: True integration goes beyond just creating data in an external system—its real power lies in closing the information loop. By including end-to-end shipment tracking, we ensure full visibility, proactive exception management, and a seamless experience from order creation to final delivery. The second phase therefore asked a different question: Once Dynamics 365 creates a shipment, can it also continuously understand what is happening to that shipment? The answer was yes. The Business Challenge The existing process (Before FedEx Intg. Was implemented) required customer service representatives to manually monitor return shipments. A typical workflow looked like this: Open Dynamics 365 Customer Service. Find the Case. Copy the FedEx tracking number. Open the FedEx tracking website. Enter the tracking number. Enter the tracking number. Review the latest shipment event. Review the latest shipment event. Determine whether the package had been handed over to FedEx. Return to Dynamics 365. Update the Case status. Repeat the process for other Cases. This created several operational challenges. 1. Repetitive Manual Work Tracking information had to be checked repeatedly for multiple shipments. 2. Context Switching Agents moved between Dynamics 365 and the FedEx tracking website to complete a single business process. 3. Delayed CRM Updates Even when FedEx had already received a shipment, the corresponding Case could remain unchanged until somebody manually checked it. 4. Human Interpretation FedEx returns multiple tracking events and statuses. Agents had to interpret those events and determine which ones represented meaningful milestones for the organization’s return process. 5. Poor Scalability As the number of return shipments increased, the amount of manual tracking increased with it. The business did not need another screen for agents to monitor. It needed the tracking information to come back to the system where the business process was already being managed: Dynamics 365. Solution Overview I extended the previous FedEx integration by introducing an automated shipment-tracking process. The solution uses: Dynamics 365 Customer Service Dataverse Integration FedEx Tracking API The high-level process is: Dynamics 365 Customer Service | v Active Cases with Tracking Numbers | v FedEx Tracking | v Tracking Response | v Interpret Scan Events | v Determine Shipment Status | v Update Dynamics 365 Case The process runs automatically on a scheduled basis. There is no requirement for a customer service representative to manually visit the FedEx website for every shipment. Functional Integration Approach The functional design was intentionally centered around the existing Case lifecycle. The Case already contained the information required to identify the shipment. The integration therefore did not introduce a separate tracking application or another user interface. Instead, it used the Case itself as the operational source of truth. The process can be summarized as: Scheduled Trigger ↓ Find eligible Cases ↓ Read Tracking Number ↓ Call FedEx Tracking API ↓ Read Tracking Events ↓ Interpret Latest Status ↓ Determine Tendered / Not Tendered ↓ Update Case This approach keeps the integration aligned with the business process rather than creating a separate operational process around the API. Identifying Cases Requiring Tracking … Continue reading Closing the Loop on Return Logistics: How a U.S.-Based Consumer Appliance Manufacturer Automated FedEx Shipment Tracking in Dynamics 365 Customer Service

Share Story :

Turning Lead Chaos into Clarity: How a Massachusetts-Based Manufacturing Business Transformed Its Sales Reporting

Turning Lead Chaos into Clarity: How a Massachusetts-Based Manufacturing Business Transformed Its Sales Reporting Summary Sales teams generate a steady stream of leads across sources like trade shows and referrals, yet most organizations can’t answer a simple question in real time: “How is our pipeline actually trending this month?” We built a single-page Sales Dashboard using Dynamics 365 Customer Service lead data and Power BI, giving revenue teams a live, filterable view of lead volume, process stage, qualification, and source mix, all driven by two global slicers: Account and Date Range. The result: manual weekly lead tracking was replaced with a live view that surfaces channel performance and process bottlenecks the moment they appear. Table of Contents 01 Summary 02 About the Customer 03 The Challenge 04 The Solution 05 Dashboard Overview 06 Lead & Stage Trends 07 Source & Geography 08 Business Impact 09 FAQs 10 Conclusion About the Customer Customer Spotlight A US-Based Manufacturing Business Rebuilding a Century-Old Category Headquartered in Massachusetts, our customer is a US-based manufacturer that set out to fix a problem no one had touched in over a century: cooking appliances still running on decades-old heating technology. After five years developing a proprietary heating alloy and real-time smart algorithms, the team launched the world’s first touchscreen toaster, which has since become a #1-selling smart toaster with national media recognition. As the company scaled, it needed a single, always-current view of sales pipeline health to match its fast-growing customer base. The Challenge Dynamics 365 Customer Service captures every lead reliably. The gap wasn’t data capture. It was turning that raw lead data into a view sales leadership could actually act on. Sales managers frequently found themselves asking: 1Is lead volume growing or flattening month over month? 2Where are leads getting stuck in the sales process? 3How many leads are actually converting to Qualified? 4Which lead source is driving the most volume? 5Can we filter all of this down to a single account instantly? Answering these meant exporting Dataverse views into spreadsheets and manually re-pivoting, a process that was slow, error-prone, and quickly out of date. The Solution To eliminate manual reporting, we designed a centralized Sales Dashboard in Power BI using Dynamics 365 Customer Service Leads as the data source. The report is built as a single interactive canvas covering: Lead Volume Trends Month-by-month tracking of lead creation to spot pipeline generation swings early. Business Process Stage Real-time view of how many leads sit at each stage of the sales process flow. Dynamics 365 Customer Service Integration Primary data source connecting lead records, source, county, and qualification status. Power BI Analytics Layer Global Account and Date slicers, source-mix pie charts, and geographic breakdowns. Dashboard Overview The dashboard gives sales leadership an instant read on pipeline health. It consolidates the key lead metrics into one interactive page: Count of Leads Leads by Month Business Process Stage Qualified Leads Qualified by Month Lead Source Mix Leads by County Account Filter Date Range Filter The dashboard includes interactive filters for Account and Date Range at the top of the page, enabling instant re-analysis across any account or time window without rebuilding a single visual. Lead & Stage Trends Rather than reviewing lead counts only at month-end, management can continuously monitor: Monthly lead creation volume vs. prior months How many leads currently sit in each business process stage Qualified lead volume by month, compared against total leads created These trends quickly surface slowing lead generation, stalled leads sitting too long in the pipeline, or a widening gap between leads created and leads qualified, turning lead tracking into an operational management tool rather than a monthly snapshot. Lead Source & Geographic Breakdown Understanding where leads come from matters as much as how many arrive. The report breaks leads down by Lead Source and County, helping marketing and sales identify: Which channel, trade show or referral, is driving the most volume Whether marketing spend is aligned with actual lead-generating channels Gaps in geographic data capture, such as an unpopulated County field Regional concentration of leads once location data is fully captured Filtering by Account and Date Using the page-level Account and Date slicers, users can instantly narrow the entire dashboard to answer strategic questions such as: How is a specific account’s lead activity trending? How did lead volume compare across a specific quarter? Where should the next trade-show investment go? Business Impact Before After Lead volume tracked manually in spreadsheets Live month-by-month lead trend in Power BI No visibility into where a lead sits in the sales process Business Process Stage visual shows real-time stage distribution Lead source ROI discussed anecdotally Lead Source pie chart quantifies channel contribution instantly Filtering by account meant exporting and re-pivoting data One dropdown filters the entire dashboard to a single account Qualified lead conversion checked only at month-end Continuous lead-to-qualified tracking across the year Frequently Asked Questions 1Does Dynamics 365 Customer Service provide pipeline reporting out of the box? Dynamics 365 Customer Service captures the underlying lead and process-flow data, but organizations typically need a customized Power BI report to combine lead volume, stage, source, and geography into one actionable view. 2Why show Business Process Stage alongside lead volume? Volume alone doesn’t tell you if leads are moving through the pipeline. Pairing stage distribution with monthly volume shows both how many leads are coming in and where they’re getting stuck. 3Who benefits most from this type of report? Sales leadership, marketing teams, and account managers all benefit. Leadership gets portfolio-level pipeline visibility, while account managers can filter straight down to a single account’s lead activity. 4Can this be extended to Opportunities? Yes. The same Account and Date slicer pattern can be reused on an Opportunity-based page to track pipeline value and win rate alongside lead volume. Conclusion Pipeline health is measured by more than how many leads come in. It’s defined by how well they move, where they come from, and whether the data behind them is trustworthy. By connecting Dynamics 365 Customer Service … Continue reading Turning Lead Chaos into Clarity: How a Massachusetts-Based Manufacturing Business Transformed Its Sales Reporting

Share Story :

Dynamic Expense Entry Submission with Receipt Attachments in Power Apps: A Practical Implementation for a Texas-Based Operational Technology Security Organization

Blogger CloudFrontsbloggerEdit Profile Summary Expense management processes in enterprise project environments often require strict documentation controls to ensure financial accuracy and compliance. One common requirement is the mandatory attachment of receipts when submitting expense entries, especially for specific expense categories such as airfare, accommodation, or high-value reimbursements. My blog describes how a project-driven organization streamlined its expense submission workflow using Canvas Apps integrated with Dynamics 365 Project Operations. The solution I had implemented automates the validation and submission process for expense entries while ensuring that receipt files are attached before submission. By combining form validation logic in the Canvas App with backend automation using Power Automate, the organization eliminated the manual process of attaching receipts and creating notes in the system. The result was a seamless, user-friendly expense submission experience that enforces compliance while significantly improving operational efficiency. Table of Contents 1. Customer Scenario 2. Solution Overview 3. Understanding the Expense Data Structure 4. Canvas App Validation Logic 5. Expense Creation and Submission Process 6. Automating Receipt Handling with Power Automate 7. Enforcing Mandatory Receipts for Specific Categories 8. Business Impact 9. Solution Walkthrough 10. Final Thoughts 1. Customer Scenario A Texas based Cyber Security organization managing multiple client engagements relied on Dynamics 365 Project Operations to track project expenses incurred by consultants and field staff. While the system allowed users to create draft expense entries, the process of submitting those expenses required additional manual steps. To submit an expense, users had to: Create the expense entry in draft mode. Upload the supporting receipt manually. Navigate to the expense record. Create an associated Expense Receipt record. Attach the receipt file under Notes (Annotations). Convert the file into the required document format stored in the system. Update the expense status to Submitted. This workflow introduced several challenges: Users frequently forgot to attach receipts. Manual creation of Notes records was error-prone. Finance teams had to follow up for missing documentation. Expense approvals were delayed due to incomplete submissions. Employees found the process unnecessarily complex. The organization needed a simpler, controlled way to ensure receipts were always attached when expenses were submitted, without requiring users to understand the underlying system structure. 2. Solution Overview To address these challenges, a custom expense submission experience was built using Canvas Apps integrated working in conjunction with D365 Project Operations. The solution introduced a dynamic expense entry submission interface where users can: Create expense entries Upload receipt files Submit expenses directly from the app Figure: Canvas App interface enabling dynamic expense entry submission with receipt attachment. Figure: Canvas App interface enabling dynamic expense entry submission with receipt attachment. Behind the scenes, the application automatically: Creates the expense entry in Dataverse Generates the related Expense Receipt record Uploads the receipt file to Notes (Annotations) as a document Updates the expense status to Submitted Figure: A Submitted Expense Entry Record. Figure: The Expense Receipt Record + Receipt PDF Annotation associated with the Expense, without which Submission won’t have been possible. This automation completely overrides the manual procedure of attaching receipts and creating notes, ensuring the process is both compliant and seamless for users. 3. Understanding the Expense Data Structure Within Dynamics 365 Project Operations, expense documentation follows a structured relationship model. The hierarchy looks like this: Expense ↓ Expense Receipt ↓ Notes (Annotation) ↓ Blob/Base64 File Storage of Expense Receipt. Figure: Implementation of the Expense Entry -> Expense Receipt -> Annotation -> Receipt File Workflow. In this structure: The Expense record stores the financial transaction. The Expense Receipt record acts as a container for receipt documentation. The Notes (Annotation) entity stores the actual file. The receipt file is stored as Base64 binary data (blob). While this structure is technically sound, it requires multiple manual steps when performed directly by users. The custom Canvas App abstracts this complexity and handles it automatically. 4. Canvas App Validation Logic To ensure all required data is captured before submission, the Canvas App includes dynamic validation logic. The application checks whether essential fields are populated before allowing the expense to be saved or submitted. These validations include fields such as: Transaction Date Project Expense Category Reimbursable Indicator External Comments Unit Quantity Unit Price If any required field is missing, the user receives an immediate notification explaining what needs to be completed. Example logic used in the application: If( Or( IsBlank(DatePicker2_5.SelectedDate), IsBlank(Project_Combobox_5.Selected), IsBlank(ExpenseCategory_Combobox.Selected), IsBlank(Dropdown1.Selected.Value), IsBlank(External_Input_7.Text), IsBlank(Project_Combobox_6.Selected), IsBlank(NumberInput2.Value), IsBlank(NumberInput2_1.Value) ), Notify(“Required fields are missing.”, NotificationType.Error) ) This validation ensures data completeness before the expense record is created. 5. Expense Creation and Submission Process Once validation passes, the Canvas App uses a Dataverse Patch operation to create or update the expense record. The logic dynamically calculates financial values such as the subtotal based on quantity and unit price. Example logic: Set( varSavedExpense, Patch( Expenses, Defaults(Expenses), { ‘Transaction Date’: DatePicker.SelectedDate, Project: Project_Combobox.Selected, ‘Expense Category’: ExpenseCategory_Combobox.Selected, Quantity: Value(NumberInputQuantity.Value), ‘Unit Price’: Value(NumberInputPrice.Value), Subtotal: Value(NumberInputQuantity.Value) * Value(NumberInputPrice.Value) } ) ); ‘SubmitExpense(CanvasApp)’.Run( varSavedExpense.Expense, First(fileupload.Attachments).Name, First(fileupload.Attachments).Value ); Notify( “Expense submitted successfully.”, NotificationType.Success ) This creates the draft expense entry in the system. 6. Automating Receipt Handling with Power Automate After the expense entry is saved, the Canvas App triggers a Power Automate flow. The flow receives: Expense record ID File name Receipt file content The flow then performs the following steps automatically. Step 1: Create Expense Receipt Record A new Expense Receipt record is created and linked to the expense entry. Step 2: Upload Receipt as Note The receipt file is stored as a Note (Annotation) associated with the expense receipt. This note contains: File Name Document Type Base64 encoded file content MIME type Step 3: Update Expense Status Finally, the expense record status is updated from Draft to Submitted. This ensures the expense becomes available for approval workflows and financial processing. 7. Enforcing Mandatory Receipts for Specific Categories An important requirement D365 PO is ensuring that certain expense categories cannot be submitted without receipts. Examples include: Airline tickets Travel expenses Accommodation High-value reimbursements The Canvas App logic ensures that a receipt file must be attached before submission is triggered. If the … Continue reading Dynamic Expense Entry Submission with Receipt Attachments in Power Apps: A Practical Implementation for a Texas-Based Operational Technology Security Organization

Share Story :

Building a Unified My Allocations Dashboard in Microsoft Dynamics 365 Project Operations for an Industrial Cybersecurity Company in Texas

Summary 1. Built a unified “My Allocations” dashboard in Microsoft Dynamics 365 Project Operations for a project-based professional services organization. 2. Consolidated resource assignments, weekly hour breakdowns, and time entry management into a single custom view. 3. Eliminated the need to navigate between separate Project, Time Entry, and Calendar views for day-to-day tracking. 4. Enabled Practice Managers to switch between team members and instantly review billability without leaving the page. 5. Added inline time entry creation, submission, recall, and deletion all from one interface. 6. Introduced a consolidated calendar view showing all time entries across projects in a single month-at-a-glance layout. 7. Reduced clicks and screen-switching for both individual contributors and managers tracking team billability. Table of Contents Introduction The Business Problem The Solution One Dashboard for Allocations and Time Entries Real-Time Hours Consumption Tracking Inline Time Entry Management The Consolidated Calendar View The Practice Manager View, Billability at a Glance Security and Role-Based Access Business Impact Frequently Asked Questions Conclusion 1. Introduction For teams running project-based delivery on Microsoft Dynamics 365 Project Operations, a simple question, “How many hours are left on this task, and did I log time for it today?”, often takes far more clicks than it should. Resource assignments live in one view, time entries live in another, and consumption summaries require yet another. For project managers tracking billability across an entire team, the problem multiplies with every resource. To solve this, a custom “My Allocations” dashboard was built directly into Dynamics 365 as a web resource, bringing project assignments, weekly hour breakdowns, hours consumption, and time entry management into a single screen. No tab switching, no re-navigation; just one view that adapts to whether you’re an individual contributor or a manager overseeing a team. 2. The Business Problem In a typical Dynamics 365 Project Operations setup, resource assignments, time entries, and consumption reporting exist as separate entities, each with its own view or form. A consultant checking their weekly workload has to open one screen for assignments, another to log time, and a third to check whether they’re over or under budget on a task. For Practice Managers, this friction compounds. Reviewing billability across a team means repeating this multi-screen process for every resource, switching context, re-filtering views, and manually piecing together a picture of who’s on track and who isn’t. The Objective: Build a single, role-aware dashboard where any user can see their assignments, track hours consumed versus planned, and manage time entries; managers can do the same for any resource on the team, without leaving the page. 3. The Solution The “My Allocations” dashboard was designed around one core idea: everything a resource or manager needs for day-to-day tracking should live on one screen. Instead of navigating between the Project entity, the Time Entry list, and separate consumption reports, users get a consolidated view that surfaces assignments, hours, and entry management side by side. The sections below walk through each part of the dashboard and explain how it removes a specific step from the old multi-screen workflow. Figure 1: My Allocations dashboard overview showing summary cards, toolbar, and project hierarchy. 3.1 One Dashboard for Allocations and Time Entries At the top of the dashboard, summary cards provide an instant overview of active projects, active weeks, allocated hours, and assigned tasks. Instead of navigating through multiple Project Operations entities, users immediately understand their workload from a single screen. Each project expands into its assigned weeks, while every week further expands into a detailed day-by-day breakdown of allocated work. This hierarchical layout lets users drill down naturally, from the project level to weekly allocations and finally to individual daily assignments, without leaving the dashboard. By consolidating this information into one interface, the dashboard eliminates repetitive navigation and significantly reduces the time required to understand upcoming work. Figure 2: Project hierarchy showing projects, weekly allocations, and day-level task breakdown. 3.2 Real-Time Hours Consumption Tracking A dedicated Hours Consumption panel gives resources and managers real-time visibility into task progress. For every task, the dashboard displays planned hours, approved hours, submitted hours awaiting approval, remaining hours, and overall consumption using an intuitive progress indicator. Color-coded progress bars immediately communicate project health. Blue indicates healthy consumption, orange highlights tasks approaching their allocated budget, and red clearly identifies tasks that have exceeded planned effort. This removes the need to generate reports or manually compare planned and actual effort across multiple Project Operations views. Figure 3: Hours Consumption panel displaying planned, consumed, submitted, and remaining hours with visual progress indicators. 3.3 Inline Time Entry Management Every task includes built-in actions that allow users to create new time entries or review existing ones without leaving the dashboard. Instead of opening the standard Time Entry entity, users can complete the entire process from the same interface. The entry form captures all required information including work date, duration, role, and external comments. Users may either save entries as drafts or immediately submit them for approval depending on their workflow. Existing entries can also be reviewed, recalled, resubmitted, or deleted directly from the dashboard, significantly reducing navigation while simplifying daily time tracking. Figure 4: Inline Time Entry form used for creating and submitting project hours. Figure 5: Task calendar displaying existing time entries grouped by day and submission status. 3.4 The Consolidated Calendar View Beyond task-specific calendars, the dashboard provides a consolidated monthly calendar that displays every time entry recorded across all assigned projects. Users no longer need to inspect individual tasks separately to understand their monthly workload. Each calendar day displays the total hours logged together with the number of recorded entries. Color indicators provide an instant visual summary of each day’s dominant submission status. Selecting a day immediately displays every recorded time entry beneath the calendar, making monthly reviews significantly faster for both consultants and managers. Figure 6: Consolidated monthly calendar showing all time entries across projects for the selected resource. 3.5 The Practice Manager View – Billability at a Glance For Practice Managers, the dashboard extends beyond personal allocations by introducing … Continue reading Building a Unified My Allocations Dashboard in Microsoft Dynamics 365 Project Operations for an Industrial Cybersecurity Company in Texas

Share Story :

How an Industrial Cybersecurity Company in Texas Improved Field Time and Expense Tracking with Microsoft Power Apps and Dynamics 365 Project Operations

Summary Designed and deployed a mobile-first Power Apps Canvas App for a Texas-based industrial cybersecurity firm specializing in operational technology (OT) security for oil and gas infrastructure. Unified time tracking, expense management, material consumption logging, and approvals into a single experience integrated with Dynamics 365 Project Operations. Eliminated fragmented desktop-based workflows that delayed project reporting, approvals, and billing. Automated expense receipt processing through Power Automate, improving compliance and reducing manual effort. Implemented project-scoped approval routing to ensure submissions were reviewed only by authorized stakeholders. Enabled real-time project visibility through structured Dataverse-driven workflows and lifecycle tracking. Provided mobile approvals and submission monitoring, dramatically reducing turnaround times. Improved data accuracy, audit readiness, and billing efficiency across field operations. Table of Contents Introduction Requirement & Business Scenario Solution Implementation Implementation Gallery Outcome FAQs Conclusion 1. Introduction Field-driven organizations live and die by the accuracy and speed of their project data. For a company securing critical infrastructure like oil rigs, every hour an engineer spends fighting with a clunky time-entry screen is an hour not spent on the job site — and every delayed expense submission is a delay in client billing and financial reporting. This is the story of how a Texas-based cybersecurity firm moved away from a fragmented, desktop-oriented workflow inside Dynamics 365 Project Operations and adopted a unified, mobile-first Canvas App that brought time tracking, expense submission, and material logging into one place, with built-in compliance controls and project-specific approval routing. The Goal: Build a unified mobile-first experience that allows field engineers to submit time, expenses, and materials from anywhere while ensuring compliance, controlled approvals, and real-time project visibility. 2. Requirement & Business Scenario The firm manages multiple concurrent field engagements using Dynamics 365 Project Operations as its system of record. Consultants and field engineers were expected to log three categories of activity against active projects: Time entries for hours worked Expense entries covering travel, accommodation, airfare, and related costs Material usage logs for equipment, parts, and consumables The core issue was that the underlying system was built for desktop use, not for engineers working on-site at remote rig locations. This created several compounding problems: Field staff had no efficient way to submit entries from a mobile device, so submissions piled up until they were back at a desk. Time, expense, and material tracking lived in separate workflows, forcing users to context-switch between screens for what should have been a single daily task. Expense compliance was inconsistent — receipts were sometimes attached, sometimes forgotten, and the process for linking a receipt to an expense record involved several manual, error-prone steps behind the scenes. Approvals had no project-level boundaries, making it hard to guarantee that only the right project stakeholders could review and approve specific submissions. Project managers lacked real-time visibility into resource usage, which meant billing and client reporting cycles were consistently delayed. Left unaddressed, these gaps were directly affecting data accuracy, audit readiness, and the speed at which the business could invoice clients. 3. Solution CloudFronts designed a unified mobile experience using Power Apps Canvas Apps layered on top of Dynamics 365 Project Operations and Dataverse, built around one guiding principle: One App. All Submissions. Controlled Approvals. Real-Time Visibility. For field users, the app became the single place to submit time entries on a daily or weekly basis, create expense entries with automatic receipt handling, log material consumption against the correct project, and track the live status of every submission. For project approvers, the same app surfaced only the entries tied to projects they were actually responsible for, let them approve or reject submissions directly from their phone, and preserved a clean, audit-ready trail for every decision. Day Mode and Week Mode Users could switch between a detailed single-day entry view, useful for precise logging and corrections, and a bulk weekly view that sped up repetitive data entry — letting each person work the way that suited their role. Calendar-Based Swipe Navigation A Dynamics-style calendar with swipe gestures let users move quickly across days and weeks, reviewing or correcting historical entries without friction. Stage-Aware Interface Every record followed the same lifecycle — Submitted, Pending, Approved, Rejected, Recall Requested, Recall Approved, Recall Rejected — and the UI adapted to whatever stage a record was in. Action buttons such as Submit, Approve, Reject, and Recall only appeared when they were actually valid, significantly reducing user confusion and accidental actions. Conditional Receipt Enforcement Rather than requiring a receipt for every expense category, the app applied compliance rules selectively. Receipts were mandatory for airfare and OT hardware purchases, while remaining optional for lower-risk categories such as meals and local transportation. 4. Implementation The technical implementation centered on a unified Dataverse data model and a set of automations that removed manual work from both the field user and the back office. Unified Data Model Time, expense, and material entries were all structured in Dataverse and linked back to the relevant project, resource, approval record, and — for expenses — supporting documentation. Every submission created a record with a clearly defined lifecycle stage, ensuring all three entry types behaved consistently even though their underlying business logic differed. Validation Before Submission The Canvas App enforced field-level validation before allowing a record to be saved, checking that essentials such as transaction date, project, category, quantity, and cost information were populated. If( Or( IsBlank(DatePicker.SelectedDate), IsBlank(ProjectCombobox.Selected), IsBlank(CategoryCombobox.Selected), IsBlank(QuantityInput.Value), IsBlank(PriceInput.Value) ), Notify(“Required fields are missing.”, NotificationType.Error) ) Patch-Based Record Creation Once validation passed, the application used Dataverse Patch operations to create records and calculate derived values such as expense subtotals dynamically based on quantity and unit price. Automated Receipt Handling For expense submissions, the previously manual chain of creating an Expense Receipt record, attaching a file as a Note, converting it to the correct document format, and updating the status to Submitted was fully automated. The Canvas App passed the expense ID, file name, and file content to a Power Automate flow, which created the Expense Receipt record, stored the file as a Note (Annotation) with the correct MIME type, … Continue reading How an Industrial Cybersecurity Company in Texas Improved Field Time and Expense Tracking with Microsoft Power Apps and Dynamics 365 Project Operations

Share Story :

From Quote to Signed Contract in Minutes: Automating Adobe Acrobat Sign Integration for an Australia based Linen and Garments company

Summary Automated end-to-end contract generation, digital signing, and document filing for an Australia-based commercial linen and garments company using Dynamics 365 Sales, Microsoft Power Automate, and Adobe Acrobat Sign. Eliminated manual contract preparation by generating personalized Word contracts directly from accepted Dynamics 365 Quotes using a reusable Word template. Leveraged Adobe Acrobat Sign text tags embedded within the Word template to automatically create signature, date, and fillable fields without manual field placement or custom development. Automated agreement creation, customer notifications, and real-time signing status tracking through Adobe Acrobat Sign, providing complete visibility throughout the contract lifecycle. Implemented a dedicated child Power Automate flow that automatically identified completed agreements from Adobe Sign emails and archived signed contracts into the correct SharePoint document library. Reduced contract turnaround from a manual, multi-step process to a one-click, fully automated workflow while ensuring audit-ready signed documents and eliminating manual document handling. Table of Contents Introduction Business Challenge Procedure End-to-End Flow Why This Approach Works Conclusion Introduction For any business that runs on contracts — service agreements, quotes-turned-orders, vendor sign-offs — the gap between "quote accepted" and "contract signed" is often where deals slow down. Manual document preparation, back-and-forth emails, chasing signatures, and manually filing signed copies all eat into time that should be spent serving the customer. For an Australia based Linen and Garments, a commercial textile services company, CloudFronts built an end-to-end automation that takes a sales quote all the way through to a fully signed, filed contract — with zero manual document handling in between. The solution combines a Word contract template, Microsoft Power Automate, and Adobe Acrobat Sign, orchestrated across two connected flows: a parent flow that creates and sends the contract, and a child flow that listens for the signed response and files it automatically. This post walks through how that solution works, including the one detail that makes the whole thing possible without any custom code: Adobe Sign text tags embedded directly inside the Word template. The Business Challenge Once a quote is accepted, the team needed the resulting contract to: Be generated automatically from the quote and its line items — no manual copy-pasting of customer details into a Word document. Be sent for signature immediately, with the right fields ready for the customer to fill in and sign — bank details, account information, and a signature block, all in the right place. Notify both the customer and the internal Adobe Sign account holder the moment it’s out for signing. Automatically file the final, fully signed PDF back into the correct SharePoint location tied to that quote — without anyone needing to remember to save it. Doing this by hand across multiple people and mailboxes was slow and error-prone. The goal was to make the entire journey — quote to signed, filed contract — happen in minutes, with no manual document work at any step. Procedure Step 1: Auto-Generating the Contract from the Quote The process starts with a single action: Create Contract. This triggers the parent Power Automate flow, which: Composes the Quote ID from the selected record. Retrieves the document location tied to that quote (the Word contract template). Pulls the Quote, the associated Customer, and the Contact record for the signer. Uses these to populate a Word template — the standard “Populate a Word Template” merge step — filling in customer name, contract terms, line items, and contact details automatically. This is the same idea used in most contract-automation flows: merge structured CRM/quote data into a pre-built Word template, so the resulting document is fully personalized without a single manual edit. Step 2: Making the Contract Signable — Text Tags in the Template This is the step that makes the entire signing experience work, and it's worth explaining properly, because it's easy to get wrong. A merged Word document, by itself, is just static text. For Adobe Acrobat Sign to know where a customer needs to sign, initial, or fill something in, the template needs special markers called text tags — plain text strings embedded directly into the Word template before it's ever merged. When the finished document is sent to Adobe Sign, Adobe automatically scans it, finds these tags, and converts them into live, interactive fields for the signer. For the contract, the template includes tags like: {{Customer_Sign_es_:signer1:signature}} {{Date_Of_Signature_es_:signer1:date}} {{Financial_Institution_es_:signer1}} {{BSB_Number_es_:signer1}} {{Account_Name_es_:signer1}} {{Account_Number_es_:signer1}} Each tag follows Adobe's syntax: a field name, the _es_ identifier, the signer role (signer1), and an optional field type (signature, date, or left blank for a plain fillable text box). Because these tags are just text, they can sit anywhere in the Word template exactly where the business wants the field to appear — no separate field-placement tool required. Getting this right matters more than it looks. A few lessons learned building this out: The entire tag must stay on a single line and in a common font — if it wraps across a line break during merge or PDF conversion, Adobe won’t recognize it, and the raw tag text stays visible instead of becoming a field. Field type directives are limited to what Adobe actually supports (signature, date, initials, etc.) — leaving the type off entirely creates a plain fillable text field, which is what was used for the banking detail fields here. Converting the merged Word document to PDF before sending it to Adobe Sign tends to produce more consistent tag detection than sending the raw .docx. Because the tags are static text baked into the template, no extra configuration is needed in Power Automate to "activate" detection — it happens automatically the moment the document is sent to Adobe Sign for signature. Step 3: Sending the Contract for Signature Once the Word template is fully populated, the flow hands it off to Adobe Acrobat Sign using the Create an agreement from a file content and send for signature action — passing the merged file straight through, along with the signer's name, email, and role. At this point, two things happen simultaneously: a) The customer's Contact person receives … Continue reading From Quote to Signed Contract in Minutes: Automating Adobe Acrobat Sign Integration for an Australia based Linen and Garments company

Share Story :

How a Netherlands-Based Nonprofit Achieved Global Scalability with Microsoft Dynamics 365 CRM and Power Platform

Summary A Netherlands-based non-profit sustainability certification organisation reduced manual certification configuration time from hours to mere seconds using Microsoft Power Apps, implemented by CloudFronts. CloudFronts configured a multi-level assessment framework — Scope, Category, Requirement, Criteria — to automate 100% of assessment generation based on user-selected certification types and versions. The solution integrated Microsoft Power Apps with Azure Blob Storage to provide a secure, centralised repository for thousands of pieces of certification evidence, linked directly to each requirement record. Microsoft Dynamics 365 Customer Service was configured to streamline global applicant inquiries with automated case routing across Marketing, Finance, and Info queues. Business impact: eliminated manual configuration errors, provided real-time progress visibility for global applicants, and established a scalable digital foundation for global circular economy standards. Table of Contents 01 Summary 02 Introduction 03 The Business Problem 04 The Solution 05 Implementation 06 Business Impact 07 FAQs 08 Conclusion Introduction In a world where manufacturers and brands are under increasing pressure to prove the sustainability credentials of their products, the rigour and speed of certification processes can directly determine an organisation’s ability to scale its global mission. For certification bodies operating across multiple geographies, managing assessments, evidence, and applicant communication through fragmented manual processes is a bottleneck that no amount of headcount can solve. For one Netherlands-based non-profit at the forefront of the global circular economy movement, this bottleneck was real and growing. Their certification programme, built on a rigorous multi-level standard covering material safety, circularity, and responsible production, was being administered through massive Excel files, disconnected email threads, and manual document searches. This blog documents how CloudFronts partnered with this organisation to replace those fragmented processes with a unified, automated certification platform built on Microsoft Power Apps, Azure Blob Storage, Dynamics 365 Customer Service, and Power Automate, reducing certification setup time from hours to under thirty seconds. The Business Problem The organisation operates as the leading global authority on circular economy certification, serving manufacturers and brands worldwide. Their certification programme evaluates products across categories like Material Health and Circularity, across multiple standard versions — v3.1 and v4.1 — each with its own hierarchy of scopes, categories, requirements, and criteria. Before partnering with CloudFronts, this complexity was managed almost entirely by hand: Each new certification application required assessors to manually configure assessment structures from sprawling Excel files with hundreds of rows, a process that took two to four hours per applicant. Supporting evidence such as product test reports, material declarations, and third-party certificates was stored without a structured system, making retrieval slow and validation unreliable. Neither applicants nor internal assessors had real-time visibility into application status or outstanding requirements, creating persistent communication delays. Managing different certification versions across different scopes manually made scaling the programme globally nearly impossible without proportionally growing the team. The organisation needed a platform that could encode their complex certification logic, automate the heavy lifting of assessment generation, and give every stakeholder a single, reliable view of the certification pipeline. The Solution CloudFronts implemented a comprehensive digital certification ecosystem anchored by a custom Microsoft Power Apps application — the Certification Manager. The platform automates the core logic of the certification standard end-to-end, from application intake through assessment generation, evidence management, and case resolution. Key Components Microsoft Power Apps Core Certification Manager application handling applications, multi-level assessments, and the applicant-facing UI. Azure Blob Storage Secure, centralised repository for all certification evidence, linked directly to individual requirement records. Dynamics 365 Customer Service Configured to streamline global applicant inquiries with automated case routing across Marketing, Finance, and Info queues. Microsoft Power Automate Automation layer handling document upload workflows and notification triggers throughout the certification lifecycle. How It Works, At a Glance The centrepiece of the solution is a version-driven automation engine. When an assessor creates a new certification application and selects the standard version and scope, the backend logic automatically generates the complete assessment structure — all categories, requirements, and criteria — without any manual configuration. What previously took hours now takes under thirty seconds. A custom HTML-based interface within Power Apps provides visual progress indicators, allowing assessors to track completion rates across requirements at a glance. All supporting evidence is stored in Azure Blob Storage and linked directly to the specific requirement record it supports, creating a fully auditable, ISO 17065-compliant evidence trail. Implementation 1 Step 1 Certification Scheme Definition and Version Logic The foundation of the platform is the Certification Scheme Definition module. CloudFronts built a backend logic engine that stores the full structure of each certification version including all scopes, categories, requirements, and criteria as configuration data rather than hardcoded templates. When a user selects a version and scope combination, this engine automatically pulls the correct downstream structure and generates it on the application record. Updates to global standards can be deployed instantly by updating the configuration, with no changes to the application logic required. The four-level assessment hierarchy: Scope, Category, Requirement, Criteria is the structural backbone of the entire certification standard, now encoded directly into the platform. 2 Step 2 Automated Assessment Generation Once the version and scope are selected on a new application, the platform’s automation engine generates the full assessment structure in under thirty seconds, replacing a manual Excel-driven process that previously took two to four hours per applicant. The generated assessment is displayed through a custom HTML interface inside Power Apps, with visual progress indicators showing completion rates at the category and requirement level. Assessors can immediately see which requirements are outstanding, which have linked evidence, and which are ready for review. 3 Step 3 Evidence Management via Azure Blob Storage A core architectural decision was to decouple evidence storage from the Power Platform’s native Dataverse storage. CloudFronts integrated Azure Blob Storage as the document repository, with each uploaded file linked directly to the specific requirement record it supports within Power Apps. This approach delivers high-performance scalability for large evidence files while significantly reducing long-term storage costs compared to storing files natively in Dataverse. Power Automate flows handle upload automation and trigger notifications … Continue reading How a Netherlands-Based Nonprofit Achieved Global Scalability with Microsoft Dynamics 365 CRM and Power Platform

Share Story :

SEARCH BLOGS:

FOLLOW CLOUDFRONTS BLOG :


Categories

Secured By miniOrange