March 2026 Release Recap 🚀
Here's everything we shipped in the month of march:
🎯 Acquire & Grow
- Shopify Markets V2 is now live, bringing local pricing, currency, and product availability for all customer portal actions. Reach out to your CSM or support team to enable access if it isn’t already available. Learn more
- Bundle builder URL pre-selection (BYOB): You can now create bundle builder links with
purchaseOptionandsellingPlanIdquery params to load the BYOB page with a pre-selected purchase option and frequency. Useful for landing pages and social ads. Learn more - Control "Add to cart" behavior on bundle builder: Choose whether clicking "Add to cart" appends to the existing cart or clears it first. Helpful if you sell a single bundle and want to avoid duplicate subscription instances. Learn more
- Control order editing for preset bundle checkout: If you use a parent bundle SKU on checkout, you can now control whether the checkout order is edited to add child products at zero value (for inventory tracking) or kept as parent only. Learn more
🔁 Retention
- Upsell on Prepaid Subscriptions: You can now upsell prepaid subscribers in the customer portal. Includes new profile conditions (Is / Is not prepaid), full discount support across one-time and subscription, all recommendation types, and analytics tracking. Learn more
- Recover failed payments v2 campaign: Campaigns can now target subscribers across both in-recovery and post-dunning (paused or cancelled) states. Includes state-specific drawer texts (Update card, Update + resume, Update + reactivate), audience filters, and channel options. Learn more
- Enhanced conditions for Recover failed payments quick actions: Granular targeting now available across subscription, customer, and payment-based conditions (subscription value, payment failure code, available retry count, and more). Learn more
- Talk to Support treatment action in cancellation flows: If you use Siena or Gorgias chat widgets, you can now offer "Talk to support" as an alternate save action mapped to specific cancellation reasons. Learn more
- Combine cancellation offers with skip or delay treatments: A new Flows condition Is cancellation offer applied (any of) lets you pair an incentive (e.g. 10% off) with an order-level treatment (skip or delay next order) for stronger save experiences. Learn more
- Edit existing Streak programs: Extend milestones, add, remove, or replace rewards on existing Streak programs without recreating them. Handles both new and ongoing subscriptions. Learn more
- Cancellation save rate definition updated: Saves within the same clock hour are now merged into a single save (most recent stage takes attribution), reflecting subscriber behavior more accurately. Applied to historical data, with banners on relevant screens.
🌟 Customer Experience
- Custom duration intervals for Delay and Pause flows: You can now configure your own duration options for both Pause and Delay flows (no more hardcoded 7, 15, 30 days). The customer portal drawer experience has also been simplified to a single step.
- Cleaner Swap drawer: The same product or variant no longer appears as a swap option for itself, keeping swap choices relevant.
- Unlisted products in Customer Portal: Subscribers can now purchase unlisted products via Create Subscription and Upsell touchpoints. You also get a new preference to control unlisted product visibility across the customer portal.
- Automate product swaps across gift subscription orders: You can now automate product swaps across gift orders (e.g. Jasmine, then Rose, then Tulips across a 3-order gift program). Learn more
🛠️ Admin & Operations
- Upload banner images directly in Flow and Reward journeys: You can now directly upload banner images in Flow and Reward journeys, similar to Streaks banners. Learn more
- Last charged card visibility: The subscription admin page now shows the last charged date on each customer card. Also exposed via the API hub (
lastChargeDateon List payment methods and Read customer details endpoints). Learn more - Update shipping for inactive subscriptions: Update shipping and delivery price on paused or cancelled subscriptions from Admin without resuming first. Learn more
- Sync Shopify Collections from Loop admin: A new Products → Collections page lets you view all Shopify collections and manually sync the products mapped to them, fixing Smart Collections sync gaps across Upsell, Swap, Selling Plans, and more. Learn more
- Auto-clear subscription line item attributes: New auto-update preferences let you automatically clear line item attributes after subscription creation or for recurring orders, preventing promo-time attributes from leaking into 3PL fulfillment.
- Report export headers in bulk actions: Bulk action input now accepts both
Subscription ID/Customer ID(matching report exports) and the legacysubscription_id/customer_id. - Campaign and Quick action attribution in upsell reports: Product wise upsells and Product wise upsell revenue reports now publish the campaign or quick action name in the "Entity" column. Learn more
- Clearer campaign internal names: Duplicate campaign names now get auto-suffixed (
_1,_2, and so on) for easy identification. - Order Journey templates: A new flow template lets you automate a complete product sequence in one journey, with order-level product assignments, journey-wide conditions, and end-of-journey rules (loop or hold the last product). Learn more
⚙️ Platform & API Improvements
- Webhook Signature Verification: Every webhook now ships with an
X-Loop-Signatureheader (HMAC-SHA256) so you can verify payload authenticity and block spoofed requests. Docs include Node.js, Python, and Ruby samples. Learn more subscription/updatedwebhook now includes previous state: The payload now ships apreviousobject snapshot for line actions, discount actions, and policy updates, so you can detect exactly what changed without maintaining your own historical store. Learn more- Improvement in Klaviyo payment failed events: When a subscription is paused or cancelled due to hard decline behavior, the event payload now includes
$is_hard_declined: true, enabling targeted hard-decline email flows. Learn more - Copy Klaviyo-supported quick action key from Loop admin: While creating quick actions, you'll now see an auto-generated "Action key (Klaviyo)" field that you can copy directly into Klaviyo flows. No more multi-step lookups. Learn more