Anonymize Tickets
The European General Data Protection Regulation (GDPR) stipulates that personal data of end customers may no longer be stored as necessary for the fulfillment of the purpose stated by the customer.
To comply with this deletion obligation an automatic deletion action must be implemented in your ticketing system.
The definition of the deletion strategies and deadlines is up to you and usually differs depending on the service process. There may also be tax and commercial law filing duties that prohibit a short-term cancellation.
todo4teams supports you in fulfilling this obligation without changing the performance data of your service team. Anonymization here means that all possibly personal data of your customers are removed from the ticket, the performance data (who has which ticket for which team and when processed) remain.
The data cleansing includes the title of the ticket, the description, file attachments and the data of all e-mail replies, form contents etc.
There are three scenarios for anonymization:
Anonymization at the request of the customer
If the customer mentions his request and the ticket ID is known, the anonymization can be triggered directly via the web frontend: To do this, select "Control Center" in the main menu and use the "Anonymize ticket" form:
Anonymization on completion
Generally, you can also anonymize tickets at the moment of completion. Please note, however, that any inquiries from the customer can no longer be answered. Dialogue histories can then no longer be continued.
To anonymize a single ticket in a script, simply call:
Anonymization by deadline and status
This is retroactively anonymization after a period and only if the processing of the ticket has been completed.
In the following script an archive query selects tickets that fulfill the following conditions:
- a specific team was addressed (in this case the team with ID 110)
- the ticket was finished (status = 3)
- ticket start is at least four and a maximum of eight weeks behind
The maximum age of the ticket is set so as not to increase the number of tickets in the result set indefinitely. However, the daily execution of the script will guarantee that all tickets will actually be anonymized.
The action ToDoAdminAnonymizeTasks is called for the result of this selection:
//com.proxemo.todo4.bom.ToDoArchiveQueryMap
// We will anonymize tickets addressed to group 110:
var group = helper.getWorkgroupById(110);
qm.setAddressedWorkgroup(group);
// Anonymize tickets in state 3 (=finished) only:
qmstate= new java.lang.Integer(3);
// Anonymize tickets older than 4 weeks and newer than 8 weeks (to limit result set):
var d0 = new java.util.Date(java.lang.System.currentTimeMillis()-8*7*24*3600*1000); // 8 weeks
var d1 = new java.util.Date(java.lang.System.currentTimeMillis()-4*7*24*3600*1000); // 4 weeks
qm.setStartDateRange(d0,d1);
// perform the archive query:
var qaction = helper.getInstanceForClass("com.proxemo.todo4.server.action.ToDoQueryArchiveAction");
var qresult = qaction.execute(-1, qm);
if(qresult!=null && qresult.size()!=null){
println("number of tasks to anonymize: "+qresult.size());
if (qresult.size()>0){
for(var i =0; i<qresult.size(); i++){
println("Anonymize task "+qresult.get(i).getId());
println("ID: "+qresult.get(i).getId());
var aaction = helper.getInstanceForClass("com.proxemo.todo4.server.action.ToDoAnonymizeTaskAction");
aaction.execute(-1, qresult.get(i));
}
}
} else {
println("Error anonymizing tickets: No result or empty.");
}
If you save this script (with the appropriate filter criteria adjustmentde to your needs) into a scheduled script you can easily implement a custom privacy process.
If necessary, duplicate the script block to anonymize tickets from different groups or sources.