202 lines
6.0 KiB
Markdown
202 lines
6.0 KiB
Markdown
# Kundestemning på indgående sager og mails
|
|
|
|
## Status
|
|
|
|
Fremtidig udviklingsplan. Ikke implementeret.
|
|
|
|
## Formål
|
|
|
|
BMC Hub skal bruge AI til semantisk analyse af kundens stemning i indgående mails og sager. Løsningen skal give medarbejderen et rådgivende signal om stemning, hast, kunderisiko og udvikling gennem en mailtråd.
|
|
|
|
Analysen må ikke baseres på simpel matching af bestemte ord, og den må i første version ikke automatisk ændre prioritet, SLA eller ansvarlig medarbejder.
|
|
|
|
## Analysemodel
|
|
|
|
AI-resultatet gemmes pr. indgående mail i den eksisterende `email_analysis`-tabel med `analysis_type = 'customer_sentiment'`.
|
|
|
|
Foreslået JSON-resultat:
|
|
|
|
```json
|
|
{
|
|
"sentiment": "frustrated",
|
|
"sentiment_score": -0.65,
|
|
"urgency": "high",
|
|
"customer_risk": "medium",
|
|
"requires_attention": true,
|
|
"confidence": 0.88,
|
|
"reason": "Kunden har rykket flere gange og oplever fortsat driftsstop.",
|
|
"signals": [
|
|
"gentagen henvendelse",
|
|
"driftspåvirkning",
|
|
"manglende løsning"
|
|
],
|
|
"text_scope": "latest_customer_message",
|
|
"model": "qwen3.5:9b",
|
|
"prompt_version": 1
|
|
}
|
|
```
|
|
|
|
Kontrollerede værdier:
|
|
|
|
- `sentiment`: `positive`, `neutral`, `concerned`, `frustrated`, `angry`
|
|
- `urgency`: `normal`, `high`, `critical`
|
|
- `customer_risk`: `low`, `medium`, `high`
|
|
- `sentiment_score`: tal fra `-1.0` til `1.0`
|
|
|
|
## Tekstforberedelse
|
|
|
|
Før teksten sendes til AI, skal systemet så vidt muligt fjerne:
|
|
|
|
- Medarbejdernes tidligere svar
|
|
- Citerede mails
|
|
- Standardsignaturer
|
|
- Fortrolighedstekster og disclaimere
|
|
- Autosvar
|
|
- HTML, tracking-links og anden teknisk støj
|
|
|
|
AI'en skal som udgangspunkt analysere kundens seneste indgående tekst. Emnefeltet kan medtages som kontekst. Tekstrensningen må gerne være regelbaseret, men selve vurderingen skal foretages semantisk af AI.
|
|
|
|
## Promptkrav
|
|
|
|
Prompten skal holde følgende dimensioner adskilt:
|
|
|
|
1. Kundens følelsesmæssige stemning
|
|
2. Henvendelsens praktiske hast
|
|
3. Kommerciel risiko eller risiko for eskalation
|
|
|
|
Eksempel: En kunde kan være venlig eller neutral, selvom et teknisk problem er kritisk.
|
|
|
|
Modellen skal instrueres i at:
|
|
|
|
- Forstå indirekte og høfligt formuleret utilfredshed
|
|
- Undgå at overfortolke almindelig høflighed
|
|
- Skelne kundens nye tekst fra citeret historik
|
|
- Undgå vurderinger eller diagnoser af personen
|
|
- Give en kort begrundelse, der er understøttet af teksten
|
|
- Bruge lav `confidence`, når teksten er tvetydig
|
|
- Returnere ren og validerbar JSON
|
|
|
|
## Afvikling
|
|
|
|
Første version skal:
|
|
|
|
- Køre asynkront ved modtagelse af en ekstern mail
|
|
- Kun analysere indgående kundekommunikation
|
|
- Springe spam, nyhedsbreve, fakturaer og automatiske systemmails over
|
|
- Genbruge den eksisterende mailklassifikation til frasortering
|
|
- Cache resultatet, så samme mail ikke analyseres flere gange
|
|
- Understøtte manuel genanalyse
|
|
- Lade mailimporten fortsætte, hvis AI er utilgængelig
|
|
|
|
## Samlet stemning på en sag
|
|
|
|
Sagens aktuelle stemning bør bygge på den seneste relevante indgående kundemail og ikke den værste historiske vurdering.
|
|
|
|
Sagen kan vise:
|
|
|
|
- Aktuel stemning fra seneste indgående mail
|
|
- Trend baseret på de seneste 2-3 indgående mails
|
|
- Aktuel kunderisiko ved tilstrækkelig høj sikkerhed
|
|
- `forværret`, hvis scoren falder mærkbart gennem tråden
|
|
- `forbedret`, hvis scoren stiger efter dialog med kunden
|
|
|
|
## GUI
|
|
|
|
### Mailoversigt
|
|
|
|
Vis en diskret badge:
|
|
|
|
- Positiv
|
|
- Neutral
|
|
- Bekymret
|
|
- Frustreret
|
|
- Vred/kritisk
|
|
|
|
Ved klik eller hover vises hast, kunderisiko, AI-begrundelse, sikkerhed, model og analysetidspunkt.
|
|
|
|
### Sagsvisning
|
|
|
|
Vis et mindre panel med:
|
|
|
|
- Aktuel kundestemning
|
|
- Trend
|
|
- Seneste begrundelse
|
|
- Link til den mail, vurderingen kommer fra
|
|
|
|
### Senere dashboardfunktioner
|
|
|
|
- Filteret `Kræver opmærksomhed`
|
|
- Filter efter stemning, hast og kunderisiko
|
|
- Oversigt over forværret kundestemning
|
|
- Visning af kritiske henvendelser
|
|
|
|
## Manuel korrektion
|
|
|
|
Medarbejderen skal kunne:
|
|
|
|
- Markere vurderingen som korrekt eller forkert
|
|
- Vælge en anden stemning
|
|
- Tilføje en kort kommentar
|
|
|
|
Den manuelle vurdering skal gemmes separat fra det oprindelige AI-resultat. Det giver sporbarhed og et evalueringsdatasæt til senere forbedring af prompt og model.
|
|
|
|
## Automatik og sikkerhed
|
|
|
|
I første version er `requires_attention` kun et visuelt signal.
|
|
|
|
Mulige senere funktioner:
|
|
|
|
- Intern notifikation ved høj risiko
|
|
- Fremhævelse på dashboardet
|
|
- Besked til ansvarlig medarbejder
|
|
- Eskalation af kritiske beskeder uden for normal arbejdstid
|
|
|
|
Systemet må ikke automatisk sende svar til kunden eller ændre sagsprioritet uden menneskelig godkendelse.
|
|
|
|
## Test og evaluering
|
|
|
|
Opret et anonymiseret testsæt på cirka 50-100 realistiske mails, herunder:
|
|
|
|
- Positive og neutrale mails
|
|
- Direkte og indirekte utilfredshed
|
|
- Vrede mails
|
|
- Kritisk drift uden vred tone
|
|
- Ironi og tvetydige formuleringer
|
|
- Meget korte beskeder
|
|
- Lange tråde med citeret historik
|
|
- Autosvar og systemmails
|
|
- Danske og engelske henvendelser
|
|
|
|
Mål især:
|
|
|
|
- Hvor ofte kritiske mails overses
|
|
- Hvor ofte neutrale mails fejlmarkeres
|
|
- Om hast og stemning adskilles korrekt
|
|
- Om begrundelsen kan dokumenteres ud fra teksten
|
|
- Svartid og stabilitet
|
|
- Forskelle mellem de installerede modeller
|
|
|
|
## Leveringsrækkefølge
|
|
|
|
1. AI-analyse og lagring pr. indgående mail
|
|
2. Admin-testside med råt AI-resultat
|
|
3. Evaluering mod menneskeligt mærkede testmails
|
|
4. Badge i mailoversigten
|
|
5. Detaljepanel på mails og sager
|
|
6. Manuel korrektion og feedback
|
|
7. Trendberegning på mailtråde
|
|
8. Dashboard og filtre
|
|
9. Eventuelle notifikationer
|
|
|
|
## Anbefalet lancering
|
|
|
|
Start med en stille pilot, hvor nye mails analyseres og gemmes, men resultaterne kun vises på en admin-testside. Aktivér først badges og alarmer bredt, når AI-vurderingerne er sammenlignet med menneskelige vurderinger.
|
|
|
|
## Beslutninger før implementering
|
|
|
|
- Vælg den endelige AI-model ud fra modeltesten
|
|
- Fastlæg grænser for `requires_attention`
|
|
- Beslut hvem der kan se og korrigere vurderinger
|
|
- Beslut hvor længe analyser og manuelle rettelser skal gemmes
|
|
- Aftal om engelsk og andre sprog skal understøttes fra første version
|