{"id":1382,"date":"2020-05-27T09:00:59","date_gmt":"2020-05-27T13:00:59","guid":{"rendered":"http:\/\/blog3.canny.io\/wordpress\/?p=1382"},"modified":"2025-07-08T15:21:14","modified_gmt":"2025-07-08T19:21:14","slug":"say-no-feature-requests","status":"publish","type":"post","link":"https:\/\/canny.io\/blog\/say-no-feature-requests\/","title":{"rendered":"How to say no to product feature requests"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Figuring out how to say &#8220;no&#8221; to a customer is never easy. It\u2019s especially hard to say no to product feature requests.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Many companies <a href=\"https:\/\/canny.io\/blog\/should-you-be-collecting-customer-feedback\/\" target=\"_blank\" rel=\"noopener noreferrer\">make it clear that they value user feedback<\/a>. Being committed to <a href=\"https:\/\/canny.io\/blog\/saas-product-manager-feature-voting\/\" target=\"_blank\" rel=\"noopener noreferrer\">building a product based on it<\/a> is an even bigger promise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This can make customers a little <em>too<\/em> hopeful that whatever they ask for will be done.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to say no to customers &amp; feature requests<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The sad reality is that some features will never be built. This is a hard blow for people who have suggested them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They\u2019re asking for something they think would add value to your product or solve a big issue. You&#8217;re telling them they can&#8217;t have it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You should never build something just because a customer is upset. But, the right attitude and choice of words can make a huge difference between saying no and saying no.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<center><iframe loading=\"lazy\" width=\"650\" height=\"315\" align=\"centre\" src=\"https:\/\/www.youtube.com\/embed\/qkJmU7DP8SY?si=1Toy9HGrkzzcE32J\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen=\"\"><\/iframe><\/center>\n\n\n\n<p class=\"wp-block-paragraph\">Today, we\u2019re going to talk about how to say no to a feature request the right way.<\/p>\n\n\n\n<div style=\"max-width: 650px; margin: 0 auto;\"> <!--HubSpot Call-to-Action Code --> <span class=\"hs-cta-wrapper\" id=\"hs-cta-wrapper-e1d55d08-a2cf-44a3-a9a0-f3ca5ff21dfa\"> <span class=\"hs-cta-node hs-cta-e1d55d08-a2cf-44a3-a9a0-f3ca5ff21dfa\" id=\"hs-cta-e1d55d08-a2cf-44a3-a9a0-f3ca5ff21dfa\"> <!--[if lte IE 8]><div id=\"hs-cta-ie-element\"><\/div><![endif]--> <a href=\"https:\/\/cta-redirect.hubspot.com\/cta\/redirect\/5705808\/e1d55d08-a2cf-44a3-a9a0-f3ca5ff21dfa\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" class=\"hs-cta-img\" id=\"hs-cta-img-e1d55d08-a2cf-44a3-a9a0-f3ca5ff21dfa\" style=\"border-width:0px;\" src=\"https:\/\/no-cache.hubspot.com\/cta\/default\/5705808\/e1d55d08-a2cf-44a3-a9a0-f3ca5ff21dfa.png\" alt=\"New call-to-action\"\/> <\/a> <\/span> <script charset=\"utf-8\" src=\"https:\/\/js.hscta.net\/cta\/current.js\"><\/script> <script type=\"text\/javascript\"> hbspt.cta.load(5705808, 'e1d55d08-a2cf-44a3-a9a0-f3ca5ff21dfa', {\"useNewLoader\":\"true\",\"region\":\"na1\"}); <\/script> <\/span> <!-- end HubSpot Call-to-Action Code --> <\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Manage expectations around product feature requests in your messaging<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You\u2019ve made it clear that <a href=\"https:\/\/canny.io\/blog\/roadmap-prioritization-guide\/\" target=\"_blank\" rel=\"noopener noreferrer\">customer feedback is an integral part of building your roadmap<\/a>. This is a great message that makes your customers feel important and involved.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, you have to be careful with how you phrase these statements. It\u2019s obvious to <em>you<\/em> that you can\u2019t build every single feature someone asks for. It might not be obvious to your users.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re asking for feature ideas (for example, with <a href=\"https:\/\/canny.io\/use-cases\/feature-request-management\">feature request software<\/a>&nbsp;like Canny), make it very clear that you still have to analyze every single one of them. Even better\u2014tell them straight up that not all of them will be built.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>SansMagic has a great &#8220;formula&#8221; for how customer expectations and reality affect the outcome:<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1406\" height=\"825\" src=\"https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/customer-expectations.avif\" alt=\"Saying no to customer feature requests\" class=\"wp-image-1383\" style=\"width:650px\" srcset=\"https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/customer-expectations.avif 1406w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/customer-expectations-300x176.avif 300w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/customer-expectations-768x451.avif 768w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/customer-expectations-205x120.avif 205w\" sizes=\"auto, (max-width: 1406px) 100vw, 1406px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">A feature voting tool like <a href=\"https:\/\/canny.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Canny<\/a> can also help with managing expectations naturally. Customers can see that product <a href=\"https:\/\/canny.io\/blog\/are-feature-voting-tools-bad\/\" data-wpil-monitor-id=\"34\">feature requests are also being voted<\/a> on by other users. Seeing a list of features ordered by votes makes it more obvious that requests with only a few advocates will most likely not be built.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This will keep expectations reasonable, and everyone will be on the same page.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Instead of saying:<\/h3>\n\n\n\n<div class=\"callout\">We build what our customers want! Post a feature request and we\u2019ll make it happen.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Say:<\/h3>\n\n\n\n<div class=\"callout\">We\u2019re committed to involving our users in building our product roadmap. Let us know which features you\u2019re missing, and we\u2019ll get in touch about the options.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Make sure you\u2019re on the same page<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This needs to happen before you even begin to say yes or no.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some people are not great at communicating their issues or requests. They also might not be too familiar with your product or its current capabilities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All of the above means that you might not even know what the customer is really asking for. Often what they really <em>need<\/em> is not what they are <em>communicating<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Make sure you ask specifying questions before making decisions:<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1126\" height=\"304\" src=\"https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/Screen-Shot-2019-05-09-at-12.11.28-PM.avif\" alt=\"Always ask questions before saying no to feature requests\" class=\"wp-image-1386\" style=\"width:650px\" srcset=\"https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/Screen-Shot-2019-05-09-at-12.11.28-PM.avif 1126w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/Screen-Shot-2019-05-09-at-12.11.28-PM-300x81.avif 300w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/Screen-Shot-2019-05-09-at-12.11.28-PM-768x207.avif 768w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/Screen-Shot-2019-05-09-at-12.11.28-PM-210x57.avif 210w\" sizes=\"auto, (max-width: 1126px) 100vw, 1126px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Asking questions to determine what they really need will eliminate confusion and disappointment on both sides.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Instead of saying:<\/h3>\n\n\n\n<div class=\"callout\">Thanks for the feedback. We\u2019re not going to be building this feature at this time.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Say:<\/h3>\n\n\n\n<div class=\"callout\">Thanks for the feedback. Could you tell me more about why this feature is important to you? What is the problem that it is causing around your usage of our product? What benefits would you see from having this built?<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Explain, a lot<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you have to say no, don\u2019t <em>just<\/em> say no. Explain <em>why<\/em> you\u2019re saying no.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When a customer requests a feature, they\u2019re already convinced that it is crucial for their success with your product. It\u2019s way more important to them than it is to you.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You just know you\u2019re not going to do it. If you don\u2019t explain it, they won\u2019t understand why. They\u2019ll just feel like their input isn\u2019t important to you. It\u2019s not a good feeling.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s perfectly fine to share the real context behind why you can\u2019t build a feature they want. This will help them understand that it\u2019s nothing personal, and that there are real reasons behind it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Instead of saying:<\/h3>\n\n\n\n<div class=\"callout\">Thanks for the feedback. We will not be building this feature at this time.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Say:<\/h3>\n\n\n\n<div class=\"callout\">\n<p>Thanks for the feedback. We will not be building this feature at this time. Since we\u2019re a fully bootstrapped company, our development resources are limited until Q4 of 2019.<\/p>\n<p>We have decided to tackle features X and Y as a priority, because the majority of our customers have heavily requested them.<\/p>\n<p>These features will also be beneficial to you because of reasons X, Y, and Z. We\u2019re happy to revisit this request with you after our resources have become available again.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Watch your tone<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Always reply with the exact same amount of understanding, politeness, and depth to every user.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No matter how many times you\u2019ve heard it, how many times you\u2019ve said no, or how tired you are\u2014act like it\u2019s the first time you\u2019ve seen this request.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Stay away from phrases like: <\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>This is a bad idea<\/li>\n\n\n\n<li>It\u2019s never going to happen<\/li>\n\n\n\n<li>We hear this all the time<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Remember that you don\u2019t want to damage your relationship with the customer. If you come across too harsh, your customer will feel scorned\u2014and they won\u2019t come back to you next time they have a feature idea or request.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Instead of saying:<\/h3>\n\n\n\n<div class=\"callout\">Thanks for the feedback. We hear this very often, but unfortunately, we don\u2019t think it\u2019d be a good idea at this point.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Say:<\/h3>\n\n\n\n<div class=\"callout\">\n<p>Thanks for the feedback. Other customers have also expressed their interest in this feature, and we can see why. We understand how building feature X would save a lot of time doing Y for your company, especially since you have a small team.<\/p>\n<p>Our development resources are currently limited until Q4 of 2019, but we\u2019ve added your vote to the request, and will revisit it as soon as we have the capability. Please do let us know of any other requests you might have now\u2014we\u2019re here to listen!<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Don\u2019t give false hope<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re 100% never going to do something, don\u2019t give customers any hope that you will. This will just cause more disappointment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some customers will interpret \u201cWe\u2019ll think about it in the future\u201d as \u201cWe promise we\u2019ll do it in the future.\u201d This will not only upset them when you don\u2019t, but also keep them in a limbo of not knowing what is happening.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Saying no and being concrete about it is better. It can be hard, but it eliminates any chance of misunderstanding or false hope.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Instead of saying:<\/h3>\n\n\n\n<div class=\"callout\">Thanks for the feedback. We\u2019re not going to build this feature at this time. We\u2019ll maybe think about it in the future, but we\u2019re not sure.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Say:<\/h3>\n\n\n\n<div class=\"callout\">Thanks for the feedback. We don\u2019t see this feature being included in our roadmap, since it doesn\u2019t align with our basic functionality and use cases.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Offer alternatives<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Not being able to build a new feature doesn\u2019t mean the customer doesn\u2019t have an issue or that the issue is invalid.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Make the effort of finding out the real problem your customer is having. There&#8217;s a chance it can be fixed with something else. You don\u2019t want to just say no and leave it at that. Always offer <em>something<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/www.intercom.com\/blog\/the-right-way-to-respond-to-feature-requests\/\">Intercom<\/a>&nbsp;makes a great point with this graphic, about \u201cfocusing on the job, not the no\u201d:<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1132\" height=\"584\" src=\"https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/Screen-Shot-2019-05-09-at-11.24.41-AM.avif\" alt=\"Focus on the job, not saying no\" class=\"wp-image-1387\" style=\"width:650px\" srcset=\"https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/Screen-Shot-2019-05-09-at-11.24.41-AM.avif 1132w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/Screen-Shot-2019-05-09-at-11.24.41-AM-300x155.avif 300w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/Screen-Shot-2019-05-09-at-11.24.41-AM-768x396.avif 768w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/Screen-Shot-2019-05-09-at-11.24.41-AM-210x108.avif 210w\" sizes=\"auto, (max-width: 1132px) 100vw, 1132px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Suggest anything at all\u2014whether it\u2019s a workaround, a tip, an integration they can use, or an offer to revisit the idea in the future.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This will tell them that even though you\u2019re not going to build a feature, you still deeply care about fixing whatever problem the customer has.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Instead of saying:<\/h3>\n\n\n\n<div class=\"callout\">Thanks for the feedback. We\u2019re not planning on building this feature in the near future, so you will not be able to do what you\u2019re asking for with our product.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Say:<\/h3>\n\n\n\n<div class=\"callout\">Thanks for the feedback! We\u2019re not planning on building this feature in the near future because of reasons X, Y, and Z. However, we have a workaround that might solve this issue for you. Would you be interested in trying that?<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Know how to compromise<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We\u2019ve made the point several times about how important it is to ask questions and have a conversation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A conversation might reveal things you didn\u2019t think about before. You might even reconsider not building a feature in the end.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the request is <a href=\"https:\/\/canny.io\/blog\/roadmap-prioritization-guide\/\" target=\"_blank\" rel=\"noopener noreferrer\">low effort but high value for a valuable customer<\/a> (or a few customers), maybe you should do it!<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1027\" src=\"https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/effort-impact.avif\" alt=\"product feature request effort vs impact\" class=\"wp-image-2431\" style=\"width:650px\" srcset=\"https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/effort-impact.avif 1200w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/effort-impact-300x257.avif 300w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/effort-impact-768x657.avif 768w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/effort-impact-1196x1024.avif 1196w, https:\/\/canny.io\/blog\/wp-content\/uploads\/2019\/05\/effort-impact-140x120.avif 140w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">We&#8217;re not saying that you should feel pressured to rethink your decisions. It&#8217;s always your call, and it\u2019s always fine to say no.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, keep an open mind\u2014sometimes it makes sense to say yes instead.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Be nice, be transparent, and keep an open mind<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There\u2019s a big difference between saying no, and saying no.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You always have the right to decline customer feature requests. Your product is your creation, and some requests just don\u2019t make sense sometimes. You shouldn\u2019t feel bad or guilty about it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, you do have to make an effort to not make your customers feel disregarded, confused, or discouraged. They are trying to help, and their feedback is still immensely valuable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Be nice, open, positive, and explain the real reasons behind why you\u2019re saying no.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your users will get clarification, even if it&#8217;s not the answer they want to hear. Plus, they won&#8217;t feel discouraged by being&nbsp;rudely denied\u2014which will make them more likely to share more feedback in the future, too.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"credit\">&nbsp;<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Rejecting customers&#8217; ideas is never easy. However, the right tone and attitude can make a huge difference. Here&#8217;s how to say no to feature requests the right way.<\/p>\n","protected":false},"author":45,"featured_media":6361,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[8,7],"tags":[],"class_list":["post-1382","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-customer-feedback","category-product-management"],"aioseo_notices":[],"modified_by":"Eric Hoppe","_links":{"self":[{"href":"https:\/\/canny.io\/blog\/wp-json\/wp\/v2\/posts\/1382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/canny.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/canny.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/canny.io\/blog\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/canny.io\/blog\/wp-json\/wp\/v2\/comments?post=1382"}],"version-history":[{"count":29,"href":"https:\/\/canny.io\/blog\/wp-json\/wp\/v2\/posts\/1382\/revisions"}],"predecessor-version":[{"id":9926,"href":"https:\/\/canny.io\/blog\/wp-json\/wp\/v2\/posts\/1382\/revisions\/9926"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/canny.io\/blog\/wp-json\/wp\/v2\/media\/6361"}],"wp:attachment":[{"href":"https:\/\/canny.io\/blog\/wp-json\/wp\/v2\/media?parent=1382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/canny.io\/blog\/wp-json\/wp\/v2\/categories?post=1382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/canny.io\/blog\/wp-json\/wp\/v2\/tags?post=1382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}