and runs during HTML parse, but hubspotutk is set by js.hs-analytics.net, measured loading at ~834ms. On a first visit the cookie does not exist yet, so a single read returns nothing and the visitor gets no external ID at all — and a first visit is exactly what an ad click is. So poll briefly until HubSpot sets it. The SDK loads lazily (~4.5s) and replays a queue, so an init queued a second or two in still lands before any events are transmitted. */ (function attachExternalId() { var attempts = 0; var MAX_ATTEMPTS = 40; /* 40 x 200ms = 8s, then give up quietly */ var timer = null; function tryAttach() { var raw = getExternalId(); if (!raw) { if (++attempts >= MAX_ATTEMPTS && timer) clearInterval(timer); return; } if (timer) clearInterval(timer); sha256Hex(raw).then(function (hash) { oaiq("init", { user: { external_id_sha256: hash } }); }).catch(function () {}); } tryAttach(); /* returning visitor: immediate */ if (!getExternalId()) timer = setInterval(tryAttach, 200); })(); /* --------------------------------------------------------------------------- 2. Load the SDK off the critical path Whichever comes first: the main thread going idle after load, or the first sign of real user intent. No preconnect on purpose — a TLS handshake during LCP for a script we deliberately deferred is a net loss. Measured on clickpost.ai: load event 3614ms, SDK fetched 4508ms. ------------------------------------------------------------------------ */ var loaded = false; var INTENT = ["pointerdown", "keydown", "scroll"]; function loadSdk() { if (loaded) return; loaded = true; INTENT.forEach(function (t) { removeEventListener(t, loadSdk, { passive: true }); }); var s = document.createElement("script"); s.src = SDK; s.async = true; s.fetchPriority = "low"; document.head.appendChild(s); } INTENT.forEach(function (t) { addEventListener(t, loadSdk, { passive: true, once: true }); }); addEventListener("load", function () { window.requestIdleCallback ? requestIdleCallback(loadSdk, { timeout: 2500 }) : setTimeout(loadSdk, 1500); }, { once: true }); /* --------------------------------------------------------------------------- 3. Conversion id sha256(lowercase(email) + "|" + formId + "|" + ISO-hour), first 20 hex, "lead_" prefix. - email lowercased/trimmed so casing does not fork the id - formId keeps two different forms in the same hour from colliding - the hour bucket is only the server's fallback; the id computed here is sent to the relay verbatim, so the two paths cannot disagree even when a submit straddles an hour boundary Ads Manager's own sample omits event_id. We send it so the pixel event and the relay event collapse into one conversion instead of counting twice. ------------------------------------------------------------------------ */ function buildEventId(email, formId) { var seed = [ String(email || "").trim().toLowerCase(), String(formId || ""), new Date().toISOString().slice(0, 13) ].join("|"); return crypto.subtle.digest("SHA-256", new TextEncoder().encode(seed)).then(function (buf) { var hex = Array.prototype.map.call(new Uint8Array(buf), function (b) { return b.toString(16).padStart(2, "0"); }).join(""); return "lead_" + hex.slice(0, 20); }); } /* Guards a re-fire from the history.pushState that book-a-demo-core.js runs after submit, and from back-navigation onto the same state. */ function firedOnce(id) { try { if (sessionStorage.getItem("oaiq_" + id)) return true; sessionStorage.setItem("oaiq_" + id, "1"); return false; } catch (e) { return false; /* private mode / blocked storage: fire rather than lose it */ } } /* Path 2. keepalive lets the request finish even if the page navigates away. Failures are swallowed deliberately: a reporting call must never surface an error to someone who just submitted a form. The relay hashes the email server-side into user.emails_sha256 and adds the caller's IP and user agent, so this event carries the same match signals the pixel gets for free. */ function sendToRelay(email, formId, eventType, eventId) { try { var payload = { token: RELAY_TOKEN, email: email, form_id: formId || "", event_type: eventType, event_id: eventId, /* verbatim, so both paths always match */ source_url: location.href }; var oppref = getOppref(); if (oppref) payload.oppref = oppref; var externalId = getExternalId(); if (externalId) payload.external_id = externalId; fetch(RELAY_URL, { method: "POST", keepalive: true, headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }).catch(function () {}); } catch (e) {} } /* Capture the email while the form is still on the page. onFormSubmitted does not reliably carry submissionValues, and by then the form may be removed. */ var lastEmail = ""; document.addEventListener("submit", function (e) { var f = e.target; if (!f || !f.querySelector) return; var i = f.querySelector('input[name="email"], input[type="email"]'); if (i && i.value) lastEmail = i.value; }, true); /* Every HubSpot form on the site reports through this one message event, so no module or theme JS needs editing to add coverage. */ window.addEventListener("message", function (e) { var d = e.data; if (!d || d.type !== "hsFormCallback" || d.eventName !== "onFormSubmitted") return; var email = (d.data && d.data.submissionValues && d.data.submissionValues.email) || lastEmail; if (!email) return; /* without an email there is no stable id to dedupe on */ var eventType = EVENT_BY_FORM[d.id] || EVENT_DEFAULT; buildEventId(email, d.id).then(function (id) { if (firedOnce(id)) return; oaiq("measure", eventType, { type: DATA_TYPE }, { event_id: id }); /* path 1 */ sendToRelay(email, d.id, eventType, id); /* path 2 */ }); }); })();

