{"id":19414,"date":"2026-05-18T09:30:29","date_gmt":"2026-05-18T09:30:29","guid":{"rendered":"https:\/\/www.hashmicro.com\/my\/blog\/?p=19414"},"modified":"2026-05-18T09:30:29","modified_gmt":"2026-05-18T09:30:29","slug":"sales-process","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/","title":{"rendered":"The 7-Step Sales Process: Steps, Automation and Improvement for Malaysian Business (2026)"},"content":{"rendered":"<p>Many sales teams in Malaysia struggle to close deals consistently because their sales process is unclear or inconsistent. Without a structured workflow, teams often face poor follow-ups, uneven pipeline management, and lower conversion rates. Implementing a clear sales process helps businesses improve consistency, organize sales activities, and increase overall sales performance.<\/p>\n<p>This is supported by <a href=\"https:\/\/www.mckinsey.com\/~\/media\/mckinsey\/business%20functions\/marketing%20and%20sales\/our%20insights\/future%20of%20b2b%20sales%20the%20big%20reframe\/future-of-b2b-sales-the-big-reframe.pdf\" target=\"_blank\" rel=\"noopener\">research from McKinsey<\/a>, which found that companies with structured and documented sales processes tend to achieve 28% more revenue growth and higher win rates. When combined with CRM software, businesses also gain better pipeline visibility, more accurate tracking, and improved coordination across the sales team.<\/p>\n<p>This article will discuss the seven essential steps in sales process, key workflows worth automating, and strategies businesses can use to improve sales performance, increase win rates consistently, and optimize pipeline management with a <a href=\"https:\/\/www.hashmicro.com\/my\/sales-leads-management\">CRM sales system<\/a>.<\/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: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li>A <a href=\"#1\">structured sales process<\/a> helps businesses improve consistency, optimize sales activities, and achieve more predictable results.<\/li>\n<li>The <a href=\"#2\">seven-step sales process<\/a> helps businesses manage each sales stage more systematically and improve overall sales effectiveness across different industries.<\/li>\n<li>Continuously <a href=\"#3\">improving your sales process<\/a> helps businesses stay competitive, adapt to changing buyer behavior, and achieve better sales performance over time.<\/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>Many businesses struggle with inefficient sales processes and missed follow-ups. An integrated sales automation solution helps improve lead management and sales efficiency.<\/p>\n<p><span data-sheets-root=\"1\"><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_laporan_en.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/02\/crm_sales_laporan_en.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/02\/crm_sales_laporan_en_m.webp\" alt=\"Sales_Laporan\" 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><\/span><\/p>\n<h2><strong><span lang=\"EN-US\"><span id=\"1\">What Is a Sales Process in Business?<\/span><\/span><\/strong><\/h2>\n<p data-start=\"0\" data-end=\"311\">A sales process is a structured series of steps used by sales teams to guide prospects from the first interaction to a successful deal. By following a consistent process, businesses can standardize how sales reps approach potential customers, making sales activities more organized and results more predictable.<\/p>\n<p data-start=\"313\" data-end=\"718\" data-is-last-node=\"\" data-is-only-node=\"\">A defined sales process also helps companies monitor each sales stage more effectively, making coaching and performance evaluation easier. In addition, it speeds up onboarding for new sales reps because they can quickly learn a proven workflow. Many businesses today integrate their sales process into CRM or <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-sales-management-software\/\">sales management system to gain better pipeline visibility<\/a>\u00a0and identify areas for improvement.<\/p>\n<h3><strong><span lang=\"EN-US\">Sales Process vs Sales Methodology vs Sales Cycle<\/span><\/strong><\/h3>\n<p>These three terms get used interchangeably, but they describe three different things, and confusing them leads to confused tactics.<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"25%\"><b>Term<\/b><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"35%\"><b>Definition<\/b><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"20%\"><b>Focus<\/b><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"20%\"><b>Example<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Sales Process<\/b><\/td>\n<td>A structured series of steps used to guide prospects from first contact to closing a deal.<\/td>\n<td>Sales workflow and stages<\/td>\n<td>Prospecting \u2192 Qualification \u2192 Closing<\/td>\n<\/tr>\n<tr>\n<td><b>Sales Methodology<\/b><\/td>\n<td>The selling approach or technique used during the sales process.<\/td>\n<td>Communication and sales strategy<\/td>\n<td>SPIN Selling, Challenger Sale<\/td>\n<\/tr>\n<tr>\n<td><b>Sales Cycle<\/b><\/td>\n<td>The time required to convert a prospect into a customer.<\/td>\n<td>Sales duration and efficiency<\/td>\n<td>30-day or 120-day sales cycle<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The difference matters because each one fixes a different problem. If your win rate is low, the methodology probably needs work. If your conversion at one stage is poor, your process has a gap. If your cycle is long but conversion is healthy, the issue is throughput rather than skill.<\/p>\n<h2><strong><span lang=\"EN-US\">Why Your Business Needs a Defined Sales Process?<\/span><\/strong><\/h2>\n<div class=\"qMYqUG_convSearchResultHighlightRoot\">\n<div class=\"\" data-turn-id-container=\"request-6a03d72d-9a18-83ec-9883-90da05f84d4c-9\" data-is-intersecting=\"true\">\n<div class=\"relative w-full overflow-visible\">\n<section class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-6a03d72d-9a18-83ec-9883-90da05f84d4c-9\" data-turn-id-container=\"request-6a03d72d-9a18-83ec-9883-90da05f84d4c-9\" data-testid=\"conversation-turn-32\" data-scroll-anchor=\"false\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm\/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg\/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] @w-lg\/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex max-w-full flex-col gap-4 grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+&amp;]:mt-1\" dir=\"auto\" tabindex=\"0\" data-message-author-role=\"assistant\" data-message-id=\"057fb1db-deaa-45ff-95f0-7f9a8ad9a4e6\" data-message-model-slug=\"gpt-5-5\" data-turn-start-message=\"true\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden\">\n<div class=\"markdown prose dark:prose-invert wrap-break-word w-full light markdown-new-styling\">\n<p>A defined sales process helps businesses create more consistent and measurable sales performance by reducing guesswork throughout the pipeline. Companies with a structured sales process also tend to achieve higher win rates and better overall sales efficiency.<\/p>\n<p>Some of the main benefits of a defined sales process include:<\/p>\n<ul>\n<li><strong>Higher win rates through more consistent sales execution<\/strong><br \/>\nSales teams follow the same qualification, follow-up, and closing approach, which reduces inconsistency and improves the chances of converting opportunities into customers.<\/li>\n<li><strong>Shorter sales cycles with clearer workflows and follow-ups<br \/>\n<\/strong>A structured process helps reps know what actions to take at each stage, reducing delays and helping deals move through the pipeline faster.<\/li>\n<li><strong>Faster onboarding for new sales representatives<br \/>\n<\/strong>New sales reps can adapt more quickly because they already have a clear framework, workflow, and sales stages to follow from the beginning.<\/li>\n<li><strong>Better visibility into pipeline performance and bottlenecks<br \/>\n<\/strong>Businesses can track where deals are slowing down, identify weak stages in the pipeline, and make improvements more effectively.<strong><br \/>\n<\/strong><\/li>\n<li><strong>More accurate sales decisions based on clear data<br \/>\n<\/strong>Standardized sales activities produce more reliable reporting, helping managers make better forecasting and performance decisions.<strong><br \/>\n<\/strong><\/li>\n<li><strong>Improved conversion rates across each sales stage<br \/>\n<\/strong>Clear sales steps help teams handle leads more effectively, improving the likelihood of prospects moving from one stage to the next.<strong><br \/>\n<\/strong><\/li>\n<li><strong>Stronger consistency in how sales teams manage opportunities<br \/>\n<\/strong>Every sales rep follows similar processes and standards, creating a more organized pipeline and more predictable sales performance.<strong><br \/>\n<\/strong><\/li>\n<\/ul>\n<p>Research from <a href=\"https:\/\/blog.hubspot.com\/sales\/sales-statistics\" target=\"_blank\" rel=\"noopener\">HubSpot\u2019s 2024 Sales Trends Report<\/a> also found that teams using a defined sales process generally achieve higher win rates compared to teams without one.<\/p>\n<p>By implementing a structured sales process, businesses can improve sales consistency, reduce inefficiencies, and make it easier for teams to maintain stronger performance over time. When supported by CRM sales software, companies can also monitor pipeline activity more accurately and optimize each stage of the sales cycle more effectively.<\/p>\n<h2><strong><span lang=\"EN-US\"><span id=\"2\">The 7 Steps of the Sales Process<\/span><\/span><\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-19426\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/7-Steps-of-the-Sales-Process.webp\" alt=\"7 Steps of the Sales Process\" width=\"1808\" height=\"552\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/7-Steps-of-the-Sales-Process.webp 1808w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/7-Steps-of-the-Sales-Process-300x92.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/7-Steps-of-the-Sales-Process-1024x313.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/7-Steps-of-the-Sales-Process-768x234.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/7-Steps-of-the-Sales-Process-1536x469.webp 1536w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/7-Steps-of-the-Sales-Process-1376x420.webp 1376w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/7-Steps-of-the-Sales-Process-150x46.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/7-Steps-of-the-Sales-Process-696x212.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/7-Steps-of-the-Sales-Process-1068x326.webp 1068w\" sizes=\"(max-width: 1808px) 100vw, 1808px\" \/><\/p>\n<p>The framework below applies whether you sell software, industrial equipment, or professional services. What changes between industries is the time each step takes, not the steps themselves.<\/p>\n<h3><strong>Step 1: Prospecting and Lead Generation<\/strong><\/h3>\n<p>This stage focuses on identifying potential customers that match the ideal customer profile (ICP) and starting the first interaction. Leads can come from outbound outreach, inbound marketing, referrals, or business partnerships. The main goal is to build a healthy sales pipeline and secure qualified discovery calls with potential buyers.<\/p>\n<h3><strong>Step 2: Lead Qualification with BANT<\/strong><\/h3>\n<p>Not every prospect is ready to buy, which is why sales teams use the BANT framework: Budget, Authority, Need, and Timing. This method helps sales reps evaluate whether a prospect has the budget, decision-making power, business need, and urgency to move forward. By qualifying leads early, businesses can focus their time on high-potential opportunities.<\/p>\n<h3><strong>Step 3: Discovery Call<\/strong><\/h3>\n<p>The discovery call helps sales reps understand the prospect\u2019s challenges, goals, and pain points in greater detail. Instead of focusing on product promotion, reps should ask open-ended questions and actively listen to the buyer\u2019s needs. A successful discovery call usually reveals the customer\u2019s main problem, the impact of the issue, and their expected timeline for making a decision.<\/p>\n<h3><strong>Step 4: Sales Presentation or Proposal<\/strong><\/h3>\n<p>After gathering information during discovery, the sales team presents a tailored solution that directly addresses the customer\u2019s needs. A strong proposal typically explains the buyer\u2019s problem, how the product or service solves it, pricing details, and supporting case studies or examples. Personalized presentations are generally more effective than generic sales pitches.<\/p>\n<h3><strong>Step 5: Handling Objections<\/strong><\/h3>\n<p>During the sales process, prospects may raise objections related to pricing, timing, product suitability, or internal approval. Sales reps should treat these concerns as opportunities to provide clarification and reinforce value rather than as rejection. Addressing objections effectively helps build trust and move the deal closer to closure.<\/p>\n<h3><strong>Step 6: Closing<\/strong><\/h3>\n<p>Closing is the stage where the prospect agrees to move forward with the purchase. In B2B sales, this process often involves multiple stakeholders such as operations, procurement, and finance departments before final approval is given. When the earlier sales stages are handled properly, closing becomes a smoother confirmation process instead of a hard sell.<\/p>\n<h3><strong>Step 7: Nurturing and Upsell<\/strong><\/h3>\n<p>The sales process continues even after the deal is closed. Businesses should maintain customer relationships through regular follow-ups, customer support, and upselling opportunities. Strong post-sales engagement can <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/customer-retention\/\">improve customer retention<\/a>, increase long-term revenue, and create opportunities for repeat business.<\/p>\n<h2><strong><span lang=\"EN-US\">Common Sales Process Mistakes in Business Field<\/span><\/strong><\/h2>\n<p>Even teams with a documented process fall into predictable traps. These five are the most common.<\/p>\n<ul>\n<li><strong>Skipping qualification<br \/>\n<\/strong>A rep books a demo without checking whether the prospect has budget or authority. Two weeks later, eight hours have gone into a deal that was never going to close.<\/li>\n<li><strong>Pitching before diagnosing<br \/>\n<\/strong>The rep opens the discovery call with a slide deck instead of a question. The prospect tunes out within five minutes.<\/li>\n<li><strong>Talking more than listening<br \/>\n<\/strong>Discovery calls where the rep talks more than half the time produce lower close rates. Gartner research shows the gap is roughly 2.5 times in favour of reps who let the prospect talk.<\/li>\n<li><strong>No follow-up system after the proposal<br \/>\n<\/strong>The rep sends the proposal and goes quiet when the buyer goes quiet. Buyers interpret silence as disinterest. A cadence of three follow-ups over 10 business days recovers a meaningful share of these deals.<\/li>\n<li><strong>No defined exit criteria<br \/>\n<\/strong>Without explicit conditions for moving a deal forward, deals advance on the rep&#8217;s optimism rather than the buyer&#8217;s readiness. The result is a pipeline that looks healthy on Friday and collapses on Monday.<\/li>\n<\/ul>\n<h2><strong>What Parts of the Sales Process Should You Automate?<\/strong><\/h2>\n<p>Sales process automation does not mean replacing salespeople. It means removing the manual administrative work that pulls reps away from selling. McKinsey research shows the average B2B sales rep spends about 28 percent of their week on actual selling activity. The rest is admin, CRM updates, and internal meetings. Automation closes that gap.<\/p>\n<h3><strong>Four areas worth automating<\/strong><\/h3>\n<table>\n<tbody>\n<tr>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"25%\"><b>Automation Area<\/b><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"45%\"><b>Description<\/b><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\" width=\"30%\"><b>Main Benefit<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Lead Scoring &amp; Routing<\/b><\/td>\n<td>Automatically classifies leads as hot, warm, or cold and assigns qualified leads to the right sales rep.<\/td>\n<td>Faster response time and higher conversion opportunities.<\/td>\n<\/tr>\n<tr>\n<td><b>Pipeline Stage Updates<\/b><\/td>\n<td>Automatically updates deal stages after sales reps complete activities such as discovery calls or note submissions.<\/td>\n<td>Reduces manual work and improves pipeline accuracy.<\/td>\n<\/tr>\n<tr>\n<td><b>Follow-up Email Sequences<\/b><\/td>\n<td>Sends automated personalized follow-up emails after important sales stages like discovery or proposal submission.<\/td>\n<td>Ensures consistent communication with prospects.<\/td>\n<\/tr>\n<tr>\n<td><b>Quote &amp; Proposal Generation<\/b><\/td>\n<td><a href=\"https:\/\/www.hashmicro.com\/my\/blog\/sales-force-automation\/\">Sales force automation<\/a> helps businesses automatically generate quotations and proposals using customer, pricing, and product data stored in the CRM.<\/td>\n<td>Saves time and speeds up the sales process.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3><strong>What you should NOT automate?<\/strong><\/h3>\n<p>Some sales activities are still more effective when handled manually, especially those that require trust, flexibility, and stronger personal communication. These activities usually include:<\/p>\n<ul>\n<li>Initial communication with high-value prospects<\/li>\n<li>Relationship-building discussions with potential clients<\/li>\n<li>Pricing negotiations and custom offer discussions<\/li>\n<li>Contract and agreement negotiations<\/li>\n<li>Complex customer problem-solving conversations<\/li>\n<\/ul>\n<p>Meanwhile, a <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/sales-module\/\">well-configured CRM sales module<\/a> can automate repetitive administrative tasks, such as:<\/p>\n<ul>\n<li>Follow-up reminders and email scheduling<\/li>\n<li>Lead assignment and pipeline updates<\/li>\n<li>Sales activity tracking and reporting<\/li>\n<li>Proposal and quotation workflows<\/li>\n<li>Customer data recording and status updates<\/li>\n<\/ul>\n<p>This balance between automation and human interaction helps businesses improve efficiency while maintaining a better customer experience.<\/p>\n<h2><strong><span lang=\"EN-US\"><span id=\"3\">How to Continuously Improve Your Sales Process?<\/span><\/span><\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-19424\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Improving-Sales-Process.webp\" alt=\"Improving Sales Process\" width=\"1600\" height=\"800\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Improving-Sales-Process.webp 1600w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Improving-Sales-Process-300x150.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Improving-Sales-Process-1024x512.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Improving-Sales-Process-768x384.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Improving-Sales-Process-1536x768.webp 1536w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Improving-Sales-Process-840x420.webp 840w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Improving-Sales-Process-150x75.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Improving-Sales-Process-696x348.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Improving-Sales-Process-1068x534.webp 1068w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><\/p>\n<p>A sales process is never finished. Buyer behavior shifts, competitors change tactics, and your product evolves. Teams that keep improving every quarter outperform teams that set a process once and leave it alone.<\/p>\n<p><strong>1. Track the right metrics per stage<br \/>\n<\/strong>Conversion rate per stage tells you where deals leak. Average time per stage tells you where they stall. Win rate by source tells you where your best prospects come from.<\/p>\n<p><strong>2. Review your buyer persona at least twice a year<br \/>\n<\/strong>The buyer who signed last year is not necessarily the buyer signing this year. Biannual persona review keeps your messaging aligned with the current market.<\/p>\n<p><strong>3. Audit your tech stack for redundancy and gaps<br \/>\n<\/strong>Most teams accumulate tools without removing old ones. Run a quarterly audit and consolidate. Every tool that is not actively used is friction.<\/p>\n<p><strong>4. Identify bottlenecks using CRM pipeline data<br \/>\n<\/strong>Your CRM&#8217;s stage by stage conversion report tells you where to focus coaching. If 80 percent of deals advance from discovery to proposal but only 40 percent advance from proposal to close, your closing skills need work, not your discovery skills.<\/p>\n<p><strong>5. Run regular pipeline review meetings<br \/>\n<\/strong>Once a week, the team reviews every deal in the pipeline. Stalled deals get unstuck or removed. HubSpot&#8217;s 2024 Sales Trends Report found that high-performing teams review pipeline at least weekly, while low performers do not review at all.<\/p>\n<h2><strong><span lang=\"EN-US\">Sales Process by Industry: How It Differs<\/span><\/strong><\/h2>\n<p>The seven-step framework is universal. What changes is how each step plays out in practice. Three industries below illustrate the range.<\/p>\n<h3><strong>1. B2B SaaS<\/strong><\/h3>\n<p>In B2B SaaS companies, sales cycles are usually shorter, typically ranging from 14 to 30 days. Discovery and product demos are often combined through free trials or product-led experiences, while proposals are generally simpler and faster. However, businesses still need to ensure customers fully understand the product before closing the deal.<\/p>\n<h3><strong>2. Manufacturing and Distribution<\/strong><\/h3>\n<p>Manufacturing and distribution businesses usually have longer sales cycles because the buying process involves technical evaluations and multiple decision-makers. Engineers, procurement teams, and management often participate in the approval process, making qualification and proposal stages more complex.<\/p>\n<h3><strong>3. Professional Services<\/strong><\/h3>\n<p>Professional service businesses rely heavily on relationships and referrals throughout the sales process. Trust is often built before formal proposals are introduced, while pricing and service offerings are usually customized based on client needs. Because of this, the proposal stage often becomes the most important factor in winning the deal.<\/p>\n<h2><strong><span lang=\"EN-US\">How to Map Your Sales Process in a CRM?<\/span><\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-19469\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Maping-Sales-Process-in-a-CRM.webp\" alt=\"Mapping Sales Process in a CRM\" width=\"1785\" height=\"763\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Maping-Sales-Process-in-a-CRM.webp 1785w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Maping-Sales-Process-in-a-CRM-300x128.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Maping-Sales-Process-in-a-CRM-1024x438.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Maping-Sales-Process-in-a-CRM-768x328.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Maping-Sales-Process-in-a-CRM-1536x657.webp 1536w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Maping-Sales-Process-in-a-CRM-983x420.webp 983w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Maping-Sales-Process-in-a-CRM-150x64.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Maping-Sales-Process-in-a-CRM-696x298.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Maping-Sales-Process-in-a-CRM-1068x457.webp 1068w\" sizes=\"(max-width: 1785px) 100vw, 1785px\" \/><\/p>\n<p>Most sales teams lose visibility because their CRM pipeline stages do not match how their buyers actually make decisions. The pipeline becomes a dumping ground rather than a coaching tool. The fix is to map your process into the CRM properly from the start.<\/p>\n<p><strong>1. Name your pipeline stages after the 7 steps<br \/>\n<\/strong>Use the actual step names, not generic CRM defaults like Stage 1 or Qualified. When the pipeline mirrors the process, every rep speaks the same language and reporting becomes self-explanatory.<\/p>\n<p><strong>2. Set explicit exit criteria for each stage<br \/>\n<\/strong>A deal should not advance from Discovery to Proposal because the rep thinks it is ready. Define the conditions. Budget confirmed, decision-maker identified, timeline documented. Deals that do not meet the criteria stay where they are. This single discipline eliminates the optimism gap that wrecks most B2B forecasts.<\/p>\n<p><strong>3. Use pipeline analytics to identify drop-off<br \/>\n<\/strong>Your CRM should produce a stage by stage conversion report. The stage with the steepest drop-off is your highest-leverage coaching target. If 70 percent of deals stall between proposal and close, the team needs closing coaching, not more lead generation.<\/p>\n<p><strong>4. Configure automation around the stages<br \/>\n<\/strong>When a rep moves a deal to Proposal, an automated email should send the template. When the deal sits there for more than five days, a reminder should ping the rep. The <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-crm-software-system\/\">CRM software<\/a> you choose should make this configurable without engineering work.<\/p>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p>A structured sales process is not bureaucracy. It is the foundation that lets a team move from improvising every deal to running a predictable revenue engine. The three themes in this article work together. The seven steps give you structure. Automation removes the admin that steals selling time. Continuous improvement keeps the process aligned with how your buyers actually behave today, not how they behaved last year.<\/p>\n<p>Sales leaders in Malaysia who want to put this into practice quickly should start by mapping their current process against the seven steps and fixing the stages that have no exit criteria. To manage your sales process inside a CRM built for mid-market B2B, try a <a href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo\/\">free demo<\/a> and see how the seven steps map onto your real pipeline.<\/p>\n<p><span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo\/?medium=free-product-demo\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/free-demo-desktop-my.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/free-demo-desktop-my.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2024\/07\/free-demo-mobile-my.jpg\" alt=\"FreeDemo\" 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><\/span><\/p>\n<h2><strong>FAQ about Sales Process in Business<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details open=\"open\">\n<summary><strong>How long does it take to implement a sales process in a business?<\/strong><\/summary>\n<p>For most mid-market B2B teams in Malaysia, building and rolling out a structured sales process takes between four and twelve weeks. The timeline depends on team size, the complexity of the existing pipeline, and how much documentation you already have. A focused approach starts with mapping current activities, defining stage exit criteria, then training the team over two to four weeks before going fully live.<\/p>\n<\/details>\n<\/li>\n<li>\n<details open=\"open\">\n<summary><strong>How do I train my sales team to follow a new sales process?<\/strong><\/summary>\n<p>Start with a short workshop that walks through each stage, the exit criteria, and real examples from your own pipeline. Pair every rep with weekly coaching sessions for the first month so questions get answered quickly and bad habits do not return. Reinforce the process by using consistent stage names inside your CRM and tying every pipeline review directly to the seven-step structure.<\/p>\n<\/details>\n<\/li>\n<li>\n<details open=\"open\">\n<summary><strong>Should sales and marketing teams share the same sales process?<\/strong><\/summary>\n<p>Yes, alignment between sales and marketing matters because both teams shape the buyer journey. Marketing typically owns lead generation and early nurturing, while sales takes over once a lead meets qualification criteria. Sharing definitions, stages, and lead handover rules removes the friction that often causes deals to stall between the two teams.<\/p>\n<\/details>\n<\/li>\n<li>\n<details open=\"open\">\n<summary><strong>How does an inbound sales process differ from an outbound sales process?<\/strong><\/summary>\n<p>Inbound starts when a prospect contacts you first, usually through a website form, content download, or referral, so qualification and discovery tend to move faster. Outbound starts with the rep researching and reaching out, which adds time at the prospecting stage. The middle and closing steps stay similar, but the energy spent on the first two stages flips between the two motions.<\/p>\n<\/details>\n<\/li>\n<li>\n<details open=\"open\">\n<summary><strong>What parts of the sales process should be automated?<\/strong><\/summary>\n<p>Four areas benefit most from automation, namely lead scoring and routing, pipeline stage updates, follow-up email sequences, and quote or proposal generation. These remove repetitive admin work and return six to ten hours per rep per week. High-touch activities like negotiation, first contact with enterprise prospects, and relationship check-ins should stay manual.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<\/div>\n<\/div>\n<\/div>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"How long does it take to implement a sales process in a business?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"For most mid-market B2B teams in Malaysia, building and rolling out a structured sales process takes between four and twelve weeks. The timeline depends on team size, the complexity of the existing pipeline, and how much documentation you already have. A focused approach starts with mapping current activities, defining stage exit criteria, then training the team over two to four weeks before going fully live.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How do I train my sales team to follow a new sales process?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Start with a short workshop that walks through each stage, the exit criteria, and real examples from your own pipeline. Pair every rep with weekly coaching sessions for the first month so questions get answered quickly and bad habits do not return. Reinforce the process by using consistent stage names inside your CRM and tying every pipeline review directly to the seven-step structure.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What parts of the sales process should be automated?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Four areas benefit most from automation, namely lead scoring and routing, pipeline stage updates, follow-up email sequences, and quote or proposal generation. These remove repetitive admin work and return six to ten hours per rep per week. High-touch activities like negotiation, first contact with enterprise prospects, and relationship check-ins should stay manual.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Should sales and marketing teams share the same sales process?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Yes, alignment between sales and marketing matters because both teams shape the buyer journey. Marketing typically owns lead generation and early nurturing, while sales takes over once a lead meets qualification criteria. Sharing definitions, stages, and lead handover rules removes the friction that often causes deals to stall between the two teams.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How does an inbound sales process differ from an outbound sales process?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Inbound starts when a prospect contacts you first, usually through a website form, content download, or referral, so qualification and discovery tend to move faster. Outbound starts with the rep researching and reaching out, which adds time at the prospecting stage. The middle and closing steps stay similar, but the energy spent on the first two stages flips between the two motions.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Many sales teams in Malaysia struggle to close deals consistently because their sales process is unclear or inconsistent. Without a structured workflow, teams often face poor follow-ups, uneven pipeline management, and lower conversion rates. Implementing a clear sales process helps businesses improve consistency, organize sales activities, and increase overall sales performance. This is supported by [&hellip;]<\/p>\n","protected":false},"author":45,"featured_media":19425,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[63],"tags":[],"class_list":{"0":"post-19414","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-crm"},"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>The 7 Step Sales Process for Malaysian Business (2026)<\/title>\n<meta name=\"description\" content=\"Learn what sales velocity is, full formula, and discover 7 proven strategies to increase your revenue generation rate.\" \/>\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-process\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The 7-Step Sales Process: Steps, Automation and Improvement for Malaysian Business (2026)\" \/>\n<meta property=\"og:description\" content=\"Learn what sales velocity is, full formula, and discover 7 proven strategies to increase your revenue generation rate.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Malaysia\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-18T09:30:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Sales-Process-in-Business.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\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=\"14 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-process\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/\"},\"author\":{\"name\":\"Rizal Hakim\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/b93e3a2f47fcad867df2a5d15572adc7\"},\"headline\":\"The 7-Step Sales Process: Steps, Automation and Improvement for Malaysian Business (2026)\",\"datePublished\":\"2026-05-18T09:30:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/\"},\"wordCount\":2852,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Sales-Process-in-Business.webp\",\"articleSection\":[\"CRM\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/\",\"name\":\"The 7 Step Sales Process for Malaysian Business (2026)\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Sales-Process-in-Business.webp\",\"datePublished\":\"2026-05-18T09:30:29+00:00\",\"description\":\"Learn what sales velocity is, full formula, and discover 7 proven strategies to increase your revenue generation rate.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Sales-Process-in-Business.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Sales-Process-in-Business.webp\",\"width\":1600,\"height\":800,\"caption\":\"Sales Process in Business\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/my\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The 7-Step Sales Process: Steps, Automation and Improvement for Malaysian Business (2026)\"}]},{\"@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":"The 7 Step Sales Process for Malaysian Business (2026)","description":"Learn what sales velocity is, full formula, and discover 7 proven strategies to increase your revenue generation rate.","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-process\/","og_locale":"en_US","og_type":"article","og_title":"The 7-Step Sales Process: Steps, Automation and Improvement for Malaysian Business (2026)","og_description":"Learn what sales velocity is, full formula, and discover 7 proven strategies to increase your revenue generation rate.","og_url":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/","og_site_name":"HashMicro Malaysia","article_published_time":"2026-05-18T09:30:29+00:00","og_image":[{"width":1600,"height":800,"url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Sales-Process-in-Business.webp","type":"image\/webp"}],"author":"Rizal Hakim","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Rizal Hakim","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/"},"author":{"name":"Rizal Hakim","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/b93e3a2f47fcad867df2a5d15572adc7"},"headline":"The 7-Step Sales Process: Steps, Automation and Improvement for Malaysian Business (2026)","datePublished":"2026-05-18T09:30:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/"},"wordCount":2852,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Sales-Process-in-Business.webp","articleSection":["CRM"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/","name":"The 7 Step Sales Process for Malaysian Business (2026)","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Sales-Process-in-Business.webp","datePublished":"2026-05-18T09:30:29+00:00","description":"Learn what sales velocity is, full formula, and discover 7 proven strategies to increase your revenue generation rate.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#primaryimage","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Sales-Process-in-Business.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/05\/Sales-Process-in-Business.webp","width":1600,"height":800,"caption":"Sales Process in Business"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/my\/blog\/sales-process\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/my\/blog\/"},{"@type":"ListItem","position":2,"name":"The 7-Step Sales Process: Steps, Automation and Improvement for Malaysian Business (2026)"}]},{"@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\/19414","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=19414"}],"version-history":[{"count":6,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/19414\/revisions"}],"predecessor-version":[{"id":19470,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/19414\/revisions\/19470"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media\/19425"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media?parent=19414"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/categories?post=19414"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/tags?post=19414"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}