Mail-Dienst Konfiguration
Dieser Abschnitt beschreibt die detaillierte Konfiguration des Mail-Dienstes. Die Konfiguration erfolgt in der Administrationsoberfläche und umfasst SMTP-Konten, Mail-Einstellungen, Empfängerverwaltung, Vorlagen und Anhänge.
SMTP-Konten einrichten
SMTP-Konten definieren, über welchen E-Mail-Server Nachrichten versendet werden. Sie können mehrere SMTP-Konten einrichten und diese unterschiedlichen Workflows oder Mandanten zuordnen.
SMTP-Konto-Prioritäten:
Das System wählt das SMTP-Konto in folgender Reihenfolge aus (vier Stufen):
Priorität 1: Workflow-spezifisches SMTP-Konto
- Konfiguration:
Workflow -> Verwende dieses SMTP Konto - Verwendung: Wenn ein spezifischer Workflow ein eigenes SMTP-Konto definiert hat
- Anwendungsfall: Spezielle Workflows mit besonderen Absenderanforderungen
Priorität 2: Workflow-Einstellung-spezifisches SMTP-Konto
- Konfiguration:
WorkflowSettings -> Verwende dieses SMTP Konto - Verwendung: Gilt für eine Workflow-Einstellung (Gruppe von Workflows)
- Anwendungsfall: Einheitlicher Absender für eine Gruppe zusammengehöriger Workflows
Priorität 3: Mandanten-spezifisches SMTP-Konto
- Konfiguration:
Mandant -> Verwende dieses SMTP Konto - Verwendung: Fallback wenn kein Workflow- oder Einstellungs-spezifisches SMTP-Konto definiert ist
- Anwendungsfall: Mandanten-spezifische E-Mail-Absender
Priorität 4: Standard-SMTP-Konto
- Konfiguration: SMTP-Konto mit
Standard-Konto = Aktiviert - Verwendung: Systemweiter Fallback wenn keine spezifischen Konten definiert sind
- Anwendungsfall: Allgemeine E-Mail-Versendung
Wichtig: Es muss mindestens ein Standard-SMTP-Konto im System definiert sein.
Prioritätendarstellung der SMTP-Kontenermittlung
┌──────────────────────────┐
│ 1. Workflow.UseSmtpAcount│
│ (pro Workflow konfiguriert)│
└────────────┬─────────────┘
│
gesetzt? ├── JA ──→ ✅ Verwende dieses Konto
│
NEIN
│
▼
┌───────────────────────────────┐
│ 2. WorkflowSettings.UseSmtpAcount │
│ (pro Workflow-Einstellung) │
└────────────┬──────────────────┘
│
gesetzt? ├── JA ──→ ✅ Verwende dieses Konto
│
NEIN
│
▼
┌──────────────────────────┐
│ 3. Company.UseSmtpAcount │
│ (pro Mandant konfiguriert)│
└────────────┬─────────────┘
│
gesetzt? ├── JA ──→ ✅ Verwende dieses Konto
│
NEIN
│
▼
┌──────────────────────────────┐
│ 4. Default SmtpAccount │
│ (DefaultAccount == true) │
└────────────┬─────────────────┘
│
gesetzt? ├── JA ──→ ✅ Verwende dieses Konto
│
NEIN
│
▼
┌────────────────────────────────────────┐
│ ⚠ Kein Konto auflösbar │
│ Vorgang wird übersprungen und im │
│ Skip-Journal als "Kein SMTP-Konto" │
│ vermerkt (siehe Überwachungsdienst) │
└────────────────────────────────────────┘
Ist über alle vier Stufen kein SMTP-Konto auflösbar, bricht der Mail-Dienst nicht mehr mit einer Ausnahme ab: Der betroffene Vorgang wird übersprungen, im Skip-Journal ("Übersprungene Mails") als "Kein SMTP-Konto" protokolliert und erscheint im Bericht des Überwachungsdienstes unter Handlungsbedarf.
Prioritätstabelle
| Prio | Ebene | Property | Beschreibung |
|---|---|---|---|
| 1 (höchste) | Workflow | Workflow.UseSmtpAcount |
Pro einzelnem Workflow konfigurierbar. Überschreibt alle anderen. |
| 2 | Workflow-Einstellung | WorkflowSettings.UseSmtpAcount |
Gilt für eine Workflow-Einstellung (Gruppe von Workflows). |
| 3 | Mandant | Company.UseSmtpAcount |
Mandantenweites SMTP-Konto als Fallback. |
| 4 (niedrigste) | System-Standard | SmtpAccount.DefaultAccount == true |
Globaler Fallback, wenn nichts anderes konfiguriert ist. |
SMTP-Kontotypen:
Das System unterstützt verschiedene SMTP-Server:
- Standard-SMTP: Klassische SMTP-Server (z.B. eigener Mailserver, Gmail, etc.)
- Microsoft 365 mit OAuth: Sichere Authentifizierung über OAuth für M365-Konten
SMTP-Konto erstellen:
Mail-Einstellungen
Mail-Einstellungen definieren, wann und wie E-Mails für einen bestimmten Workflow versendet werden. Sie werden pro Mandant und Workflow konfiguriert.
Grundeinstellungen:
Name und Status:
- Name: Eindeutige Bezeichnung für die Mail-Einstellung
- Aktiv: Bestimmt, ob diese Einstellung verwendet wird
Standardanrede:
- Wird verwendet, wenn keine spezifische Anrede ermittelt werden kann
- Beispiel: "Sehr geehrte Damen und Herren,"
Empfänger bei Fehlern (RecipientsForErrors):
- Kommagetrennte E-Mail-Adressen, in der Regel interne Postfächer (Buchhaltung, Administration)
- Findet der Mail-Dienst für einen Vorgang keinen Empfänger, erhalten diese Adressen einmalig eine Hinweismail „Keine Mail-Empfänger für Fall …" mit der Bitte, die Stammdaten zu prüfen. Im Mail-Journal entsteht dazu ein Eintrag mit dem Kennzeichen „Fehlende Empfänger"; für denselben Vorgang wird nicht erneut gewarnt
- Absender der Hinweismail ist die statische Absenderadresse (siehe unten)
- Leer (Standard): keine Hinweismail. Der Vorgang erscheint dann nur im Journal „Übersprungene Mails" und in der Warnmail des Überwachungsdienstes
Antworten an (ReplyTo, ReplyToName):
- Antworten an (
ReplyTo): Optionale Antwortadresse. Antwortet der Empfänger auf die Mail, geht die Antwort an diese Adresse statt an den Absender – z.B. an ein Sammelpostfach, während als Absender der Sachbearbeiter erscheint. Nur eine gültige E-Mail-Adresse wird übernommen; leer = kein Reply-To - Antworten an (Anzeigename) (
ReplyToName): Anzeigename zur Antwortadresse, z.B. „Buchhaltung Musterfirma". Wirkt nur zusammen mit einer Antwortadresse
Absender (StaticSenderAddress, StaticSenderName):
- Ohne Angabe ist der Ersteller des Vorgangs Absender: E-Mail-Adresse und Name aus dem WinLine-Benutzerstamm
- Statische Absenderadresse (
StaticSenderAddress): Feste Absenderadresse für alle Mails dieser Einstellung, z.B.[email protected]. Muss eine gültige E-Mail-Adresse sein, sonst lässt sich die Einstellung nicht speichern. Hat der Ersteller keine gültige Mailadresse (z.B. Systembenutzer, Importe) und ist hier nichts hinterlegt, scheitert die Mail mit „No Sender Information" – die statische Adresse ist dafür die Absicherung. Die Adresse muss vom SMTP-Server als Absender akzeptiert werden (Sendeberechtigung, SPF) - Name des statischen Absenders (
StaticSenderName): Anzeigename des Absenders. Wirkt auch ohne statische Adresse: dann wird die Adresse des Erstellers mit diesem Namen versendet
Zustellung und Speicherung (SaveInPab, SaveAttachmentsInJournal, SaveEmlInJournal):
- Im Postausgangsbuch speichern (
SaveInPab): Die Mail wird nicht über SMTP versendet, sondern als Eintrag in das WinLine-Postausgangsbuch des Mandanten geschrieben – mit Bezug zum Fall, zum Ersteller als Benutzer und mit dem Kennzeichen für Anhänge. Versand und Zustellung übernimmt anschließend WinLine. Im Mail-Journal gilt der Vorgang damit als verarbeitet. Gilt für den Direktversand; freigegebene Entwürfe aus dem Postausgang des WorkerService werden immer per SMTP versendet. Standard aus - Anhänge im Journal speichern (
SaveAttachmentsInJournal): Legt die Anhänge der versendeten Mail als Dateien am Journaleintrag ab, sodass sie im Mail-Journal geöffnet werden können. Erforderlich für den Entwurfsmodus (Mails als Entwurf speichern): Nur so stehen die Anhänge beim Freigeben aus dem Postausgang wieder zur Verfügung. Erhöht den Speicherbedarf der Datenbank, da die Dokumente dann zusätzlich zum Archiv im Journal liegen. Standard aus - EML im Journal speichern (
SaveEmlInJournal): Speichert die komplette Mail als EML-Datei (Kopfzeilen, Text, Anhänge) am Journaleintrag; die Datei lässt sich aus dem Journal herunterladen und in Outlook öffnen. Dateiname<Fall-ID>_<Schritt>_<Zeitstempel>.eml. Voraussetzung für „EML-Datei anhängen" in den Workflow-Einstellungen (siehe unten). Standard aus
Workflow-Einstellungen
Die Workflow-Einstellungen verbinden eine Gruppe von Workflows mit einer E-Mail-Einstellung und legen fest, was nach dem Versand im CRM geschieht. Neben Mandant, Workflows, Workflow-Eigenschaften, SMTP-Konto, Filter und Vorlage gibt es folgende Felder:
Allgemein:
| Feld | Beschreibung |
|---|---|
Alle Schritte selektieren (sonst nur aktueller) (SelectAllWorkflows) |
Standard aus: Der Mail-Dienst betrachtet je Fall nur den aktuellen (letzten) Schritt – erkennbar am WinLine-Kennzeichen „letzter Eintrag". Aktiviert: alle Schritte eines Falls werden geprüft, also auch Schritte, hinter denen bereits ein weiterer geschrieben wurde. Nötig, wenn ein Folgeschritt (z.B. eine interne Notiz) den mailrelevanten Schritt sonst „verdeckt". Erhöht die Menge der geprüften Datensätze |
Prio (Priority) |
Reihenfolge, in der die Workflow-Einstellungen eines Mandanten je Lauf abgearbeitet werden (aufsteigend, kleinere Zahl zuerst). Standard 0. Führen mehrere Einstellungen denselben Workflow, kommt die mit der kleineren Zahl zuerst zum Zug – da ein Vorgang, für den bereits ein Journaleintrag existiert, nicht erneut selektiert wird, erhält er nur aus dieser einen Einstellung eine Mail |
E-Mail-Einstellungen (MailSettings) |
Die E-Mail-Einstellung, mit der die Vorgänge dieser Workflows verarbeitet werden (Empfänger, Anhänge, Vorlage, Zeitraumfilter, Absender). Beim Anlegen einer Workflow-Einstellung wird automatisch eine neue E-Mail-Einstellung erzeugt; stattdessen kann eine bestehende zugeordnet werden, um dieselbe Konfiguration für mehrere Workflow-Gruppen zu nutzen |
Bemerkung (Remark) |
Freitext für die interne Dokumentation (Zweck der Einstellung, Ansprechpartner). Ohne Wirkung auf die Verarbeitung |
Workflow-Aktion (Schritt nach erfolgreichem Versand):
Nach erfolgreichem Versand kann der Mail-Dienst den Versand im CRM dokumentieren, indem er einen Schritt in den Fall schreibt. Voraussetzung ist die Prozessvorlage WinLineSettings:TemplateForWorkflowImport (siehe Windows-Dienst Konfiguration) und ein erreichbarer WinLine Server. Der Mailtext wird dabei als Klartext in die Beschreibung des Schritts übernommen; im Mail-Journal wird der Eintrag als „Workflow-Schritt geschrieben" markiert.
| Feld | Beschreibung |
|---|---|
Workflow-Schritt schreiben (WriteWorkflowStep) |
Hauptschalter für die Workflow-Aktion. Standard aus. Ohne diesen Schalter sind die übrigen Felder dieser Gruppe wirkungslos |
Workflow für Schreibvorgang (WorkflowToWrite) |
Der Workflow (Workflownummer), mit dem der Schritt geschrieben wird – typischerweise ein eigener Workflow „Mail versendet" oder der fachliche Folgeschritt des Prozesses. Ohne Angabe wird kein Schritt geschrieben, auch wenn der Hauptschalter aktiv ist |
Neuen Workflow erstellen (CreateNewWorkflow) |
Betrifft Vorgänge ohne Fallnummer (CRM-Aktionen mit Fall-ID 0): Ohne diese Option werden sie beim Schreiben übersprungen, da es keinen Fall gibt, an den ein Schritt gehängt werden könnte. Aktiviert: für sie entsteht ein neuer Fall. Vorgänge mit Fallnummer erhalten immer einen Folgeschritt im bestehenden Fall. Standard aus |
Workflow je Empfänger schreiben (WriteWorkflowForEachRecipient) |
Standard aus: ein Schritt je Vorgang; alle ermittelten Kontaktpersonen werden als XRM-Mehrfacheinträge angehängt (die erste als Kontakt des Schritts, falls der Fall noch keinen Kontakt hat). Aktiviert: je ermittelter Kontaktperson ein eigener Schritt – sinnvoll, wenn die Nachverfolgung pro Ansprechpartner erfolgen soll. Wirkt nur zusammen mit „Kontaktpersonen ermitteln"; ohne ermittelte Kontakte entsteht in beiden Fällen ein einzelner Schritt |
Kontaktpersonen ermitteln (IdentifyContactPersons) |
Sucht zu jeder Empfängeradresse der Mail (An und CC) den passenden Ansprechpartner im Kontaktstamm des Kundenkontos und hinterlegt ihn am geschriebenen Schritt – als Kontakt des Schritts (wenn der Fall keinen hat) oder als XRM-Eintrag. So ist im CRM nachvollziehbar, wer die Mail erhalten hat. Standard aus |
EML-Datei anhängen (AttachEmlFile) |
Hängt die versendete Mail als EML-Datei an den geschriebenen Schritt an (Ablage im WinLine-Archiv). Voraussetzung: „EML im Journal speichern" in der E-Mail-Einstellung – sonst gibt es keine EML-Datei, und der Schritt entsteht ohne Anhang. Standard aus |
Archivformular-ID für EML (ArchiveFormIdForEMlFile) |
Archivformular (Formulartyp), unter dem die EML-Datei im Archiv beschlagwortet wird. 0 = ohne Formular |
Empfängerverwaltung
Die Empfängerverwaltung bestimmt, wer die E-Mails erhält. Es gibt zwei Systeme: Klassisch und Erweitert.
Klassische Empfängerkonfiguration
Bei der klassischen Konfiguration verwenden Sie einfache Auswahloptionen (Ja/Nein): Kundenempfänger:
- An Kunden senden: Primäre E-Mail-Adresse des Kunden
- An Kundenkontakt senden: E-Mail-Adresse des zugewiesenen Ansprechpartners
- Sende an E-Mail-Adresse für Rechnungsempfang: Spezielle Rechnungs-E-Mail-Adresse
- Rückfallempfänger Kunde: Fallback auf Kunden-E-Mail wenn Kontakt nicht verfügbar
- Rückfallempfänger Standardansprechpartner: Fallback auf Standard-Ansprechpartner
Weitere Empfänger:
- An Vertreter senden: E-Mail an zugewiesenen Vertriebsmitarbeiter
- Statische Empfänger: Feste E-Mail-Adressen (kommagetrennt)
- Statische Empfänger BCC: Feste BCC-Empfänger
- Zusatzempfänger aus Personenkonto: E-Mail-Adressen aus benutzerdefinierten Feldern des Kontenstamms
- Zusatzempfänger aus Vorgang (T170): E-Mail-Adressen aus einem Feld des Vorgangs (CrmIncidencesUndSchritte)
Beispiel:
☑ An Kundenkontakt senden
☑ Rückfallempfänger Standardansprechpartner
☑ An Vertreter senden
Statische Empfänger BCC: [email protected]
Ergebnis:
- Primär: Kundenkontakt-E-Mail
- Fallback: Standard-Ansprechpartner
- Zusätzlich: Vertriebsmitarbeiter
- Immer BCC: [email protected]
Erweiterte Empfängerregeln
Für komplexere Szenarien können Sie erweiterte Empfängerregeln verwenden. Diese bieten ein flexibles Prioritätssystem mit bedingter Zustellung, Ausschlusslogik und individueller Anrede.
Aktivierung: Aktivieren Sie "Erweiterte Empfängerregeln verwenden" in den Mail-Einstellungen und weisen Sie eine Empfänger-Regel-Vorlage zu. Die klassischen Empfängeroptionen (Checkboxen) werden dann ignoriert.
Empfänger-Regel-Vorlagen
Eine Vorlage bündelt mehrere Empfängerregeln und kann in verschiedenen Mail-Einstellungen wiederverwendet werden.
| Feld | Beschreibung |
|---|---|
| Name | Bezeichnung der Vorlage |
| Beschreibung | Optionale Erklärung zum Einsatzzweck |
| Aktiv | Nur aktive Vorlagen werden verarbeitet |
| Regeln | Liste der Empfängerregeln |
Regelparameter
| Parameter | Beschreibung |
|---|---|
| Aktiv | Regel ein-/ausschalten |
| Regeltyp | Art der Empfängerquelle (siehe unten) |
| Zustellungsart | To, CC oder BCC |
| Hauptpriorität | Gruppiert Regeln in Prioritätsstufen (niedrigere Zahl = höhere Priorität) |
| Verarbeitungsreihenfolge | Reihenfolge innerhalb derselben Hauptpriorität |
| Verarbeitung bei Treffer stoppen | Stoppt die gesamte Regelverarbeitung wenn diese Regel einen Empfänger findet |
| Separate E-Mails pro Empfänger | Jeder Empfänger erhält eine eigene Mail mit persönlicher Anrede |
| Statische Empfänger | Kommagetrennte E-Mail-Adressen (nur bei Regeltyp StaticRecipients) |
| BCC pro Regel | Kommagetrennte BCC-Adressen, die nur den Mails dieser Regel hinzugefügt werden |
| Benutzerdefiniertes Feld | Feldname im Kontenstamm (CustomFieldRecipients) oder im Vorgang/T170 (IncidenceFieldRecipients). Unterstützt auch "Zusatzfeld1"-"Zusatzfeld30" Syntax (siehe Zusatzfeld-Syntax) |
| Bedingt auf Empfängertyp | Ändert die Zustellungsart wenn ein bestimmter anderer Empfängertyp existiert |
| Alternative Zustellungsart | Zustellungsart die verwendet wird wenn die Bedingung erfüllt ist |
| Ausschluss wenn vorhanden | Schließt diese Regel aus wenn einer der markierten Empfängertypen existiert (Mehrfachauswahl) |
| Bemerkung | Freitext für interne Dokumentation der Regel |
Regeltypen
| Typ | Quelle | Beschreibung |
|---|---|---|
| CustomerContact | Ansprechpartner | E-Mail-Adresse des zugeordneten Ansprechpartners im Workflow |
| Customer | Kundenstamm | Primäre E-Mail-Adresse aus der Kundenadresse |
| InvoiceEmail | Fakturierungsstamm | Rechnungsversand-E-Mail-Adresse des Kunden |
| FallbackContact | Standard-Ansprechpartner | Erster aktiver Ansprechpartner mit Sortierung < 0 |
| SalesRepresentative | Vertreterstamm | E-Mail-Adresse des zugeordneten Vertreters |
| StaticRecipients | Feste Adressen | Kommagetrennte E-Mail-Adressen direkt in der Regel |
| CustomFieldRecipients | Benutzerdefiniertes Feld (Kontenstamm) | E-Mail-Adressen aus einem Feld im Kontenstamm (semikolongetrennt) |
| IncidenceFieldRecipients | Benutzerdefiniertes Feld (Vorgang/T170) | E-Mail-Adressen aus einem Feld im Vorgang/CrmIncidencesUndSchritte (semikolongetrennt) |
| Supplier | Händlerstamm | Primäre E-Mail-Adresse aus der Adresse des zugeordneten Händlers (Incidence.Haendlerkonto) |
| SupplierContact | Ansprechpartner Händler | E-Mail-Adresse des zugeordneten Händler-Ansprechpartners (Incidence.KontaktHaendler) |
Prioritätssystem
Regeln werden nach zwei Ebenen priorisiert:
- Hauptpriorität: Gruppiert Regeln in Prioritätsstufen. Alle Regeln einer Stufe werden gemeinsam verarbeitet, bevor die nächste Stufe betrachtet wird.
- Verarbeitungsreihenfolge: Bestimmt die Reihenfolge innerhalb einer Stufe.
Empfohlene Prioritätsstufen:
| Hauptpriorität | Verwendung | Beispiel |
|---|---|---|
| 10 | Primäre Empfänger | Ansprechpartner, Kunde |
| 15 | Ergänzende Empfänger | Vertreter, zusätzliche Adressen |
| 20 | Fallback-Empfänger | Standard-Ansprechpartner |
| 30 | Statische Empfänger | Feste interne Verteiler |
Praxisbeispiele
Beispiel 1: Einfache Kundenmail mit Fallback
Szenario: Versand an den Ansprechpartner. Falls keiner vorhanden, an die Kunden-E-Mail.
| Regel | Typ | Zustellungsart | Hauptpriorität | Reihenfolge | Optionen |
|---|---|---|---|---|---|
| 1 | CustomerContact | To | 10 | 100 | Verarbeitung bei Treffer stoppen = Ja |
| 2 | Customer | To | 20 | 100 | - |
So funktioniert es:
- Hat der Workflow einen Ansprechpartner mit E-Mail? Die Mail geht an den Ansprechpartner. Da "Verarbeitung bei Treffer stoppen" aktiv ist, wird Regel 2 nicht mehr geprüft.
- Kein Ansprechpartner vorhanden? Prioritätsstufe 10 liefert keine Empfänger, daher wird Stufe 20 geprüft. Die Mail geht an die Kundenadresse.
Beispiel 2: Ansprechpartner als To, Kunde als CC
Szenario: Der Ansprechpartner erhält die Mail direkt, der Kunde soll sie als Kopie bekommen. Ohne Ansprechpartner geht die Mail direkt an den Kunden.
| Regel | Typ | Zustellungsart | Hauptpriorität | Reihenfolge | Optionen |
|---|---|---|---|---|---|
| 1 | CustomerContact | To | 10 | 100 | - |
| 2 | Customer | To | 10 | 200 | Bedingt auf = CustomerContact, Alternative = Cc |
So funktioniert es:
- Beide Regeln sind in Prioritätsstufe 10 und werden gemeinsam verarbeitet.
- Gibt es einen Ansprechpartner UND eine Kunden-E-Mail? Der Ansprechpartner bleibt als To. Der Kunde wird zu CC geändert, weil die Bedingung "CustomerContact existiert" erfüllt ist.
- Nur Kunde vorhanden (kein Ansprechpartner)? Die Bedingung ist nicht erfüllt, der Kunde bleibt als To-Empfänger.
Beispiel 3: Auftragsbestätigung mit Vertreter und internem Verteiler
Szenario: Mail geht an den Kunden. Der Vertriebsmitarbeiter bekommt eine Kopie. Ein internes Postfach erhält immer eine Blindkopie.
| Regel | Typ | Zustellungsart | Hauptpriorität | Reihenfolge | Optionen |
|---|---|---|---|---|---|
| 1 | CustomerContact | To | 10 | 100 | Separate E-Mails = Ja |
| 2 | SalesRepresentative | Cc | 15 | 100 | - |
| 3 | StaticRecipients | Bcc | 15 | 200 | Statische Empfänger = "[email protected]" |
So funktioniert es:
- Der Ansprechpartner erhält eine eigene Mail mit persönlicher Anrede (durch "Separate E-Mails").
- Der Vertreter (CC) und das Archiv-Postfach (BCC) werden in eine gemeinsame Mail gruppiert.
Beispiel 4: Rechnungsversand mit dreistufigem Fallback
Szenario: Rechnung soll zuerst an die Rechnungsversand-E-Mail gehen. Falls nicht vorhanden, an den Ansprechpartner. Zuletzt an den Standard-Ansprechpartner.
| Regel | Typ | Zustellungsart | Hauptpriorität | Reihenfolge | Optionen |
|---|---|---|---|---|---|
| 1 | InvoiceEmail | To | 10 | 100 | Verarbeitung bei Treffer stoppen = Ja |
| 2 | CustomerContact | To | 20 | 100 | Verarbeitung bei Treffer stoppen = Ja |
| 3 | FallbackContact | To | 30 | 100 | - |
So funktioniert es:
- Rechnungsversand-E-Mail vorhanden? Mail an diese Adresse, keine weitere Verarbeitung.
- Keine Rechnungsadresse, aber Ansprechpartner? Mail an Ansprechpartner, keine weitere Verarbeitung.
- Keiner von beiden? Mail an den Standard-Ansprechpartner (erster aktiver Kontakt mit Sortierung < 0).
Beispiel 5: Kunde ausschließen wenn Ansprechpartner vorhanden
Szenario: Mail soll an den Ansprechpartner gehen. Der Kunde soll nur dann eine Mail bekommen, wenn es keinen Ansprechpartner gibt (weder als To noch als CC - komplett ausgeschlossen).
| Regel | Typ | Zustellungsart | Hauptpriorität | Reihenfolge | Optionen |
|---|---|---|---|---|---|
| 1 | CustomerContact | To | 10 | 100 | - |
| 2 | Customer | To | 10 | 200 | Ausschluss wenn vorhanden = CustomerContact |
So funktioniert es:
- Ansprechpartner vorhanden? Nur der Ansprechpartner bekommt die Mail. Regel 2 (Customer) wird ausgeschlossen, weil die Bedingung "CustomerContact existiert" greift.
- Kein Ansprechpartner? Die Ausschlussbedingung ist nicht erfüllt. Der Kunde erhält die Mail.
Beispiel 6: Empfänger aus benutzerdefiniertem Feld
Szenario: Zusätzliche Empfänger stehen in einem benutzerdefinierten Feld im Kontenstamm (z. B. Feld "c555" enthält "[email protected];[email protected]").
| Regel | Typ | Zustellungsart | Hauptpriorität | Reihenfolge | Optionen |
|---|---|---|---|---|---|
| 1 | CustomerContact | To | 10 | 100 | - |
| 2 | CustomFieldRecipients | Cc | 15 | 100 | Feldname = "c555" |
So funktioniert es:
- Ansprechpartner erhält die Mail als direkter Empfänger.
- Alle E-Mail-Adressen aus dem Feld "c555" (semikolongetrennt) werden als CC hinzugefügt.
Beispiel 7: Empfänger aus einem Feld im Vorgang (T170)
Szenario: Zusätzliche Empfänger stehen in einem Feld des Vorgangs (T170/CrmIncidencesUndSchritte), z. B. im Zusatzfeld "Zusatzfeld1" enthält "[email protected];[email protected]".
| Regel | Typ | Zustellungsart | Hauptpriorität | Reihenfolge | Optionen |
|---|---|---|---|---|---|
| 1 | CustomerContact | To | 10 | 100 | - |
| 2 | IncidenceFieldRecipients | Cc | 15 | 100 | Feldname = "Zusatzfeld1" |
So funktioniert es:
- Ansprechpartner erhält die Mail als direkter Empfänger.
- Alle E-Mail-Adressen aus dem Zusatzfeld des Vorgangs (semikolongetrennt) werden als CC hinzugefügt.
- Da der Feldname "Zusatzfeld1" lautet, wird automatisch
Vorgang.Zusatz.Zusatzfeld1ausgelesen (siehe Zusatzfeld-Syntax).
Zusatzfeld-Syntax
Für die Regeltypen CustomFieldRecipients und IncidenceFieldRecipients sowie für die klassischen Felder "Zusatzempfänger Feld (Kontenstamm)" und "Zusatzempfänger Feld (Vorgang)" gibt es zwei Möglichkeiten, den Feldnamen anzugeben:
| Syntax | Beispiel | Auflösung |
|---|---|---|
| Direkter Spaltenname | C555, U000 |
Liest das Feld direkt per GetColumnValueDirect |
| Zusatzfeld-Name | Zusatzfeld1 bis Zusatzfeld30 |
Liest über die Navigation Objekt.Zusatz.ZusatzfeldN |
Wichtig: Die Zusatz-Eigenschaft kann null sein (wenn keine Zusatzfelder konfiguriert sind). In diesem Fall wird kein Empfänger aufgelöst und kein Fehler erzeugt.
Automatische Deduplizierung
Das System entfernt automatisch doppelte Empfänger anhand der E-Mail-Adresse (Groß-/Kleinschreibung wird ignoriert). Der zuerst aufgelöste Empfänger behält seine Zustellungsart.
Personalisierte Anrede
Jeder Empfänger erhält eine personalisierte Anrede basierend auf seinem Typ:
| Empfängertyp | Anrede-Quelle |
|---|---|
| Ansprechpartner | Briefanrede aus Kontaktstamm, oder generiert aus Geschlecht/Name |
| Kunde (natürliche Person) | Generierte Anrede aus der Adresse |
| Kunde (Firma) | Standard-Anrede aus den Mail-Einstellungen |
| Vertreter | Vertretername |
| Zusatzempfänger Kontenstamm | Anrede basierend auf Kundenadresse (natürliche Person) oder Standard-Anrede |
| Zusatzempfänger Vorgang (T170) | Standard-Anrede aus den Mail-Einstellungen |
| Statische Empfänger | Standard-Anrede aus den Mail-Einstellungen |
Der Platzhalter ##Empfaenger## im Mail-Text wird durch die jeweilige Anrede ersetzt. Alternativ können {SALUTATION} oder {{SALUTATION}} verwendet werden.
Zusammenspiel mit anderen Einstellungen
Die erweiterte Empfängerlogik ersetzt nur die Empfängerermittlung. Alle anderen Mail-Einstellungen funktionieren weiterhin: Anhänge, Entwurfsmodus, Postausgangsbuch, Mail-Vorlagen, Absender, Antwort-An usw.
Mail-Vorlagen
Mail-Vorlagen bestimmen den Inhalt der versendeten E-Mails. Es gibt zwei Methoden:
Textbausteine mit Platzhaltern
Einfache Textbausteine mit dynamischen Platzhaltern für Workflow-Daten.
Verfügbare Platzhalter:
Alle Eigenschaften des Workflow-Objekts können verwendet werden. Eine vollständige Übersicht aller verfügbaren Eigenschaften finden Sie in der CrmIncidencesUndSchritte-Klassendokumentation.
Beispiele:
{{Kurzbeschreibung}}- Workflow-Kurzbeschreibung{{LangbeschreibungExtern}}- Externe Langbeschreibung{{OpNummer}}- Workflow-Nummer{{AktuellsterBeleg.DatumFaktura:dd.MM.yyyy}}- Rechnungsdatum formatiert{{AktuellsterBeleg.Endbetrag:C2}}- Rechnungsbetrag als Währung{{Kunde.Kontoname1}}- Firmenname des Kunden{{Projekt.Bezeichnung1}}- Projektbezeichnung{{DatumSchrittGeschrieben:dd.MM.yyyy}}- Fallerfassungsdatum
Beispiel-Template:
##Empfaenger##
im Anhang finden Sie Ihre Rechnung {{OpNummer}} vom {{AktuellsterBeleg.DatumFaktura:dd.MM.yyyy}}.
Der Gesamtbetrag beträgt {{AktuellsterBeleg.Endbetrag:C2}}.
{{LangbeschreibungExtern}}
##Anlagen##
Hinweis: Sie können auf alle Eigenschaften und verschachtelte Objekte zugreifen (z.B. {{Kunde.Adresse.Strasse1}}, {{Projekt.Bezeichnung1}}). Formatierung erfolgt über Standard-.NET-Formatstrings. Für eine vollständige Übersicht aller Formatierungsoptionen siehe Formatangaben für Platzhalter.
Rich-Text-Vorlagen (MailMerge)
Erweiterte Vorlagen mit Formatierung, Tabellen, Bildern und bedingter Logik.
Erstellung:
Optionaler Betreff (MailTemplateSubject):
Bei Verwendung einer MailMerge-Vorlage wird standardmäßig die Kurzbeschreibung des Vorgangs als E-Mail-Betreff verwendet. Über das Feld MailTemplateSubject in den Mail-Einstellungen kann ein eigener Betreff definiert werden, der dieselben Platzhalter-Variablen unterstützt wie der restliche Mail-Inhalt (siehe Formatangaben für Platzhalter).
Beispiel: Rechnung {{OpNummer}} vom {{AktuellsterBeleg.DatumFaktura:dd.MM.yyyy}}
Wenn das Feld leer bleibt, wird weiterhin die Kurzbeschreibung des Vorgangs als Betreff verwendet.
Features:
- Formatierung (Schriftarten, Farben, Tabellen)
- Erweiterte Platzhalter mit Objektnavigation
- Bedingte Logik (If-Then-Else)
- Schleifen für Wiederholungen
- Eingebettete Bilder und Logos
Anhangsverwaltung
Die Anhangsverwaltung steuert, welche Dokumente an E-Mails angehängt werden.
Quellen für Anhänge:
- Workflow-Uploads: Dokumente, die im Workflow hochgeladen wurden
- Beleg-Anhänge: Dokumente aus verknüpften Belegen (z.B. Rechnungen, Lieferscheine)
- Archivformular-Filter: Nur Dokumente mit bestimmten Archivformularen
Konfigurationsoptionen:
Grundoptionen:
- Anhänge einschließen: Aktiviert die Anhangsfunktion
- Nur mit Anhängen: E-Mail wird nur versendet, wenn Anhänge vorhanden sind
- Archivformular-Filter: Wählt spezifische Archivformular-Typen aus
Validierungsoptionen:
- Überspringe bei fehlendem Archivformular-Anhang: Verhindert Versand, wenn erforderliche Archivformular-Anhänge fehlen
- Überspringe bei fehlendem Beleg-Anhang: Verhindert Versand, wenn Beleg-Anhänge fehlen
Weitere Optionen:
- Anhänge aus Schritt (
AttachementsFromStep): Bestimmt, aus welchen Schritten des Falls die Workflow-Uploads angehängt werden.All(Standard) – alle Schritte;First– nur der erste Schritt (Schritt 0, der Fall selbst);Second– nur Schritt 1;Last– nur der gerade verarbeitete Schritt;AllPrevious– der aktuelle Schritt und alle davor. Wirkt nur mit „Anhänge einschließen" - Filter Beleg Archivformularnummern (
FilterVoucherAttachementsArchiveFormIds): Kommagetrennte Formularnummern, z.B.10,12. Von den Dokumenten des verknüpften Belegs werden nur solche mit diesen Formularnummern angehängt – etwa nur die Rechnung, nicht auch der Lieferschein. Leer = alle Belegdokumente. Wirkt nur mit „Beleg-Anhänge"; zusammen mit „Überspringe bei fehlendem Beleg-Anhang" wird die Mail zurückgehalten, wenn kein Dokument passt - Füge Autoarchivbelege gemäß Belegartenzuordnung an (
AttachVoucherAutoarchiveEntriesFromVouchertypeWorkflow): Für Fälle, die WinLine beim Belegdruck automatisch schreibt. In der FAKT-Belegart ist je Belegstufe hinterlegt, welcher Workflow beim Druck (und beim Wiederholungsdruck) entsteht. Stimmt der Workflow des Vorgangs mit einer dieser Zuordnungen überein, wird das Autoarchiv-Dokument genau dieser Stufe des verknüpften Belegs angehängt – beim Rechnungs-Workflow also die archivierte Rechnung, beim Lieferschein-Workflow der Lieferschein. Ein Formularfilter ist dafür nicht nötig. Zusammen mit „Überspringe bei fehlendem Beleg-Anhang" wird die Mail zurückgehalten, wenn kein Autoarchiv-Eintrag existiert (Grund „Kein Autoarchiv-Eintrag zum Beleg" im Journal „Übersprungene Mails"). Standard aus
Anwendungsbeispiele:
- Rechnungsversand: Nur senden, wenn PDF-Rechnung vorhanden ist
- Auftragsbestätigung: Nur mit Auftragsformular
- Lieferbenachrichtigung: Nur mit Lieferschein
Workflow-Filter
Workflow-Filter bestimmen, welche Workflows verarbeitet werden. Sie können zeitbasierte Filter verwenden.
Zeitbasierte Filter:
Option 1: Zeitraum-Filter (Since)
- Verarbeitet Workflows der letzten X Stunden/Tage
- Format: TimeSpan (z.B. "1.00:00:00" für 1 Tag)
- Beispiel: Nur Workflows der letzten 24 Stunden
Option 2: Datum-Filter (After)
- Verarbeitet alle Workflows ab einem festen Datum
- Format: DateTime (z.B. "01.01.2024")
- Beispiel: Alle Workflows seit Jahresbeginn
Option 3: Logischer Zeitbereich-Filter (Time Range)
- Verarbeitet Workflows basierend auf logischen Zeiträumen
- Verfügbare Zeiträume:
- Dieses Jahr
- Dieser Monat
- Dieses Quartal
- Diese Woche
- Heute
- Seit gestern
- Vorteil: Keine Wartung fester Datumswerte erforderlich
- Beispiel: "Dieser Monat" verarbeitet automatisch alle Workflows seit dem 1. des aktuellen Monats
Filter-Priorität:
- Zeitraum-Filter (aktiv) wird zuerst geprüft
- Falls nicht aktiv: Datum-Filter
- Falls nicht aktiv: Logischer Zeitbereich-Filter
- Fallback: Alle Workflows seit 1970
Wichtig: Es kann immer nur ein Filter aktiv sein. Aktivieren Sie nur den Filter, der Ihren Anforderungen entspricht.
Neben den zeitbasierten Filtern lassen sich Vorgänge inhaltlich einschränken. Dafür gibt es das wiederverwendbare Objekt Filter (FilteringCriterion), das in den Workflow-Einstellungen (Filter), den Termin-Einstellungen (Filter, DeleteFilter), den OP-Versand-Einstellungen (CustomerFilter, OpenItemFilter) und den Bestellzeilen-Workflow-Einstellungen (HeaderFilter, LineFilter) zugeordnet wird. Ein Filter kann in mehreren Einstellungen verwendet werden.
| Feld | Beschreibung |
|---|---|
Beschreibung (Description) |
Sprechender Name, unter dem der Filter in den Einstellungen ausgewählt wird, z.B. „Nur Aufträge Vertrieb Süd" |
Objekttyp (ObjectType) |
Auf welche Daten sich der Filter bezieht. Er muss zur Einstellung passen: Vorgänge (CrmIncidencesUndSchritte) für Mail-Dienst, Terminsynchronisation und Überwachungsdienst; Kontenstamm (ViewKontenstamm) bzw. Offene Posten (OffenePosten) für den OP-Versand; Belegkopf (BestelldateiKopf) bzw. Belegzeile (BestelldateiMitte) für Bestellzeilen-Workflows. Mail-Dienst und Terminsynchronisation ignorieren einen Filter mit anderem Objekttyp. Wird der Objekttyp geändert, wird die Bedingung geleert |
Bedingung (Criterion) |
Die Filterbedingung in der Kriteriensprache von DevExpress, erfasst im Kriterieneditor mit den Feldern des gewählten Objekttyps – z.B. [Kundenkonto] Like '1%' And [Status] = 1 oder über Eigenschaften [Eigenschaften][[Eigenschaft] = 150]. Verschachtelte Felder wie [Kunde.Adresse.Land] sind möglich. Aufzählungswerte werden numerisch verglichen. Verweist die Bedingung auf ein Feld, das nicht aufgelöst werden kann, meldet der Überwachungsdienst „Filterkriterium nicht auswertbar"; der OP-Versand bricht den Lauf ab, statt ungefiltert zu mahnen |
Benutzerdefinierter SQL-Filter (CustomSqlFilter) |
Optional, nur für Filter auf Vorgänge: eine eigene SQL-Abfrage, die die mesokey-Werte der gewünschten Vorgänge liefert. Ist sie gesetzt, wird die Bedingung ignoriert und die Abfrage direkt in die Vorgangsselektion eingebettet (… AND t170.mesokey IN (<Abfrage>)). Der Platzhalter @mesocomp wird vor der Ausführung durch die Mandantennummer ersetzt (in Anführungszeichen, als Zeichenkette). Wird von Mail-Dienst, Terminsynchronisation und Überwachungsdienst ausgewertet (in der Warnmail als „eigener SQL-Filter" ausgewiesen); OP- und Bestellzeilen-Filter berücksichtigen das Feld nicht |
Wann lohnt sich der SQL-Filter? Ohne SQL-Filter übersetzt der Dienst die Bedingung nach Möglichkeit selbst in SQL – bei einfachen Feldvergleichen auf dem Vorgang gelingt das direkt. Verweist die Bedingung dagegen auf verknüpfte Objekte (z.B. [Kunde.Adresse.Land]) oder Sammlungen (z.B. Eigenschaften), lädt der Dienst die Kandidaten über das Objektmodell und prüft sie einzeln – bei großen Vorgangsmengen spürbar langsamer. Der SQL-Filter läuft als eine einzige Datenbankabfrage und erlaubt zudem Verknüpfungen auf Beleg-, Konten- oder Eigenschaftstabellen, die sich in der Kriteriensprache nicht ausdrücken lassen.
Vorlage (wird beim Anlegen angeboten):
SELECT DISTINCT f.mesokey
FROM dbo.T170 f (NOLOCK)
WHERE f.mesocomp = @mesocomp
-- Eigene JOIN- und WHERE-Bedingungen hier ergänzen
Regeln: nur SELECT, genau eine Ergebnisspalte mesokey, die Bedingung f.mesocomp = @mesocomp beibehalten (sonst werden Vorgänge anderer Mandanten selektiert), kein abschließendes Semikolon.
Keine Kommentare vorhanden
Keine Kommentare vorhanden