Back to insights  ›  Operations

Webhooks vs Polling: Building Real-Time Shipment Event Pipelines

Polling carrier APIs wastes resources and delays updates. Webhooks push shipment events as they happen. Here is how to design an event-driven visibility pipeline.

By: MGS Team·
Nov 14, 2025Reading time: 5 min
·Updated: Jul 13, 2026
Photo: Houseblend

Out-of-the-box ERP integrations with carrier networks tend to follow the same pattern: a tracking number gets stored at fulfillment, and from that point forward, status updates require either a manual click to the carrier's website or a scheduled batch job that queries the carrier API at fixed intervals. Both approaches share the same fundamental limitation — the system learns about a shipment event after the fact, and the delay between event and knowledge can be measured in hours rather than seconds.

The operational cost of that delay compounds across a shipper's entire portfolio. Exceptions that could have triggered an automated response at 9 a.m. sit undetected until the overnight batch runs. Customer inquiries arrive before internal teams have visibility into the same event the customer is calling about. Carrier SLA disputes become harder to pursue when the timestamp evidence lives in the carrier's system rather than your own.

Why Polling Is the Wrong Default

Polling carrier APIs involves sending a request, receiving a response, and discarding it if nothing has changed — then repeating the cycle at whatever interval the integration was configured for. At modest scale, this is manageable. At the scale of a mid-size logistics operation, polling generates substantial API call volume with an extremely low signal-to-noise ratio. Most responses will report no change.

The problem is structural, not just a matter of tuning the interval. More frequent polling reduces the latency between event and detection, but at the cost of API call consumption and processing overhead. Less frequent polling is cheaper but widens the detection window. Neither setting produces what operations teams actually want: immediate notification when something happens.

Carrier API rate limits create a further constraint. Polling at high frequency against multiple carriers simultaneously runs into per-carrier limits that were not designed with aggressive polling in mind. The architecture that looks simple in a development environment becomes operationally fragile at production scale.

The Event-Driven Alternative

Webhooks invert the data flow. Rather than the consuming system asking "has anything changed?", the carrier or tracking platform pushes a notification at the moment an event is recorded. The consuming system only processes data when there is data to process.

For shipment tracking specifically, this means that a delivery confirmation, an exception flag, or a delay notification arrives in the ERP or visibility platform within seconds or minutes of the carrier recording it — not at the next scheduled batch interval. Customer service teams get information before customers do, or at the same moment, rather than systematically after.

From a resource perspective, the difference is meaningful. An event-driven architecture consumes API bandwidth proportional to actual event volume rather than polling frequency. A quiet day generates fewer notifications than a peak shipping day, and the system scales naturally with actual activity.

Designing a Reliable Webhook Pipeline

Webhook reliability introduces its own engineering requirements. Carrier-pushed events arrive asynchronously and without guaranteed ordering. The same event may arrive multiple times if the carrier's retry logic fires after a temporary network failure on the receiving end. The consuming system needs to handle both conditions.

Idempotency is the key design principle. Each incoming event should carry a unique identifier, and the receiving system should check whether that identifier has already been processed before acting on it. Duplicate events should be silently discarded rather than generating duplicate records.

Ordering cannot be assumed. A "delivered" event may arrive in the message queue before the "out for delivery" event that preceded it, depending on network conditions and retry behaviour. The data model needs to accommodate out-of-sequence arrival — recording events with their carrier-reported timestamps rather than their arrival timestamps, and allowing the display layer to sort events into the correct chronological sequence.

Exception Handling as a First-Class Use Case

The most operationally valuable application of real-time webhook integration is exception handling. Delivery exceptions, address validation failures, customs holds, and weather-related delays all represent conditions where early notification allows a meaningful operational response — reshipment initiation, customer communication, carrier escalation — that becomes either impossible or expensive if discovered hours later.

Proactive exception notification transforms the customer experience asymmetrically. A customer who receives an automated message explaining a delay before they notice the package is late has a fundamentally different experience from one who calls a customer service line to discover information the agent is simultaneously learning for the first time.

The Control Tower Perspective

For operations teams managing shipments across multiple carriers and modes, the architectural question is not just about replacing polling with webhooks for a single carrier integration. It is about building an event ingestion layer that can receive, normalise, and route events from disparate sources — carrier webhooks, tracking platform notifications, customs status APIs — into a consistent internal representation.

The normalisation step is where multi-carrier visibility platforms add durable value. Carrier event schemas differ enough that a "delivered" event from one carrier arrives with different field names, timestamp formats, and status codes than the same logical event from another. Normalising these into a consistent milestone model before they reach the ERP or the customer-facing interface is what makes the event-driven architecture actually useful rather than just faster. Real-time data that requires manual interpretation per carrier defeats much of the purpose.

Source: Houseblend