<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Nikhil Sarpatwari </title>
    <description>The latest articles on Forem by Nikhil Sarpatwari  (@nikhildynamicsce).</description>
    <link>https://forem.com/nikhildynamicsce</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2916492%2Ff4888194-3d97-43f6-b191-fdcce819fbeb.png</url>
      <title>Forem: Nikhil Sarpatwari </title>
      <link>https://forem.com/nikhildynamicsce</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/nikhildynamicsce"/>
    <language>en</language>
    <item>
      <title>Fixing Outlook Sync Issues in Dynamics 365 CE - Track and Set Regarding are currently disabled</title>
      <dc:creator>Nikhil Sarpatwari </dc:creator>
      <pubDate>Tue, 30 Sep 2025 12:33:57 +0000</pubDate>
      <link>https://forem.com/nikhildynamicsce/fixing-outlook-sync-issues-in-dynamics-365-ce-track-and-set-regarding-are-currently-disabled-4kfd</link>
      <guid>https://forem.com/nikhildynamicsce/fixing-outlook-sync-issues-in-dynamics-365-ce-track-and-set-regarding-are-currently-disabled-4kfd</guid>
      <description>&lt;p&gt;If you’re using the &lt;strong&gt;Dynamics 365 App for Outlook&lt;/strong&gt; and see this warning message:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Track and Set Regarding are currently disabled, but you can continue to view and edit Dynamics 365 data. Please contact your admin to enable all features.&lt;/em&gt;  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;you’ve hit one of the most common sync issues in Dynamics 365 CE.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Happens
&lt;/h2&gt;

&lt;p&gt;This usually occurs when the user’s mailbox in Dynamics 365 isn’t fully approved or has lost its sync configuration. Without an approved and enabled mailbox, Dynamics can’t allow tracking or “set regarding” actions from Outlook.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Resolution
&lt;/h2&gt;

&lt;p&gt;The quickest way to fix this is to re-approve and re-enable the mailbox:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In Dynamics 365 CE, navigate to:
&lt;strong&gt;Advanced Settings&lt;/strong&gt; → &lt;strong&gt;Email Configuration&lt;/strong&gt; → &lt;strong&gt;Mailboxes&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Locate and open the affected user’s mailbox record
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Approve Email&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Then select &lt;strong&gt;Test &amp;amp; Enable Mailbox&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Within a few minutes, the warning should disappear, and the &lt;strong&gt;Track&lt;/strong&gt; and &lt;strong&gt;Set Regarding&lt;/strong&gt; buttons will start working again in Outlook.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Pro Tip
&lt;/h2&gt;

&lt;p&gt;If this issue keeps recurring:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Verify the &lt;strong&gt;Email Server Profile&lt;/strong&gt; is set up correctly
&lt;/li&gt;
&lt;li&gt;Make sure &lt;strong&gt;Server-Side Synchronization&lt;/strong&gt; is configured and tested
&lt;/li&gt;
&lt;li&gt;Check that the user has the correct security role permissions for email
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;With just a couple of clicks, you can bring back full Outlook integration for your users and avoid the frustration of missing sync features.&lt;/p&gt;

</description>
      <category>outlook</category>
      <category>dynamicsce</category>
      <category>microsoft</category>
      <category>powerplatform</category>
    </item>
    <item>
      <title>When Out-of-the-Box Email-to-Case Isn’t Enough in Dynamics 365 CE</title>
      <dc:creator>Nikhil Sarpatwari </dc:creator>
      <pubDate>Sun, 28 Sep 2025 05:11:53 +0000</pubDate>
      <link>https://forem.com/nikhildynamicsce/when-out-of-the-box-email-to-case-isnt-enough-in-dynamics-365-ce-5d26</link>
      <guid>https://forem.com/nikhildynamicsce/when-out-of-the-box-email-to-case-isnt-enough-in-dynamics-365-ce-5d26</guid>
      <description>&lt;p&gt;The out-of-the-box (OOB) &lt;strong&gt;Email-to-Case&lt;/strong&gt; feature in Dynamics 365 CE Customer Service works well for most organizations. It automatically converts incoming customer emails into cases, saving agents time and ensuring customer issues are tracked properly.  &lt;/p&gt;

&lt;p&gt;But real-world scenarios aren’t always that simple. Many implementations I’ve worked on needed &lt;strong&gt;custom processes&lt;/strong&gt; because the OOB approach couldn’t handle all business requirements.  &lt;/p&gt;

&lt;p&gt;In this post, I’ll outline when you &lt;em&gt;can’t&lt;/em&gt; rely on OOB Email-to-Case and how to design a &lt;strong&gt;custom email-to-case process&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  When OOB Email-to-Case Falls Short
&lt;/h2&gt;

&lt;p&gt;Here are some situations where you may hit limitations:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Multiple Mailboxes, One Case Process&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OOB ties conversion logic to a specific queue/mailbox.
&lt;/li&gt;
&lt;li&gt;If you receive support emails from multiple addresses (e.g., &lt;code&gt;support@&lt;/code&gt;, &lt;code&gt;billing@&lt;/code&gt;, &lt;code&gt;vip@&lt;/code&gt;) but want consistent rules, you’ll need custom handling.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Advanced Routing Rules&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OOB uses basic queue routing.
&lt;/li&gt;
&lt;li&gt;If you need routing based on &lt;strong&gt;keywords, customer type, entitlements, or SLAs&lt;/strong&gt;, you’ll quickly outgrow standard rules.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Case Creation Rules vs. Plugins/Flows&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Case Creation Rules are limited to conditions/actions available in the UI.
&lt;/li&gt;
&lt;li&gt;If you need integration with external systems (e.g., ServiceNow, Jira, SAP), you’ll need a plugin or Power Automate flow.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Duplicate Detection &amp;amp; Merging&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OOB creates a new case for each email.
&lt;/li&gt;
&lt;li&gt;If multiple emails belong to the same ongoing issue, you might want to &lt;strong&gt;append as activities&lt;/strong&gt; instead of creating duplicates.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Attachments &amp;amp; Compliance&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Large attachments or secure handling requirements (masking, redaction, storage in SharePoint/Azure Blob) can’t be managed by the OOB feature.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;VIP/High-Priority Customers&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Some customers’ emails need to bypass queues and go straight to Tier 2/3 support.
&lt;/li&gt;
&lt;li&gt;OOB rules can’t handle this level of escalation logic.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Designing a Custom Email-to-Case Process
&lt;/h2&gt;

