Post-purchase CX

Updated May 31, 20263 min read

Post-purchase CX is everything your customer sees after checkout: the tracking page, the email/SMS/WhatsApp updates, the feedback form, and the returns portal.

All of it reacts to the same shipment status updates Carriyo collects from your carriers. What you see in the Dashboard, the customer sees on their tracking page, and your systems see on the webhook. One source of truth, three audiences.

In the Dashboard: you configure branding, templates, languages, and domains under CX Apps and Settings. There is no API for branding, templates, or domains; these are Dashboard-only.

Via the API: you can read tracking data to embed it elsewhere. You can also subscribe to the same shipment events the CX apps react to. See Webhooks.

The three customer-facing apps

Each Carriyo merchant gets three apps the customer interacts with directly:

  • Tracking. Branded pages for shipments and for orders.
  • Feedback. A post-delivery rating and comment form.
  • Returns portal. Where the customer raises a return. The customer journey is here; the approval and refund workflow is in Returns.

Each app inherits from a central brand theme (logo, colors, fonts, customer-support contacts) and can override any part of it.

Brand, theme, and domain

Three things shape what the customer sees:

  • Brand theme. Colors, logos, typography, and customer-support contacts. The default for every app on the merchant.
  • App-level overrides. Each app can opt out of the central theme and use its own.
  • Domains. Every app is served from a default subdomain ({slug}.track.ordercx.com, with .feedback. and .return. variants), or from a custom domain such as track.brand.com.

Custom domains

Each custom domain needs two CNAME records:

  • One pointing the custom domain to point.ordercx.com.
  • One for AWS ACM SSL certificate validation.

The Dashboard generates both values. Add them to your DNS, and once validation succeeds, the domain becomes selectable in each app's settings. Configure at Settings → custom domains.

Languages and countries

Every editable field on a CX app supports localization. You set a default value, then add per-locale overrides: by language, by country, or by both. For example, ar_AE for Arabic in UAE and ar_SA for Arabic in KSA can carry different content.

At view time, the customer's locale selects the variant. If no match exists, the customer sees the default.

Customer-support contacts are typically scoped per country. A customer in UAE sees the UAE support number; a customer in KSA sees the KSA one.

Multi-brand tenants

Every CX setting is scoped per merchant within a tenant. A tenant with multiple brands gets one brand theme per merchant, one set of apps per merchant, and one domain per merchant. Customers of one merchant never see another merchant's branding or contacts.

Premium features

Some CX features require a premium Tracking subscription. When a feature is locked, the Dashboard shows that directly; you don't need to check entitlements separately during integration.

How it fits with other modules

  • Shipping. Every notification, tracking page update, and feedback prompt is triggered by an event on a shipment. CX is what your customer sees; Shipping is what generates the events.
  • Returns. The returns portal is where the customer raises a return; the approval, refund, and reverse-logistics flow is handled in Returns.
  • Webhooks. Your own systems can react to the same shipment events the CX apps do, in parallel.
  • Account model. Themes, domains, and templates are scoped per merchant within a tenant.