340 lines
7.4 KiB
Markdown
340 lines
7.4 KiB
Markdown
|
|
# Email Workflow System - Brugervejledning
|
||
|
|
|
||
|
|
## Oversigt
|
||
|
|
|
||
|
|
Email Workflow System automatiserer behandling af emails baseret på AI classification. Workflows består af multiple steps der udføres sekventielt når en email matcher specifikke kriterier.
|
||
|
|
|
||
|
|
## 🚀 Quick Start
|
||
|
|
|
||
|
|
### 1. Åbn Workflow Manager
|
||
|
|
Klik på "Workflow Management" knappen i email UI'et
|
||
|
|
|
||
|
|
### 2. Opret Workflow
|
||
|
|
Tre måder:
|
||
|
|
- **Fra Template**: Klik "Templates" og vælg en forudbygget workflow
|
||
|
|
- **Fra Scratch**: Klik "Ny Workflow" og byg selv
|
||
|
|
- **Dupliker Eksisterende**: Klik "Dupliker" på en eksisterende workflow
|
||
|
|
|
||
|
|
### 3. Konfigurer Workflow
|
||
|
|
|
||
|
|
#### Basis Information
|
||
|
|
- **Navn**: Beskrivende navn (fx "Leverandør Faktura Processing")
|
||
|
|
- **Beskrivelse**: Detaljeret formål
|
||
|
|
- **Classification Trigger**: Hvilken email type der trigger workflow
|
||
|
|
- **Confidence Threshold**: Minimum AI confidence (0.60-0.80 anbefalet)
|
||
|
|
- **Prioritet**: Lavere tal = højere prioritet (10 = meget høj)
|
||
|
|
|
||
|
|
#### Workflow Steps
|
||
|
|
Tilføj actions i den rækkefølge de skal udføres:
|
||
|
|
1. Klik "Tilføj Step"
|
||
|
|
2. Vælg action type fra dropdown
|
||
|
|
3. Konfigurer action parameters
|
||
|
|
4. Brug drag-and-drop til at ændre rækkefølge
|
||
|
|
|
||
|
|
### 4. Test Workflow
|
||
|
|
Klik "Test Workflow" før du gemmer for at verificere funktionalitet
|
||
|
|
|
||
|
|
### 5. Gem og Aktiver
|
||
|
|
Klik "Gem" og sørg for at enable switch er tændt
|
||
|
|
|
||
|
|
## 📋 Tilgængelige Actions
|
||
|
|
|
||
|
|
### Linking Actions
|
||
|
|
Link emails til eksisterende data:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"action": "link_to_vendor",
|
||
|
|
"params": { "match_by": "email" }
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"action": "link_to_customer",
|
||
|
|
"params": {}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Data Extraction
|
||
|
|
Ekstraher data fra emails/attachments:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"action": "extract_invoice_data",
|
||
|
|
"params": {}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"action": "extract_tracking_number",
|
||
|
|
"params": { "pattern": "CC[0-9]{4}" }
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Ticket/Case Creation
|
||
|
|
Opret tickets automatisk:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"action": "create_ticket",
|
||
|
|
"params": {
|
||
|
|
"module": "support_cases",
|
||
|
|
"priority": "normal"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"action": "create_time_entry",
|
||
|
|
"params": {}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Notifications
|
||
|
|
Send notifikationer:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"action": "send_slack_notification",
|
||
|
|
"params": {
|
||
|
|
"channel": "#alerts",
|
||
|
|
"message": "🚨 Vigtig email modtaget"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Processing Control
|
||
|
|
Styr email status:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"action": "mark_as_processed",
|
||
|
|
"params": {}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"action": "flag_for_review",
|
||
|
|
"params": { "reason": "needs_manual_review" }
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🎯 Workflow Templates
|
||
|
|
|
||
|
|
### Invoice Processing
|
||
|
|
Automatisk behandling af leverandør fakturaer:
|
||
|
|
- Link til vendor
|
||
|
|
- Ekstraher faktura data
|
||
|
|
- Marker som processed
|
||
|
|
|
||
|
|
**Classification**: `invoice`
|
||
|
|
**Confidence**: 0.70
|
||
|
|
**Priority**: 50
|
||
|
|
|
||
|
|
### Time Confirmation
|
||
|
|
Auto-link time confirmations til sager:
|
||
|
|
- Ekstraher CC#### nummer
|
||
|
|
- Opret ticket
|
||
|
|
- Marker som processed
|
||
|
|
|
||
|
|
**Classification**: `time_confirmation`
|
||
|
|
**Confidence**: 0.60
|
||
|
|
**Priority**: 30
|
||
|
|
|
||
|
|
### Spam Handler
|
||
|
|
Håndter spam emails:
|
||
|
|
- Flag for review
|
||
|
|
- Marker som processed
|
||
|
|
|
||
|
|
**Classification**: `spam`
|
||
|
|
**Confidence**: 0.80
|
||
|
|
**Priority**: 10
|
||
|
|
|
||
|
|
### Freight Note
|
||
|
|
Behandl fragtbreve:
|
||
|
|
- Ekstraher tracking nummer
|
||
|
|
- Link til kunde
|
||
|
|
- Marker som processed
|
||
|
|
|
||
|
|
**Classification**: `freight_note`
|
||
|
|
**Confidence**: 0.65
|
||
|
|
**Priority**: 40
|
||
|
|
|
||
|
|
### Bankruptcy Alert
|
||
|
|
Alert ved konkurs emails:
|
||
|
|
- Send Slack notifikation
|
||
|
|
- Flag for review
|
||
|
|
- Marker som processed
|
||
|
|
|
||
|
|
**Classification**: `bankruptcy`
|
||
|
|
**Confidence**: 0.75
|
||
|
|
**Priority**: 5
|
||
|
|
|
||
|
|
### Low Confidence Review
|
||
|
|
Fang emails med lav confidence:
|
||
|
|
- Flag for manuel review
|
||
|
|
|
||
|
|
**Classification**: `general`
|
||
|
|
**Confidence**: 0.30
|
||
|
|
**Priority**: 200
|
||
|
|
|
||
|
|
## 🔧 Advanced Features
|
||
|
|
|
||
|
|
### Import/Export
|
||
|
|
**Export**: Download workflow som JSON fil (del med andre systemer)
|
||
|
|
**Import**: Upload JSON workflow fil
|
||
|
|
|
||
|
|
### Duplicate
|
||
|
|
Kopier eksisterende workflow og tilpas - spar tid!
|
||
|
|
|
||
|
|
### Test Mode
|
||
|
|
Test workflow på specifik email uden at gemme ændringer
|
||
|
|
|
||
|
|
### JSON Editor
|
||
|
|
Switch til JSON view for direkte editing af workflow configuration
|
||
|
|
|
||
|
|
### Drag & Drop
|
||
|
|
Omarranger workflow steps ved at trække i dem
|
||
|
|
|
||
|
|
## 📊 Monitoring
|
||
|
|
|
||
|
|
### Execution History
|
||
|
|
Se alle workflow executions med:
|
||
|
|
- Status (completed/failed)
|
||
|
|
- Execution time
|
||
|
|
- Steps completed
|
||
|
|
- Error messages
|
||
|
|
|
||
|
|
### Statistics
|
||
|
|
Per-workflow stats:
|
||
|
|
- Total executions
|
||
|
|
- Success rate
|
||
|
|
- Failure count
|
||
|
|
- Last executed
|
||
|
|
|
||
|
|
### Debugging
|
||
|
|
Hvis workflow fejler:
|
||
|
|
1. Tjek execution history for error message
|
||
|
|
2. Verificer action parameters
|
||
|
|
3. Test workflow på sample email
|
||
|
|
4. Tjek confidence threshold
|
||
|
|
|
||
|
|
## ⚙️ Best Practices
|
||
|
|
|
||
|
|
### Prioritering
|
||
|
|
- **1-20**: Kritiske workflows (bankruptcy alerts, spam)
|
||
|
|
- **21-50**: Almindelige workflows (invoices, time confirmations)
|
||
|
|
- **51-100**: Low-priority workflows
|
||
|
|
- **100+**: Catch-all workflows
|
||
|
|
|
||
|
|
### Confidence Thresholds
|
||
|
|
- **0.80+**: Kun meget sikre matches
|
||
|
|
- **0.70-0.80**: Standard range (anbefalet)
|
||
|
|
- **0.60-0.70**: Acceptér mere usikkerhed
|
||
|
|
- **<0.60**: Kun til catch-all workflows
|
||
|
|
|
||
|
|
### Workflow Design
|
||
|
|
1. **Start med linking**: Link til vendor/customer først
|
||
|
|
2. **Extract data**: Hent data fra attachments
|
||
|
|
3. **Create tickets**: Opret tickets hvis nødvendigt
|
||
|
|
4. **Notify**: Send notifikationer
|
||
|
|
5. **Cleanup**: Marker som processed til sidst
|
||
|
|
|
||
|
|
### Testing
|
||
|
|
- Test altid nye workflows på sample emails
|
||
|
|
- Start med `enabled = false` og test grundigt
|
||
|
|
- Monitor execution history i de første dage
|
||
|
|
- Juster confidence threshold baseret på resultater
|
||
|
|
|
||
|
|
## 🚨 Common Issues
|
||
|
|
|
||
|
|
### Workflow kører ikke
|
||
|
|
- Tjek om workflow er enabled
|
||
|
|
- Verificer classification trigger matcher email classification
|
||
|
|
- Tjek confidence threshold (for høj?)
|
||
|
|
- Se om højere prioritet workflow har `stop_on_match = true`
|
||
|
|
|
||
|
|
### Action fejler
|
||
|
|
- Tjek execution history for error message
|
||
|
|
- Verificer action parameters er korrekte
|
||
|
|
- Tjek om required data er tilgængelig (fx PDF attachment)
|
||
|
|
- Test action individuelt
|
||
|
|
|
||
|
|
### Duplikering af actions
|
||
|
|
- Workflows med `stop_on_match = true` stopper andre workflows
|
||
|
|
- Tjek om flere workflows matcher samme email
|
||
|
|
- Brug prioritering til at styre rækkefølge
|
||
|
|
|
||
|
|
## 🔄 Migration fra Rules
|
||
|
|
|
||
|
|
Email Rules systemet er deprecated. Migrer til workflows:
|
||
|
|
|
||
|
|
1. Identificer aktive rules
|
||
|
|
2. Opret tilsvarende workflow (brug templates som udgangspunkt)
|
||
|
|
3. Test workflow grundigt
|
||
|
|
4. Disable original rule
|
||
|
|
5. Monitor execution history
|
||
|
|
|
||
|
|
Se `/docs/EMAIL_RULES_TO_WORKFLOWS_MIGRATION.md` for detaljer.
|
||
|
|
|
||
|
|
## 📚 Yderligere Dokumentation
|
||
|
|
|
||
|
|
- **Actions Reference**: Klik "Quick Guide" i Actions tab
|
||
|
|
- **Architecture**: Se `app/services/email_workflow_service.py`
|
||
|
|
- **API Endpoints**: `/api/docs` for komplet API reference
|
||
|
|
- **Migration Guide**: `/docs/EMAIL_RULES_TO_WORKFLOWS_MIGRATION.md`
|
||
|
|
|
||
|
|
## 💡 Tips & Tricks
|
||
|
|
|
||
|
|
### Template Modificering
|
||
|
|
Start med template og tilpas:
|
||
|
|
1. Vælg template der ligner din use case
|
||
|
|
2. Rediger navn og beskrivelse
|
||
|
|
3. Tilføj/fjern steps efter behov
|
||
|
|
4. Juster confidence og prioritet
|
||
|
|
5. Test og gem
|
||
|
|
|
||
|
|
### Multi-Step Workflows
|
||
|
|
Build komplekse workflows:
|
||
|
|
```
|
||
|
|
Step 1: Link to vendor
|
||
|
|
Step 2: Extract invoice data
|
||
|
|
Step 3: Create case if amount > 10000
|
||
|
|
Step 4: Send Slack notification
|
||
|
|
Step 5: Mark as processed
|
||
|
|
```
|
||
|
|
|
||
|
|
### Conditional Logic
|
||
|
|
Brug parameters til at styre adfærd:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"action": "create_ticket",
|
||
|
|
"params": {
|
||
|
|
"priority": "high",
|
||
|
|
"assign_to": "billing_team",
|
||
|
|
"condition": { "amount": { "gt": 50000 } }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Reusable Patterns
|
||
|
|
Gem ofte brugte step sekvenser som templates
|
||
|
|
|
||
|
|
## ❓ Support
|
||
|
|
|
||
|
|
Ved problemer:
|
||
|
|
1. Tjek execution history
|
||
|
|
2. Se i `/logs/` for detaljerede fejl
|
||
|
|
3. Test workflow i isolation
|
||
|
|
4. Kontakt system administrator
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Version**: 1.0
|
||
|
|
**Last Updated**: 15. december 2025
|
||
|
|
**Maintained By**: BMC Hub Development Team
|