&lt;p&gt;A flexible approach looks like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Mailbox Setup&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Still configure server-side synchronization for your support mailboxes.
&lt;/li&gt;
&lt;li&gt;Emails land in Dynamics as activities.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Power Automate Flow or Plugin&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Trigger&lt;/strong&gt;: When an email is created (via Dataverse trigger or plugin on &lt;code&gt;email&lt;/code&gt; entity).
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check&lt;/strong&gt;: Does it meet case-creation conditions (subject, sender, queue)?
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logic&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;If yes → Create/Update case record.
&lt;/li&gt;
&lt;li&gt;If case already exists → Track as activity against it.
&lt;/li&gt;
&lt;li&gt;Apply routing rules (BU, Queue, Owner).
&lt;/li&gt;
&lt;li&gt;Handle attachments securely.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Advanced Features&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Duplicate detection&lt;/strong&gt;: Check open cases by customer &amp;amp; subject before creating new ones.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;External integration&lt;/strong&gt;: Push key details to other systems.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Priority handling&lt;/strong&gt;: Auto-assign high-value customers.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Example: Power Automate Flow
&lt;/h2&gt;

&lt;p&gt;Here’s a simplified design:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Trigger&lt;/strong&gt;: When an email activity is created in Dataverse.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Condition&lt;/strong&gt;: Subject contains “Support” OR To = &lt;code&gt;support@company.com&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check&lt;/strong&gt;: Query for open case with same contact &amp;amp; similar subject.

&lt;ul&gt;
&lt;li&gt;If found → Add email to timeline.
&lt;/li&gt;
&lt;li&gt;If not → Create new case record.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route&lt;/strong&gt;: Assign based on keywords or entitlement.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attachments&lt;/strong&gt;: Save to SharePoint &amp;amp; link to case.
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;OOB Email-to-Case works fine for small setups with simple queues.
&lt;/li&gt;
&lt;li&gt;If your business has &lt;strong&gt;multiple support lines, compliance rules, external integrations, or complex routing&lt;/strong&gt;, you’ll need a custom solution.
&lt;/li&gt;
&lt;li&gt;A mix of &lt;strong&gt;server-side sync + Power Automate + plugins&lt;/strong&gt; usually provides the right balance of automation and flexibility.
&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>casemanagement</category>
      <category>powerplatform</category>
      <category>powerapps</category>
      <category>dataverse</category>
    </item>
    <item>
      <title>Dynamics 365 &amp; Power Platform: What Developers Should Watch in 2025 Release Wave 2</title>
      <dc:creator>Nikhil Sarpatwari </dc:creator>
      <pubDate>Sun, 28 Sep 2025 04:43:24 +0000</pubDate>
      <link>https://forem.com/nikhildynamicsce/dynamics-365-power-platform-what-developers-should-watch-in-2025-release-wave-2-37e7</link>
      <guid>https://forem.com/nikhildynamicsce/dynamics-365-power-platform-what-developers-should-watch-in-2025-release-wave-2-37e7</guid>
      <description>&lt;p&gt;I’ve been digging through the &lt;strong&gt;2025 Release Wave 2 plans&lt;/strong&gt; and some preview articles, and I wanted to share what I found from a &lt;strong&gt;developer and maker perspective&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;While most announcements highlight Copilot and AI, there are several changes that will directly affect developers — especially around &lt;strong&gt;solution management, extensibility, and integration patterns&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here’s a summary of the Wave 2 features that stood out to me, and why they matter in real projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Dynamics development is shifting as &lt;strong&gt;Copilot and agents become part of solution design&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ALM pipelines&lt;/strong&gt; may need adjustments for new solution components.
&lt;/li&gt;
&lt;li&gt;Some older approaches, like &lt;strong&gt;DOM-based customizations&lt;/strong&gt;, are at risk with UI updates.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This release is as relevant for developers as it is for business users.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Features to Note
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Model Context Protocol (MCP) in Sales Copilot
&lt;/h3&gt;

&lt;p&gt;Wave 2 brings &lt;strong&gt;MCP integration&lt;/strong&gt; (the same protocol used by GitHub Copilot agents) into Dynamics Sales.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt; Developers can extend Copilot flows by packaging MCP “skills” as extensions. Security testing and permission handling will be essential.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Copilot Studio and Multi-Agent Support
&lt;/h3&gt;

&lt;p&gt;Makers can now build multiple &lt;strong&gt;Copilot agents&lt;/strong&gt; that integrate with Dataverse, Microsoft Graph, and Azure AI.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt; These agents will appear as new &lt;strong&gt;solution components&lt;/strong&gt;, meaning ALM pipelines must handle export, import, and versioning.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Asynchronous Dual-Write
&lt;/h3&gt;

&lt;p&gt;Dual-write now supports &lt;strong&gt;asynchronous processing&lt;/strong&gt; between FinOps and Dataverse.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt; Integrations need to account for &lt;strong&gt;eventual consistency&lt;/strong&gt;. Developers should test error handling, retries, and data reconciliation.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Natural Language ERP Queries
&lt;/h3&gt;

&lt;p&gt;End users can query ERP data using &lt;strong&gt;natural language&lt;/strong&gt; directly from Dynamics.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt; Developers must ensure that &lt;strong&gt;security roles&lt;/strong&gt; are properly enforced, so sensitive data isn’t exposed through free-text queries.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. UX and Navigation Refresh
&lt;/h3&gt;