91ÊÓƵ

See where your logistics stands on automation Start assessment

Home > Blog >

How ClickPost Parth Helped MyMuse Resolve 80% of Failed Deliveries on the Same Day

How ClickPost Parth Helped MyMuse Resolve 80% of Failed Deliveries on the Same Day

Manjusha Pal
By Manjusha Pal

Ready to ship smarter? Talk to our logistics experts.

Trusted by 600+ brands

In this blog

    A Brand Challenging Taboos and Leading Change

    is India’s first luxury personal wellness brand, founded in 2020 by Anushka and Sahil Gupta with the mission to make pleasure and connection easy, safe, and stigma‑free. It has rapidly built a loyal community and served over 150,000 customers across 800+ cities, expanding even into Tier 2 and Tier 3 markets. 

    Despite this strong upward trajectory, one key operational hurdle continued to drain their valuable time and affect customer experience—managing failed deliveries (NDRs). As MyMuse scaled, the volume of NDRs grew as well, often requiring manual intervention from the operations team. 

    We had the opportunity to speak with , Operations Lead at MyMuse, to understand how they tackled this challenge with the help of ClickPost’s AI NDR Manager, Parth.

    “My team had to manually follow up for everything. It was taking away their bandwidth completely. Because in a day they had to spend 2-3 hours, basically, just following up with NDR cases,” he said, describing the strain on operations before automation came into play.

     

    Where the Gaps Were in a Growing Operation

    As MyMuse grew, their order volumes soared—but so did the number of failed delivery attempts. With no automation in place, the operations team had to intervene manually for each NDR case. This created a series of cascading challenges:

    1. Manual Follow-Ups Were Consuming Team Bandwidth

    Without automation, every NDR follow-up had to be handled manually. This meant hours of phone calls, status checks, and coordination—every single day. The team was spending valuable hours on repetitive tasks instead of focusing on strategy, planning, or improving the customer experience.

    2. NDR Resolutions Took Too Long to Close

    Because there was no intelligent automation in place, it took them 48 to 72 hours just to resolve one failed delivery. This delay often meant frustrated customers, higher RTOs (returns), and unavoidable losses. Speed was no longer a nice-to-have—it had become essential to maintaining customer trust.

    “That being a quite effective for us because earlier it was a completely manual process. It used to take 48-72 hrs.”

    — Sharadbabu Narayanan

     

    3. Peak Season Volumes Made Things More Challenging 

    During major sale periods or events like Valentine’s Day, the volume of NDRs spiked significantly—up to 30% of all orders. This surge created immense pressure on the team and increased the risk of failed recoveries. Handling this manually was not scalable. MyMuse needed a solution that could keep up with both volume and urgency.

    “So the NDR volume gets spiked at that point of time, and it’s more than, like, 30% of the orders coming into failed delivery attempts.” 

    — Sharadbabu Narayanan

     

    4. Lack of Real-Time Sync with Courier Partners

    Delays in updating courier partners after speaking with customers meant that even if a customer wanted redelivery, the response time was slow. The coordination gap led to missed opportunities and longer recovery cycles.

    5. Customers Needed a Human-Like, Yet Discreet Touch

    As a brand operating in the intimate wellness space, MyMuse needed to maintain a balance: empathetic, human-toned communication that respected customers' privacy—without adding emotional friction.

    Recognizing the Breaking Point

    Sharadbabu and his team realized they needed more than just more people—they needed a smarter, scalable system that could keep pace with their growth while upholding the brand’s standards of discretion, empathy, and customer experience.

    “To scale a brand at a high level, we should introduce AI at any given point of time,” Sharadbabu  Narayanan shared. This is where ClickPost’s Parth entered the picture, not as a replacement for the team, but as a powerful extension of it. What began as a tactical fix for NDRs soon sparked interest across the company.

    “Parth is being discussed on our company level also, like we are quite excited. Founders and our senior members… quite interested…we daily listen to the calls of Parth —how it’s interacting with the customers. 

    — Sharadbabu Narayanan

     

    With strong leadership support and a clear operational need, MyMuse was ready to make the shift—from manual workflows to proactive, AI-powered customer recovery.

     

     

    The Roles ClickPost Parth Plays in MyMuse’s NDR Management

    1. 100% Automated NDR Follow-Ups

    Parth now handles every NDR case autonomously, reaching out to customers instantly after a failed delivery. It engages them in real-time conversations—rescheduling deliveries, gathering confirmations, or collecting reasons for refusal—all without human intervention.

    2. Same-Day Resolution for 80% of NDRs

    With Parth acting instantly, the turnaround time on most NDR cases dropped drastically. What used to take 2–3 days now happens within a few hours.

    “I can say that resolution on NDR—it has been considerably reduced. So, like 80% of the NDR cases are being solved on the same day itself.”

    — Sharadbabu Narayanan

     

    The faster resolution didn’t just improve operational efficiency; it reduced RTOs and improved customer retention during critical moments in the delivery cycle.

    3. Solution for Festive Season NDR Pressure

    Parth proved especially valuable during high-volume periods like Valentine’s Day, when up to 30% of orders used to get marked as “failed” in the first attempt.

    “Parth is completely dedicated to do only the NDR volumes for us. It’s completely taken care by Parth and I feel that in the coming festive season like in valentines, it’d be completely easy for us,” Sharadbabu Narayanan said.

     

    Where manual processes previously buckled under pressure, Parth scaled effortlessly, handling large spikes in NDRs without additional resources.

    4. Real-Time Courier Partner Sync for Faster Recoveries

    Parth is API-integrated, meaning that the moment a customer confirms or reschedules delivery, the system updates the courier partner immediately. This minimized delays and prevented miscommunication that used to cost time and money.

    “Parth is timely calling the customers and it’s like completely API integrated. So, instantly the courier partner gets the update and the delivery time taken by following up by the agent and the Parth AI, it’s a completely a different ball game for us.”

    — Sharadbabu Narayanan

     

    5. Human-Like Conversations That Respect Privacy

    Despite being an AI, Parth was carefully designed to speak like a human—a must-have for a brand like MyMuse, where discretion and tone matter deeply.

    “Customers do not feel that it’s an AI agent altogether. It’s like a human talking to the customers.” Sharadbabu Narayanan noted. “So, in one of the incidents, customer was not aware that he was talking to an AI agent,” he further mentioned. 

    Equally important was data discretion. With no human agents handling sensitive conversations, the privacy-first ethos of MyMuse remained intact.

    “Parth would be communicating to the customer and it’d be a discrete thing. There is no human factor coming into existence. There’d be like…it should not be like an emotional thing with the customer and the agent over here. So, it’s completely a technology blend MyMuse has introduced with the help of ClickPost over here. Here also, like, privacy is given the most importance during the calls also.” Sharadbabu said.

     

    Numbers That Speak: At a Glance 

     

    • 100% of NDR cases managed by Parth AI

    • 80% of NDR cases resolved on the same day

    • 2–3 hours of manual follow-up time saved daily

    • 30% spike in NDR volume during festive seasons effectively handled

    Lessons from the MyMuse Journey

     

    • Automation isn’t about replacement—it’s about amplification.
      Parth didn’t replace the ops team; it supported them by taking over repetitive tasks, freeing up their time for high-impact work.

    • Speed is a critical part of customer experience.
      Reducing NDR resolution time from 72 hours to same-day recoveries directly impacted satisfaction and reduced RTOs.

    • AI can sound human—and that matters.
      When customers can’t tell the difference between AI and a human agent, it builds trust without needing extra manpower.

    • Scalability must be built into your operations early.
      Seasonal spikes in volume don’t need to mean chaos—if the right systems are in place, scale becomes manageable.

    • Privacy and discretion are not optional—they’re expected.
      In any industry, minimizing human involvement in customer conversations helps preserve trust.

    • Leadership buy-in accelerates transformation.
      When internal stakeholders—from founders to frontline teams—support innovation, adoption is faster and impact is deeper.

    Final Takeaway

    Scaling with empathy and efficiency is possible—when a brand embraces the right tools at the right time.

    MyMuse’s journey shows that operational challenges like failed deliveries don’t have to hold back growth. By proactively adopting automation that aligned with their values—speed, discretion, and customer care—they not only solved a problem but also strengthened their brand promise.

    Looking ahead, we’re working closely with the MyMuse team to make this collaboration even stronger—continuously fine-tuning the solution to support their evolving needs and upcoming scale. With shared ownership and open feedback, this partnership is built for long-term impact.

    The Logistics Automation Platform for E-commerce

    Momentum Leader - G2 Users Most Likely To Recommend - G2 Best Results Mid-Market - G2
    . window.disableHubSpotCookieBanner = true; function killNative() { var n = document.getElementById("hs-eu-cookie-confirmation"); if (n && n.parentNode) { n.parentNode.removeChild(n); return true; } return false; } killNative(); if (window.MutationObserver) { var mo = new MutationObserver(function () { killNative(); }); mo.observe(document.documentElement, { childList: true, subtree: true }); setTimeout(function () { mo.disconnect(); }, 15000); } var COOKIE = "cp_cookie_consent"; var EU = ["at","be","bg","hr","cy","cz","dk","ee","fi","fr","de","gr","hu","ie","it","lv","lt","lu","mt","nl","pl","pt","ro","sk","si","es","se","gb","uk","is","li","no","ch"]; function readCookie(nm) { var m = document.cookie.match(new RegExp("(?:^|; )" + nm + "=([^;]*)")); return m ? decodeURIComponent(m[1]) : null; } function writeCookie(nm, val, days) { var d = new Date(); d.setTime(d.getTime() + (days * 864e5)); document.cookie = nm + "=" + encodeURIComponent(val) + ";expires=" + d.toUTCString() + ";path=/;SameSite=Lax" + (location.protocol === "https:" ? ";Secure" : ""); } function stored() { var raw = readCookie(COOKIE); if (!raw) return null; try { var o = JSON.parse(raw); if (typeof o.analytics === "boolean") return o; } catch (e) {} return null; } function apply(state, revoke) { window._hsp = window._hsp || []; window._hsp.push(["setHubSpotConsent", { analytics: !!state.analytics, advertisement: !!state.advertisement, functionality: !!state.functionality }]); if (revoke && !state.analytics && !state.advertisement && !state.functionality) { window._hsp.push(["revokeCookieConsent"]); } window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: "cp_cookie_consent", cp_consent_analytics: !!state.analytics, cp_consent_advertisement: !!state.advertisement, cp_consent_functionality: !!state.functionality }); document.documentElement.setAttribute("data-cp-consent", "set"); } function inScope(banner) { if (banner.getAttribute("data-scope") !== "eu_only") return true; var geo = (document.body.getAttribute("data-geo_location") || "").toLowerCase(); if (!geo) return true; return EU.indexOf(geo) !== -1; } function init(banner) { var days = parseInt(banner.getAttribute("data-days"), 10) || 180; var prefs = banner.querySelector("[data-cpcb-prefs]"); var compact = banner.querySelector('[data-cpcb-actions="compact"]'); var expanded = banner.querySelector('[data-cpcb-actions="expanded"]'); var toggles = banner.querySelectorAll("[data-cpcb-toggle]"); function show() { banner.hidden = false; requestAnimationFrame(function () { banner.classList.add("is-visible"); }); } function hide() { banner.classList.remove("is-visible"); setTimeout(function () { banner.hidden = true; }, 300); } function collapse() { if (!prefs) return; prefs.hidden = true; if (expanded) expanded.hidden = true; if (compact) compact.hidden = false; } function expand() { if (!prefs) return; prefs.hidden = false; if (compact) compact.hidden = true; if (expanded) expanded.hidden = false; } function paint(state) { Array.prototype.forEach.call(toggles, function (t) { var key = t.getAttribute("data-cpcb-toggle"); if (key === "necessary") { t.setAttribute("aria-checked", "true"); return; } t.setAttribute("aria-checked", state[key] ? "true" : "false"); }); } function fromToggles() { var state = { analytics: false, advertisement: false, functionality: false }; Array.prototype.forEach.call(toggles, function (t) { var key = t.getAttribute("data-cpcb-toggle"); if (key in state) state[key] = t.getAttribute("aria-checked") === "true"; }); return state; } function commit(state, revoke) { writeCookie(COOKIE, JSON.stringify({ analytics: !!state.analytics, advertisement: !!state.advertisement, functionality: !!state.functionality, v: 1, ts: Date.now() }), days); apply(state, revoke); hide(); } Array.prototype.forEach.call(toggles, function (t) { if (t.disabled) return; t.addEventListener("click", function () { t.setAttribute("aria-checked", t.getAttribute("aria-checked") === "true" ? "false" : "true"); }); }); banner.addEventListener("click", function (e) { if (!e.target || !e.target.closest) return; var btn = e.target.closest("[data-cpcb-action]"); if (!btn) return; var action = btn.getAttribute("data-cpcb-action"); if (action === "customise") { expand(); return; } if (action === "accept") { commit({ analytics: true, advertisement: true, functionality: true }, false); return; } if (action === "reject") { commit({ analytics: false, advertisement: false, functionality: false }, true); return; } if (action === "save") { commit(fromToggles(), true); return; } }); var existing = stored(); if (existing) { apply(existing, false); paint(existing); collapse(); } else if (!inScope(banner)) { // Out of the consent-required region: implied consent, banner never shown. commitSilently(); } else { collapse(); show(); } function commitSilently() { var all = { analytics: true, advertisement: true, functionality: true }; writeCookie(COOKIE, JSON.stringify({ analytics: true, advertisement: true, functionality: true, v: 1, ts: Date.now(), implied: true }), days); apply(all, false); } // Public re-open hook for a footer "Cookie settings" link. window.cpCookieBanner = window.cpCookieBanner || {}; window.cpCookieBanner.open = function () { var s = stored() || { analytics: false, advertisement: false, functionality: false }; paint(s); expand(); show(); }; } function boot() { var banners = document.querySelectorAll("[data-cpcb]"); if (!banners.length) return; init(banners[0]); document.addEventListener("click", function (e) { if (!e.target || !e.target.closest) return; var trigger = e.target.closest("[data-cp-cookie-settings]"); if (!trigger) return; e.preventDefault(); if (window.cpCookieBanner && window.cpCookieBanner.open) window.cpCookieBanner.open(); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", boot); } else { boot(); } })();