Since GDPR came into effect 2 years ago, many companies have had to make changes to their ways of working. Companies must now gain consent from people in order to collect their personal data, and must also delete data that is not being used for its original purpose.

While it is generally a positive thing for the end user (I think it’s great that companies now have to ask my permission before bombarding me with spam) it introduced new challenges for businesses in many different areas. If companies break the rules, they can be subject to heavy fines, so it’s really important to get these things right.

To read more about the ins and outs of GDPR, and how this ties into CRM, the following articles may be helpful:

One challenge that businesses may come across with GDPR is staying up to date with declarations. When someone signs a consent declaration, it may expire in a number of years. It seems a bit silly to set up a task reminder for yourself to renew this, with a due date set for 4 years in the future say, but without some sort of reminder, there’s a high risk of missing the opportunity to renew these declarations.

Previously, using just standard CRM workflows, dealing with this issue was still a bit of a tricky one, it involves using wait conditions and/or triggering multiple child workflows.

1. Utilising Power Automate, we now have a really simple solution to this problem

Flows in Power Automate can be triggered off particular events occurring in your CRM, they can be triggered manually from a specific record, or they can be set to run on a repeating schedule.

When setting up a schedule, the options for recurrence are really flexible, from every second to every month, and also gives the option to specify which day(s) of the week to run on. This allows you to set a workflow to run at a time when it won’t affect any of your users, without actually having to log into CRM.


Creating a New Scheduled Flow in Power Automate

2. Searching Your Whole Database

Flow allows you to search the whole database for records based on any specific criteria.

You can use the ‘List Records’ flow step to do this. Within this step you can set the criteria using an ODATA filter query, or by simply creating an advanced find in dynamics with your criteria, then copying the FetchXML from that straight into the Flow query section.

You can use dynamic values in this filtering too, either based on fields within Dynamics, or some standard dynamic values that Microsoft allows, for example utcNow() gives the current date and time, and you can manipulate this using date/time functions – this is useful if you want to search for records with expiry dates coming up soon!

The UTC element in our formula here refers to Universal Time Coordinates, and is an attempt to strip out some of the Daylight Saving and different Time Zone problems that can arise when working with Dates – when coupled with different processors expecting different Date Formats (dd/MM/yyyy vs MM/dd/yyyy being a highlight between UK and US expectations!), this can make something that we expect to be simple more difficult.

Ryan Maclean has written in depth about how to manipulate date functions in flow, if you’re working with flow his articles provide some real insight on how to build your own requirements in a low-code/no-code way:

3. Creating/Amending Records

Once you’ve searched the database for these records, with Flow you then have the option to be able to perform a bulk follow up action for each record – this can be updating the record or creating a different associated record, among other things.

In order to do this, you can use the ‘For Each’ flow step to perform an action on each record. In this case it’s useful to create a new task for each record the flow finds, to remind the record’s owner to renew the consent declaration.

When you’ve created your flow, you should have a trigger action/recurrence as the first step, then have the search step (‘List Records’) to get all applicable records, then your for each step (‘Apply to each’) and then your subsequent follow up action – in this case the ‘Create a new record’, as below:


We at CRMCS have been utilising the new functionality of Power Automate in this way for a range of organisations, so we are able to analyse requirements and build bespoke solutions using the best tools for the job.

If Flow is something you’re unsure about using, get in touch and we can discuss the best options with you for going forward – particularly as we look at training to help create Citizen Developers in our business using Low-Code Platforms such as Flow.

4. Checking and Running Flow

Checking and testing our Flows is really easy, and the best possible way to get used to the Build, Try, Refine loop inherent in any kind of development.

You can use the Flow Checker to make sure you’ve not made any mistakes in the set up, then you can set a test to run before making your flow live.

Once your flow is live, you then have a central place to see the history of all your Flow runs, and their success/failure status, with information on each step, so you can easily keep track of what’s going on with it.

The flow should now create the tasks automatically on the contact record when they come up to the expiry date, with whatever text you specified for the subject/description, as below:


To read a more in depth guide on how to implement this sort of flow in your Dynamics 365 instance, please read my previous step-by-step guide article here!

This new functionality means that we no longer have to worry about keeping up to date manually with these GDPR expiry dates. There’s no issue about human error here, we’re not leaving anything up to individuals to remember dates far in the future, and there’s no need to change ownership of tasks if one person leaves a company.

If you have any questions for us or if this is something you would like integrating into your organisation please use our Contact Us form or call us directly on 0161 348 7360 for further information and how to get started


Write A Comment