&lt;p&gt;Wave 2 introduces a more &lt;strong&gt;streamlined header and command bar redesign&lt;/strong&gt;. Some buttons will move into overflow menus.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt; Ribbon customizations and JavaScript that rely on unsupported DOM selectors may break. It’s best to validate all custom buttons and switch to supported APIs.&lt;/p&gt;




&lt;h3&gt;
  
  
  6. Copilot Form Fill Assist and Smart Paste
&lt;/h3&gt;

&lt;p&gt;Copilot can map data from &lt;strong&gt;files, images, or clipboard content&lt;/strong&gt; into Dataverse fields.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Impact:&lt;/strong&gt; Developers may need to customize mapping rules, add validation, or create plugins to enrich the data before saving.&lt;/p&gt;




&lt;h2&gt;
  
  
  Areas to Watch
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How well &lt;strong&gt;solution upgrades&lt;/strong&gt; handle Copilot agent components in ALM.
&lt;/li&gt;
&lt;li&gt;The reliability of &lt;strong&gt;asynchronous dual-write&lt;/strong&gt; in production environments.
&lt;/li&gt;
&lt;li&gt;The effect of &lt;strong&gt;UI changes&lt;/strong&gt; on ribbon customizations.
&lt;/li&gt;
&lt;li&gt;Licensing considerations for advanced Copilot features.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to Prepare
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Test pipelines with new solution components like agents.
&lt;/li&gt;
&lt;li&gt;Build and deploy a sample agent in Copilot Studio, then try exporting and importing via DevOps.
&lt;/li&gt;
&lt;li&gt;Simulate asynchronous integration delays between FinOps and Dataverse.
&lt;/li&gt;
&lt;li&gt;Review JavaScript customizations and remove unsupported DOM dependencies.
&lt;/li&gt;
&lt;li&gt;Work closely with makers — they’ll build more with Copilot Studio, and developers will need to provide governance.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Wave 2 is moving developers toward new responsibilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Less focus on form customizations.
&lt;/li&gt;
&lt;li&gt;More focus on &lt;strong&gt;governance, extensibility, and resilient integrations&lt;/strong&gt;. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is what I found while researching Wave 2.&lt;/p&gt;

</description>
      <category>powerplatform</category>
      <category>powerapps</category>
      <category>microsoft</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Enabling Dynamics 365 Outlook App</title>
      <dc:creator>Nikhil Sarpatwari </dc:creator>
      <pubDate>Fri, 12 Sep 2025 13:12:36 +0000</pubDate>
      <link>https://forem.com/nikhildynamicsce/enabling-dynamics-365-outlook-app-5cpl</link>
      <guid>https://forem.com/nikhildynamicsce/enabling-dynamics-365-outlook-app-5cpl</guid>
      <description>&lt;p&gt;The &lt;strong&gt;Dynamics 365 App for Outlook&lt;/strong&gt; brings CRM directly into Outlook, letting users track emails, appointments, and contacts without switching windows.  &lt;/p&gt;

&lt;p&gt;The process is now much simpler — but there are still a couple of mailbox steps to ensure everything works properly.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;User has a &lt;strong&gt;Dynamics 365 CE license&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Exchange Online mailbox (server-side sync).
&lt;/li&gt;
&lt;li&gt;A Dynamics 365 security role with the privilege &lt;strong&gt;“Dynamics 365 App for Outlook.”&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Steps to Enable
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Approve and Test the Mailbox
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Advanced Settings &amp;gt; Settings &amp;gt; Email Configuration &amp;gt; Mailboxes&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Open the user’s mailbox record.
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Approve Email&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Then select &lt;strong&gt;Test &amp;amp; Enable Mailbox&lt;/strong&gt;.

&lt;ul&gt;
&lt;li&gt;The mailbox should show &lt;strong&gt;Success&lt;/strong&gt; for incoming and outgoing emails.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  2. Assign the Security Role
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;In &lt;strong&gt;Power Platform Admin Center&lt;/strong&gt; (or &lt;strong&gt;Classic Settings&lt;/strong&gt;), open the user record.
&lt;/li&gt;
&lt;li&gt;Add the role:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dynamics 365 App for Outlook User&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  3. User Access in Outlook
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;After a short wait, the app will appear automatically in:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Outlook Desktop&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outlook Web (OWA)&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;From there, users can:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Track emails and appointments.
&lt;/li&gt;
&lt;li&gt;Create new records from Outlook.
&lt;/li&gt;
&lt;li&gt;View Dynamics records inline.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Troubleshooting
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If the app doesn’t appear:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Double-check the mailbox status is &lt;strong&gt;Success&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Ensure the security role is assigned.
&lt;/li&gt;
&lt;li&gt;Wait 15–30 minutes, as rollout can take time.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Errors can be seen in the &lt;strong&gt;Mailbox Alerts&lt;/strong&gt; section.  &lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Enabling the Outlook App for Dynamics is now quicker than ever:  &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Approve + Test &amp;amp; Enable&lt;/strong&gt; the mailbox.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assign the security role.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s all it takes to boost productivity by bringing Dynamics right into Outlook! &lt;/p&gt;

</description>
      <category>powerplatform</category>
      <category>powerapps</category>
      <category>microsoft</category>
      <category>outlook</category>
    </item>
    <item>
      <title>Why Are Users Seeing Two Different “Edit Columns” and “Edit Filters” Buttons in Dynamics CE Views?</title>
      <dc:creator>Nikhil Sarpatwari </dc:creator>
      <pubDate>Fri, 12 Sep 2025 12:42:38 +0000</pubDate>
      <link>https://forem.com/nikhildynamicsce/why-are-users-seeing-two-different-edit-columns-and-edit-filters-buttons-in-dynamics-ce-views-4eji</link>
      <guid>https://forem.com/nikhildynamicsce/why-are-users-seeing-two-different-edit-columns-and-edit-filters-buttons-in-dynamics-ce-views-4eji</guid>
      <description>&lt;p&gt;If you’ve recently noticed that some users see two different versions of the &lt;strong&gt;Edit Columns&lt;/strong&gt; and &lt;strong&gt;Edit Filters&lt;/strong&gt; buttons in Dynamics 365 Customer Engagement views—one looking like the classic interface, and the other like the modern grid—you’re not alone.  &lt;/p&gt;

