E-Mail-Dialoge zu Threads bündeln
Wenn Sie regelmäßig mehrere E-Mails mit Kunden zu ein und demselben Problem oder Thema austauschen, möchten Sie eventuell diesen Dialog zu einem einzigen Workflow bündeln.
E-Mail-Programme wie Outlook oder Thunderbird besitzen eine ähnliche Funktion, die als "gruppierte Ansicht" bezeichnet wird: Solange beide Dialogpartner immer wieder die "Antworten-Funktion" benutzen, werden alle Nachrichten gruppiert dargestellt.
In todo4teams lässt sich dies einfach einrichten, wenn Sie in der Betreffzeile der durch todo4teams versendeten Nachrichten die Ticket-ID angeben. Das erreichen Sie, indem Sie in den Systemparametern als Wert für den Schlüssel REPLY_SUBJECT_FORMAT z.B. den Wert Re: %SUBJECT (ID: %TICKETID) speichern.
E-Mail-Antworten aus todo4teams erhalten als Betreff dann immer Re:, gefolgt vom Betreff der gesendeten Nachricht und z.B. (ID: 423123), als Referenz auf das Ticket zu dieser E-Mail.
Antwortet der Kunde wiederum auf Ihre Rück-E-Mail, so kann todo4teams diese neue E-Mail mit seiner ersten E-Mail verbinden, sofern er die Antworten-Funktion seines E-Mail-Programms vewendet hat, und der Bezug über den Betreff erhalten blieb.
Das folgende Stück Skript-Code stellt diesen Ticketbezug her und gruppiert die Tickets zu einem gemeinsamen Workflow:
{
var idarr = helper.extractByRegExp(subject.toLowerCase(),"\\(id: (\\d.+?)\\)",false);
var id=-1;
if (idarr != null && idarr.length>0)
{
id = java.lang.Long.parseLong(idarr[0]);
println ("ID"+id);
var qm = new com.proxemo.todo.bom.ToDoArchiveQueryMap(1);
qm.addNameValue(com.proxemo.todo.bom.ToDoArchiveQueryMap.ID_ATTRIBUTE, id);
var qresult = new com.proxemo.todo.server.action.ToDoQueryArchiveAction().execute(-1, qm);
println("number of results"+qresult.getTasks().size());
if (qresult.getTasks().size()>0)
{
task.setMaster(qresult.getTasks().get(0));
return true;
}
}
return false;
}
var isFollowUpTicket = ticketExists(message.getSubject());
Das Skript extrahiert die Ticket-ID aus der Betreffzeile der eintreffenden E-Mail und startet eine Archivsuche nach dem ursprünglichen Ticket. Falls dieses gefunden wird, werden beide Ticket über den Aufruf task.setMaster(parentTask) in einen Workflow gruppiert.
In den Ticket-Details können Sie dann im Tab Workflow einfach den E-Mail-Dialog mit dem Kunden anzeigen lassen.
Die oben gezeigte Skript-Funktion hat eine weiteren Nutzen: Über das in der Variablen isFollowUpTicket gespeicherte Ergebnis können Sie entscheiden, ob Sie dem Kunden erneut eine automatische E-Mail-Antwort senden möchten. In längeren Dialogen ist es kaum sinnvoll, dem Kunden den Eingang jeder seiner E-Mails zu bestätigen. Es genügt, das bei der ersten E-Mail zu tun, wenn also isFollowUpTicket==false ist.