DTSS

Our Services
Integrated Facility Management Solutions
About Us
Transforming Services to Solutions

Dusters Total Solutions Services Pvt. Ltd. (DTSS) is the India's leading Integrated Facility Management (IFM) company and a part of the SIS Group, a publicly listed multinational business services organization. (BSE: 540673; NSE: SIS) DTSS delivers end-to-end Facility Management Solutions that enhance workplace safety, operational efficiency, asset performance, and regulatory compliance through a self-performed, technology-enabled service model.

Its comprehensive portfolio includes Soft Services, Technical & Engineering Services, Business & Production Support, Horticulture, Pest Management, Hospitality, Laundry, Floor Care, and specialized Pharmaceutical solutions. Backed by a workforce of over 50,000 professionals, DTSS serves diverse sectors including Manufacturing, Pharmaceuticals, Healthcare, Data Centres, Commercial Real Estate, Retail, Education, Industrial Facilities, and Residential Communities, making it a trusted facility management partner for organizations across India.


Why DTSS
Capabilities & Strengths That Set Us Apart

Pan-India Service Network

Strong presence across 27+ states, 50+ cities, 23+ offices, and 22 SBUs, enabling consistent, localized support anywhere in India.

Massive Scale & Reach

Serving 1,500+ clients, managing 350+ million sq. ft., and employing 50,000+ trained professionals, making it one of the largest IFM players in the country.

Industry-Leading Compliance & Certifications

ISO 9001:2015, ISO 14001, OHSAS 18001 certified, with deep expertise in cGMP, USFDA-compliant processes, especially for Pharmaceutical and Healthcare sectors enabling

Comprehensive & Customized IFM Solutions

End-to-end service range including Engineering, Soft Services, Production Support, Horticulture, Pest Control, Hospitality, Laundry, and specialized solutions for highly regulated environments.

Sector Expertise & Domain Depth

Proven track record across all the key sectors: Manufacturing, Pharmaceuticals, Healthcare, Data Centres, Commercial Spaces, Residential, Hospitality and Education.

Technology-Enabled & Client-Centric Approach

Digitally enabled solutions, focus on high uptime (e.g., 99.99% in Data Centres), strong customer satisfaction (3.6/4 index), and continuous service innovation backed by the SIS Group.

Enquire Now

In Conversation
How DTSS is Driving the Future of Smart Urban Cleaning

How Facility Management is Changing the Way We Work

The world of cleaning and housekeeping is transforming. Facility Management (FM) is no longer just about maintaining spaces — it is about creating smarter, safer, and more productive workplaces through technology, innovation, and skilled professionals. In this podcast, we explore how FM technology, automation, AI, smart cleaning solutions, and digital tools are changing the way housekeeping teams work. Discover how modern facility management is helping janitors and housekeeping professionals improve efficiency, reduce physical workload, gain new skills, and unlock better career opportunities. From traditional cleaning methods to smart facility operations, this episode reveals how technology is reshaping the future of cleaning, workplace culture, and the FM industry.

View More Podcasts
Our Perspectives
Latest Insights

Ready to Optimize Your Facility Management?

Partner with DTSS for integrated facility management across soft services, technical services, safety & security, and specialized services — delivered by a 50,000+ workforce across 20+ states.