&lt;p&gt;I ran into this exact issue, and after some digging, the culprit turned out to be a &lt;strong&gt;feature setting in the Power Platform Admin Center&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Root Cause: Natural Language Grid and View Search
&lt;/h2&gt;

&lt;p&gt;In the &lt;strong&gt;Power Platform Admin Center&lt;/strong&gt;, there’s a setting called &lt;strong&gt;“Natural language grid and view search”&lt;/strong&gt; under &lt;em&gt;Features&lt;/em&gt;. This toggle controls how the grid experience behaves for end users.  &lt;/p&gt;

&lt;p&gt;It has three possible options:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;All users immediately&lt;/strong&gt; → Everyone sees the modern grid experience.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No one&lt;/strong&gt; → Everyone stays on the classic grid.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Users as the feature becomes available&lt;/strong&gt; → A mix of classic and modern experiences, depending on the rollout progress.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last option is where the confusion comes from. With &lt;em&gt;“Users as the feature becomes available”&lt;/em&gt;, some users get the modern grid while others remain on the classic one. That’s why different people see different versions of the &lt;strong&gt;Edit Columns&lt;/strong&gt; and &lt;strong&gt;Edit Filters&lt;/strong&gt; buttons.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7czcx6f0d6w3ds03em1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7czcx6f0d6w3ds03em1.png" alt="UsersAvailable" width="800" height="304"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Fix
&lt;/h2&gt;

&lt;p&gt;To make the experience consistent across your organisation, you need to update the setting to either:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;All users immediately&lt;/strong&gt; (if you’re ready to fully adopt the modern grid), or
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No one&lt;/strong&gt; (if you want to stay on the classic grid for now).
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This way, all users see the same interface and there’s no more back-and-forth confusion.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjioytkt0toq7qczv09da.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjioytkt0toq7qczv09da.png" alt="Allusers" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpp12bhctj2k9m59kceh0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpp12bhctj2k9m59kceh0.png" alt="Noone" width="523" height="154"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This is one of those &lt;em&gt;small but impactful&lt;/em&gt; admin settings that can cause a lot of head-scratching for end users. If your team is reporting inconsistent UI in views, check the &lt;strong&gt;Natural language grid and view search&lt;/strong&gt; setting first—it might just save you a lot of time troubleshooting.  &lt;/p&gt;




</description>
      <category>powerplatform</category>
      <category>powerapps</category>
      <category>microsoft</category>
      <category>ui</category>
    </item>
    <item>
      <title>Power Platform Admin Center – App Access Checker</title>
      <dc:creator>Nikhil Sarpatwari </dc:creator>
      <pubDate>Tue, 09 Sep 2025 00:58:20 +0000</pubDate>
      <link>https://forem.com/nikhildynamicsce/power-platform-admin-center-app-access-checker-3125</link>
      <guid>https://forem.com/nikhildynamicsce/power-platform-admin-center-app-access-checker-3125</guid>
      <description>&lt;p&gt;When troubleshooting why a user can’t access a &lt;strong&gt;model-driven app&lt;/strong&gt;, the &lt;strong&gt;App Access Checker&lt;/strong&gt; in the Power Platform Admin Center is your go-to tool.  &lt;/p&gt;

&lt;h2&gt;
  
  
  What does it do?
&lt;/h2&gt;

&lt;p&gt;The App Access Checker allows admins to simulate a user’s access to an app. Instead of trial and error, you can instantly see whether a user:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Has access to the app
&lt;/li&gt;
&lt;li&gt;Is missing security roles or privileges
&lt;/li&gt;
&lt;li&gt;Needs adjustments at the environment or app level
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to use it
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Power Platform Admin Center&lt;/strong&gt; → &lt;strong&gt;Environments&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select your environment and go to &lt;strong&gt;Settings&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Users + Permissions&lt;/strong&gt;, choose &lt;strong&gt;Users&lt;/strong&gt; -&amp;gt; choose &lt;strong&gt;App Access Checker&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Pick the app, enter the user, and run the check
&lt;/li&gt;
&lt;li&gt;Review the access results
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why it’s useful
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Saves time by validating access without impersonation
&lt;/li&gt;
&lt;li&gt;Helps identify whether the issue is role-based or app-level
&lt;/li&gt;
&lt;li&gt;Reduces user frustration by quickly pinpointing the problem
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4snleke34fa03pmxwqa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj4snleke34fa03pmxwqa.png" alt="Apps Checker" width="800" height="313"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Reference&lt;/strong&gt;: &lt;a href="https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/app-access-checker" rel="noopener noreferrer"&gt;https://learn.microsoft.com/en-us/power-apps/maker/model-driven-apps/app-access-checker&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Solution Layers in Power Automate Flows: Why Solution Upgrades Don’t Remove Active Layers</title>
      <dc:creator>Nikhil Sarpatwari </dc:creator>
      <pubDate>Fri, 05 Sep 2025 07:32:10 +0000</pubDate>
      <link>https://forem.com/nikhildynamicsce/solution-layers-in-power-automate-flows-why-solution-upgrades-dont-remove-active-layers-2n94</link>
      <guid>https://forem.com/nikhildynamicsce/solution-layers-in-power-automate-flows-why-solution-upgrades-dont-remove-active-layers-2n94</guid>
      <description>&lt;p&gt;If you’ve ever worked with Power Automate flows in a managed Production environment, you may have run into this situation:&lt;br&gt;
someone makes a quick change directly in Production, and suddenly a new solution layer is sitting on top of everything.&lt;/p&gt;

&lt;p&gt;That usually leads to the question:&lt;br&gt;
“If I deploy a managed solution upgrade, will it overwrite that active layer and fix things?”&lt;/p&gt;

