Category Archives: Blog
Shopify Meets Dynamics 365 Finance and Operations: A Guide to Integration [Part 2]
Integrating Shopify with Dynamics 365 Finance and Operations (FnO) requires structured data management and seamless automation. This blog covers how to create a setup table and page in FnO to securely store API credentials and endpoints. In the next blog, we’ll create an automated batch job to push product data from FnO to Shopify, automating product creation on the e-commerce platform. If you are new to this series, you can refer to my blog here for setting up the necessary Shopify components for getting started. Pre-requisites Shopify API credentials (API Key, API Secret, Auth Token)Access to the development environment in Dynamics 365 Finance and Operations. References MS Docs – Create a table MS Docs – Create a form Configuration Step 1: Create the model and project I’m going to be starting from scratch so I’ll create a new model for this. If you already have a model you’ll be using, you can skip this part. Open Visual Studio and click on Continue without Code. Click on Extensions > Model Management > Create Model. Give your model an appropriate name. After everything is selected, click on Next. Give your solution/project appropriate names and click on Create. Step 2: Create Extended Data Types Right click on the project, click on Add > EDT > String. I’ve also created a Label file to store the labels. In the properties of my EDT, I’ll set the string length to 40 and set the label. Similarly I create 2 more EDTs, with the Shopify Auth Token with string size 50. Step 3: Create Table Right click on the project, click on Add > Table. Give it an appropriate name and click on Add. Then, we’ll drag the three EDTs into the fields section of table and set the label to the table. I’ll also add a Parameters Key from the Application Platform Module Next, we create an index on the basis of the ParametersKey (renamed to Key) Drag the Key field into the newly created index and be sure to set the “Allow Duplicates” property to “No” Then we set the necessary properties. This is useful as this will prevent multiple records in our setup table. Then right click on the Methods and click on “New Method” Then add this method logic. Step 4: Create Form Right click on the project, click on Add > Form Give it an appropriate name and click on Add. Right click on the Pattern > Apply Pattern > Table of Contents Right click on the Pattern > New > Tab. Next drag your table onto the Data Sources tab. Select the datasource you just created and set the below properties. Next right click on your Tab and click on “New Tab Page” Right click on the newly created tab page, click on New > Group Right click on the Group > Add > Static Text. Then, right click on the “GeneralTabPage” and add another tab.Inside that, add another tab page (as prescriped by the pattern) and set the pattern of the inner tab page to be “Fields and Field Groups” Inside this tab page, you can directly drag and drop your fields. For the “Shopify Auth Token” set the “Password Style” property to “Yes” Right click on Methods > Override > init. Call the find method of the Integration Parameters in the init method of the form. This ensure that the record is created if it doesn’t exist already. Step 5: Create the menu item for the form Right click on the Project > Add > New Item. In the menu click on User Interface and select Display Menu item. Give it an appropriate name and click on Add. Assign the appropriate label and set the form we just created into the object field. Step 6: Extending standard menu Go to Application Explorer > Click on User Interface > Menus > right click on “System Administration” and click on “Create Extension” Go to Solution Explorer > Click on the newly created Menu Extension. Right click on the title and click on New > Sub Menu. Give it an appropriate name and an appropriate label. Drag and drop your display menu item into the submenu. Step 7: Configure Security Right click on the project > Add > New Item Go to Security and select Security Privilege. Give it an appropriate name and click on Add. Drag and drop your menu item into the “Entry points” tab of the Security Privilege. Similarly create a Security Role and give it an appropriate name. Then drag your privilege into the role. Set a label to this role. Build the entire project, sync it with database and deploy it. Search for”Assign users to roles” to assign the security role to yourself. Select the role and click on “Manually assign / exclude users” Select your User and click on Assign to role. Click on Modules > System Administration > Shopify Integration > Shopify Integration Parameters. Conclusion This blog demonstrated how to create a setup table and page in Dynamics 365 Finance and Operations for securely storing Shopify API credentials.In the next blog, we’ll focus on handling product updates and synchronization between Shopify and Finance and Operations. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
Share Story :
Shopify Meets Dynamics 365 Finance and Operations: A Guide to Integration [Part 1]
Introduction The integration of Shopify with Dynamics 365 Finance and Operations (FnO) starts by creating a secure link.The initial step in this process involves generating an API token within Shopify, serving as the credential for verified communication between both systems.In this blog I will walk you through the steps to create the API token, facilitating a seamless beginning for your integration. Pre-requisites Access to the Shopify Admin account with appropriate permissions to create private apps or access custom apps.API access enabled in your Shopify store.A basic understanding of API concepts and authentication methods. [Available in Reference]The URL or endpoint details where the API calls will be directed. [Available in Reference] References Shopify – How to generate API token ResfulAPI.net – Basics of REST APIsShopify.dev – REST API Documentation Configuration Step 1: Access the Shopify Admin Portal Log in to your Shopify store’s Admin account. Navigate to Apps from the main menu. Step 2: Create a Custom App Click on Develop Apps (available under Apps). Select Create an App and provide a name (e.g., “Dynamics365_Integration”). Assign a developer or admin as the app owner. Step 3: Configure API Scopes After creating the app, click on it to open the configuration page. Under the Configuration section, define the API scopes required for integration based on your requirements. You can change these later if required. For example: Click on Save to save the changes. Step 4: Generate the API Token Once scopes are set, click on the API credentials tab. Click Install App to generate the credentials. A unique Access Token will be displayed. Copy and securely store this token, as it will not be shown again. If you scroll down, you’ll also see the API Key and API Secret; store these values as well. Step 5: Test the Token Use a tool like Postman to test the API token. Set up a GET request to an API endpoint (e.g., https://<API KEY>:<API Secret>@<Store Name>.myshopify.com/admin/api/2023-07/products.json). Include the token in the header as X-Shopify-Access-Token. Verify the response to confirm the token is working correctly. Or simply (https://<Store Name>.myshopify.com/admin/api/2023-07/products.json) Conclusion The API token is your gateway to integrating Shopify with Dynamics 365 Finance and Operations. By following this guide, you’ve taken the first critical step toward seamless data flow between your e-commerce platform and back-office operations. In the next blog, we’ll explore how to configure Dynamics 365 Finance and Operations to connect with Shopify and start synchronizing data. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
Share Story :
Seamless Integration between D365 Project Operations & Business Central
Are you an organization who has sophisticated Project needs, however your financial requirements are simple? You may be in a position where you are having Project Operations and Business Central deployed or you are considering going with Project Operations for your sophisticated Project needs, and Business Central because your finances are simple, and you feel D365 Finance & Operations would be an over kill for your requirements. Once you get into this position, you realise that Project operations and Business Central are two disintegrated systems. Microsoft does not provide this integration out of the box. While it does for Finance & Operations, it has left PO and BC integration for the partners to figure out. Why a Single Source of Truth Matters For businesses managing complex projects, real-time, accurate insights into both project progress and financials aren’t a luxury—they’re essential. Without an integrated approach, processes slow down, errors multiply, and operational agility takes a hit. Our Perspective: By integrating D365 Project Operations with Business Central, companies can seamlessly connect project and financial data. This integration reduces errors, unifies workflows, and enables decision-makers to act with confidence. Why Integrated Systems Are Essential As projects scale, cost tracking, billing, and resource management become harder to manage. An integration of D365 Project Operations and Business Central creates a cohesive environment where data flows naturally, helping teams move past the blockers of siloed systems. Here’s How Integration Changes the Game – Unified, Real-Time Data Visibility Imagine having access to all of your financial and project data in one location. Team leads and finance managers can save time, no longer needing to cross-check numbers across systems. Data flows seamlessly between Project Operations and Business Central, enabling accurate budgeting and invoicing. – Automation Cuts Out Tedious Processes Say goodbye to manual reconciliation. Updates made in Project Operations sync directly with Business Central—eliminating double entries and minimizing errors. This enhances accuracy and efficiency, freeing your team members to focus on other things rather than data entry. – End-to-End Project Lifecycle Management This integration supports each project phase, from budgeting and invoicing to reporting. Full visibility means greater accountability, and everyone—from managers to teams—has the insights needed to make informed, timely decisions. – Insights That Drive Better Planning and Execution With integrated analytics and Power BI, you’re not just gathering data; you’re transforming it into actionable insights. View project profitability and resource utilization in one place, enabling better project planning and seamless operations. – Stock scenarios are covered If you are an engineering company running heavy, long term deployment projects, you are probably worried how will Project operations cover the scenarios where I need to have stock consumption on my project tasks. We have you covered here, too, so don’t worry. With the Project operations and Business Central integration we have also figured out how the stocks entries need to flow from Project Operations to Business Central because your stock movements happen in Business Central This will ensure accurate stock consumption against the projects without worrying about what goes on in the background. – WIP tracking With the actuals being passed onto Business Central, your Finance team will have WIP postings in place to give an accurate picture of the progress on the Project. Why Partner with Us? Having guided numerous businesses through D365 implementations, we know how to bridge gaps between project and financial management to unlock greater flexibility and efficiency. Our team is here to tailor this integration to your unique business needs. Ready to See the Difference? Think about your current project and financial workflows. Imagine the time saved and clarity gained by integrating them. Ready to explore what D365 integration can do for your business? Reach out to us at transform@cloudfronts.com for a free consultation, and let’s work toward operational excellence together.
Share Story :
How to Setup and Manage Reminder in Business Central
Are you struggling with keeping track of important deadlines and tasks in Business Central? I’m going to show you how to easily set up and manage reminders, so you never miss a critical follow-up or due date again. Did you know that businesses using reminder systems are 70% more likely to meet their deadlines consistently? In this guide, I’ll walk you through the simple steps to create, customize, and manage reminders in Microsoft Business Central. Get ready to boost your team’s productivity and keep your projects on track! Navigate to Reminder Setup: Conclusion Setting up and managing reminders in Microsoft Dynamics 365 Business Central is a powerful way to streamline accounts receivable and maintain healthy cash flow. By configuring reminder terms, linking them to specific customers, and using Business Central’s automated reminder creation and sending options, businesses can ensure timely payment collections while reducing manual effort. Properly managed reminders not only help businesses stay organized but also improve customer relationships by clearly communicating payment expectations. Regularly reviewing and adjusting reminders allows businesses to stay flexible and responsive, ensuring that the reminder process remains efficient and effective. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
Share Story :
Unlocking the Power of Ternary Operators and Extendable Interfaces in Business Central
Developers are continually looking for ways to write cleaner, more efficient code. Two powerful tools that have emerged to meet this need are the ternary operator and extendable interfaces. This blog explores how these features can enhance your AL code, making it more readable and maintainable. Ternary Operator in Business Central The ternary operator, introduced in the 2024 release wave 2 of Business Central, is a concise way to perform conditional assignments. It offers a streamlined alternative to traditional if-else statements, promoting code clarity and reducing verbosity. Syntax and Example The ternary operator in AL has the following syntax: condition ? exprIfTrue : exprIfFalse Here’s an example that demonstrates its usage: pageextension 50300 CustomerListExtension extends “Customer List” {layout { addlast(Content) { field(“Customer Status”; IsCustomerActive) { ApplicationArea = All; } }} var IsCustomerActive: Text; trigger OnAfterGetCurrRecord();begin IsCustomerActive := Rec.Blocked = Rec.Blocked::” ” ? ‘Active’ : ‘Inactive’;end;} In this example, the ternary operator is used to determine whether a customer is active or inactive based on their Blocked status. The result is a concise and more readable conditional assignment. Extendable Interfaces in Business Central Extendable interfaces provide a modular and flexible way to define reusable logic across different components in Business Central. They allow developers to create scalable systems that can easily adapt to changing business requirements. Defining and Implementing Extendable Interfaces Base Interface: interface INotificationProvider {procedure SendNotification(Message: Text): Text;} Extended Interface: interface INotificationProviderExt extends INotificationProvider {procedure SendEmailNotification(Message: Text): Text;procedure SendSMSNotification(Message: Text): Text;} Implementing the Interfaces in Codeunits: Email Notification Provider:codeunit 50301 EmailNotificationProvider implements INotificationProvider {procedure SendNotification(Message: Text): Text;begin exit(‘Email sent with message: ‘ + Message);end;} SMS Notification Provider:codeunit 50302 SMSNotificationProvider implements INotificationProvider {procedure SendNotification(Message: Text): Text;begin exit(‘SMS sent with message: ‘ + Message);end;} Advanced Notification Provider:codeunit 50303 AdvancedNotificationProvider implements INotificationProviderExt {procedure SendNotification(Message: Text): Text;begin exit(‘Notification sent with message: ‘ + Message);end; procedure SendEmailNotification(Message: Text): Text;begin exit(‘Email sent with message: ‘ + Message);end; procedure SendSMSNotification(Message: Text): Text;begin exit(‘SMS sent with message: ‘ + Message);end;} Real-World Application Let’s implement these interfaces in a page extension to add actions for sending notifications to customers. pageextension 50300 CustomerListExt extends “Customer List” {actions { addafter(ApplyTemplate) { action(SendEmail) { ApplicationArea = All; Image = Email; Caption = ‘Send Email’; Promoted = true; PromotedCategory = Process; trigger OnAction() begin iNotificationProvider := EmailNotificationProvider; Message(iNotificationProvider.SendNotification(‘Email message to customer’)); end; } action(SendSMS) { Image = Phone; Caption = ‘Send SMS’; ApplicationArea = All; Promoted = true; PromotedCategory = Process; trigger OnAction() begin iNotificationProvider := SMSNotificationProvider; Message(iNotificationProvider.SendNotification(‘SMS message to customer’)); end; } action(SendAdvancedNotification) { Image = Notification; Caption = ‘Send Advanced Notification’; ApplicationArea = All; Promoted = true; PromotedCategory = Process; trigger OnAction() begin iNotificationProviderExt := AdvancedNotificationProvider; Message(iNotificationProviderExt.SendEmailNotification(‘Advanced Email message to customer’)); Message(iNotificationProviderExt.SendSMSNotification(‘Advanced SMS message to customer’)); end; } }} var iNotificationProvider: Interface INotificationProvider; iNotificationProviderExt: Interface INotificationProviderExt; EmailNotificationProvider: Codeunit EmailNotificationProvider; SMSNotificationProvider: Codeunit SMSNotificationProvider; AdvancedNotificationProvider: Codeunit AdvancedNotificationProvider;} This example demonstrates how to use extendable interfaces to create a flexible and maintainable notification provider system in Business Central, allowing for different types of notifications to be added seamlessly. Conclusion The ternary operator and extendable interfaces in Business Central are powerful tools that can significantly enhance your AL code. By using the ternary operator, you can streamline conditional logic and improve code readability. Extendable interfaces, on the other hand, allow for modular, scalable solutions that can adapt to changing business needs. Embrace these features to build more efficient, maintainable, and future-proof solutions in Business Central.
Share Story :
Sales Return process in Dynamics 365 Finance and Operations Part 2
In the previous part of my blog, I explained about the Credit Only process. In this part of my blog, I will go through the Physical Return process. The Physical return process is determined based on the Disposition Code that is assigned to that Return Order. Disposition Codes in D365 Finance and Operations: Disposition codes in Dynamics 365 Finance and Operations (D365FO) are essential tools used to categorize and manage returned items. These codes help businesses decide what to do with products that customers send back, whether it’s restocking, repairing, or scrapping them. By using disposition codes, companies can streamline their return processes, maintain accurate inventory records, and ensure that returned items are handled efficiently and appropriately. This not only enhances operational efficiency but also helps in improving customer satisfaction by managing returns in a clear and organized manner. Below is the List of Dispositions Codes that are available in D365 FNO: These Disposition codes are available as Standard Functionality in D365 FNO. You can also create new codes based on the business requirements. In this part of the blog, I will walk you through the Replace Item and Credit Customer scenario. Let’s take a scenario where we have sold 5 items to the customer and after delivery the customer does the Quality check in which 2 products fail due to quality issues. The customer has Scrapped those products on our behalf and now we will provide the customer with the replacement items. For that: Go to Sales and Marketing>Sales Returns>All Return Orders. On the All return orders page click New to create a New Sales Return Order. Select the Customer for which the Return Order is to be created. Enter the Site, Warehouse, RMA number and other details and click OK. In the first part of the blog I created the Return order using the Find Sales Order function so in this part I will directly add the line with negative quantity. In the below screenshot you can see that I have added a line for the Product P-000015 with negative quantity. The next step is to register the Line with the Replace and Credit customer Disposition code. For that click on the Update Line option in the Lines tab then from the drop down click on the Registration option. Then from the Disposition Code drop down select the Replace and Credit Customer option. Then add the registration line then click on Confirm Registration. In the below screenshot you can see the Line status is changed to Registered and the Return order status is changed to Open. Now if you go to the All-Sales Order Page you can see that a New Sales Order is created with the Order type as Returned Order with the Status as Open Order. Now if you open the Sales Order and check the lines the quantity of the line will be exactly same as that of the Return order. The next step is to create a Replacement order as we have selected the Disposition Code of Replace and Credit. For that click on Update Line and Click Registration which will change the Line status from Registered to Expected. As you do this you will notice that the Post Packing Slip button is now disabled, and you can see that the Replacement Order button is now available. As our disposition code is Replace and credit Customer the next step is to create a Replacement Order. For that click on the New Replacement Order button. Add the same site and Warehouse as Return order and click Ok this will create a Replacement Order. After Replacement Order is created go back to the Return Order again and Click Registration and select the Credit disposition code which will Credit the Amount back into the Customer’s account. Now after that Post the Packing slip for the Return order which will change the Return Order status to Received. Then go ahead and Invoice the Return Order from the All-Sales Order page which will again change the Return Order status to Closed. Then go ahead and process the Replacement Sales Order. If you go to the Customer transaction and check, you can see that the Amount is credited back in to the Customer Account. So, this completes the Sales Return Process of Return and Credit to customer. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
Share Story :
Automate Asset Leasing through Microsoft D365 F&O
Leasing refers to a contractual arrangement where one party (the lessee) pays the other party (the lessor) for the use of an asset, such as property, vehicles, or equipment, for a specified period. Lease accounting is the process by which companies record the financial impacts of their leasing activities. It has become increasingly important due to new accounting standards that require most leases to be recognized on the balance sheet, enhancing transparency and providing a clearer picture of a company’s financial obligations. Microsoft Dynamics 365 Finance can help companies (CFOs, Finance & accounts team) to set up, operate and manage multiple lease accounting. The work around goes as listed below : 2. i. Create Lease Books: Asset Leasing =>Setup=> Lease Books ii. Define Interest as Expense Type iii. Define Lease rate of interest as Index rate type. iv. Define General Ledger mapping, number sequences and journal types in Asset leasing parameters. 3. Create New Lease in Lease Summary by giving unique Lease ID and update details in Open Books : Lease start date, Vendor Details, Lease Term 4. Run each schedule to ensure that journal entries are made for the chosen period and schedules are generated for the lease period. 5. For any modification in lease terms, termination or revaluation use the Maintain function. 6. Using the Inquiries and Reports – all lease related reports can be used to review and monitor the financial impact of leases. This way the entire lease accounting can be automated whether asset leasing is part or core business of the company. It takes care of the increasing number of leases with comfort and avoids risk of errors and miscalculations. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
Share Story :
How to review and accept changes to confirmed Purchase Orders in D365 F&O
Purchase department plays very crucial role in any company to maintain right inventory at right time & at right price. So to keep business running efficiently purchase orders are released to suppliers accordingly. But there might be changes in confirmed purchase orders due to various reasons & it’s impacts on business will vary case to case basis. It is very important to quickly assess the impact of changes & respond to mitigate the challenges. D365 F&O has released workspace “Confirmed purchase orders with changes” to review and accept changes to confirmed Purchase Orders. This feature is useful to purchase manager, sourcing manager to take quick actions on changes. On this workspace summary is shown for all orders with no. of “Low impact changes”, “High impact changes”, “Impacted downstream orders” sales, production or service orders which will be affected due to changes in purchase orders. List of “All purchase orders with changes”, change details i.e. item no., quantity change, date change, impacted order details as below – Now selected PO is 000039 in “All purchase orders with changes” list in 1st table in lower half. In 2nd table details of changes are provided with item number & changed quantity. As in this PO quantity of item M0007 is reduced from 100 to 10 because of which production order P000169 & P000171 will be affected which is shown in 3rd table in lower half. In 2nd table in upper half M0007 is part of list which are “High impact changes” means changes in this purchase order is going to impact production orders which will affect business. Similarly selected PO is 000038 in “All purchase orders with changes” list in 1st table in lower half. In 2nd table details of changes are provided with item number & changed quantity. As in this PO delivery date of item M0002 is delayed but this change is not going to affect any downstream order. As there are no details in 3rd table in lower half. In 1st table in upper half M0002 is part of list which are “low impact changes” means changes in this purchase order is not affecting any production order or sales order even if it is delayed upto new date. Similarly, all confirmed orders which has changed will be displayed in this list. Once these changes are reviewed by purchase department personnel, they can discuss with suppliers to mitigate the changes. & then confirm the finalized changes by selecting purchase orders on list & click on confirm purchase orders button. Conclusion – Hence using “Confirmed purchase orders with changes” workspace purchase manager can review changes in 1 screen with details of impact on downstream orders & can approve these orders & take required action to reduce the impact on business. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
Share Story :
How to run an SSRS report on a selected record in the CRM using FetchXml
If you are working with SSRS reports in Dynamics 365 CRM, you may have to run or use the report for a single selected record, depending on your need. In this blog, I will explain how to run a report on a selected record in CRM. Running a report on a selected record is also referred to as prefiltering, so let’s first understand what prefiltering is in an SSRS Report. What is Prefiltering in an SSRS Report? Prefiltering in an SSRS Report is the process of applying filters before data is retrieved from the data source. It limits the dataset to include only the relevant records by incorporating conditions directly into the query or stored procedure used to fetch data for the report. It only shows relevant data that is needed for the reporting. To add prefiltering to an SSRS report, follow these steps: – First, identify the entity you want to run the report for. If the same report needs to be run on multiple entities in CRM, you will need to add the prefiltering condition to all required entities. – For example, I have considered this project entity <entity name=”msdyan_project” enableprefiltering=”1″ prefilterparametername=”Parameter1″> enableprefiltering = “1” specifies that the data for ‘msdyan_project’ will be filter before report is shown for user. – When running the above query, a parameter named “Parameter1” will be created automatically in Visual Studio. – Now, publish the SSRS report to the desired environment and add the required field to the related project field to the related record type and you are all set. Conclusion Running an SSRS report on a single CRM record is an effective way to display relevant data while ensuring the report remains context sensitive. In this blog, we have provided a step-by-step guide to adding a prefilter in your SSRS report. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com
Share Story :
Project Operations as source of truth for Professional Services Organizations
If you are a decision maker at an organization and looking to strategize the information at your organization and how the systems should source information from one to another, then this post is for you. Systems for source of truth at the organization is the question you are looking to get answered. Dynamics 365 Applications involved for Professional Services firms Let’s break down the systems from Dynamics 365 Application stack-standpoint – Sales and Project Management If you are a Professional Services firm in Construction, Engineering, Accounting, IT Services etc. and you have a Sales cycle running from Opportunity generation all the way to Project and Resource Management, then you need Dynamics 365 Project Operations – below is what Project Operations handles – Accounting Dynamics 365 Project Operations itself isn’t designed as an Accounting platform – it can create up to Pro-forma Invoices. But here’s to consider some options for Accounting – Marketing Marketing is a key aspect for an organization which primary deals with data like Accounts and Contacts – Here are some options to look out for – HRMS Maybe you are coming from an existing HR platforms, but here are some thoughts – Tying it all together As you’ve seen so far, the source of truth being Dynamics 365 Project Operations or core CRM application because of its flexibility, it is pivotal to source data from this system to other systems and all CRUD operations are tied to Project Operations upon integration. Other systems are then used to perform their respective operation and send updates back to Project Operations through integration. Conclusion Making Dynamics 365 Project Operations as source of truth works for our customers as they find the information clean, consistent and available for correct reporting through just one system. This gives a true view of the organization without having siloed systems which result in inconsistencies in data and information mismatch if integrations are not architected correctly. Making a system as source of truth gives you improved accuracy and trust in your organizations’ data and drives efficency in the longer run. We hope you found this article useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com