Notifications

Updated May 26, 20262 min read

Notifications are how Carriyo tells the customer what's happening to their shipment. Each one is triggered by a shipment status event: a parcel hits OUT_FOR_DELIVERY, the customer gets an email or SMS. A failed delivery triggers another notification. A confirmed delivery triggers a final confirmation.

The model

Three layers:

  • Trigger. A shipment, return, or order event that fires the notification. Most common: a shipment-status change such as OUT_FOR_DELIVERY, DELIVERED, FAILED_DELIVERY. Reason codes on failures (e.g. customer_unreachable) can target their own template variant.
  • Template. The message content. Per channel, per language. Email and SMS templates use Liquid to inject shipment data into the copy.
  • Gateway. The routing and sender config. Scoped most-specific first: per merchant → tenant default → Carriyo platform default.

Configured in CX Apps → Notifications (templates) and Settings → Notifications (gateways).

Channels

Email

The default channel. Goes from a configured sender domain (noreply@brand.com) once the domain is verified, or from a Carriyo-owned sender otherwise.

Sender-domain setup is at Settings → email domains. Verification is CNAME-only: the Dashboard issues the records, the client adds them to DNS, status updates when verification succeeds.

Delivery state for each message (delivered / bounced / undeliverable) is tracked and visible on the notifications report.

SMS

Per-country sender IDs. Sender-ID registration with the local telco regulator is handled by Carriyo's support team. For new countries or new sender IDs, raise a request rather than expecting to self-serve. SMS messages include short links (Carriyo-shortened) for the tracking and feedback URLs.

WhatsApp

Via WhatsApp Business. Each country needs a Meta-approved template namespace, registered offline through Carriyo's support team. Unlike email and SMS, WhatsApp doesn't use Liquid: content is passed as Meta template placeholder arrays against pre-approved templates.

Localization

Templates are stored per (channel, trigger, language). The language at send time comes from the customer's locale, falling back to the merchant's default language and ultimately to a designated default template.

Country also enters routing: triggers, sender IDs, and email senders are all configurable per country, so an order shipping to the US can use one sender + template variant, an order to the UK another.

Test mode and dedup

  • Test mode. When on, notifications route to a configured test-recipient list instead of real customers. Useful when rolling out new templates.
  • 24-hour deduplication. The same trigger to the same recipient within 24 hours is skipped. Carriers occasionally re-send statuses; this stops the customer getting two "out for delivery" notifications.

Reports and visibility

The full notification history per shipment is at Dashboard → Reports → Notifications: channel, trigger status, template used, recipient, delivery status, provider response, bounces. This is where to investigate "the customer didn't get the email". Most of the time it's a bounced address, not a Carriyo send failure.

How it fits with other modules