PR Scan — 2026-03-18
PRs reviewed: 64 merged in the last 7 days Features flagged: 7 (2 complete, 5 in progress/uncertain) PRs skipped: 57Complete Features (KB changes proposed)
Send Campaigns to Multiple Segments
- Change Type: New Feature
- PRs: #17215, #17227, #17354, #17364
- Affected Area: Campaigns > Recipients
- Summary: Merchants can now select multiple segments when choosing recipients for an email or SMS campaign. Contacts appearing in more than one selected segment will only receive the campaign once. A new segment contacts caching strategy powers this feature behind the scenes.
- KB Changes:
docs/learn/email-campaigns/send-an-email-campaign.mdx— Updated Recipients section to reflect multi-segment selectiondocs/learn/sms-campaigns/send-a-text-campaign.mdx— Updated Recipients section to reflect multi-segment selection
- Open Questions: Screenshots in the KB still show single-segment selection UI. New screenshots should be captured showing the multi-segment picker.
Date Field for Displays
- Change Type: New Feature
- PRs: #17404, #17406, #17407, #17448, #17478, #17498, #17366
- Affected Area: Displays > Form Fields
- Summary: A new “Date Field” form element is now available in the display editor. Merchants can collect dates (e.g., birthdays, anniversaries) from contacts with configurable date formats and custom property names. Works in both single-step and multi-step displays. Date submissions appear on the individual contact page. The feature flag has been removed — this is now GA.
- KB Changes:
docs/learn/displays/form-fields-and-elements.mdx— Added “Date Field” accordion entry to the Form Fields section
- Open Questions: None — feature is complete and GA.
In Progress / Uncertain Features (changelog only, no KB changes)
Real Link (Branded Short Links)
- Status: In Progress
- Change Type: New Feature
- PRs: #17372, #17373, #17374 (3 of 5 PRs in the stack)
- Summary: New “Real Link” feature that lets merchants set up branded short URLs for their SMS links (e.g., links show the store’s domain instead of a generic Privy short link). Includes a new settings page at Settings > Text > Real Link. Backend, frontend, and migration are merged. Two more PRs remain in the stack (sending domain cleanup + drop sending domain channel).
- What’s Missing: PRs 4/5 and 5/5 not yet merged. May also need docs for the settings page once fully shipped.
Flow Trigger Filters / Audience Conditions
- Status: In Progress
- Change Type: New Feature
- PRs: #17421, #17423, #17416
- Summary: Merchants will be able to add audience conditions (trigger filters) directly on flow triggers — filtering who enters a flow based on contact properties. Currently behind a LaunchDarkly feature flag.
- What’s Missing: Feature flag still active. Not yet GA.
Back in Stock Subscriptions on Contact Page
- Status: In Progress
- Change Type: New Feature
- PRs: #17481, #17499, #17479
- Summary: Back in Stock (BIS) subscriptions are now visible on individual contact pages, showing which products a contact has signed up to be notified about, including product and variant names.
- What’s Missing: Appears complete from the PRs, but unclear if this is behind a feature flag. Marking as in progress to be safe.
Dynamic Product Block Enhancements (Time Period + Collection Scope)
- Status: In Progress
- Change Type: New Feature
- PRs: #17413, #17427, #17445, #17390, #17457, #17409
- Summary: The “Recently Added” product recommendation in flow emails can now be scoped by time period (e.g., last 7 days) and filtered by Shopify collection. New UI selectors for both. Behind a feature flag.
- What’s Missing: Feature flag still active. Not yet GA.
Purchase Follow-Up Variant Filter
- Status: Uncertain
- Change Type: New Feature
- PRs: #17468, #17469
- Summary: Purchase follow-up flows can now be filtered by specific product variant IDs, so merchants can trigger different follow-up sequences based on which exact variant was purchased.
- What’s Missing: Unclear if this is behind a feature flag or GA. Both backend and frontend PRs are merged.
Skipped PRs
- #17526 (ci): revive stale PR automation — CI config only
- #17525 fix for invalid prepared statement during segment refresh — Bug fix, internal query
- #17520 Add grill me skill — Internal Claude skill
- #17510 Fix SMS URLs disappearing in flow SMS preview nodes — Bug fix restoring existing behavior
- #17508 [FLO-606] fix loop per cursor — Bug fix, sparse description
- #17507 Clean up unused
dispatch— Refactor, no user impact - #17500 [PRC-129] clarify pricing changes for new plans — Internal billing email wording
- #17495 increase timeouts in segment_templates refresh_at index migration — Migration timeout, internal
- #17480 ENG-5556: Update strong_migrations to 2.5.2 — Dependency bump
- #17475 Enhance reset_staging script — Internal tooling
- #17474 Remove backup github workflow — CI config
- #17473 Try speeding up standardrb in CI — CI config
- #17465 Cancel in-progress builds for non-master/staging — CI config
- #17464 Make it harder to accidentally invoke dangerous commands via claude — Internal Claude guardrails
- #17462 fix for flaky automations controller test — Test fix
- #17460 fix segment campaign activity “any” queries — Internal query performance fix
- #17455 Add guidelines around foreign keys at the DB layer — Internal docs
- #17453 fix for invalid property: email_activity$sent_email_ids — Bug fix, internal
- #17447 Update schema.rb to reflect migrations more closely — Schema maintenance
- #17433 Add Ruby LSP plugin to Claude settings — Internal tooling
- #17424 [PRC-128] Fix decimal precision for SMS package prices in admin view — Admin-only fix
- #17420 Fix Rivo Liquid merge tags returning nil in emails — Bug fix restoring documented behavior
- #17418 ENG-5506: Exports constant refactor — Internal refactor
- #17417 [INC-305] Fix run count with combined scopes job — Internal fix
- #17414 Fix merge tag submenu overflow in paragraph blocks — Bug fix (UI overflow)
- #17412 INT-136 Track contacts for external audience — Internal sync config refactor
- #17411 Fix Rivo segment criteria not rendering on summary page — Bug fix restoring documented behavior
- #17410 [FLO-612] Updates CustomerSubscribedToMarketing events to after_commit — Internal race condition fix
- #17405 [ENG-5516] Replace ExternalAccount::ConflictError exception — Internal error handling
- #17401 Add Claude rules and guidelines — Internal docs
- #17399 [FLO-595] Removes Textable Event — Internal cleanup, never used in production
- #17398 [FLO-588] Removes Mailable Event — Internal cleanup
- #17396 [FLO-608] Updates Template Order — Flow template display order change (minor)
- #17395 Rivo inline API key modal — Connection flow UX tweak, existing docs adequate
- #17388 Add stacked PR awareness rule — Internal docs
- #17382 Restructure AI agent docs — Internal docs
- #17351 Add Claude Code skills — Internal tooling