Category Archives: Dynamics 365
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 :
Automating Attribute creation in D365 Project Operations, Using Dataverse OData Metadata APIs for an India-Based Airline Operator’s Internal Project Operations–Finance & Operations Integration
Summary Manually creating custom fields in Dynamics 365 Project Operations across multiple environments is time-consuming, error-prone, and blocks automation. This challenge can be addressed by using Dataverse Metadata OData APIs to programmatically create, update, and publish custom attributes during deployment. The process involves authenticating with Azure AD, calling Metadata API endpoints to create attributes, and publishing the changes with the PublishXml action, all through a fully automated approach. As a result, organizations achieve zero manual intervention, environment consistency, integrations, reduced human error, and a reusable framework that can be applied across all field types. Table of Contents Introduction Business Challenge Why OData Metadata APIs? Implementation Procedure End-to-End Working Why This Approach Works Real-World Use Cases Conclusion Introduction When integrating external business applications with Microsoft Dynamics 365 Project Operations, it is common to discover that every customer requires additional fields to store information originating from ERP systems, manufacturing platforms, pricing engines, or product lifecycle management systems. For one of our internal projects & Prospect PoC implementing product-centric integrations, we needed a way to provision these custom fields automatically during deployment. Traditionally, creating new columns involves opening the Power Apps Maker Portal, adding fields manually, publishing the table, exporting a solution, and repeating the same process across multiple environments. While this approach works for occasional changes, it quickly becomes a bottleneck for automated deployments and CI/CD pipelines. The Solution: CloudFronts implemented a fully automated approach using the Dataverse Metadata OData APIs, enabling integration deployments to create and publish new Project Operations attributes programmatically. Business Challenge The customer’s integration platform exchanged large volumes of product and financial information with Dynamics 365 Project Operations. Each deployment required several custom attributes such as: Product identifiers ERP reference numbers Financial synchronization IDs External integration keys Processing status fields Creating these fields manually across Development, Test, UAT, and Production introduced several challenges: Manual configuration effort (time-intensive) Human errors (typos, misconfigurations) Environment inconsistencies (field variations across environments) Longer deployment windows Difficult CI/CD automation The Objective: Allow the deployment process itself to provision any missing attributes before importing data, eliminating manual touchpoints entirely. Why OData Metadata APIs? Most developers use the Dataverse Web API for CRUD operations on business records. However, Dataverse also exposes Metadata APIs, allowing developers to programmatically manage the schema itself—including tables, columns, relationships, and option sets. Microsoft documents creating attribute metadata by posting to the Attributes navigation property of an entity definition. This means integrations can: Create new columns dynamically Update existing metadata Publish customizations instantly Eliminate manual portal work Scale across multiple environments consistently Unlike traditional manual solutions, the Metadata API approach is fully programmable, auditable, and repeatable. Implementation Procedure Step 1 – Authenticate with Dataverse The integration first authenticates against Azure Active Directory using an application registration and retrieves an OAuth Bearer Token. That token is then supplied with every Metadata API request. Authentication Flow: Register application in Azure AD Configure permissions for Dataverse access Obtain OAuth 2.0 Bearer Token Include token in Authorization header for all API calls Step 2 – Creating a Custom Attribute The Dataverse Metadata API exposes the following endpoint for creating new attributes: POST /api/data/v9.2/EntityDefinitions(LogicalName=’msdyn_contractlineinvoiceschedule’)/Attributes Instead of creating business records, this endpoint creates metadata at the schema level. For this implementation, we created a new string attribute with the following properties: Schema Name: int_fnoid Display Name: FNO ID Data Type: String Maximum Length: 100 The request body uses the Microsoft.Dynamics.CRM.StringAttributeMetadata type together with standard metadata properties such as SchemaName, DisplayName, RequiredLevel, and MaxLength. Supported Metadata Types: Microsoft supports multiple metadata types through the same endpoint including String, Decimal, Boolean, Picklist, DateTime, Lookup, Currency, and more. Step 3 – Publishing the Metadata Creating an attribute does not immediately make it available. Like changes made through the Power Apps Maker Portal, metadata created through the Web API must also be published. This is accomplished using the PublishXml action. POST /api/data/v9.2/PublishXml The request specifies the entity to publish. After publishing completes successfully, the new attribute immediately becomes available throughout Dynamics 365. End-to-End Working The complete deployment process follows these steps: Integration authenticates with Azure AD. Dataverse access token is generated. Metadata API checks whether the required attribute exists. Missing attributes are created automatically. PublishXml is executed. New attributes become available. Product synchronization begins. External systems start populating the new fields immediately. Integration Points: This Attribute creation setup can be utilized across Logic Apps, Plugins, Azure Functions, and other Custom Workflows. Why This Approach Works ✓ Fully Automated Deployments No manual intervention is required when new integration fields are introduced. ✓ Environment Consistency Development, Test, UAT, and Production remain synchronized because every environment provisions the same metadata through code. ✓ CI/CD Friendly Metadata creation can be incorporated directly into Azure DevOps or GitHub deployment pipelines. ✓ Reusable Framework The same framework can create String, Decimal, Currency, Lookup, Date, Option Sets, and Boolean fields. ✓ Reduced Human Error Eliminates mistakes caused by manual customization and inconsistent naming conventions. ✓ Prevented Duplication Eliminates duplication of records, preventing system garbage in the database. Real-World Use Cases Use Case 1: PO-FO Integration (Project Operations to Finance Operations) For enterprises running integrated Project Operations and Finance Operations modules, this approach ensures that: ERP reference numbers sync automatically across all linked tables Financial synchronization IDs are created before data import External integration keys propagate consistently Processing status tracking fields exist in all dependent entities No manual re-entry of attribute definitions across environments Impact: Reduces deployment time from hours to minutes, eliminates sync mismatches between PO and FO modules, and enables real-time data reconciliation. Use Case 2: Airline Operations (India-Based Prospect) For a prospect airline operations company deploying Dynamics 365 Project Operations in India, automated field creation enables: Aircraft Maintenance Tracking: Automatically create fields for maintenance schedule IDs, component serial numbers, and service interval tracking Crew Scheduling Attributes: Provision rest hour calculations, duty time limits, and regulatory compliance fields Compliance & Audit Fields: Add DGCA (Directorate General of Civil Aviation) compliance check fields and audit trail columns Multi-Environment Consistency: Ensure DEV, TEST, UAT, and PROD have identical schema … Continue reading Automating Attribute creation in D365 Project Operations, Using Dataverse OData Metadata APIs for an India-Based Airline Operator’s Internal Project Operations–Finance & Operations Integration
Share Story :
From CRM Silos to a Board-Ready Brief: An AI-Powered Account Intelligence Report Inside Dynamics 365 Sales
Insights & Field Notes Summary Account data in CRM is rarely in one place. Revenue, pipeline, quotes, and years of meeting notes live across many separate records. We built a one-click Account Intelligence Report that runs inside Dynamics 365 and assembles the full account picture on screen in seconds. A second click runs an AI analyst over every appointment note, producing a plain-language engagement history, current status, open commitments on both sides, and talking points for the next meeting. The complete report, facts plus AI insights, exports as a branded, editable Microsoft Word document with a single click. It runs entirely within the signed-in user’s own Dynamics session. No new servers, no third-party libraries, and it inherits the user’s existing data permissions by design. Table of Contents The 40-Minute Problem One Button, Total Account Intelligence What the Report Actually Contains The AI Analyst: Years of Notes in One Read From Screen to Boardroom: One-Click Word Export Under the Hood: How It Works (and Why It’s Safe) Business Impact FAQs 01The 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. 02One Button, Total Account Intelligence 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. 03What 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. 04The 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 … Continue reading From CRM Silos to a Board-Ready Brief: An AI-Powered Account Intelligence Report Inside Dynamics 365 Sales
Share Story :
How a U.S.-Based Consumer Appliance Manufacturer Stopped Chasing RMA (Return Merchandise Authorization) Emails with a Single Automated Workflow
Summary A consumer appliance manufacturer was receiving warranty claims through its customer mobile app, but the replacement process still required several manual checks and handoffs. We connected the mobile warranty claim process, Dynamics 365 Customer Service, and Business Central so the claim, RMA decision, replacement order, and case history remain linked throughout the process. Table of Contents 01 Summary 02 About the Customer 03 Business Challenge 04 Solution 05 How the RMA Process Works 06 Business Impact 07 Conclusion 08 FAQs About the Customer Our customer is a consumer appliance manufacturer that sells cooking products and supports customers after purchase. When a customer faces a product issue, the service team reviews the warranty claim and decides whether a replacement or exchange is required. The company already had customer, product, and warranty information in its systems. The main challenge was moving that information from the initial claim to the replacement order without relying on repeated emails or manual data entry. Business Challenge Customers submit warranty claims through a mobile app. These claims contain important details about the customer, registered product, and reported issue. Earlier, the service team still had to review information across different records and coordinate the replacement order separately. This created a few common problems: Agents had to check customer, product registration, warranty, duplicate claim, and fraud information manually. Replacement details could be shared through emails before the order was created. The same product and shipping information could be entered more than once. The Business Central Sales Order number was not always easy to trace from the original Case. Customer Service had to spend extra time checking whether the replacement order had been created. The goal was simple: keep the warranty claim, service review, RMA details, and replacement order connected from beginning to end. Solution We connected the customer warranty journey across the mobile app, Dynamics 365 Customer Service, and Microsoft Dynamics 365 Business Central. When a customer submits a web warranty claim through the mobile app, the integration sends the claim and product details to Dynamics 365. A Case is created for the Customer Service team, giving the agent one place to review the request. During the Identification and Research stage, the agent checks the customer, product registration, warranty, duplicate claim, and potential fraud information. If a replacement or exchange is required, the agent sets RMA to Yes and records the warehouse, warranty type, shipment method, location, and products to be exchanged or added. Sample Dynamics 365 Case used to review the warranty claim and capture the RMA details. Once the required information is available, the related Sales Order is created in Business Central. The Business Central Sales Order ID is then stored back on the Dynamics 365 Case. This keeps the service request and replacement order connected, so the agent can trace the order without searching through email threads. How the RMA Process Works The connected warranty claim and RMA process from mobile submission to case closure. Step Stage What Happens 1 Warranty Claim The customer submits a web warranty claim through the mobile app. 2 Warranty Claim Integration The integration sends the customer, claim, and product information to Dynamics 365. 3 Case Creation A Dynamics 365 Case is created for the Customer Service team. 4 Identification and Research The agent checks the product registration, warranty, duplicate claim, and potential fraud information. 5 RMA Details The agent sets RMA to Yes and records the warehouse, warranty type, shipment method, location, and replacement products. 6 Business Central Order The related Sales Order is created in Business Central for replacement processing. 7 Update and Resolve The Sales Order ID is saved on the Case, and the agent resolves the Case after the required work is completed. Business Impact The connected process gives Customer Service a clearer and more consistent way to manage replacement requests. The main improvements include: Less repeated data entry: Claim and product information received through the mobile app integration is available in Dynamics 365 for the service review. Better traceability: The Business Central Sales Order ID remains linked to the original Case. Clearer agent process: Important RMA information is captured in defined fields instead of being kept only in emails. Fewer follow-ups: Agents can check the Case for the RMA and order details instead of asking another team for the order number. More consistent replacements: Warehouse, shipment, warranty, location, and product details are recorded before the Sales Order is created. Complete case history: The claim review and replacement information stay connected for future reference. Conclusion RMA automation does not need to replace the service agent’s decision. It should remove repeated entry and make the next step clear. By connecting the mobile warranty claim process, Dynamics 365 Customer Service, and Business Central, this consumer appliance manufacturer created one traceable path from a customer’s warranty claim to the related replacement order. Customer Service can work from the Case, the order can be traced through its Business Central Sales Order ID, and the complete history remains available when the Case is resolved. Frequently Asked Questions 1. What is an RMA? RMA stands for Return Merchandise Authorization. It records that a product return, replacement, or exchange has been reviewed and approved for processing. 2. How does the warranty claim enter Dynamics 365? The customer submits a web warranty claim through the mobile app. The integration sends the claim and product information to Dynamics 365, where a Case is created for Customer Service. 3. Does the automation approve every replacement automatically? No. The Customer Service agent still reviews the product registration, warranty, duplicate claim, and potential fraud information before confirming the RMA. 4. What information is captured for an approved RMA? The Case can include the warehouse, warranty type, shipment method, location, replacement products, and the related Business Central Sales Order ID. 5. Why is the Business Central Sales Order ID stored in Dynamics 365? It gives Customer Service a direct reference to the replacement order. This makes the order easier to trace from the original customer Case. Looking to … Continue reading How a U.S.-Based Consumer Appliance Manufacturer Stopped Chasing RMA (Return Merchandise Authorization) Emails with a Single Automated Workflow
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 a Leading North American Commercial Vehicle Manufacturer Optimized Sales Order Posting Using Trace Parser
How to Use Trace Parser in Microsoft Dynamics 365 Finance & Operations Article · Cloudfronts Summary Trace Parser is a Microsoft diagnostic tool that analyzes execution traces captured from Dynamics 365 Finance & Operations (D365 F&O) to help troubleshoot performance issues without traditional debugging. It records detailed information on X++ method execution, SQL queries, call stacks, execution time, user sessions, database interactions, and RPC calls. Traces are captured directly from the D365 F&O application UI, saved as .aet files, and then opened and analyzed in the Trace Parser desktop application. The tool’s Sessions, Call Tree, SQL Statements, and Timeline views make it possible to pinpoint slow forms, long-running SQL queries, and inefficient X++ code. A real-world example shows Sales Order posting time reduced from 40 seconds to 8 seconds after identifying and fixing a looped validation method using Trace Parser. Following best practices — short, targeted traces and before/after comparisons — makes analysis faster and results more reliable. Table of Contents 01 Summary 02 Introduction 03 What is Trace Parser? 04 Why Use Trace Parser? 05 When Should You Use Trace Parser? 06 Prerequisites 07 Capturing and Opening a Trace 08 Understanding the Trace Parser Interface 09 Analyzing Performance Issues 10 Common Performance Problems 11 Best Practices, Limitations & Tips 12 Real-World Example 13 Conclusion Introduction Performance issues and unexpected system behavior can be challenging to troubleshoot in Microsoft Dynamics 365 Finance & Operations (D365 F&O). While debugging X++ code is useful during development, it is often not possible in Sandbox or Production environments. This is where Trace Parser becomes an invaluable diagnostic tool. Trace Parser captures detailed execution information, allowing developers and support engineers to analyze application performance, identify slow processes, review SQL queries, and understand the execution flow of X++ code. In this blog, you’ll learn what Trace Parser is, when to use it, how to capture a trace, and how to analyze the results effectively. What is Trace Parser? Trace Parser is a Microsoft diagnostic tool used to analyze execution traces generated by D365 Finance & Operations. It records detailed information about: X++ method execution SQL queries Call stacks Execution time User sessions Database interactions RPC calls Unlike traditional debugging, Trace Parser helps analyze issues after they occur by reviewing a captured trace file. Why Use Trace Parser? Trace Parser is commonly used to: Investigate slow forms and reports Identify long-running SQL queries Analyze batch job performance Detect inefficient X++ code Find excessive database calls Troubleshoot performance bottlenecks Understand application execution flow When Should You Use Trace Parser? Consider using Trace Parser in scenarios such as: A form takes too long to open. A report is running slowly. A batch job is consuming excessive time. A custom process performs poorly after deployment. Users report intermittent performance issues. You need to identify the exact SQL query causing delays. Prerequisites Before capturing a trace, ensure you have: Access to the D365 F&O environment Permission to use Trace functionality Trace Parser installed (typically on a development VM) A reproducible scenario Capturing and Opening a Trace 1 Step 1 Enable Tracing In D365 Finance & Operations: Sign in to the application. Click the Question Mark icon. Open the Trace tab. Click Start Trace. The system will begin recording user activities. Tip: Only capture the specific business process you want to analyze. Long traces create large files and are harder to analyze. 2 Step 2 Reproduce the Issue Perform only the actions related to the issue, for example: Open the problematic form Run the report Execute the batch job Perform the slow business process Avoid unrelated activities during tracing. 3 Step 3 Stop the Trace Once the scenario is complete: Return to the Trace tab. Click Stop Trace. Save the generated trace file (.aet). This file contains all recorded execution details. 4 Step 4 Open Trace Parser Launch the Trace Parser application on your development machine. Go to File → Open Trace. Choose the saved .aet file. Trace Parser will import and process the trace, which may take a few minutes depending on the file size. Open Trace dialog” src=”https://www.cloudfronts.com/wp-content/uploads/2026/07/1-image4.png”> Understanding the Trace Parser Interface After loading the trace, you’ll see several sections: SessionsDisplays all captured user sessions. Useful for identifying the correct user, filtering traces, and analyzing specific requests. Call TreeShows the hierarchy of X++ method calls, including which methods were executed, parent-child relationships, and time spent in each method. SQL StatementsDisplays all SQL queries executed during the trace, useful for identifying long-running queries, missing indexes, repeated calls, and excessive SELECTs. TimelineShows the execution flow over time, making it easier to identify performance spikes, waiting periods, and expensive operations. Analyzing Performance Issues When reviewing a trace, focus on: 1 Focus Area 1 Long-Running Methods Sort methods by execution time. Look for: High execution duration Frequent method calls Recursive methods 2 Focus Area 2 SQL Execution Time Check: Query duration Number of executions Table scans Repeated queries Repeated SQL queries often indicate inefficient code. 3 Focus Area 3 Excessive Database Calls Example — instead of calling CustTrans::find() inside a while select loop over custTable, consider reducing repeated database calls using joins, caching, or optimized queries. 4 Focus Area 4 Nested Loops Deep nested loops can significantly impact performance. Optimize by: Reducing iterations Using set-based operations Minimizing database access inside loops Common Performance Problems Identified by Trace Parser # Issue Recommendation 1 Repeated SQL queries Cache data or combine queries 2 Long-running methods Optimize business logic 3 Excessive RecIds lookups Use joins where appropriate 4 Full table scans Review indexes and filtering 5 Nested loops Refactor using set-based operations 6 Slow report execution Optimize queries and data providers Best Practices, Limitations & Tips Best Practices Capture only the required scenario. Keep traces short. Test in a Sandbox or development environment whenever possible. Compare traces before and after code changes. Archive traces for future reference. Avoid tracing during peak business hours unless necessary. Limitations Trace Parser is a powerful tool, but it has some limitations: Large trace files require more time to process. … Continue reading How a Leading North American Commercial Vehicle Manufacturer Optimized Sales Order Posting Using Trace Parser
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 :
Mastering MRP: From Disconnected Data to Unified Insights for a Leading North American Commercial Vehicle Manufacturing Company
Summary Large manufacturing companies depend on Material Requirements Planning (MRP) to manage demand, supply, inventory, procurement, and production. In many organizations, planning data is spread across ERP systems, legacy applications, spreadsheets, and manufacturing systems, making it difficult to answer a critical question: Will we have the right material at the right time? A centralized MRP reporting solution built using Dynamics 365 and Power BI provides a single view of demand, inventory, procurement, production, and supplier performance. The result is better visibility, faster planning decisions, reduced manual effort, and improved supply chain performance. Table of Contents Customer Spotlight The Challenge The Solution Executive Supply Chain Overview Detailed MRP Analysis MRP Trends Over Time Inventory Optimization & Supplier Performance Production Planning Insights Business Impact FAQs Conclusion Customer Spotlight A Large Manufacturing Company in North America The organization manages complex manufacturing operations involving procurement, inventory, warehousing, production planning, and supplier management. Their planning environment includes: Large volumes of customer demand Thousands of raw material items Multiple suppliers and sourcing channels Complex production schedules Inventory distributed across warehouses and plants The Challenge The challenge was not a lack of data but having too much disconnected data across multiple systems. Planning teams needed answers to questions such as: Which materials may cause production shortages? Is demand data accurate? Are materials being ordered at the correct time and quantity? Which items are overstocked or understocked? Which suppliers are causing delays? Can production begin without material shortages? Which items require urgent planner attention? The Solution The solution combines Dynamics 365 planning data with Power BI reporting capabilities. Demand from sales orders and forecasts Inventory and on-hand balances Planned purchase orders Planned production orders Planned transfer orders Purchase orders and supplier data Bills of Materials (BOM) Production routes Lead times Safety stock parameters Executive Supply Chain Overview The dashboard provides a high-level view of supply chain performance and enables filtering by Site, Warehouse, Item, Supplier, Planner, and Date. Demand Visibility Demand vs Supply Inventory Health Stock & Shortages Supplier Metrics OTIF & Delays Detailed MRP Analysis The dashboard helps planners understand why MRP generated a recommendation. Item details and inventory balances Demand and supply transactions Planned orders Net requirements Lead times Order quantities MRP exception messages MRP Trends Over Time The trend dashboard enables proactive planning by highlighting: Demand changes over time Inventory movement trends Material shortages Purchase order delays Forecast accuracy Inventory Optimization & Supplier Performance The objective is simple: Right Material, Right Place, Right Time. The dashboard identifies: Items below safety stock Excess inventory Slow-moving inventory Location-based shortages Inventory in transit Supplier performance is measured using: On-time delivery OTIF (On Time In Full) Lead-time performance Supplier delays Open purchase orders Production Planning Insights This dashboard connects production planning with material planning. Production order status Material availability Capacity constraints Work-In-Progress (WIP) Production delays Business Impact Before After Data spread across systems Centralized visibility Manual reporting Automated insights Late issue detection Early issue identification Reactive planning Proactive decision-making Disconnected processes Connected planning view Limited executive visibility Real-time dashboards FAQs 1. Does Dynamics 365 support MRP? Yes. Dynamics 365 supports Material Requirements Planning and automatically generates planned orders based on demand and supply. 2. Why use Power BI? Power BI transforms planning data into actionable dashboards and visual insights. 3. What data is typically included? Inventory, sales orders, forecasts, purchase orders, suppliers, planned orders, and production data. 4. Can legacy planning systems be integrated? Yes. External planning and demand data can be consolidated into the reporting solution. 5. Can shortages and supplier performance be tracked? Yes. Dashboards can track shortages, supplier reliability, OTIF, and delivery performance. Conclusion MRP is not simply about generating planned orders. It is about making better business decisions. When Dynamics 365 planning data is combined with Power BI analytics, organizations gain visibility into demand, inventory, procurement, supplier performance, and production readiness. Instead of asking “Why did production stop?”, organizations can focus on “What should we act on today to prevent tomorrow’s disruption?” The result is a more proactive and data-driven approach to manufacturing planning that improves service levels, reduces risk, and enhances operational performance.
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
