A setting that stored correctly, read back correctly, and was never in force

The automation that raises sales process tasks had raised the same one twice, seconds apart. Each of its eighteen checks looks for an existing task and then creates one if it finds none, which is a question rather than a rule, and two runs happening at once both pass it. The run history settled it. […]

In this series · Part 21 of 27

1Dynamics 365 CRM: API integration + change-control repo2Dynamics 365 CRM: Last Contact Engagement tracking on Accounts3Turning a sales-intelligence export into a clean CRM data model4Dynamics 365 CRM: contacts inherit their company’s website, and emails timestamp by send time5Your SEO health now lives as a dashboard inside the CRM6Contact form duplicate detection now reads the request, not just the address7Marketing list members now show engagement and account fit8Campaign responses now create leads behind a confirmation step9Three CRM automations passed their tests without running the code that had just changed10A signature defect that three mailboxes agreed was not there11Why a corrected email signature kept sending the old one12A read-only CRM endpoint for scoring outside the desktop13Choosing what runs the AI layer in the CRM sales process14Asking whether a partner is involved, instead of inferring it15An email step in the sales process can now be excused, not only sent16The rehearsal that guards every process change had been failing silently17A one to one email from a lead left the engagement record blank18Two local dependencies, and only one was obvious19Filing a generated document to the record automatically20One meeting that served two process steps, recorded as two21A setting that stored correctly, read back correctly, and was never in force22Generating a product catalogue from one canonical file23Three date fields that existed on every row, and had never once been written24Unused, unreferenced, and still not safe to delete25A measure that could not record early26A sales automation that runs as itself, not as an administrator27A stage change that was refused, and reported as a success

On this page

Free Revenue Lifecycle Assessment

Connect with Marissa Wright to receive a free Revenue Lifecycle Assessment Report on your own business.

Book a consult →

The automation that raises sales process tasks had raised the same one twice, seconds apart. Each of its eighteen checks looks for an existing task and then creates one if it finds none, which is a question rather than a rule, and two runs happening at once both pass it.

  • The run history settled it. Two runs that overlapped produced both duplicate pairs, and a third run seconds later, which overlapped nothing, produced exactly one task. The gap that had looked like a coincidence was the gap that let the earlier runs finish.
  • The obvious remedy is to make the automation run one at a time. That setting was written into the live definition, read back correctly, and survived switching the automation off and on. Runs kept overlapping anyway. Every check except the one that looked at the outcome would have reported this as done.
  • A later test carried the more useful finding. Seven genuinely overlapping runs produced seven tasks and no duplicates at all, so overlapping is necessary but not sufficient, and the fault is intermittent rather than systematic. That argued against building an automation that deletes tasks.
  • What shipped instead is a report. It reads only, follows every page rather than the first, and separates a real collision from ordinary test leftovers by whether the copies appeared in the same second. Its first run found an open pair that nobody had noticed.