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 */
});
});
})();
Four things a multi-carrier platform has to get right
The core capabilities that matter most for routing, labels, service levels, and visibility across every carrier you ship with
Automated carrier selection
Multi-carrier shipping software evaluates carriers in real-time based on pre-defined SLAs to select the most appropriate shipping option per order. Selection rules can include cost thresholds, delivery promises, geographic coverage, or SLA adherence.
Use caseAn online retailer dynamically routes domestic shipments to regional carriers for cost efficiency, while reserving premium carriers for express delivery.
Business impactReduced shipping spend, improved on-time delivery performance, and greater flexibility during peak demand.
Unified and automated label generation
The platform generates compliant shipping labels, across multiple carriers and countries, maintaining regulatory standards and reducing manual work.
Use caseA brand shipping to B2B distributors and marketplaces automates bulk label generation saving 3 hours of manual work.
Business impactLower manual processing time, reduced errors, and faster dispatches.
End-to-end shipment visibility & tracking
Multi-carrier systems consolidate tracking events into a single dashboard, giving operational teams and customers consistent shipment status regardless of carrier.
Use caseAn e-commerce brand integrates real-time tracking updates into its post-purchase communication.
Business impact60% lesser customer service inquiries, improved delivery transparency, and higher customer satisfaction.
Carrier performance analytics & optimization
The platform collects data across carriers to analyze delivery times, cost per shipment, service-level adherence, and claims frequency. Insights inform carrier negotiation and routing strategies.
Use caseA logistics manager evaluates lane performance and adjusts allocation to improve SLA compliance.
Business impactData-driven carrier management, stronger procurement leverage, and measurable logistics ROI.
Why multi-carrier setup
What to expect when you move from single to multi-carrier operations
One carrier is one point of failure. ClickPost turns a fragmented set of carrier portals into a single, intelligent shipping layer, built around cost, speed, and resilience.
Lower your
shipping costs
Compare rates and service levels across every carrier per order, then allocate to the most cost-effective option that still hits the delivery promise.
22%average savings on
logistics costs
Improve delivery
performance
AI scores each order on serviceability, pincode-level SLA, and carrier history, routing urgent shipments to the fastest reliable option automatically.
60%reduction in "where is
my order" queries
Run it all from one
dashboard
One panel and one API for parcel, B2B, quick commerce, and offline shipments. No more switching between carrier portals to book, track, or reconcile.
50m+monthly shipments orchestrated on ClickPost
Onboard carriers in
hours, not weeks
New carriers are onboarded fast, whether it's a national giant or a regional last-mile partner to help you gain ROI sooner.
24hrstypical time to add a
new carrier
Capabilities
Everything you need to ship across carriers, automated
Intelligent carrier allocation
ClickPost's ML engine evaluates every eligible carrier in real time and assigns each order to the best one, no manual rate comparison or portal-hopping.
Score by serviceability, pincode SLA, cost, and carrier history
Rule overrides for cut-offs, weight bands, and SLA commitments
Keep your own carrier contracts and negotiated rate cards
Unified labels, manifests &
customs docs
Generate standardized labels across every carrier from one place. AWBs are fetched automatically and documents stay compliant for domestic and cross-border shipping.
Auto-fetch AWBs and generate labels at manifestation
Consistent label format across carriers and services
Single or bulk order upload options
Real-time tracking and automated NDR management
A dual push-and-pull API keeps tracking accurate across every carrier, with branded customer notifications. When deliveries fail, ClickPost resolves them before they become RTOs.
Branded tracking page with WhatsApp, SMS, and email updates
NDR workflows to get accurate feedback and successful reattempts
Deduplicated tracking status across all couriers to reduce spam
Granular carrier performance analytics
One unified platform brings together every carrier, OMS, WMS, and ERP, and turns shipment data into carrier scorecards that sharpen allocation and negotiation over time.
Lane, zone, and carrier-level SLA, cost, and RTO reporting
Single integration to connect 600+ carriers and your stack
Custom reports as per your business needs
Estimate your savings
What could multi-carrier allocation save you?
Brands on ClickPost cut logistics cost about 22% through smarter allocation, then save again from fewer RTOs and less manual effort. Pick your profile, move the sliders, and watch the savings break down across all three levers.
50,000
₹65
18%
Modeled on ClickPost benchmarks: ~22% allocation savings, 40% fewer RTOs, reduced manual effort. Actual savings depend on your lanes, carriers, and SKU mix.
Estimated annual savings
₹0
against your current logistics spend of
₹0 a year
Smarter carrier allocation₹0
Fewer RTOs · 40% reduction₹0
Less manual effort & WISMO₹0
Use cases
Multi-carrier support for every way you ship
Rules, integrations, and 600+ carriers to strengthen your shipping profile, from D2C parcels to B2B freight
Tap any card to see how ClickPost solves it
01
D2C & ecommerce
Win every zone, every peak — without babysitting carrier portals.
See how
How ClickPost helps
AI rate-shops 600+ carriers per order by pincode SLA and cost, then layers branded tracking so support stays quiet through peak.
Carrier diversification and performance reporting improve resilience and service-level control.
Constraints & prerequisites
What to plan for before you adopt
Data quality requirements
Address, service-level, and product attributes need consistent inputs to support automation.
Carrier contract management
Contract rates and surcharge logic require ongoing maintenance for accuracy.
Integration ownership
Teams need clear accountability for APIs, data mapping, and exception handling.
Change management
Shipping rules and operational processes require stakeholder alignment across functions.
Customer voices
What logistics leaders say about ClickPost
Sankatmochan
Head of Supply Chain, Style Union
ClickPost has been with us since day one. From dynamic rule-based courier recommendation, auto pickup request, tracking exceptions and now automated courier bill verification, it has helped us scale with minimal people and maximum control.
Sankatmochan
Head of Supply Chain, Style Union
Subrat Dehury
DGM, Logistics Operations, HealthKart
ClickPost Darwin automated our B2B logistics end-to-end. Real-time booking, tracking, and PODs, with disputes resolved in 24–48 hours. At 15,000 dockets a month, the impact is huge.
Subrat Dehury
DGM, Logistics Operations, HealthKart
Madhusudan Bhutra
COO & CFO, The Face Shop
Really like ClickPost’s tech. One of the cleanest documentations and APIs I’ve seen. We were able to simply plug the logistics system into our ERP with minimal intervention.
Madhusudan Bhutra
COO & CFO, The Face Shop
Harinder S
Product Manager, Bestseller
The primary problem ClickPost solves is fragmentation. By unifying all shipment tracking, we no longer waste time toggling between different carrier portals. The automation capabilities have reduced manual intervention, making our logistics workflow much more organized and operationally efficient.
Harinder S
Product Manager, Bestseller
Ishani Trehan
Brand Specialist, Recode Studios
ClickPost makes it easy to manage multiple courier partners from one place, which really simplifies day-to-day operations. The real-time tracking is reliable and helps us stay updated without checking multiple courier websites. We've seen better delivery performance and a reduction in RTOs after using ClickPost.
Multi-carrier shipping software is a platform that connects your store to several carriers, such as USPS, UPS, FedEx, and DHL, and runs them from one place. Instead of a separate login for each carrier, you ship every order through one system. It picks a carrier for each order based on your rules, prints the label, and tracks the package to the door.
Brands use multiple carriers so no single carrier controls their cost, speed, or coverage. One carrier may be cheapest for light parcels, another faster to the West Coast, a regional carrier better in its home zone. Running several lets you match each order to the best fit, hold rates down, and keep shipping if one carrier has a service problem.
You likely need it when you ship with more than one carrier and switch between their websites to buy labels. Other signs: shipping costs climbing faster than orders, staff copying tracking numbers by hand, no single view of where packages are, and support buried in status questions. If any of these sound familiar, one platform will save hours and money.
It compares your carriers on live rate, delivery speed, and destination zone for each order, then assigns the one that fits your goal. You set the priority, such as lowest cost, fastest transit, or a set service level. When an order arrives, the software runs it against your rules and picks the carrier and label without anyone choosing by hand.
A single-carrier setup is simpler but ties your rates, speed, and coverage to one provider. Multi-carrier costs a little more to set up and gives you options: cheaper rates through competition, a backup when a carrier fails, and better regional coverage. For most growing D2C brands past a few hundred orders a month, multi-carrier pays back the setup quickly.
Look for the carriers and sales channels it supports, rate shopping across carriers, rule-based carrier selection, batch label printing, and address validation. Then check the post-purchase side: order tracking, delivery estimates, and returns. Finally, weigh the pricing model, integration effort, and support. The right mix depends on your order volume and which carriers you already use.
Most major platforms, including ClickPost, offer direct integrations with Shopify and WooCommerce, plus BigCommerce, Magento, and Amazon. A direct integration pulls orders in automatically and pushes tracking back to the store without custom code. Before you buy, confirm the integration is native rather than a workaround, and that it syncs order status both ways.
A delivery exception means the carrier hit a problem that delayed the package, such as a wrong address, a missed delivery, weather, or a package held at a facility. To resolve it, find the exception reason in your dashboard, fix the address or contact the carrier, and update the customer. Multi-carrier software flags these early so you act before the package returns.
When a carrier goes down in an area or misses a pickup, the software spots the failure and moves affected orders to a backup carrier using your rules. You set which carrier takes over for which zones or service levels ahead of time. This keeps orders moving during a service disruption instead of waiting on a stalled carrier.
Yes, for most brands past a few hundred orders a month. The savings come from rate shopping and fewer manual hours, not just volume. Even at a few thousand orders, picking the cheapest fit per order and cutting hand-keyed label work usually covers the cost. Below a few hundred orders, a single carrier plus a basic label tool may be enough.
91ÊÓƵ usually follows one of two models: a monthly fee based on order volume, or a per-shipment fee, and sometimes both. Mid-size brands often land in a tiered plan that scales with orders, with add-ons for tracking, returns, or premium support. Ask each vendor how pricing changes as you grow and whether carrier rates are included or brought by you.
ROI comes from three levers: lower shipping spend through rate shopping, fewer support tickets from better tracking, and staff hours saved on manual work. To size it, add the shipping savings per order across your volume, plus the labor you stop spending on labels and status replies. Most brands measure payback in months, not years. Run your own numbers in a savings calculator first.
A native Shopify or WooCommerce integration often connects in a day or less, since it uses a prebuilt app or plugin. Full setup, meaning adding carriers, building selection rules, and testing labels, usually takes a few days to a couple of weeks depending on how many carriers and rules you have. Enterprise setups with a WMS or OMS take longer.
Enterprise-grade platforms, including ClickPost, connect to common WMS and OMS systems through APIs or prebuilt connectors, so orders and shipment data flow without manual entry. Before choosing, give each vendor your exact WMS and OMS names and ask for a live integration or a customer running the same stack. Confirm the sync is two-way and handles your daily volume.
The three solve different problems. EasyPost is a developer-first shipping API you build on yourself. ShipBob is a third-party fulfillment provider that stores and ships your inventory. ClickPost is a multi-carrier shipping and post-purchase platform that adds carrier selection, branded tracking, delivery estimates, and returns on top of your carriers. Pick the API if you have engineers, the 3PL if you want outsourced fulfillment, and the platform if you want shipping and post-purchase in one place.
4.8
4.4
Ready to ship across 600+ carriers from one platform?
See ClickPost multi-carrier shipping software in action. Book a 15-minute personalized demo, we'll model your carriers, lanes, and savings