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 >

Pilgrim Boosts Logistics Efficiency and CX With ClickPost

Pilgrim Boosts Logistics Efficiency and CX With ClickPost

Manjusha Pal
By Manjusha Pal

Ready to ship smarter? Talk to our logistics experts.

Trusted by 600+ brands

In this blog

    The Rise of Pilgrim and the Obstacles Behind the Scenes

    Pilgrim, a rapidly growing online-first beauty and personal care brand, has made a name for itself by offering premium self-care products. With a digital-first approach, the brand has quickly built a loyal customer base, driven by innovation, quality, and a commitment to customer satisfaction. 

    As the business expanded and started handling over 200k+ shipments a month, Pilgrim faced certain roadblocks in managing logistics at scale. Tracking shipments across multiple courier partners became a logistical challenge. To continue delivering the seamless service their customers expected, Pilgrim realized that they needed a solution that could bring visibility, streamline communication, and help scale their logistics seamlessly.

    To better understand how Pilgrim tackled these challenges, we sat down with Anirudh Likhite, the VP of Supply Chain and Procurement at Pilgrim. In our conversation, he shared the journey of how Pilgrim’s partnership with ClickPost began and how the collaboration helped them optimize their supply chain operations. 

    Together, they were able to turn logistics challenges into opportunities, transforming Pilgrim’s operations into a well-oiled machine that ensures a smooth, efficient delivery process. 

    The Operational Challenges Pilgrim Needed to Overcome

    Like many fast-growing brands, the team found themselves dealing with complexities that hindered their ability to deliver the seamless experience their customers deserved. 

    1. Limited Shipment Visibility

    For high-volume D2C operations, tracking order status across multiple touchpoints becomes increasingly complex. 

    “It’s very difficult to know what exactly is happening at the ground level, for our customers to know where their orders are, at different points in time,â€� notes Pilgrim's innovative VP of Supply Chain. 

    Pilgrim needed a way to have visibility into every step of the delivery journey, from dispatch to delivery.

    2. High Customer Query-to-Order Ratio

    Pilgrim faced a growing challenge in handling customer queries. Pilgrim needed a solution that could not only handle these inquiries but also proactively inform customers about their order status, reducing uncertainty and building trust. 

    3. The Need for Supply Chain Excellence

    As Pilgrim's D2C operations grew rapidly, the brand needed a logistics system that could scale with its success. With significant order volumes and a complex supply chain, Pilgrim realized that it needed to invest in a solution that would optimize operations at every stage. 

    Anirudh emphasizes, “As a brand that is online-first you know, driving D2C in a big way that’s doing a significant number of orders a month.�

     

    4.  Fragmented Courier Coordination

    Managing multiple courier partners meant juggling different SLAs, performance metrics, and reporting systems. Pilgrim was in search of a centralized platform that could bring all courier partners onto the same page, making coordination easier and helping the team stay on top of performance consistently.

    How Pilgrim Found the Right Partner in ClickPost

    With increasing order volumes and a diverse set of courier partners, Pilgrim realized they needed a more cohesive and efficient way to handle their logistics. The team knew that to continue delivering the quality experience they were committed to, they needed a system that could provide better visibility and improve communication across the supply chain.

    That’s when they began exploring ClickPost, looking for a partner that could support their growing needs. 

    As Anirudh Likhite, the VP of Supply Chain and Procurement, puts it, “My association with Clickpost began, you know, a few years ago. So it’s been a long and really strong partnership and association, that I’ve had with ClickPost.â€� 

    Working Together to Bring Clarity to Pilgrim’s Logistics

    The journey together wasn’t about turning things around overnight but about evolving together to create a system that would support Pilgrim’s vision for growth while ensuring that every customer interaction remained seamless.

    1. Real-Time Tracking and Visibility

    By implementing a unified tracking system, Pilgrim now has full visibility into every step of the delivery journey. This transparency allows the team to monitor shipments in real time, resolve issues proactively, and ensure that customers are always informed about their orders. 

    In Anirudh Likhite’s words, “And I think that’s where Clickpost really cuts through all of that chaos. With the advent of ClickPost, our customer query to order ratio has been significantly controlled by better tracking and better visibility to our customers.â€� 

     

    2. Proactive Customer Communication

    Using the new system, Pilgrim can now automatically update customers at every stage of their order’s journey. This proactive communication has not only reduced the volume of customer inquiries but also built greater trust with customers. 

    Their VP of supply chain also adds, “Our communication to our customers is a lot stronger.�

     

     

    3. Streamlined Courier Coordination

    With the new system in place, Pilgrim and their courier partners are now truly on the same page. By having a centralized platform to monitor key performance metrics and delivery status, both teams can coordinate more effectively and align on expectations. This seamless collaboration ensures that everyone is working towards the same goal—reliable, on-time deliveries. 

    Anirudh Likhite explains, “Our coordination, and you know, our courier partners and us, speaking the same language, looking at the same metrics, the same numbers, is significantly, aligned.�

     

    4. Enhanced Operational Efficiency with an Intuitive User Interface

    One of the key factors that made the transition smoother for Pilgrim was the user-friendly interface of the new system. The platform's intuitive design meant that Pilgrim's team could easily adopt and integrate it into their daily workflow without needing extensive training. This ease of use helped the team quickly adapt to the new system, enabling them to focus on optimizing logistics and scaling their operations. 

    Anirudh Likhite endorses this by saying, “I think what I like about ClickPost is the easy user interface, the way anyone can easily understand and start using it.â€� 

     

    5. Comprehensive Analytics and Benchmarking

    Now, Pilgrim can keep an eye on their operations with real-time, actionable insights that enhance decision-making at the ground level. By leveraging the real-time insights, their team can make faster, data-driven decisions, helping them move closer to their goal of streamlined logistics and an exceptional customer experience.

    Key Takeaways: What Pilgrim’s Journey Taught Us

    Pilgrim’s collaboration with ClickPost has yielded valuable insights that are key to scaling operations in the D2C space:

     

    • End-to-end visibility drives better decision-making and improves customer trust.

    • Real-time updates and proactive communication significantly reduce customer inquiries.

    • Streamlined coordination with courier partners ensures smoother operations and quicker resolutions.

    • Stronger coordination with courier partners leads to faster deliveries and better overall service.

    A Shared Vision for Seamless Growth

    As Pilgrim’s logistics operations grew, they needed a solution that would allow them to manage both the big picture and the day-to-day details effectively. The goal wasn’t just about keeping things running smoothly—it was about creating a logistics process that could grow alongside the brand and adapt to new challenges as they arose.

    With a solid foundation in place, Pilgrim and ClickPost are now looking forward to carrying this momentum into the future, fostering continuous improvement, scaling efficiently, and ensuring that the logistics process remains aligned with the brand’s evolving needs as they continue to grow.

    As Anirudh Likhite described:

    “How I would describe Clickpost in a sentence would probably be - it lets us keep our eyes in the sky, while it keeps its ears to the ground. We know exactly what’s happening at the ground level. And that helps us look upwards, onwards, and drive towards our North Star metric.“ 

    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(); } })();