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

 

Privacy Policy

 

We, Felurian Technology Private Limited (hereby referred to as “We,” “Us,” “Our,” and “Company”), recognize the importance of protecting data privacy rights. We are the owners of the website www.clickpost.ai (“Website”), and the web-based applications named ClickPost and ClickPost Returns Plus (collectively “Platform”). The Platform offers a range of functions like shipment tracking, EDD, multi-carrier shipping, NDR and Returns management, COD reconciliation, and logistics automation (collectively “Services”) for its customers (“User,” “You,” and “Your”). For an interrupted flow of Services, the Platform will collect and manage information about you with your permission under this Privacy Policy. 

We are committed to protecting personal data (“Personal Data”) collected on this Platform. This Privacy Policy details how your Personal Data is collected, stored, and used by us. Please read this Privacy Policy carefully.

By using this Website and/or Platform in any way, namely browsing, purchasing, and/or using its Services, You expressly give us consent to use your Personal Data as per this Privacy Policy. If you do not agree with this Privacy Policy, please do not share Personal Data and do not use this Website and/or Platform. If you wish to withdraw consent at any given time, please reach out to us at security@clickpost.in

 

1) Personal Data Collection

For this Privacy Policy, Personal Data is defined as ‘any information that can be used to identify a person.’ This includes but is not limited to first and last names, Email IDs, contact numbers, and physical and billing addresses. 

We collect Personal Data to provide you with a seamless browsing and user experience, to share information about your requested services like tracking information and order updates, and to notify you about product updates and launches.

 

1.1. When We Collect Personal Data

We collect Personal Data when You:

  1. Create an account with the Platform.

  2. Book a demo on the Platform, reach out to us on live chat, or mail us at our email address.

  3. Make an online purchase through the Platform.

  4. Request customer or onboarding support.

  5. Post a review or any other user content on the Platform.

  6. Link any third-party account to Your account.

  7. Apply for a job through the Platform.

  8. Access social media accounts run by us on sites like Meta, Instagram, Youtube, X, and Linkedin.

1.1.a What We Collect and Why

Who

What we may collect

How and why we use it

Visitor

  • Your location
  • How you behave on the Website (pages you land on, time spent, and similar)
  • Device details (model, operating system, and similar)
  • Cookie and web beacon data
  • Name, email ID, and contact number, when you book a demo or contact us

To analyse your behaviour and improve your interactions with the Website, and to respond to your requests.

 

Customer

  • Name and email ID of the business representative who signs up for the Services on your behalf

To register you for and provide the Services.

If you give us your consent, we may send you newsletters and emails about our products and services.

User

  • Name and email ID
  • How you use the Platform and its features
  • Device details (model, operating system, and similar)
  • Cookie and web beacon data

To provide the Services and to send you emails about changes or updates to the Services you use.

If you give us your consent, we may send you newsletters and emails about our products and services.

 

1.2. Website Analytics

This Privacy Policy also adheres to the data we collect from unregistered users to gauge browsing habits, interest, and page views, to ensure a smooth and satisfactory Website experience.

 

1.3. How We Use Your Personal Data

We use your Personal Data to continually provide the services requested by you and to help us support our business functions. These include shipping information, customer support, API features, internal record-keeping, marketing, authentication, fraud detection, and legal purposes.

Some examples of how we may use your Personal Data:

  1. To customize your user experience.

  2. To provide services and fulfill your requests.

  3. To register your accounts.

  4. To share information and news about our products, services, and offers.

  5. To send tracking and shipping notifications to you and your users. 

  6. To improve the Platform.

 

1.4. Data Retention

Your Personal Data will be retained and used by us for as long as we offer our Services to you. We may also retain said information for legal purposes, to resolve disputes, and to uphold and enforce our agreements.

 

1.5. Accuracy of Personal Data

The user is solely responsible for sharing accurate, truthful, and complete Personal Data with us and other third parties. By representing a third party, the user expressly agrees to the following:

  1. She/he is authorized to share Personal Data on behalf of a third party.

  2. She/he has prior written consent electing them to be the chosen representative for the third party.

In these given circumstances, the Company is not bound to verify the authenticity of the user. The user hereby agrees to adhere to the terms and conditions stated within this Privacy Policy.

 

2) Cookies, Beacons, Tags and Scripts

Use cookies to tailor your Website experience, simplify logins, and secure the integrity of the Website. We use cookies, web beacons, tags, and scripts that collect your Personal Data to provide a personalized experience. Such data may also be shared with third parties, like Google Analytics, to measure page performance, average time spent, impressions, clicks, and the like. For more information, please read our detailed Cookie Policy, /cookie-policy. If you don’t wish to reveal any personal information while browsing, please disable cookies from your browser or do not visit the Website.

 

3) Security

We believe in keeping data secure and to that end have implemented encryption mechanisms, access control, 2-factor authentication, and security and monitoring software to protect against data breaches. While we strive for the highest data security standards, no security system is impenetrable. We cannot guarantee the security of the Personal Data shared with us through our Platform. 

 

4) Disclosure of Your Personal Data

