{"id":110834,"date":"2017-05-18T10:08:28","date_gmt":"2017-05-18T17:08:28","guid":{"rendered":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-automate\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/"},"modified":"2025-06-11T08:13:53","modified_gmt":"2025-06-11T15:13:53","slug":"microsoft-flow-azure-storage-webjobs-mailchimp-outlook","status":"publish","type":"post","link":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-automate\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/","title":{"rendered":"How to use Microsoft Flow to manage donations"},"content":{"rendered":"<p><em>This post was originally published by Troy Hunt, Microsoft Regional Director and MVP, on <a href=\"https:\/\/www.troyhunt.com\/microsoft-flow-azure-storage-webjobs-outlook-email\/\">his blog<\/a>. We thank him for giving us permission to reprint it.<\/em><\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>A few years back, <a href=\"https:\/\/haveibeenpwned.com\/Donate\">I added a donations page to Have I been pwned (HIBP)<\/a>. Now as I explained at the time, I didn&#8217;t particularly need them to cover my hard-cash outgoings because I run the thing on a shoestring, but as I explain on that page, it takes a <em style=\"margin: 0px; padding: 0px; border: 0px currentColor; line-height: inherit; font-family: inherit; font-size: 18.2px; font-style: italic; font-variant: inherit; font-weight: inherit; vertical-align: baseline; box-sizing: border-box; font-stretch: inherit;\">massive<\/em> amount of effort. If people want to fling me a coffee or some beers, that&#8217;s just great and I appreciate it enormously. Problem is, it&#8217;s hard to individually show that appreciation. Especially during a busy period, I can end up with a lot of coffee and I can&#8217;t realistically reply to each and every person by email thanking them or I end up with exactly the problem I describe on the donations page &#8211; no more time! But I did want to send them a thanks anyway, so here&#8217;s what I did:<\/p>\n<p>Donations are primarily done via PayPal. I get some via Bitcoin as well but notifications of a payment via BTC don&#8217;t include any identifiable information about who&#8217;s sending it. PayPal, on the other hand, sends me an email similar to this one:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1427\" height=\"703\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/PayPal-receipt.png\" width=\"812\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/PayPal-receipt.webp 812w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/PayPal-receipt-300x260.webp 300w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/PayPal-receipt-768x665.webp 768w\" sizes=\"auto, (max-width: 812px) 100vw, 812px\" \/><\/p>\n<p>This is great &#8211; I love beer! I have a rule in Outlook.com to file these away into a &#8220;Donations&#8221; folder and normally, that would be that. But wouldn&#8217;t it be nice to send a little thank you? Here&#8217;s where <a href=\"https:\/\/flow.microsoft.com\/\">Microsoft Flow<\/a> comes into play. It&#8217;s a similar deal to <a href=\"https:\/\/ifttt.com\/\">IFTTT<\/a> which I&#8217;ve used quite extensively over the years but as you&#8217;d expect, Flow plays a little nicer with the Microsoft things (i.e. native integration with Azure storage). I wanted to do some processing with these emails so I created a new Flow like this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1430\" height=\"384\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/Successful-execution-to-put-donation-in-queue.png\" width=\"675\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Successful-execution-to-put-donation-in-queue.webp 675w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Successful-execution-to-put-donation-in-queue-300x171.webp 300w\" sizes=\"auto, (max-width: 675px) 100vw, 675px\" \/><\/p>\n<p>This is actually the execution of the flow and there&#8217;s a unique one for every single donation. I&#8217;ll drill down on that in a minute but for now, notice how it ran at 20:35:26 last Friday and the donation email from PayPal above shows a transaction time of 20:35:03. That&#8217;s their time stamp too so the 23 second period encompasses them sending it, Outlook.com receiving it, processing the rule to put it in the &#8220;Donations&#8221; folder then Flow picking up the message. You can see a &#8220;trigger&#8221; and an &#8220;action&#8221; in the diagram above, let&#8217;s take a look inside that trigger:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1433\" height=\"2178\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/Trigger-that-monitors-a-folder-1.png\" width=\"617\"\/><\/p>\n<p>Here you&#8217;re seeing &#8220;Inputs&#8221; which define the trigger conditions for Outlook.com and then &#8220;Outputs&#8221; which is everything it can pull from the message. The inputs show that once a message appears in that &#8220;Donations&#8221; folder, it doesn&#8217;t matter what the importance is or if it has any attachments, it&#8217;s going to get processed. In the &#8220;Outputs&#8221; we see everything from who sent it, to the subject to the body and a bunch of other self-explanatory attributes. The question now is what should be done with this which takes us to the action:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1428\" height=\"591\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/Putting-a-message-in-the-queue.png\" width=\"616\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Putting-a-message-in-the-queue.webp 616w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Putting-a-message-in-the-queue-300x288.webp 300w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/><\/p>\n<p>This is taking the entire message and dropping it an Azure Storage Queue. So far, we&#8217;ve been looking at the output of when the Flow runs, but let&#8217;s take a look at the editor view to see how this works:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1425\" height=\"213\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/Editing-the-action-to-save-to-a-queue.png\" width=\"615\"\/><\/p>\n<p>That&#8217;s it &#8211; just dump the body into the queue! Question now is what to do next..<\/p>\n<p>I actually wanted to achieve 3 outcomes from this exercise:<\/p>\n<ol>\n<li>Send a thank you email a little while after the donation<\/li>\n<li>Store the donor&#8217;s address and PayPal transaction ID in HIBP<\/li>\n<li>Include a link to subscribe to my blog (but only if they&#8217;re not already subscribed)<\/li>\n<\/ol>\n<p>This was going to take some code because I was going to need to put data into HIBP&#8217;s relational database as well as connect to MailChimp to see if the donor had already subscribed to my blog (I didn&#8217;t want to bug them with that otherwise). I decided to do this with a WebJob and <a href=\"https:\/\/www.troyhunt.com\/azure-webjobs-are-awesome-and-you\/\">I&#8217;ve written about my love of these in the past<\/a>. And so it all began like this:<\/p>\n<pre>public static void ProcessQueueMessage([QueueTrigger(\"donation\")] string donationEmail, TextWriter log)<\/pre>\n<p>That donationEmail string is the entire body of the mail from which I could extract both the transaction ID and the donor&#8217;s email address via regex. Now in case you&#8217;re thinking &#8220;But you could get all this via the PayPal API&#8221;, I started down that path and found it painful for a number of reasons. In comparison, this was dead simple and does everything I need.<\/p>\n<p>So a few lines of code go into the WebJob and I push it out to Azure. It&#8217;s now monitoring that queue the donation emails are being dropped into and I can watch WebJob execution via the Azure Management Portal. Over there, I could see the donation I showed earlier hitting the WebJob courtesy of some diagnostic outputs I added:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1434\" height=\"197\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/WebJob-output.png\" width=\"743\"\/><\/p>\n<p>The workflow within the WebJob then goes as follows:<\/p>\n<ol>\n<li>Check the HIBP database to see if the transaction ID has already been processed. I want this to be idempotent in case the same message comes in twice.<\/li>\n<li>Hit the MailChimp API using <a href=\"https:\/\/www.nuget.org\/packages\/MailChimp.Net.V3\/\" style=\"margin: 0px; padding: 0px; border: 0px currentColor; color: #ccb285; line-height: inherit; font-family: inherit; font-size: 18px; font-style: inherit; font-variant: inherit; font-weight: inherit; vertical-align: baseline; box-sizing: border-box; font-stretch: inherit; transition-duration: 0.2s;\">MailChimp.Net pulled from NuGet<\/a>. This is to check if the donor&#8217;s email address is already subscribed.<\/li>\n<li>If the transaction hasn&#8217;t already been processed, prepare an email which may or may not also give them a link to subscribe to the blog.<\/li>\n<\/ol>\n<p>Now it was just a matter of sending the email. I could have fired it out in a transactional way using SendGrid which I use for other HIBP emails, but I wanted to make it a little more personal. I decided to create another Flow:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1432\" height=\"459\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/The-Flow-to-send-a-thankyou-email.png\" width=\"685\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/The-Flow-to-send-a-thankyou-email.webp 685w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/The-Flow-to-send-a-thankyou-email-300x201.webp 300w\" sizes=\"auto, (max-width: 685px) 100vw, 685px\" \/><\/p>\n<p>This one kicks off with a &#8220;Request&#8221; action that fired at 20:36:33 so we&#8217;re now 90 seconds into it. This action quite neat as it stands up an endpoint you can hit from your own app. When I configured it, all I had to do was define a schema for the inbound request:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1435\" height=\"455\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/Web-request-trigger.png\" width=\"617\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Web-request-trigger.webp 617w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Web-request-trigger-300x221.webp 300w\" sizes=\"auto, (max-width: 617px) 100vw, 617px\" \/><\/p>\n<p>This is literally just the donor&#8217;s email address, the subject for the email and the body. The URL at the top of the image then has a great big obfuscated string and so long as I post to that from the WebJob above, I&#8217;ll have myself a set of structured data. So I literally just created a corresponding model in .NET, serialised it and chucked it into an HttpClient then posted it off. When it ran as a result of the donation above, it looked like this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1423\" height=\"943\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/Donor-data-in-the-web-request-trigger.png\" width=\"621\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Donor-data-in-the-web-request-trigger.webp 621w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Donor-data-in-the-web-request-trigger-198x300.webp 198w\" sizes=\"auto, (max-width: 621px) 100vw, 621px\" \/><\/p>\n<p>Within the email body, there&#8217;s a section about subscribing to my blog like this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1426\" height=\"243\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/Email-body-with-HIBP-link.png\" width=\"524\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Email-body-with-HIBP-link.webp 524w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Email-body-with-HIBP-link-300x139.webp 300w\" sizes=\"auto, (max-width: 524px) 100vw, 524px\" \/><\/p>\n<p>This is a link back to HIBP with a globally unique identifier that I saved on the donor&#8217;s record when the WebJob was processing the email. When it&#8217;s followed, I verify that the GUID is correct, pull the email address associated with it then hit MailChimp&#8217;s API and subscribe the donor&#8217;s email address. When all that works and they follow the link, they then show up in MailChimp:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-medium wp-image-4945\" height=\"40\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/Donor-in-MailChimp-1-300x40.png\" width=\"300\"\/><\/p>\n<p>So that&#8217;s that done, the donor is opted in, let&#8217;s get back to the Flow and you may have noticed earlier on that I have a delay in there:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1422\" height=\"355\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/Delaying-30-mins-on-Flow.png\" width=\"613\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Delaying-30-mins-on-Flow.webp 613w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Delaying-30-mins-on-Flow-300x174.webp 300w\" sizes=\"auto, (max-width: 613px) 100vw, 613px\" \/><\/p>\n<p>The reason I&#8217;m doing this is that I didn&#8217;t want to just suddenly hit the donor with an email before they&#8217;d barely closed the PayPal tab. I figured I&#8217;d give them a half hour, come back then send them a nice little email that feels more organic. Here&#8217;s the action in the Flow that does that:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1429\" height=\"1214\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/Send-thank-you-email-action.png\" width=\"610\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Send-thank-you-email-action.webp 610w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Send-thank-you-email-action-151x300.webp 151w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Send-thank-you-email-action-515x1024.webp 515w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>This is pretty self-explanatory and it&#8217;s using the Outlook connector again but this time, obviously to send the email. Because I connected it under my own account, the sent items in my local copy of Outlook shows the message:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-1431\" height=\"387\" src=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/Thank-you-email-sent.png\" width=\"895\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Thank-you-email-sent.webp 895w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Thank-you-email-sent-300x130.webp 300w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2017\/05\/Thank-you-email-sent-768x332.webp 768w\" sizes=\"auto, (max-width: 895px) 100vw, 895px\" \/><\/p>\n<p>And it&#8217;s a genuine email from my own account so no spam problems and if the recipient wants to reply and engage, they can.<\/p>\n<p>I really like this for a number of reasons:<\/p>\n<ol>\n<li>It took me less time to build it than to write this blog post! It&#8217;s dead simple.<\/li>\n<li>It&#8217;s free for this volume of usage; you get 750 Flow executions per month and with 2 for each donation, I&#8217;d need to average more than 11 per day to exceed it.<\/li>\n<li>If I exceed it because of too many donations, $5 per month will give me 4.5k executions. This would be a good problem to have!<\/li>\n<li>Composing apps in this fashion where there are atomic units of work running independently and performing discrete tasks makes everything from troubleshooting to deployment to modifications dead simple.<\/li>\n<\/ol>\n<p>This is a really neat little solution and the good news is that you can experience it firsthand yourself! All you need to do is <a href=\"https:\/\/haveibeenpwned.com\/Donate\">start at the donations page&#8230;<\/a> \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this walkthrough, Troy Hunt, Microsoft Regional Director and MVP, shows how he used Microsoft Flow to automate PayPal donation processing, including individually thanking each donator with a personal email. This post is reprinted from Troy&#8217;s professional blog.<\/p>\n","protected":false},"author":139,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","ms-ems-related-posts":[],"footnotes":""},"audience":[3378],"content-type":[3423],"job-role":[],"product":[3474],"property":[],"topic":[],"coauthors":[2336],"class_list":["post-110834","post","type-post","status-publish","format-standard","hentry","audience-it-professional","content-type-tips-and-guides","product-power-automate"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to use Microsoft Flow to manage donations - Microsoft Power Platform Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use Microsoft Flow to manage donations - Microsoft Power Platform Blog\" \/>\n<meta property=\"og:description\" content=\"In this walkthrough, Troy Hunt, Microsoft Regional Director and MVP, shows how he used Microsoft Flow to automate PayPal donation processing, including individually thanking each donator with a personal email. This post is reprinted from Troy&#039;s professional blog.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-automate\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Power Platform Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-18T17:08:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-11T15:13:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/PayPal-receipt.png\" \/>\n\t<meta property=\"og:image:width\" content=\"812\" \/>\n\t<meta property=\"og:image:height\" content=\"703\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jessica Cook\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jessica Cook\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/\"},\"author\":[{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/jessica-cook\/\",\"@type\":\"Person\",\"@name\":\"Jessica Cook\"}],\"headline\":\"How to use Microsoft Flow to manage donations\",\"datePublished\":\"2017-05-18T17:08:28+00:00\",\"dateModified\":\"2025-06-11T15:13:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/\"},\"wordCount\":1495,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/PayPal-receipt.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/\",\"name\":\"How to use Microsoft Flow to manage donations - Microsoft Power Platform Blog\",\"isPartOf\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/PayPal-receipt.png\",\"datePublished\":\"2017-05-18T17:08:28+00:00\",\"dateModified\":\"2025-06-11T15:13:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#primaryimage\",\"url\":\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/PayPal-receipt.png\",\"contentUrl\":\"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/PayPal-receipt.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use Microsoft Flow to manage donations\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/\",\"name\":\"Microsoft Power Platform Blog\",\"description\":\"Innovate with Business Apps\",\"publisher\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization\",\"name\":\"Microsoft Power Platform Blog\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"contentUrl\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"width\":194,\"height\":145,\"caption\":\"Microsoft Power Platform Blog\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/person\/13e13742bd39bd9b344b1d8b0b9b1832\",\"name\":\"Jessica Cook\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/85f69e7bd365f5c40af5b21aac3bd86e1246b18b944dc32d2e1f2de8670f49f9?s=96&d=mm&r=g11aa5d8bbd3cff9bc3b1aa598bc56d51\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/85f69e7bd365f5c40af5b21aac3bd86e1246b18b944dc32d2e1f2de8670f49f9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/85f69e7bd365f5c40af5b21aac3bd86e1246b18b944dc32d2e1f2de8670f49f9?s=96&d=mm&r=g\",\"caption\":\"Jessica Cook\"},\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/v-jescoo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to use Microsoft Flow to manage donations - Microsoft Power Platform Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/","og_locale":"en_US","og_type":"article","og_title":"How to use Microsoft Flow to manage donations - Microsoft Power Platform Blog","og_description":"In this walkthrough, Troy Hunt, Microsoft Regional Director and MVP, shows how he used Microsoft Flow to automate PayPal donation processing, including individually thanking each donator with a personal email. This post is reprinted from Troy's professional blog.","og_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-automate\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/","og_site_name":"Microsoft Power Platform Blog","article_published_time":"2017-05-18T17:08:28+00:00","article_modified_time":"2025-06-11T15:13:53+00:00","og_image":[{"width":812,"height":703,"url":"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/PayPal-receipt.png","type":"image\/png"}],"author":"Jessica Cook","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jessica Cook","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#article","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/"},"author":[{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/jessica-cook\/","@type":"Person","@name":"Jessica Cook"}],"headline":"How to use Microsoft Flow to manage donations","datePublished":"2017-05-18T17:08:28+00:00","dateModified":"2025-06-11T15:13:53+00:00","mainEntityOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/"},"wordCount":1495,"commentCount":0,"publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#primaryimage"},"thumbnailUrl":"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/PayPal-receipt.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/","name":"How to use Microsoft Flow to manage donations - Microsoft Power Platform Blog","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#primaryimage"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#primaryimage"},"thumbnailUrl":"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/PayPal-receipt.png","datePublished":"2017-05-18T17:08:28+00:00","dateModified":"2025-06-11T15:13:53+00:00","breadcrumb":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#primaryimage","url":"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/PayPal-receipt.png","contentUrl":"https:\/\/powerautomateblogmedia.azureedge.net\/powerautomateblog\/2017\/05\/PayPal-receipt.png"},{"@type":"BreadcrumbList","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2017\/05\/18\/microsoft-flow-azure-storage-webjobs-mailchimp-outlook\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/"},{"@type":"ListItem","position":2,"name":"How to use Microsoft Flow to manage donations"}]},{"@type":"WebSite","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/","name":"Microsoft Power Platform Blog","description":"Innovate with Business Apps","publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization","name":"Microsoft Power Platform Blog","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","contentUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","width":194,"height":145,"caption":"Microsoft Power Platform Blog"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/person\/13e13742bd39bd9b344b1d8b0b9b1832","name":"Jessica Cook","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/85f69e7bd365f5c40af5b21aac3bd86e1246b18b944dc32d2e1f2de8670f49f9?s=96&d=mm&r=g11aa5d8bbd3cff9bc3b1aa598bc56d51","url":"https:\/\/secure.gravatar.com\/avatar\/85f69e7bd365f5c40af5b21aac3bd86e1246b18b944dc32d2e1f2de8670f49f9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/85f69e7bd365f5c40af5b21aac3bd86e1246b18b944dc32d2e1f2de8670f49f9?s=96&d=mm&r=g","caption":"Jessica Cook"},"url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/v-jescoo\/"}]}},"bloginabox_animated_featured_image":null,"bloginabox_display_generated_audio":false,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Power Platform Blog","distributor_original_site_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/110834","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/users\/139"}],"replies":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/comments?post=110834"}],"version-history":[{"count":1,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/110834\/revisions"}],"predecessor-version":[{"id":131267,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/110834\/revisions\/131267"}],"wp:attachment":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media?parent=110834"}],"wp:term":[{"taxonomy":"audience","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/audience?post=110834"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/content-type?post=110834"},{"taxonomy":"job-role","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/job-role?post=110834"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/product?post=110834"},{"taxonomy":"property","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/property?post=110834"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/topic?post=110834"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/coauthors?post=110834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}