The API playground is a pre-authenticated software testing tool which is part of the Dataverse Accelerator App. API playground allows you to quickly interact with the Microsoft Dataverse Web API - check out Explore and test Dataverse in the Web API playground (Preview)
Friday, December 20, 2024
Saturday, September 28, 2024
Dynamics 365 and Power Platform monthly reading list September 2024
2024 Release Wave 2
Release plans for 2024 release wave 2 are now publicly available - Release plans for Dynamics 365, Power Platform, and Cloud for Industry - Dynamics 365 | Microsoft Learn - from July 29th, early access will be available for activation - other key dates for 2024 release wave 2 are also available . Also check out the videos like Dynamics 365 Service 2024 Release Wave 2 or Dynamics 365 and Power Platform 2024 Release Wave 2 - these might also contain features/functionality which are not listed in the release plans.
- 2024 Wave 2: Dynamics 365 Customer Service (YouTube) by @d365goddess
- 2924
- Use the Power Platform Environment Settings App
- Change history 2024 release wave 1 and change history 2024 release wave 2 - there are frequent changes on features which are part of a release wave - follow up using the change history
- 2024 release wave 2 for Dynamics 365 Contact Center
- Managed identity support for Dataverse plugins
Copilots, AI and machine learning
- Document classification with Power Automate and Azure AI by @mattbdevaney
- Understanding Copilots at Microsoft (YouTube)
- Microsoft Copilot Studio implementation guide
- So you want to build your own copilot
- Use Dataverse timeline highlights powered by generative AI
- Microsoft Copilot for Finance (YouTube)
- Simplify IT management with Microsoft Copilot for Azure - save time and get answers fast
- Microsoft Copilot for Service on ServiceNow
- Building a multi-channel notification system with Azure Functions and Azure Communication Services - Part 1 #60daysofIA
- Azure AI Translator GitHub repo
- Unlocking the full potential of Dynamics Digital Contact Center Platform with Bring Your Own Carrier (BYOC)
- How Microsoft does Quality Assurance (QA)
- Why use managed solutions by @BergmannBene
- Filtering embedded Power BI reports
- Outbound dialer enhancements in Dynamics 365 Customer Service
- Setting up Postman environment to test the Dataverse APIs - quick tip
- Application Insights integration with model-driven Power Apps explored
- Power Platform Well Architected
- User Experience in model-driven apps - the good, the bad and the ugly (YouTube)
- Customer Service: Setup Copilot (YouTube)
- Power Platform Community Tools series - Bulk Data Updater (YouTube)
- Build your own agent using Microsoft Copilot Studio (GitHub Repo)
- The scarce resource of Dataverse storage capacity
- Demo: Build intelligent and scalable solutions with Power Apps and Power Platform (YouTube)
- Manage application users in the Power Platform Admin Center (PPAC)
- Dataverse: Azure Synapse Link vs Fabric Link (YouTube)
- Adjust other Dynamics 365 copilots in Copilot Studio
- What is a Power Platform Solutions Architect? Action packed explanation! (YouTube)
- Building smarter bots with copilot studio (YouTube)
- Announcing General Availability of Block unmanaged customizations
- 6 stages of solution deployment by @LinkeD365
- Everything you didn't know you needed to know about Power Platform Solutions
- Dynamics 365 Finance is gradually moving onto the same base platform as Dynamics 365 CE - useful shortcuts
- Three ways AI is transforming service from the field to the contact center (Microsoft white paper)
- Capture and communicate value with the business value toolkit (Power Platform CoE toolkit)
- Introducing Microsoft Dynamics 365 Contact Center(YouTube)
- Eneco Mobility supercharges its customer car with generative AI by introducing Dynamics 365 Contact Center (Case study - Capgemini) - follow Peter Ruiter (@pajruiter) to learn more about copilots and Dynamics 365 Contact Center
Thursday, September 19, 2024
Power Platform Managed Identity support for Dataverse Plugins (preview)
This is a long overdue feature which allows Dataverse plug-ins to connect to Azure resources (e.g. Azure Key Vault) using managed identities, eliminating the need for credential management and enhancing security. It currently is available in public preview but GA is expected for November 2024
You will need to create a managed identity record in Dataverse and link it ot your specific plugin assembly - for more details take a look at Set up managed identity for Power Platform (Preview) and Power Platform managed identity overview (Preview) for more details.
In your plugin, you will need to the implement the IManagedIdentityService interface which allows your plugins to interact with managed identities. Using this interface, your plugin can request an access token for a specific Azure resource. I asked Copilot to generate the code for this below but did not check it yet ...
In the meanwhile there is also a XrmToolBox plugin available to help with configuring the managed identity - see GitHub - drivardxrm/Driv.XTB.PluginIdentityManager: XrmToolBox Tool to help manage Managed Identity records in Dataverse
References:
Sunday, August 11, 2024
Unmasking hidden issues in Dataverse: the surprising role of event expander operations in System job logs - down the rabbit hole we go
As outlined in Large AsyncOperationBase increase in Dataverse/Dynamics 365 CE: the canary in the coalmine - an increase in the amount of storage consumed by system jobs (visible in the Power Platform Admin Center storage capacity report) is a tell-tale for a Dataverse or Dynamics CRM environment which has some hidden problems.
The AsyncOperationBase table keeps a record of all asynchronous jobs (Async plugins, async workflows, internal Microsoft jobs, etc ...) which are running in the background processing data in your environment. If you have a lot of failed or cancelled jobs, there might be an issue with plugins or workflows. If you see a lot of awaiting resources jobs, there might be a big data load happening on your environment (or maybe an infinite loop).
During a periodic review of the System jobs health status, we noticed that there were a lot more jobs in status "Waiting for resources" then we were used too (More than 200.000). We raised a Microsoft support ticket for this and we got an update on this (redacted version below):
"Microsoft is rolling out a new way of how audit logs are being written in station 4 (EMEA) in a deferred manner. Entities representing these deferred operations are created in the AsyncOperationBase table.
These operations, while rolled up in the AsyncOperationBase table, execute outside of the Async Service and are not meant to be interpreted as additional backlog that the Async Service needs to process. These operations have no negative impact on System Job throughput. When the Audit operation has been fully processed outside of the Async Service, these operations will be removed from the AsyncOperationBase table. Event Expander Operation jobs are used as part of this new audit functionality, these are important jobs to ensure auditing is not lost.
These jobs are however processed by a separate service, so they do not affect async throughput, etc. in any way. Seeing a lot of these jobs (operation type 92 - event expander operation) is not an issue, as these are constantly churning in order to write audit history. If you have custom reporting in place to monitor system jobs - you should exclude AsyncOperationType 92"
Saturday, July 06, 2024
Quick Tip: Azure Synapse Link Troubleshooting Guide
If you encounter issues when setting up Azure Synapse Link for Dataverse - the first place to check is the Azure Synapse Link Troubleshooting Guide - https://aka.ms/synapselinkTSG .
Monday, April 15, 2024
Dynamics 365 and Power Platform monthly reading list April 2024
- Artificial Intelligence 2023 Playlist by Stanford Online (YouTube) and Stanford CS229: Machine Learning | Spring 2022 Stanford Online (YouTube)
- Use Semantic Kernel with Lakehouse in Microsoft Fabric
- Fabric end-to-end use case: Analytics engineering part 1 - dbt with the Lakehouse by @s_debruyn
- From Microsoft to global brands, Dynamics 365 Copilot is helping transform customer experiences across service, sales and marketing
- Accelerate support ramp-ups, handoffs and wrap-ups with Copilot summarization in Dynamics 365 Customer Service
- Introducing new Copilot experiences to boost productivity and elevate customer experiences across the organization
- Transform your business with Microsoft AI (Microsoft Learning Path)
- Accelerating revenue with AI Powered Solutions: a CRO Guide (e-book)
- Microsoft Azure AI Fundamentals: Generative AI (Learning path)
- 10 AI terms everyone should know
- Revolutionizing marketing workflows with Copilot in Dynamics 365 Customer Insights
- Creating Custom Copilots: Azure AI Studio and Copilot Studio. When to use what?
- Build your Copilot testing strategy in Dynamics 365 Customer Service
- Learn Live: Microsoft Learn AI Skills Challenge
- The Art and Science of working with AI
- Microsoft Copilot in Azure extends capabilities to Azure SQL Database (Private preview)
- How to connect Copilot Studio to Dynamics 365 Customer Service (YouTube)
- Introducing Copilot pane in Power BI Desktop (preview)
- Enable Copilot case and conversation summaries
- Trust Micrsoft Copilot with your Power Platform and Dynamics 365 data - Power CAT live (YouTube)
- Building Modern Enterprise Solutions: Microsoft Dataverse and Microsoft Copilot
- Microsoft Copilot scenario library - real use cases for HR,Finance, IT, Marketing and Sales
- Microsoft Copilot for Sales FAQ
- Day 19: Microsoft Copilot vs Microsoft Copilot for Microsoft 365 vs Copilot aka PVA
- Announcing Microsoft Copilot for Service
- Enable Copilot in Customer Service and custom apps (Dynamics 365)
- Microsoft Copilot for Service: Introducing new Copilot experiences to boost productivity and elevate customer experiences across the organization and Copilot in Microsoft Dynamics 365 (YouTube)
- Generative AI for beginners (Microsoft)
- Large language models, explained with a minimum of math and jargon
- Using copilot with SharePoint knowledge to serve your customers
- Dynamics 365 Customer Insights - Deliver higher-impact experiences with better data quality and configuration with Copilot
- Information Assistant Industry accelerator on GitHub
- Announcing Microsoft Copilot for Service and Microsoft Copilot for Service product page
- Build your own copilots with Azure AI Studio (Microsoft Mechanics recording)
- Build GPT-automated customer support with Azure Communication Services
Technical topics (Configuration, customization and extensibility)
- Lakehouse vs Warehouse vs Datamart - the difference between the three Fabric objects
- Power Platform Well-Architected framework
- Creating service principals really easily using PAC CLI by @carldesouza
- The power of Prefer Headers in the Dynamics CRM web API
- Analyze Dataverse tables from Microsoft Fabric
- Enterprise security with Power Platform (Microsoft white paper)
- Microsoft Fabric, explained for existing Synapse users
- Announcing new cloud governance guidance in the Microsoft Cloud Adoption Framework (CAF) for Azure
- PCF Learning Roadmap
- Mask sensitive data and prevent unauthorized access and Dataverse: about masking rules
- Protect enterprise solutions with new Microsoft Power Platform security features
- Power Platform Wave 1 2024: Top 10 features you need to know! (YouTube)
- Add intelligence into your apps with Dataverse AI functions (YouTube)
- Leverage the Power Platform API to create a capacity report
- Associate activities with multiple related records (2023 Wave 2 Public preview)
- Power Platform tenant settings (YouTube)
- Working with solution dependencies for objects made easier
- Improve solution import time
- https://aka.ms/azai - develop apps that use Azure AI services
- How to create a new Dynamics 365 SCM trial environment from the Power Platform Admin Center (PPAC) preview
- What's new in Playwright 1.32 (YouTube)
- Using Application Insights for Dataverse monitoring
- Modernize customer support with Copilot in Dynamics 365 Customer Service
- Announcing the Power Platform solutions with AI and Copilot learning path
- Sample library for Digital Contact Center Platform
- Modernize Service Guided Tour
- Forrester TEI study shows 315% ROI when modernizing customer service with Microsoft Dynamics 365 Customer Service
- End of support for Project Service Automation (PSA 3.x)
- Model driven Apps (Power Platform) visual glossary
- My annual letter: leading in a new era - annual letter from Satya Nadella, CEO at Microsoft
- Finding adequate metrics for outer,inner and process quality in software development
- Customer story: Avanade puts people first, accelerates sales productivity with Microsoft Copilot for Sales
- Keeping up to date with changes to the Release Wave Plans
- A consultant's guide: overcoming the challenges of joining a Microsoft Dynamics 365 project mid-way through
- Accelerate Copilot extensibility and Power Apps creation with Microsoft Dataverse
- How Microsoft and generative AI are transforming financial services contact centers
Wednesday, November 29, 2023
Dynamics 365 and Power Platform monthly reading list November 2023
2023 Release Wave 2
- Dynamics 365 Customer Service: new dialer experience (preview) by @D365Goddess
- New sales capabilities in 2023 release wave 2 - helping sellers work smarter
- Dynamics 365 CRM Wave 2 Release: enhance categorization of knowledge search articles
- Configure sales Copilot for Dynamics 365 Sales (Preview) by @DianaBirkelbach
Technical topics (Configuration, customization and extensibility)
- Dataverse - use bulk operation messages (MS Learn) - CreateMultiple and UpdateMultiple are now GA! Read the small print to see when to use it
- Dataverse let's try elastic tables (preview) - by @temmy_raharjo
- Ways to deal with missing Power Platform environments by @inogic
- Edit subgrids side by side with Power Apps Grid or editable grid by @DianaBirkelbach
- Announcing monthly channel for model-driven apps
- Announcing general availability of custom connectors in solutions as well as environment variable secrets
- Announcing SharePoint Embedded Public Preview at ESPC23 - will be interesting to explore whether it is possible to combine this with Dynamics 365 data as an alternative for Power Pages. Head over to http://aka.ms/start-spe/ to start building your first SharePoint Embedded app.
- Dataverse + Azure Service Bus queue + Azure function for processing long operations
- Workflow automation in Dynamics 365 CRM: triggering actions on email send and receive events by @inogic
- August 2023 updates for modernization and theming in Power Apps
- Connecting to Dataverse from Function App using Managed Identity - using azd
- Power BI - Mastering sales calculations: a comprehensive guide to departmental analysis
- How to enable the enhanced email template editor in model-driven apps (Dynamics 365/Dataverse)
Copilots, AI and machine learning
- Write an email with Copilot in Dynamics 365 Customer Service by @nishantranacrm
- Getting your enterprise ready for Microsoft 365 Copilot (Ignite 2023 recording)
- Learn live: prepare, implement and secure Microsoft 365 Copilot (Ignite 2023 recording)
- New study validates the business value and opportunity of AI
- Architecture and deployment diagrams for Microsoft 365 Copilot
- Analyse the impact of AI-enhanced customer service with Copilot analytics
- What is prompt engineering? (McKinsey)
- Anti-hype LLM reading list
- Microsoft Chat Copilot vs Azure ChatGPT - which generative AI capability to choose for the enterprise
- Measuring the productivity impact of Generative AI (NBER digest)
- The power of prompting (Microsoft Research)
- Get started with Microsoft Copilot Studio: how to create your first Copilot by @lisacrosbie
- Use Copilot to summarize cases - Dynamics 365 Customer Service
Topics for Dynamics 365 Business Applications Platform consultants, project managers and power users
- Microsoft to make Dynamics 365 Marketing a part of D365 Customer Insights
- Customer Service in the age of AI
- Refresh the sales experience with Dynamics 365 Sales modern update
Sunday, November 26, 2023
Implementing Azure Synapse Link for Dataverse: gotchas and tips
Azure Synapse Link for Dataverse allows you to easily export data from a Dataverse (or Dynamics 365) instance to Azure Data Lake Storage Gen2 (ADLS) and/or Azure Synapse. Azure Synapse Link for Dataverse provides a continuous replication of standard and custom entities/tables to Azure Synapse and Azure Data Lake.
I highly recommend you to view the awesome YouTube playlist Azure Synapse Link and Dataverse - better together from Scott Sewell (@Scottsewell) as an introduction.
1. Check the region of your Dataverse/Dynamics 365 instance
The configuration of Azure Synapse Link for Dataverse is done through the Power Platform maker portal but before you can get started you should first setup Azure Data Lake Storage Gen2 and Azure Synapse in your Azure subscription.
It is however best that you first check in the configuration screen in which region your instance is located since the storage account and Synapse Workspace must be created in the same region as the Power Apps environment for which you want to enable Azure Synapse Link. From the PPAC user interface it is currently not possible to create a Dataverse/Dynamics 365 instance in a specific region but this is possible with the PowerShell - see Creating a Dataverse instance in a specific Azure region using Power Apps Admin PowerShell module.
If you need to move a Dataverse or Dynamics 365 instance to a different Azure region, you can open a Microsoft support tickets. Based on recent experience this specific type of Microsoft support request is handled fairly quickly (within 1-2 business days).
Azure Data Lake Storage is a set of capabilities, built on Azure Blob Storage. When you create a storage account and check the "enable hierarchical namespace" checkbox on the advanced tab, you create an Azure Data Lake Storage Gen2.
2. Make sure all prerequisites are in place before enabling Azure Synapse Link
Definitely make sure that all security configuration outlined on Create an Azure Synapse Link for Dataverse with your Azure Synapse Workspace (Microsoft docs) are correctly setup. The exception messages which are shown in the Azure Synapse Link configuration pages aren't always very helpful.
3. Azure Synapse Link for Dataverse is a Lake Database
In the documentation from Microsoft (Understand lake database concepts) a lake database is defined as:
A lake database provides a relational metadata layer over one or more files in a data lake. You can create a lake database that includes definitions for tables, including column names and data types as well as relationships between primary and foreign key columns. The tables reference files in the data lake, enabling you to apply relational semantics to working with the data and querying it using SQL. However, the storage of the data files is decoupled from the database schema; enabling more flexibility than a relational database system typically offers.
The data is stored ADLS Gen2 in accordance with the Common Data Model (CDM) -the folders used conform to well-defined and standardized metadata structures (mapped 1:1 with Dataverse tables/entities). At the root you will see a metadata file (called model.json) which contains semantic information about all of the entity/table records, attributes and relationships between the tables/entities.
The way the files are being written depends on the Azure Synapse Link for Dataverse configuration - both the partitioning mode and in place vs append only mode can be configured - see Advanced Configuration Options in Azure Synapse Link
4. Synapse Link for Dataverse uses passthrough authentication using ACLs in Azure Data Lake - no support for SQL authentication
Since all the the data for the tables in Azure Synapse Link for Dataverse are CSV files which are stored in Azure Data Lake Storage, this also means that security needs to be set at the level of the files in Azure Data Lake Storage Gen2. There is no support for SQL authentication in the Lake DB which is created by Azure Synapse Link for Dataverse.
References:
- Use the Common Data Model to optimize Azure Data Lake Storage Gen2 (Microsoft docs)
- Create an Azure Synapse Link for Dataverse with your Azure Synapse Workspace (Microsoft docs)
- Azure Synapse Link for Dataverse - understanding advanced configuration settings (Microsoft docs)
- Do more with data - from Data Export Service to Azure Synapse Link for Dataverse (Microsoft docs)
- Use Power BI to analyze the CDS data in Azure Data Lake Storage Gen2
- Synapse Link for Dataverse - Option Sets
- Dataverse metadata in Synapse
- Setting up Azure Synapse Link for Dynamics 365/Dataverse
- Power BI modeling guidance for Power Platform
- Azure Synapse Serverless SQL Pools cheat sheet
- Controlling cost with Azure Synapse Serverless Pools
Wednesday, November 22, 2023
Near real-time and snapshots in Azure Synapse Link for Dataverse
The Azure Synapse Link for Dataverse documentation contains a section about Access near real-time data and read-only snapshot data but it does not really explain why you want to use one or the other.
When you open an Azure Synapse SQL Serverless LakeDB in SQL Server Management Studio you see a clear distinction between the two versions of the table data - whereas in Azure Synapse Studio there is no obvious distinction besides the name you will see the "account" table the "account_partitioned" view:
- Near real time data: external table for all the underlying CSV files exported by the Azure Synapse Lin for Dataverse sync engine. There is a soft SLA for the data to be present in these tables within 15 minutes
- Snapshot data/partitioned views: views on top of the near-real time data which are updated on an hourly interval.
In most scenarios, it best to do queries against these partitioned views since you will avoid read conflicts and you are sure that a full transaction has been written on the CSV files in Azure Data Lake storage.
A typical exception that you might receive when doing queries directly against the "tables" is "https://`[datalakestoragegen2name].dfs.core.windows.net$$/[lakedbname]/[tablename/Snapshot/2023-05_1684234580/2023-05.csv" does not exist or you don't have file access rights)" but this also depends on your specific context. If you have a lot of create, updates or deletes on Dataverse tables this might happen more regularly. Even though, the partitioned views are update on an hourly basis - it might be that the Synapse Link engine is just refreshing the views at the same point that you perform a query, which will give you a similar exception but the changes that this occurs are more rare.
You can check the last sync timestamp and sync status in the Power Platform maker portal (see screenshot below)
For the moment, you will also have to manually check the monitoring page (which can be quite tedious if you have a lot of environments) but there is an item in the Microsoft release planner "Receive notifications about the state of Azure Synapse Link for Dataverse" which is apparently in public preview but I haven't seen it in for environments (not in the https://make.powerapps.com and also not in https://make.preview.powerapps.com/) I have access to.
It is also not easy to see if something went wrong with the refresh of the partitioned views - up until now the easiest way to find out is running a SQL query - select name,create_date from sys.views order by create_date desc against the LakeDB.
Thursday, October 12, 2023
Quick tip: prevent automatic deletion of an inactive Microsoft Dataverse environment
A couple of months ago Microsoft activated Automatic deletion of inactive Microsoft Dataverse environments. To avoid that an environment gets deleted, sign in to the Power Platform Admin Center (PPAC) and select the environment. On the environment page, select Trigger environment activity.
Thursday, September 14, 2023
We don't talk about storage
When designing a solution using Dataverse or Dynamics 365 CE - Dataverse storage is rarely one of the hot topics and probably most of the times overlooked. In this post I will dive a little deeper into Dataverse storage architecture and why it is important to discuss this during a Dynamics 365 CE or Dataverse implementation
Fundamentals of Dataverse storage architecture
Since April 2019, both Dataverse and Dynamics 365 CE (Online) use a tiered storage model. This means that different data types in Dataverse are stored in the most optimal storage type. Azure files and blobs are used for attachments, relational data (tables) is stored in Azure SQL, audit logs are stored in Azure Cosmos DB, search is powered by Azure Cognitive Services, etc ....
From an end user perspective, this is completely transparent and administrators don't need to manage all of these underlying Azure components since Microsoft takes care of all of this.
Microsoft has however different pricing schema's for these underlying storage types and the price difference is quite significant. You can follow up on the storage capacity in the Power Platform Admin Center. Based on the number of licenses inside your tenant, you will get a specific capacity entitlement for database, file and logs. (See New Microsoft Dataverse storage capacity > verifying your new storage model for more details)
Understanding the cost impact
Database storage in Dataverse comes at a premium price tag. Usually you don't notice this unless you will need to buy additional storage (see What Dataverse capacity is included with the Power Apps and Power Automate plans? for how much additional storage you get with additional licenses).
(1) Pricing based on the list price shown in my personal tenant - August 2023. Prices may vary depending on your licensing agreement. If you buy additional eligible licenses you will also get additional storage allocated, it is also possible to use Power Platform Pay-as-you-go plans instead of buying license but the capacity pricing using PAYG is even higher.
You need to buy additional storage capacity if you are over the allocated storage capacity since storage capacity is being enforced - if you exceed storage capacity you will not be able to create a new environment (requires a minimum of 1 GB capacity) but also copy, restore and recovery operations will be blocked.
Archiving and data retention policies
Besides the impact on your budget of retaining all data in Dataverse (or Dynamics 365) forever - you however also need to consider the potential security and legal risk. Best practices dictate that data should only be kept as long as it is useful or as long as you are legally allowed to retain it - GDPR mandates to define specific data retention period's for personal data.
Defining a data retention policy helps businesses reduce legal risks, security threats and also reduce costs. Data retention policies contain the data retention period and the required actions to take when this period lapses. You should have a data retention period defined for each of entities/tables in use for your Dataverse environment.
In July 2023 finally released Dataverse long term data retention overview in public preview. This feature allows you to create a view on Dataverse tables/entities for data that you need to retain for a longer period. The view is used as a selection criteria to define which data is moved to long term archive storage in a Microsoft managed data lake. With this feature, you might be able to use out of the box functionality instead of having to built your own custom solution.. This functionality is still in preview and should not be used on production - also keep in mind that no pricing details are available yet (they will be announced around the GA timeframe). In a upcoming post I will delve a little deeper into the archive/long term data retention functionality but you can already take a look at Early dive into Dataverse Long Term Retention
Related posts and references:
- Storage capacity management for Dynamics 365/Dataverse - how to track storage evolution with Power BI
- Inside Dataverse Data Storage -Power CAT Live YouTube video
- Cost optimization: older mails in Dataverse now stored in Dataverse file storage
- Storage capacity management for Dynamics 365/Dataverse - how to track storage evolution with Power BI
Monday, August 07, 2023
Reducing size of the SubscriptionTrackingDeletedObject in Dynamics 365 CE or Dataverse
When you delete a large amount of data from Dynamics 365 CE or Dataverse, you will notice that the total storage consumed does not decrease. This is because the SubscriptionTrackingDeletedObject table stores deleted records from the Dynamics 365 database. This table is used to track deleted records for replication and synchronization purposes and records are being kept by default for quite a large amount of time.
When recently encountering this problem, Microsoft support suggested us to reduce the number of days the records are kept in the table from the default 90 to 15 days - to do this take the following steps:
- Install the latest version of the OrganizationSettingsEditor solution which you can download from https://github.com/seanmcne/OrgDbOrgSettings/releases (The OrgDBOrgSettingsTool dates back to Dynamics CRM 2011 but is being maintained by Sean McNellis and is still quite relevant)
- Change the ExpireChangeTrackingInDays and ExpireSubscriptionsInDays from the default setting of 90 days to 15 days. In sandbox environments, you might be able to change this value to 0 but for production environments Microsoft recommended to keep it on a minimum of 15 days. The OrgDBSettings utility utilizes the solution configuration page to provide access to the editor (in classic mode) - see OrgDBOrgSettings - where to find it after installing? for details.
Afterwards - just keep patient until the lapsed number of days have been passed and then you should see a size in reduction for the SubscriptionTrackingDeletedObject
Wednesday, June 28, 2023
Cost optimization: older mails in Dataverse now stored in Dataverse File Storage
Back in April 2019, Microsoft introduced a tiered storage architecture. This tiered storage architecture allows Microsoft to use the most appropriate storage type for different types of data used in Dynamics 365 and Dataverse. Last month, Microsoft started moving the storage contents of the e-mail body (email.description) from more expensive Dataverse Database storage to cheaper Dataverse File Storage - for the official documentation check out Dataverse - Email activity tables -Email storage.
Based on the list prices I see in my personal tenant (see screenshot below) - this cuts the unit cost for additional capacity required for e-mails down from 37,4 €/GB/month to 1,87€/GB/month (Quite interesting how they still use the older name Common Data Service :-) )
Your pricing might defer based on the type of licensing agreement that you have. If you had to buy additional storage capacity in the past, you might want to revise your storage usage and the required storage capacity add-ons.
You can check out the storage capacity in the Power Platform Admin Center - I added an example from a specific instance were Dataverse storage for e-mails (see ActivityPointerBase table) from 63 GB to 30GB.
A the same time, we saw a new storage file type appearing called Email which grew to 3,8 GB. This is a lot less than the storage saved in the database since the data in file storage (Azure Blob Storage behind the scenes) is actually compressed.
All in all, a great job from Microsoft which might save you a lot of money. Don't hesitate to add a comments sharing your experience with this....
Friday, April 28, 2023
Azure Synapse Link for Dataverse playlist by Scott Sewell
A great starting point if you are new to Azure Synapse Link for Dataverse is Scott Sewell's YouTube playlist on Azure Synapse Link for Dataverse
Friday, March 17, 2023
Quick tip: use the new release planner for Dynamics 365 and Power Platform to track and planning upcoming changes
The new release planner for Dynamics 365 and Power Platform is awesome - check it out at https://aka.ms/releaseplanner . It allows you to track the features that are planned, coming soon or already available for trial. You have visibility across active release waves in a portal (built with Power pages) and you can personalize, filter and sort release plans when you sign in.
Friday, March 10, 2023
Quick tip: update to Dataverse developer plan
Great update from Microsoft on the Dataverse developer plan - check out the new video from Power CAT team on Dataverse Environments for everyone - New Developer Plan - Power CAT Live on YouTube.
Interesting updates in the new developer plan:
- 3 developer environments available per user
- Don't take up storage capacity with a maximum of 2GB data.
- Premium connectors included for testing without additional licenses
- Possible to play around with ALM to get a to know solution management better.
- Automatic cleanup of inactive environments after 90 days.
Wednesday, January 25, 2023
Dynamics 365 and Power Platform 2023 release wave 1 details announced
The 2023 release wave 1 announcements are now available:
- Dynamics 365, Viva Sales and supply chain platform: 2023 release wave 1 plan
- Microsoft Power Platform: 2023 release wave 1 plan
Thursday, January 05, 2023
Dynamics 365 and Power Platform monthly reading list December 2022
First post of 2023 - so let's close with last month's suggested reading list. If you want to catch up on previous reading lists for 2022 - here is the list:
- Dynamics 365 and Power Platform monthly reading list September 2022
- Dynamics 365 and Power Platform monthly reading list July 2022
- Dynamics 365 and Power Platform monthly reading list May 2022
- Dynamics 365 and Power Platform monthly reading list April 2022
- Dynamics 365 and Power Platform monthly reading list February 2022
- Dynamics 365 and Power Platform monthly reading list January 2022
Technical topics (Configuration, customization and extensibility)
- Dataverse: simple advice on how to design your plug-in by @temmy_raharjo
- Match contacts and accounts by email domain with Power Automate
- Setting as a solution component in Power Apps by @inogic
- Dataverse group teams with Azure AD dynamic user membership groups
- Introducing Test Engine: an open platform for automated testing of canvas apps
- Adaptive cards in Power Apps
- Adaptive card designer overview (Preview) in Power Apps
- Create a card with data from Dataverse (preview)
- Build powerful Adaptive Card experiences for Teams using Cards for Power Apps by @michelcarlo
- Complete a Dataverse Task by an adaptive card in Teams
- Setup Azure DevOps projects for ALM accelerator for Power Platform
- Granular billing for Azure Data Factory
- 2022 Release Wave 2: Timeline maker enhancements
- Announcing two new white papers that dive deep into Power Pages architecture and security
- Streamline low code governance in your governance (Ignite 2022 recording BRK41)
- How to setup and connect to Dataverse environment in Postman
- A few notes on the Timeline: model-driven Power Apps form tweaks
- Power Platform Capacity Monitoring by @TheCRMNinja
- Top 25 Power Apps Tips, Tricks and Best Practices for Makers by @rezadorrani
Topics for Dynamics 365 Business Applications Platform consultants, project managers and power users
- Enable AI generated conversation summary (Preview) by @D365Goddess
- E-mail validation (Preview) in Dynamics 365 Sales
- Utilizing the swarming feature in Teams (Preview) for intelligent collaboration within Dynamics 365
- Leverage low-code to do more with less at Microsoft Ignite 2022
- Live from Microsoft Ignite 2022: Introducing new AI, automation and collaboration capabilities for Dynamics 365
- Duplicate lead detection increases sellers' productivity
- The future of IT with Charles Lammana - Power CAT Live (YouTube)
- Power BI modeling guidance for Power Platform
- How we can correct the mistakes made with Agile (YouTube)
- Exploring sales usage reporting feature in Dynamics 365 CE sales analytics
- Unleash your Dynamics 365 data with Azure Synapse Analytics and Power BI (YouTube recording)
- Price points of Power Platform (2022 pricing and licensing) by @jukkan
- One Dynamics One Platform - Introduction (FastTrack TechTalks)
- Discover new ways to analyze your customer service data
- Customer Service voice support channel launches in the UK (November 2022)
Wednesday, June 22, 2022
ActivityParty not supported in Azure Data Factory copy activity for Dynamics 365
I must admit that I am not a frequent user of Azure Data Factory but now and then I give it a try again ( see Getting started with Azure Data Factory for Dynamics 365 CRM consultants for my previous post on the topic) when I need to import data into Dataverse/Dynamics 365 CE or export data from Dataverse/Dynamics 365. Usually I do this when I hit a snag with the out-of-the box tooling or when I need to connect to a legacy on-premise Dynamics CRM environment.
Last week I tried doing a bulk export of incoming e-mails in Dynamics 365 CE to Azure Blob Storage using the copy activity. I quickly created setup a sink and source, created by my FetchXML query and then run the data pipeline. It immediately blew up with an exception message "ErrorCode=DataTypeNotSupported,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Column: from,The data type Microsoft.Xrm.Sdk.EntityCollection is not supported.,Source=,'
Monday, June 20, 2022
Analyze model-driven apps and Microsoft Dataverse telemetry with Application Insights
Beginning of May 2022, Microsoft announced that the ability to configure an Azure Application Insights resource to receive telemetry on diagnostics and performance of Dynamics 365/Dataverse model driven apps was generally available.
Integration of Dynamics 365/Dataverse with Application Insights enables new monitoring strategies for Dynamics 365/Dataverse. Application Insights will allow you to detect and resolve issues before the end user notices it. I also think this is very useful for following up on performance impact during big data loads/migrations (see screenshot below where Dataverse processed 6.1 million requests). Application Insights integration is a nice addition to the already extensive toolkit as outlined in the Monitoring the Power Platform blog series by @pfedynamics
The logs in Application Insights allow you to build queries to troubleshoot and monitor your solutions and answer questions like:
- Why are some of my users experiencing slowness on Unified Interface?
- How can I determine whether my plug-in upgrade caused a performance degradation?
- Can I drill down on errors or failures at specific times for specific users to allow for understanding the call stack?
- Why are users experiencing issues with a specific form?
If you want to learn more and see some examples - definitely take a look at the blog post from @decastroallan on Analyzing your Dataverse environment using Application Insights
The performance insights (preview) for model-driven apps is probably leveraging the same telemetry but since you now have access to the raw data in the underlying logs it will be easier to pin point potential issues or discover ways to improve the performance and/or user experience.
KQL (Kusto Query Language) can be used to query the logs in Application Insights in a scalable fashion - KQL can be used to also query other Azure components like Azure Log Analytics, Microsoft Defender and Azure Data Explorer. KQL is a SQL-like query language which is powered by the Kusto Engine that allows you to query, filter, sort and aggregate data. It was built specifically built for the cloud and scales quite well. Unlike SQL, KQL can not create, update or delete data - it is purely meant to be used for query operations.
References:
- Analyzing your Dataverse environment using Application Insights by @decastroallan
- What are performance insights (preview)
- Tutorial: Use Kusto queries
- Querying telemetries from multiple Application Insights instances
- What is Azure Data Explorer and Kusto Query Language
- Learning the Kusto Query Language (KQL) with Application Insight Logs
- Introducing Performance Insights (preview) for model-driven apps
- Microsoft Learn - write your first query with Kusto Query Language