We do not sell or rent Personal Data to any third parties. We only disclose Personal Data to third parties with your prior consent. 

 

a) Service Providers and Vendors

We may share your Personal Data with the service providers and vendors related to this Platform to provide, manage, and improve our services. These may be, shipping carriers, payment gateways, financial institutions, and other partners. All such service providers are required to strictly adhere to the confidentiality restrictions stated in this Privacy Policy.

  1. Google User Data

    Apex's use and transfer of information received from Google APIs to any other application will adhere to the , including the Limited Use requirements.

b) Affiliates

We may disclose your Personal Data with our affiliates to help them address queries and provide feedback.

 

c) Mergers and Acquisitions

We may share your Personal Data in the event of a merger, acquisition, or sale where the whole or part of the Platform is transferred to another entity. 

 

d) Legal and Regulatory Authorities

We may share and/or preserve your Personal Data for legal purposes, namely, to execute the rules prescribed by this Privacy Policy, to protect the rights, safety, and property of the Company, and to obey the governing bodies and laws.

 

5) Your Rights

As a data subject, you are entitled to the following rights:

  • Right to be informed
  • Right of access
  • Right to rectification / correction
  • Right to be forgotten (erasure)
  • Right to restrict processing
  • Right to data portability
  • Right to object to processing
  • Right in relation to automated decision-making and profiling
  • Right to correction
  • Right to withdraw consent

You may exercise these rights by emailing us at security@clickpost.in. All such requests will be handled within a reasonable time. For certain requests, we may ask you to complete a Personal Data form or provide additional information to verify your identity.

 

6) Privacy Controls and Protections

Your account information is protected by the password you create at the time of registration. Please keep this information confidential. By losing your password you risk losing control over your Personal Data. In such an event, change your password immediately and notify us at security@clickpost.in. You may change all your account information at any time, except the Email ID. If you wish to change your Email ID, please write to us at support@clickpost.in

 

7) Third-Party Links

While visiting our website you may encounter links that redirect you to third-party sites/applications/platforms. Please be informed that you may access these links at your own risk. We are not responsible for protecting your Personal Data on said sites.  data pilferage that occurs outside the purview of our website.

 

8) How to Unsubscribe or Opt-Out of Direct Communication

We regularly communicate with you to relay delivery information, analytics reports, product updates and launches, and industry news. If you no longer wish to receive these messages, please click on ‘Unsubscribe’ at the bottom of the notification emails or reach out to us at support@clickpost.in

 

9) Data Protection Laws, GDPR Compliance, and UK Privacy Laws

We stringently comply with all global data protection laws to protect the integrity of the Personal Data shared by our users. These also include the data protection laws applicable to the European Union (EU) and the United Kingdom, namely the EU’s General Data Protection Regulation, the Directive on Privacy and Electronic Communications, and the UK Data Protection Act 2018, the UK General Data Protection Regulation. To gain a detailed understanding, please carefully read through our GDPR Compliance Policy.

For personal data processed through the ClickPost platform on behalf of our customers, the relevant customer acts as the data controller and ClickPost acts as its data processor.

Our EU GDPR Representative is:

IT.LAW GmbH is ClickPost’s representative in the European Union.

  • Represented company: Felurian Technology Private Limited, doing business as ClickPost

  • Representative’s address: Colmantstraße 15, 53115 Bonn, Germany

  • Contact email: art-27-rep-clickpost@it.law

Our UK GDPR Representative is:

Rickert Services Ltd UK is ClickPost’s representative in the United Kingdom.

  • Represented company: Felurian Technology Private Limited, doing business as ClickPost

  • Representative’s address: PO Box 1487, Peterborough, PE1 9XX, United Kingdom

  • Contact email: art-27-rep-clickpost@rickert-services.uk 

 

10) Laws Governing this Privacy Policy

This Privacy Policy is governed by the rules and laws of the Republic of India.

 

11) Privacy of Children’s Data

We are devoted to protecting children’s privacy online. We never deliberately collect the Personal Data of children below the age of 18 without the prior permission of his/her legal guardian. If such data is unwittingly collected, we will remove it from our records. If a child’s legal heir wishes to remove the child’s Personal Data from our Platform, they may email us at security@clickpost.in

 

12) Confidentiality

By using the Platform you agree to never disclose anything that we may deem confidential, such as information about our services, products, property, metrics, and resources, without obtaining our prior written consent.

 

13) Changes to this Privacy Policy

We may make changes to this Privacy Policy periodically. We will notify you of the updated policy by posting it on our Website. The date of the last update will be reflected at the top right corner of this page. The changes, if any, will be in effect from the same date. By continuing to use our Platform, you agree to be bound by our Privacy Policy.

 

14) Contact Us

If you have any questions or concerns about this Privacy Policy, please reach out to us at security@clickpost.in.

Data Protection Officer
Our Data Protection Officer can be contacted regarding any questions, concerns, or requests relating to the processing of your Personal Data or the exercise of your data protection rights.
Data Protection Officer: Mohd Bilal Khan
Email: bilal.khan@clickpost.in

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