Request a Free Facility Audit
The iframe is created on first hover and destroyed on leave, so the page never pays the YouTube embed cost unless someone engages. ============================================================ */ (function () { const box = document.getElementById('featureVideoBox'); if (!box) return; const videoId = box.getAttribute('data-video-id'); const frameWrap = box.querySelector('.rb-feature-video-frame'); if (!videoId || !frameWrap) return; let iframeEl = null; let leaveTimer = null; function play() { clearTimeout(leaveTimer); if (!iframeEl) { iframeEl = document.createElement('iframe'); iframeEl.src = `https://www.youtube.com/embed/${videoId}?autoplay=1&mute=1&loop=1&playlist=${videoId}&controls=0&modestbranding=1&rel=0`; iframeEl.allow = 'autoplay; encrypted-media'; iframeEl.title = 'Featured video preview'; frameWrap.appendChild(iframeEl); } box.classList.add('is-playing'); } function stop() { box.classList.remove('is-playing'); // Small delay so a quick mouse-out/in doesn't rebuild the iframe. leaveTimer = setTimeout(() => { if (iframeEl) { iframeEl.remove(); iframeEl = null; } }, 200); } box.addEventListener('mouseenter', play); box.addEventListener('mouseleave', stop); // Touch devices have no hover — first tap previews, the link works after. box.addEventListener('touchstart', function (e) { if (!iframeEl) { e.preventDefault(); play(); } }, { passive: false }); })(); /* ============================================================ REELS / SHORTS — carousel + in-page player ------------------------------------------------------------ Card widths come from CSS (4 / 3 / 2 / 1 per breakpoint); the JS only measures and translates, one card per step. Clicking a card opens the overlay player instead of navigating to YouTube; the href stays as a fallback for crawlers and no-JS. ============================================================ */ (function () { function boot() { var section = document.getElementById('rvlSection'); var player = document.getElementById('rvlPlayer'); if (!section || !player) return; if (section.dataset.rvlReady === '1') return; section.dataset.rvlReady = '1'; var viewport = document.getElementById('rvlViewport'); var track = document.getElementById('rvlTrack'); var dotWrap = document.getElementById('rvlDots'); var nav = document.getElementById('rvlNav'); var prevBtn = document.getElementById('rvlPrev'); var nextBtn = document.getElementById('rvlNext'); if (!viewport || !track || !dotWrap || !nav || !prevBtn || !nextBtn) return; var cards = Array.prototype.slice.call(track.querySelectorAll('.rvl-card')); var TOTAL = cards.length; if (!TOTAL) return; /* ---------- carousel ---------- */ var index = 0; // Mirrors the CSS media queries. Reads the viewport, not the // container, so section padding can't desync the two. function visible() { var w = window.innerWidth; if (w <= 560) return 1; if (w <= 700) return 2; if (w <= 1024) return 3; return 4; } function gap() { return parseFloat(getComputedStyle(track).gap) || 22; } function cardWidth() { return cards[0] ? cards[0].getBoundingClientRect().width : 0; } function maxIndex() { return Math.max(0, TOTAL - visible()); } function paint() { var offset = index * (cardWidth() + gap()); track.style.transform = 'translate3d(-' + offset + 'px, 0, 0)'; prevBtn.disabled = index === 0; nextBtn.disabled = index >= maxIndex(); var dots = dotWrap.querySelectorAll('.rvl-dot'); for (var i = 0; i < dots.length; i++) { dots[i].classList.toggle('is-active', i === index); dots[i].setAttribute('aria-current', i === index ? 'true' : 'false'); } } function goTo(i) { index = Math.max(0, Math.min(i, maxIndex())); paint(); } function layout() { var steps = maxIndex(); index = Math.min(index, steps); // Nothing to page through at this width → hide arrows and dots if (steps === 0) { nav.hidden = true; dotWrap.hidden = true; dotWrap.innerHTML = ''; track.style.transform = 'translate3d(0, 0, 0)'; return; } nav.hidden = false; dotWrap.hidden = false; if (dotWrap.childElementCount !== steps + 1) { dotWrap.innerHTML = ''; for (var i = 0; i <= steps; i++) { var d = document.createElement('button'); d.type = 'button'; d.className = 'rvl-dot'; d.setAttribute('aria-label', 'Go to slide ' + (i + 1)); (function (n) { d.addEventListener('click', function () { goTo(n); }); })(i); dotWrap.appendChild(d); } } paint(); } prevBtn.addEventListener('click', function () { goTo(index - 1); }); nextBtn.addEventListener('click', function () { goTo(index + 1); }); // Axis-locked swipe — a vertical scroll that drifts sideways // won't flip a slide var sx = 0, sy = 0; viewport.addEventListener('touchstart', function (e) { sx = e.touches[0].clientX; sy = e.touches[0].clientY; }, { passive: true }); viewport.addEventListener('touchend', function (e) { var dx = sx - e.changedTouches[0].clientX; var dy = sy - e.changedTouches[0].clientY; if (Math.abs(dx) > 45 && Math.abs(dx) > Math.abs(dy) * 1.5) { goTo(dx > 0 ? index + 1 : index - 1); } }, { passive: true }); var t; window.addEventListener('resize', function () { clearTimeout(t); t = setTimeout(layout, 120); }); layout(); /* ---------- player ---------- */ var stage = document.getElementById('rvlStage'); var scrim = document.getElementById('rvlScrim'); var closeBtn = document.getElementById('rvlClose'); var muteBtn = document.getElementById('rvlMute'); var pPrev = document.getElementById('rvlPlayerPrev'); var pNext = document.getElementById('rvlPlayerNext'); var caption = document.getElementById('rvlCaption'); var frame = null; var muted = true; var playing = -1; var lastFocus = null; function src(id) { return 'https://www.youtube-nocookie.com/embed/' + id + '?autoplay=1&mute=1&playsinline=1&rel=0&modestbranding=1' + '&loop=1&playlist=' + id + '&enablejsapi=1'; } function command(fn) { if (!frame || !frame.contentWindow) return; frame.contentWindow.postMessage( JSON.stringify({ event: 'command', func: fn, args: [] }), '*' ); } function setMuted(on) { muted = on; command(on ? 'mute' : 'unMute'); muteBtn.setAttribute('aria-label', on ? 'Unmute' : 'Mute'); muteBtn.innerHTML = ''; } function load(i) { playing = (i + TOTAL) % TOTAL; var card = cards[playing]; var id = card.getAttribute('data-rvl-id'); if (!id) return; if (frame) frame.remove(); frame = document.createElement('iframe'); frame.className = 'rvl-frame'; frame.src = src(id); var nameEl = card.querySelector('.rvl-name'); frame.title = nameEl ? nameEl.textContent : 'Reel'; frame.allow = 'autoplay; encrypted-media; picture-in-picture'; frame.setAttribute('allowfullscreen', ''); stage.appendChild(frame); // Autoplay only works muted; sound is re-applied once the // embed's JS API is listening. if (!muted) setTimeout(function () { command('unMute'); }, 900); caption.textContent = nameEl ? nameEl.textContent : ''; pPrev.hidden = pNext.hidden = TOTAL < 2; } function open(i, trigger) { lastFocus = trigger || document.activeElement; player.classList.add('is-open'); document.documentElement.classList.add('rvl-locked'); document.body.classList.add('rvl-locked'); setMuted(true); load(i); closeBtn.focus(); } function close() { player.classList.remove('is-open'); document.documentElement.classList.remove('rvl-locked'); document.body.classList.remove('rvl-locked'); if (frame) { frame.remove(); frame = null; } playing = -1; if (lastFocus && lastFocus.focus) lastFocus.focus(); } cards.forEach(function (card, i) { card.addEventListener('click', function (e) { if (!card.getAttribute('data-rvl-id')) return; // fall back to the href e.preventDefault(); open(i, card); }); }); closeBtn.addEventListener('click', close); scrim.addEventListener('click', close); pPrev.addEventListener('click', function () { load(playing - 1); }); pNext.addEventListener('click', function () { load(playing + 1); }); muteBtn.addEventListener('click', function () { setMuted(!muted); }); document.addEventListener('keydown', function (e) { if (!player.classList.contains('is-open')) return; if (e.key === 'Escape') close(); else if (e.key === 'ArrowLeft') load(playing - 1); else if (e.key === 'ArrowRight') load(playing + 1); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', boot); } else { boot(); } })();