← Alle Themen · Tickets
In diesem Artikel 6 Kapitel
CRM → DSGVO & Retention
Ticket-Daten enthalten personenbezogene Informationen (E-Mail-Adresse, Name, Nachrichteninhalt, Anhänge). Die DSGVO verlangt, dass diese nur so lange gespeichert werden wie für den Zweck nötig. Scanalot bietet eine Retention-Policy pro Postfach, die geschlossene Tickets nach einer konfigurierbaren Frist automatisch anonymisiert.
Retention-Policy konfigurieren
Unter CRM → Postfächer → Bearbeiten gibt es das Feld:
DSGVO-Retention (Tage nach Schließung), z.B. 365
0= keine Anonymisierung (Default)- Jede Zahl > 0 = Tickets werden X Tage nach ihrem
closedAt-Zeitpunkt anonymisiert
Typische Werte:
- 90 Tage, aggressive Retention, schnell konform
- 365 Tage, 1 Jahr, passend für Support-Anfragen nach Auslieferung
- 1095 Tage, 3 Jahre, handelsrechtliche Aufbewahrungsfrist beachten wenn relevant
Hinweis: Bei Auftragsbezug solltest du die steuerlichen Aufbewahrungsfristen (10 Jahre für Rechnungen etc.) respektieren. Die Retention anonymisiert nur den Personenbezug, nicht das Ticket selbst, das bleibt für Statistik/Reporting erhalten.
Was wird anonymisiert?
Beim nächtlichen Retention-Lauf werden für fällige Tickets folgende Felder überschrieben:
Ticket-Zeile (ticket_tickets):
fromEmail→anonymized@localfromName→ leeranonymizedAt→ aktueller Timestamp
Alle Nachrichten (ticket_messages):
fromEmail,toEmail,ccEmail,replyToEmail→anonymized@local/ leerfromName→ leerbodyHtml,bodyText,bodyHtmlSanitized→[Inhalt DSGVO-konform entfernt]
Anhänge:
- Physisch von der Festplatte gelöscht
- DB-Rows in
ticket_message_attachmentsentfernt - Ticket-Upload-Verzeichnis
documents/tickets/{ticketId}komplett entfernt
Bleibt erhalten:
- Ticket-Nummer, Betreff, Status, Priorität, Tags
- Zeitstempel (
createdAt,closedAt,firstResponseAt) - Zugewiesene User / Rollen
- Auftrags-Verknüpfung
- Ticket-Verlauf (mit neuem Eintrag
anonymized)
Dadurch bleibt Reporting (Dashboard, SLA-Auswertung) intakt, nur Personenbezug ist weg.
Cronjob
Der Befehl tickets:retention läuft täglich um 3:30 Uhr nachts. Manueller Testlauf:
php artisan tickets:retention --dry-run # nur anzeigen
php artisan tickets:retention # tatsächlich ausführen
Pro Lauf werden maximal 500 Tickets pro Postfach anonymisiert, bei großen Altbeständen dauert das ggf. mehrere Nächte.
Historie
Jedes anonymisierte Ticket bekommt einen Verlaufseintrag DSGVO-anonymisiert. Die History-Zeilen selbst sind nicht betroffen (enthalten keine Personendaten außer Agent-IDs).
Datenauskunft-Export (Art. 15 DSGVO)
Wenn ein Kunde schriftlich Auskunft über seine bei dir gespeicherten Daten verlangt, kannst du ihm mit einem Klick alle Ticket-Daten als ZIP exportieren.
Aufruf
- CRM → Kontakte öffnen
- Kontakt anklicken → Detail-Ansicht
- Bei der Ticket-Liste oben rechts auf „DSGVO-Auskunft" klicken
- ZIP wird automatisch heruntergeladen
Inhalt des ZIPs
dsgvo-auskunft-contact-123-20260421-143205.zip
├── README.txt
├── index.json ← Übersicht (Kontakt-ID, E-Mails, Ticket-Anzahl, Ersteller, Datum)
└── tickets/
├── T-20260320-00123/
│ ├── ticket.json ← komplette Ticket-Row + alle Nachrichten + Historie
│ └── attachments/
│ ├── 42_rechnung.pdf
│ └── 43_foto.jpg
└── T-20260415-00187/
├── ticket.json
└── attachments/ ...
Matching-Logik
Tickets werden gefunden über:
- Alle E-Mail-Adressen des Kontakts (entschlüsselt aus
scanalot_customers_emails) - Alle Aufträge des Kontakts (
scanalot_orders.customerId→ticket.orderId)
Das deckt auch Fälle ab, in denen der Kunde unter mehreren Adressen geschrieben hat.
Audit-Log
Jeder Export wird im System-Log protokolliert mit Ersteller, Kontakt-ID und Ticket-Anzahl. So lässt sich später nachweisen dass ein Auskunftsersuchen bearbeitet wurde.
Rechte
crm.tickets.data_export, ohne dieses Recht wird der Button ausgeblendet.
Weitere DSGVO-relevante Features
- Amazon-Anonymisierung, bereits vorhanden unter Einstellungen, Kundendaten aus Amazon werden automatisch nach Frist anonymisiert