Skip to content

Automate email, SMS, push and WhatsApp journeys

A journey is a multi-step automation: a trigger, an ordered list of steps with delays, and suppression rules that keep it polite. Zubby’s recovery campaigns are journeys with sensible defaults; you can also build your own for post-purchase follow-up, replenishment, win-back, and more.

Anatomy of a journey

ElementPurpose
TriggerWhat enrolls a shopper. Seventeen are available:
  • Abandonment: cart abandoned, browse abandoned, checkout abandoned.
  • Product alerts: back in stock, price drop.
  • Orders: post purchase, first purchase (fires once, alongside post purchase), order shipped, order delivered, delivery delayed (in transit 7+ days with no delivery), replenishment due.
  • Lifecycle: winback, birthday, anniversary.
  • Reviews and loyalty: review left (from your reviews integration), points milestone (every 500 points), reward unlocked (the balance first reaches your cheapest active reward).
On WooCommerce, order shipped fires when the order is marked Completed; order delivered and delivery delayed need a shipment-tracking plugin that records ship and delivery dates.
StepA message send on one of four channels - email, SMS, web push, or WhatsApp - with a delay, a subject, a tone, and free-text instructions the AI grounds its copy on. WhatsApp steps use an approved template instead of free copy.
DelayWait before each step, specified in minutes (0 to 43,200 minutes, or 30 days, per step). Every step is scheduled from enrollment, not from the previous message. For a reminder on day 7 and another on day 21, enter 10,080 and 30,240 minutes. Quiet hours can defer a scheduled send until the configured window ends.
SuppressionPer-journey guardrails: require a known email, cap concurrent enrollments per shopper (default 1), and a re-entry window (default 72 hours) before the same shopper can enroll again.
Quiet hoursOptional do-not-disturb window (default 22:00–08:00 in a timezone you pick, off by default). This is one configured timezone, not automatic per-shopper local time. Sends that would land inside the window are pushed to when it ends.

Default sequences

Creating a journey seeds it with an editable default sequence for its trigger. The defaults are product settings, not cross-store performance evidence. Highlights:

  • Cart abandoned - a single email 30 minutes after abandonment; add later steps as you like.
  • Browse abandoned - one no-pressure email an hour after the visit, referencing the product they viewed.
  • Back in stock / price drop - an alert within minutes, plus one follow-up for shoppers who didn’t convert.
  • Post purchase - thank-you at 1 hour, review request at 7 days, replenishment nudge at 30 days.
  • Winback - soft return immediately, value reminder at 7 days, gentle incentive at 21 days (discount only on the last step, and only if you allow discounts).
  • Replenishment due - refill nudge when the consumable window hits, follow-up 3 days later.

Defaults are a starting point

Review the seeded timing, consent, channel, content, suppression, and exit conditions for your audience. Change one variable at a time and use store-specific evidence before expanding traffic.

Before you build

Journeys require Growth and a teammate with recovery access. SMS and WhatsApp also require Pro and connected sending accounts. Use a draft while checking event data and consent. Do not activate a delivered-order sequence on a store that only supplies dispatched status: those events mean different things.

Building a journey

  1. Open Dashboard → Journeys → New, name the journey, and pick a trigger. Start it as a draft - drafts never enroll shoppers, so you can review before going live.
  2. Edit the seeded steps: channel, delay, subject, tone, and instructions per step. Instructions are the grounding brief for the AI (“mention our 30-day returns, don’t offer discounts”) - be specific, because the copy is written fresh per shopper.
  3. Review suppression: keep require known email on, and enable quiet hours if your shoppers are in one dominant timezone. These settings are the difference between helpful and spammy.
  4. Activate, then run a controlled eligible profile through enrollment, delivery, exit, and attribution. A successful save or active badge does not prove a shopper entered or a channel accepted the message.

Channel notes

  • Email - sends via your connected mailbox with a platform fallback; see Cart & browse rescue.
  • SMS - requires a connected Twilio number and a known phone number, marketing consent, and Pro channel access; each message carries an opt-out link. Phone identity alone is not consent.
  • Web push - requires the shopper to have accepted push from the widget; expired subscriptions are skipped.
  • WhatsApp - requires a connected WhatsApp Business number; outside the 24-hour session window a pre-approved template is mandatory, so the step editor asks you to pick one.

When a step can’t deliver - missing phone, no push subscription, template not approved - it is skipped with a recorded reason, visible in the journey’s analytics, and the rest of the sequence continues.

Example: a reviewed replenishment reminder

This is a synthetic setup example, not a result claim. For a consumable with a verified 30-day use cycle, create a draft Post purchase journey. Set one email step to 43,200 minutes and instruct it to describe the product without a discount or expiry claim. Keep the email and consent checks on. After approval, use a controlled eligible test profile and order to confirm enrollment, scheduled time, delivery status, and the purchase exit. Check an unsubscribed profile stays suppressed. A saved journey does not prove the worker or sending provider is available.

Analytics

Every journey shows per-step performance - delivered, converted, and skip reasons - plus a per-channel summary. The Journeys page also surfaces bulk-fix recommendations (for example, switching SMS steps to email when no phone numbers exist, or pausing push steps with expired subscriptions) and deferred-demand panels for back-in-stock and price-drop subscriptions so you can spin up a journey where demand already exists.

If a journey stops progressing

Review the journey run, shopper eligibility, consent, suppression, connected channel, Notifications, and support team. Retry only after identifying the merchant-visible failure, then contact support with the store ID, journey ID, profile, and timestamp if it persists.

Missing something, or found an error on this page?

Contact support and include the URL of this page (/docs/recovery/journeys).