Release Notes
Mobile Experience Refresh
The Pushly platform's mobile experience has been completely redesigned. This release replaces the previous mobile view with an expanded, modernized implementation available to all platform users with no setup required.
What's new:
KPI Dashboard: three summary cards (Push Subscribers, Clicks, CTR) with trend indicators and 7-day sparklines replace the single "Clicks Yesterday" metric
Drafts tab: manage saved drafts directly from mobile with archive, edit, and duplicate actions
Swipe actions: swipe left on any notification card to reveal Edit, Duplicate, Cancel, or Archive. No more tapping to expand inline
Quick View: tap any card to open a bottom sheet with full notification details and action buttons
Notification Detail page: full-screen view with content, performance stats (Impressions, Clicks, CTR), and delivery metadata. Entirely new to mobile
Insights: dedicated analytics view with date presets, interactive charts, and top-performing notifications. Entirely new to mobile
Improved Domain Switching: pinned domains, recents, and organization grouping, matching the desktop experience
Compose and Edit continue to use the shared notification builder, optimized for mobile with non-essential panels hidden and Save as Draft supported.
Session Timeout and Refresh Token Handling
Active users will no longer be interrupted mid-task by unexpected session expiration. The platform now silently refreshes sessions in the background while you are actively working — only genuine user interactions such as clicks, form inputs, and navigation keep the session alive.
Two prompts handle cases where a session does need to end:
Inactivity warning ("Stay signed in?"): appears when you have been idle and your session is about to expire. Shows a countdown timer with two options: Stay signed in (resets the countdown) or Sign out. If the countdown reaches zero with no action, you are signed out automatically.
Maximum-duration warning ("Sign in again to keep working"): appears as you approach the hard session lifetime cap. This prompt has no extend option — the maximum duration is a fixed security cap. Save your work and sign back in to continue.
Session timeout settings (configurable per organization):
Idle timeout
10 hours
Session ends after this much idle time
Absolute timeout
10 hours
Maximum total session lifetime from login
This release builds on and extends the Session Heartbeat and Expiration UX improvements introduced on February 11, 2026.
Notification Save: Landing URL Validation
When saving or scheduling a notification through the notification builder, Pushly now automatically performs a server-side health check on the Landing URL before the notification is queued for delivery. This helps catch broken, misconfigured, or malformed URLs before they reach subscribers.
If the URL returns a non-200 response, a warning step is added to the Delivery Confirmations modal showing:
The specific HTTP status code returned (e.g., 404 Not Found, 500 Server Error)
A clickable link to the Landing URL for direct verification
The final redirect destination if the URL redirected
The check is advisory and non-blocking — users can acknowledge the warning and choose to proceed. Supported warning scenarios include non-200 HTTP responses, DNS failures, connection timeouts, SSL errors, and malformed protocols.
What is not affected: feed sends and API sends bypass this check entirely.
The check is disabled by default per domain. Enable it under Domain Settings > Notifications > General Settings > Edit > Delivery > Landing URL Validation.
Documentation: Landing URL Validation
WordPress Plugin 2.3.0
WordPress Plugin 2.3.0 is a stability, compatibility, and security release. There are no new user-facing features and no configuration changes required. Publishers can safely upgrade to WordPress 7.0 and to plugin version 2.3.0 in any order.
WordPress 7.0 Compatibility: the full integration test suite (66 tests, 222 assertions) passed cleanly against WordPress 7.0. The "Tested up to" header has been updated to 7.0.
PHP Compatibility: tested and passing on PHP 7.4, 8.3, and 8.4. Minimum PHP requirement remains 7.4.
Update via WordPress admin — no manual steps required.
Documentation: WordPress Plugin Integration Guide
Item Catalog Browser
A new Catalog section is now available in the Pushly platform's left navigation, giving publishers a direct, searchable view of all their catalog items without leaving the platform.
The Catalog Browser displays items in a paginated table that automatically adapts its columns to the domain's configured catalog type:
Recipes: Image, Name, Category, Cuisine, Keywords
Events: Image, Name, Genre, Performer, Location, Availability
Key capabilities:
Full catalog visibility: browse all indexed items with thumbnail previews and catalog-type-specific metadata
Server-side search: search across items by name, URL, or other properties — handled server-side for accuracy and performance
Availability and status indicators: clear item-state indicators at a glance
Direct item links: item names link to their canonical URLs and open in a new tab
The section label in the navigation adapts to the domain's catalog type (e.g., "Recipe Catalog" or "Event Catalog"). The view is read-only for all users.
Event Webhooks
Event Webhooks are a new real-time data delivery system that sends structured notification engagement data to customer-defined endpoints the moment subscriber interactions occur. When a subscriber sees or clicks a notification, Pushly immediately delivers a cryptographically signed POST request to the customer's configured URL.
Supported events (v1):
Notification Displayed: fires when a subscriber's device renders a push notification
Notification Clicked: fires when a subscriber taps or clicks a push notification
Each payload includes:
Subscriber identity: Pushly subscriber ID and external ID
Device context: platform, OS, browser, device type, timezone, and geolocation
Notification details: title, body, keywords, source, delivery type, associated segments and campaign
Event metadata: unique event ID for deduplication, precise timestamp, domain context
Key capabilities:
Cryptographically signed requests for authenticity verification
Automatic retries with increasing delays on failure
High throughput processing (thousands of events per second)
Secret management for authentication headers
Key use cases: real-time analytics pipelines, CDP and CRM integration, marketing automation triggers, attribution and conversion tracking, internal alerting and monitoring.
Configure webhooks under Domain Settings > Event Webhooks.
Documentation: Event Webhooks
Replacement Behavior: Details and Insights
Building on the Notification Replacement Behavior feature released on April 21, publishers can now view and report on the resolved replacement behavior for any notification — not just at the point of authoring.
Replacement Behavior on Notification Details: the Delivery section now shows a Replacement Behavior field (Stack, Replace All, or Replacement Group: [key]) for every sent notification, regardless of source.
Replacement Behavior on A/B Test Details: each variant's preview card in the Notifications tab now displays its own Replacement Behavior value, making it easy to compare strategies across variants.
Replacement Behavior in Insights Reporting: available as a selectable dimension column and as a filter in notification-level reports. Included in CSV and XLSX exports when selected.
Platform UI Refresh
The platform has been updated with a modernized look and feel across every page. All existing workflows, layouts, navigation, and features remain exactly the same.
Redesigned Sidebar and Domain Switcher
Search: type to find any domain instantly
Favorites: star frequently used domains so they always appear at the top
Recents: recently visited domains are surfaced automatically
Keyboard navigation: arrow keys to navigate, Enter to select, P to toggle a favorite
Virtualized rendering for smooth performance with large domain lists
Standardized Filter Bar
All list views — Notifications, App Messages, Segments, Campaigns, and Reporting — now share a consistent inline tag-based filter bar supporting date, date range, number, and single or multi-select dropdown filters.
Other Improvements
Unified Status Badges: consistent icons and color treatment for statuses across all entity types
Improved Cards and Panels: collapsible sections, dividers, smoother loading states, consistent padding
Streamlined Tables: consistent modern table layout throughout; Journeys migrated to the new table style
Journey and Campaign Views: tabbed layout for easier navigation between configuration, summary, and notifications
Accessibility: better screen reader support, keyboard navigation improvements, WCAG 2.0 AA scanning across 42 routes
Dark Mode (Internal Preview): available for internal team members via the theme toggle in sidebar settings
New Replacement Behavior for Notifications
Publishers can now configure Notification Replacement Behavior on a per-notification basis when creating manual notifications or building journey steps. This controls how a notification behaves in a subscriber's device notification tray when multiple notifications have been delivered.
Three options are available:
Stack (default): each notification appears independently in the tray. Notifications accumulate until the subscriber dismisses them. This is the existing behavior and is fully backward compatible.
Replace All: each new notification replaces all previous notifications in the tray. Subscribers always see only the most recent notification. Best suited for frequently updating content such as breaking news alerts, weather forecasts, or live scores.
Replacement Group: notifications are grouped by a custom label. A new notification replaces only the prior notification sharing the same group label, leaving other groups unaffected. Ideal for multi-category publishers who want each content category to maintain its own independent notification thread.
The setting is available under the Behavior section in the notification creation form.
Documentation: Notification Replacement Behavior
Notification Builder Enhancements: Page Analyzer and A/B Testing Flow, and Item Engagement Events
Notification Builder: Page Analyzer and A/B Testing Flow
When triggering content recommendations in the Notification builder, users are now presented with two options:
Autofill Content: automatically populates the notification's title and body fields with content extracted from the landing page
Review Content Suggestions: opens the side-panel review flow to evaluate suggestions and manually apply preferred options
The A/B testing setup flow has been refreshed with a more streamlined variant creation experience within the notification builder. The Notification View summary section has also been updated with a cleaner layout showing delivery status, channel, targeting, engagement metrics (impressions, clicks, CTR), a Performance Breakdown by Channel visualization, and a rendered device preview.
Item Engagement Events: Completion and Rating Support
Pushly now supports two new catalog item interaction events:
Complete Item: tracks when a subscriber has completed or made a catalog item (e.g., cooked a recipe). Available in Journeys, Segments, and SDK event collection. A new "Made or Completed Item" Journey action is available alongside existing item actions.
Rate Item: tracks when a subscriber has rated a catalog item on a scale of 0 to 100.
Two new segmentation attributes are now available under E-Commerce / Catalog:
Made / Completed Item Count: build segments based on how many items a subscriber has made or completed
Rated Item Count: build segments based on how many items a subscriber has rated
Both support configurable time windows (1, 7, 14, 30, 60, 90 days) and full AND/OR logic with existing segment conditions.
Journeys: A Complete Rebuild of the Campaign Experience
Campaigns has been fully rebuilt and renamed to Journeys. The journey builder features a new visual canvas, a proper multi-path A/B/n branching model, significantly improved reporting, and a modernized list and summary experience. All existing campaign data, configurations, and permissions are fully preserved. Existing /campaigns URLs automatically redirect to /journeys.
A/B/n Split Testing
Add a Split Test step anywhere in a journey to divide the incoming subscriber audience into 2 to 4 named variant branches, each with a configurable percentage of traffic. Each branch is fully independent and can contain its own sequence of delays, notifications, and nested split tests. All variant branches automatically converge at a downstream join point.
New Visual Canvas
The journey canvas has been rebuilt with a professional automatic layout engine featuring clean orthogonal edge routing, symmetric branch layouts, and dynamic viewport sizing.
Placeholder Steps and Add Step Panel
New journeys start with a visible placeholder step to guide first step insertion. The step insertion UI has been redesigned as a descriptive floating panel with step names, descriptions, and logical categories.
Unsaved Changes Protection
Navigating away while changes are pending triggers a browser confirmation dialog. The Save button label updates dynamically to "Save Changes" when unsaved edits are present.
Journeys List and Summary Improvements
The Journeys list is now paginated with sticky filters, inline audience segment information, and inline performance metrics. The journey summary page includes a collapsible modern header, a performance graph with custom date range selection and grouping, and a new Insights tab with Notification, Step, and Split Test Variant performance breakdowns.
Auto-Generated Step Names and Reporting
Journey steps receive auto-generated human-readable names (e.g., "Variant A > Notification #1"). Insights now supports breakdowns by Step, Split Test, and Split Test Variant.
Documentation: Journeys
Campaign Step Selection Panel
A new step selection panel has been added to the Campaign Builder. Steps are now organized into logical categories with visual icons and descriptive labels, replacing the previous small unlabeled icons.
Available step types:
Timing:
Wait: pause the campaign for a configured amount of time before the next step executes
Notifications:
Custom Notification: create and send a fully customized push notification
Abandoned Cart: send a reminder about items left in a subscriber's cart
Saved Item Reminder: send a reminder for items a subscriber has saved
Recently Viewed Item: follow up on catalog items the subscriber has recently viewed
Trending Item: send top-performing catalog items based on recent activity
Personalized Recommendation: send AI-selected personalized items (currently powered by BlueConic)
Documentation: Journeys
Session Heartbeat and Expiration UX and App Message Preview Window
Session Heartbeat and Expiration UX
The platform now includes a lightweight session heartbeat that tracks expiration state in the client and handles it proactively, replacing the previous experience of ambiguous 403 errors and abrupt logouts.
Session Expiration Warning: a visible warning notification appears 5 minutes before a session expires, giving users time to save work and re-authenticate.
Dedicated session-expired screen: once a session expires, a dedicated screen is displayed with a Sign In button. After signing in, the platform redirects back to the last page the user was on.
App Message Preview Window
A new App Message Previews window is now available from the App Message builder, rendering messages in realistic device frames with support for:
Device Type: Phone or Tablet
Orientation: Portrait or Landscape
Theme: Light or Dark
Platform filtering: e.g., Apple/iOS
This makes it faster to catch layout issues such as text truncation, button crowding, and dark mode contrast problems before publishing.
Documentation: App Messages
Organization-Level Insights Reporting
Enterprise customers managing multiple domains can now access a unified Insights view that aggregates notification and subscriber acquisition performance across all their properties in one report.
Users with organizational-level access will see a new Insights section in the navigation. V1.0 includes two report types:
Notification Report: delivery and engagement metrics across all domains, with a new Organization Notification Group concept that links each notification group to its corresponding domain-level performance when a domain breakdown is applied.
Acquisition Report: subscriber acquisition trends and channel performance across all domains.
A domain-level filter allows users to narrow any org-level report to one or more specific domains for comparison. The reporting table component has been updated with column resizing and improved layout stability for large data sets.
Documentation: Insights
Campaign Builder UX Improvements and Expanded Click Look-Back Windows
Campaign Builder UX Improvements
Unsaved changes awareness: the interface now clearly indicates that there are unsaved changes when edits are made in the Campaign Builder. Attempting to navigate away while changes are pending shows a visible warning.
Tab navigation protection: switching to a tab that would discard unsaved changes is blocked while pending edits are present.
Improved layout and visibility: the Visual Builder canvas height is now capped at 900px so that the Save button remains visible on most screen sizes without excessive scrolling.
Campaign TTL persistence fix: Notification Lifespan (TTL) values now save correctly for all campaign action steps.
Notification form data integrity fix: notification form values now remain stable whenever a form is reloaded or revisited, across schedules, templates, and campaign actions.
Expanded Click Look-Back Windows for Seasonal Retargeting
Keyword Click look-back windows now extend up to 120 days (previously capped at 90 days)
Notification Click look-back windows now extend up to 365 days for eligible domains (previously capped at 90 days)
This makes it possible to build audiences like "clicked a Prime Day notification in July" when planning a Black Friday campaign in November. All shorter look-back windows remain available.
Notification Schedule Overlap Confirmation and Real-Time Audience Size Sync
Notification Schedule Overlap Confirmation
When creating or scheduling a notification, the platform now automatically checks for other upcoming sends targeting the same audience within a configurable time window. If a potential overlap is detected, a confirmation step is added to the delivery flow showing the conflicting notification's ID, send time, and audience overlap details. Publishers can then choose to confirm and continue or cancel.
Configure the overlap window under Domain Settings > Notifications > Confirmation Window.
As part of this release, all delivery confirmation steps have been consolidated into a single unified wizard flow. The three steps are:
Audience Conflict: warns if the same audience and landing URL were recently targeted within the last 7 days
Notification Schedule Overlap: detects overlapping scheduled sends for the same audience within the configured window
Confirm Scheduled / Immediate Send: final verification before delivery is confirmed
Real-Time Audience Size Sync for Segments
Segment audience sizes now update in real-time and remain consistent between the Segment List View and the Edit Segment View. Previously, list view counts were only refreshed once per day. The segment list now loads immediately and sizes update in the background, so the numbers teams rely on for campaign targeting are always current and accurate across both views.
Segment Filtering for Notifications, Segment Data in Subscriber Sends, and E-Commerce Settings
Segment Filtering for Notifications
Editorial teams can now filter the Notification List page by one or more audience segments directly from the toolbar. This makes it easy to see all upcoming and scheduled notifications targeting a specific segment before adding another send, helping publishers avoid over-messaging the same audience and reducing scheduling conflicts.
Selecting multiple segments applies an OR filter, showing any notification that targets at least one of the selected segments. Filter selections persist per user profile across sessions until cleared.
Segment Data in Subscriber Sends
The segment_names macro is now hydrated for Subscriber sends that are part of a campaign, bringing them to parity with Standard sends. Downstream services and notification personalization that rely on segment context will now work consistently regardless of send type.
BlueConic Integration and Workflow Enhancements, Segment Selection Improvements, and remote_fetch for Dynamic Content
BlueConic Integration and Workflow Enhancements
Campaign steps within the Journey builder now open in a View-Only format by default, preventing accidental edits when reviewing a step that has already been configured. An explicit Edit button is required to enter edit mode. An Edit Campaign action has been added directly to the Campaign Details page, eliminating the need to navigate back to the builder to make changes. All Journey Step drawer headers now clearly display their current state — Edit, View, or Create.
Segment Selection Improvements
The segment selection dropdown now shows a "Recently Targeted" group at the top, listing the five most recently used segments for the domain (based on last targeted date). All segments are organized into clearly labeled groups below, making it easier to scan for the right audience. A bug that caused System Segments to inaccurately reflect active channels for a domain has also been resolved.
New: remote_fetch for Dynamic Content
A new remote_fetch content source type is now available for technical publishers who need truly real-time, personalized notification content. When a notification is being prepared for delivery, remote_fetch makes a secure server-side request to a publisher-defined URL and uses the response to populate notification fields at send time — so each recipient gets content that reflects their unique context at the exact moment the notification is sent.
Use cases include: current weather conditions, a subscriber's loyalty points balance, live sports scores, personalized product recommendations, or any data that changes frequently and should not be pre-populated at authoring time. If the external data source is unavailable at delivery time, the notification still sends using a configured default fallback message.
BlueConic Content Recommendations Integration
Pushly now integrates with the BlueConic Customer Data Platform (CDP) to power personalized content recommendations inside web push notifications. This integration allows publishers to connect their BlueConic instance once and then use it as a dynamic content source across all future campaigns.
Once the integration is configured, the Pushly notification builder can pull recommended article or product items from a subscriber's individual BlueConic profile. These recommendations are injected as dynamic content blocks inside notifications, so each subscriber receives content specifically chosen for them based on their interests and past behavior.
Key capabilities:
One-Time Setup: configure the integration once from Platform Integrations > BlueConic. Map BlueConic listener profiles to Pushly subscriber segments to establish the data connection.
Intelligent Recommendations: leverage BlueConic recommendation algorithms directly from within Pushly to automatically generate personalized notification content based on individual subscriber activity.
Advanced Filtering: use included items, excluded items, and product filters to fine-tune recommendations, ensuring the most relevant content reaches the right audiences.
Multiple Configurations: create and manage multiple recommendation algorithm configurations per organization, allowing different strategies to be applied to different campaigns or audience segments.
Documentation:
Bulk Feed Actions and Prompts Editor Refresh
Bulk Feed Actions
Publishers can now select multiple feeds at once and perform bulk operations directly from the Feeds list in both the Platform and Halo. A new row selection column appears on the left of the table, and a "Bulk Actions" dropdown appears in the table header when one or more feeds are selected.
The menu is context-aware: if all selected feeds share the same status (all Enabled or all Disabled), only the opposite action is shown. If feeds with mixed statuses are selected, both Enable and Disable actions are shown and apply to all selected feeds simultaneously. Archive is always available regardless of the current feed status. This change also unifies the Feeds list code between Platform and Halo, meaning future improvements will roll out consistently to both interfaces. In Halo, the Create Feed button has been moved to the top-right corner to align with the Platform UX.
Updates to Prompts Editor
The Platform Prompts Editor has been visually refreshed to match the design language used in Notifications and App Messages. The Bell Prompt option has been removed as it was previously deprecated and no longer supported. The Prompt Preview has been fully redesigned to more accurately reflect how a prompt appears in a live environment, including a new Safari-specific preview so publishers can see exactly what subscribers will see across different browsers.
Last updated