{% extends 'base.html.twig' %} {% block title %}Tracking – Rise Mailer{% endblock %} {% block stylesheets %} {% endblock %} {% block body %} {% set openRate = stats.total_sent > 0 ? (stats.total_opened / stats.total_sent * 100)|round(1) : 0 %} {% set clickRate = stats.total_sent > 0 ? (stats.total_clicked / stats.total_sent * 100)|round(1) : 0 %} {# ── Page header ── #}

Real-time Tracking

CSV Excel PDF {{ "now"|date("H:i") }}
{# ── KPI cards ── #}
{{ stats.total_sent|number_format }}
Sent
{{ stats.total_opened|number_format }}
Opens
{{ stats.total_clicked|number_format }}
Clicks
{{ openRate }}%
Open Rate
{{ clickRate }}%
Click Rate
{# ── Charts row ── #}

Engagement Trend – Last 14 Days

Open vs Click Rate

Opens {{ openRate }}% Clicks {{ clickRate }}% None
{# ── Filters ── #}
{# ── Main content row ── #}
{# Activity table #}

Recipient Activity

{{ recent_logs|length }} records
{% if recent_logs|length > 0 %}
{% for log in recent_logs %} {% endfor %}
Recipient Campaign Status Opens Clicks Sent Last Activity
{{ log.recipientName|first|upper }}
{{ log.recipientName }}
{{ log.recipientEmail }}
{% if log.campaign %} {{ log.campaign.name|length > 28 ? log.campaign.name|slice(0,28)~'…' : log.campaign.name }} {% else %} Direct {% endif %} {% if log.status == 'sent' %} Sent {% else %} Failed {% endif %} {% if log.emailTracking and log.emailTracking.opened %} {{ log.emailTracking.openedCount }} {% else %} 0 {% endif %} {% if log.emailTracking and log.emailTracking.clicked %} {{ log.emailTracking.clickCount }} {% else %} 0 {% endif %} {{ log.sentAt|date('d M Y') }}
{{ log.sentAt|date('H:i') }}
{% if log.emailTracking and (log.emailTracking.openedAt or log.emailTracking.clickedAt) %} {% set la = (log.emailTracking.clickedAt and (not log.emailTracking.openedAt or log.emailTracking.clickedAt > log.emailTracking.openedAt)) ? log.emailTracking.clickedAt : log.emailTracking.openedAt %} {{ la|date('d M H:i') }} {% else %} {% endif %}
{% else %}

No activity found matching your filters.

Clear filters
{% endif %}
{# Top engaged recipients #}

Top Engaged

by opens
{% if top_recipients|length > 0 %} {% for r in top_recipients %} {% endfor %}
{{ r.recipient_name|first|upper }}
{{ r.recipient_name ?: r.recipient_email|split('@')|first }}
{{ r.total_emails }} email{{ r.total_emails != 1 ? 's' }}
{{ r.opens }} / {{ r.clicks }} clk
{% else %}

No engagement data yet.

{% endif %}
{% endblock %} {% block javascripts %} {% endblock %}