{"id":238,"date":"2022-01-07T13:14:08","date_gmt":"2022-01-07T13:14:08","guid":{"rendered":"https:\/\/blog.citrus-lime.com\/crmc\/?p=238"},"modified":"2022-01-07T13:14:09","modified_gmt":"2022-01-07T13:14:09","slug":"part-2-lets-get-gdpr-compliant-with-microsoft-power-automate","status":"publish","type":"post","link":"https:\/\/blog.citrus-lime.com\/crmc\/part-2-lets-get-gdpr-compliant-with-microsoft-power-automate\/","title":{"rendered":"Part 2: Let\u2019s get GDPR Compliant with Microsoft Power Automate"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/download_thumb3_thumb_42641B94.png\" alt=\"download_thumb3\" \/><\/figure><\/div>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>While it is generally a positive thing for the end user (I think it\u2019s 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\u2019s really important to get these things right.<\/p>\n\n\n\n<p><strong>To read more about the ins and outs of GDPR, and how this ties into CRM, the following articles may be helpful:<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><a href=\"https:\/\/www.crmcs.co.uk\/content\/gdpr-and-crm.aspx\">https:\/\/www.crmcs.co.uk\/content\/gdpr-and-crm.aspx<\/a><\/p><p><a href=\"https:\/\/www.crmcs.co.uk\/content\/implementing-gdpr-with-dynamics-crm.aspx\">https:\/\/www.crmcs.co.uk\/content\/implementing-gdpr-with-dynamics-crm.aspx<\/a><\/p><\/blockquote>\n\n\n\n<p>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\u2019s a high risk of missing the opportunity to renew these declarations.<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Utilising Power Automate, we now have a really simple solution to this problem<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">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.<\/h4>\n\n\n\n<p>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\u2019t affect any of your users, without actually having to log into CRM.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/1_thumb3_22490ED7.png\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/1_thumb3_thumb_5E08A78A.png\" alt=\"1_thumb3\" title=\"1_thumb3\" \/><\/a><\/figure>\n\n\n\n<p><strong>Creating a New Scheduled Flow in Power Automate<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Searching Your Whole Database<\/h3>\n\n\n\n<p>Flow allows you to search the whole database for records based on any specific criteria.<\/p>\n\n\n\n<p>You can use the \u2018List Records\u2019 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.<\/p>\n\n\n\n<p>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&nbsp;<strong>utcNow()<\/strong>&nbsp;gives the current date and time, and you can manipulate this using date\/time functions \u2013 this is useful if you want to search for records with expiry dates coming up soon!<\/p>\n\n\n\n<p>The UTC element in our formula here refers to&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Coordinated_Universal_Time\" target=\"_blank\" rel=\"noreferrer noopener\">Universal Time Coordinates<\/a>, and is an attempt to strip out some of the Daylight Saving and different Time Zone problems that can arise when working with Dates \u2013 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.<\/p>\n\n\n\n<p>Ryan Maclean has written in depth about how to manipulate date functions in flow, if you\u2019re working with flow his articles provide some real insight on how to build your own requirements in a low-code\/no-code way:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><a href=\"https:\/\/ryanmaclean365.com\/2020\/08\/03\/converting-utc-date-time-to-unix-time-with-power-automate\/\">https:\/\/ryanmaclean365.com\/2020\/08\/03\/converting-utc-date-time-to-unix-time-with-power-automate\/<\/a><\/p><p><a href=\"https:\/\/ryanmaclean365.com\/2020\/06\/26\/calculate-quarter-for-a-date-in-power-automate\/\">https:\/\/ryanmaclean365.com\/2020\/06\/26\/calculate-quarter-for-a-date-in-power-automate\/<\/a><\/p><\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">3. Creating\/Amending Records<\/h3>\n\n\n\n<p>Once you\u2019ve 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 \u2013 this can be updating the record or creating a different associated record, among other things.<\/p>\n\n\n\n<p>In order to do this, you can use the \u2018For Each\u2019 flow step to perform an action on each record. In this case it\u2019s useful to create a new task for each record the flow finds, to remind the record\u2019s owner to renew the consent declaration.<\/p>\n\n\n\n<p>When you\u2019ve created your flow, you should have a trigger action\/recurrence as the first step, then have the search step (\u2018List Records\u2019) to get all applicable records, then your for each step (\u2018Apply to each\u2019) and then your subsequent follow up action \u2013 in this case the \u2018Create a new record\u2019, as below:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/image_thumb_5A67A06C.png\" alt=\"image\" title=\"image\" \/><\/figure>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>If Flow is something you\u2019re unsure about using, get in touch and we can discuss the best options with you for going forward \u2013 particularly as we look at training to help create&nbsp;<a href=\"https:\/\/www.webopedia.com\/TERM\/C\/citizen-developer.html\" target=\"_blank\" rel=\"noreferrer noopener\">Citizen Developers<\/a>&nbsp;in our business using Low-Code Platforms such as Flow.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Checking and Running Flow<\/h3>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>You can use the Flow Checker to make sure you\u2019ve not made any mistakes in the set up, then you can set a test to run before making your flow live.<\/p>\n\n\n\n<p>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\u2019s going on with it.<\/p>\n\n\n\n<p>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:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/image_760C2C62.png\"><img decoding=\"async\" src=\"https:\/\/license.citruslime.com\/cs\/blogs\/crmcs\/image_thumb_40FF9D32.png\" alt=\"image\" title=\"image\" \/><\/a><\/figure>\n\n\n\n<p>To read a more in depth guide on how to implement this sort of flow in your Dynamics 365 instance, please read my previous&nbsp;<a href=\"https:\/\/www.crmcs.co.uk\/content\/using-a-scheduled-flow-to-trigger-expiry-date-reminders.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">step-by-step guide article here<\/a>!<\/p>\n\n\n\n<p>This new functionality means that we no longer have to worry about keeping up to date manually with these GDPR expiry dates. There\u2019s no issue about human error here, we\u2019re not leaving anything up to individuals to remember dates far in the future, and there\u2019s no need to change ownership of tasks if one person leaves a company.<\/p>\n\n\n\n<p><strong>If you have any questions for us or if this is something you would like integrating into your organisation please use our&nbsp;<a href=\"https:\/\/www.crmcs.co.uk\/contact-us.aspx\">Contact Us<\/a>&nbsp;form or call us directly on 0161 348 7360 for further information and how to get started<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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<\/p>\n","protected":false},"author":43,"featured_media":43,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"footnotes":""},"categories":[3],"tags":[],"class_list":{"0":"post-238","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-crm"},"featured_image_src":"https:\/\/blog.citrus-lime.com\/crmc\/wp-content\/uploads\/sites\/30\/2021\/11\/Untitled-design-41.png","author_info":{"display_name":"jadesmith","author_link":"https:\/\/blog.citrus-lime.com\/crmc\/author\/jadesmith\/"},"_links":{"self":[{"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/posts\/238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/users\/43"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/comments?post=238"}],"version-history":[{"count":1,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/posts\/238\/revisions"}],"predecessor-version":[{"id":239,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/posts\/238\/revisions\/239"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/media\/43"}],"wp:attachment":[{"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/media?parent=238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/categories?post=238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.citrus-lime.com\/crmc\/wp-json\/wp\/v2\/tags?post=238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}