Dandelion is an open-source project. View the code on Github

Enhanced Mail Performance Insights

We've made significant improvements to how you view the performance of your sent messages. You will now see new, detailed metrics displayed clearly in a table, providing deeper insights into how your messages are performing. Furthermore, percentage values, like click rates, are now consistently shown with two decimal places for improved readability. The display of these analytics is also more robust, gracefully handling situations where data might be unavailable or where the details are not relevant to a specific message type.

Smarter Mail Analytics and Reporting

To provide you with more actionable insights from your mail performance data, we've updated the default views for your analytics. Reports now prioritize engagement metrics, such as click rates, and are presented over a full year by default, giving you a comprehensive historical overview. This means you can instantly see which messages are driving the most engagement and easily track trends over a longer period, right out of the box. Additionally, external links to detailed mail analytics are now more precise, ensuring you always get the right information when drilling down.

General Platform Usability Improvements

Navigating the platform and understanding feedback is now even smoother. You'll notice that any validation error messages are clearer and easier to understand, helping you correct inputs quickly and efficiently. Accessing organisation pages has also become more convenient; you can now use a direct link containing an organisation's ID, which will seamlessly redirect you to its dedicated page. Finally, our navigation has been updated with a new, clearer icon for 'Messages', making it easier to find your communications.

Commits on Jun 04, 2025
3bc489f

✏️ (models): Fix typo in validation error messages

Remove redundant 'not be' from validation error messages. This improves clarity and correctness of messages.

Commits on Jun 03, 2025
79ed2ce


🐛 (organisations, mailgun): Improve Mailgun metrics and add org ID redirect

Add a new route /organisations/:id to redirect to the slug-based URL. This provides a direct way to access an organization by its ID.

Wrap Mailgun metrics display with a check for available metrics. This prevents rendering an empty table when no metrics are present.

Implement error handling for Mailgun API communication errors. This ensures the application does not crash if Mailgun API calls fail and allows the UI to gracefully handle missing metrics data.

4207a9d

🚸 (pmails): Format percentage values to two decimal places

Formats the display of percentage values in the header partial. This ensures consistent presentation and improves readability for users.

cc42368

💄 (pmails): Conditionally display header analytics

Remove unused local variable. Wrap email metrics table in conditional block. This prevents displaying irrelevant analytics for Event pmails.

16fb14f

✨ (pmails): display Mailgun metrics for sent emails in a table
🎨 (pmails): refactor header layout for A/B test and queued emails
🐛 (pmails): add period to "Sending completed at" message

ae79e39

🐛 Fix Mailgun API parameter types

Converts tag id to string and sent_at to Unix timestamp.

Ensures label and value fields are strings for tag filters. Changes start parameter to integer timestamp as expected by Mailgun's get_tag_stats API, preventing incorrect data retrieval.

f33c00a

♻️
✨ Refactor Mailgun integration into concern

  • <br />♻️ Extract Mailgun URL and metrics logic into PmailMailgun concern.
    • Improves code organization and maintainability of the Pmail model.
  • <br />✨ Introduce metrics method to provide detailed Mailgun statistics.
    • Enables comprehensive performance tracking for individual emails.
  • <br />✨ Update mailgun_url to use sent_at for precise reporting.
  • <br />🐛 Add nil check for organisation.mailgun_domain in from_email.
    • Prevents errors if the Mailgun domain is not configured.
  • <br />✏️ Fix non-breaking space in to_selected_text method.
Commits on Jun 02, 2025
0970f14

✨ (nav): Add Mailgun link and update Messages icon

Add a direct link to Mailgun's sending domains in the navigation. This improves developer experience by providing quick access. Update the 'Messages' navigation icon from an envelope to a chat. This clarifies the link's purpose and avoids icon duplication.

fb2c838

📈 (pmail.rb): Update default pmail analytics configuration

  • Change default sort order to clicked_rate:desc.
    • Prioritizes engagement rate for better insights.
  • Switch from count-based to rate-based metrics.
    • Provides normalized performance indicators like clicked_rate.
  • Update default resolution from day to month.
    • Aggregates data for a higher-level, less granular overview.
  • Extend default date range from 30 days to 1 year.
    • Retrieves a more comprehensive historical data set by default.
158fb42

✨ (pmail): add mailgun_url method to Pmail model to generate Mailgun analytics URL
♻️ (pmail): refactor Mailgun analytics URL generation into a dedicated method
💄 (pmail): update _header.erb to use mailgun_url helper for Mailgun analytics link

This change introduces a new mailgun_url method in the Pmail model. This method encapsulates the logic for constructing the complex Mailgun analytics URL, including region-specific domains, search metrics, and date ranges.

The _header.erb partial is updated to call this new mailgun_url method on the @pmail object, simplifying the view logic and centralizing the URL generation. This improves maintainability and reduces duplication of URL construction logic across the application.

Option