Warum das sinnvoll ist
Weil Du nicht alle E-Mails gleich behandeln willst.
Ein Kunde, der freundlich nachfragt, kann warten.
Ein verÀrgerter Auftraggeber nicht.
Mit GPT kannst Du die Stimmung in eingehenden Mails automatisch bewerten lassen.
Outlook + VBA reicht dafĂŒr. Kein Add-In nötig.
Ziel: Stimmung erkennen = besser priorisieren
Die KI soll Dir sagen:
positiv, neutral, negativ
Optional mit Score. Dann kannst Duâs gewichten.
Das geht mit GPT (OpenAI) oder alternativen Modellen (z.âŻB. Hugging Face).
Was Du brauchst
- Outlook Classic (mit VBA)
- OpenAI API-Key
- Ein paar Hilfsfunktionen
- Eine sinnvolle Zuordnung der Analyse zur Mail (z.âŻB. in Kategorie, Betreff oder UserProperty)
Schritt 1: Mailtext holen
Function HoleMailText() As String
Dim mail As Outlook.MailItem
Set mail = Application.ActiveInspector.CurrentItem
HoleMailText = mail.Body
End Function
Schritt 2: GPT-Analyse starten
Function AnalysiereStimmungGPT(text As String) As String
Dim http As Object
Dim json As String
Dim apiKey As String
Dim prompt As String
apiKey = "DEIN_OPENAI_API_KEY"
prompt = "Analysiere die Stimmung dieser E-Mail: """ & text & """." & _
" Gib nur JSON zurĂŒck mit den Feldern ""stimmung"" (positiv/neutral/negativ) und ""score"" (-1 bis 1)."
json = "{" & _
"""model"": ""gpt-4""," & _
"""messages"":[{""role"":""user"",""content"":""" & Replace(prompt, """", "\""") & """}]" & _
"}"
Set http = CreateObject("MSXML2.ServerXMLHTTP")
http.Open "POST", "https://api.openai.com/v1/chat/completions", False
http.setRequestHeader "Content-Type", "application/json"
http.setRequestHeader "Authorization", "Bearer " & apiKey
http.Send json
AnalysiereStimmungGPT = http.responseText
End Function
Schritt 3: JSON auslesen
Function ExtrahiereFeld(json As String, feldname As String) As String
Dim sc As Object
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
sc.AddCode "function val(j,f){return JSON.parse(JSON.parse(j).choices[0].message.content)[f];}"
ExtrahiereFeld = sc.Run("val", json, feldname)
End Function
Schritt 4: Ergebnis in Outlook setzen
Kategorie ist simpel. Alternativ kannst Du ein UserProperty oder die FlagColor setzen.
Sub MarkiereMailNachStimmung()
Dim mail As Outlook.MailItem
Set mail = Application.ActiveInspector.CurrentItem
Dim text As String
Dim json As String
Dim stimmung As String
Dim score As String
text = HoleMailText()
json = AnalysiereStimmungGPT(text)
stimmung = ExtrahiereFeld(json, "stimmung")
score = ExtrahiereFeld(json, "score")
Select Case stimmung
Case "negativ"
mail.Categories = "đŽ Dringend"
Case "neutral"
mail.Categories = "đĄ Beobachten"
Case "positiv"
mail.Categories = "đą Ruhig"
End Select
mail.UserProperties.Add "Stimmungs-Score", olText
mail.UserProperties("Stimmungs-Score").Value = score
mail.Save
MsgBox "Analyse abgeschlossen: " & stimmung & " (" & score & ")"
End Sub
Was das bringt
Stimmung | Kategorie | PrioritÀt |
---|---|---|
negativ | đŽ Dringend | Hoch |
neutral | đĄ Beobachten | Mittel |
positiv | đą Ruhig | Niedrig |
Du kannst die Farben oder Kategorien anpassen.
Oder die Mails automatisch verschieben, flaggen, eskalieren.
Erweiterungsideen
- Automatisch auf âAntwort erforderlichâ setzen bei kritischen Mails
- Score in Spalte der Outlook-Ansicht anzeigen
- Analyse fĂŒr mehrere Mails in Ordner per Batch
- Kombination mit GPT-Zusammenfassung der Mail
Was Du beachten musst
- GPT ist gut, aber nicht unfehlbar
- Ironie erkennt es nicht zuverlÀssig
- Zu lange Mails ggf. kĂŒrzen oder Fokus auf letzten Teil legen
- Antwortzeit 1â5 Sekunden je nach Modell
âNicht jede E-Mail schreit laut. Aber GPT hört trotzdem, wennâs brennt.â
Wenn Du sowas brauchst â ich setz Dir das produktiv auf.
Kein Add-In, kein Theater. Nur Outlook und Logik. LĂ€uft.
Keine Antworten