{"id":959,"date":"2026-03-03T14:42:11","date_gmt":"2026-03-03T03:42:11","guid":{"rendered":"https:\/\/www.hashmicro.com\/au\/blog\/?p=959"},"modified":"2026-04-14T19:41:40","modified_gmt":"2026-04-14T09:41:40","slug":"sales-pipeline","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/","title":{"rendered":"Sales Pipeline: Stages &#038; Strategy for Sustainable Growth"},"content":{"rendered":"<p data-start=\"0\" data-end=\"234\">In modern sales, relying on intuition leads to missed follow-ups, disorganized deal tracking, and inconsistent revenue. Teams juggling multiple prospects without a clear system often lose visibility into existing sales opportunities, leading to lost follow-up opportunities.<\/p>\n<p data-start=\"236\" data-end=\"456\" data-is-last-node=\"\" data-is-only-node=\"\">A structured sales pipeline brings order to this chaos by mapping each stage of the buyer journey. It improves forecasting accuracy, highlights bottlenecks, and creates a scalable framework for consistent revenue growth.<\/p>\n<p data-start=\"236\" data-end=\"456\" data-is-last-node=\"\" data-is-only-node=\"\">If you are interested in further improving your sales processes, we can assure you that this topic will be beneficial for you and your company in the long run. We will cover the definition of sales pipelines, how it differs from the sales funnel, its implementation, and how CRM plays a role in it.<\/p>\n<style>\r\n\t.takeaways-container {\r\n\t\tmargin: 20px 0;\r\n\t\tfont-family: sans-serif;\r\n\t}\r\n\t.box-content {\r\n\t\tbackground-color: #fffacd;\r\n\t\tbox-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\r\n\t\tborder-radius: 25px;\r\n\t\tpadding: 25px;\r\n\t}\r\n\t.title {\r\n\t\tmargin-bottom: 20px;\r\n\t}\r\n\t.title p {\r\n\t\tdisplay: inline-block;\r\n\t\tbackground-color: #8A0E19;\r\n\t\tcolor: #ffffff;\r\n\t\tpadding: 8px 15px;\r\n\t\tborder-radius: 8px;\r\n\t\tfont-size: 22px;\r\n\t\tfont-weight: bold;\r\n\t\tmargin: 0;\r\n\t}\r\n\t.item {\r\n\t\tdisplay: flex;\r\n\t\talign-items: flex-start;\r\n\t\tmargin-bottom: 12px;\r\n\t}\r\n\t.item .circle {\r\n\t\twidth: 8px;\r\n\t\theight: 8px;\r\n\t\tbackground-color: #000000;\r\n\t\tborder-radius: 50%;\r\n\t\tmargin-right: 12px;\r\n\t\tflex-shrink: 0;\r\n\t\tmargin-top: 8px;\r\n\t}\r\n\t.item p {\r\n\t\tmargin: 0;\r\n\t\tfont-size: 16px;\r\n\t\tline-height: 1.6;\r\n\t}\r\n\t.item p a {\r\n\t\tcolor: #8A0E19;\r\n\t\tfont-weight: normal;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.item p a:hover {\r\n\t\ttext-decoration: underline;\r\n\t}\r\n\t.button-wrapper {\r\n\t\tmargin-top: 25px;\r\n\t}\r\n\t.submit-button {\r\n\t\tbackground-color: #8a0e19;\r\n\t\tcolor: #fff !important;\r\n\t\ttransition: all .3s ease;\r\n\t\tpadding: 12px 28px;\r\n\t\tdisplay: inline-block;\r\n\t\tborder-radius: 12px;\r\n\t\tfont-size: 16px;\r\n\t\tfont-weight: bold;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.submit-button:hover {\r\n\t\tbackground-color: #991b26;\r\n\t}\r\n\t@media (max-width: 767px) {\r\n\t\t.takeaways-container {\r\n\t\t\theight: auto;\r\n\t\t\tpadding: 0;\r\n\t\t}\r\n\t\t.box-content {\r\n\t\t\tpadding: 24px;\r\n\t\t}\r\n\t\t.content,\r\n\t\t.main-content,\r\n\t\t.list-item {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t}\r\n<\/style>\r\n\r\n<div class=\"takeaways-container\">\r\n\t<div class=\"box-content\">\r\n\t\t<div class=\"content\">\r\n\t\t\t<div class=\"title\">\r\n\t\t\t\t<p>Key Takeaways<\/p>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"main-content\">\r\n\t\t\t\t<div class=\"list-item\">\r\n\t\t\t\t\t<div class=\"item\">    <div class=\"circle\"><\/div>    <p>Understand the <a href=\"#what-is-a-sales-pipeline\">core definition of sales pipelines<\/a> as a systematic approach to tracking and managing sales.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#how-to-build-a-sales-pipeline\">Building a sales pipelines<\/a> is done through a structured sequence, starting with mapping your customers, establish exit criterias, and implement it to your CRM<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#how-to-manage-your-sales-pipeline-effectively\">Managing your sales pipeline effectively<\/a> pipeline is necessary to maintain a healthy, accurate, and moving pipeline.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p>The <a href=\"#advanced-practices-for-scaling-organizations\">best practices for sales pipelines<\/a> are the standard for managing sales pipelines in today's competitive market<\/p><\/div>\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div>\n<p><a href=\"https:\/\/www.hashmicro.com\/au\/free-product-tour\/?medium=free-product-tour\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/11\/Free-Product-Tour-resized.webp\" alt=\"Free Demo\"><\/a><br \/>\n<!-- <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\">Table of Content<\/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<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\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<!-- 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\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\r\n\r\n\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/ \/\/ \t\t\tconsole.log(\"prevent default\");\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<!-- START script lama -->\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<\/script> -->\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\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']; \/\/ 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\nToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\"\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;} \/\/ Kalau Key Takeaways, jangan dimasukin\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\tDapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\nDapatkan 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\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<\/p>\n<h2 id=\"what-is-a-sales-pipeline\"><strong>What Is a Sales Pipeline?<\/strong><\/h2>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"request-69a504ae-5990-8323-b34d-6b20672d1c8b-14\" data-testid=\"conversation-turn-74\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"a8d404a2-182b-4164-8433-31e03be842d0\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"237\">A sales pipeline is a structured, visual system for tracking prospects as they move through the buying stages. It shows the number, value, and status of active deals, giving teams clear visibility into progress and conversion likelihood.<\/p>\n<p data-start=\"239\" data-end=\"460\" data-is-last-node=\"\" data-is-only-node=\"\">By organizing opportunities into defined stages, the pipeline helps managers assess quota coverage, identify stalled deals, and monitor rep performance, turning scattered sales activity into measurable, actionable insight.<\/p>\n<p data-start=\"239\" data-end=\"460\" data-is-last-node=\"\" data-is-only-node=\"\"><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\/blog\/wp-content\/uploads\/2025\/12\/quote.webp\" alt=\"Quote Icon\" class=\"quote-icon\">\r\n        <div>\r\n            A healthy sales pipeline is the single most reliable predictor of future revenue. Ignoring it will halt long-term growth.        <\/div>\r\n    <\/div>\r\n    <p class=\"quote-author-wrapper\">\r\n        <em>Chris O&#039;Donnell, Lead Project Manager<\/em>\r\n    <\/p>\r\n<\/div><\/p>\n<h2 data-start=\"239\" data-end=\"460\"><strong>Sales Pipeline vs Sales Funnel<\/strong><\/h2>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<p>While these terms are often thought of as having the same meaning, they represent different perspectives of the same process. It is crucial to distinguish between the two to manage your sales strategy effectively.<\/p>\n<ul>\n<li><strong>The Sales Pipeline:<\/strong> This is viewed from the perspective of the sales representative. It focuses on the actions the sales team must take to move a deal forward. It deals with stages like &#8220;Qualification,&#8221; &#8220;Meeting,&#8221; &#8220;Proposal,&#8221; and &#8220;Closing&#8221;.<\/li>\n<li><strong>The Sales Funnel:<\/strong> This is viewed from the perspective of the customer. It represents the conversion rates and the volume of leads that drop off at each stage. It deals with the numbers, how many leads entered the top, and how many came out of the bottom as customers.<\/li>\n<\/ul>\n<p>Understanding this distinction ensures that you are not just counting numbers but are actively managing the activities that influence those numbers.<\/p>\n<h2 id=\"stages-of-a-sales-pipeline\"><strong>Stages of a Sales Pipeline<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"size-full wp-image-1046 aligncenter\" src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-Mar-3-2026-09_55_11-AM.webp\" alt=\"stages-of-a-sales-pipeline\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-Mar-3-2026-09_55_11-AM.webp 1536w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-Mar-3-2026-09_55_11-AM-300x200.webp 300w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-Mar-3-2026-09_55_11-AM-1024x683.webp 1024w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-Mar-3-2026-09_55_11-AM-768x512.webp 768w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-Mar-3-2026-09_55_11-AM-630x420.webp 630w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-Mar-3-2026-09_55_11-AM-150x100.webp 150w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-Mar-3-2026-09_55_11-AM-696x464.webp 696w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/ChatGPT-Image-Mar-3-2026-09_55_11-AM-1068x712.webp 1068w\" sizes=\"(max-width: 1536px) 100vw, 1536px\" \/><\/p>\n<p data-start=\"0\" data-end=\"189\">Although each business has its own nuances, most B2B sales cycles follow a similar structure. Clearly defined and standardized stages are critical for accurate reporting and team alignment.<\/p>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"92c8fb31-35ab-4c3f-bd3b-3e21fc3ea15b\" data-testid=\"conversation-turn-78\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"92c8fb31-35ab-4c3f-bd3b-3e21fc3ea15b\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"191\" data-end=\"391\" data-is-last-node=\"\" data-is-only-node=\"\">Without shared definitions, inconsistent labeling of deals can distort data and weaken forecasts. Establishing clear pipeline stages ensures consistency, visibility, and reliable performance tracking for all teams.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<h3><strong>1. Prospecting and Lead Generation<\/strong><\/h3>\n<p data-start=\"0\" data-end=\"289\">This stage marks the beginning of the pipeline, where potential buyers who fit your Ideal Customer Profile (ICP) are identified through inbound and outbound efforts. Leads at this point come from sources such as content downloads, contact forms, cold outreach, events, or social platforms.<\/p>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"201dabd5-b54e-40dc-bca4-28a06c5aa852\" data-testid=\"conversation-turn-80\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"201dabd5-b54e-40dc-bca4-28a06c5aa852\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"291\" data-end=\"528\" data-is-last-node=\"\" data-is-only-node=\"\">The objective is not to close a deal, but to spark initial interest and confirm basic contact details. At this stage, a lead is only a potential opportunity and has not yet been evaluated for intent, budget, or decision-making authority.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<h3><strong>2. Lead Qualification<\/strong><\/h3>\n<p data-start=\"0\" data-end=\"249\">This is the most important filtering stage in the pipeline. Qualification determines whether a prospect has a real need, sufficient budget, and decision-making authority, separating Marketing Qualified Leads (MQLs) from Sales Qualified Leads (SQLs).<\/p>\n<p data-start=\"251\" data-end=\"452\" data-is-last-node=\"\" data-is-only-node=\"\">Sales teams often use frameworks like <a href=\"https:\/\/www.salesforce.com\/blog\/what-is-bant-lead-generation\/\" target=\"_blank\" rel=\"noopener\">BANT<\/a> or <a href=\"https:\/\/meddicc.com\/meddpicc-sales-methodology-and-process\" target=\"_blank\" rel=\"noopener\">MEDDIC<\/a> to evaluate viability. Leads that fail to meet the required criteria should be removed from the active pipeline to avoid wasting time and resources on leads with a high probability of failure to convert.<\/p>\n<h3><strong><span style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 22px;\">3. Initial Meeting or Discovery<\/span><\/strong><\/h3>\n<p>After qualification, the next step is a meaningful interaction, such as a discovery call or product demo. The focus is on understanding the prospect\u2019s pain points, goals, and challenges through active listening.<\/p>\n<p>This stage builds the foundation of the relationship. Instead of selling features, the goal is to diagnose the problem and confirm mutual interest, ideally leading to a request for a detailed proposal or a broader discussion with stakeholders.<\/p>\n<h3><span style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 22px;\"><strong>4. Proposal and Presentation<\/strong><\/span><\/h3>\n<p>Using insights from the discovery stage, the sales team prepares a customized proposal detailing how the solution addresses the prospect\u2019s needs, along with timelines and pricing.<\/p>\n<p>In B2B sales, proposals are usually reviewed by multiple stakeholders. The presentation must address technical feasibility, financial return, and strategic fit to gain approval across different decision-makers.<\/p>\n<h3><strong><span style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 22px;\">5. Negotiation and Handling Objections<\/span><\/strong><\/h3>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"request-69a504ae-5990-8323-b34d-6b20672d1c8b-21\" data-testid=\"conversation-turn-88\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"ff1eb56d-47c7-451a-8a03-91767aa7dd69\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"209\">Most proposals face questions or pushback, making negotiation a critical step. This stage focuses on refining terms such as pricing, contract duration, service level agreements (SLAs), and feature adjustments.<\/p>\n<p data-start=\"211\" data-end=\"417\" data-is-last-node=\"\" data-is-only-node=\"\">Top sales professionals treat objections as requests for clarity, not rejection. The objective is to reach a balanced agreement where the client sees clear value while the company maintains healthy margins.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<h3><strong>6. Closing<\/strong><\/h3>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"request-69a504ae-5990-8323-b34d-6b20672d1c8b-22\" data-testid=\"conversation-turn-90\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"77e42cd5-65b0-468b-853b-e03a82c7898a\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"199\">This is the final hurdle. A verbal agreement means little until the contract is formally signed. The stage typically includes procurement procedures, legal review, and final administrative approvals.<\/p>\n<p data-start=\"201\" data-end=\"434\" data-is-last-node=\"\" data-is-only-node=\"\">Deals often stall due to internal bureaucracy. Strong pipeline management at this point requires proactive follow-ups and equipping the internal champion with what they need to move the paperwork through their organization\u2019s systems.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<h3><strong><span style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 22px;\">7. Post-Sale and Retention<\/span><\/strong><\/h3>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"request-69a504ae-5990-8323-b34d-6b20672d1c8b-28\" data-testid=\"conversation-turn-102\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"a423e647-1a25-47b1-b634-ed60e4f4452d\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"255\">Many organizations assume the pipeline ends at contract signature. In modern B2B and subscription models, the post-sale phase is critical. This stage includes onboarding, implementation, and helping the customer reach \u201cfirst value\u201d as quickly as possible.<\/p>\n<p data-start=\"257\" data-end=\"474\" data-is-last-node=\"\" data-is-only-node=\"\">A seamless handoff from sales to customer success drives retention and creates opportunities for upselling and cross-selling. Customers who realize early value are far more likely to expand their investment over time.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<h2 id=\"how-to-build-a-sales-pipeline\"><strong style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 27px;\">How to Build a Sales Pipeline<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"size-full wp-image-1047 aligncenter\" src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-7.webp\" alt=\"how-to-build-a-sales-pipeline\" width=\"800\" height=\"400\" srcset=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-7.webp 800w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-7-300x150.webp 300w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-7-768x384.webp 768w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-7-150x75.webp 150w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-7-696x348.webp 696w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Building a sales pipeline from scratch, or revamping an existing, ineffective one, requires a blend of strategic thinking and data analysis. It is not enough to simply copy a template; the pipeline must mirror your specific customer journey.<\/p>\n<h3><strong>Step 1: Define Your Ideal Customer Profile (ICP)<\/strong><\/h3>\n<p>Before you can build a path for your customers, you must know who they are. Analyze your most successful existing customers. What industry are they in, and what is their company size? Building a pipeline for enterprise software requires different stages than a pipeline for small business consulting.<\/p>\n<h3><strong>Step 2: Map the Customer Journey<\/strong><\/h3>\n<p data-start=\"0\" data-end=\"254\">Shift focus from your sales activities to the buyer\u2019s actions. Identify the steps customers take before purchasing, such as researching online, requesting a demo, or issuing a request for proposal (RFP), and align your pipeline stages with those behaviors.<\/p>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"d347e70f-a6d5-4dd8-bd34-19daff44c605\" data-testid=\"conversation-turn-92\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"d347e70f-a6d5-4dd8-bd34-19daff44c605\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"256\" data-end=\"465\" data-is-last-node=\"\" data-is-only-node=\"\">For instance, if customers consistently require a security audit before approval, \u201cSecurity Review\u201d should be a defined stage in your pipeline or at minimum a mandatory checkpoint within the negotiation phase.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<h3><strong>Step 3: Establish Exit Criteria for Each Stage<\/strong><\/h3>\n<p data-start=\"0\" data-end=\"227\">This is a common breakdown in pipeline management. Reps often move deals to \u201cProposal Sent\u201d just because a PDF was emailed, even without client validation. The result is a bloated pipeline filled with revenue that never closes.<\/p>\n<p>You must define strict <strong>Exit Criteria<\/strong> for each stage. For example:<\/p>\n<ul>\n<li>To move from <strong>Discovery<\/strong> to <strong>Proposal<\/strong>: The prospect must have confirmed the budget, stated a timeline, and explicitly requested a proposal.<\/li>\n<li>To move from <strong>Proposal<\/strong> to <strong>Negotiation<\/strong>: The prospect must have reviewed the pricing and engaged in a discussion regarding terms.<\/li>\n<\/ul>\n<p>Strict exit criteria ensure that your pipeline reflects reality, not optimism.<\/p>\n<h3><strong>Step 4: Determine Probability Percentages<\/strong><\/h3>\n<p>Assign a winning probability to each stage. Historically, what percentage of qualified leads eventually buy? What percentage of proposals result in a closed deal?<\/p>\n<ul>\n<li>Qualification: 10%<\/li>\n<li>Discovery: 20%<\/li>\n<li>Proposal: 50%<\/li>\n<li>Negotiation: 80%<\/li>\n<li>Closed Won: 100%<\/li>\n<\/ul>\n<p>These weighted percentages allow you to calculate the &#8220;Weighted Pipeline Value,&#8221; giving you a much more accurate financial forecast than simply summing up the total value of all open deals.<\/p>\n<h3><strong>Step 5: Implement the Process in Your CRM<\/strong><\/h3>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"request-69a504ae-5990-8323-b34d-6b20672d1c8b-25\" data-testid=\"conversation-turn-96\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"79aed8ab-1481-460f-85cf-53cfda4c3b5f\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"235\">Once the strategy is defined, it must be implemented digitally. A pipeline that lives only on a whiteboard or spreadsheet cannot scale effectively. Configure your CRM to mirror the exact stages, probabilities, and required data fields.<\/p>\n<p data-start=\"237\" data-end=\"403\" data-is-last-node=\"\" data-is-only-node=\"\">Standardizing the system ensures every sales representative follows the same process, maintains consistent data entry, and enables accurate reporting and forecasting.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<h2 id=\"how-to-manage-your-sales-pipeline-effectively\"><strong>How to Manage Your Sales Pipeline Effectively<\/strong><\/h2>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"request-69a504ae-5990-8323-b34d-6b20672d1c8b-26\" data-testid=\"conversation-turn-98\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"a391a190-dfa4-4f69-84f6-11a817204f31\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"201\">Building a pipeline is a one-time initiative; managing it requires daily discipline. Pipeline management covers the actions sales managers and reps take to keep deals accurate, active, and progressing.<\/p>\n<p data-start=\"203\" data-end=\"343\" data-is-last-node=\"\" data-is-only-node=\"\">Without consistent oversight, pipelines become stagnant, filled with outdated opportunities that distort forecasts and stall revenue growth.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<h3><strong>Conduct Regular Pipeline Review Meetings<\/strong><\/h3>\n<p>Pipeline reviews are not the same as forecast calls. A forecast call asks, &#8220;What will close this month?&#8221; A pipeline review asks, &#8220;How are we building the future?&#8221;<\/p>\n<p>Schedule bi-weekly reviews focused on the health of the pipeline. Specific questions to ask include:<\/p>\n<ul>\n<li>Which deals have been sitting in the same stage for longer than the average sales cycle?<\/li>\n<li>Are there any empty stages? (e.g., plenty of proposals but no new leads coming in).<\/li>\n<li>Is the data accurate? Are the close dates realistic?<\/li>\n<\/ul>\n<h3><strong>Practice &#8220;Pipeline Hygiene&#8221;<\/strong><\/h3>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"request-69a504ae-5990-8323-b34d-6b20672d1c8b-27\" data-testid=\"conversation-turn-100\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"52a87491-a940-489b-9018-d1259c1d868a\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"211\">A cluttered pipeline creates a false sense of security. Reps may hold onto dead leads to make the pipeline look strong, but inflated deal counts distort conversion rates and drain time from viable opportunities.<\/p>\n<p data-start=\"213\" data-end=\"472\" data-is-last-node=\"\" data-is-only-node=\"\">Create a culture where marking a deal as \u201cClosed Lost\u201d is normal. If a prospect has been unresponsive for months, remove it from the active pipeline and move it to a nurture track. A clean pipeline keeps focus on opportunities that are realistically winnable.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<h3><strong><span style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 22px;\">Focus on Velocity, Not Just Volume<\/span><\/strong><\/h3>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"35e9a6b0-9e5f-46c6-8018-0caa4df4def4\" data-testid=\"conversation-turn-104\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"35e9a6b0-9e5f-46c6-8018-0caa4df4def4\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"257\">More leads do not automatically mean better results. Flooding the funnel with prospects that take 12 months to close slows cash flow. The priority should be improving sales velocity, or the rate at which opportunities move from first contact to closed deal.<\/p>\n<p data-start=\"259\" data-end=\"496\" data-is-last-node=\"\" data-is-only-node=\"\">Analyze where deals stall. If \u201cLegal Review\u201d consistently delays progress, simplify contracts or involve legal earlier. Even a modest reduction in the sales cycle can significantly increase annual revenue and improve cash flow stability.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<h3><strong style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 22px;\">Diversify Lead Sources<\/strong><\/h3>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"request-69a504ae-5990-8323-b34d-6b20672d1c8b-30\" data-testid=\"conversation-turn-106\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"deb9fbf1-34ed-44f3-a729-00c2d00f00d2\" data-message-model-slug=\"gpt-5-2\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"159\">A healthy pipeline depends on diversified lead sources. If most opportunities come from a single referral partner, the business is exposed to unnecessary risk.<\/p>\n<p data-start=\"161\" data-end=\"403\" data-is-last-node=\"\" data-is-only-node=\"\">Effective management requires tracking lead sources and maintaining balance across inbound marketing, outbound prospecting, and referrals. Diversification stabilizes the pipeline and reduces vulnerability to disruptions in any single channel.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<h2 id=\"pipeline-metrics\"><strong>Key Sales Pipeline Metrics to Track<\/strong><\/h2>\n<p>You cannot manage what you do not measure. To optimize your sales process, you need to track specific Key Performance Indicators (KPIs) that reveal the health of your pipeline.<\/p>\n<h3><strong>1. Pipeline Value (Total and Weighted)<\/strong><\/h3>\n<p>Total Pipeline Value is the sum of the potential revenue of all open deals.<br \/>\nWeighted Pipeline Value takes the total value of each deal and multiplies it by the probability of closing based on its current stage. Weighted value is the gold standard for forecasting.<\/p>\n<h3><strong>2. Sales Pipeline Velocity<\/strong><\/h3>\n<p>This metric measures how fast you are making money. The formula is:<\/p>\n<p><em>(Number of Deals \u00d7 Average Deal Size \u00d7 Win Rate) \u00f7 Length of Sales Cycle<\/em><\/p>\n<p>Tracking velocity helps you understand the efficiency of your team. A high velocity means you are closing deals quickly and effectively.<\/p>\n<h3><strong>3. Conversion Rate per Stage<\/strong><\/h3>\n<p>Knowing your overall win rate is good, but knowing your conversion rate <em>between stages<\/em> is better. If 50% of leads move from Discovery to Proposal, but only 10% move from Proposal to Negotiation, you have identified a specific weakness. Perhaps your proposals are not compelling, or your pricing is misaligned.<\/p>\n<h3><strong>4. Average Deal Size<\/strong><\/h3>\n<p data-start=\"0\" data-end=\"248\">Are deal sizes increasing or declining? Tracking average contract value (ACV) is essential for effective resource allocation. In some cases, pursuing fewer high-value clients delivers better returns than acquiring large volumes of smaller accounts.<\/p>\n<h3><strong>5. Sales Cycle Length<\/strong><\/h3>\n<p>This is the average time it takes to close a deal. By tracking this, you can identify outliers. If the average cycle is 60 days, and a deal has been open for 120 days, it is a red flag. It likely requires immediate executive intervention or should be purged from the active pipeline.<\/p>\n<h2 id=\"crm-role\"><strong>The Role of CRM in Sales Pipeline Management<\/strong><\/h2>\n<p>Relying on spreadsheets or manual notes is no longer viable in modern sales. A Customer Relationship Management (CRM) system or integrated <a href=\"https:\/\/www.hashmicro.com\/au\/sales-leads-management\">sales operation software<\/a> automates and organizes the pipeline, turning theoretical stages into actionable insights.<\/p>\n<p>CRMs centralize data, track interactions, and provide real-time visibility, enabling teams to scale operations efficiently while maintaining the personalized approach that drives conversions.<\/p>\n<h3><strong style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 22px;\">Centralized Data and Real-Time Visibility<\/strong><\/h3>\n<p>A CRM acts as a centralized hub, unifying customer data across marketing, sales, and finance to eliminate silos.<\/p>\n<p>It preserves the full interaction history, from emails, calls, meetings, and shared documents, so knowledge stays within the system even if a rep leaves. This transparency gives managers real-time insight into the pipeline, enabling informed coaching and decision-making.<\/p>\n<h3><strong>Automation for Lead Capture, Follow-Ups, &amp; Task Reminders<\/strong><\/h3>\n<p>Salespeople should spend their time selling, not entering data. Modern CRM platforms and dedicated <a href=\"https:\/\/www.hashmicro.com\/au\/blog\/crm-software-australia\/\">lead management software<\/a> automate the administrative burden.<\/p>\n<ul>\n<li><strong>Lead Capture:<\/strong> When a prospect fills out a form on your website, the CRM automatically creates a new lead record and notifies the appropriate rep.<\/li>\n<li><strong>Task Reminders:<\/strong> If a deal moves to the &#8220;Proposal&#8221; stage, the system can automatically set a task to &#8220;Follow up on proposal&#8221; in three days.<\/li>\n<li><strong>Email Sequences:<\/strong> For early-stage leads, the CRM can trigger automated nurture sequences, keeping your brand top-of-mind until the prospect is ready to engage.<\/li>\n<\/ul>\n<p>This automation ensures that no lead falls through the cracks due to human error or forgetfulness.<\/p>\n<h3><strong>Reporting, Dashboards, and Sales Forecasting<\/strong><\/h3>\n<p>CRMs turn raw data into actionable insights through customizable dashboards that display key metrics at a glance, saving time on manual reporting.<\/p>\n<p>By analyzing historical data, CRMs enable accurate revenue forecasting that accounts for seasonality, rep performance, and pipeline velocity, empowering leadership to make informed decisions on hiring, inventory, and integration with an <a href=\"https:\/\/www.hashmicro.com\/au\/sales-leads-management\">order management solution<\/a> to ensure seamless post-sale fulfillment.<\/p>\n<h3><strong style=\"color: #111111; font-family: Roboto, sans-serif; font-size: 22px;\">Lead Scoring and Deal Prioritization<\/strong><\/h3>\n<p>Not all leads are created equal. A CRM can implement automated lead scoring models. By assigning points based on demographic data (e.g., CEO title, Enterprise company size) and behavioral data (e.g., visited pricing page, opened 3 emails), the system can highlight the &#8220;hottest&#8221; leads.<\/p>\n<p>This ensures that sales representatives prioritize their time effectively. Instead of calling down a list alphabetically, they can focus their energy on the top 20% of leads that are most likely to convert, significantly improving efficiency and morale.<\/p>\n<h3><strong>Neglecting the Top of the Funnel<\/strong><\/h3>\n<p>Sales teams often fixate on closing deals at the bottom of the pipeline (The &#8220;Decision&#8221; or &#8220;Negotiation&#8221; stages) to hit immediate quotas. However, neglecting prospecting creates a &#8220;revenue air pocket&#8221;, a month or quarter with zero closings because the pipeline dried up weeks ago.<\/p>\n<p><strong>The Fix:<\/strong> Mandate dedicated prospecting time regardless of how many active deals a rep has. Balance the focus between closing current business and generating future opportunities.<\/p>\n<h3><strong>Over-Automation<\/strong><\/h3>\n<p>While automation is powerful, over-relying on automated email sequences and generic follow-ups can alienate prospects in the middle of the funnel. A pipeline that relies entirely on bots for follow-up often sees high drop-off rates during the consideration phase.<\/p>\n<p><strong>The Fix:<\/strong> Use automation for administrative tasks (data entry, meeting reminders) but ensure that communication during the &#8220;Proposal&#8221; and &#8220;Negotiation&#8221; phases is personalized and human-led.<\/p>\n<h2 id=\"advanced-practices-for-scaling-organizations\"><strong>Advanced Practices for Scaling Organizations<\/strong><\/h2>\n<p>Once your pipeline is functional and your team is compliant, it is time to move from management to optimization. Advanced pipeline practices leverage data and psychology to accelerate revenue.<\/p>\n<h3><strong>Pipeline Velocity Optimization<\/strong><\/h3>\n<p>Most leaders look at total pipeline value, but <em>velocity, <\/em>how fast a lead turns into a customer, is a superior metric for scaling. The formula for Pipeline Velocity is:<\/p>\n<p style=\"background-color: #f4f4f4; padding: 15px; border-left: 4px solid #0073aa; font-family: monospace;\">(Number of Opportunities \u00d7 Average Deal Size \u00d7 Win Rate) \u00f7 Length of Sales Cycle<\/p>\n<p>By breaking this down, you can pull specific levers. For example, if you cannot increase the number of opportunities, you might focus entirely on shortening the sales cycle by introducing digital contract signing or pre-approved pricing packages to increase velocity.<\/p>\n<h3><strong>Multi-Threading Stakeholders<\/strong><\/h3>\n<p data-start=\"127\" data-end=\"410\">In complex B2B sales, depending on a single point of contact is risky. Advanced pipeline management encourages tracking multiple stakeholders within the CRM, ensuring that before a deal progresses, reps engage key players like the Champion, Economic Buyer, and Technical Validator.<\/p>\n<h3><strong>Weighted Pipeline Forecasting<\/strong><\/h3>\n<p data-start=\"412\" data-end=\"672\">Weighted forecasting gives a clearer picture of potential revenue. By assigning probabilities to each stage of the pipeline and calculating a weighted value, organizations can move beyond simple totals and make more realistic predictions about future income.<\/p>\n<h3><strong>The Post-Sale Pipeline<\/strong><\/h3>\n<p data-start=\"674\" data-end=\"959\">In the modern subscription economy, closing a deal is just the beginning. Forward-thinking companies build a secondary \u201cCustomer Success\u201d pipeline to track customers from onboarding to adoption, and ultimately renewal or upsell, ensuring long-term satisfaction and recurring revenue.<\/p>\n<p data-start=\"961\" data-end=\"1276\">By treating your sales pipeline as a living, evolving system rather than a static spreadsheet, you transform it into a powerful revenue engine. Whether refining stage criteria or optimizing velocity, a dynamic pipeline drives clarity, predictability, and sustained business growth.<\/p>\n<h2><strong>Conclusion<\/strong><\/h2>\n<div class=\"flex flex-col text-sm pb-25\">\n<article 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 scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" tabindex=\"-1\" data-turn-id=\"request-69a504ae-5990-8323-b34d-6b20672d1c8b-35\" data-testid=\"conversation-turn-116\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"9edebf09-90d8-4afa-91c8-7326cc6c0dfc\" data-message-model-slug=\"gpt-5-mini\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"293\">A well-structured sales pipeline turns disorganized sales activities into a predictable, strategic process, enabling teams to focus on building relationships and closing deals. Clear stages, strict exit criteria, and consistent metric tracking shift your approach from reactive to proactive.<\/p>\n<p data-start=\"295\" data-end=\"477\" data-is-last-node=\"\" data-is-only-node=\"\">Pairing this process with a capable CRM transforms your pipeline into a dynamic engine for growth, providing clarity, control, and scalability that unlock your full sales potential.<\/p>\n<div class=\"text-base my-auto mx-auto [--thread-content-margin:--spacing(4)] @w-sm\/main:[--thread-content-margin:--spacing(6)] @w-lg\/main:[--thread-content-margin:--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\" tabindex=\"-1\">\n<div class=\"flex max-w-full flex-col 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 [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"94e7cb94-9499-4ed1-9837-ffb999db802b\" data-message-model-slug=\"gpt-5-mini\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full wrap-break-word dark markdown-new-styling\">\n<p data-start=\"0\" data-end=\"448\" data-is-last-node=\"\" data-is-only-node=\"\">To maximize the impact of your sales pipeline and ensure every opportunity is captured efficiently, professional guidance can make all the difference. Take the next step in optimizing your sales process and see tangible results by scheduling a <a href=\"https:\/\/www.hashmicro.com\/au\/free-product-tour\/?medium=free-product-tour\">free consultation<\/a> with us today.<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/au\/sales-leads-management?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/CRM-Sales.webp\" alt=\"CRM Sales\"><\/a>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<h2><strong>Frequently Asked Questions About Sales Pipeline<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What is the difference between a sales pipeline and a sales funnel?<\/strong><\/summary>\n<p>A sales pipeline focuses on the actions taken by sales reps (process-oriented), while a sales funnel focuses on conversion rates and the volume of leads dropping off at each stage (outcome-oriented).<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>How many stages should a sales pipeline have?<\/strong><\/summary>\n<p>Most B2B pipelines have 5 to 7 stages, typically including Prospecting, Qualification, Meeting, Proposal, Negotiation, Closing, and Retention. However, this should be customized to match your specific customer journey.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>How often should I review my sales pipeline?<\/strong><\/summary>\n<p>Pipeline reviews should be conducted bi-weekly or weekly. This ensures data accuracy, helps identify stalled deals early, and keeps the sales team focused on high-priority opportunities.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is a good sales pipeline conversion rate?<\/strong><\/summary>\n<p>Conversion rates vary by industry, but a general benchmark for B2B sales is a 20-30% conversion rate from a qualified opportunity to a closed deal. Monitoring stage-by-stage conversion is more actionable than looking at the overall rate.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Why is CRM important for pipeline management?<\/strong><\/summary>\n<p>A CRM centralizes data, automates manual tasks, provides real-time visibility into deal status, and enables accurate revenue forecasting, which is impossible to achieve effectively with spreadsheets alone.<\/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 is the difference between a sales pipeline and a sales funnel?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"A sales pipeline focuses on the actions taken by sales reps (process-oriented), while a sales funnel focuses on conversion rates and the volume of leads dropping off at each stage (outcome-oriented).\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How many stages should a sales pipeline have?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Most B2B pipelines have 5 to 7 stages, typically including Prospecting, Qualification, Meeting, Proposal, Negotiation, Closing, and Retention. However, this should be customized to match your specific customer journey.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How often should I review my sales pipeline?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Pipeline reviews should be conducted bi-weekly or weekly. This ensures data accuracy, helps identify stalled deals early, and keeps the sales team focused on high-priority opportunities.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What is a good sales pipeline conversion rate?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Conversion rates vary by industry, but a general benchmark for B2B sales is a 20-30% conversion rate from a qualified opportunity to a closed deal. Monitoring stage-by-stage conversion is more actionable than looking at the overall rate.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Why is CRM important for pipeline management?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"A CRM centralizes data, automates manual tasks, provides real-time visibility into deal status, and enables accurate revenue forecasting, which is impossible to achieve effectively with spreadsheets alone.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In modern sales, relying on intuition leads to missed follow-ups, disorganized deal tracking, and inconsistent revenue. Teams juggling multiple prospects without a clear system often lose visibility into existing sales opportunities, leading to lost follow-up opportunities. A structured sales pipeline brings order to this chaos by mapping each stage of the buyer journey. It improves [&hellip;]<\/p>\n","protected":false},"author":54,"featured_media":1041,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"tdm_status":"","tdm_grid_status":"","footnotes":""},"categories":[87],"tags":[],"class_list":{"0":"post-959","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>Sales Pipeline: Stages &amp; Strategy for Sustainable Growth<\/title>\n<meta name=\"description\" content=\"A sales pipeline is a structured, visual system for tracking prospects as they move through the buying stages, guiding your sales to success.\" \/>\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\/au\/blog\/sales-pipeline\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sales Pipeline: Stages &amp; Strategy for Sustainable Growth\" \/>\n<meta property=\"og:description\" content=\"A sales pipeline is a structured, visual system for tracking prospects as they move through the buying stages, guiding your sales to success.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Australia\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-03T03:42:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-14T09:41:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-6.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Ryan Callahan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ryan Callahan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/\",\"url\":\"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/\",\"name\":\"Sales Pipeline: Stages & Strategy for Sustainable Growth\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-6.webp\",\"datePublished\":\"2026-03-03T03:42:11+00:00\",\"dateModified\":\"2026-04-14T09:41:40+00:00\",\"author\":{\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/63bf6285e73cef5d79640ad6a301da14\"},\"description\":\"A sales pipeline is a structured, visual system for tracking prospects as they move through the buying stages, guiding your sales to success.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-6.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-6.webp\",\"width\":800,\"height\":400,\"caption\":\"sales pipelines-hashmicro\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/au\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sales Pipeline: Stages &#038; Strategy for Sustainable Growth\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/au\/blog\/\",\"name\":\"HashMicro Australia\",\"description\":\"Business Management Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/au\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/63bf6285e73cef5d79640ad6a301da14\",\"name\":\"Ryan Callahan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Ryan-Callahan-96x96.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Ryan-Callahan-96x96.webp\",\"caption\":\"Ryan Callahan\"},\"description\":\"I write CRM-focused content that helps teams connect leads, activities, and customer insights into one practical workflow, so pipelines stay visible, follow-ups stay timely, and performance becomes easier to measure.\",\"url\":\"https:\/\/www.hashmicro.com\/au\/blog\/author\/ryan-callahan\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Sales Pipeline: Stages & Strategy for Sustainable Growth","description":"A sales pipeline is a structured, visual system for tracking prospects as they move through the buying stages, guiding your sales to success.","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\/au\/blog\/sales-pipeline\/","og_locale":"en_US","og_type":"article","og_title":"Sales Pipeline: Stages & Strategy for Sustainable Growth","og_description":"A sales pipeline is a structured, visual system for tracking prospects as they move through the buying stages, guiding your sales to success.","og_url":"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/","og_site_name":"HashMicro Australia","article_published_time":"2026-03-03T03:42:11+00:00","article_modified_time":"2026-04-14T09:41:40+00:00","og_image":[{"width":800,"height":400,"url":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-6.webp","type":"image\/webp"}],"author":"Ryan Callahan","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ryan Callahan","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/","url":"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/","name":"Sales Pipeline: Stages & Strategy for Sustainable Growth","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-6.webp","datePublished":"2026-03-03T03:42:11+00:00","dateModified":"2026-04-14T09:41:40+00:00","author":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/63bf6285e73cef5d79640ad6a301da14"},"description":"A sales pipeline is a structured, visual system for tracking prospects as they move through the buying stages, guiding your sales to success.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/#primaryimage","url":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-6.webp","contentUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/Desain-tanpa-judul-6.webp","width":800,"height":400,"caption":"sales pipelines-hashmicro"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/au\/blog\/sales-pipeline\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/au\/blog\/"},{"@type":"ListItem","position":2,"name":"Sales Pipeline: Stages &#038; Strategy for Sustainable Growth"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/au\/blog\/#website","url":"https:\/\/www.hashmicro.com\/au\/blog\/","name":"HashMicro Australia","description":"Business Management Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/au\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/63bf6285e73cef5d79640ad6a301da14","name":"Ryan Callahan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Ryan-Callahan-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Ryan-Callahan-96x96.webp","caption":"Ryan Callahan"},"description":"I write CRM-focused content that helps teams connect leads, activities, and customer insights into one practical workflow, so pipelines stay visible, follow-ups stay timely, and performance becomes easier to measure.","url":"https:\/\/www.hashmicro.com\/au\/blog\/author\/ryan-callahan\/"}]}},"_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts\/959","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/users\/54"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/comments?post=959"}],"version-history":[{"count":6,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts\/959\/revisions"}],"predecessor-version":[{"id":1287,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts\/959\/revisions\/1287"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/media\/1041"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/media?parent=959"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/categories?post=959"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/tags?post=959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}