&lt;p&gt;The short answer is &lt;strong&gt;no&lt;/strong&gt;. Let me explain why.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;How solution layers actually work&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every component in Dataverse (flows, forms, views, apps, and so on) has layers that stack on each other:&lt;/p&gt;

&lt;p&gt;Managed layers come from imported managed solutions.&lt;/p&gt;

&lt;p&gt;Unmanaged “Active” layer is created whenever someone edits directly in the environment.&lt;/p&gt;

&lt;p&gt;The active layer always wins. That means whatever change was made in Production will stay in place, even after you bring in a new managed solution version.&lt;/p&gt;

&lt;p&gt;[ Unmanaged Active Layer ]   ← always on top if it exists&lt;br&gt;
[ Managed Upgrade Layer ]&lt;br&gt;
[ Managed Base Layer ]&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Why a solution upgrade doesn’t fix it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you import a new solution with the upgrade option, or even choose “overwrite customizations,” it only applies to conflicts between managed layers.&lt;br&gt;
The unmanaged active layer is untouched. Because it sits on top, it continues to override whatever you just deployed.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;How to get rid of the active layer?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want your managed solution version to take effect again, you need to remove the unmanaged layer:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open the flow from inside the solution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to More → Details → Solution layers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Remove unmanaged customizations.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once you do this, the flow goes back to the managed version delivered by your solution.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Avoiding the problem in the future&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Try not to edit components directly in Production. Make changes in Dev or Test and deploy them forward.&lt;/p&gt;

&lt;p&gt;Limit maker permissions in Production so flows can’t be tweaked there.&lt;/p&gt;

&lt;p&gt;Use CI/CD pipelines (Azure DevOps or similar) so deployments are consistent and auditable.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The takeaway&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Deploying a managed solution upgrade will not clear out an unmanaged active layer. If you want your solution version to apply, you’ll need to reset the component back to its base managed layer.&lt;/p&gt;




</description>
      <category>powerplatform</category>
      <category>powerapps</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Adding Dynamics 365 Users through Security Roles as Members</title>
      <dc:creator>Nikhil Sarpatwari </dc:creator>
      <pubDate>Tue, 02 Sep 2025 05:11:37 +0000</pubDate>
      <link>https://forem.com/nikhildynamicsce/adding-dynamics-365-users-through-security-roles-as-members-5hgi</link>
      <guid>https://forem.com/nikhildynamicsce/adding-dynamics-365-users-through-security-roles-as-members-5hgi</guid>
      <description>&lt;p&gt;In Dynamics 365 CE and Dataverse, security is managed through &lt;strong&gt;Security Roles&lt;/strong&gt;. A straightforward way to give users access is by adding them as members of a role.  &lt;/p&gt;

&lt;p&gt;You can also do this directly in the Power Platform Admin Center, which is handy when you need to add multiple users to the same role at once.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to add users as members of a security role
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;strong&gt;Power Platform Admin Center&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Select your &lt;strong&gt;environment&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings → Security Roles&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Choose the &lt;strong&gt;security role&lt;/strong&gt; you want to update.
&lt;/li&gt;
&lt;li&gt;From the top ribbon, select &lt;strong&gt;Members&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add People&lt;/strong&gt;, search for the users, and confirm.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once added, those users will inherit the permissions defined by that role.&lt;/p&gt;




&lt;h2&gt;
  
  
  Limitations to keep in mind
&lt;/h2&gt;

&lt;p&gt;While this method is quick and easy, it does have some limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bulk updates are limited&lt;/strong&gt;: you can only add a few users at a time.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Business Unit restrictions&lt;/strong&gt;: a user must be in the same Business Unit as the role to be added.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No automation or logic&lt;/strong&gt;: users must be added manually—there is no way to assign roles dynamically based on department or job title.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Harder to govern at scale&lt;/strong&gt;: it’s more difficult to track and audit these assignments across large organizations.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Navigation challenges&lt;/strong&gt;: the members screen is not always efficient when dealing with many users.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  When this approach works well
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Adding a small number of users during onboarding.
&lt;/li&gt;
&lt;li&gt;Assigning roles in test or development environments.
&lt;/li&gt;
&lt;li&gt;Making quick adjustments where automation is not needed.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Alternatives for larger or automated scenarios
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;strong&gt;Power Automate&lt;/strong&gt; to assign roles during onboarding or other events.
&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;PowerShell scripts&lt;/strong&gt; to handle large, bulk assignments across environments.
&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;XrmToolBox plugins&lt;/strong&gt; (like User Roles Manager) for mass updates and better visibility.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;Adding users to security roles as members through the Power Platform Admin Center is a simple option for smaller teams or one-off assignments. For larger organizations or long-term governance, automation and admin tools are a better fit.&lt;/p&gt;

</description>
      <category>powerplatform</category>
      <category>powerapps</category>
      <category>security</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Dynamics 365: Group By in Views – A Game Changer!</title>
      <dc:creator>Nikhil Sarpatwari </dc:creator>
      <pubDate>Mon, 25 Aug 2025 02:06:33 +0000</pubDate>
      <link>https://forem.com/nikhildynamicsce/dynamics-365-group-by-in-views-a-game-changer-4d01</link>
      <guid>https://forem.com/nikhildynamicsce/dynamics-365-group-by-in-views-a-game-changer-4d01</guid>
      <description>&lt;p&gt;If you spend a lot of time in &lt;strong&gt;Dynamics 365 views&lt;/strong&gt;, this one’s for you.  &lt;/p&gt;

&lt;p&gt;Until recently, if you wanted to &lt;em&gt;group&lt;/em&gt; records — say by year, month, or quarter — you either had to export everything to Excel or create a chart/dashboard.&lt;br&gt;&lt;br&gt;
It worked, but… honestly, it was a bit of a hassle.  &lt;/p&gt;

&lt;p&gt;Now there’s a much simpler way: &lt;strong&gt;Group By in views&lt;/strong&gt; &lt;/p&gt;




&lt;h2&gt;
  
  
  What’s new?
&lt;/h2&gt;

