Tickets anonymisieren - Kundendaten löschen


Die europäische Datenschutzgrundverordnung (DSGVO) sieht vor, dass persönliche Daten von Endkunden nicht länger als für die Erfüllung des vom Kunden bekundeten Zwecks notwendig gespeichert werden dürfen. 

Um dieser Pflicht zur Löschung nachzukommen, müssen in Ihrem Ticketing System automatische Lösch-Aktionen implementiert werden.

Die Festlegung der Lösch-Strategien und -Fristen obliegt Ihnen und unterscheidet sich in der Regel je nach Service-Prozess. Eventuell bestehen auch steuer- und handelsrechtlicht Aufbewahrungspflichten, die eine kurzfristige Löschung verbieten.

todo4teams unterstützt Sie bei der Erfüllung dieser Pflicht, ohne die Leistungsdaten Ihres Serviceteams zu verändern.  Anonymisierung bedeutet hier, dass alle möglicherweise personenbezogenen Daten Ihrer Kunden aus dem Ticket entfernt werden, die Leistungsdaten (wer hat welches Ticket für welches Team wann bearbeitet) erhalten bleiben.
Die Datenbereinigung beinhaltet den Titel des Tickets, die Beschreibung, Dateianhänge und die Daten aller E-Mail-Antworten, Formularinhalte etc.

Für die Anonymisierung  ergeben sich drei Szenarien:

Anonymisierung auf Wunsch des Kunden

Nennt der Kunde sein Anliegen und ist die Ticket-ID bekannt, kann die Anonymisierung direkt über das Web-Frontend ausgelöst werden: Wählen Sie dazu die Karte "Steuerung" und nutzen Sie das Formular "Ticket anonymisieren":

anonymize.png


Anonymisierung bei Erledigung

Generell können Sie Tickets auch im Augenblick der Erledigung anonymisieren. Beachten Sie aber, dass damit eventuelle Nachfragen des Kunden nicht mehr beantwortet werden können. Auch Dialoghistorien können dann nicht mehr fortgeführt werden.

Um ein einzelnes Ticket in einem Skript zu anonymisieren, rufen Sie einfach

task.anonymize();

auf. 

Anonymisierung nach Frist und Status

Hier wird rückwirkend nach einer Frist und nur dann anonymisiert, wenn die Bearbeitung des Tickets abgeschlossen wurde.

In dem nachfolgenden Skript werden durch eine Archivabfrage Tickets selektiert, die folgende Bedingungen erfüllen:

  1. es wurde ein bestimmtes Team adressiert (in diesem Fall das Team mit der ID 110)
  2. das Ticket wurde erledigt (Status=3)
  3. die Erzeugung des Ticket liegt mindestens vier und maximal 8 Wochen zurück.

Das Maximalalter des Tickets wird gesetzt, um die Anzahl der Tickets in der Ergebnismenge nicht unendlich anwachsen zu lassen. Die tägliche Ausführung des Skriptes wird aber garantieren, dass tatsächlich alle Tickets anonymsiert werden.

Für das Ergebnis dieser Selektion wird die Aktion ToDoAdminAnonymizeTasks aufgerufen:

var qm =  new com.proxemo.todo.bom.ToDoArchiveQueryMap(100);
task.doneComment="Anonymize tasks\n";
// We will anonymize tickets addressed to group 110:
var group = com.proxemo.todo.server.ToDoScheduledTaskDispatcher.getInstance().getAllWorkGroups().get(new java.lang.Long(110));
qm.addNameValue(com.proxemo.todo.bom.ToDoArchiveQueryMap.SKILL_ATTRIBUTE, group);

task.doneComment+="Group "+box.getName()+"\n";
// Anonymize tickets in state 3 (=finished) only:
qm.addNameValue(com.proxemo.todo.bom.ToDoArchiveQueryMap.STATE_ATTRIBUTE, new java.lang.Integer(3));

// Anonymize tickets older than 4 weeks and newer than 8 weeks (to limit result set):
var datearray = Java.type('java.util.Date[]');
var dv = new datearray(2);
dv[0] = new java.util.Date(java.lang.System.currentTimeMillis()-8*7*24*3600*1000); // 8 weeks
dv[1] = new java.util.Date(java.lang.System.currentTimeMillis()-4*7*24*3600*1000); // 4 weeks
qm.addNameValue(com.proxemo.todo.bom.ToDoArchiveQueryMap.DATE_ATTRIBUTE, dv);

task.doneComment+="Date "+dv[0]+" to "+dv[1]+"\n";
// perform the archive query:
var qresult = new com.proxemo.todo.server.action.ToDoQueryArchiveAction().execute(-1, qm);
if(qresult!=null && qresult.getTasks()!=null){
println("number of tasks to anonymize: "+qresult.getTasks().size());
if (qresult.getTasks().size()>0){
   for(var i =0; i<qresult.getTasks().size(); i++){
      println("Anonymize task "+qresult.getTasks().get(i).getId());
      task.doneComment+=" "+qresult.getTasks().get(i).getId();
    }
   // anonymize the list of tickets:
   new com.proxemo.todo.server.action.ToDoAdminAnonymizeTasks().execute(-1, qresult.getTasks());
}
} else {
    println("Error anonymizing tickets.");
}

Wenn Sie dieses Skript (mit den entsprechenden Anpassungen der Filterkriterien nach Ihren Bedürfnissen) in das Start-Skript einer speziellen Gruppe (z.B. "Anonymize Process") speichern und eine automatisches tägliches Ticket an diese Gruppe einstellen, implementieren Sie auf einfache Weise einen angepassten Datenschutzprozess.

Vervielfältigen Sie den Skript-Block ggf. um Tickets verschiedener Gruppen oder Quellen zu anonymisieren.

     

Unterseiten