<?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>DEV Community: Miwa J</title>
    <description>The latest articles on DEV Community by Miwa J (@mj_).</description>
    <link>https://dev.to/mj_</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3963534%2F3f68a7c8-4731-4ab3-9c0c-418de67937fa.jpg</url>
      <title>DEV Community: Miwa J</title>
      <link>https://dev.to/mj_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mj_"/>
    <language>en</language>
    <item>
      <title>Customizing D365 Sales — For Our Own Sales Team (Customer Zero) (3) The "Missed Tasks" Problem</title>
      <dc:creator>Miwa J</dc:creator>
      <pubDate>Thu, 02 Jul 2026 05:12:01 +0000</pubDate>
      <link>https://dev.to/tecturajpndx/customizing-d365-sales-for-our-own-sales-team-customer-zero-3-the-missed-tasks-problem-1mp7</link>
      <guid>https://dev.to/tecturajpndx/customizing-d365-sales-for-our-own-sales-team-customer-zero-3-the-missed-tasks-problem-1mp7</guid>
      <description>&lt;p&gt;This continues from &lt;a href="https://dev.to/tecturajpndx/customizing-d365-sales-for-our-own-sales-team-customer-zero-2-common-settings-15al"&gt;Part ②&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Does any of this sound familiar?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;After a customer meeting, activity entries in the SFA get missed — materials don't get sent, follow-ups slip through the cracks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The ideal flow looks like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hold a customer meeting (Outlook appointment exists) → Link meeting notes and slide URLs to D365 Sales → Issue follow-up action tasks in Sales from the notes → Set reminders in Sales&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Zone A — Next Action: Scheduled Flow Running Every Morning at 8:00
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Trigger&lt;/th&gt;
&lt;th&gt;Condition&lt;/th&gt;
&lt;th&gt;Generated Task (Message)&lt;/th&gt;
&lt;th&gt;Priority&lt;/th&gt;
&lt;th&gt;Notify&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A-1&lt;/td&gt;
&lt;td&gt;Daily 8:00 AM (Scheduled)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;cr917_stage_changed_date&lt;/code&gt; is 7+ days ago AND status is Open&lt;/td&gt;
&lt;td&gt;"[Opportunity name] stage has been stalled for 7+ days. Please check for follow-up."&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A-2&lt;/td&gt;
&lt;td&gt;Daily 8:00 AM (Scheduled)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;cr917_last_activity_date&lt;/code&gt; is 30+ days ago AND there is an open opportunity&lt;/td&gt;
&lt;td&gt;"No activity toward [Account name] for 30 days. Consider reaching out."&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A-3&lt;/td&gt;
&lt;td&gt;Daily 8:00 AM (Scheduled)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;estimatedclosedate&lt;/code&gt; is in the past AND status is not Won/Lost&lt;/td&gt;
&lt;td&gt;"[Opportunity name] close date has passed. Please update the date or confirm status."&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Zone B — Opportunity Velocity Monitoring: Mix of Scheduled and Event Triggers
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Trigger&lt;/th&gt;
&lt;th&gt;Condition&lt;/th&gt;
&lt;th&gt;Generated Task (Message)&lt;/th&gt;
&lt;th&gt;Priority&lt;/th&gt;
&lt;th&gt;Notify&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;B-1&lt;/td&gt;
&lt;td&gt;Daily 8:00 AM (Scheduled)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;estimatedvalue&lt;/code&gt; &amp;gt;= 5,000,000 AND &lt;code&gt;cr917_stage_changed_date&lt;/code&gt; is 14+ days ago&lt;/td&gt;
&lt;td&gt;"[Opportunity name] is a large deal but has had no progress in 14+ days."&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Owner + Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B-2&lt;/td&gt;
&lt;td&gt;On opportunity update (Event)&lt;/td&gt;
&lt;td&gt;Stage (&lt;code&gt;stagename&lt;/code&gt;) changes from "Proposal" → "Negotiation"&lt;/td&gt;
&lt;td&gt;"[Opportunity name] has entered the Negotiation stage. Please confirm the PO receipt deadline."&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B-3&lt;/td&gt;
&lt;td&gt;Daily 8:00 AM (Scheduled)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;closeprobability&lt;/code&gt; &amp;gt;= 80 AND &lt;code&gt;estimatedclosedate&lt;/code&gt; is within 7 days&lt;/td&gt;
&lt;td&gt;"[Opportunity name] closes in 7 days. Please do a final review."&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Zone C — Churn Prevention: Threshold Switching by Customer Type
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Trigger&lt;/th&gt;
&lt;th&gt;Condition&lt;/th&gt;
&lt;th&gt;Generated Task (Message)&lt;/th&gt;
&lt;th&gt;Priority&lt;/th&gt;
&lt;th&gt;Notify&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;C-1&lt;/td&gt;
&lt;td&gt;Daily 8:00 AM (Scheduled)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;cr917_customer_type&lt;/code&gt; = License-continuation OR Support (term contract) AND &lt;code&gt;cr917_last_activity_date&lt;/code&gt; is 60+ days ago AND no active opportunities&lt;/td&gt;
&lt;td&gt;"[Account name] may be a churn risk (License type — 60 days no activity). Please do a health check."&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C-2&lt;/td&gt;
&lt;td&gt;Daily 8:00 AM (Scheduled)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;cr917_customer_type&lt;/code&gt; = Project OR Support (spot) OR Support (time-purchase) AND &lt;code&gt;cr917_last_activity_date&lt;/code&gt; is 90+ days ago AND no active opportunities&lt;/td&gt;
&lt;td&gt;"[Account name] may be a churn risk (Project type — 90 days no activity). Consider seeding the next engagement."&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C-3&lt;/td&gt;
&lt;td&gt;1st of each month (Scheduled)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;cr917_renewal_date&lt;/code&gt; is within 90 days AND not before the 90-day window&lt;/td&gt;
&lt;td&gt;"[Account name] contract renews in 90 days. Please start preparing the renewal proposal."&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C-4&lt;/td&gt;
&lt;td&gt;1st of each month (Scheduled)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;cr917_renewal_date&lt;/code&gt; is within 30 days&lt;/td&gt;
&lt;td&gt;"[Account name] contract renews in 30 days. Please expedite PO receipt."&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Owner + Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C-5&lt;/td&gt;
&lt;td&gt;On opportunity update (Event)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;statecode&lt;/code&gt; changes to Won (no task generated)&lt;/td&gt;
&lt;td&gt;Auto-set &lt;code&gt;cr917_renewal_date&lt;/code&gt; to close date + 365 days&lt;/td&gt;
&lt;td&gt;Internal&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C-6&lt;/td&gt;
&lt;td&gt;On activity create/update (Event)&lt;/td&gt;
&lt;td&gt;A completed activity (&lt;code&gt;statecode&lt;/code&gt; = 1) is added or updated (no task generated)&lt;/td&gt;
&lt;td&gt;Write back &lt;code&gt;cr917_last_activity_date&lt;/code&gt; to current date/time&lt;/td&gt;
&lt;td&gt;Internal&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Zone D — Chained Tasks Triggered by Yes/No Flag Changes
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Trigger&lt;/th&gt;
&lt;th&gt;Condition&lt;/th&gt;
&lt;th&gt;Generated Task (Message)&lt;/th&gt;
&lt;th&gt;Priority&lt;/th&gt;
&lt;th&gt;Notify&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;D-1&lt;/td&gt;
&lt;td&gt;On opportunity update (Event)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;cr917_proposal_sent&lt;/code&gt; changes false → true&lt;/td&gt;
&lt;td&gt;"[Opportunity name] Proposal sent. Please confirm the expected PO receipt date."&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D-2&lt;/td&gt;
&lt;td&gt;On opportunity update (Event)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;cr917_po_received&lt;/code&gt; changes false → true&lt;/td&gt;
&lt;td&gt;"[Opportunity name] PO received. Please send the order acknowledgment and prepare to issue the invoice."&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D-3&lt;/td&gt;
&lt;td&gt;On opportunity update (Event)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;cr917_invoice_sent&lt;/code&gt; changes false → true&lt;/td&gt;
&lt;td&gt;"[Opportunity name] Invoice issued. Please register the acceptance confirmation deadline (30 days from now) as a task."&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Owner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D-4&lt;/td&gt;
&lt;td&gt;Daily 8:00 AM (Scheduled)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;cr917_invoice_date&lt;/code&gt; is 30+ days ago AND &lt;code&gt;cr917_acceptance_done&lt;/code&gt; = false&lt;/td&gt;
&lt;td&gt;"[Opportunity name] Acceptance is unconfirmed (30 days since invoice). Please follow up with the customer."&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Owner + Manager&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Configuring these flows can significantly reduce the operational overhead of sales management.&lt;/p&gt;

