Schlüsselwortbasierte Verteilung von E-Mails
Abhängig von Ihren Geschäftsprozessen kann es prinzipiell notwendig sein, die interne Verteilung der zentral einlaufenden E-Mails anhand von Schlüsselworten genauer zu definieren. Diese Schlüsselworte können sowohl aus den Überschrifts-/Adresszeilen als auch dem Nachrichtentext ausgelesen werden.
Hierfür starten Sie bitte todo4teams und loggen Sie sich, abhängig von Ihren Nutzerrechten, als "Admin" oder als "Superadmin" ein. Nur als Nutzer mit Administratorrechten können sie die E-Mail Postfächer bearbeiten und verwalten.
Wechseln sie zum Tab "E-Mail" und klicken Sie in einer Zeile auf die E-Mail Adresse, die Sie konfigurieren möchten. Ein Klick auf "Bearbeiten" öffnet den Konfigurations-Dialog.
Wählen Sie den Tab "Eintreffen-Aktion", um das entsprechende Skript anzulegen.
Einige Erläuterungen vorab
Das Eintreffen-Skript enthält wesentliche Objekte, die zum Ablaufen des Skripts essentiell sind und per Lese-/Schreibzugriff vom Skript ausgelesen werden.
- task: Das Ticket-Objekt, dass Sie bei Bedarf updaten können, abhängig von Ihren Anforderungen an eingehende E-Mails.
- message: Die E-Mail, aus der das Ticket erzeugt wurde. Wenn das Skript ausgeführt wird, ist das Ticket (task) bereits ausgelesen und entsprechend als "Basis Date" in Ihrer E-Mail Konfiguration definiert.
- coretext: Diese Zeichenfolge ist eine Zusammenfassung aller Textteile der Nachricht. Eine eintreffende E-Mail kann diverse Teile an Text enthalten, Klartext oder HTML-formatierte Textanteile. coretext enthält alle diese Teile und kann daher ideal genutzt werden, um nach Schlüsselworten zu suchen. Es besteht somit keine Notwendigkeit, alle verschiedenen MIME-Teile der E-Mail zu überprüfen.
- helper: Dies ist ein Hilfsobjekt, das eine Vielzahl von nützlichen Funktionen wie z.B. die Umadressierung eines Tickets bereitstellt; diese Funktionalität werden wir im Folgenden nutzen.
Das Skript
Mit dem Satz der o.g. Variablen ist es recht einfach, eine eintreffende E-Mail auf Schlüsselworte zu durchsuchen. Wir wollen nun nachvollziehen, wie eine Nachricht besonders behandelt wird, die das Wort "Salesforce" enthält. E-Mails mit diesem Schlüsselwort sollen abweichend der in den "Basis Daten" konfigurierten Einstellungen behandelt werden.
Folgender Teil des Skriptcodes wird das Ticket um den Titel "Salesforce" ergänzen und die Nachricht an eine Gruppe namens "Salesforce" verteilen:
if(coretext.toLowerCase().indexOf("salesforce")>-1){
task.title="Salesforce: "+task.title;
helper.routeToGroupByName("Salesforce");
}
Das Skript wandelt den Inhalt des coretxt so um, dass anschließend mit Hilfe der indexOf-Funktion nach dem Word "Salesforce" gesucht werden kann. indexOf wird den Fundort von "Salesforce" ausgeben bzw. den Wert von -1, wenn das Schlüsselwort in der Nachricht nicht vorkommt. Der Code innerhalb der geschweiften Klammern wird nur dann ausgeführt, wenn "Salesforce" im Text gefunden wurde.
Die Helper-Methode routeToGroupByName wird die Verteilung des Tickets ändern und an die Gruppe namens "Salesforce" weitergeben. Um sicherzugehen, dass das Skript funktioniert, muss eine Gruppe/Skill mit diesem Namen existieren und als aktiv in den Grundeinstellungen markiert sein. Alternativ kann auch die Methode routeToGroup genutzt werden, die den Vorteil hätte, dass diese die ID der Gruppe anspricht und somit unempfindlicher gegenüber Umbennungen von Gruppen o.ä. ist.
Fügen Sie bitte den o.a. vierzeiligen Code in das entsprechende Feld im Tab "Eintreffen-Aktion" ein, ändern Sie die Schlüsselworte und Gruppennamen nach Ihren Bedürfnissen. Dann bitte speichern und die Funktionalität testen, indem Sie E-Mails mit den korrespondierenden Kriterien versenden.
Wenn Sie nur die Nachrichten-Überschrift nach Schlüsselworten durchsuchen wollen, wäre folgender Code bereits ausreichend:
task.title="Alarm: "+task.title;
// ... do something special with this type of message
}
Sollten Sie nach mehr als einem Schlüsselwort suchen wollen, wäre möglich:
message.getSubject().indexOf("Emergency:")>-1 ||
message.getSubject().indexOf("Important:")>-1 ){
task.title="Alarm: "+task.title;
// ... do something special with this type of message
}
In diesem Fall wird die Überschrift nach "Alarm", "Emergency" und "Important" durchsucht und die Ergebnisse als Oder-Verknüpfung ausgegeben, in der Syntax von Javascript ist dies "||".