{"id":110708,"date":"2016-06-27T04:51:48","date_gmt":"2016-06-27T11:51:48","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/"},"modified":"2016-06-27T04:51:48","modified_gmt":"2016-06-27T11:51:48","slug":"advancedflow-processingresumes","status":"publish","type":"power-automate","link":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/","title":{"rendered":"An advanced flow: Processing R\u00e9sum\u00e9 Submissions"},"content":{"rendered":"

Today, we wanted to highlight some of the advanced capabilities for Microsoft Flow through a real world example: the r\u00e9sum\u00e9 screening process used by the Microsoft Flow engineering team. The three advanced capabilities we are going to focus on are:<\/p>\n

    \n
  1. Approval steps<\/li>\n
  2. Conditional branching<\/li>\n
  3. Chaining several actions together<\/li>\n<\/ol>\n

    This same Flow was also featured in the \u201cIntegrations Made Simple\u201d session at the Integrate conference in London (video available)<\/a>.<\/p>\n

    The Problem<\/h1>\n

    We are trying to aggressively grow the Microsoft Flow engineering team, and as a result have many different job postings (internal and external to Microsoft). The r\u00e9sum\u00e9 submission system Microsoft uses generates an automated e-mail to the hiring manager of the prospective team whenever a candidate submits a\u00a0r\u00e9sum\u00e9.<\/p>\n

    Before Microsoft Flow, the hiring manager (me) would have to manually shepherd the r\u00e9sum\u00e9 through a few different steps:<\/p>\n

      \n
    1. Review the r\u00e9sum\u00e9 contents to see if the candidate has the relevant experience and would qualify for the role.<\/li>\n
    2. If the candidate were interesting:\n
        \n
      1. Send them an e-mail that would:\n
          \n
        1. provide additional information \/ links about the position and team;<\/li>\n
        2. introduce them to the engineering manager on the team; and,<\/li>\n
        3. offer to set up a 1-hour technical screening phone call in the next few days.<\/li>\n<\/ol>\n<\/li>\n
        4. Add an item to my Wunderlist to keep track & mark as \u201ccomplete\u201d when we finish the tech screen. \u00a0\u00a0<\/li>\n<\/ol>\n<\/li>\n
        5. If the candidate were not interesting, send them an e-mail that would let them know that we did not think the fit was right and offer to stay in touch in the future.<\/li>\n
        6. After the above completes, delete the associated e-mails to keep my inbox clean.<\/li>\n<\/ol>\n

          Across our open positions, we get several r\u00e9sum\u00e9 submissions every day, seven days a week. Completing the above was tiresome (e.g. having the right text for setting up the tech screen, including the right people on the e-mails, etc.) and error prone \/ easy to lose track of a great candidate.\u00a0So, we set out to solve it with Microsoft Flow.<\/p>\n

          The Solution<\/h2>\n

          In order to solve this problem with flow, we needed to map the above steps into flow concepts. In particular, it would require an approval step to decide whether or not we want to \u201cscreen\u201d the candidate. Then, using the result of that approval step, we would leverage conditional branching to run different actions depending on if we want to screen the candidate or not.\u00a0<\/p>\n

          Before diving into the details for each individual step, let\u2019s check out a sneak peek at the finished flow (with nine different steps across three services!):\u00a0<\/p>\n

          \"Entire<\/p>\n

          The first step or \u201ctrigger\u201d is based on when I receive an e-mail from the automated r\u00e9sum\u00e9 submission system inside of Microsoft. This automated e-mail has a particular Subject line (i.e. starts with \u201cInternal Resume Submission\u201d) and is always marked as High Importance, so I add those filters:<\/p>\n

          \"On<\/p>\n

          The next step or \u201caction\u201d is to send myself an approval e-mail. The approval e-mail allows me to specify two different options (I chose \u201cScreen\u201d and \u201cIgnore\u201d) in the e-mail. I can also include text \/ content inside the approval e-mail, so I pass the r\u00e9sum\u00e9 details in so I can easily review. We can see that in the visual designer below:<\/p>\n

          \"Approval<\/p>\n

          Below is an example of what the approval e-mail looks like (blanking out the candidate name + r\u00e9sum\u00e9 details):<\/p>\n

          \"Approval<\/p>\n

          You can see “Screen” and “Ignore” as buttons appearing inside the e-mail.\u00a0If I click the “Screen” button, the candidate should advance to the next step in the process and start a tech screen. If I click on the “Ignore” button, we would send the candidate our regrets. These buttons work in Outlook, my iPhone or in OWA.<\/p>\n

          After the approval step (which can take a long to complete \u2013 maybe a few days if I am behind on e-mail), we need to fork the flow based on the response of “Screen” or “Ignore.” To do this we configure a \u201ccondition\u201d in the flow. The condition will allow us to run one set of actions if it is \u201cScreen\u201d, and another set of actions for \u201cIgnore.\u201d<\/p>\n

          \"Add<\/p>\n

          Inside the \u201cIf yes\u201d set of actions, we want to run a few different steps to screen the candidate. They are:<\/p>\n

            \n
          1. Delay five minutes after approval \u2013 we don\u2019t want to make it feel like an automatic reply.<\/li>\n
          2. Send an e-mail from my work e-mail (chlama@microsoft.com) that would:\n
              \n
            1. provide additional information \/ links about the position and team;<\/li>\n
            2. introduce them to the engineering manager on the team; and,<\/li>\n
            3. offer sometimes to set up a 1-hour screening phone call in the next few days.<\/li>\n<\/ol>\n<\/li>\n
            4. Add an item to my Wunderlist (list called \u201cPotential Candidates\u201d) to keep track & mark as \u201ccomplete\u201d when we finish the tech screen.\u00a0<\/li>\n<\/ol>\n

              A walkthrough via pictures can be seen below:<\/p>\n

              a. Delay five minutes after approval \u2013 we don\u2019t want to make it feel like an automatic reply:<\/p>\n

              \"Delay<\/p>\n

              b.\u00a0Send an e-mail from my work e-mail (chlama@microsoft.com) that explains the position & introduces the engineering managers:<\/p>\n

              \"Send<\/p>\n

              c.\u00a0Add an item to my Wunderlist (list called \u201cPotential Candidates\u201d) to keep track & mark as \u201ccomplete\u201d when we finish the tech screen.<\/p>\n

              \"Wunderlist\"<\/p>\n

              However, if we chose not to screen the candidate (by clicking the \u201cIgnore\u201d button in the approval e-mail), we want to run a different set of actions. We do this by adding steps to the \u201cIf no\u201d section:\u00a0<\/p>\n

              \"If<\/p>\n

              In this case, we want to have a slight delay (to make it not feel so automated) and then send our regrets to the candidate. We also use values from earlier steps (e.g. their e-mail address \/ name) to make the e-mail feel more personal \u2013 after all, we reviewed their r\u00e9sum\u00e9 carefully before deciding not to offer a tech screen. For brevity, the steps here are condensed:<\/p>\n

              \"If<\/p>\n

              As the last step of the entire Flow, we want to delete the original r\u00e9sum\u00e9 submission e-mail to avoid cluttering my inbox. We want to run it after either the \u201ccondition\u201d completes, regardless of it being an approval or a rejection. As a result, we add it at the very end of the Flow (and reference the message Id from the original \u201cOn new email\u201d trigger):<\/p>\n

              \"Delete<\/p>\n

              After completing all those steps, we end up with the final Flow, which has been happily running for a few months now:<\/p>\n

              \"Entire<\/p>\n

              If you’re interested in seeing this completed flow for yourself check out this template (which has the Microsoft-specific details removed):<\/p>\n

              Try it now!<\/a><\/p>\n

              \u00a0<\/p>\n

              Summary<\/h1>\n

              In the end, after adding all the steps (which takes just a few minutes once you are familiar with the Flow concepts of actions & triggers), we were able to automate a common process on the Flow team. As a rough estimate, this automation saves me 10-15 minutes every morning.\u00a0<\/p>\n

              Additionally, as part of walking through this Flow, we were able to highlight some of the advanced capabilities of Microsoft Flow:<\/p>\n

                \n
              1. Approval steps<\/li>\n
              2. Conditional branching<\/li>\n
              3. Chaining several actions together<\/li>\n<\/ol>\n

                Lastly, if you are a dev and would like to work on Flow, please reach out. We are hiring!<\/p>\n","protected":false},"excerpt":{"rendered":"

                Learn more about the advanced Flow capabilities through a real world example: resume submission processing for the Microsoft Flow development team. This Flow has nine steps, conditions, and uses three different services. <\/p>\n","protected":false},"author":50,"featured_media":0,"comment_status":"open","ping_status":"open","template":"","power-automate-category":[2836],"power-automate-tag":[2441,2454,2511,2600,2741],"coauthors":[24],"class_list":["post-110708","power-automate","type-power-automate","status-publish","hentry","power-automate-category-walkthroughs","power-automate-tag-advanced","power-automate-tag-approval","power-automate-tag-conditions","power-automate-tag-ftw","power-automate-tag-power-user"],"yoast_head":"\nAn advanced flow: Processing R\u00e9sum\u00e9 Submissions - 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:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"An advanced flow: Processing R\u00e9sum\u00e9 Submissions - Microsoft Power Platform Blog\" \/>\n<meta property=\"og:description\" content=\"Learn more about the advanced Flow capabilities through a real world example: resume submission processing for the Microsoft Flow development team. This Flow has nine steps, conditions, and uses three different services.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Power Platform Blog\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2024\/06\/EntireFlow-1.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 min read\" \/>\n\t<meta name=\"twitter:label2\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data2\" content=\"Charles Lamanna\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/\",\"name\":\"An advanced flow: Processing R\u00e9sum\u00e9 Submissions - Microsoft Power Platform Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2024\/06\/EntireFlow-1.png\",\"datePublished\":\"2016-06-27T11:51:48+00:00\",\"dateModified\":\"2016-06-27T11:51:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/#primaryimage\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2024\/06\/EntireFlow-1.webp\",\"contentUrl\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2024\/06\/EntireFlow-1.webp\",\"width\":622,\"height\":410,\"caption\":\"chart, bar chart\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Power Automate\",\"item\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"An advanced flow: Processing R\u00e9sum\u00e9 Submissions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#website\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/\",\"name\":\"Microsoft Power Platform Blog\",\"description\":\"Innovate with Business Apps\",\"publisher\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.microsoft.com\/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:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization\",\"name\":\"Microsoft Power Platform Blog\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"contentUrl\":\"https:\/\/www.microsoft.com\/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:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"An advanced flow: Processing R\u00e9sum\u00e9 Submissions - 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:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/","og_locale":"en_US","og_type":"article","og_title":"An advanced flow: Processing R\u00e9sum\u00e9 Submissions - Microsoft Power Platform Blog","og_description":"Learn more about the advanced Flow capabilities through a real world example: resume submission processing for the Microsoft Flow development team. This Flow has nine steps, conditions, and uses three different services.","og_url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/","og_site_name":"Microsoft Power Platform Blog","og_image":[{"url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2024\/06\/EntireFlow-1.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 min read","Written by":"Charles Lamanna"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/","name":"An advanced flow: Processing R\u00e9sum\u00e9 Submissions - Microsoft Power Platform Blog","isPartOf":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/#primaryimage"},"image":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2024\/06\/EntireFlow-1.png","datePublished":"2016-06-27T11:51:48+00:00","dateModified":"2016-06-27T11:51:48+00:00","breadcrumb":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/#primaryimage","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2024\/06\/EntireFlow-1.webp","contentUrl":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2024\/06\/EntireFlow-1.webp","width":622,"height":410,"caption":"chart, bar chart"},{"@type":"BreadcrumbList","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/advancedflow-processingresumes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/"},{"@type":"ListItem","position":2,"name":"Power Automate","item":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/power-automate\/"},{"@type":"ListItem","position":3,"name":"An advanced flow: Processing R\u00e9sum\u00e9 Submissions"}]},{"@type":"WebSite","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#website","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/","name":"Microsoft Power Platform Blog","description":"Innovate with Business Apps","publisher":{"@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microsoft.com\/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:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#organization","name":"Microsoft Power Platform Blog","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","contentUrl":"https:\/\/www.microsoft.com\/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:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/"}}]}},"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Power Platform Blog","distributor_original_site_url":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/power-automate\/110708"}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/power-automate"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/types\/power-automate"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/comments?post=110708"}],"version-history":[{"count":0,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/power-automate\/110708\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media?parent=110708"}],"wp:term":[{"taxonomy":"power-automate-category","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/power-automate-category?post=110708"},{"taxonomy":"power-automate-tag","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/power-automate-tag?post=110708"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/coauthors?post=110708"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}