&lt;p&gt;Depending on your industry, you may need additional flows. If you have questions like "what should we do in this situation?", please feel free to leave a comment!&lt;/p&gt;

</description>
      <category>sfa</category>
      <category>microsoft</category>
      <category>powerapps</category>
      <category>powerplatform</category>
    </item>
    <item>
      <title>Customizing D365 Sales — For Our Own Sales Team (Customer Zero) (2) Common Settings</title>
      <dc:creator>Miwa J</dc:creator>
      <pubDate>Wed, 01 Jul 2026 00:28:47 +0000</pubDate>
      <link>https://dev.to/tecturajpndx/customizing-d365-sales-for-our-own-sales-team-customer-zero-2-common-settings-15al</link>
      <guid>https://dev.to/tecturajpndx/customizing-d365-sales-for-our-own-sales-team-customer-zero-2-common-settings-15al</guid>
      <description>&lt;p&gt;This continues from &lt;a href="https://dev.to/tecturajpndx/customizing-d365-sales-for-our-own-sales-team-customer-zero-preparation-56f9"&gt;Part ①&lt;/a&gt;. In Part ②, we'll configure the common settings and the internal-processing Power Automate flows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Settings
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Setting Up Connections
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open Power Automate (&lt;a href="https://make.powerautomate.com" rel="noopener noreferrer"&gt;https://make.powerautomate.com&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Go to "Data" → "Connections" → "New connection" and create a Microsoft Dataverse connection&lt;/li&gt;
&lt;li&gt;Do the same to create an Office 365 Outlook connection&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Basic Flow Creation Steps
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Click "Create" → select "Automated cloud flow" (event-triggered) or "Scheduled cloud flow" (recurring)&lt;/li&gt;
&lt;li&gt;Name flows in the format &lt;code&gt;[Zone]-[Number] [Description]&lt;/code&gt; (e.g., "A-1 Opportunity Stage Stall Alert")&lt;/li&gt;
&lt;li&gt;Always run a test after creating a flow to verify it works&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  2. Internal-Processing PA Flows — 4 Flows (Write-back portions of A-4, C-5, C-6, D-3)
&lt;/h2&gt;

&lt;p&gt;Once the common settings are done, it's time to build.&lt;/p&gt;

&lt;h3&gt;
  
  
  A-4: Write Back Stage Changed Date
&lt;/h3&gt;

&lt;p&gt;Without this flow, the stall-day calculations in A-1 and B-1 will not work. Implement this first.&lt;/p&gt;

&lt;p&gt;In Microsoft Dynamics 365 (D365), a "stage" refers to a major milestone in a process — such as a sales deal or customer engagement — that guides the responsible person through what needs to happen next. It's how a series of activities is visualized and managed.&lt;/p&gt;

&lt;p&gt;From here, all work is done in Power Automate.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Create the flow&lt;/td&gt;
&lt;td&gt;"Automated cloud flow" → select trigger "When a row is added, modified or deleted (Dataverse)"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Configure trigger&lt;/td&gt;
&lt;td&gt;Table: Opportunities / Change type: Modified&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Add condition&lt;/td&gt;
&lt;td&gt;Add a "Condition" action: "When Status Reason (statuscode) has changed"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Write-back action&lt;/td&gt;
&lt;td&gt;"Update a row (Dataverse)" → set &lt;code&gt;cr917_stage_changed_date&lt;/code&gt; to &lt;code&gt;utcNow()&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  C-5: Auto-Set Renewal Date + Auto-Create Renewal Opportunity (on Won)
&lt;/h3&gt;

&lt;p&gt;On Won close, two things happen: ① auto-set the renewal date to close date + 365 days, and ② auto-create a new Opportunity for the renewal cycle and add it to the pipeline.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Create the flow&lt;/td&gt;
&lt;td&gt;"Automated cloud flow" → trigger "When a row is added, modified or deleted (Dataverse)"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Configure trigger&lt;/td&gt;
&lt;td&gt;Table: Opportunities / Change type: Modified&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Add condition&lt;/td&gt;
&lt;td&gt;Process only when "Status (statecode)" changes to "Won"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Calculate renewal date&lt;/td&gt;
&lt;td&gt;"Variables" → "Initialize variable" (Date type), set to &lt;code&gt;addDays(triggerOutputs()?['body/actualclosedate'], 365)&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Write back to Account&lt;/td&gt;
&lt;td&gt;"Update a row (Dataverse)" → set &lt;code&gt;cr917_renewal_date&lt;/code&gt; on the Account to the variable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Auto-create renewal opportunity&lt;/td&gt;
&lt;td&gt;"Add a new row (Dataverse)" → Table: Opportunities. Subject: original name + " — Renewal " + (close year + 1) + "". Account: same Account ID. Owner: same owner ID. Estimated close date: &lt;code&gt;cr917_renewal_date&lt;/code&gt; value. Estimated amount: same as original. Stage: "Prospect" (first stage). Description: "Auto-generated — Created from Won close of " + original name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Prevent duplicate creation&lt;/td&gt;
&lt;td&gt;Before running the flow, add a condition to check whether a renewal opportunity with the same name already exists. Skip if it does.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  C-6: Write Back Last Activity Date
&lt;/h3&gt;

&lt;p&gt;This flow runs only when a completed activity (statecode = 1) is created or updated. It does not trigger on scheduling a new activity.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Create the flow&lt;/td&gt;
&lt;td&gt;"Automated cloud flow" → trigger "When a row is added, modified or deleted (Dataverse)"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Configure trigger&lt;/td&gt;
&lt;td&gt;Table: Activity Pointers (activitypointers) / Change type: Added or Modified&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Add condition&lt;/td&gt;
&lt;td&gt;Process only when "statecode" equals "1 (Completed)"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Get related Account&lt;/td&gt;
&lt;td&gt;"Get a row (Dataverse)" → retrieve the Account linked via the activity's &lt;code&gt;regardingobjectid&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Write back to Account&lt;/td&gt;
&lt;td&gt;"Update a row (Dataverse)" → set &lt;code&gt;cr917_last_activity_date&lt;/code&gt; to &lt;code&gt;utcNow()&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  D-3 (Write-back portion): Auto-Record Invoice Issue Date
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Create the flow&lt;/td&gt;
&lt;td&gt;"Automated cloud flow" → trigger "When a row is added, modified or deleted (Dataverse)"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Configure trigger&lt;/td&gt;
&lt;td&gt;Table: Opportunities / Change type: Modified&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Add condition&lt;/td&gt;
&lt;td&gt;Process only when &lt;code&gt;cr917_invoice_sent&lt;/code&gt; changes from false → true (retrieve the previous value via &lt;code&gt;triggerOutputs()&lt;/code&gt; and compare)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Write back issue date&lt;/td&gt;
&lt;td&gt;"Update a row (Dataverse)" → set &lt;code&gt;cr917_invoice_date&lt;/code&gt; to &lt;code&gt;utcNow()&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Continued in Part ③.&lt;/p&gt;

</description>
      <category>sfa</category>
      <category>microsoft</category>
      <category>powerapps</category>
      <category>powerplatform</category>
    </item>
    <item>
      <title>Customizing D365 Sales — For Our Own Sales Team (Customer Zero)(1) Preparation</title>
      <dc:creator>Miwa J</dc:creator>
      <pubDate>Tue, 30 Jun 2026 03:12:16 +0000</pubDate>
      <link>https://dev.to/tecturajpndx/customizing-d365-sales-for-our-own-sales-team-customer-zero-preparation-56f9</link>
      <guid>https://dev.to/tecturajpndx/customizing-d365-sales-for-our-own-sales-team-customer-zero-preparation-56f9</guid>
      <description>&lt;h2&gt;
  
  
  What is Customer Zero?
&lt;/h2&gt;

&lt;p&gt;"Customer Zero" is a strategy used by IT and technology companies in which the company itself becomes the "0th customer" (a test monitor) for a new product, AI service, or cloud service before rolling it out to external customers.&lt;/p&gt;

&lt;p&gt;Key benefits: faster validation and improvement (using the product in a real working environment surfaces bugs and usability issues early), and more persuasive sales pitches (a proven in-house success story/use case lets you propose to clients with confidence).&lt;/p&gt;

&lt;p&gt;With that in mind, the DX team has kicked off an initiative to get our own sales team using D365 Sales more fully.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scope
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Zone&lt;/th&gt;
&lt;th&gt;Content&lt;/th&gt;
&lt;th&gt;Implementation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Zone A&lt;/td&gt;
&lt;td&gt;Auto-generated Next Actions / detecting stalled deals&lt;/td&gt;
&lt;td&gt;Power Automate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zone B&lt;/td&gt;
&lt;td&gt;Opportunity velocity monitoring / large-deal alerts&lt;/td&gt;
&lt;td&gt;Power Automate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zone C&lt;/td&gt;
&lt;td&gt;Customer health management / churn prevention / renewal alerts&lt;/td&gt;
&lt;td&gt;Power Automate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zone D&lt;/td&gt;
&lt;td&gt;Document flow / chained tasks&lt;/td&gt;
&lt;td&gt;Power Automate + BPF&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Implementation Order
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Create custom fields (12 on Opportunity, 6 on Account)&lt;/li&gt;
&lt;li&gt;4 internal-processing Power Automate flows (write-back portions of A-4, C-5, C-6, D-3)&lt;/li&gt;
&lt;li&gt;3 Zone A alert flows (A-1, A-2, A-3)&lt;/li&gt;
&lt;li&gt;3 Zone B alert flows (B-1, B-2, B-3)&lt;/li&gt;
&lt;li&gt;6 Zone C alert flows (C-1–C-6)&lt;/li&gt;
&lt;li&gt;4 Zone D document flows (D-1–D-4)&lt;/li&gt;
&lt;li&gt;Enable and verify the Outlook Add-in&lt;/li&gt;
&lt;li&gt;Reorganize dashboard views&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  1. Creating Custom Fields (12 on Opportunity, 6 on Account)
&lt;/h2&gt;

&lt;p&gt;Custom fields are added from Power Apps using the following steps.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Open Power Apps&lt;/td&gt;
&lt;td&gt;Go to make.powerapps.com and select the target environment (sandbox)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Select the table&lt;/td&gt;
&lt;td&gt;Left menu "Tables" → select "Opportunity"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Add a column&lt;/td&gt;
&lt;td&gt;"Columns" tab → click "Add column"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Enter field info&lt;/td&gt;
&lt;td&gt;Enter display name, data type, and schema name (cr917_xxxxx), then save&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Do the same for Account&lt;/td&gt;
&lt;td&gt;Add the corresponding fields to the "Account" table the same way (also create the Initiative ② additional fields using the same steps)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Configure choices&lt;/td&gt;
&lt;td&gt;For cr917_customer_type, add a "new choice" with the two options "License-continuation type" and "Project type"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Add to forms&lt;/td&gt;
&lt;td&gt;Open the main form for each table, add the new fields, then save and publish&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Fields added to the Opportunity entity
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Note: prefixes like &lt;code&gt;cr917_&lt;/code&gt; vary by environment.&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field Name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Input Method&lt;/th&gt;
&lt;th&gt;Purpose / Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Proposal Sent &lt;code&gt;cr917_proposal_sent&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Yes/No (Boolean)&lt;/td&gt;
&lt;td&gt;Manual (rep)&lt;/td&gt;
&lt;td&gt;Checked by the rep when the proposal is sent. Trigger condition for Zone D-1 flow.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PO Received &lt;code&gt;cr917_po_received&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Yes/No (Boolean)&lt;/td&gt;
&lt;td&gt;Manual (rep)&lt;/td&gt;
&lt;td&gt;Checked when the PO is received. Trigger condition for Zone D-2 flow.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Invoice Sent &lt;code&gt;cr917_invoice_sent&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Yes/No (Boolean)&lt;/td&gt;
&lt;td&gt;Manual (rep)&lt;/td&gt;
&lt;td&gt;Checked when the invoice is issued. Flow D-3 auto-sets &lt;code&gt;cr917_invoice_date&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Acceptance Confirmed &lt;code&gt;cr917_acceptance_done&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Yes/No (Boolean)&lt;/td&gt;
&lt;td&gt;Manual (rep)&lt;/td&gt;
&lt;td&gt;Final completion flag. If left unchecked for 30 days, flow D-4 generates a reminder task.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Invoice Date &lt;code&gt;cr917_invoice_date&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Date and Time&lt;/td&gt;
&lt;td&gt;PA auto (D-3)&lt;/td&gt;
&lt;td&gt;PA automatically records the date &lt;code&gt;cr917_invoice_sent&lt;/code&gt; became Yes. Used as the baseline date for the 30-day acceptance check.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stage Changed Date &lt;code&gt;cr917_stage_changed_date&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Date and Time&lt;/td&gt;
&lt;td&gt;PA auto (A-4)&lt;/td&gt;
&lt;td&gt;PA updates this with the current date/time every time the stage changes. Used for stall-day calculations in flows A-1 and B-1.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NDA Status &lt;code&gt;cr917_nda_status&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Option Set&lt;/td&gt;
&lt;td&gt;Manual (rep)&lt;/td&gt;
&lt;td&gt;For ① NDA Signing. Three choices: Not Submitted / Under Review / Complete. PA monitors status changes to advance the flow.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NDA SharePoint URL &lt;code&gt;cr917_nda_sharepoint_url&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Text&lt;/td&gt;
&lt;td&gt;PA auto&lt;/td&gt;
&lt;td&gt;For ① NDA Signing. After signing completes, PA automatically writes in the SharePoint storage URL.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WBS Approved &lt;code&gt;cr917_wbs_approved&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Yes/No (Boolean)&lt;/td&gt;
&lt;td&gt;Manual (rep)&lt;/td&gt;
&lt;td&gt;For ⑤ Offering. Checked once WBS approval is complete. PA then advances to the order-registration step.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Order Registered &lt;code&gt;cr917_order_registered&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Yes/No (Boolean)&lt;/td&gt;
&lt;td&gt;Manual (rep)&lt;/td&gt;
&lt;td&gt;For ⑤ Offering. Order-registration completion flag. Checking it generates the flow-completion task.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Payment Confirmed &lt;code&gt;cr917_payment_confirmed&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Yes/No (Boolean)&lt;/td&gt;
&lt;td&gt;Manual (rep)&lt;/td&gt;
&lt;td&gt;Shared by ④⑥ Renewal/Inspection. Checked after payment is confirmed. If unconfirmed 60 days after invoicing, an alert fires.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SP Registered &lt;code&gt;cr917_sp_registered&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Yes/No (Boolean)&lt;/td&gt;
&lt;td&gt;Manual (rep)&lt;/td&gt;
&lt;td&gt;For ⑥ Delivery Inspection. Flag for completed SharePoint registration of deliverables. PA checks this as a precondition before triggering invoicing.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Fields added to the Account entity
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field Name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Input Method&lt;/th&gt;
&lt;th&gt;Purpose / Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Renewal Date &lt;code&gt;cr917_renewal_date&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Date&lt;/td&gt;
&lt;td&gt;PA auto + manual override&lt;/td&gt;
&lt;td&gt;PA auto-sets this to close date + 365 days on a Won close. Rep may optionally adjust it. Baseline date for flows C-3/C-4.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Last Activity Date &lt;code&gt;cr917_last_activity_date&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Date and Time&lt;/td&gt;
&lt;td&gt;PA auto (C-6)&lt;/td&gt;
&lt;td&gt;PA updates this to the current date/time whenever a completed activity (call, email, visit, CI-J integration) is created. Baseline date for A-2, C-1, C-2.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customer Type &lt;code&gt;cr917_customer_type&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Option Set&lt;/td&gt;
&lt;td&gt;Manual (rep)&lt;/td&gt;
&lt;td&gt;5 choices: License-continuation / Project / Support (spot) / Support (term contract) / Support (time-purchase). 60-day group: License-continuation, Support (term contract). 90-day group: Project, Support (spot), Support (time-purchase).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BC Registered &lt;code&gt;cr917_bc_registered&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Yes/No (Boolean)&lt;/td&gt;
&lt;td&gt;Manual (rep)&lt;/td&gt;
&lt;td&gt;For ② Partner Contract. Rep records completion of Business Central registration. Interim flag pending full BC integration.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Contract SharePoint URL &lt;code&gt;cr917_contract_sharepoint_url&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Text&lt;/td&gt;
&lt;td&gt;PA auto&lt;/td&gt;
&lt;td&gt;For ② Partner Contract. After the contract is signed, PA automatically writes in the SharePoint storage URL.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PO Number &lt;code&gt;cr917_po_number&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Text&lt;/td&gt;
&lt;td&gt;Manual (rep)&lt;/td&gt;
&lt;td&gt;For ③ PO Issuance. Rep enters the PO number when it's received; used for reconciliation at invoicing time.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>dynamics365</category>
      <category>powerautomate</category>
      <category>powerapps</category>
      <category>sfa</category>
    </item>
  </channel>
</rss>
