{"id":62743,"date":"2024-09-25T08:36:54","date_gmt":"2024-09-25T08:36:54","guid":{"rendered":"https:\/\/www.hashmicro.com\/blog\/?p=62743"},"modified":"2025-12-23T04:37:48","modified_gmt":"2025-12-23T04:37:48","slug":"indirect-procurement","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/","title":{"rendered":"Everything You Need to Know About Indirect Procurement"},"content":{"rendered":"<p>Indirect procurement can make up as much as <a href=\"https:\/\/www.mckinsey.com\/~\/media\/McKinsey\/Industries\/Retail\/Our%20Insights\/Turning%20indirect%20sourcing%20into%20a%20multimillion%20dollar%20profit%20center\/Turning-indirect-sourcing-into-a-multimillion-dollar-profit-center.pdf\" target=\"_blank\" rel=\"noopener\">80% of a company\u2019s purchases<\/a>, yet it remains largely unmanaged. This lack of attention often results in uncontrolled maverick and tail spend, eating into company revenue.<\/p>\n<p>With indirect procurement <a href=\"https:\/\/www.mckinsey.com\/business-functions\/operations\/our-insights\/revolutionizing-indirect-procurement-for-the-2020s\" target=\"_blank\" rel=\"noopener\">growing 7% annually<\/a> since 2011, neglecting it means missing opportunities to optimize spending. Left unchecked, this significant portion of your budget can cause <a href=\"https:\/\/www.hashmicro.com\/blog\/revenue-leakage\/\">financial leakage<\/a> and inefficiencies across the business.<\/p>\n<p>To combat this, businesses must focus on managing indirect spend with better procurement strategies and oversight. Implementing tools for visibility and control can significantly reduce costs and improve operational efficiency.<\/p>\n<p>This article will discuss indirect procurement in detail, including what it does, how it contributes to profitability, and the best practices for maximizing profit while cutting costs effectively.<\/p>\n<h2><b>What is Indirect Procurement?<\/b><\/h2>\n<p>Indirect procurement, also called indirect spend, is the process of acquiring goods and services necessary for the daily operations of a business but not directly involved in producing its core products or services.<\/p>\n<p>This includes categories like office supplies (e.g., stationery, furniture), IT services (e.g., software licenses, hardware, technical support), professional services (e.g., legal and marketing consultations), facilities maintenance, utilities, and travel management.<\/p>\n<p>While indirect procurement doesn\u2019t directly impact product output, it is crucial to ensuring that business operations run smoothly and employees have the resources they need to function effectively.<\/p>\n<p>The rising importance of virtual goods and services has increased focus on optimizing indirect procurement is a key area for cost reduction and operational efficiency. Ignoring this can result in missed opportunities for sustainable savings and improved profitability.<\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li>Indirect procurement can make up 80% of purchases, but often goes unmanaged, causing inefficiencies.<\/li>\n<li>Managing indirect procurement well requires visibility, strategic sourcing, and digital tools to cut costs.<\/li>\n<li>Key KPIs include cycle times, cost savings, and vendor management for better efficiency.<\/li>\n<li>HashMicro&#8217;s procurement software enhances indirect procurement with tools for vendor management and cost tracking.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><!-- <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<a href=\"https:\/\/www.hashmicro.com\/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><\/p>\n<h2><b>Examples of Indirect Purchasing<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-62745\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/direct-procurement-1024x576.webp\" alt=\"direct procurement\" width=\"696\" height=\"392\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/direct-procurement-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/direct-procurement-300x169.webp 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/direct-procurement-768x432.webp 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/direct-procurement-747x420.webp 747w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/direct-procurement-150x84.webp 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/direct-procurement-696x392.webp 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/direct-procurement-1068x601.webp 1068w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/direct-procurement.webp 1200w\" sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><\/p>\n<p>Indirect procurement is the backbone that keeps every business ticking, ensuring everything runs smoothly without directly contributing to your final product. Though specific needs differ across industries, here\u2019s a peek at the broad spectrum of indirect procurement:<\/p>\n<ul>\n<li aria-level=\"1\"><b>Facility Basics<\/b>: Think rent, utilities (electricity, water, gas), cleaning services, and maintenance essentials that keep your office or workspace functional.<\/li>\n<li aria-level=\"1\"><b>Employee Essentials<\/b>: From desks and computers to software subscriptions and office supplies like toner and breakroom snacks, these are the tools your team needs to stay productive.<\/li>\n<li aria-level=\"1\"><b>Operational Support<\/b>: Marketing campaigns, travel for meetings or conferences, legal fees, accounting services, and professional training\u2014all these help drive your business forward.<\/li>\n<li aria-level=\"1\"><b>Tech &amp; Services<\/b>: Cloud storage, internet services, cybersecurity solutions, and IT support keep your tech infrastructure running like clockwork.<\/li>\n<li aria-level=\"1\"><b>MRO (Maintenance, Repair, and Operations)<\/b>: Spare parts, tools, and other maintenance items are crucial for keeping your equipment in top shape.<\/li>\n<\/ul>\n<p>Managing these purchases strategically isn\u2019t just about keeping the lights on but maximizing value. With smart sourcing and savvy negotiations, you can make a big difference to your bottom line while ensuring smooth operations.<\/p>\n<h2><b>Benefits of Indirect Procurement<\/b><\/h2>\n<p>Indirect procurement might not get the spotlight like direct procurement does, but its influence on business profitability is undeniable. While it doesn\u2019t directly contribute to product creation or service delivery, it plays a crucial role in keeping operations smooth and efficient.<\/p>\n<p>Here are three ways indirect procurement contributes to profitability:<\/p>\n<ul>\n<li aria-level=\"1\"><b>Cutting Costs<\/b>: Managing indirect procurement smartly can really pay off. By negotiating better deals, consolidating suppliers, and streamlining processes, businesses can see real savings that directly boost their bottom line.<\/li>\n<li aria-level=\"1\"><b>Boosting Efficiency<\/b>: Streamlining your procurement isn\u2019t just about saving time. It frees up resources, allowing your team to focus on what really matters\u2014driving growth and revenue, not chasing down office supplies or services.<\/li>\n<li aria-level=\"1\"><b>Reducing Risk<\/b>: It\u2019s all about being prepared. By spreading out your supplier relationships, staying compliant, and avoiding over-reliance on a single vendor, you can protect your business from unexpected hiccups that could disrupt operations.<\/li>\n<\/ul>\n<h2><b>Direct Procurement vs. Indirect Procurement<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-62747\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/purchase-order-1024x576.webp\" alt=\"purchase order\" width=\"696\" height=\"392\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/purchase-order-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/purchase-order-300x169.webp 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/purchase-order-768x432.webp 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/purchase-order-747x420.webp 747w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/purchase-order-150x84.webp 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/purchase-order-696x392.webp 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/purchase-order-1068x601.webp 1068w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/purchase-order.webp 1200w\" sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><\/p>\n<p>The main distinction between <a href=\"https:\/\/www.hashmicro.com\/blog\/direct-procurement-vs-indirect-procurement\/\">direct procurement vs indirect procurement<\/a> lies in the role each serves. Direct procurement focuses on obtaining the key supplies that are integral to producing and delivering your core products to customers.<\/p>\n<p>Indirect procurement, meanwhile, handles the acquisition of supporting goods and services that help keep operations running but aren\u2019t directly tied to what you sell.<\/p>\n<p>Because of these differing roles, the processes for managing direct and indirect procurement vary. You\u2019ll need to adjust your approach to each to ensure both are handled effectively.<\/p>\n<p>Here\u2019s a breakdown of the key differences between direct and indirect procurement, presented as a list with explanations:<\/p>\n<h3><b>1. Purpose and Focus<\/b><\/h3>\n<ul>\n<li aria-level=\"1\"><b>Direct Procurement<\/b>: Involves acquiring essential materials that directly impact the production of goods or services your business offers. These are critical supplies\u2014without them, operations cannot continue.<\/li>\n<li aria-level=\"1\"><b>Indirect Procurement<\/b>: Focuses on non-core supplies that support day-to-day operations but aren\u2019t directly tied to the production process. These are more about keeping the business running smoothly, like office supplies, IT services, and maintenance.<\/li>\n<\/ul>\n<h3><b>2. Customer-Vendor Relationships<\/b><\/h3>\n<ul>\n<li aria-level=\"1\"><b>Direct Procurement<\/b>: Establishing long-term, sustainable relationships with suppliers is vital. This ensures a stable supply chain that can handle potential disruptions. Contracts, vendor management, and minimum order quantities are common practices.<\/li>\n<li aria-level=\"1\"><b>Indirect Procurement<\/b>: Relationships are more transactional and less dependent on long-term commitments. Vendors for indirect supplies are often replaceable, and flexibility in timing and alternatives is typical.<\/li>\n<\/ul>\n<h3><b>3. Strategic Sourcing and Management<\/b><\/h3>\n<ul>\n<li aria-level=\"1\"><b>Direct Procurement<\/b>: Requires a more strategic approach to sourcing. Building strong, reliable vendor relationships is necessary to secure essential supplies that the business relies on.<\/li>\n<li aria-level=\"1\"><b>Indirect Procurement<\/b>: Less strategic management is needed. You can often create a vendor shortlist and engage them on a more ad-hoc basis, without needing to worry as much about long-term stability.<\/li>\n<\/ul>\n<h3><b>4. Planned vs. Spontaneous Spending<\/b><\/h3>\n<ul>\n<li aria-level=\"1\"><b>Direct Procurement<\/b>: Involves careful planning to ensure a continuous supply of critical materials. Businesses often plan purchases in advance and allocate specific budgets to avoid supply chain disruptions.<\/li>\n<li aria-level=\"1\"><b>Indirect Procurement<\/b>: Often more reactive and spontaneous. It\u2019s difficult to predict the exact demand for indirect supplies, so purchases are typically made as the need arises, with less rigid budgeting and planning.<\/li>\n<\/ul>\n<h3><b>5. Impact on Business Operations<\/b><\/h3>\n<ul>\n<li aria-level=\"1\"><b>Direct Procurement<\/b>: Directly affects your ability to deliver products or services to your customers. Without these supplies, the core operations can\u2019t function.<\/li>\n<li aria-level=\"1\"><b>Indirect Procurement<\/b>: Supports the business but doesn\u2019t directly impact the product or service output. While important, delays or changes in indirect procurement are often manageable without major disruptions.<\/li>\n<\/ul>\n<h3><b>6. Inventory Management Focus<\/b><\/h3>\n<ul>\n<li aria-level=\"1\"><b>Direct Supplies<\/b>: Managing inventory for direct supplies is crucial, as it involves acquiring, storing, and planning for materials that are integral to the production process.<\/li>\n<li aria-level=\"1\"><b>Indirect Supplies<\/b>: Inventory management for indirect supplies is typically less structured. These supplies are often unplanned, so there is no long-term strategy for managing their inventory.<\/li>\n<\/ul>\n<h2><b>Indirect Procurement KPIs<\/b><\/h2>\n<p>To keep your indirect procurement strategy on point, tracking key KPIs is essential. With the right digital <a href=\"https:\/\/www.hashmicro.com\/blog\/procurement-software\/\">procurement software<\/a>, you can get full visibility into spending patterns and behavior, giving you a clear picture of where your money is going.<\/p>\n<p>Here are some must-watch KPIs to help guide your procurement efforts:<\/p>\n<ol>\n<li aria-level=\"1\"><b>Cycle times and costs<\/b>: Keep tabs on how long your procurement processes take and the costs involved, helping you spot any bottlenecks or inefficiencies.<\/li>\n<li aria-level=\"1\"><b>Savings and cost reductions<\/b>: Monitor how much you\u2019re saving through smarter purchasing decisions\u2014this is the real proof that your strategies are working.<\/li>\n<li aria-level=\"1\"><b>Cost avoidance<\/b>: Measure your ability to sidestep unnecessary expenses, preventing costs from creeping up where they shouldn\u2019t.<\/li>\n<li aria-level=\"1\"><b>Procurement ROI<\/b>: Evaluate how much value your procurement activities are generating compared to the resources you\u2019re investing.<\/li>\n<li aria-level=\"1\"><b>Metrics related to vendors<\/b>, such as supplier spend, price fluctuations, and contract adherence, play a crucial role in keeping rogue spending in check.<\/li>\n<\/ol>\n<p>With these KPIs in hand, you\u2019ll see exactly where your <a href=\"https:\/\/www.hashmicro.com\/blog\/erp-system-procurement\/\">procurement system<\/a> shines and where improvements are needed. This clarity helps you decide whether to optimize your current platform or explore new procurement management software to take your procurement strategy to the next level.<\/p>\n<h2><b>Indirect Procurement Challenges<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-62748\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/vendor-management-1024x576.webp\" alt=\"vendor management\" width=\"696\" height=\"392\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/vendor-management-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/vendor-management-300x169.webp 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/vendor-management-768x432.webp 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/vendor-management-747x420.webp 747w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/vendor-management-150x84.webp 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/vendor-management-696x392.webp 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/vendor-management-1068x601.webp 1068w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/vendor-management.webp 1200w\" sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><\/p>\n<p>Indirect procurement comes with its own set of challenges, especially when it involves managing services and non-core supplies. Here\u2019s a look at some of the common pitfalls:<\/p>\n<ul>\n<li aria-level=\"1\"><b>Supplier Overload<\/b>: With so many vendors and categories to manage, it\u2019s easy to feel buried under contracts and purchase orders. Keeping track of everything can become a logistical nightmare without a solid system in place.<\/li>\n<li aria-level=\"1\"><b>Lack of Visibility<\/b>: Often, decision-makers aren\u2019t looped in early enough, leaving gaps in communication. This can lead to delays, missed opportunities, and unnecessary complications down the line.<\/li>\n<li aria-level=\"1\"><b>Uncontrolled Spending<\/b>: When multiple people are involved in approving purchases, it becomes tricky to see the full picture of where the money is going. This can lead to overspending and a lack of accountability.<\/li>\n<li aria-level=\"1\"><b>Revealing Budgets Too Soon<\/b>: Letting vendors know your budget early in the game can backfire. They\u2019ll adjust their pricing to fit what you\u2019re willing to spend, leaving less room for negotiating better deals.<\/li>\n<li aria-level=\"1\"><b>Rushed Decisions<\/b>: Vendors push to close deals quickly, but rushing through the procurement process often means sacrificing the best terms. Without careful consideration, you could end up paying more than necessary.<\/li>\n<li aria-level=\"1\"><b>Premature Vendor Selection<\/b>: Announcing your shortlisted vendors too early can weaken your negotiation position. If they know they\u2019re the only option, they\u2019re less likely to offer favorable terms.<\/li>\n<\/ul>\n<p>Navigating these challenges requires a careful approach, but with the right strategies, you can avoid the pitfalls and optimize your indirect procurement process.<\/p>\n<h2><b>Best Practices of Indirect Procurement<\/b><\/h2>\n<p>Success in indirect procurement isn&#8217;t just about cutting costs. Rather, it also means keeping spending in check, improving visibility, managing facilities better, and building stronger supplier relationships. So, how do you make sure that your indirect procurement goes smoothly with minimal problems?<\/p>\n<p>Here are 6 tips on best practices for efficient indirect procurement:<\/p>\n<h3><b>1. Focus on visibility<\/b><\/h3>\n<p>One big issue with procurement is that it\u2019s often fragmented, with purchases happening without full approval. The key to fixing this is boosting visibility into all spending, which helps you spot inefficiencies and find ways to optimize.<\/p>\n<h3><b>2. Tidy up the data<\/b><\/h3>\n<p>Indirect spending often comes from all over the place\u2014different formats, different departments\u2014which can get messy fast. Cleaning up your data makes it easier to track, analyze, and keep everything consistent, giving you better control.<\/p>\n<h3><b>3. Get strategic about sourcing<\/b><\/h3>\n<p>Take a good look at your contracts and figure out where you can save. Then, work with your suppliers to make those savings happen. It\u2019s all about aligning your efforts with your company\u2019s goals and creating clear benchmarks for success.<\/p>\n<h3><b>4. Rethink your supplier base<\/b><\/h3>\n<p>A big part of the job is negotiating contracts, communicating with vendors, and monitoring their performance. Make sure spending is done ethically and sustainably while keeping those relationships strong.<\/p>\n<h3><b>5. Educate your team<\/b><\/h3>\n<p>Since employees are the ones actually making purchases, they need to be in the loop. Clear, simple policies and training go a long way in helping them follow the process and boost procurement efficiency. Good software can even help with training through built-in resources.<\/p>\n<h3><b>6. Use digital tools<\/b><\/h3>\n<p>Automation and cloud-based procurement software can make the entire process smoother. You\u2019ll reduce errors, improve visibility, and get more accurate data. Plus, having an easy-to-use dashboard means anyone on the team can monitor spending and see cost-saving opportunities.<\/p>\n<h2><b>Enhance Indirect Procurement\u2019s Effectiveness with Procurement Software\u00a0<\/b><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-62749\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/Procurement-Software-1.webp\" alt=\"Procurement Software\" width=\"782\" height=\"479\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/Procurement-Software-1.webp 782w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/Procurement-Software-1-300x184.webp 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/Procurement-Software-1-768x470.webp 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/Procurement-Software-1-686x420.webp 686w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/Procurement-Software-1-150x92.webp 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/Procurement-Software-1-696x426.webp 696w\" sizes=\"auto, (max-width: 782px) 100vw, 782px\" \/><\/p>\n<p>Tackling the complexities of indirect procurement takes a mix of smart strategy and cutting-edge technology. That\u2019s where HashMicro <a href=\"https:\/\/www.hashmicro.com\/procurement-and-purchasing-management-system\">procurement software<\/a> comes in.<\/p>\n<p>As a leader in cognitive procurement, HashMicro has crafted advanced software solutions that give businesses the insights and tools they need to stay on top of their indirect spend. With HashMicro\u2019s expertise, you can navigate the challenges of managing indirect procurement easily and confidently.<\/p>\n<p>For managing indirect procurement, several features of HashMicro\u2019s purchasing software stand out as game-changers:<\/p>\n<ol>\n<li aria-level=\"1\"><a href=\"https:\/\/www.softr.io\/no-code\/what-is-vendor-portal\" target=\"_blank\" rel=\"noopener\"><b>Vendor Portal<\/b><\/a>: Say goodbye to messy email chains and back-and-forth phone calls. This digital system lets you handle negotiations and procurement with vendors smoothly and efficiently, all in one place.<\/li>\n<li aria-level=\"1\"><b>Automatic Vendor Rating<\/b>: Want to know which vendors consistently deliver the best value? This feature automatically rates vendors on key factors like punctuality, pricing, and service quality, so you can make smarter decisions.<\/li>\n<li aria-level=\"1\"><b>Cost Savings Tracking and Reporting<\/b>: Keep a close eye on your savings. By tracking the difference between budgeted and actual spending, you\u2019ll get clear insights into how much you\u2019re saving on those indirect purchases.<\/li>\n<li aria-level=\"1\"><b>Budget Tracking &amp; Limit Per Purchase<\/b>: Indirect procurement often involves lots of smaller purchases. With this tool, you can easily monitor budgets and set spending limits, making sure everything stays on track and within budget.<\/li>\n<li aria-level=\"1\"><b>KPI Target Per Purchaser<\/b>: This feature makes it easier to keep your procurement team on point. It allows you to set and track specific goals, such as cost savings and successful negotiations.<\/li>\n<\/ol>\n<p>These features make managing indirect procurement simpler, smarter, and more efficient without overwhelming your team.<\/p>\n<h2><b>Conclusion<\/b><\/h2>\n<p>Indirect procurement covers the essential services and supplies that keep your business running smoothly but aren\u2019t directly tied to your products. From office supplies to IT services, managing these areas well can improve cost control for long-term business success.<\/p>\n<p>For Singaporean businesses, HashMicro\u2019s procurement software is designed to simplify your indirect procurement process. With smart tools that enhance visibility, automate vendor management, and streamline negotiations, you\u2019ll have everything you need to take control of your spending and drive savings effortlessly.<\/p>\n<p>When it comes to optimizing procurement, HashMicro gives you the edge with powerful tech and local support. Their solutions help you manage procurement with ease, improve decision-making, and ensure you&#8217;re always getting the best value from your suppliers.<\/p>\n<p>What are you waiting for? Try out the <a href=\"https:\/\/www.hashmicro.com\/free-product-tour\/\">free demo<\/a> and see how effective this procurement software can be for your company!<\/p>\n<p><span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/procurement-and-purchasing-management-system?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Procurement.webp\" alt=\"Procurement\"><\/a><\/span><\/p>\n<h3><strong>FAQ About Indirect Procurement<\/strong><\/h3>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What are indirect costs in procurement?<\/strong><\/summary>\n<p>Indirect spend, also known as indirect cost, refers to expenditures that help keep a business operational behind the scenes. Indirect procurement typically covers internal resources like office supplies, equipment, shipping fees, wages, and other expenses that support day-to-day operations, team processes, and workflows within the company.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is the indirect purchase order process flow?<\/strong><\/summary>\n<p>The indirect procurement process involves acquiring goods and services that don\u2019t directly contribute to the final product. These may include office supplies, equipment, travel expenses, consultancy services, software, and utilities.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Is marketing indirect procurement?<\/strong><\/summary>\n<p>Marketing expenses are considered part of indirect spend, as they involve goods and services unrelated to manufacturing products or core business activities.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What are the metrics for indirect procurement?<\/strong><\/summary>\n<p>Indirect procurement evaluates cost metrics to measure performance. The focus is on managing expenses and preventing unnecessary spending. Common KPIs are cost savings, cost avoidance, and cost reduction.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Indirect procurement can make up as much as 80% of a company\u2019s purchases, yet it remains largely unmanaged. This lack of attention often results in uncontrolled maverick and tail spend, eating into company revenue. With indirect procurement growing 7% annually since 2011, neglecting it means missing opportunities to optimize spending. Left unchecked, this significant portion [&hellip;]<\/p>\n","protected":false},"author":206,"featured_media":62746,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1128],"tags":[],"class_list":{"0":"post-62743","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-procurement"},"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>Everything You Need to Know About Indirect Procurement<\/title>\n<meta name=\"description\" content=\"Effective management of indirect procurement controls costs and enhances vendor oversight, which prevents financial leakage.\" \/>\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\/blog\/indirect-procurement\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Everything You Need to Know About Indirect Procurement\" \/>\n<meta property=\"og:description\" content=\"Effective management of indirect procurement controls costs and enhances vendor oversight, which prevents financial leakage.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/\" \/>\n<meta property=\"og:site_name\" content=\"BusinessTech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/web.facebook.com\/hashmicro\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-25T08:36:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-23T04:37:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/indirect-procurement.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Nur Fi&#039;llia Nugrahani\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:site\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nur Fi&#039;llia Nugrahani\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/\"},\"author\":{\"name\":\"Nur Fi'llia Nugrahani\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/82334ae4c96d5887773cadf8bbe9e2fc\"},\"headline\":\"Everything You Need to Know About Indirect Procurement\",\"datePublished\":\"2024-09-25T08:36:54+00:00\",\"dateModified\":\"2025-12-23T04:37:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/\"},\"wordCount\":2486,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/indirect-procurement.webp\",\"articleSection\":[\"Procurement\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/\",\"name\":\"Everything You Need to Know About Indirect Procurement\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/indirect-procurement.webp\",\"datePublished\":\"2024-09-25T08:36:54+00:00\",\"dateModified\":\"2025-12-23T04:37:48+00:00\",\"description\":\"Effective management of indirect procurement controls costs and enhances vendor oversight, which prevents financial leakage.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/indirect-procurement.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/indirect-procurement.webp\",\"width\":1200,\"height\":675,\"caption\":\"indirect procurement\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Everything You Need to Know About Indirect Procurement\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/\",\"name\":\"BusinessTech\",\"description\":\"Business Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\",\"name\":\"HashMicro\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png\",\"width\":334,\"height\":51,\"caption\":\"HashMicro\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/web.facebook.com\/hashmicro\/\",\"https:\/\/x.com\/hashmicro\",\"https:\/\/www.linkedin.com\/company\/hashmicro\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/82334ae4c96d5887773cadf8bbe9e2fc\",\"name\":\"Nur Fi'llia Nugrahani\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/08\/cropped-foto-profil-nuri-96x96.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/08\/cropped-foto-profil-nuri-96x96.webp\",\"caption\":\"Nur Fi'llia Nugrahani\"},\"description\":\"A content writer specializing in crafting insightful and thought-provoking articles about technology. With a passion for making complex topics accessible, she delivers engaging and informative content for a wide audience.\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/author\/fillia-nugrahanihashmicro-com-sg\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Everything You Need to Know About Indirect Procurement","description":"Effective management of indirect procurement controls costs and enhances vendor oversight, which prevents financial leakage.","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\/blog\/indirect-procurement\/","og_locale":"en_US","og_type":"article","og_title":"Everything You Need to Know About Indirect Procurement","og_description":"Effective management of indirect procurement controls costs and enhances vendor oversight, which prevents financial leakage.","og_url":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/","og_site_name":"BusinessTech","article_publisher":"https:\/\/web.facebook.com\/hashmicro\/","article_published_time":"2024-09-25T08:36:54+00:00","article_modified_time":"2025-12-23T04:37:48+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/indirect-procurement.webp","type":"image\/webp"}],"author":"Nur Fi'llia Nugrahani","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Written by":"Nur Fi'llia Nugrahani","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/"},"author":{"name":"Nur Fi'llia Nugrahani","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/82334ae4c96d5887773cadf8bbe9e2fc"},"headline":"Everything You Need to Know About Indirect Procurement","datePublished":"2024-09-25T08:36:54+00:00","dateModified":"2025-12-23T04:37:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/"},"wordCount":2486,"publisher":{"@id":"https:\/\/www.hashmicro.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/indirect-procurement.webp","articleSection":["Procurement"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/","url":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/","name":"Everything You Need to Know About Indirect Procurement","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/indirect-procurement.webp","datePublished":"2024-09-25T08:36:54+00:00","dateModified":"2025-12-23T04:37:48+00:00","description":"Effective management of indirect procurement controls costs and enhances vendor oversight, which prevents financial leakage.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#primaryimage","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/indirect-procurement.webp","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/09\/indirect-procurement.webp","width":1200,"height":675,"caption":"indirect procurement"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/blog\/indirect-procurement\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Everything You Need to Know About Indirect Procurement"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/blog\/#website","url":"https:\/\/www.hashmicro.com\/blog\/","name":"BusinessTech","description":"Business Management Blog","publisher":{"@id":"https:\/\/www.hashmicro.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/blog\/#organization","name":"HashMicro","url":"https:\/\/www.hashmicro.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png","width":334,"height":51,"caption":"HashMicro"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/web.facebook.com\/hashmicro\/","https:\/\/x.com\/hashmicro","https:\/\/www.linkedin.com\/company\/hashmicro"]},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/82334ae4c96d5887773cadf8bbe9e2fc","name":"Nur Fi'llia Nugrahani","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/08\/cropped-foto-profil-nuri-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/08\/cropped-foto-profil-nuri-96x96.webp","caption":"Nur Fi'llia Nugrahani"},"description":"A content writer specializing in crafting insightful and thought-provoking articles about technology. With a passion for making complex topics accessible, she delivers engaging and informative content for a wide audience.","url":"https:\/\/www.hashmicro.com\/blog\/author\/fillia-nugrahanihashmicro-com-sg\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/62743","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/users\/206"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/comments?post=62743"}],"version-history":[{"count":6,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/62743\/revisions"}],"predecessor-version":[{"id":77436,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/62743\/revisions\/77436"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/media\/62746"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/media?parent=62743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/categories?post=62743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/tags?post=62743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}