Enhanced Reporting, Sync Improvements & Campaign Previews

August 27, 2025

This update focuses on data reliability, enhanced analytics, and improved user workflows. It introduces better visibility into campaign performance, refined log tracking, and a series of UX improvements to streamline campaign management.


Features

  • Email Bounce Rate by Campaign
    The Campaign Reports now include detailed Bounce Rate, Hard Bounce, and Soft Bounce metrics. This enhancement provides deeper insights into email delivery performance and provider reliability.

  • Enhanced Event Logging and Observability
    Added new fields such as target_delivery_time, push_request_time, and retargeting across multiple log sources. This enables more precise monitoring of when messages are scheduled versus actually delivered, improving traceability and analytics accuracy.

  • Email Bounce Event Handling (Mandrill, Mailgun, SendGrid)
    Implemented unified webhook support for processing bounce events from multiple providers. The system now parses and logs both soft and hard bounces consistently for future analysis and reporting.

  • Campaign Preview Drawer with Delivery Tab
    Introduced a detailed drawer view for campaign history, allowing users to inspect campaign configuration, delivery stats, and actions directly from the list view.

    • Two tabs: Configuration and Delivery
    • Editable campaign name and real-time status badges
    • Dynamic action buttons (Pause, Resume, Send, etc.)
    • Visual A/B test data and results

    Campaign Preview

  • Template Card Preview Drawer
    Users can now open template previews by clicking directly on the card thumbnail, without using the three-dot menu — speeding up browsing and review of creative assets.

  • Validation Improvements on Templates and Campaigns
    Updated validation for the template_id field to prevent bad requests when linked templates have been deleted, while maintaining compatibility with existing resources.

  • Improved Sync Reliability
    Refined synchronization logic across customer lists, campaigns, partners, and other entities to ensure that updates (such as deletions or archival) are accurately propagated to all connected services.

  • Blocked Contact Logic Update
    The handling of blocked contacts now uses a consistent data model, improving reliability when creating or unblocking profiles linked to existing contacts.

  • API Permission Alignment
    Standardized API endpoint permissions to align “users” with “profiles,” and “deals” with “partners,” ensuring consistent access control across modules.

  • Removed Bulk Import Functionality
    Deprecated and removed outdated bulk import endpoints and related components, reducing system complexity and maintenance overhead.

  • Refactored Syncer Integration
    Integrated the latest syncer framework to ensure precise, tag-based syncing across multiple models — improving data integrity and alignment with PNS (Push Notification Service).

  • Hard & Soft Bounce Fields in Reports API
    Reports now include detailed bounce-related metrics for each campaign, helping users track delivery health and provider performance.


Improvements

  • Stability & Panic Handling
    Improved resilience of the lro.pool package by handling cancellation events gracefully and adding diagnostic information for any remaining edge cases.

  • Concurrency & Race Condition Prevention
    Conducted a full race-condition audit of the LRO package with concurrent stress tests to eliminate potential data conflicts during parallel operations.

  • Context Handling Improvements
    Enhanced background task reliability by ensuring proper context management across async processes, reducing the chance of data corruption during concurrent updates.

  • General Codebase Cleanup
    Removed deprecated routes, redundant database calls, and legacy middleware for a cleaner, more maintainable architecture.


Bug Fixes

  • Container Filters (Web)
    Fixed an issue where container filters did not retain selected variation