{% extends "base.html" %} {% from "_macros.html" import help %} {% block title %}Mail audit — BackupWatch{% endblock %} {% block main_class %}wide{% endblock %} {% block content %} {% set base_qs = "q=" ~ (f.q|urlencode) ~ "&status=" ~ f.status ~ "&client_id=" ~ (f.client_id or '') ~ "&matched=" ~ f.matched ~ "&date_from=" ~ f.date_from ~ "&date_to=" ~ f.date_to %}

Mail audit {{ help("Every backup email BackupWatch has ingested, and how each one was matched — the client and job it landed on, whether it was auto-archived out of the inbox, and whether a learned or manual rule filed it. System 'missed' events are not shown here.") }}

Clear

{{ total }} email(s){% if pages > 1 %} · page {{ page }} of {{ pages }}{% endif %} · Export CSV

{% for r in rows %} {% else %} {% endfor %}
Ingested {{ help("When BackupWatch imported the email. May be later than Received for mail processed after a rule change; older rows show the received time.") }} Received Archived {{ help("Yes = BackupWatch filed it out of the inbox (it matched a job, or was ignored). No = still sitting in the Review queue / inbox.") }} FromSubjectClientJob Rule {{ help("The kind of rule that filed the email: Learned (auto-derived when a human assigned a similar email) or Manual (hand-written). — when no single rule was decisive.") }} StatusVendor How matched {{ help("Auto-matched = an existing rule filed it. Auto-created job = the email created its own job. Assigned in Review = a person filed it. Unmatched = still in Review. Ignored = dismissed as non-backup.") }}
{{ r.ingested|dt }} {{ r.received|dt }} {{ "Yes" if r.archived else "No" }} {{ r["from"] }} {{ r.subject }} {{ r.client or "—" }} {{ r.job or "—" }} {% if r.rule_type == "Learned" %}Learned{% elif r.rule_type == "Manual" %}Manual{% else %}—{% endif %} {{ r.status }} {{ r.vendor|vendor }} {{ r.how }}
No emails match these filters.
{% if pages > 1 %}
{% if page > 1 %}← Newer{% endif %} Page {{ page }} of {{ pages }} {% if page < pages %}Older →{% endif %}
{% endif %} {% endblock %}