{"id":19406,"date":"2026-05-18T08:22:38","date_gmt":"2026-05-18T08:22:38","guid":{"rendered":"https:\/\/www.hashmicro.com\/my\/blog\/?p=19406"},"modified":"2026-05-18T08:22:38","modified_gmt":"2026-05-18T08:22:38","slug":"sales-cycle","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/","title":{"rendered":"What Is a Sales Cycle? 7 Stages &#038; Tips for Malaysian Businesses"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Managing leads from WhatsApp, LinkedIn, referrals, and trade events around KL or Shah Alam can get messy fast. Without a clear sales cycle, your team may follow up late, miss buyer signals, or lose deals simply because no one knows the next step.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This matters even more in Malaysia, where MSMEs contributed 39.5% to the economy in 2024 and recorded 5.8% GDP growth, <a href=\"https:\/\/www.dosm.gov.my\/uploads\/release-content\/file_20250731094131.pdf\" target=\"_blank\" rel=\"noopener\">according to DOSM<\/a>. A structured cycle helps sales teams turn that momentum into more predictable revenue.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this guide, you\u2019ll learn what a sales cycle is, its 7 key stages, how to measure sales cycle time, and practical ways Malaysian businesses can manage each step better.<\/span><\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #8a0e19; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#Is\">A sales cycle<\/a> gives your team a clear path from first contact to closing, so every lead is managed with the right next step.<\/li>\n<li aria-level=\"1\">The <a href=\"#The\">7 sales cycle stages<\/a> help Malaysian businesses handle leads from WhatsApp, LinkedIn, referrals, and trade events more consistently.<\/li>\n<li aria-level=\"1\">Measuring your <a href=\"#Your\">average sales cycle<\/a> length helps your team find slow stages, qualify leads earlier, and reduce missed follow ups with better tracking.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span data-sheets-root=\"1\"><!-- <div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tTable of Content\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div>\r\n\r\n<div class=\"dropdown-fixed-top\" id=\"dropdown-fixed-top\">\r\n\t<div class=\"row\">\r\n\t\t<p id=\"pilihDaftarIsi\">Content Lists<\/p>\r\n\t\t<p><i class=\"td-icon-menu-down\"><\/i><\/p>\r\n\t<\/div>\r\n\t\r\n\t<div>\r\n\t\t<ul id=\"list_toc_top\" class='list_toc'><\/ul>\r\n\t<\/div>\r\n<\/div> -->\r\n\r\n<!-- TOC mobile -->\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Table of Content<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n<!-- TOC mobile -->\r\n\r\n<style>\r\n\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_top li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor: #000;\r\n\t\tmargin-bottom: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t}\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\t\t\t\t\r\n\t}\r\n\r\n<\/style>\r\n\r\n<style>\r\n\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_top li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor: #000;\r\n\t\tmargin-bottom: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\r\n<\/style>\r\n\r\n<!-- START ToC styling  -->\r\n<style>\r\n\t\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 0px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 90% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\t\t\tright: 5%;\r\n\t\t}\r\n\t}\r\n\t\r\n\t<\/style>\r\n<!-- END ToC styling  -->\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with the ID 'article-left'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within 'myarticle'\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title'); \/\/ Assuming header-faq is the element for TOC title\r\n\r\n\/\/ Sticky TOC and update heading\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 700;\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\tconst panel2 = document.querySelector(\"#toc .list\");\r\n\tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n  let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n  \/\/ Function to handle scroll and add\/remove .sticky class\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Highlight user progress as the heading comes\r\n    headers.forEach(header => {\r\n\t\tconst headerTop = header.offsetTop;\r\n\t\tconst headerHeight = header.clientHeight;\r\n\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\tconsole.log(\"current header text:\", currentHeaderText);\r\n\t\t\ttocTitle.textContent = currentHeaderText;\r\n\t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t\r\n\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\ttocTitle.textContent = 'Table of Content';\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader != '') {\r\n\t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\t\t\t  link.classList.add('active');\r\n\t\t  }\r\n\t  }\r\n    });\r\n\/\/     if (windowTop < triggerFooterPoint) {\r\n\/\/         toc.style.display = 'block';\r\n\/\/ \t}else{\r\n\/\/         toc.style.display = 'none';\r\n\/\/ \t}\r\n    \/\/ Update TOC title if sticky\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n        toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n        toc.style.backgroundColor = \"#FFF\";\r\n\t\tpanel2.style.height = '0px';\r\n\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t  if(window.innerWidth < 767){\r\n\/\/ \t\t\t  const tocs = document.querySelector('#toc.sticky');\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n       \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\t\t  }\r\n      }\r\n      if (currentHeader) {\r\n\/\/         console.log(\"activeLink:\", activeLink);\r\n        if (activeLink) {\r\n\/\/           tocTitle.textContent = activeLink.textContent; \/\/ Update TOC title\r\n          tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n        }\r\n      }\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset'; \/\/ Reset to original width\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\t\ticon.style.transform = \"rotate(180deg)\";\r\n    }\r\n  }\r\n\r\n    \/\/ Attach the scroll event listener to the window\r\n    window.addEventListener('scroll', handleScroll);\r\n\r\n    \/\/ Initial call to handleScroll to set the correct state on load\r\n    handleScroll();\r\n});\r\n\t\r\n\t\/\/ Open toggle TOC\r\n\t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\t\tvar toc = document.querySelector(\"#toc\");\r\n\t\tvar icon = document.querySelector(\".toc-icon\");\r\n\t\tconst tocTitle = document.querySelector('#toc-title');\r\n\t\tconst tocs = document.querySelector('#toc.sticky');\r\n \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\t\t  tocHeader.addEventListener(\"click\", function() {\r\n\t\t\tvar panel = this.nextElementSibling;\r\n\t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t\t\ttoc.style.paddingBottom = '6px'; \r\n\t\t\t\tif(window.innerWidth > 768){\r\n\t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\t\t\t\t}\r\n\t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\t\t\t} else {\r\n\t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\t\t\ttoc.style.paddingBottom = '24px';\r\n\t\t\t \tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t  });\r\n\r\n\t\t  \/\/ Close TOC when a link inside it is clicked\r\n\t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\t\t  tocLinks.forEach(function(link) {\r\n\t\t\tlink.addEventListener(\"click\", function() {\r\n\t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t});\r\n\t\t  });\r\n\t\t});\r\n<\/script>\r\n\r\n<!-- <script>\r\n\tvar pilihDaftarIsi = document.getElementById('pilihDaftarIsi');\r\n\t\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\tvar dropdownFixedTop = document.querySelector('.dropdown-fixed-top');\r\n\r\n\t\tdropdownFixedTop.addEventListener('click', function() {\r\n\t\t\tvar dropdownContent = this.querySelector('.list_toc');\r\n\t\t\tdropdownContent.classList.toggle('show');\r\n\t\t});\r\n\r\n\t\twindow.addEventListener('click', function(event) {\r\n\t\t\tvar listTocTop = document.getElementById('list_toc_top');\r\n\r\n\t\t\tif (!dropdownFixedTop.contains(event.target)) {\r\n\t\t\t\tlistTocTop.classList.remove('show');\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\t\r\n\tvar daftarIsiContainer = document.getElementById('toc_group_article');\r\n\tvar dropdownFixedTop = document.getElementById('dropdown-fixed-top');\r\n    var triggered = false; \/\/ Flag to keep track of whether the function has been triggered\r\n\r\n    window.addEventListener('scroll', function() {\r\n        if (!triggered && isCompletelyScrolledPast(daftarIsiContainer)) {\r\n            showSectionDropdownFixedTop(false);\r\n            triggered = true;\r\n        } else if (triggered && !isCompletelyScrolledPast(daftarIsiContainer)) {\r\n            showSectionDropdownFixedTop(true);\r\n            triggered = false;\r\n        }\r\n    });\r\n\r\n    function isCompletelyScrolledPast(element) {\r\n        var elementTop = element.getBoundingClientRect().top;\r\n        var elementBottom = element.getBoundingClientRect().bottom;\r\n        return elementTop < 0 && elementBottom < 0;\r\n    }\r\n\r\n    function showSectionDropdownFixedTop(show) {\r\n\t\tif (show) {\r\n\t\t\tdropdownFixedTop.classList.remove(\"show\");\r\n\t\t} else {\r\n\t\t\tdropdownFixedTop.classList.add(\"show\");\r\n\t\t}\r\n    }\r\n\r\n\/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n\t\t  pilihDaftarIsi.innerHTML = a.textContent;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float', 'list_toc_top']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script> -->\r\n<!-- END script lama -->\r\n\t\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float', 'list_toc_top']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\t\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!-- <script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n        \/\/ Fungsi untuk mengubah teks menjadi format id\r\n        function formatId(text) {\r\n            return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n        }\r\n\r\n        \/\/ Fungsi untuk membuat nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Membuat objek untuk menyimpan daftar h2 dan h3 beserta judulnya\r\n        const headings = [];\r\n\r\n           \/\/ Mengambil semua elemen h2 dan h3\r\n        const elements = document.querySelectorAll('.td-post-content h2');\r\n\t\t\t\/\/, .td-post-content h3\r\n\r\n        elements.forEach(element => {\r\n            if (element.tagName === 'H2') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n\t\t\t\tif(element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Biar ga nampilin Key Takeaways di ToC\r\n                headings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n            } else if (element.tagName === 'H3') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n                if (headings.length > 0) {\r\n                    headings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ Membuat list HTML dari objek headings\r\n        const ul = document.getElementById('list_toc');\r\n        let currentUl = ul;\r\n        headings.forEach(heading => {\r\n            const li = document.createElement('li');\r\n            const a = document.createElement('a');\r\n            a.textContent = heading.title;\r\n            a.href = `#${heading.id}`;\r\n            li.appendChild(a);\r\n\r\n            if (heading.level === 'h2') {\r\n                \/\/ Menyimpan ul saat ini untuk menambahkan nested ul\r\n                currentUl = li;\r\n                ul.appendChild(li);\r\n            } else if (heading.level === 'h3') {\r\n                if (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n                    \/\/ Jika belum ada nested ul, buat satu\r\n                    const nestedUl = document.createElement('ul');\r\n                    currentUl.appendChild(nestedUl);\r\n                    currentUl = nestedUl;\r\n                }\r\n                currentUl.appendChild(li);\r\n            }\r\n\r\n            createNestedList(li, heading.children);\r\n        });\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\n\/\/ Dapatkan isi (child elements) dari ul dengan id 'list_toc_float'\r\n\tif (ulFloat !== null) {\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\t\tconst ulTocTop = document.getElementById('list_toc_top');\r\n\t\tif ((ulToc !== null || ulToc !== undefined) && window.innerWidth > 1018){\r\n\t\t\tulToc.append(...clonedChildren);\r\n\t\t} else {\r\n\t\t\tulTocTop.append(...clonedChildren);\r\n\t\t}\r\n\t} \r\n\r\n\tif (ulJourney !== null) {\r\n\t\tconst clonedChildrenJourney = ulJourney.cloneNode(true).children;\r\n\t\tconst ulTocJourney = document.getElementById('list_toc_journey');\r\n\t\tulTocJourney.append(...clonedChildrenJourney);\r\n\t} \r\n\r\n\r\n\r\n\r\n\t\r\n        \/\/ Fungsi untuk mengambil tinggi navbar\r\n        function getNavbarHeight() {\r\n            const navbar = document.getElementById('tdi_34');\r\n            return navbar ? navbar.offsetHeight : 0;\r\n        }\r\n\r\n        \/\/ Fungsi untuk menambahkan offset posisi scroll\r\n        function scrollToElementWithOffset(elementId) {\r\n            const element = document.getElementById(elementId);\r\n            if (element) {\r\n                const offset = getNavbarHeight();\r\n                const elementPosition = element.getBoundingClientRect().top;\r\n                const offsetPosition = elementPosition - offset-40;\r\n\r\n                window.scrollBy({\r\n                    top: offsetPosition,\r\n                    behavior: 'smooth'\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Fungsi untuk menangani klik pada tautan judul\r\n        function handleTitleClick(event) {\r\n            event.preventDefault();\r\n            const href = event.target.getAttribute('href').substr(1);\r\n            scrollToElementWithOffset(href);\r\n        }\r\n\r\n        \/\/ Tambahkan event listener untuk semua tautan judul\r\n        const titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n        titleLinks.forEach(link => {\r\n            link.addEventListener('click', handleTitleClick);\r\n        });\r\n\t});\r\n    <\/script> -->\r\n<!-- \t<style>#toc_group_float{display:block !important}<\/style> -->\r\n<\/span><\/p>\n<p>A clear sales cycle is easier to manage when leads, follow ups, and deal status are tracked in one place through CRM software.<\/p>\n<p><span id=\"Is\"><\/span><a href=\"https:\/\/www.hashmicro.com\/my\/sales-leads-management?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/02\/crm_sales_definisi_en.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/02\/crm_sales_definisi_en.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/02\/crm_sales_definisi_en_m.webp\" alt=\"Sales_Definisi\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/p>\n<h2><b>What Is a Sales Cycle?<\/b><\/h2>\n<p>A sales cycle is the complete journey a potential customer goes through from first contact with your business until the deal is closed and followed up. It shows every step your sales team takes to turn a lead into a paying customer.<\/p>\n<p><span style=\"font-weight: 400;\">For Malaysian businesses, a clear sales cycle helps teams manage leads from WhatsApp, LinkedIn, referrals, or trade events more consistently. The sales cycle is different from the sales process because it describes the overall journey, while the sales process refers to the repeatable actions used within each stage.<\/span><\/p>\n<h2><b>Why Does Your Sales Cycle Matter for Business Growth?<\/b><\/h2>\n<p>A clear sales cycle helps Malaysian businesses reduce missed opportunities and plan sales with less guesswork. By knowing where each deal stands, teams can forecast revenue, manage workload, and follow up on the right leads faster.<\/p>\n<p>This is where sales cycle management becomes important. <a href=\"https:\/\/www.dosm.gov.my\/uploads\/release-content\/file_20241219094319.pdf\" target=\"_blank\" rel=\"noopener\">According to DOSM<\/a>, Malaysia\u2019s e-commerce income recorded RM918.2 billion in the first nine months of 2024, reflecting 4.0% year-on-year growth. As more buyers interact through digital channels, businesses need a clearer way to track every stage, from first contact to closing, so deals do not stall unnoticed. <span style=\"font-weight: 400;\">A well managed sales cycle can help your business:<\/span><\/p>\n<h3><b>Forecast revenue more predictably<\/b><\/h3>\n<p>When every deal has a clear stage, your team can estimate which opportunities are likely to close this month, next quarter, or later. This helps Malaysian SMEs plan hiring, stock, cash flow, and sales targets with more confidence.<\/p>\n<h3><b>Onboard new sales reps faster<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">\u00a0New reps can follow a clear sales flow instead of learning only through trial and error. They know when to qualify a lead, when to send a proposal, when to follow up, and when to escalate the deal to a manager.<\/span><\/p>\n<h3><b>Spot where deals get stuck<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">\u00a0Some deals may slow down during negotiation, approval, or proposal review. By tracking each stage, your team can see the real bottleneck and fix it earlier, such as by preparing clearer pricing, payment terms, or decision-maker information.<\/span><\/p>\n<h3><b>Replicate what works<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">\u00a0If your best reps close deals faster, a structured sales cycle helps you identify what they do differently. Their follow-up timing, qualification questions, or proposal approach can become a repeatable standard for the whole team.<\/span><\/p>\n<h3><b>Align sales and marketing better<\/b><span style=\"font-weight: 400;\">\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Marketing can see which leads actually move forward, not just which campaigns generate the most contacts. This helps both teams focus on better-quality leads, clearer messaging, and follow-ups that match buyer readiness.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><span id=\"The\"><\/span>For businesses in Malaysia, this structure matters even more when buyers involve owners, finance teams, or operations managers before making a decision. Let\u2019s look at how it works<\/span><\/p>\n<h2><b>The 7 Stages of a Sales Cycle<\/b><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-19459\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/The-7-Stages-of-a-Sales-Cycle-1.webp\" alt=\"The 7 Stages of a Sales Cycle\" width=\"800\" height=\"450\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/The-7-Stages-of-a-Sales-Cycle-1.webp 800w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/The-7-Stages-of-a-Sales-Cycle-1-300x169.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/The-7-Stages-of-a-Sales-Cycle-1-768x432.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/The-7-Stages-of-a-Sales-Cycle-1-747x420.webp 747w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/The-7-Stages-of-a-Sales-Cycle-1-150x84.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/The-7-Stages-of-a-Sales-Cycle-1-696x392.webp 696w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Every successful sale moves through a predictable series of stages. While the exact number can vary by industry, most sales teams, from tech startups in Cyberjaya to manufacturing companies in Penang, usually follow these seven <\/span>sales cycle stages<span style=\"font-weight: 400;\"> to move prospects from first contact to long term customer relationships.<\/span><\/p>\n<h3><b>Stage 1: Prospecting<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Prospecting is the stage where your team finds potential customers who may need your product or service. In Malaysia, this often happens through WhatsApp Business, LinkedIn, referrals, trade events, or <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/b2b-lead-generation\/\">B2B lead generation in Malaysia channels<\/a>. For example, F&amp;B suppliers can target restaurant owners, while distributors and trading companies can approach retailers in KL, JB, Penang, or Selangor. Local tip: use WhatsApp Business labels to group leads by source, such as referral, event, LinkedIn, or repeat inquiry.<\/span><\/p>\n<h3><b>Stage 2: Connecting with Prospects<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Connecting is the first direct contact with your prospect through email, calls, LinkedIn, WhatsApp, or face to face introductions. In Malaysia\u2019s B2B market, personalisation matters because generic messages are easy to ignore. A multi language approach also helps when buyers prefer Bahasa Malaysia, English, or Mandarin. Local tip: send the first message, follow up after two working days, then do one final check in after a week.<\/span><\/p>\n<h3><b>Stage 3: Qualifying Leads<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Qualifying leads helps your team decide whether a prospect is ready to buy, needs more time, or is not a good fit. You can use BANT, which checks Budget, Authority, Need, and Timeline. In Malaysia, SME decisions are often owner driven, while enterprise deals may involve finance, procurement, operations, and department heads. Local tip: ask, \u201cWho else will be involved in reviewing this proposal?\u201d to understand the decision path earlier.<\/span><\/p>\n<h3><b>Stage 4: Presenting Your Solution<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Presenting your solution means showing how your product or service solves the prospect\u2019s specific problem. This can happen through a demo, proposal, quotation, Zoom, Google Meet, or an in person meeting. In Malaysia, buyers often need clear pricing, business value, and implementation scope before moving forward. Local tip: prepare proposals in RM with payment terms, timeline, and details that finance teams can review easily.<\/span><\/p>\n<h3><b>Stage 5: Handling Objections<\/b><\/h3>\n<p>Handling objections means responding to concerns that stop prospects from moving forward. In Malaysia, common objections include \u201cthe price is too high,\u201d \u201cwe still use Excel,\u201d and \u201cI need to check with my boss first.\u201d Your response should be helpful, not pushy. Explain the cost of manual work, the risk of missed follow ups, or offer a short summary they can share internally. Local tip: prepare simple response templates for the most common objections.<\/p>\n<h3><b>Stage 6: Closing the Deal<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Closing the deal is when both sides confirm the agreement, quotation, purchase order, payment terms, contract, and billing details. In Malaysia, this stage is also affected by LHDN e-Invoice requirements, so company details must be accurate before invoicing. Payment terms such as net 30, net 60, or net 90 are also common in B2B deals. Local tip: confirm the company name, TIN, registration number, and SST details before issuing the final invoice.<\/span><\/p>\n<h3><b>Stage 7: Following Up and Nurturing<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Following up and nurturing keeps the customer relationship active after the deal is closed. This matters in Malaysia because many business relationships depend on trust, after sales service, and consistent communication. Your team can check satisfaction, offer support, ask for referrals, or identify renewal and upsell opportunities. Local tip: use CRM to schedule follow ups automatically, record conversations, and remind your team when to reconnect.<\/span><\/p>\n<h2><b>What&#8217;s the Difference Sales Cycle vs. Sales Process\u00a0<\/b><\/h2>\n<p>A sales cycle refers to the stages a prospect goes through before becoming a customer. It focuses on where the deal is moving, from the first lead interaction to qualification, closing, and follow up. For example, a Malaysian SME may track a deal from WhatsApp inquiry, to qualified lead, to proposal review, and finally to closed deal.<\/p>\n<p>A sales process is the method your team uses to move prospects through those stages. It focuses on how the sales team sells, communicates, follows up, and handles objections. In short, the sales cycle vs sales process difference is simple: the sales cycle shows the journey, while the sales process explains the actions behind that journey.<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"50%\"><b>Sales Cycle<\/b><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"50%\"><b>Sales Process<\/b><\/td>\n<\/tr>\n<tr>\n<td>\n<ul>\n<li>Shows the stages a prospect moves through<\/li>\n<li>Focuses on where the deal is heading<\/li>\n<li>Easier to measure through time, conversion rate, and stage progress<\/li>\n<li>Example: Lead \u2192 Qualified \u2192 Proposal \u2192 Closed<\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li>Shows the method or strategy used by the sales team<\/li>\n<li>Focuses on how the team moves the deal forward<\/li>\n<li>More flexible because it depends on the sales strategy used<\/li>\n<li>Example: SPIN selling, inbound sales, consultative selling<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><b>Which One Do You Have? Short vs. Long Sales Cycles\u00a0<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">A short sales cycle happens when the buyer can decide quickly, the deal size is smaller, and the product is easy to understand. In Malaysia, this is common for F&amp;B retail, e-commerce, walk-in customers, or simple B2B purchases. The sales cycle time usually takes a few days to a few weeks.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A long sales cycle happens when the deal involves bigger budgets, more stakeholders, and deeper review. This is common for ERP software, property, government projects, and enterprise services in Malaysia. For B2B software, the sales cycle time often takes around 3 to 6 months because owners, finance, operations, and procurement may all be involved.<\/span><\/p>\n<p><span id=\"Your\"><\/span><style>\r\n  \/* Outer container: only handles horizontal scroll *\/\r\n  #custom-shortcode-scrollable-table {\r\n    width: 100%;\r\n    overflow-x: auto;\r\n  }\r\n  \/* Inner container: fixes vertical scroll visibility *\/\r\n  #custom-shortcode-scrollable-table .table-wrapper {\r\n    display: inline-block;\r\n    width: 130%;\r\n    vertical-align: top;\r\n  }\r\n  #custom-shortcode-scrollable-table table {\r\n    border-collapse: collapse;\r\n    table-layout: fixed;\r\n    width: 100%;\r\n  }\r\n  #custom-shortcode-scrollable-table thead {\r\n    background-color: #af2828;\r\n    color: #ffffff;\r\n    position: sticky;\r\n    top: 0;\r\n    z-index: 2;\r\n  }\r\n  #custom-shortcode-scrollable-table th {\r\n    font-size: 16px;\r\n  }\r\n  #custom-shortcode-scrollable-table td {\r\n    font-size: 14px;\r\n  }\r\n  #custom-shortcode-scrollable-table th:first-child,\r\n  #custom-shortcode-scrollable-table td:first-child {\r\n    width: 140px;\r\n  }\r\n  \r\n  \/* Styling khusus untuk type=\"check\" *\/\r\n    \r\n  \/* Scrollable tbody with visible vertical scrollbar *\/\r\n  #custom-shortcode-scrollable-table tbody {\r\n    display: block;\r\n    overflow-y: auto;\r\n    overflow-x: hidden;\r\n    width: 100%;\r\n    \/* max-height will be set dynamically *\/\r\n  }\r\n  #custom-shortcode-scrollable-table thead,\r\n  #custom-shortcode-scrollable-table tbody tr {\r\n    display: table;\r\n    width: 100%;\r\n    table-layout: fixed;\r\n  }\r\n  \/* Scrollbar styles for both x and y *\/\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n    width: 8px;\r\n    height: 8px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-track,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-track {\r\n    background: #f1f1f1;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb {\r\n    background: #af2828;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb:hover,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb:hover {\r\n    background: #8a1f1f;\r\n  }\r\n  @media (max-width: 767px) {\r\n    #custom-shortcode-scrollable-table th {\r\n      font-size: 12px;\r\n    }\r\n    #custom-shortcode-scrollable-table td {\r\n      font-size: 10px;\r\n    }\r\n    #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n    #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n      width: 6px;\r\n      height: 6px;\r\n    }\r\n      }\r\n<\/style>\r\n<div id=\"custom-shortcode-scrollable-table\">\r\n  <div class=\"table-wrapper\">\r\n    <table>\r\n      <thead>\r\n        <tr>\r\n                      <th>Factor<\/th>\r\n                      <th>Short Sales Cycle<\/th>\r\n                      <th>Long Sales Cycle<\/th>\r\n                      <th>Contoh Industri Malaysia<\/th>\r\n                  <\/tr>\r\n      <\/thead>\r\n      <tbody>\r\n                            <tr>\r\n                          <td>Timeline<\/td>\r\n                          <td>Days to weeks<\/td>\r\n                          <td>Months to years<\/td>\r\n                          <td>F&amp;B retail vs ERP software<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Decision Makers<\/td>\r\n                          <td>1 to 2 people<\/td>\r\n                          <td>Multiple stakeholders<\/td>\r\n                          <td>SME owner vs finance, operations, procurement<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Deal Size<\/td>\r\n                          <td>Relatively small<\/td>\r\n                          <td>Relatively large<\/td>\r\n                          <td>E-commerce tools vs property or enterprise systems<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Sales Approach<\/td>\r\n                          <td>Transactional<\/td>\r\n                          <td>Relationship-focused<\/td>\r\n                          <td>Walk-in customer vs B2B software buyer<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Example<\/td>\r\n                          <td>F&amp;B retail, e-commerce, simple trading<\/td>\r\n                          <td>ERP software, government projects, property<\/td>\r\n                          <td>F&amp;B, trading, software, property<\/td>\r\n                      <\/tr>\r\n              <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n<\/div>\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  const tbody = document.querySelector(\"#custom-shortcode-scrollable-table tbody\");\r\n  if (!tbody) return;\r\n  const rows = tbody.querySelectorAll(\"tr\");\r\n  if (rows.length > 10) {\r\n    let totalHeight = 0;\r\n    for (let i = 0; i < 10 && i < rows.length; i++) {\r\n      totalHeight += rows[i].offsetHeight;\r\n    }\r\n    tbody.style.maxHeight = totalHeight + \"px\";\r\n  }\r\n});\r\n<\/script><\/p>\n<h2><b>How to Measure and Shorten Your Sales Cycle<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">To improve your sales cycle, you need to measure how long it takes for a lead to become a closed deal. This helps your team <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/demand-forecasting\/\">forecast sales demand more clearly<\/a> and spot stuck deals faster.\u00a0A simple way to calculate it is:<\/span><\/p>\n<div style=\"background: #f4f8ff; border-left: 4px solid #2563eb; padding: 18px 24px; border-radius: 6px; margin: 24px 0;\">\n<p style=\"margin: 0; font-size: 1.1em;\">Average Sales Cycle Length = Total days for all closed deals \u00f7 Number of deals closed<\/p>\n<\/div>\n<p><span style=\"font-weight: 400;\">For example, if a trading company in Selangor closed 10 deals with a total of 450 sales days, the average sales cycle length is 45 days. After qualifying leads earlier and using <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/crm-automation\/\">CRM automation in Malaysia<\/a>, the company could reduce the cycle to 18 days because reps spend less time chasing unqualified prospects.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To shorten your sales cycle, start with these steps:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Identify your longest stage:<\/b><span style=\"font-weight: 400;\"> Check whether deals often get stuck at proposal, negotiation, or approval. If proposal review takes too long, prepare clearer pricing, scope, and payment terms upfront.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Qualify leads earlier:<\/b><span style=\"font-weight: 400;\"> Use simple questions about budget, authority, needs, and timeline before spending too much time on a deal. This prevents your team from chasing leads that are not ready to buy.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Automate follow ups with CRM:<\/b><span style=\"font-weight: 400;\"> Avoid relying only on WhatsApp reminders or manual notes. The right <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-sales-management-software\/\">sales management software tools in Malaysia<\/a> can remind your team when to follow up, record conversations, and reduce missed opportunities.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Align sales and marketing:<\/b><span style=\"font-weight: 400;\"> Marketing should pass leads that match your ideal customer profile, not just high volume contacts. Better lead quality means faster conversations for sales.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong>Track metrics in real time: <\/strong>Monitor conversion rate per stage, average deal length, and drop off points. Strong sales cycle management helps your team fix bottlenecks before they affect monthly targets.<\/li>\n<\/ol>\n<h2><b>Common Sales Cycle Challenges for Malaysian Businesses<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Malaysian businesses often face sales cycle delays that do not appear in generic global guides. We\u2019ve seen this pattern across our clients in Malaysia: deals are not always lost because buyers are not interested, but because follow-ups, approvals, and billing steps are not managed clearly.<\/span><\/p>\n<p><b>Extended approval processes:<\/b><span style=\"font-weight: 400;\"> are common among Malaysian SMEs, especially when the owner is the final decision maker. Even when managers like the solution, the deal may slow down because finance, operations, or the business owner still needs to review the proposal.<\/span><\/p>\n<p><b>Manual tracking and follow-up:<\/b><span style=\"font-weight: 400;\"> can also make deals fall through. Many teams still rely on Excel sheets, WhatsApp groups, or personal reminders, which makes it easy to lose track of hot leads, missed replies, or pending quotations.<\/span><\/p>\n<p><b>Multi-language and multicultural communication:<\/b><span style=\"font-weight: 400;\"> can affect how quickly prospects respond. In Malaysia, buyers may prefer Bahasa Malaysia, English, Mandarin, or a mix of languages, so sales teams need flexible proposal materials and follow-up messages for different audiences.<\/span><\/p>\n<p><b>Low adoption of structured digital tools:<\/b><span style=\"font-weight: 400;\"> remains a challenge for many Malaysian SMEs. The World Bank notes that while many SMEs use ICT and internet tools, digital adoption is still lower in some sectors and often limited to basic customer-facing functions.<\/span><\/p>\n<p><b>LHDN e-Invoice compliance: <\/b><span style=\"font-weight: 400;\">can also affect the closing and billing stage. If customer details, tax information, or invoice readiness are not prepared early, the final step of the sales cycle can take longer than expected. This is where CRM can help Malaysian businesses track deal status, follow-ups, documents, and billing readiness in one place.<\/span><\/p>\n<p><span data-sheets-root=\"1\"><style>\r\n    #custom-quote {\r\n        background-color: #f0f0f0;\r\n        padding: 20px;\r\n        border-radius: 12px;\r\n        margin: 20px;\r\n        display: flex;\r\n        flex-direction: column;\r\n    }\r\n\r\n    #custom-quote .quote-body {\r\n        display: flex;\r\n        flex-direction: row;\r\n        align-items: flex-start;\r\n        gap: 15px;\r\n        font-size: 16px;\r\n        line-height: 1.5;\r\n        font-style: italic;\r\n    }\r\n\r\n    #custom-quote .quote-icon {\r\n        width: 40px;\r\n        height: 40px;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    #custom-quote .quote-author-wrapper {\r\n        margin-top: 15px;\r\n        align-self: flex-start;\r\n        margin-left: 55px; \r\n\t\tmargin-bottom: 0px;\r\n    }\r\n\r\n    #custom-quote em {\r\n        font-family: 'Roboto Serif', serif !important;\r\n        font-size: 12px;\r\n        font-weight: bold;\r\n        font-style: normal;\r\n    }\r\n\r\n    @media screen and (max-width: 768px) {\r\n        #custom-quote {\r\n            margin: 15px 0;\r\n            padding: 15px;\r\n        }\r\n        \r\n        #custom-quote .quote-body {\r\n            gap: 12px;\r\n        }\r\n\r\n        #custom-quote .quote-author-wrapper {\r\n            margin-left: 52px;\r\n        }\r\n    }\r\n\r\n    @media screen and (max-width: 480px) {\r\n        #custom-quote {\r\n            margin: 10px 0;\r\n            padding: 12px;\r\n        }\r\n\r\n        #custom-quote .quote-body {\r\n            font-size: 14px;\r\n            gap: 10px;\r\n        }\r\n\r\n        #custom-quote .quote-icon {\r\n            width: 32px;\r\n            height: 32px;\r\n        }\r\n\r\n        #custom-quote .quote-author-wrapper {\r\n            margin-top: 10px;\r\n            margin-left: 42px;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n<div id=\"custom-quote\">\r\n    <div class=\"quote-body\">\r\n        <img decoding=\"async\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/12\/quote.webp\" alt=\"Quote Icon\" class=\"quote-icon\">\r\n        <div>\r\n            Sales cycle challenges in Malaysia often come from slow approvals, manual tracking, multi-language communication, low CRM adoption, and e-Invoice readiness.        <\/div>\r\n    <\/div>\r\n    <p class=\"quote-author-wrapper\">\r\n        <em>Victo Glend, Head of Digital Marketing Dept.<\/em>\r\n    <\/p>\r\n<\/div><\/span><\/p>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p data-start=\"15\" data-end=\"238\">A well-managed sales cycle gives your team a clear path from the first conversation to closing and long-term customer care. It helps you see where each deal stands, which steps take too long, and what your team can do next.<\/p>\n<p data-start=\"240\" data-end=\"545\">For Malaysian businesses, this matters because buyers often involve several people, use different communication channels, and need clear billing details before making a final decision. When every step is easier to track, your team can follow up on time, close deals faster, and build better relationships.<\/p>\n<p data-start=\"547\" data-end=\"709\" data-is-last-node=\"\" data-is-only-node=\"\">If your team is ready to manage leads, follow-ups, and deals more smoothly, book a <a href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo\/\">free CRM demo<\/a> and see how the right system can support your sales workflow.<\/p>\n<h2><strong>FAQ About Sales Cycle<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What are the 7 stages of the sales cycle?<\/strong><\/summary>\n<p>The 7 sales cycle stages are prospecting, connecting with prospects, qualifying leads, presenting your solution, handling objections, closing the deal, and following up. These stages help your sales team manage each prospect from the first contact until they become a customer. For Malaysian businesses, this structure is useful when leads come from many channels, such as WhatsApp, LinkedIn, referrals, and trade events.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is the difference between a sales cycle and a sales process?<\/strong><\/summary>\n<p>The difference between a sales cycle vs sales process is that a sales cycle shows the stages a prospect goes through, while a sales process explains how your team moves them through those stages. For example, the cycle may go from lead to closed deal, while the process may include follow-up scripts, demo steps, or objection-handling methods.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>How long should a sales cycle be?<\/strong><\/summary>\n<p>A sales cycle time depends on the product, deal size, industry, and number of decision makers involved. Simple purchases may take a few days or weeks, while B2B software, property, and enterprise deals can take several months. To measure your average sales cycle length, divide the total days for all closed deals by the number of deals closed.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is the 10-3-1 rule in sales?<\/strong><\/summary>\n<p>The 10-3-1 rule in sales is a simple pipeline guideline where 10 prospects may lead to 3 serious opportunities and 1 closed deal. It helps sales teams understand that not every lead will convert. This rule is not fixed for every business, but it can help teams set realistic activity targets.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>How can I shorten my sales cycle?<\/strong><\/summary>\n<p>You can shorten your sales cycle by qualifying leads earlier, tracking where deals get stuck, automating follow-ups, and aligning sales with marketing. For example, if many deals slow down during proposal review, your team can prepare clearer pricing, scope, and approval documents upfront. A CRM can also help sales reps avoid missed follow-ups and track deal progress more consistently.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is the average sales cycle length in Malaysia?<\/strong><\/summary>\n<p>The average sales cycle length in Malaysia depends on the industry and buyer type. Retail, F&amp;B, e-commerce, and simple trading deals may close within days or weeks. B2B software, property, manufacturing, and government-related projects often take longer because they involve owners, finance teams, procurement, or multiple departments before approval.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What tools help manage a sales cycle?<\/strong><\/summary>\n<p>Sales cycle software such as CRM helps teams manage leads, follow-ups, proposals, deal stages, and customer conversations in one place. Instead of relying only on Excel, WhatsApp notes, or manual reminders, a CRM gives your team better visibility over each opportunity. This makes it easier to track sales cycle time, conversion rates, and pending actions.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"What are the 7 stages of the sales cycle?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"The 7 sales cycle stages are prospecting, connecting with prospects, qualifying leads, presenting your solution, handling objections, closing the deal, and following up. These stages help your sales team manage each prospect from the first contact until they become a customer. For Malaysian businesses, this structure is useful when leads come from many channels, such as WhatsApp, LinkedIn, referrals, and trade events.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What is the difference between a sales cycle and a sales process?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"The difference between a sales cycle vs sales process is that a sales cycle shows the stages a prospect goes through, while a sales process explains how your team moves them through those stages. For example, the cycle may go from lead to closed deal, while the process may include follow-up scripts, demo steps, or objection-handling methods.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How long should a sales cycle be?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"A sales cycle time depends on the product, deal size, industry, and number of decision makers involved. Simple purchases may take a few days or weeks, while B2B software, property, and enterprise deals can take several months. To measure your average sales cycle length, divide the total days for all closed deals by the number of deals closed.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What is the 10-3-1 rule in sales?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"The 10-3-1 rule in sales is a simple pipeline guideline where 10 prospects may lead to 3 serious opportunities and 1 closed deal. It helps sales teams understand that not every lead will convert. This rule is not fixed for every business, but it can help teams set realistic activity targets.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How can I shorten my sales cycle?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"You can shorten your sales cycle by qualifying leads earlier, tracking where deals get stuck, automating follow-ups, and aligning sales with marketing. For example, if many deals slow down during proposal review, your team can prepare clearer pricing, scope, and approval documents upfront. A CRM can also help sales reps avoid missed follow-ups and track deal progress more consistently.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What is the average sales cycle length in Malaysia?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"The average sales cycle length in Malaysia depends on the industry and buyer type. Retail, F&B, e-commerce, and simple trading deals may close within days or weeks. B2B software, property, manufacturing, and government-related projects often take longer because they involve owners, finance teams, procurement, or multiple departments before approval.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What tools help manage a sales cycle?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Sales cycle software such as CRM helps teams manage leads, follow-ups, proposals, deal stages, and customer conversations in one place. Instead of relying only on Excel, WhatsApp notes, or manual reminders, a CRM gives your team better visibility over each opportunity. This makes it easier to track sales cycle time, conversion rates, and pending actions.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Managing leads from WhatsApp, LinkedIn, referrals, and trade events around KL or Shah Alam can get messy fast. Without a clear sales cycle, your team may follow up late, miss buyer signals, or lose deals simply because no one knows the next step. This matters even more in Malaysia, where MSMEs contributed 39.5% to the [&hellip;]<\/p>\n","protected":false},"author":45,"featured_media":19412,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-19406","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-other"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What Is a Sales Cycle? 7 Stages &amp; Tips<\/title>\n<meta name=\"description\" content=\"Learn what a sales cycle is, how each stage works, and simple ways businesses can manage deals more efficiently from first contact to closing.\" \/>\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.hashmicro.com\/my\/blog\/sales-cycle\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Is a Sales Cycle? 7 Stages &amp; Tips for Malaysian Businesses\" \/>\n<meta property=\"og:description\" content=\"Learn what a sales cycle is, how each stage works, and simple ways businesses can manage deals more efficiently from first contact to closing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Malaysia\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-18T08:22:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/what-is-a-sales-cycle.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"450\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Rizal Hakim\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rizal Hakim\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/\"},\"author\":{\"name\":\"Rizal Hakim\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/b93e3a2f47fcad867df2a5d15572adc7\"},\"headline\":\"What Is a Sales Cycle? 7 Stages &#038; Tips for Malaysian Businesses\",\"datePublished\":\"2026-05-18T08:22:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/\"},\"wordCount\":2758,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/what-is-a-sales-cycle.webp\",\"articleSection\":[\"Other\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/\",\"name\":\"What Is a Sales Cycle? 7 Stages & Tips\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/what-is-a-sales-cycle.webp\",\"datePublished\":\"2026-05-18T08:22:38+00:00\",\"description\":\"Learn what a sales cycle is, how each stage works, and simple ways businesses can manage deals more efficiently from first contact to closing.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/what-is-a-sales-cycle.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/what-is-a-sales-cycle.webp\",\"width\":800,\"height\":450,\"caption\":\"sales cycle stages infographic for Malaysian businesses\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/my\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What Is a Sales Cycle? 7 Stages &#038; Tips for Malaysian Businesses\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/\",\"name\":\"HashMicro Malaysia\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/my\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\",\"name\":\"HashMicro Malaysia\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp\",\"width\":422,\"height\":255,\"caption\":\"HashMicro Malaysia\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/b93e3a2f47fcad867df2a5d15572adc7\",\"name\":\"Rizal Hakim\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/Rizal-Hakim-96x96.webp\",\"contentUrl\":\"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/Rizal-Hakim-96x96.webp\",\"caption\":\"Rizal Hakim\"},\"description\":\"Rizal Hakim focuses on how CRM systems support real sales and customer-facing workflows, not just data storage. In his role at HashMicro Malaysia, he works around lead management, pipeline tracking, follow-up routines, and customer interaction records, helping businesses understand how consistent CRM usage improves sales visibility, accountability, and long-term customer relationships.\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/author\/rizal-hakim\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What Is a Sales Cycle? 7 Stages & Tips","description":"Learn what a sales cycle is, how each stage works, and simple ways businesses can manage deals more efficiently from first contact to closing.","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.hashmicro.com\/my\/blog\/sales-cycle\/","og_locale":"en_US","og_type":"article","og_title":"What Is a Sales Cycle? 7 Stages & Tips for Malaysian Businesses","og_description":"Learn what a sales cycle is, how each stage works, and simple ways businesses can manage deals more efficiently from first contact to closing.","og_url":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/","og_site_name":"HashMicro Malaysia","article_published_time":"2026-05-18T08:22:38+00:00","og_image":[{"width":800,"height":450,"url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/what-is-a-sales-cycle.webp","type":"image\/webp"}],"author":"Rizal Hakim","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Rizal Hakim","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/"},"author":{"name":"Rizal Hakim","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/b93e3a2f47fcad867df2a5d15572adc7"},"headline":"What Is a Sales Cycle? 7 Stages &#038; Tips for Malaysian Businesses","datePublished":"2026-05-18T08:22:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/"},"wordCount":2758,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/what-is-a-sales-cycle.webp","articleSection":["Other"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/","name":"What Is a Sales Cycle? 7 Stages & Tips","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/what-is-a-sales-cycle.webp","datePublished":"2026-05-18T08:22:38+00:00","description":"Learn what a sales cycle is, how each stage works, and simple ways businesses can manage deals more efficiently from first contact to closing.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#primaryimage","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/what-is-a-sales-cycle.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/what-is-a-sales-cycle.webp","width":800,"height":450,"caption":"sales cycle stages infographic for Malaysian businesses"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-cycle\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/my\/blog\/"},{"@type":"ListItem","position":2,"name":"What Is a Sales Cycle? 7 Stages &#038; Tips for Malaysian Businesses"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website","url":"https:\/\/www.hashmicro.com\/my\/blog\/","name":"HashMicro Malaysia","description":"","publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/my\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization","name":"HashMicro Malaysia","url":"https:\/\/www.hashmicro.com\/my\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp","width":422,"height":255,"caption":"HashMicro Malaysia"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/b93e3a2f47fcad867df2a5d15572adc7","name":"Rizal Hakim","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/image\/","url":"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/Rizal-Hakim-96x96.webp","contentUrl":"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/Rizal-Hakim-96x96.webp","caption":"Rizal Hakim"},"description":"Rizal Hakim focuses on how CRM systems support real sales and customer-facing workflows, not just data storage. In his role at HashMicro Malaysia, he works around lead management, pipeline tracking, follow-up routines, and customer interaction records, helping businesses understand how consistent CRM usage improves sales visibility, accountability, and long-term customer relationships.","url":"https:\/\/www.hashmicro.com\/my\/blog\/author\/rizal-hakim\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/19406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/comments?post=19406"}],"version-history":[{"count":8,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/19406\/revisions"}],"predecessor-version":[{"id":19466,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/19406\/revisions\/19466"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media\/19412"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media?parent=19406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/categories?post=19406"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/tags?post=19406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}