[{"data":1,"prerenderedAt":852},["ShallowReactive",2],{"i-lucide:chevron-down":3,"i-lucide:search":8,"i-lucide:sun":10,"i-lucide:moon":12,"i-lucide:arrow-right":14,"i-lucide:menu":16,"i-lucide:mail":18,"i-simple-icons:x":20,"i-simple-icons:linkedin":22,"i-simple-icons:dribbble":25,"i-simple-icons:github":27,"i-lucide:arrow-up-right":29,"blog-\u002Fblog\u002Fbn\u002Fjobs-to-be-done-customer-problem":31,"blog-related-\u002Fblog\u002Fbn\u002Fjobs-to-be-done-customer-problem":178,"i-lucide:chevron-right":822,"i-lucide:calendar":824,"i-lucide:clock":826,"i-lucide:link":828,"i-lucide:trending-up":830,"i-lucide:server":832,"i-lucide:circle-slash":834,"i-lucide:columns-2":836,"i-lucide:copy":838,"i-lucide:circle-help":840,"i-lucide:info":842,"i-lucide:minus":844,"i-lucide:plus":846,"i-lucide:triangle-alert":848,"i-lucide:circle-check":850},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"\u002F>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cpath fill=\"currentColor\" d=\"M14.234 10.162L22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299l-.929-1.329L3.076 1.56h3.182l5.965 8.532l.929 1.329l7.754 11.09h-3.182z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":23,"hidden":24},"\u003Cpath fill=\"currentColor\" d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.06 2.06 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065m1.782 13.019H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z\"\u002F>",true,{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":26},"\u003Cpath fill=\"currentColor\" d=\"M12 24C5.385 24 0 18.615 0 12S5.385 0 12 0s12 5.385 12 12s-5.385 12-12 12m10.12-10.358c-.35-.11-3.17-.953-6.384-.438c1.34 3.684 1.887 6.684 1.992 7.308a10.28 10.28 0 0 0 4.395-6.87zm-6.115 7.808c-.153-.9-.75-4.032-2.19-7.77l-.066.02c-5.79 2.015-7.86 6.025-8.04 6.4a10.16 10.16 0 0 0 6.29 2.166c1.42 0 2.77-.29 4-.814zm-11.62-2.58c.232-.4 3.045-5.055 8.332-6.765q.202-.067.405-.12q-.392-.879-.832-1.74C7.17 11.775 2.206 11.71 1.756 11.7l-.004.312c0 2.633.998 5.037 2.634 6.855zm-2.42-8.955c.46.008 4.683.026 9.477-1.248a66 66 0 0 0-3.8-5.928a10.28 10.28 0 0 0-5.676 7.17zM9.6 2.052c.282.38 2.145 2.914 3.822 6c3.645-1.365 5.19-3.44 5.373-3.702A10.2 10.2 0 0 0 12 1.764c-.825 0-1.63.1-2.4.285zm10.335 3.483c-.218.29-1.935 2.493-5.724 4.04c.24.49.47.985.68 1.486c.08.18.15.36.22.53c3.41-.43 6.8.26 7.14.33c-.02-2.42-.88-4.64-2.31-6.38z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":28},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":30},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",{"id":32,"title":33,"author":34,"body":37,"category":161,"cover":162,"coverAlt":162,"date":163,"description":164,"draft":6,"extension":165,"featured":6,"lang":166,"meta":167,"navigation":24,"path":168,"readingTime":169,"seo":170,"seoTitle":171,"stem":172,"tags":173,"__hash__":177},"blog\u002Fblog\u002Fbn\u002Fjobs-to-be-done-customer-problem.md","প্রোডাক্ট বেচবেন না, সমস্যার সমাধান বেচুন — Customer আসলে কী 'hire' করছে",{"name":35,"role":36},"সাদিয়া ইসলাম","গ্রোথ ও মার্কেটিং লিড",{"type":38,"value":39,"toc":153},"minimark",[40,44,47,50,55,63,69,73,102,105,111,115,122,128,139,143,150],[41,42,43],"p",{},"একটা ফাস্ট-ফুড চেইন মিল্কশেকের সেল বাড়াতে চেয়েছিল। তারা শুরুতে করেছিল যা সবাই করে: কাস্টমারদের জিজ্ঞেস করেছিল মিল্কশেক আরও মিষ্টি হওয়া উচিত কি না, ঘন হওয়া উচিত কি না, ফ্লেভার বাড়ানো উচিত কি না। ফিডব্যাক অনুযায়ী বদলও করেছিল — সেলে তেমন পার্থক্য হয়নি।",[41,45,46],{},"পরে একজন গবেষক আলাদাভাবে খেয়াল করলেন: প্রায় অর্ধেক মিল্কশেক বিক্রি হচ্ছিল সকালবেলা, একা আসা মানুষদের কাছে, যারা সেটা গাড়িতে বসে খেয়ে অফিসে যাচ্ছিলেন। জিজ্ঞেস করে জানা গেল — তারা মিল্কশেক \"খেতে\" আসেননি। তারা এসেছিলেন একটা বোরিং, একঘেয়ে ড্রাইভকে একটু সহনীয় করার মতো কিছু খুঁজতে — যেটা এক হাতে খাওয়া যায়, নোংরা হয় না, আর অনেকক্ষণ ধরে টিকে থাকে যাতে পুরো জ্যামটা কাটানো যায়।",[41,48,49],{},"মিল্কশেক তাদের কাছে আসলে একটা \"সঙ্গী\" — বোরডম দূর করার একটা টুল। এই আসল কাজটা বুঝেই কোম্পানি প্রোডাক্টে বদল আনল: আরও ঘন করল (যাতে বেশিক্ষণ ধরে খাওয়া যায়, স্ট্র দিয়ে টানতে সময় লাগে), আর ছোট ছোট ফল-টুকরো যোগ করল (মাঝেমধ্যে একটা \"সারপ্রাইজ\")। মিষ্টতা নিয়ে কিছুই বদলায়নি।",[51,52,54],"h2",{"id":53},"customer-প্রোডাক্ট-কেনে-না-একটা-কাজের-জন্য-hire-করে","Customer প্রোডাক্ট কেনে না, একটা কাজের জন্য \"hire\" করে",[41,56,57,58,62],{},"এই চিন্তাধারাকে বলে ",[59,60,61],"strong",{},"Jobs-to-be-Done (JTBD)"," — মূল কথা: মানুষ কোনো প্রোডাক্ট বা সার্ভিস কেনে না, বরং তাদের জীবনের একটা নির্দিষ্ট মুহূর্তে, একটা নির্দিষ্ট সমস্যা সমাধানের জন্য সেটাকে \"hire\" করে। প্রোডাক্ট বদলে গেলেও, বা প্রতিযোগী বদলে গেলেও, \"job\"-টা একই থেকে যায়।",[64,65,66],"note",{},[41,67,68],{},"\"Job\" মানে সবসময় ব্যবহারিক (functional) কিছু না। একটা দামি ঘড়ি কেনার job হতে পারে \"সময় দেখা\" — অথবা হতে পারে \"নিজেকে সফল হিসেবে অনুভব করা\" (emotional job) বা \"অন্যদের কাছে একটা নির্দিষ্ট ইমেজ তৈরি করা\" (social job)। একই প্রোডাক্ট, ভিন্ন কাস্টমারের কাছে ভিন্ন job সমাধান করছে হতে পারে।",[51,70,72],{"id":71},"ফিচার-ভিত্তিক-পিচ-বনাম-job-ভিত্তিক-পিচ","ফিচার-ভিত্তিক পিচ বনাম job-ভিত্তিক পিচ",[74,75,80,94],"compare",{"after":76,"before":77,"note":78,"split":79},"Job-ভিত্তিক পিচ","ফিচার-ভিত্তিক পিচ","বাম পাশেরটা প্রোডাক্ট নিয়ে কথা বলছে, ডান পাশেরটা কাস্টমারের আসল ভয় আর সময়ের সংকট নিয়ে কথা বলছে।","একই সার্ভিস — accounting সফটওয়্যার",[81,82,84],"template",{"v-slot:before":83},"",[85,86,91],"pre",{"className":87,"code":89,"language":90},[88],"language-text","আমাদের সফটওয়্যারে আছে:\n- অটোমেটিক ইনভয়েস জেনারেশন\n- রিয়েল-টাইম ট্যাক্স ক্যালকুলেশন\n- মাল্টি-কারেন্সি সাপোর্ট\n","text",[92,93,89],"code",{"__ignoreMap":83},[81,95,96],{"v-slot:after":83},[85,97,100],{"className":98,"code":99,"language":90},[88],"মাস শেষে হিসাব মেলাতে বসে\nরাত জাগতে হবে না।\n৫ মিনিটে ইনভয়েস, ট্যাক্সের\nহিসাব নিজে থেকেই ঠিক থাকবে।\n",[92,101,99],{"__ignoreMap":83},[41,103,104],{},"দুটোই একই ফিচার বর্ণনা করছে। কিন্তু দ্বিতীয়টা কাস্টমারের আসল অভিজ্ঞতা — মাস শেষে হিসাব নিয়ে চাপ, রাত জেগে কাজ করা — সেই জায়গা থেকে কথা বলছে। যে কাস্টমার এই ব্যথাটা অনুভব করছেন, তার কাছে দ্বিতীয় পিচটাই আগে পৌঁছায়।",[106,107,108],"warning",{},[41,109,110],{},"নিজে থেকে অনুমান করে নেওয়া সবচেয়ে বড় ভুল — \"আমার মনে হয় কাস্টমাররা স্পিড চায়\" বলে ফিচার বানিয়ে ফেলা, আসল কাস্টমারকে জিজ্ঞেস না করেই। মিল্কশেকের উদাহরণেও প্রথম রাউন্ডের সার্ভে ব্যর্থ হয়েছিল কারণ প্রশ্নগুলো ছিল প্রোডাক্ট নিয়ে (\"মিষ্টি কেমন লাগে\"), কাস্টমারের পরিস্থিতি নিয়ে না (\"কখন, কেন এটা কেনেন\")।",[51,112,114],{"id":113},"আসল-job-খুঁজে-বের-করার-একটা-সহজ-উপায়","আসল job খুঁজে বের করার একটা সহজ উপায়",[41,116,117,118,121],{},"সরাসরি \"আপনার কী দরকার\" জিজ্ঞেস করলে মানুষ প্রায়ই ফিচারের ভাষায় উত্তর দেয় (\"আরেকটু দ্রুত হলে ভালো হতো\"), আসল কারণ বলে না। এর বদলে জিজ্ঞেস করুন: ",[59,119,120],{},"\"সবশেষ কবে এই সমস্যায় পড়েছিলেন? তখন ঠিক কী হচ্ছিল, আর তখন কী করেছিলেন?\""," — একটা নির্দিষ্ট ঘটনার গল্প জিজ্ঞেস করলে আসল পরিস্থিতিটা বেরিয়ে আসে, সাধারণ মতামতের চেয়ে।",[123,124,125],"tip",{},[41,126,127],{},"একটা উত্তর পাওয়ার পর থেমে যাবেন না — একবার \"কেন\" জিজ্ঞেস করলে সাধারণত উপরিভাগের কারণ পাওয়া যায়। পরপর তিন-চারবার \"তারপর কেন এটা গুরুত্বপূর্ণ\" জিজ্ঞেস করলে আসল emotional বা social job-এ পৌঁছানো যায় — এটাকে বলে \"৫ কেন\" (5 Whys) টেকনিক।",[129,130],"quiz",{":answer":131,":options":132,"checkLabel":133,"correctLabel":134,"explanation":135,"incorrectLabel":136,"question":137,"resetLabel":138},"1","[\"\\\"জিমে আর কী কী ইকুইপমেন্ট থাকলে ভালো হতো?\\\"\",\"\\\"যেদিন মেম্বারশিপ নিয়েছিলেন, সেদিন ঠিক কী হয়েছিল যে সিদ্ধান্তটা নিলেন?\\\"\",\"\\\"আপনি কি জিমের দামে সন্তুষ্ট?\\\"\",\"\\\"আর কোন জিমে ট্রাই করেছিলেন?\\\"\"]","উত্তর মিলিয়ে দেখি","ঠিক আছে","নির্দিষ্ট একটা মুহূর্তের কথা জিজ্ঞেস করলে (মেম্বারশিপ নেওয়ার দিন কী হয়েছিল) আসল \"job\"-টা বেরিয়ে আসে — হয়তো এটা নতুন বছরের রেজোলিউশন ছিল, বা ডাক্তারের সতর্কবার্তা, বা বন্ধুর সাথে সময় কাটানোর ইচ্ছা। ইকুইপমেন্ট বা দাম নিয়ে প্রশ্ন ফিচার-লেভেলে আটকে থাকে, আসল প্রেরণা পর্যন্ত পৌঁছায় না।","হয়নি","একজন কাস্টমার প্রিমিয়াম জিম মেম্বারশিপ কিনেছেন, কিন্তু মাসে মাত্র ২ বার যান। ঠিক জিম কেন কিনেছিলেন সেটা বুঝতে চাইলে সবচেয়ে ভালো প্রশ্ন কোনটা?","আবার চেষ্টা করি",[51,140,142],{"id":141},"customer-discovery-তে-যা-করবেন","Customer discovery-তে যা করবেন",[144,145],"checklist",{":items":146,"doneLabel":147,"resetLabel":148,"title":149},"[{\"label\":\"প্রোডাক্ট নিয়ে না জিজ্ঞেস করে, নির্দিষ্ট একটা ঘটনার গল্প জিজ্ঞেস করুন\",\"detail\":\"\\\"সবশেষ কবে এই সমস্যায় পড়েছিলেন\\\" — সাধারণ মতামতের চেয়ে অনেক বেশি সত্য বেরিয়ে আসে।\"},{\"label\":\"একটা \\\"কেন\\\"-তে থেমে যাবেন না, পরপর কয়েকবার জিজ্ঞেস করুন\",\"detail\":\"প্রথম উত্তর প্রায়ই উপরিভাগের — আসল emotional\u002Fsocial কারণ তিন-চার স্তর গভীরে থাকে।\"},{\"label\":\"যারা প্রোডাক্ট কিনে ব্যবহার করছেন না (churn), তাদেরও জিজ্ঞেস করুন\",\"detail\":\"যারা \\\"job\\\"-টা অন্য কোথাও সমাধান করে ফেলেছেন, তারাই আসল প্রতিযোগী কে সেটা বলে দেয় — যেটা সবসময় সরাসরি প্রতিদ্বন্দ্বী কোম্পানি হয় না।\"},{\"label\":\"ফিচার-অনুরোধকে সরাসরি বাস্তবায়ন না করে, পেছনের কারণটা খুঁজুন\",\"detail\":\"\\\"আরও দ্রুত চাই\\\" বলার পেছনে হয়তো \\\"সময়মতো বসের কাছে রিপোর্ট পাঠাতে না পারার ভয়\\\" লুকিয়ে আছে।\"},{\"label\":\"একই প্রোডাক্টের বিভিন্ন কাস্টমারের ভিন্ন job থাকতে পারে, এটা মেনে নিন\",\"detail\":\"একটাই মেসেজ সবার জন্য কাজ নাও করতে পারে — সেগমেন্ট অনুযায়ী পিচ বদলাতে হতে পারে।\"}]","শেষ","রিসেট","আসল \"job\" খুঁজে বের করার চেকলিস্ট",[41,151,152],{},"কাস্টমার কী কিনছে সেটা প্রশ্ন না — কাস্টমার কেন কিনছে, ঠিক কোন মুহূর্তে, কোন চাপ থেকে — সেই প্রশ্নের উত্তরেই আসল সেলস স্ট্র্যাটেজি লুকিয়ে থাকে।",{"title":83,"searchDepth":154,"depth":154,"links":155},3,[156,158,159,160],{"id":53,"depth":157,"text":54},2,{"id":71,"depth":157,"text":72},{"id":113,"depth":157,"text":114},{"id":141,"depth":157,"text":142},"business",null,"2026-09-10","একজন কাস্টমার মিল্কশেক কেনে না — সকালের বোরিং গাড়ি-চালানোর সময়টাকে সহনীয় করার একটা উপায় কেনে। প্রোডাক্টের ফিচার লিস্ট না, এই \"job\"-টা বুঝলেই সেল বাড়ে।","md","bn",{},"\u002Fblog\u002Fbn\u002Fjobs-to-be-done-customer-problem",8,{"title":33,"description":164},"প্রোডাক্ট বেচবেন না, সমস্যার সমাধান বেচুন","blog\u002Fbn\u002Fjobs-to-be-done-customer-problem",[174,175,176],"Customer Research","সেলস","বিজনেস","TOPAjOCpt_BhKxqqeV_N_Hx9tTiiamlLw20vaHTTO0E",[179,322,453],{"id":180,"title":181,"author":182,"body":183,"category":161,"cover":162,"coverAlt":162,"date":310,"description":311,"draft":6,"extension":165,"featured":6,"lang":166,"meta":312,"navigation":24,"path":313,"readingTime":169,"seo":314,"seoTitle":315,"stem":316,"tags":317,"__hash__":321},"blog\u002Fblog\u002Fbn\u002Ftrust-social-proof-conversion.md","মানুষ কেন অচেনা কারো কাছ থেকে কিনতে দ্বিধা করে — Trust Signal যেভাবে সেল বাড়ায়",{"name":35,"role":36},{"type":38,"value":184,"toc":303},[185,188,195,199,206,211,215,237,240,245,249,256,261,265,272,278,282,286,289],[41,186,187],{},"একটা নতুন ফ্রিল্যান্সার, ভালো কাজ জানেন, পোর্টফোলিওও ভালো — কিন্তু ক্লায়েন্ট পাচ্ছেন না। অথচ পাশের আরেকজন, কাজের মান প্রায় কাছাকাছি, কিন্তু প্রোফাইলে \"৫০+ প্রজেক্ট সম্পন্ন, ৪.৯ রেটিং\" লেখা — তার কাছেই ক্লায়েন্ট বেশি যাচ্ছে।",[41,189,190,191,194],{},"এটা অন্যায্য মনে হতে পারে, কিন্তু মানুষের সিদ্ধান্ত নেওয়ার প্রক্রিয়াটাই এভাবে কাজ করে। কোনো কিছু সম্পর্কে নিজে যাচাই করার সময় বা তথ্য না থাকলে, মানুষ দেখে ",[59,192,193],{},"অন্যরা কী করছে"," — আর সেটাকেই নিরাপদ সিদ্ধান্ত হিসেবে ধরে নেয়।",[51,196,198],{"id":197},"social-proof-একা-সিদ্ধান্ত-নিতে-না-চাওয়ার-প্রবণতা","Social Proof — একা সিদ্ধান্ত নিতে না চাওয়ার প্রবণতা",[41,200,201,202,205],{},"মনোবিজ্ঞানী Robert Cialdini তার বিখ্যাত \"Influence\" বইতে এই প্যাটার্নটাকে বলেছেন ",[59,203,204],{},"social proof"," — অনিশ্চয়তার মুহূর্তে মানুষ অন্যদের আচরণ দেখে নিজের সিদ্ধান্ত ঠিক করে। একটা রেস্টুরেন্টের সামনে লাইন দেখলে সেটাকে \"ভালো রেস্টুরেন্ট\" ধরে নেওয়া, বা একটা প্রোডাক্টের হাজার হাজার রিভিউ দেখে ভরসা পাওয়া — দুটোই একই প্রবৃত্তি থেকে আসে।",[64,207,208],{},[41,209,210],{},"Social proof সবচেয়ে বেশি কাজ করে যখন কাস্টমার নিজে নিশ্চিত না — নতুন প্রোডাক্ট, নতুন সার্ভিস প্রোভাইডার, বা দামি একটা সিদ্ধান্ত। যেখানে মানুষ ইতিমধ্যে নিশ্চিত (যেমন নিয়মিত কেনা কোনো ব্র্যান্ড), সেখানে রিভিউ-সংখ্যার প্রভাব তুলনামূলক কম।",[51,212,214],{"id":213},"নির্দিষ্ট-সংখ্যা-ভাসা-ভাসা-দাবির-চেয়ে-বেশি-কার্যকর","নির্দিষ্ট সংখ্যা, ভাসা ভাসা দাবির চেয়ে বেশি কার্যকর",[74,216,221,229],{"after":217,"before":218,"note":219,"split":220},"নির্দিষ্ট, যাচাইযোগ্য তথ্য","ভাসা ভাসা দাবি","ডান পাশের সংস্করণ নির্দিষ্ট সংখ্যা আর নাম দিয়ে যাচাইযোগ্যতা তৈরি করে — মিথ্যা বলার সুযোগ কম মনে হয়, তাই বিশ্বাসযোগ্যতাও বেশি।","একই ফ্রিল্যান্স প্রোফাইল",[81,222,223],{"v-slot:before":83},[85,224,227],{"className":225,"code":226,"language":90},[88],"অনেক ক্লায়েন্টের সাথে কাজ\nকরেছি, সবাই খুশি হয়েছেন।\nসেরা সার্ভিস দেওয়ার\nচেষ্টা করি সবসময়।\n",[92,228,226],{"__ignoreMap":83},[81,230,231],{"v-slot:after":83},[85,232,235],{"className":233,"code":234,"language":90},[88],"৩৭টা প্রজেক্ট, ৪.৯\u002F৫ রেটিং\n(১১ জন ক্লায়েন্ট রিভিউ)\n\"Grameenphone-এর ড্যাশবোর্ড\nরিডিজাইন — ৩ সপ্তাহে ডেলিভারি\"\n",[92,236,234],{"__ignoreMap":83},[41,238,239],{},"ভাসা ভাসা দাবি (\"সবাই খুশি\") আসলে মিথ্যা বলার মতোই সহজ, তাই মস্তিষ্ক সেটাকে বিশেষ গুরুত্ব দেয় না। কিন্তু নির্দিষ্ট সংখ্যা আর নাম — যাচাই করা যায় এমন কিছু — সহজে বানিয়ে বলা যায় না বলেই বেশি বিশ্বাসযোগ্য মনে হয়।",[106,241,242],{},[41,243,244],{},"জাল রিভিউ বা বানানো সংখ্যা ব্যবহার করাটা শুধু নৈতিকভাবে ভুল না — বাস্তবে ধরা পড়ে গেলে (আর প্রায়ই পড়ে) সেটা নিরপেক্ষভাবে বিশ্বাসহীনতার চেয়েও বেশি ক্ষতি করে, কারণ কাস্টমার তখন প্রতারিত বোধ করে। যা আছে তাই দেখান — অল্প কিছু আসল রিভিউ, বানানো অনেক রিভিউয়ের চেয়ে বেশি কাজ করে।",[51,246,248],{"id":247},"reciprocity-আগে-দিলে-পরে-পাওয়া-যায়","Reciprocity — আগে দিলে, পরে পাওয়া যায়",[41,250,251,252,255],{},"Cialdini-র আরেকটা নীতি — ",[59,253,254],{},"reciprocity","। কেউ আগে থেকে বিনামূল্যে কিছু মূল্যবান পেলে, বিনিময়ে কিছু ফেরত দেওয়ার একটা স্বাভাবিক তাগিদ অনুভব করে। এই কারণেই ফ্রি টেমপ্লেট, ফ্রি অডিট, ফ্রি কনসালটেশন — এসব দীর্ঘমেয়াদে সেল বাড়ায়: প্রথমেই বিক্রির চেষ্টা না করে, আগে সাহায্য করলে বিশ্বাস তৈরি হয়, আর সেই বিশ্বাস থেকেই লেনদেন শুরু হয়।",[123,257,258],{},[41,259,260],{},"Reciprocity কাজ করার জন্য যা দিচ্ছেন সেটা আসলেই দরকারি হতে হবে — একটা সাধারণ ব্লগ পোস্টের চেয়ে, কাস্টমারের নির্দিষ্ট সমস্যার একটা ছোট, ব্যক্তিগতকৃত সমাধান (যেমন তার ওয়েবসাইটের একটা কুইক পারফরম্যান্স অডিট) অনেক বেশি প্রভাব ফেলে — কারণ সেটা স্পষ্টভাবে বোঝায় যে তার জন্যই সময় দেওয়া হয়েছে।",[51,262,264],{"id":263},"authority-কে-বলছে-সেটাও-গুরুত্বপূর্ণ","Authority — কে বলছে সেটাও গুরুত্বপূর্ণ",[41,266,267,268,271],{},"একই তথ্য একজন নবীন ফ্রিল্যান্সার বললে এক রকম শোনায়, আর কেউ যদি জানে যে সেই একই মানুষ একটা পরিচিত কোম্পানির সাথে কাজ করেছেন, তাহলে সেটা অন্যরকম ওজন পায়। এটাকে বলে ",[59,269,270],{},"authority"," — সার্টিফিকেট, পরিচিত ক্লায়েন্টের নাম, বা কোনো প্রতিষ্ঠিত প্ল্যাটফর্মে ফিচার হওয়া — এসব প্রকৃত দক্ষতা না বাড়ালেও, সেই দক্ষতার প্রতি বিশ্বাসকে বাড়িয়ে দেয়।",[129,273],{":answer":274,":options":275,"checkLabel":133,"correctLabel":134,"explanation":276,"incorrectLabel":136,"question":277,"resetLabel":138},"2","[\"দাম খুব বেশি দেখাচ্ছে\",\"সার্ভিস লিস্ট খুব ছোট\",\"কোনো social proof বা trust signal নেই, তাই ভিজিটর ঝুঁকি নিতে দ্বিধা করবে\",\"ওয়েবসাইটের ডিজাইন পুরনো\"]","দাম বা ডিজাইন সমস্যা হতে পারে, কিন্তু মূল বাধা হলো বিশ্বাসের অভাব। একটা নতুন বা অচেনা এজেন্সির কাছ থেকে কেনার সিদ্ধান্তে ঝুঁকি বেশি মনে হয় — কেউ যাচাই করতে পারছে না এটা আসলেই কাজ করে কি না। ক্লায়েন্ট লোগো, নির্দিষ্ট সংখ্যাসহ রিভিউ, বা আসল কেস স্টাডি এই ঝুঁকির অনুভূতি কমিয়ে দেয়, কারণ সেগুলো দেখায় যে অন্যরা আগে ঝুঁকি নিয়ে সন্তুষ্ট হয়েছে।","একটা নতুন ওয়েব এজেন্সির ওয়েবসাইটে কোনো ক্লায়েন্ট লোগো, রিভিউ বা কেস স্টাডি নেই — শুধু সার্ভিস লিস্ট আর দাম আছে। সবচেয়ে বড় সমস্যা কী?",[51,279,281],{"id":280},"trust-signal-অডিট-করার-চেকলিস্ট","Trust signal অডিট করার চেকলিস্ট",[144,283],{":items":284,"doneLabel":147,"resetLabel":148,"title":285},"[{\"label\":\"রিভিউ বা টেস্টিমোনিয়ালে নির্দিষ্ট নাম, সংখ্যা বা ফলাফল আছে কি?\",\"detail\":\"\\\"ভালো লেগেছে\\\"-র চেয়ে \\\"৩ সপ্তাহে ডেলিভারি, ৪০% দ্রুত লোড টাইম\\\" বেশি বিশ্বাসযোগ্য।\"},{\"label\":\"পরিচিত ক্লায়েন্ট বা প্রতিষ্ঠানের নাম দেখানো যাচ্ছে কি (অনুমতি নিয়ে)?\",\"detail\":\"একটা পরিচিত নাম, দশটা অচেনা নামের চেয়ে বেশি কাজ করতে পারে।\"},{\"label\":\"কোনো ফ্রি মূল্যবান কিছু আগে থেকে দেওয়া হচ্ছে কি (reciprocity)?\",\"detail\":\"একটা ছোট, ব্যক্তিগতকৃত সাহায্য — সাধারণ কনটেন্টের চেয়ে বেশি বিশ্বাস তৈরি করে।\"},{\"label\":\"কোনো দাবিই কি যাচাই-অযোগ্য বা অতিরঞ্জিত শোনাচ্ছে?\",\"detail\":\"অতিরঞ্জিত দাবি সন্দেহ তৈরি করে, বিশ্বাস না।\"},{\"label\":\"রিভিউ বা প্রমাণ কি আসল, নাকি বানানো?\",\"detail\":\"জাল প্রমাণ ধরা পড়লে যেকোনো pricing বা marketing কৌশলের চেয়ে বেশি ক্ষতি করে।\"}]","ওয়েবসাইট বা প্রোফাইলে বিশ্বাসযোগ্যতা যাচাই করার তালিকা",[41,287,288],{},"সেল বাড়ানোর অনেকটাই আসলে প্রোডাক্ট বদলানো না — কাস্টমারের চোখে ঝুঁকিটা কমিয়ে দেওয়া। আর সেই ঝুঁকি কমে যখন সে দেখে, তার আগে অন্যরাও একই সিদ্ধান্ত নিয়ে ঠকেনি।",[41,290,291,292,297,298,302],{},"বিশ্বাস তৈরি হয়ে গেলে পরের প্রশ্নটা আসে দাম নিয়ে — ",[293,294,296],"a",{"href":295},"\u002Fblog\u002Fbn\u002Fprice-anchoring-decoy-effect","সেটা কীভাবে উপস্থাপন করলে কাজ করে",", আর ",[293,299,301],{"href":300},"\u002Fblog\u002Fbn\u002Ffreelance-rate-setting","নিজের রেট কীভাবে ঠিক করবেন"," — দুটোই আলাদা হিসাব।",{"title":83,"searchDepth":154,"depth":154,"links":304},[305,306,307,308,309],{"id":197,"depth":157,"text":198},{"id":213,"depth":157,"text":214},{"id":247,"depth":157,"text":248},{"id":263,"depth":157,"text":264},{"id":280,"depth":157,"text":281},"2026-09-11","একই ল্যান্ডিং পেজ, একই দাম, একই প্রোডাক্ট — শুধু নিচে তিনটা রিভিউ যোগ করলেই কনভার্শন বদলে যায়। এটা কাকতালীয় না, মানুষ সিদ্ধান্ত নেওয়ার সময় অন্যদের আচরণ দেখেই ভরসা করে।",{},"\u002Fblog\u002Fbn\u002Ftrust-social-proof-conversion",{"title":181,"description":311},"মানুষ অচেনা কারো কাছ থেকে কিনতে কেন দ্বিধা করে","blog\u002Fbn\u002Ftrust-social-proof-conversion",[318,319,320],"Trust","Conversion","সাইকোলজি","zbp8wNKt8V0yU7FIOwTSAV5lhPtUdkwPcOtUAWdPOJA",{"id":323,"title":324,"author":325,"body":326,"category":161,"cover":162,"coverAlt":162,"date":443,"description":444,"draft":6,"extension":165,"featured":6,"lang":166,"meta":445,"navigation":24,"path":295,"readingTime":446,"seo":447,"seoTitle":448,"stem":449,"tags":450,"__hash__":452},"blog\u002Fblog\u002Fbn\u002Fprice-anchoring-decoy-effect.md","কাস্টমার দাম দেখে কেনে না, তুলনা দেখে কেনে — Price Anchoring যেভাবে কাজ করে",{"name":35,"role":36},{"type":38,"value":327,"toc":437},[328,331,334,338,345,348,357,361,368,390,393,398,402,416,421,426,430,434],[41,329,330],{},"একটা ম্যাগাজিনের সাবস্ক্রিপশন পেজে তিনটা অপশন ছিল: শুধু ওয়েব ভার্সন $59, শুধু প্রিন্ট ভার্সন $125, আর ওয়েব + প্রিন্ট একসাথে $125। তৃতীয়টা দেখে অবাক লাগার কথা — প্রিন্ট একা যা দাম, একসাথে নিলেও তাই। তাও এই সেটআপে বেশিরভাগ মানুষ তৃতীয় অপশনটাই বেছে নিয়েছিল। মাঝের অপশনটা সরিয়ে দিলে ফলাফল পুরো উল্টে যায় — তখন বেশিরভাগ মানুষ সবচেয়ে সস্তাটাই নেয়।",[41,332,333],{},"প্রোডাক্ট বদলায়নি, দামও বদলায়নি। শুধু একটা তুলনা করার মতো অপশন যোগ করা হয়েছিল — আর সেটাই সিদ্ধান্ত ঘুরিয়ে দিয়েছে।",[51,335,337],{"id":336},"মস্তিষ্ক-দাম-বিচার-করে-না-তুলনা-করে","মস্তিষ্ক দাম বিচার করে না, তুলনা করে",[41,339,340,341,344],{},"এইটাই ",[59,342,343],{},"anchoring"," — মানুষ কোনো কিছুর দাম \"ঠিক আছে না বেশি\" এভাবে বিচার করে না, বরং হাতের কাছে যা তুলনা করার আছে তার সাথে মিলিয়ে বিচার করে। প্রথম যে সংখ্যাটা চোখে পড়ে, সেটাই একটা রেফারেন্স পয়েন্ট হয়ে যায় — বাকি সবকিছু তার সাপেক্ষে \"সস্তা\" বা \"দামি\" মনে হয়।",[41,346,347],{},"এটা কোনো ম্যানিপুলেশনের কৌশল না — এটা মানুষের সিদ্ধান্ত নেওয়ার স্বাভাবিক প্রক্রিয়া। একটা ফ্রিল্যান্স প্রজেক্টের কোটেশন একা পাঠালে ক্লায়েন্ট সেটাকে \"দামি\" বা \"সস্তা\" — কীসের সাথে তুলনা করে বিচার করবে, সেটা ঠিক করার সুযোগটাই তাকে দেওয়া হয়নি।",[64,349,350],{},[41,351,352,353,356],{},"Anchor সবসময় সংখ্যায় হতে হবে এমন না। \"সাধারণত এই কাজের রেট $2000 থেকে শুরু\" — এই একটা লাইন বলার পরে $1200-এর কোটেশন পাঠালে সেটা পুরো অন্যরকম শোনায়, একই কোটেশন কোনো প্রসঙ্গ ছাড়া পাঠানোর তুলনায়। তবে anchor ঠিক করার আগে নিজের আসল রেটটা জানা লাগে — ",[293,354,355],{"href":300},"সেই হিসাবটা আলাদা","।",[51,358,360],{"id":359},"তিনটা-অপশন-একটা-decoy","তিনটা অপশন, একটা \"decoy\"",[41,362,363,364,367],{},"উপরের ম্যাগাজিনের উদাহরণে মাঝের অপশনটার নাম ",[59,365,366],{},"decoy"," — নিজে থেকে কেউ ওটা বেছে নেয় না, কিন্তু ওটার পাশে দাঁড়ালে তৃতীয় অপশনটাকে \"obviously ভালো\" মনে হয়। কাউকে সরাসরি কিছু বেছে নিতে বলার চেয়ে, দুটো ভালো অপশনের মধ্যে তুলনা করতে দিলে সিদ্ধান্ত নেওয়া সহজ হয়ে যায় — আর সেই তুলনাটা যদি সাজিয়ে দেওয়া যায়, ফলাফলও পূর্বানুমান করা যায়।",[74,369,374,382],{"after":370,"before":371,"note":372,"split":373},"তিনটা প্যাকেজ, মাঝেরটা ইচ্ছাকৃতভাবে কম আকর্ষণীয়","তিনটা প্যাকেজ, কোনো decoy নেই","ডান পাশে Standard-কে Pro-র প্রায় কাছাকাছি দামে রেখে, কিন্তু কম ফিচার দিয়ে, Pro-কে 'সহজ সিদ্ধান্ত' বানানো হয়েছে।","একই সার্ভিস",[81,375,376],{"v-slot:before":83},[85,377,380],{"className":378,"code":379,"language":90},[88],"Basic — ৳৫,০০০\u002Fমাস\nStandard — ৳১২,০০০\u002Fমাস\nPro — ৳১৫,০০০\u002Fমাস\n",[92,381,379],{"__ignoreMap":83},[81,383,384],{"v-slot:after":83},[85,385,388],{"className":386,"code":387,"language":90},[88],"Basic — ৳৫,০০০\u002Fমাস (শুধু জরুরি ফিচার)\nStandard — ৳১৪,০০০\u002Fমাস (Pro-র প্রায় সব ফিচার, তবে ২ জন ইউজার লিমিট)\nPro — ৳১৫,০০০\u002Fমাস (আনলিমিটেড ইউজার + প্রায়োরিটি সাপোর্ট)\n",[92,389,387],{"__ignoreMap":83},[41,391,392],{},"লক্ষ্য করুন: দ্বিতীয় সংস্করণে Standard আর Pro-র দামের পার্থক্য মাত্র ৳১,০০০, কিন্তু ফিচারের পার্থক্য বড়। এটা দেখার পর বেশিরভাগ মানুষের কাছে Pro-ই \"আসল ডিল\" মনে হয় — Standard-এর কাজ শুধু সেই তুলনাটা তৈরি করে দেওয়া।",[106,394,395],{},[41,396,397],{},"Anchor খুব বাড়িয়ে দিলে বা decoy খুব স্পষ্টভাবে \"বেকার অপশন\" বানিয়ে ফেললে উল্টো ফল হয় — মানুষ ম্যানিপুলেশন টের পেয়ে গেলে বিশ্বাস হারায়, আর সেটা যেকোনো pricing trick-এর চেয়ে বড় ক্ষতি করে। Decoy-কে বাস্তব, ব্যবহারযোগ্য একটা অপশন রাখতে হবে — নিছক ফাঁদ বানালে চলবে না।",[51,399,401],{"id":400},"দাম-লেখার-ধরনও-প্রভাব-ফেলে","দাম লেখার ধরনও প্রভাব ফেলে",[41,403,404,407,408,411,412,415],{},[92,405,406],{},"৳৯৯৯"," আর ",[92,409,410],{},"৳১,০০০"," — সংখ্যা প্রায় একই, কিন্তু প্রথমটা \"৯০০-এর ঘরে\" মনে হয়, দ্বিতীয়টা \"হাজারের ঘরে\"। বাম দিকের প্রথম সংখ্যাটাই মস্তিষ্ক আগে পড়ে ফেলে, বাকিটা পরে। এটাকে বলে ",[59,413,414],{},"left-digit effect"," — কোনো গোপন কৌশল না, শুধু মানুষ সংখ্যা যেভাবে স্ক্যান করে তার একটা বাস্তব ফলাফল।",[123,417,418],{},[41,419,420],{},"মাসিক আর বাৎসরিক প্যাকেজ পাশাপাশি দেখালে বাৎসরিকটাকে \"প্রতি মাসে ৳X\" হিসেবে ভেঙে দেখান, পুরো বছরের বড় সংখ্যাটা প্রথমে না দেখিয়ে। একই টাকা, কিন্তু ছোট সংখ্যাটা প্রথমে চোখে পড়লে সিদ্ধান্ত নেওয়া সহজ হয়।",[129,422],{":answer":131,":options":423,"checkLabel":133,"correctLabel":134,"explanation":424,"incorrectLabel":136,"question":425,"resetLabel":138},"[\"Basic-এর চেয়ে সস্তা, ফিচার আরও কম\",\"Pro-র কাছাকাছি দাম, কিন্তু Pro-র চেয়ে স্পষ্টভাবে কম ফিচার\",\"সবচেয়ে বেশি দাম, সবচেয়ে বেশি ফিচার\",\"Basic আর Pro-র ঠিক মাঝামাঝি দাম, আর মাঝামাঝি ফিচার\"]","decoy-র কাজ হলো একটা নির্দিষ্ট অপশনকে (এখানে Pro) \"obviously ভালো ডিল\" বানিয়ে দেওয়া। Pro-র কাছাকাছি দামে রেখে কিন্তু স্পষ্টভাবে কম ফিচার দিলে, দাম পার্থক্য সামান্য মনে হয় আর ফিচার পার্থক্য বড় মনে হয় — ফলে মানুষ সেই সামান্য বাড়তি টাকা দিয়ে Pro-ই নেয়। মাঝামাঝি একটা \"ভারসাম্য\" অপশন আসলে decoy হিসেবে কাজ করে না, কারণ সেটা নিজেই একটা যুক্তিসঙ্গত পছন্দ হয়ে ওঠে।","একটা SaaS প্রোডাক্টের দুটো প্ল্যান আছে: Basic ৳৫০০\u002Fমাস, Pro ৳২০০০\u002Fমাস। বিক্রি বাড়ানোর জন্য একটা তৃতীয় \"decoy\" প্ল্যান যোগ করতে চান। এটার দাম আর ফিচার কেমন হওয়া উচিত?",[51,427,429],{"id":428},"pricing-পেজ-রিভিউ-করার-আগে","Pricing পেজ রিভিউ করার আগে",[144,431],{":items":432,"doneLabel":147,"resetLabel":148,"title":433},"[{\"label\":\"প্রথম যে সংখ্যাটা দেখা যাচ্ছে, সেটাই কি সঠিক anchor?\",\"detail\":\"সবচেয়ে দামি অপশন বাম দিকে বা সবার আগে থাকলে, বাকি সবকিছু তুলনায় সস্তা মনে হয়।\"},{\"label\":\"তিনটা অপশনের মধ্যে একটা কি স্পষ্ট decoy?\",\"detail\":\"decoy বাস্তব ব্যবহারযোগ্য হতে হবে, নিছক ফাঁদ বানালে বিশ্বাস নষ্ট হয়।\"},{\"label\":\"সংখ্যার প্রথম অঙ্কটা (left-digit) খেয়াল করেছেন?\",\"detail\":\"৯৯৯ আর ১০০০ — সংখ্যায় কাছাকাছি, ধারণায় না।\"},{\"label\":\"বড় সংখ্যাকে ছোট এককে ভেঙে দেখানো হয়েছে কি?\",\"detail\":\"বাৎসরিক দামকে মাসিক হিসেবে দেখানো এর একটা সাধারণ উদাহরণ।\"},{\"label\":\"Anchor বা decoy কি এতটা বাড়াবাড়ি যে অবিশ্বাস্য মনে হচ্ছে?\",\"detail\":\"ধরা পড়ে গেলে সেটা যেকোনো pricing কৌশলের চেয়ে বেশি ক্ষতি করে।\"}]","দাম লেখার আগে যা যাচাই করবেন",[41,435,436],{},"দাম ঠিক করা মানে শুধু একটা সংখ্যা বসানো না — সেই সংখ্যাটা কার পাশে বসছে, সেটাই আসল সিদ্ধান্ত।",{"title":83,"searchDepth":154,"depth":154,"links":438},[439,440,441,442],{"id":336,"depth":157,"text":337},{"id":359,"depth":157,"text":360},{"id":400,"depth":157,"text":401},{"id":428,"depth":157,"text":429},"2026-09-09","একই প্রোডাক্ট, একই দাম — শুধু পাশে আরেকটা অপশন বসিয়ে দিলেই সেল বেড়ে যায়। ম্যাজিক না, এটা মানুষের মস্তিষ্কের একটা পরিচিত প্যাটার্ন — Anchoring।",{},7,{"title":324,"description":444},"কাস্টমার দাম দেখে কেনে না, তুলনা দেখে কেনে","blog\u002Fbn\u002Fprice-anchoring-decoy-effect",[451,175,320],"Pricing","ZGfdk0jKDlZ6-UkUohFeWrtqwtncS3wN60ZaBDDAQX0",{"id":454,"title":455,"author":456,"body":459,"category":810,"cover":162,"coverAlt":162,"date":811,"description":812,"draft":6,"extension":165,"featured":6,"lang":166,"meta":813,"navigation":24,"path":814,"readingTime":169,"seo":815,"seoTitle":816,"stem":817,"tags":818,"__hash__":821},"blog\u002Fblog\u002Fbn\u002Fkubernetes-rolling-update-rollback.md","Deployment আপডেট করলে সাইট ডাউন হয় না কেন — Rolling Update ভেতরে ভেতরে কী করে",{"name":457,"role":458},"রাফি হাসান","DevOps ইঞ্জিনিয়ার",{"type":38,"value":460,"toc":803},[461,471,474,478,493,503,507,512,520,535,681,700,713,717,738,748,756,760,773,783,788,792,796,799],[41,462,463,466,467,470],{},[92,464,465],{},"kubectl set image deployment\u002Fapi api=myapp:v2"," — একটা কমান্ড, আর কয়েক সেকেন্ড পর ",[92,468,469],{},"kubectl get pods"," চালালে দেখা যায় পুরনো Pod-গুলো একে একে হারিয়ে যাচ্ছে, নতুনগুলো জায়গা নিচ্ছে। এই পুরো সময়টায় সাইটে একটাও রিকোয়েস্ট ফেইল হয় না — অথচ কোনো মেইনটেন্যান্স পেজ দেখানো হয়নি, কাউকে জানানোও হয়নি।",[41,472,473],{},"এটা কীভাবে হয়, সেটা বুঝলে দুটো জিনিস পরিষ্কার হয়ে যায়: ডিপ্লয়মেন্ট স্লো কেন হচ্ছে সেটা ডিবাগ করা, আর কিছু ভুল হলে কীভাবে এক কমান্ডে ফিরিয়ে আনা যায়।",[51,475,477],{"id":476},"ডিফল্ট-স্ট্র্যাটেজি-rollingupdate","ডিফল্ট স্ট্র্যাটেজি: RollingUpdate",[41,479,480,481,484,485,488,489,492],{},"একটা Kubernetes ",[92,482,483],{},"Deployment","-এর ",[92,486,487],{},".spec.strategy.type"," ডিফল্টভাবে ",[92,490,491],{},"RollingUpdate"," — মানে নতুন ভার্সন এক ধাক্কায় পুরনোটাকে replace করে না। বরং ধাপে ধাপে: কিছু নতুন Pod তৈরি হয়, তারা readiness probe পাস করে ট্রাফিক নেওয়ার জন্য প্রস্তুত হয়, তারপরই সমপরিমাণ পুরনো Pod সরিয়ে দেওয়া হয়। পুরো ট্রানজিশন জুড়ে সবসময় যথেষ্ট সংখ্যক Pod ট্রাফিক পাওয়ার জন্য রেডি থাকে।",[64,494,495],{},[41,496,497,498,502],{},"এই পুরো প্রক্রিয়াটা সরাসরি নির্ভর করে আগের একটা জিনিসের ওপর — ",[293,499,501],{"href":500},"\u002Fblog\u002Fbn\u002Fkubernetes-liveness-readiness-probe","readiness probe ঠিকমতো সেট করা থাকা","। readiness probe না থাকলে বা ভুল থাকলে, Kubernetes ধরে নেয় নতুন Pod সাথে সাথেই \"রেডি\" — তখন rolling update আসলে আর নিরাপদ থাকে না, কারণ যে Pod-টা এখনো স্টার্টআপ শেষ করেনি তার কাছেও ট্রাফিক চলে যেতে পারে।",[51,504,506],{"id":505},"দুটো-সংখ্যা-যা-পুরো-আচরণ-নিয়ন্ত্রণ-করে","দুটো সংখ্যা যা পুরো আচরণ নিয়ন্ত্রণ করে",[41,508,509,511],{},[92,510,491],{}," স্ট্র্যাটেজির ভেতরে দুটো প্যারামিটার থাকে, দুটোই পার্সেন্টেজ বা সংখ্যা হিসেবে দেওয়া যায়:",[41,513,514,519],{},[59,515,516],{},[92,517,518],{},"maxSurge"," — কাঙ্ক্ষিত রেপ্লিকা সংখ্যার চেয়ে বেশি কতগুলো Pod সাময়িকভাবে তৈরি করা যাবে। এটা বেশি রাখলে ডিপ্লয়মেন্ট দ্রুত হয় (একসাথে বেশি নতুন Pod ওঠে), কিন্তু ওই মুহূর্তে ক্লাস্টারে বাড়তি CPU\u002Fমেমরি লাগে।",[41,521,522,527,528,531,532,534],{},[59,523,524],{},[92,525,526],{},"maxUnavailable"," — কাঙ্ক্ষিত সংখ্যার চেয়ে কতগুলো Pod সাময়িকভাবে কম থাকতে পারবে (অর্থাৎ, ট্রাফিক নেওয়ার জন্য অনুপলব্ধ থাকতে পারবে)। এটা ",[92,529,530],{},"0"," রাখলে ডিপ্লয়মেন্টের সময় ক্যাপাসিটি কখনো কমবে না — কিন্তু তার মানে ",[92,533,518],{}," অন্তত ১ না রাখলে নতুন Pod ওঠারই জায়গা থাকবে না।",[74,536,541,622],{"after":537,"before":538,"note":539,"split":540},"জিরো-ডাউনটাইম কনফিগ","ডিফল্ট (25%\u002F25%)","ডান পাশের কনফিগারেশনে ক্যাপাসিটি কখনো কমে না, শুধু সাময়িকভাবে বাড়ে — ছোট ট্রাফিক স্পাইকের সময় ডিপ্লয় করলেও এটা নিরাপদ।","একই Deployment",[81,542,543],{"v-slot:before":83},[85,544,548],{"className":545,"code":546,"language":547,"meta":83,"style":83},"language-yaml shiki shiki-themes github-dark-dimmed github-dark-dimmed","spec:\n  replicas: 4\n  strategy:\n    type: RollingUpdate\n    rollingUpdate:\n      maxSurge: 25%\n      maxUnavailable: 25%\n","yaml",[92,549,550,563,575,582,594,602,613],{"__ignoreMap":83},[551,552,555,559],"span",{"class":553,"line":554},"line",1,[551,556,558],{"class":557},"sza-u","spec",[551,560,562],{"class":561},"sM9_K",":\n",[551,564,565,568,571],{"class":553,"line":157},[551,566,567],{"class":557},"  replicas",[551,569,570],{"class":561},": ",[551,572,574],{"class":573},"sQdni","4\n",[551,576,577,580],{"class":553,"line":154},[551,578,579],{"class":557},"  strategy",[551,581,562],{"class":561},[551,583,585,588,590],{"class":553,"line":584},4,[551,586,587],{"class":557},"    type",[551,589,570],{"class":561},[551,591,593],{"class":592},"szYpP","RollingUpdate\n",[551,595,597,600],{"class":553,"line":596},5,[551,598,599],{"class":557},"    rollingUpdate",[551,601,562],{"class":561},[551,603,605,608,610],{"class":553,"line":604},6,[551,606,607],{"class":557},"      maxSurge",[551,609,570],{"class":561},[551,611,612],{"class":592},"25%\n",[551,614,615,618,620],{"class":553,"line":446},[551,616,617],{"class":557},"      maxUnavailable",[551,619,570],{"class":561},[551,621,612],{"class":592},[81,623,624],{"v-slot:after":83},[85,625,627],{"className":545,"code":626,"language":547,"meta":83,"style":83},"spec:\n  replicas: 4\n  strategy:\n    type: RollingUpdate\n    rollingUpdate:\n      maxSurge: 1\n      maxUnavailable: 0\n",[92,628,629,635,643,649,657,663,672],{"__ignoreMap":83},[551,630,631,633],{"class":553,"line":554},[551,632,558],{"class":557},[551,634,562],{"class":561},[551,636,637,639,641],{"class":553,"line":157},[551,638,567],{"class":557},[551,640,570],{"class":561},[551,642,574],{"class":573},[551,644,645,647],{"class":553,"line":154},[551,646,579],{"class":557},[551,648,562],{"class":561},[551,650,651,653,655],{"class":553,"line":584},[551,652,587],{"class":557},[551,654,570],{"class":561},[551,656,593],{"class":592},[551,658,659,661],{"class":553,"line":596},[551,660,599],{"class":557},[551,662,562],{"class":561},[551,664,665,667,669],{"class":553,"line":604},[551,666,607],{"class":557},[551,668,570],{"class":561},[551,670,671],{"class":573},"1\n",[551,673,674,676,678],{"class":553,"line":446},[551,675,617],{"class":557},[551,677,570],{"class":561},[551,679,680],{"class":573},"0\n",[41,682,683,684,687,688,691,692,695,696,699],{},"৪টা রেপ্লিকা আর ডিফল্ট ",[92,685,686],{},"25%\u002F25%"," কনফিগারেশন দিয়ে হিসাব করলে: ",[92,689,690],{},"maxUnavailable: 25%"," মানে একসাথে ১টা Pod সাময়িকভাবে কমে যেতে পারে (৪ থেকে ৩-এ), অর্থাৎ ক্যাপাসিটি সাময়িকভাবে কমে। ডান পাশের কনফিগারেশনে ",[92,693,694],{},"maxUnavailable: 0"," দেওয়ায় সেটা কখনো হয় না — সবসময় কমপক্ষে ৪টা Pod রেডি থাকে, মাঝেমধ্যে ৫টা পর্যন্ত (৪ + ",[92,697,698],{},"maxSurge: 1",")।",[106,701,702],{},[41,703,704,407,706,709,710,712],{},[92,705,694],{},[92,707,708],{},"replicas: 1"," একসাথে থাকলে rolling update কখনো এগোতে পারবে না যদি ",[92,711,518],{}," না বাড়ানো হয় — কারণ একটা মাত্র Pod-কে \"unavailable\" না করে replace করার কোনো উপায় নেই, নতুন জায়গা তৈরি না করলে। ছোট সার্ভিসে এই কম্বিনেশন একটা Deployment স্টাক হয়ে থাকার সাধারণ কারণ।",[51,714,716],{"id":715},"rollout-স্টাক-থাকলে-কী-দেখবেন","rollout স্টাক থাকলে কী দেখবেন",[41,718,719,722,723,725,726,729,730,733,734,737],{},[92,720,721],{},"kubectl rollout status deployment\u002Fapi"," কমান্ড আটকে থাকলে, প্রথম সন্দেহ করার জায়গা: নতুন Pod-গুলো readiness probe পাস করছে কি না। ",[92,724,469],{}," চালিয়ে ",[92,727,728],{},"READY"," কলামে ",[92,731,732],{},"0\u002F1"," দেখলে বোঝা যায় Pod উঠেছে কিন্তু readiness ফেইল করছে — এটাই ",[293,735,736],{"href":500},"আগের লেখার বিষয়"," (liveness বনাম readiness)।",[41,739,740,741,743,744,747],{},"আরেকটা সাধারণ কারণ: রিসোর্স কোটা বা নোডে জায়গা না থাকা। ",[92,742,518],{}," বাড়তি Pod তৈরির অনুমতি দেয়, কিন্তু ক্লাস্টারে সেই Pod বসানোর মতো CPU\u002Fমেমরি না থাকলে সেটা ",[92,745,746],{},"Pending"," অবস্থাতেই আটকে থাকবে, আর rollout এগোবে না।",[123,749,750],{},[41,751,752,755],{},[92,753,754],{},"kubectl rollout status deployment\u002Fapi --timeout=60s"," দিয়ে rollout দেখা ভালো অভ্যাস — timeout ছাড়া কমান্ডটা আটকে গেলে টার্মিনালে বসে অপেক্ষা করা ছাড়া উপায় থাকে না। CI\u002FCD পাইপলাইনে এই timeout না রাখলে একটা স্টাক rollout পুরো পাইপলাইনকে ঘণ্টার পর ঘণ্টা ব্লক করে রাখতে পারে।",[51,757,759],{"id":758},"কিছু-ভুল-হলে-rollback","কিছু ভুল হলে — Rollback",[41,761,762,763,766,767,769,770,772],{},"নতুন ভার্সন ডিপ্লয় করার পর যদি বোঝা যায় কিছু ভুল আছে, ",[92,764,765],{},"kubectl rollout undo deployment\u002Fapi"," চালালে Kubernetes ঠিক এই একই rolling update মেকানিজম ব্যবহার করে — শুধু উল্টো দিকে। আগের ভার্সনের Pod ধীরে ধীরে ফিরিয়ে আনা হয়, নতুনটা সরানো হয়, একই ",[92,768,518],{},"\u002F",[92,771,526],{}," নিয়ম মেনেই।",[41,774,775,776,779,780,356],{},"এটা কাজ করে কারণ Deployment প্রতিটা আপডেটের একটা রিভিশন হিস্টোরি রাখে (",[92,777,778],{},"kubectl rollout history deployment\u002Fapi",")। নির্দিষ্ট কোনো রিভিশনে ফিরতে চাইলে: ",[92,781,782],{},"kubectl rollout undo deployment\u002Fapi --to-revision=3",[129,784],{":answer":274,":options":785,"checkLabel":133,"correctLabel":134,"explanation":786,"incorrectLabel":136,"question":787,"resetLabel":138},"[\"৩টা\",\"৪টা\",\"৫টা\",\"৮টা\"]","maxUnavailable: 0 মানে কখনো ৪টার নিচে নামবে না। maxSurge: 1 মানে কাঙ্ক্ষিত সংখ্যার (৪) চেয়ে বেশি ১টা পর্যন্ত বাড়তি Pod থাকতে পারে। তাই সর্বোচ্চ সংখ্যা ৪ + ১ = ৫টা — নতুন একটা Pod রেডি হওয়ার পরই পুরনো একটা সরানো হবে, কখনো একসাথে দুই দিক থেকে সংখ্যা বদলাবে না।","একটা Deployment-এর replicas: 4, maxSurge: 1, maxUnavailable: 0। rolling update চলাকালীন এক মুহূর্তে সর্বোচ্চ কতগুলো Pod একসাথে থাকতে পারে?",[51,789,791],{"id":790},"ডিপ্লয়মেন্টের-আগে-পরে-যা-চেক-করবেন","ডিপ্লয়মেন্টের আগে-পরে যা চেক করবেন",[144,793],{":items":794,"doneLabel":147,"resetLabel":148,"title":795},"[{\"label\":\"readinessProbe সঠিকভাবে সেট করা আছে কি না নিশ্চিত করুন\",\"detail\":\"এটা ছাড়া rolling update-এর পুরো নিরাপত্তা ধারণাটাই ভেঙে পড়ে।\"},{\"label\":\"maxUnavailable: 0 দরকার কি না ভাবুন\",\"detail\":\"ক্রিটিক্যাল সার্ভিসে ক্যাপাসিটি কখনো না কমানোই নিরাপদ, তবে replicas কম হলে maxSurge বাড়াতে ভুলবেন না।\"},{\"label\":\"kubectl rollout status --timeout সহ ব্যবহার করুন, বিশেষত CI\u002FCD-তে\",\"detail\":\"টাইমআউট ছাড়া একটা স্টাক rollout পাইপলাইনকে অনির্দিষ্টকাল আটকে রাখতে পারে।\"},{\"label\":\"রোলআউটের সময় kubectl get pods -w দিয়ে চোখে চোখে রাখুন\",\"detail\":\"কোনো Pod বারবার রিস্টার্ট বা Pending-এ আটকে থাকলে সাথে সাথেই বোঝা যাবে।\"},{\"label\":\"সমস্যা দেখলে দ্রুত rollout undo চালাতে দ্বিধা করবেন না\",\"detail\":\"rollback নিজেও একটা rolling update — এটাও ধাপে ধাপে হয়, তাই এটাও নিরাপদ।\"}]","Rolling update নিরাপদ কি না, যাচাইয়ের তালিকা",[41,797,798],{},"Rolling update জাদু না — এটা দুটো সংখ্যার হিসাব, আর সেই হিসাবটা কাজ করার জন্য readiness probe-এর ওপর সম্পূর্ণ নির্ভরশীল। এই তিনটা জিনিস একসাথে বুঝলে — probe, maxSurge\u002FmaxUnavailable, আর rollback — একটা প্রোডাকশন Deployment দেখলে আর অন্ধকারে ঢিল ছোড়ার মতো লাগবে না।",[800,801,802],"style",{},"html pre.shiki code .sza-u, html code.shiki .sza-u{--shiki-default:#8DDB8C;--shiki-dark:#8DDB8C}html pre.shiki code .sM9_K, html code.shiki .sM9_K{--shiki-default:#ADBAC7;--shiki-dark:#ADBAC7}html pre.shiki code .sQdni, html code.shiki .sQdni{--shiki-default:#6CB6FF;--shiki-dark:#6CB6FF}html pre.shiki code .szYpP, html code.shiki .szYpP{--shiki-default:#96D0FF;--shiki-dark:#96D0FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":83,"searchDepth":154,"depth":154,"links":804},[805,806,807,808,809],{"id":476,"depth":157,"text":477},{"id":505,"depth":157,"text":506},{"id":715,"depth":157,"text":716},{"id":758,"depth":157,"text":759},{"id":790,"depth":157,"text":791},"devops","2026-09-08","kubectl apply চালানোর পর সাইট একবারও ডাউন হয় না, অথচ পুরনো কোড সরে গিয়ে নতুন কোড চলে আসে। জাদু না — maxSurge আর maxUnavailable নামের দুটো সংখ্যা এটা সম্ভব করে।",{},"\u002Fblog\u002Fbn\u002Fkubernetes-rolling-update-rollback",{"title":455,"description":812},"Deployment আপডেটে সাইট ডাউন হয় না কেন","blog\u002Fbn\u002Fkubernetes-rolling-update-rollback",[819,820,483],"Kubernetes","DevOps","TRBMuqOPVkPQeCVhP_N5GdXNCjs2ro8BO4oLubgOGeY",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":823},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":825},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M8 2v3m8-3v3\"\u002F>\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M3 9h18\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":827},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 6v6l4 2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":829},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"\u002F>\u003Cpath d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":831},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M16 7h6v6\"\u002F>\u003Cpath d=\"m22 7l-8.5 8.5l-5-5L2 17\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":833},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"20\" height=\"8\" x=\"2\" y=\"2\" rx=\"2\" ry=\"2\"\u002F>\u003Crect width=\"20\" height=\"8\" x=\"2\" y=\"14\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M6 6h.01M6 18h.01\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":835},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m9 15l6-6\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":837},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M12 3v18\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":839},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":841},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3m.08 4h.01\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":843},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 16v-4m0-4h.01\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":845},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":847},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7v14\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":849},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m21.73 18l-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3M12 9v4m0 4h.01\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":851},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m9 12l2 2l4-4\"\u002F>\u003C\u002Fg>",1791742736971]