&lt;p&gt;When you’re looking at a view and click on a date column (like &lt;em&gt;Modified On&lt;/em&gt;), you’ll notice a new &lt;strong&gt;Group By&lt;/strong&gt; option.&lt;br&gt;&lt;br&gt;
You can now group your records instantly by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Year
&lt;/li&gt;
&lt;li&gt;Quarter
&lt;/li&gt;
&lt;li&gt;Month
&lt;/li&gt;
&lt;li&gt;Week
&lt;/li&gt;
&lt;li&gt;Day
&lt;/li&gt;
&lt;li&gt;Fiscal period
&lt;/li&gt;
&lt;li&gt;Fiscal year
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All without leaving the view you’re in.  &lt;/p&gt;




&lt;h2&gt;
  
  
  Why this is awesome
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quick wins&lt;/strong&gt; – Need to see how many cases were updated last month? Two clicks.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No more Excel shuffle&lt;/strong&gt; – Stay inside Dynamics instead of exporting just to do grouping.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User friendly&lt;/strong&gt; – Anyone can use it. No special setup, no advanced reporting knowledge.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Example in action
&lt;/h2&gt;

&lt;p&gt;I was checking a list of accounts recently and just wanted to see when they were last modified. Instead of messing with filters or creating a chart, I grouped by &lt;strong&gt;Year&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;Boom!! I instantly saw the breakdown — and it honestly felt like a mini built-in report right there in the view.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxv7zic26bkph4k7e4euc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxv7zic26bkph4k7e4euc.png" alt="Group By Image" width="308" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwnkogrwy4zmb18t2uqu8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwnkogrwy4zmb18t2uqu8.png" alt="GroupBy description" width="800" height="182"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Note on Limits
&lt;/h2&gt;

&lt;p&gt;Group By is super handy, but there’s one thing to watch out for:&lt;br&gt;&lt;br&gt;
Dynamics 365 caps grouping and aggregation at &lt;strong&gt;50,000 records&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;If your dataset is bigger than that, you’ll see this error:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“The maximum record limit of 50000 is exceeded. Reduce the number of aggregated or grouped records.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhulc41rirtiq2k9qljef.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhulc41rirtiq2k9qljef.png" alt="Max limit" width="800" height="25"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How to enable "Group By"
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Out of the box&lt;/strong&gt; – You don’t need to explicitly enable it; it’s available in the modern grid experience (Unified Interface).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ensure that&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You are using Dataverse tables (entities) in the modern UI (not the legacy web client).&lt;/li&gt;
&lt;li&gt;The view you’re working on includes a date field (e.g., Created On, Modified On, Custom Date).
→ Group By works best with date/time fields.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;This is one of those small features that makes a big difference.&lt;br&gt;&lt;br&gt;
It’s not flashy, but it saves time and keeps you in the flow.  &lt;/p&gt;

&lt;p&gt;I know I’ll be using it a lot… especially for those quick “just show me the trend” moments.  &lt;/p&gt;




</description>
      <category>powerplatform</category>
      <category>dynamicsce</category>
      <category>powerapps</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Debugging in Dynamics 365 CE – Part 5: Security &amp; Access Issues</title>
      <dc:creator>Nikhil Sarpatwari </dc:creator>
      <pubDate>Sun, 24 Aug 2025 04:51:07 +0000</pubDate>
      <link>https://forem.com/nikhildynamicsce/debugging-in-dynamics-365-ce-part-5-security-access-issues-33an</link>
      <guid>https://forem.com/nikhildynamicsce/debugging-in-dynamics-365-ce-part-5-security-access-issues-33an</guid>
      <description>&lt;p&gt;So far, we’ve tackled:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Part 1&lt;/strong&gt; – Debugging JavaScript&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Part 2&lt;/strong&gt; – Debugging Plugins in DEV&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Part 3&lt;/strong&gt; – Debugging in Sandbox &amp;amp; Production&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Part 4&lt;/strong&gt; – Debugging Power Automate Flows &amp;amp; Integrations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now let’s talk about one of the most frustrating but common pain points: &lt;strong&gt;security and access issues in Dynamics 365 CE&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Security Debugging Is Tricky
&lt;/h2&gt;

&lt;p&gt;When a user says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I can’t see this record”&lt;br&gt;&lt;br&gt;
or&lt;br&gt;&lt;br&gt;
“The button is greyed out”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;…it could be due to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security roles&lt;/li&gt;
&lt;li&gt;Business units&lt;/li&gt;
&lt;li&gt;Teams&lt;/li&gt;
&lt;li&gt;Hierarchy settings&lt;/li&gt;
&lt;li&gt;Field-level security&lt;/li&gt;
&lt;li&gt;Or even a missing environment variable for an app control&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Debugging Techniques
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security Role Checker&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Use the &lt;strong&gt;Check Access&lt;/strong&gt; button (on record ribbon) to see why a user can/can’t access.&lt;br&gt;&lt;br&gt;
It breaks down privileges (Read, Write, Append, AppendTo, etc.).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;User Access via Teams &amp;amp; Business Units&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Remember: a user’s effective access = roles assigned directly + roles via teams.&lt;br&gt;&lt;br&gt;
Always confirm the user is in the right business unit — roles are BU-scoped!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Field-Level Security&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Sometimes the form loads but specific fields are hidden/locked.&lt;br&gt;&lt;br&gt;
Verify if field-level security profiles are blocking access.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Apps &amp;amp; Controls&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
With model-driven apps, sometimes the issue isn’t security — it’s App Designer restrictions or environment variables missing after deployment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Audit &amp;amp; Logs&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Use the &lt;strong&gt;Audit log&lt;/strong&gt; to check if an action was attempted but blocked.&lt;br&gt;&lt;br&gt;
Pair this with plugin trace logs to see if it failed mid-execution.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Example: Using Check Access
&lt;/h2&gt;

