Internal Flask app that monitors the epi-helpdesk.zammad.com tickets via
the Zammad API, deployable as a systemd service behind Apache under
/episupport.
Features:
- Poller: session-login API sync, snapshot diff to detect agent changes
(status, owner, priority, closures, new replies); email notifications
- Dashboard: ticket overview with sorting, "not closed" filter and
highlighting of tickets with unconfirmed changes; per-item and bulk
"mark as read"
- Analytics: KPIs, response/resolution times, monthly SVG trend chart,
distributions (status/priority/group/agent), Excel export
- Conversation view: full per-ticket thread cached in the DB (avoids
proxy timeouts), inline image attachments, safe HTML-to-text rendering
- Write actions: reply to tickets and create new tickets with a
confirmation step and attachment upload (incl. clipboard paste);
self-triggered actions are synced back so they aren't flagged as changes
- Local timezone display (Europe/Berlin) for all timestamps
Includes deploy tooling: setup.sh, systemd units and Apache config.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>