Rumors have been spreading about no-code and low-code being the way forward in the world of Microsoft Dynamics 365 Customer Engagement and the Common Data Service. To my knowledge, this is the result of the marketing surrounding Flow, which is promoted as one of the three pillars of the Power Platform, the two others being PowerApps and Power BI.

In my eyes, the difference between Flow and the native CRM workflow  ("Workflow") we know today is the over 200 connectors that allow flows to work with a large variety of data. When I see this, I see the same advertisement that my cable company gives me with 500+ channels. I fear that I will only end up using a small subset of the connectors in Flow. Nonetheless, this is also the feature I admire the most with Flow. It is not trivial to combine data from different products using code.

So, when do we use flows? When you try to meet a business requirement, you must always consider what this requirement will evolve into in two weeks, six months or a year from now. I have only chosen a Workflow once or twice in my life, and that was to send emails. Once you choose to implement a workflow, calculated field or any other solution, it is hard to switch. Therefore, I always pick the most powerful option, which ends up being code.

By placing your logic in code, you make your system more maintainable. You open your solution to the powers of DevOps and strongly-typed development. You will no longer be prone to errors related to removing fields from forms or the removal of option set values, just to name a few.

Flows are declarative, which means they operate on a higher-level than code. This also means they are less expressive. If I had to convert the codebases of over 50,000 lines of plugin code to flows, then it would be unmaintainable. My mind takes me back to the horrors of giant Excel sheets that businesses used to rely upon for their core business.

....Read More