&lt;p&gt;On any record → click &lt;strong&gt;...&lt;/strong&gt; → &lt;strong&gt;Check Access&lt;/strong&gt; → see a list of users/teams and their effective privileges.&lt;br&gt;&lt;br&gt;
This is a lifesaver when you’re stuck between “user swears they had access yesterday” and “nothing changed.”&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Start with &lt;strong&gt;Check Access&lt;/strong&gt; — it narrows the problem fast.&lt;/li&gt;
&lt;li&gt;Always map &lt;strong&gt;roles + teams + business unit&lt;/strong&gt; to understand effective permissions.&lt;/li&gt;
&lt;li&gt;Don’t forget &lt;strong&gt;field-level security&lt;/strong&gt;, &lt;strong&gt;app access&lt;/strong&gt;, and &lt;strong&gt;environment variables&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Sometimes it’s not a bug — it’s just security doing its job.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;📖 &lt;strong&gt;Earlier posts in the series&lt;/strong&gt;:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Part 1 – &lt;a href="https://dev.to/nikhildynamicsce/debugging-javascript-in-dynamics-365-ce-forms-ribbons-and-pcfs-10g9"&gt;Debugging JavaScript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Part 2 – &lt;a href="https://dev.to/nikhildynamicsce/debugging-in-dynamics-ce-part-2-plugins-3ln7"&gt;Debugging Plugins in DEV&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Part 3 – &lt;a href="https://dev.to/nikhildynamicsce/debugging-in-dynamics-365-ce-part-3-server-side-sandbox-vs-production-4i6d"&gt;Debugging in Sandbox &amp;amp; Production&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Part 4 – &lt;a href="https://dev.to/nikhildynamicsce/debugging-in-dynamics-365-ce-part-4-power-automate-flows-integrations-47f9"&gt;Debugging Power Automate Flows &amp;amp; Integrations&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>security</category>
      <category>microsoft</category>
      <category>powerplatform</category>
      <category>powerapps</category>
    </item>
    <item>
      <title>Debugging in Dynamics 365 CE – Part 4: Power Automate Flows &amp; Integrations</title>
      <dc:creator>Nikhil Sarpatwari </dc:creator>
      <pubDate>Sun, 24 Aug 2025 04:26:43 +0000</pubDate>
      <link>https://forem.com/nikhildynamicsce/debugging-in-dynamics-365-ce-part-4-power-automate-flows-integrations-47f9</link>
      <guid>https://forem.com/nikhildynamicsce/debugging-in-dynamics-365-ce-part-4-power-automate-flows-integrations-47f9</guid>
      <description>&lt;p&gt;We’ve covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Part 1&lt;/strong&gt; – Debugging JavaScript
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Part 2&lt;/strong&gt; – Debugging Plugins in DEV
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Part 3&lt;/strong&gt; – Debugging in Sandbox &amp;amp; Production
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now it’s time to talk about &lt;strong&gt;Power Automate flows and integrations&lt;/strong&gt; — an area where many of us spend countless hours scratching our heads.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Challenge with Flows
&lt;/h2&gt;

&lt;p&gt;Unlike plugins, you can’t attach a debugger to a flow. Instead, you need to rely on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Run history&lt;/strong&gt; (inputs/outputs at each step)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error handling&lt;/strong&gt; (Configure run after, Try/Catch patterns)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connection references&lt;/strong&gt; (yes, they break more often than we’d like!)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Environment variables&lt;/strong&gt; for dynamic values
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Debugging Techniques
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Run History &amp;amp; Peek Code
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Always start by checking &lt;strong&gt;Run history&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;“Peek code”&lt;/strong&gt; to inspect raw JSON inputs/outputs — it often reveals type mismatches, missing fields, or null values.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Scopes &amp;amp; Error Handling
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Wrap actions in &lt;strong&gt;Scope containers&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;On failure, capture error details.
&lt;/li&gt;
&lt;li&gt;Use a &lt;strong&gt;parallel scope&lt;/strong&gt; (success vs. failure path) to log exceptions gracefully.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please refer to my LinkedIn post &lt;a href="https://www.linkedin.com/posts/nikhil-sarpatwari-1a52b636_power-automate-stop-letting-your-flows-fail-activity-7300474698708959232-QEIk?utm_source=share&amp;amp;utm_medium=member_android&amp;amp;rcm=ACoAAAeE3I0BU1KJMHiiWfxN2O4bbgxc_8eHgWk" rel="noopener noreferrer"&gt;Power Automate: Stop Letting Your Flows Fail Silently!&lt;/a&gt; for details on how to set it up.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Connection References
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Broken flows after deployment?
&lt;/li&gt;
&lt;li&gt;Check if the &lt;strong&gt;connection reference&lt;/strong&gt; is valid in the target environment.
&lt;/li&gt;
&lt;li&gt;Automate overrides during deployment (DevOps pipelines help here).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Logging &amp;amp; Notifications
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a simple &lt;strong&gt;Log entity/table&lt;/strong&gt; in Dataverse to capture errors.
&lt;/li&gt;
&lt;li&gt;Add &lt;strong&gt;Teams/email notifications&lt;/strong&gt; with correlation IDs so you can trace the issue back.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Debugging Integrations
&lt;/h2&gt;

&lt;p&gt;When dealing with external systems (e.g., Azure Functions, Service Bus, FinOps):  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always log &lt;strong&gt;request/response payloads&lt;/strong&gt; (sanitized if sensitive).
&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Retry policies&lt;/strong&gt; and &lt;strong&gt;dead-letter queues&lt;/strong&gt; for resiliency.
&lt;/li&gt;
&lt;li&gt;Leverage &lt;strong&gt;Application Insights&lt;/strong&gt; for distributed tracing.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Example: Logging Flow Errors
&lt;/h2&gt;

