It has been a vexing challenge to keep Contact records updated with information that changes on their parent Account Record. The only solution to date has been to write a plugin to update Child records when the Parent record is updated. This required someone who knew the SDK and could write C# code. Once it got coded it was expensive to maintain as any change in the logic required getting the developer involved again. It wasn’t Functional Consultant friendly.
Microsoft Flow comes to the rescue! Using the Common Data Service triggers and actions with a little bit of geeky expression writing thrown in, it now can be done and updated easily.
The example below is for the typical Account – Contact relationship. But it could be morphed into any entity type that use parent/child relationships.
I will outline the 3.5 step process.
Step 1 – Create the Trigger event – in this case I have set the trigger to fire when an Account record is updated without specifying any specific field. I am also configuring it to run only on records I own.
Step 2 – This is where I tell Flow to find all the Contact records whose Parent record is the one from the previous step. The key element here is the ODATA filter query (thank you David Yack for your hint) – be sure to include the underscores. The dynamic value is the Account GUID from the record in Step 1.
Step 3 – Now select the Update Record Action. Once you do this and fill in the fields, Flow takes care of the Apply to each loop. So don’t get confused by this and look for a Apply to each. You don’t need to do this. Just add the Update Record action.
Step 3.5 – This is where you specify which fields in the Parent Account (the source) are pushed to the Child Record(s) (the target). In this example I am getting the Main Phone number field from the Account and updating all the Contacts records Business Phone Field.
My thanks to Joel Lindstrom for posing this question to me that got me thinking about the solution.