All systems operational
Integrations

Built for
your Shopify
stack.

Shipto is a Shopify-native app. Install in 60 seconds, connect your existing carriers, and pipe tracking events into your Klaviyo flows. No CSVs, no polling, no glue code.

What's connected.

— live today —
Native app

Shopify

E-commerce platform · App Bridge

Full OAuth flow, embedded admin app, App Proxy for your customer tracking page, and webhook subscriptions on fulfillment events — all automatic on install.

  • Fulfillment webhooks (create + update)
  • App Proxy — tracking page served on your storefront
  • Shopify GraphQL Admin API (orders, products)
  • GDPR-compliant data handling built in
DHL

DHL Express

Carrier · Webhook push

Unified Tracking API with webhook subscriptions. DHL pushes events to us in real time — no polling, no delay.

  • ·Real-time webhook delivery
  • ·Subscription validation challenge
  • ·Signature-verified payloads
USPS

USPS

Carrier · Webhook push

Subscriptions Tracking API v3.2 with OAuth2. USPS sends events the moment the package status changes.

  • ·OAuth2 client credentials
  • ·32-byte webhook secrets
  • ·ETag-based subscription management
K

Klaviyo

Email notifications · Events API

Add your Klaviyo API key and every tracking milestone fires as a custom metric into your existing flows. No new audience to manage — your Klaviyo segments still apply.

  • Shipment Created metric
  • In Transit metric
  • Expected Delivery metric
  • Delivered metric
  • Exception metric
Architecture

Push, not poll.

Carriers push events to Shipto the moment they happen. We validate the signature, normalize the status, persist the event, and fire into Klaviyo — asynchronously, via SQS.

01
DHL or USPS sends a webhook
Signed payload arrives at our carrier endpoint.
02
We validate + normalize
Signature verified, carrier dialect translated to a unified status.
03
Klaviyo metric fires
Your flows trigger. Customer gets your email, not the carrier email.
POST /webhooks/carrier/dhl
{
  "event":     "shipment.delivered",
  "id":        "shp_9F2014",
  "tracking":  "1234567890",
  "carrier":   "dhl",
  "status":    "delivered",
  "location": {
    "city":    "New York",
    "country": "US"
  },
  "signature": "v1=8c4b…"
}
→ normalized → TrackingStatus::delivered → Klaviyo metric fires
On the roadmap

More carriers coming.

The carrier registry is pluggable by design. Each new carrier is an implementation of the same interface — same webhook validation, same event normalization, same Klaviyo pipeline.

FE
Planned
FedEx
UP
Planned
UPS
RO
Planned
Royal Mail
CA
Planned
Canada Post

Need a specific carrier now?

Request it →

Using a carrier or tool
not listed here?

The integration layer is built to be extensible. If your carrier has a webhook API, it can be wired in. Tell us what you ship with.