&lt;p&gt;Here’s a simple pattern using a failure scope:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Failed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"error"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@{result('Update_Record')?['body/error/message']}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"correlationId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@{workflow()?['run']['id']}"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This way you know &lt;strong&gt;what failed&lt;/strong&gt;, &lt;strong&gt;why&lt;/strong&gt;, and &lt;strong&gt;how to trace it back&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Flows are only as transparent as you make them.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run history&lt;/strong&gt; + &lt;strong&gt;good error handling&lt;/strong&gt; + &lt;strong&gt;structured logging&lt;/strong&gt; = faster debugging.
&lt;/li&gt;
&lt;li&gt;For integrations, think end-to-end: &lt;strong&gt;payloads&lt;/strong&gt;, &lt;strong&gt;retries&lt;/strong&gt;, &lt;strong&gt;monitoring&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;📖 &lt;strong&gt;Earlier posts in the series&lt;/strong&gt;:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Part 1&lt;/strong&gt; – &lt;a href="https://dev.to/nikhildynamicsce/debugging-javascript-in-dynamics-365-ce-forms-ribbons-and-pcfs-10g9"&gt;Debugging JavaScript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Part 2&lt;/strong&gt; – &lt;a href="https://dev.to/nikhildynamicsce/debugging-in-dynamics-ce-part-2-plugins-3ln7"&gt;Debugging Plugins in DEV&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Part 3&lt;/strong&gt; – &lt;a href="https://dev.to/nikhildynamicsce/debugging-in-dynamics-365-ce-part-3-server-side-sandbox-vs-production-4i6d"&gt;Debugging in Sandbox &amp;amp; Production&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>powerautomate</category>
      <category>powerapps</category>
      <category>powerplatform</category>
      <category>dataverse</category>
    </item>
    <item>
      <title>Debugging in Dynamics 365 CE – Part 3: Server-Side (Sandbox vs. Production)</title>
      <dc:creator>Nikhil Sarpatwari </dc:creator>
      <pubDate>Sun, 24 Aug 2025 03:31:34 +0000</pubDate>
      <link>https://forem.com/nikhildynamicsce/debugging-in-dynamics-365-ce-part-3-server-side-sandbox-vs-production-4i6d</link>
      <guid>https://forem.com/nikhildynamicsce/debugging-in-dynamics-365-ce-part-3-server-side-sandbox-vs-production-4i6d</guid>
      <description>&lt;p&gt;In Part 1, we looked at debugging &lt;strong&gt;JavaScript&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
In Part 2, we explored plugin debugging in DEV with the &lt;strong&gt;Plugin Registration Tool&lt;/strong&gt; and &lt;strong&gt;plugin trace logs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Now, let’s dive into something trickier: debugging in &lt;strong&gt;Sandbox and Production environments&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Sandbox &amp;amp; Production Debugging Matters
&lt;/h2&gt;

&lt;p&gt;When issues arise outside DEV, attaching a debugger isn’t always an option. Instead, you rely on &lt;strong&gt;trace logs&lt;/strong&gt;, &lt;strong&gt;custom logging&lt;/strong&gt;, and &lt;strong&gt;smart error handling&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is where real-world debugging skills shine—balancing performance, user experience, and capturing enough detail to diagnose issues effectively.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tools in Your Toolkit
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Plugin Trace Logs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Enable them in &lt;strong&gt;Sandbox&lt;/strong&gt; for detailed exception messages.&lt;/li&gt;
&lt;li&gt;Adjust the logging level (&lt;code&gt;Exception&lt;/code&gt;, &lt;code&gt;All&lt;/code&gt;) based on the scenario.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Custom Logging
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a lightweight logging entity/table (e.g., &lt;code&gt;new_pluginlog&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Store details like:

&lt;ul&gt;
&lt;li&gt;Correlation ID&lt;/li&gt;
&lt;li&gt;Message name&lt;/li&gt;
&lt;li&gt;Record ID&lt;/li&gt;
&lt;li&gt;Exception stack trace&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Implement &lt;strong&gt;cleanup/retention policies&lt;/strong&gt; to avoid database bloat.&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Correlation IDs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Every error in Dynamics is tied to a &lt;strong&gt;correlation ID&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Combine with &lt;strong&gt;Application Insights&lt;/strong&gt; or your custom log table for cross-referencing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Application Insights / Azure Monitor
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;For enterprise scenarios, push plugin logs to &lt;strong&gt;Application Insights&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Benefit from rich querying, dashboards, and alerting.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Key Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Never&lt;/strong&gt; debug directly in Production with a debugger attached—it’s unsupported and unsafe.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;Sandbox&lt;/strong&gt; with production-like data to replicate issues before attempting fixes.&lt;/li&gt;
&lt;li&gt;Log enough detail to reproduce bugs without leaking sensitive information.&lt;/li&gt;
&lt;li&gt;Implement &lt;strong&gt;feature flags&lt;/strong&gt; or &lt;strong&gt;environment variables&lt;/strong&gt; for toggling verbose logging safely.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Example: Logging Exception with Correlation ID
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Exception&lt;/span&gt; &lt;span class="n"&gt;ex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;tracingService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Trace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Plugin Error: {0}"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ex&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToString&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
    &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;log&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Entity&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"new_pluginlog"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"new_name"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;$"Error on &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MessageName&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"new_correlationid"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CorrelationId&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToString&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"new_errordetails"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ex&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToString&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;service&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;throw&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;Debugging in &lt;strong&gt;Sandbox and Production&lt;/strong&gt; isn’t about attaching a debugger—it’s about &lt;strong&gt;visibility&lt;/strong&gt;, &lt;strong&gt;traceability&lt;/strong&gt;, and &lt;strong&gt;safe practices&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
With the right mix of trace logs, custom logging, correlation IDs, and monitoring tools, you can diagnose even the trickiest issues without compromising stability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stay tuned for Part 4&lt;/strong&gt;, where I’ll cover debugging &lt;strong&gt;Power Automate flows&lt;/strong&gt; and &lt;strong&gt;integrations&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;📖 &lt;strong&gt;If you missed them:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Part 1 – Debugging JavaScript&lt;/li&gt;
&lt;li&gt;Part 2 – Debugging Plugins in DEV&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>powerplatform</category>
      <category>plugins</category>
      <category>microsoft</category>
      <category>dynamicsce</category>
    </item>
  </channel>
</rss>
