{"id":42644,"date":"2025-10-27T12:18:31","date_gmt":"2025-10-27T06:48:31","guid":{"rendered":"https:\/\/www.inogic.com\/blog\/?p=42644"},"modified":"2025-10-27T14:31:17","modified_gmt":"2025-10-27T09:01:17","slug":"how-to-design-custom-approval-buttons-in-outlook-email-using-power-automate-step-by-step-guide","status":"publish","type":"post","link":"https:\/\/www.inogic.com\/blog\/2025\/10\/how-to-design-custom-approval-buttons-in-outlook-email-using-power-automate-step-by-step-guide\/","title":{"rendered":"How to Design Custom Approval Buttons in Outlook Email Using Power Automate (Step-by-Step Guide)"},"content":{"rendered":"<p><img decoding=\"async\" class=\"alignnone size-full wp-image-42656\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/How-to-Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-Step-by-Step-Guide-scaled.png\" alt=\"How to Design Custom Approval Buttons in Outlook Email Using Power Automate (Step-by-Step Guide)\" width=\"2560\" height=\"1463\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/How-to-Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-Step-by-Step-Guide-scaled.png 2560w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/How-to-Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-Step-by-Step-Guide-300x171.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/How-to-Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-Step-by-Step-Guide-1024x585.png 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/How-to-Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-Step-by-Step-Guide-768x439.png 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/How-to-Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-Step-by-Step-Guide-1536x878.png 1536w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/How-to-Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-Step-by-Step-Guide-2048x1170.png 2048w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/How-to-Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-Step-by-Step-Guide-660x377.png 660w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<p>Microsoft\u2019s standard approval emails make it easy to send and capture user feedback directly through Outlook. However, one major limitation is that when multiple users receive the same approval email, only the first response is considered, leaving others frustrated when they try to act on an already-approved request.<\/p>\n<p>To overcome this limitation and deliver a more intuitive, brand-aligned experience, we designed a customized approval interface that not only eliminates confusion but enhances user confidence and professionalism in every interaction.<\/p>\n<p><strong>The Business Challenge: Creating Seamless Email Approvals<\/strong><\/p>\n<p>While the standard Power Automate approval system works for basic tasks, it lacks flexibility\u2014especially in providing clear feedback when a request has already been completed.<\/p>\n<p>Our goal was to create a smarter, smoother process where each user action leads to a clean confirmation page that reflects the brand identity.<br \/>\nMost importantly, if a user tries to respond to a completed request, they see a clear \u201cAlready Processed\u201d message instead of an error\u2014ensuring a consistent, frustration-free experience.<\/p>\n<h3><strong>Step 1: Create a Flow to send the Email<\/strong><\/h3>\n<p>The initial process issues the approval request but does not pause for a response.<\/p>\n<p><strong>Start with a Trigger<\/strong><\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-42645\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/1Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png\" alt=\"How to Design Custom Approval Buttons in Outlook Email Using Power Automate (Step-by-Step Guide)\" width=\"877\" height=\"70\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/1Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png 451w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/1Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-300x24.png 300w\" sizes=\"(max-width: 877px) 100vw, 877px\" \/><\/p>\n<ul>\n<li>Depending on your configuration, you may utilize:<\/li>\n<li>\u201cWhen a row is created, altered, or removed\u201d (Dynamics 365)<\/li>\n<\/ul>\n<p><strong>Add Action \u201cSend an email (V2)\u201d<\/strong><\/p>\n<ul>\n<li>Create a custom email body where you can add parameters that you are using in 2<sup>nd <\/sup><\/li>\n<li>Change your email body to HTML format to create your personalized buttons.<\/li>\n<\/ul>\n<p><strong><em>Pro Tip:<\/em><\/strong><em> Design your buttons with clear labels like \u2018Approve\u2019 or \u2018Reject,\u2019 using colors that align with your brand guidelines. This helps users instantly recognize and act<\/em><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-42646\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/2Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png\" alt=\"How to Design Custom Approval Buttons in Outlook Email Using Power Automate (Step-by-Step Guide)\" width=\"332\" height=\"275\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/2Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png 332w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/2Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-300x248.png 300w\" sizes=\"(max-width: 332px) 100vw, 332px\" \/><\/p>\n<ul>\n<li>Ensure that each button contains a distinct record identifier for future reference.<\/li>\n<\/ul>\n<h3><strong>Step 2: Build the Action Handler Flow <\/strong><\/h3>\n<p>This second process activates when a person clicks on one of the buttons.<\/p>\n<p><strong>Set Up the HTTP Trigger<\/strong><\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-42647\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/3Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png\" alt=\"How to Design Custom Approval Buttons in Outlook Email Using Power Automate (Step-by-Step Guide)\" width=\"1013\" height=\"79\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/3Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png 449w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/3Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-300x23.png 300w\" sizes=\"(max-width: 1013px) 100vw, 1013px\" \/><\/p>\n<ul>\n<li>Establish a new flow by utilizing the \u201cWhen an HTTP request is received\u201d trigger.<\/li>\n<li>Use this JSON schema to capture the action and record ID:<\/li>\n<\/ul>\n<p>{<br \/>\n&#8220;type&#8221;: &#8220;object&#8221;,<br \/>\n&#8220;properties&#8221;: {<br \/>\n&#8220;action&#8221;: {&#8220;type&#8221;: &#8220;string&#8221;},<br \/>\n&#8220;id&#8221;: {&#8220;type&#8221;: &#8220;string&#8221;}<br \/>\n}<br \/>\n}<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-42648\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/4Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png\" alt=\"Design Custom Approval Buttons in Outlook Email Using Power Automate\" width=\"450\" height=\"248\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/4Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png 450w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/4Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-300x165.png 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<ul>\n<li>After saving it, Power Automate will generate a unique HTTP POST URL for you.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-42649\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/5Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png\" alt=\"Design Custom Approval Buttons in Outlook Email Using Power Automate\" width=\"450\" height=\"115\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/5Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png 450w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/5Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-300x77.png 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/p>\n<ul>\n<li>That is the link you will insert into your email buttons.<\/li>\n<\/ul>\n<p><strong>Add compose action <\/strong><\/p>\n<ul>\n<li>Add a <strong>&#8220;Compose&#8221;<\/strong> action immediately after the HTTP trigger<\/li>\n<li>Configure it to capture the query parameters from the incoming request<\/li>\n<\/ul>\n<p><strong><em>Pro Tip:<\/em><\/strong><em> Using a Compose action early in the flow helps simplify debugging and ensures your parameters are being passed correctly.<\/em><\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-42650\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/6Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png\" alt=\"Design Custom Approval Buttons in Outlook Email Using Power Automate\" width=\"927\" height=\"388\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/6Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png 480w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/6Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-300x126.png 300w\" sizes=\"(max-width: 927px) 100vw, 927px\" \/><\/p>\n<p><strong>Add Your Custom Logic<\/strong><\/p>\n<ul>\n<li>Following this, you have the option to determine the next steps\u2014whether to update CRM entries, dispatch a confirmation message, or record the user&#8217;s action.<\/li>\n<li>The process recognizes the button that was pressed by extracting the \u201caction\u201d and \u201cid\u201d parameters from the URL.<\/li>\n<\/ul>\n<h3><strong>Step 3: Connect the Flows<\/strong><\/h3>\n<p><strong>Update Email Button Links<\/strong><\/p>\n<ul>\n<li>Substitute &#8220;YOUR_HTTP_URL_HERE&#8221; in the email HTML with the actual HTTP trigger URL you have.<\/li>\n<li>Make sure the URLs contain the appropriate parameters: action = \u201capprove\u201d and action = \u201creject.\u201d<\/li>\n<\/ul>\n<p><strong>Test the Solution<\/strong><\/p>\n<ul>\n<li>Initiate the initial flow to dispatch a test email.<\/li>\n<li>Select each button to ensure the second flow is triggered.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-42651\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/7Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png\" alt=\"Design Custom Approval Buttons in Outlook Email Using Power Automate\" width=\"960\" height=\"258\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/7Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png 960w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/7Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-300x81.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/7Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-768x206.png 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/7Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-660x177.png 660w\" sizes=\"(max-width: 960px) 100vw, 960px\" \/><\/p>\n<ul>\n<li>After clicking any button, you\u2019ll be redirected to the custom page with a response.<\/li>\n<li>You can further personalize this confirmation page by adding your organization\u2019s logo, background color, or success messages that reflect your tone of communication.<\/li>\n<li>Verify that CRM records are updated accurately.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-42652\" style=\"border: 1px solid #000000; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/8Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png\" alt=\"Design Custom Approval Buttons in Outlook Email Using Power Automate\" width=\"717\" height=\"445\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/8Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate.png 717w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/8Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-300x186.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2025\/10\/8Design-Custom-Approval-Buttons-in-Outlook-Email-Using-Power-Automate-660x410.png 660w\" sizes=\"(max-width: 717px) 100vw, 717px\" \/><\/p>\n<ul>\n<li>Verify that CRM records are updated accurately.<\/li>\n<\/ul>\n<h3><strong>Troubleshooting &amp; Best Practices<\/strong><\/h3>\n<ul>\n<li>Always test your flows with multiple user scenarios to ensure no duplicate approvals occur.<\/li>\n<li>Keep your HTTP endpoint secure and authenticated.<\/li>\n<li>Use environment variables or connection references for portability.<\/li>\n<li>These small practices ensure your flow remains reliable, secure, and scalable.<\/li>\n<\/ul>\n<h3><strong>Frequently Asked Questions<\/strong><\/h3>\n<h3><strong style=\"font-size: 16px;\">1. Can I use this setup for multiple users?<\/strong><\/h3>\n<p>Yes. Each approval link includes a unique record identifier, ensuring every response is processed individually.<\/p>\n<p><strong>2. What happens if someone clicks after an approval is completed?<\/strong><strong><br \/>\n<\/strong><br \/>\nThey\u2019ll see a clear \u201cAlready Processed\u201d message\u2014avoiding any confusion or repeated entries.<\/p>\n<p><strong>3. Can I apply this design to other Power Automate workflows?<\/strong><strong><br \/>\n<\/strong><br \/>\nAbsolutely. The same logic can be extended to other automated approvals or status update scenarios.<\/p>\n<h3><strong>Conclusion: Turn Basic Approvals into Branded Experiences<\/strong><\/h3>\n<p>This customized approach transforms basic approval workflows into professional, user-friendly experiences. Instead of relying on standard templates, we create clear and well-designed messages that make every interaction feel thoughtful and consistent.<\/p>\n<p>By enhancing the visual experience and adding contextual logic, your approval process not only looks better\u2014it performs smarter. Each interaction reinforces brand trust, reduces confusion, and improves operational efficiency.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft\u2019s standard approval emails make it easy to send and capture user feedback directly through Outlook. However, one major limitation is that when multiple users receive the same approval email, only the first response is considered, leaving others frustrated when they try to act on an already-approved request. To overcome this limitation and deliver a\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.inogic.com\/blog\/2025\/10\/how-to-design-custom-approval-buttons-in-outlook-email-using-power-automate-step-by-step-guide\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":15,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1985,2848,2361],"tags":[1975],"class_list":["post-42644","post","type-post","status-publish","format-standard","hentry","category-power-automate","category-power-platform","category-technical","tag-power-automate"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts\/42644","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/comments?post=42644"}],"version-history":[{"count":0,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts\/42644\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/media?parent=42644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/categories?post=42644"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/tags?post=42644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}