DATEV mit n8n verbinden: Outlook-Anhänge automatisch in DATEV DMS archivieren
2026-02-27
Technischer Praxisartikel: So funktioniert ein n8n-Workflow, der Outlook-Anhänge verarbeitet, einem DATEV-Mandanten zuordnet, in DATEV DMS ablegt und Slack benachrichtigt.
DATEV mit n8n verbinden: Outlook-Anhänge automatisch in DATEV DMS archivieren
n8n ist für viele Kanzleien, TaxTech-Anbieter und IT-Partner ein naheliegendes Werkzeug: E-Mails verarbeiten, Daten prüfen, APIs aufrufen, Benachrichtigungen senden, Workflows bauen.
Bei DATEV wird es aber schnell spezieller.
DATEV ist nicht einfach ein weiterer SaaS-Endpunkt mit einer öffentlichen REST API für alles. Je nach Use Case liegen die Daten in DATEV Online oder in der DATEV Desktop-Umgebung - dort etwa in DATEV DMS, Rechnungswesen oder den Stammdaten. Für viele Kanzlei-Workflows ist deshalb nicht die n8n-Logik das schwierige Thema, sondern der saubere Zugriff auf die passende DATEV-Umgebung.
In diesem Artikel schauen wir uns einen konkreten n8n-Workflow an:
Outlook-E-Mail kommt rein → relevante Anhänge werden gefiltert → ein DATEV-Mandant wird eindeutig gesucht → Datei wird in DATEV DMS hochgeladen → Dokument wird mit Metadaten erstellt → Outlook wird als archiviert markiert und verschoben → Slack bekommt eine technische Erfolgsmeldung.
Das Beispiel basiert auf einem n8n-Workflow mit Klardaten DATEVconnect Nodes: Archive Outlook email attachments to DATEV DMS with Slack notifications
Für wen ist dieser Artikel gedacht?
Dieser Artikel richtet sich an:
- Entwickler und IT-Teams in Steuerkanzleien, die Workflow-Automatisierungen aufbauen
- TaxTech-Anbieter, die DATEV-Funktionen in ihre Produkte integrieren
- IT-Partner, die DATEV-Umgebungen betreuen
- Technische Product Teams und CTOs, die DATEV-Workflows produktionsfähig aufbauen
- n8n-Nutzer, die n8n mit DATEV DMS verbinden möchten
Der Artikel ist bewusst technisch. Kein Schritt-für-Schritt-Tutorial für n8n-Einsteiger, aber konkret genug, um zu verstehen, wie der Workflow aufgebaut ist und wo die echten Stolperstellen im Produktiveinsatz liegen.
Der Use Case: E-Mail-Anhänge automatisch in DATEV DMS ablegen
Viele Kanzleien bekommen Dokumente weiterhin per E-Mail:
- Verträge
- Bescheide
- Auswertungen
- Lohnunterlagen
- Bankdokumente
- PDF-Anhänge von Mandanten
- Scans aus Fachabteilungen
- exportierte Reports aus Drittsystemen
Manuell sieht der Prozess oft so aus:
- E-Mail öffnen
- Anhang herunterladen
- Mandant in DATEV suchen
- DATEV DMS öffnen
- Dokument ablegen
- Dokumentart, Zeitraum, Beschreibung und weitere Felder setzen
- E-Mail markieren oder verschieben
- Kollegen informieren
Das ist kein komplexer Denkprozess. Es ist wiederholbare Arbeit. Genau dafür eignet sich n8n.
Aber: Eine produktive DATEV-DMS-Automatisierung ist mehr als "PDF hochladen". Der Workflow muss wissen, zu welchem Mandanten das Dokument gehört, welche Anhänge wirklich archiviert werden sollen, welche Metadaten gesetzt werden und mit welchem DATEV-Benutzerkontext der Zugriff erfolgt.
Architektur des Workflows
Der Beispiel-Workflow besteht aus diesen Systemen:
Microsoft Outlook
↓
n8n
↓
Klardaten DATEVconnect Nodes
↓
Klardaten DATEVconnect Gateway
↓
DATEV DMS
↓
Outlook / SlackMicrosoft Outlook
↓
n8n
↓
Klardaten DATEVconnect Nodes
↓
Klardaten DATEVconnect Gateway
↓
DATEV DMS
↓
Outlook / SlackDie Rollen sind klar getrennt:
- Outlook liefert die E-Mail und die Anhänge.
- n8n steuert die Workflow-Logik.
- Klardaten DATEVconnect Nodes kapseln die DATEVconnect-Aufrufe in n8n.
- DATEVconnect Gateway stellt den Zugriff auf DATEVconnect bereit.
- DATEV DMS speichert Datei und Dokumenteintrag.
- Outlook wird am Ende aktualisiert, damit die Mail nicht erneut bearbeitet wird.
- Slack meldet optional den technischen Erfolg.
Der Workflow im Überblick
Der Workflow heißt:
Archive Outlook email attachments to DATEV DMS with Slack notificationsArchive Outlook email attachments to DATEV DMS with Slack notificationsDas Template ist direkt auf n8n.io verfügbar: Archive Outlook email attachments to DATEV DMS with Slack notifications
Das JSON enthält 23 Nodes: sechs Sticky Notes zur Dokumentation und 17 ausführende Nodes.
Fachlich passiert Folgendes:
- Outlook triggert nur bei E-Mails mit Anhängen, die noch nicht als archiviert oder prüfpflichtig markiert sind.
- Ein Konfigurationsnode setzt Kategorien und DATEV-DMS-Standardwerte.
- Ein Demo-Code-Node leitet aus dem Betreff einen möglichen Mandantenhinweis ab.
- DATEV-Stammdaten werden mit diesem Filter durchsucht.
- Nur genau ein Treffer darf automatisch weiterlaufen.
- Kein Treffer oder mehrere Treffer führen zur Outlook-Kategorie
DMS_REVIEW_REQUIRED. - Anhänge werden in einzelne Items aufgeteilt und vorgefiltert.
- Nur archivfähige Dateien werden nach DATEV DMS hochgeladen.
- Der aktuelle DATEV-Benutzer wird geholt.
- Datei, Mandant, Benutzer und DMS-Konfiguration werden zusammengeführt.
- Für jede Datei wird ein DMS-Dokumenteintrag erstellt.
- Erst nach erfolgreicher DATEV-Verarbeitung wird die Outlook-Mail als
DMS_ARCHIVEDmarkiert und in den Archivordner verschoben. - Slack erhält eine minimale Erfolgsmeldung mit Dokumentanzahl und n8n Execution ID.
Die wichtigsten ausführenden Nodes:
| Node | Typ | Aufgabe |
|---|---|---|
Outlook - New email with attachments |
Microsoft Outlook Trigger | Lädt neue Outlook-Mails mit Anhängen und schließt bereits bearbeitete Kategorien aus |
Template - Configure variables |
Set Node | Bündelt Kategorien, DMS-Metadaten und Demo-Matching-Defaults |
Demo - Configure processing |
Code Node | Erzeugt E-Mail-Kontext, DMS-Konfiguration und einen Demo-Mandantenfilter |
DATEV - Look up demo client |
Klardaten DATEVconnect Master Data | Sucht DATEV-Mandanten anhand des Demo-Filters |
Demo - Evaluate client match |
Code Node | Bewertet, ob kein, ein oder mehrere Mandanten gefunden wurden |
Demo - Exactly one client? |
IF Node | Lässt nur eindeutige Treffer automatisch weiterlaufen |
Attachments - Split and filter documents |
Code Node | Wandelt Anhänge in einzelne Items um und filtert nicht relevante Dateien |
Attachments - Has archiveable document? |
IF Node | Trennt archivfähige Anhänge von Review-Fällen |
DATEV DMS - Upload file |
Klardaten DATEVconnect Document Management | Lädt die Binärdatei als Document File hoch |
DATEV - Get current user |
Klardaten DATEVconnect IAM | Holt den aktuellen DATEV-Benutzer |
DATEV DMS - Combine upload context |
Merge Node | Führt Benutzer, Upload und Attachment-Kontext zusammen |
DATEV DMS - Create document |
Klardaten DATEVconnect Document Management | Erstellt den DMS-Dokumenteintrag |
Archive - Summarize successful DMS archive |
Code Node | Fasst die erfolgreiche Archivierung für Outlook und Slack zusammen |
Outlook - Mark archived |
Microsoft Outlook Node | Setzt DMS_ARCHIVED und markiert die Mail als gelesen |
Outlook - Move to archive folder |
Microsoft Outlook Node | Verschiebt die Mail in den Archivordner |
Slack - Notify archive success |
Slack Node | Sendet eine datensparsame Erfolgsmeldung |
Outlook - Mark review required |
Microsoft Outlook Node | Markiert unklare Fälle mit DMS_REVIEW_REQUIRED |
Schritt 1: Outlook Trigger
Der Workflow startet mit einem Microsoft Outlook Trigger:
{
"type": "n8n-nodes-base.microsoftOutlookTrigger",
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"filters": {
"custom": "contains(subject,'GmbH') and not(categories/any(c:c eq 'DMS_ARCHIVED')) and not(categories/any(c:c eq 'DMS_REVIEW_REQUIRED'))",
"hasAttachments": true
},
"options": {
"attachmentsPrefix": "attachment_",
"downloadAttachments": true
}
}{
"type": "n8n-nodes-base.microsoftOutlookTrigger",
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"filters": {
"custom": "contains(subject,'GmbH') and not(categories/any(c:c eq 'DMS_ARCHIVED')) and not(categories/any(c:c eq 'DMS_REVIEW_REQUIRED'))",
"hasAttachments": true
},
"options": {
"attachmentsPrefix": "attachment_",
"downloadAttachments": true
}
}Wichtig sind drei Punkte.
Erstens:
"hasAttachments": true"hasAttachments": trueDer Trigger holt nur E-Mails mit Anhängen. Das ist sauberer als alle Mails zu laden und später erst zu verwerfen.
Zweitens:
"downloadAttachments": true"downloadAttachments": trueDamit lädt n8n die Anhänge direkt als Binary Data herunter.
Drittens:
"not(categories/any(c:c eq 'DMS_ARCHIVED'))"
"not(categories/any(c:c eq 'DMS_REVIEW_REQUIRED'))""not(categories/any(c:c eq 'DMS_ARCHIVED'))"
"not(categories/any(c:c eq 'DMS_REVIEW_REQUIRED'))"Bereits archivierte oder manuell zu prüfende Mails werden nicht erneut verarbeitet. Das ist ein erster Schutz gegen doppelte Verarbeitung.
Der Ausdruck:
contains(subject,'GmbH')contains(subject,'GmbH')ist Demo-Logik. Für echte Kanzlei-Workflows sollte dieser Teil durch eine fachlich passende Auswahl ersetzt werden: dedizierter Outlook-Ordner, Shared Mailbox, Kategorie, Absenderregel, Betreffkonvention oder ein anderer Eingangskanal.
Schritt 2: Konfiguration zentral setzen
Der Node Template - Configure variables bündelt zentrale Workflow-Werte, damit Kategorien und DMS-Basisdaten an einer Stelle gepflegt werden.
Die wichtigsten Werte sind:
templateConfig.clientSubjectHintLegalForms = gmbh,ug,ag,kg,ohg,gbr,e.k.
templateConfig.clientFilterFallback = status eq active
templateConfig.reviewCategory = DMS_REVIEW_REQUIRED
templateConfig.archivedCategory = DMS_ARCHIVED
templateConfig.dms.classId = 1
templateConfig.dms.className = Dokument
templateConfig.dms.domainId = 1
templateConfig.dms.domainName = Mandanten
templateConfig.dms.folderId = 2
templateConfig.dms.folderName = <Keine Angabe>templateConfig.clientSubjectHintLegalForms = gmbh,ug,ag,kg,ohg,gbr,e.k.
templateConfig.clientFilterFallback = status eq active
templateConfig.reviewCategory = DMS_REVIEW_REQUIRED
templateConfig.archivedCategory = DMS_ARCHIVED
templateConfig.dms.classId = 1
templateConfig.dms.className = Dokument
templateConfig.dms.domainId = 1
templateConfig.dms.domainName = Mandanten
templateConfig.dms.folderId = 2
templateConfig.dms.folderName = <Keine Angabe>Produktiv sollten hier mindestens diese Fragen beantwortet werden:
- Welche Outlook-Kategorie bedeutet "archiviert"?
- Welche Outlook-Kategorie bedeutet "manuelle Prüfung"?
- Welche DMS-Klasse wird für die Dokumente verwendet?
- Welche Domain und welcher Ordner sind korrekt?
- Soll der Zeitraum aus Eingangsdatum, Belegdatum, Betreff, Anhang oder einem anderen Signal kommen?
Schritt 3: Demo-Mandantenfilter erzeugen
Der Node Demo - Configure processing bereitet den Kontext für die Verarbeitung vor.
Er nimmt die Outlook-Mail, liest die Template-Konfiguration und versucht, aus dem Betreff einen Firmennamen zu erkennen. Dafür nutzt der Workflow die konfigurierten Rechtsformen wie GmbH, UG, AG, KG, OHG, GbR oder e.K..
Der zentrale Teil ist:
const datevClientFilter = companyNameFromSubject
? `status eq active and name eq '${escapeODataString(companyNameFromSubject)}'`
: fallbackClientFilter;const datevClientFilter = companyNameFromSubject
? `status eq active and name eq '${escapeODataString(companyNameFromSubject)}'`
: fallbackClientFilter;Findet der Demo-Code im Betreff einen plausiblen Firmennamen, wird ein DATEV-Stammdatenfilter auf diesen Namen gebaut. Wird kein Hinweis gefunden, fällt der Workflow auf den Fallback zurück:
status eq activestatus eq activeWichtig: Das ist bewusst nur Demo-Matching.
Für produktive Workflows ist dieser Node der Bereich, der fast immer ersetzt werden muss. Der richtige Mandant darf nicht nur zufällig oder grob geraten werden. Ein DMS-Dokument beim falschen Mandanten ist kein kleiner technischer Fehler, sondern ein fachlicher Schaden.
Produktives Mandantenmatching
Ein produktiver Workflow sollte den Mandanten aus verlässlichen Signalen ableiten. Dafür gibt es mehrere Strategien.
1. Matching über Absenderadresse
Beispiel:
rechnung@mandant-gmbh.de → Mandant GmbHrechnung@mandant-gmbh.de → Mandant GmbHDas funktioniert gut, wenn Mandanten feste Absenderadressen nutzen.
Problem: Viele Dokumente kommen von Dritten, zum Beispiel Banken, Versicherungen, Behörden oder Portalen. Dann ist die Absenderadresse nicht der Mandant.
2. Matching über Absenderdomain
Beispiel:
*@mandant-gmbh.de → Mandant GmbH*@mandant-gmbh.de → Mandant GmbHDas ist robuster als einzelne E-Mail-Adressen, aber immer noch begrenzt.
Problem: Steuerberater bekommen viele Dokumente von Domains, die nicht eindeutig einem Mandanten gehören.
3. Matching über Betreff
Beispiel:
[12345] Jahresabschluss 2026[12345] Jahresabschluss 2026oder:
Mandant 10042 - BescheidprüfungMandant 10042 - BescheidprüfungDas funktioniert gut, wenn interne Regeln eingehalten werden.
Problem: Freitext-Betreffe sind fehleranfällig.
4. Matching über dedizierte Outlook-Ordner
Beispiel:
Posteingang/DMS/Mandant 10042Posteingang/DMS/Mandant 10042Dann ist der Ordner bereits die Zuordnung.
Das ist oft pragmatisch. Besonders für Kanzleien, die lieber halbautomatisch starten wollen.
5. Matching über Mapping-Tabelle
Eine Mapping-Tabelle kann z. B. enthalten:
| Regel | DATEV-Mandant |
|---|---|
*@mandant-gmbh.de |
Mandant GmbH |
bank@example.com + IBAN DE... |
Mandant GmbH |
Betreff enthält Kdnr 4711 |
Mandant GmbH |
Diese Tabelle kann in Postgres, Airtable, Google Sheets, einem internen System oder einer eigenen kleinen Datenbank liegen.
6. Review Queue bei unsicherer Zuordnung
Nicht jeder Fall sollte automatisch entschieden werden.
Ein sauberer produktiver Workflow hat meistens einen Zwischenzustand:
Mandant eindeutig gefunden → automatisch in DATEV DMS ablegen
Mandant nicht eindeutig → Review Queue
Mandant nicht gefunden → manuelle PrüfungMandant eindeutig gefunden → automatisch in DATEV DMS ablegen
Mandant nicht eindeutig → Review Queue
Mandant nicht gefunden → manuelle PrüfungGenau diesen Grundgedanken bildet das Template bereits ab: Nur ein eindeutiger Treffer läuft automatisch weiter. Alles andere bekommt eine Review-Kategorie in Outlook.
Schritt 4: DATEV-Mandant suchen und Treffer bewerten
Der Node DATEV - Look up demo client nutzt den Klardaten DATEVconnect Master Data Node:
{
"top": 100,
"filter": "={{ $json.demoConfig.datevClientFilter }}"
}{
"top": 100,
"filter": "={{ $json.demoConfig.datevClientFilter }}"
}Die Erhöhung auf top: 100 ist wichtig. Der Workflow will nicht einfach den ersten Treffer nehmen. Er will wissen, ob der Treffer eindeutig ist.
Danach bewertet Demo - Evaluate client match die Ergebnisliste:
const status = uniqueClients.length === 1
? 'exact'
: uniqueClients.length === 0
? 'not_found'
: 'multiple';const status = uniqueClients.length === 1
? 'exact'
: uniqueClients.length === 0
? 'not_found'
: 'multiple';Der Workflow unterscheidet also drei Zustände:
| Status | Bedeutung | Folge |
|---|---|---|
exact |
genau ein DATEV-Mandant gefunden | automatische Archivierung |
not_found |
kein DATEV-Mandant gefunden | Outlook wird auf Review gesetzt |
multiple |
mehrere DATEV-Mandanten gefunden | Outlook wird auf Review gesetzt |
Der IF Node Demo - Exactly one client? lässt nur exact in den DMS-Zweig.
Das ist die zentrale fachliche Regel: Der Workflow priorisiert richtige Zuordnung über blinde Automatisierung.
Schritt 5: Anhänge aufteilen und filtern
Der Node Attachments - Split and filter documents nimmt die Binary Attachments der Outlook-Mail und erzeugt daraus einzelne n8n Items.
n8n speichert mehrere Anhänge einer E-Mail als mehrere Binary-Felder, zum Beispiel:
attachment_0
attachment_1
attachment_2attachment_0
attachment_1
attachment_2Der Workflow legt jeden archivfähigen Anhang auf den Binary-Key data, weil der spätere DATEV Upload Node diesen Key erwartet:
binary: {
data: attachment.binary,
}binary: {
data: attachment.binary,
}Aus einer E-Mail mit drei archivfähigen Anhängen werden also drei Items:
Item 1 → binary.data = attachment_0
Item 2 → binary.data = attachment_1
Item 3 → binary.data = attachment_2Item 1 → binary.data = attachment_0
Item 2 → binary.data = attachment_1
Item 3 → binary.data = attachment_2Der Node filtert außerdem typische Nicht-Dokumente heraus:
- Kalenderdateien wie
.ics - Kontaktdateien wie
.vcf - Inline-Anhänge
- kleine Signaturbilder
- typische Logo-, Banner- oder Social-Media-Bilder
Wenn nach der Filterung kein archivfähiger Anhang übrig bleibt, erzeugt der Node kein DMS-Upload-Item, sondern einen Review-Fall:
No archiveable document attachments were found after filtering.No archiveable document attachments were found after filtering.Das ist fachlich sinnvoll: Eine E-Mail kann technisch Anhänge haben, aber fachlich trotzdem kein DMS-Dokument enthalten.
Schritt 6: DMS-Zeitraum bestimmen
Der Attachment-Node setzt außerdem einen DMS-Zeitraum:
const receivedAt = evaluated.email?.receivedAt ?? new Date().toISOString();
const receivedDate = new Date(receivedAt);
const periodDate = Number.isNaN(receivedDate.getTime()) ? new Date() : receivedDate;const receivedAt = evaluated.email?.receivedAt ?? new Date().toISOString();
const receivedDate = new Date(receivedAt);
const periodDate = Number.isNaN(receivedDate.getTime()) ? new Date() : receivedDate;Im Output steht dann:
{
"dmsPeriod": {
"year": 2026,
"month": 2,
"source": "email_received_date",
"receivedAt": "...",
"processedAt": "..."
}
}{
"dmsPeriod": {
"year": 2026,
"month": 2,
"source": "email_received_date",
"receivedAt": "...",
"processedAt": "..."
}
}Das Template nutzt also das Eingangsdatum der E-Mail als Standard für Jahr und Monat. Wenn das Datum nicht lesbar ist, fällt es auf das Verarbeitungsdatum zurück.
Produktiv sollte man prüfen, ob das fachlich stimmt. Für manche Dokumente ist das Eingangsdatum sinnvoll. Für andere ist das Belegdatum, Leistungsdatum, Lohnmonat oder Wirtschaftsjahr relevanter.
Schritt 7: Document File in DATEV DMS hochladen
Der Node DATEV DMS - Upload file nutzt den Klardaten DATEVconnect Document Management Node:
{
"resource": "documentFile",
"operation": "upload",
"binaryData": "data"
}{
"resource": "documentFile",
"operation": "upload",
"binaryData": "data"
}Dieser Schritt lädt die eigentliche Datei hoch.
Wichtig: Das ist noch nicht der vollständige Dokumenteintrag in DATEV DMS. Der Upload erzeugt zunächst eine Datei-Ressource, die später im Dokument referenziert wird.
Schritt 8: Aktuellen DATEV-Benutzer holen
Parallel dazu läuft der Node DATEV - Get current user:
{
"type": "@klardaten/n8n-nodes-datevconnect.identityAndAccessManagement",
"parameters": {
"resource": "currentUser"
}
}{
"type": "@klardaten/n8n-nodes-datevconnect.identityAndAccessManagement",
"parameters": {
"resource": "currentUser"
}
}Der Workflow verwendet den Benutzer später im Dokument:
user: {
id: $('DATEV - Get current user').item.json.id
}user: {
id: $('DATEV - Get current user').item.json.id
}Das ist wichtig, weil DMS-Dokumente nicht nur aus Datei und Mandant bestehen. Sie haben auch Kontextinformationen wie Benutzer, Domain, Ordner, Zeitraum und Struktur.
Für produktive Setups muss sauber geklärt werden:
- Unter welchem DATEV-Kontext läuft der Zugriff?
- Welche Rechte hat dieser Benutzer?
- Ist das ein technischer Benutzer oder ein echter Benutzerkontext?
- Welche Dokumente darf dieser Kontext sehen oder erstellen?
- Wie passt das zum Berechtigungskonzept der Kanzlei?
Gerade bei DMS ist Benutzerkontext kein Detail. Es geht um Sichtbarkeit, Zugriff und Nachvollziehbarkeit.
Schritt 9: Daten per Merge Node zusammenführen
Der Workflow nutzt DATEV DMS - Combine upload context:
{
"mode": "combine",
"combineBy": "combineByPosition",
"numberInputs": 3
}{
"mode": "combine",
"combineBy": "combineByPosition",
"numberInputs": 3
}Drei Inputs laufen zusammen:
- aktueller DATEV-Benutzer
- Attachment-Kontext
- hochgeladene Document File ID
Danach hat der DMS-Create-Node alles, was er braucht:
- Binärdaten-Metadaten aus dem Attachment
- DATEV-Mandant aus der Match-Bewertung
- DATEV-Benutzer aus IAM
- DMS-Standardwerte aus der Template-Konfiguration
- Document File ID aus dem Upload
Risiko bei combineByPosition
combineByPosition ist einfach, aber man muss verstehen, was passiert.
Der Merge kombiniert Items anhand ihrer Position in der Item-Liste. Das ist okay, wenn alle Inputs zuverlässig dieselbe Anzahl und Reihenfolge von Items liefern.
Bei mehreren Anhängen sollte man das produktiv testen:
- eine E-Mail mit einem Anhang
- eine E-Mail mit mehreren Anhängen
- mehrere E-Mails nacheinander
- Uploadfehler bei einem von mehreren Anhängen
- leere oder defekte Anhänge
Für kritische Workflows ist manchmal eine explizite Item-ID oder ein sauberer Loop robuster als ein reines Merge by Position.
Schritt 10: Dokument in DATEV DMS erstellen
Der wichtigste DMS-Node ist DATEV DMS - Create document.
Er nutzt wieder den Klardaten Document Management Node:
{
"operation": "create"
}{
"operation": "create"
}Das Dokument wird sinngemäß mit diesem Payload erstellt:
{
extension: $json.attachment.extension || '',
description: `Email attachment: ${$json.attachment.fileName || 'Unnamed file'}`,
class: {
name: $json.demoConfig.dms.className,
id: $json.demoConfig.dms.classId,
},
correspondence_partner_guid: $json.client.id,
user: {
id: $('DATEV - Get current user').item.json.id,
},
domain: {
name: $json.demoConfig.dms.domainName,
id: $json.demoConfig.dms.domainId,
},
folder: {
id: $json.demoConfig.dms.folderId,
name: $json.demoConfig.dms.folderName,
},
year: $json.dmsPeriod.year,
month: $json.dmsPeriod.month,
structure_items: [
{
counter: 1,
type: 1,
document_file_id: $('DATEV DMS - Upload file').item.json.id,
name: $json.attachment.fileName || 'Unnamed file',
parent_counter: 0,
creation_date: $json.dmsPeriod.processedAt,
last_modification_date: $json.dmsPeriod.processedAt,
},
],
}{
extension: $json.attachment.extension || '',
description: `Email attachment: ${$json.attachment.fileName || 'Unnamed file'}`,
class: {
name: $json.demoConfig.dms.className,
id: $json.demoConfig.dms.classId,
},
correspondence_partner_guid: $json.client.id,
user: {
id: $('DATEV - Get current user').item.json.id,
},
domain: {
name: $json.demoConfig.dms.domainName,
id: $json.demoConfig.dms.domainId,
},
folder: {
id: $json.demoConfig.dms.folderId,
name: $json.demoConfig.dms.folderName,
},
year: $json.dmsPeriod.year,
month: $json.dmsPeriod.month,
structure_items: [
{
counter: 1,
type: 1,
document_file_id: $('DATEV DMS - Upload file').item.json.id,
name: $json.attachment.fileName || 'Unnamed file',
parent_counter: 0,
creation_date: $json.dmsPeriod.processedAt,
last_modification_date: $json.dmsPeriod.processedAt,
},
],
}Die wichtigsten Punkte:
correspondence_partner_guidkommt aus dem eindeutig gefundenen DATEV-Mandanten.user.idkommt aus dem aktuellen DATEV-Benutzer.class,domainundfolderkommen aus dem Konfigurationsnode.yearundmonthkommen standardmäßig aus dem E-Mail-Eingangsdatum.document_file_idverweist auf die vorher hochgeladene Datei.
Ohne diesen letzten Verweis hätte der Dokumenteintrag keinen Bezug zur hochgeladenen Datei.
Dateiinhalt und Dokumentmetadaten sind zwei verschiedene Dinge
Das ist bei DATEV DMS wichtig.
Der Workflow macht zwei fachlich getrennte Schritte:
1. Datei hochladen
PDF, DOCX, XLSX oder anderer AnhangPDF, DOCX, XLSX oder anderer AnhangDieser Schritt erzeugt eine document_file_id.
2. Dokumenteintrag erstellen
Der Dokumenteintrag enthält Metadaten:
- Dateiendung
- Beschreibung
- Dokumentklasse
- Mandantenbezug
- Benutzer
- Domain
- Ordner
- Jahr
- Monat
- Strukturinformationen
- Verweis auf die hochgeladene Datei
Erst der Dokumenteintrag macht aus der Datei ein fachlich einsortiertes DMS-Dokument.
Schritt 11: Erfolgreiche Archivierung zusammenfassen
Der Node Archive - Summarize successful DMS archive sammelt die erfolgreich erstellten Dokumente und erzeugt einen kompakten Abschlusskontext:
archive: {
category: first.demoConfig?.archivedCategory ?? 'DMS_ARCHIVED',
documentsCreated: createdDocuments.length,
attachmentsProcessed: attachments.length,
completedAt: new Date().toISOString(),
}archive: {
category: first.demoConfig?.archivedCategory ?? 'DMS_ARCHIVED',
documentsCreated: createdDocuments.length,
attachmentsProcessed: attachments.length,
completedAt: new Date().toISOString(),
}Dieser Node ist hilfreich, weil Outlook und Slack danach nicht mehr pro Attachment arbeiten müssen. Sie bekommen eine zusammengefasste Sicht auf die E-Mail.
Schritt 12: Outlook-Mail markieren und verschieben
Nach erfolgreicher DATEV-Verarbeitung aktualisiert der Workflow Outlook in zwei Schritten.
Zuerst setzt Outlook - Mark archived die Kategorie und markiert die Mail als gelesen:
{
"operation": "update",
"updateFields": {
"categories": ["DMS_ARCHIVED"],
"isRead": true
}
}{
"operation": "update",
"updateFields": {
"categories": ["DMS_ARCHIVED"],
"isRead": true
}
}Danach verschiebt Outlook - Move to archive folder die Mail:
{
"operation": "move",
"folderId": "archive"
}{
"operation": "move",
"folderId": "archive"
}Die Mail wird damit erst nach erfolgreicher DATEV-Verarbeitung als erledigt behandelt.
Produktiv sollte man festlegen:
- ob die Mail im Posteingang bleiben oder verschoben werden soll
- welcher Archivordner verwendet wird
- ob eine Kategorie, ein Ordner oder beides gewünscht ist
- was bei teilweise erfolgreichen Mehrfachanhängen passiert
- ob die Original-Mail zusätzlich als
.emloder PDF in DMS abgelegt werden soll
Schritt 13: Slack-Benachrichtigung
Der Slack Node sendet eine bewusst minimale Nachricht:
DMS archiving successful. Documents created: {{ documentsCreated }}. Execution ID: {{ $execution.id }}.DMS archiving successful. Documents created: {{ documentsCreated }}. Execution ID: {{ $execution.id }}.Für Kanzleiumgebungen ist diese knappe Nachricht geeignet, weil sie Mandantennamen, Betreffzeilen und Dateinamen nicht in den Chat schreibt.
Für eine produktive Slack- oder Teams-Benachrichtigung gilt:
- keine Mandantennamen, wenn sie nicht zwingend nötig sind
- keine Betreffzeilen, wenn sie vertrauliche Inhalte enthalten können
- keine Dateinamen, wenn sie Rückschlüsse auf Mandanten oder Sachverhalte zulassen
- lieber eine Execution ID oder einen Link auf ein internes System mit Berechtigungsschutz
Slack sollte außerdem nicht das führende System für Fehler und Review sein. Für produktive Fälle braucht man einen Review-Prozess, ein internes Ticket oder eine kontrollierte Aufgabenliste.
Review-Fälle im Workflow
Der Node Outlook - Mark review required wird in zwei Fällen erreicht:
- Der Mandant konnte nicht genau eindeutig gefunden werden.
- Die E-Mail hatte zwar Anhänge, aber nach der Filterung blieb kein archivfähiges Dokument übrig.
Der Node setzt:
{
"categories": ["DMS_REVIEW_REQUIRED"]
}{
"categories": ["DMS_REVIEW_REQUIRED"]
}Das ist pragmatisch: Die E-Mail verschwindet nicht, wird nicht fälschlich als archiviert markiert und kann manuell geprüft werden.
Für eine produktive Review Queue reicht eine Outlook-Kategorie aber oft nicht aus. Besser ist meist:
Review-Kategorie setzen
→ optional in Review-Ordner verschieben
→ internen Task erzeugen
→ Grund speichern
→ nach manueller Entscheidung erneut verarbeitenReview-Kategorie setzen
→ optional in Review-Ordner verschieben
→ internen Task erzeugen
→ Grund speichern
→ nach manueller Entscheidung erneut verarbeitenWas der Workflow gut macht
Der Workflow zeigt mehrere Muster, die für produktive Abläufe wichtig sind.
1. Der Trigger vermeidet Wiederholungen
Er verarbeitet nur E-Mails mit Anhängen und schließt Mails mit DMS_ARCHIVED oder DMS_REVIEW_REQUIRED aus.
2. Konfiguration ist sichtbar
Kategorien und zentrale DMS-Werte liegen in Template - Configure variables.
3. Mandantenmatching ist nicht blind
Der Workflow nimmt nicht einfach den ersten aktiven Mandanten, sondern bewertet, ob genau ein Treffer gefunden wurde.
4. Review-Fälle sind vorgesehen
Kein Treffer, mehrere Treffer und leere Attachment-Ergebnisse laufen nicht in die automatische Archivierung.
5. Anhänge werden einzeln verarbeitet
Mehrere E-Mail-Anhänge werden zu separaten Items. Dadurch kann jede Datei einzeln in DATEV DMS hochgeladen und als Dokument angelegt werden.
6. Datei-Upload und Dokumenterstellung sind getrennt
Das entspricht dem DMS-Modell: Erst wird die Datei gespeichert, dann wird der fachliche Dokumenteintrag erstellt.
7. Outlook wird erst nach DATEV-Erfolg abgeschlossen
Die Mail bekommt den Archivstatus erst nach erfolgreicher DMS-Verarbeitung.
8. Slack bleibt bewusst knapp
Die Benachrichtigung enthält nur Dokumentanzahl und Execution ID. Das reduziert unnötige vertrauliche Inhalte in Chat-Systemen.
Was vor produktiver Nutzung angepasst werden muss
Der Workflow ist ein gutes Template, aber kein fertiger Kanzlei-Standardprozess.
Diese Punkte müssen produktiv angepasst werden.
1. Mandantenmatching ersetzen
Die Demo-Logik im Betreff ist ein Startpunkt, aber kein belastbares Kanzleikonzept.
Produktiv muss hier eine echte Zuordnungslogik rein:
E-Mail analysieren
→ möglichen Mandanten finden
→ Eindeutigkeit prüfen
→ nur bei eindeutigem Treffer automatisch ablegen
→ sonst Review QueueE-Mail analysieren
→ möglichen Mandanten finden
→ Eindeutigkeit prüfen
→ nur bei eindeutigem Treffer automatisch ablegen
→ sonst Review Queue2. DMS-Metadaten an Kanzleistruktur anpassen
Diese Felder sollten nicht blind übernommen werden:
class
domain
folder
year
month
description
structure_itemsclass
domain
folder
year
month
description
structure_itemsProduktiv muss geklärt werden:
- Welche Dokumentklassen nutzt die Kanzlei?
- Welche Ordnerstruktur ist korrekt?
- Welcher Zeitraum soll gesetzt werden?
- Welche Pflichtfelder gibt es?
- Welche Beschreibung ist für spätere Suche sinnvoll?
- Soll der Betreff der E-Mail übernommen werden?
- Soll die Absenderadresse gespeichert werden?
- Soll es einen Hinweis auf die ursprüngliche E-Mail geben?
3. Duplikaterkennung einbauen
Der Trigger schließt bereits markierte Mails aus. Das ist gut, aber keine vollständige Idempotenz.
Mögliche Strategien:
- Outlook Message ID speichern
- Attachment ID speichern
- Hash des Dateiinhalts speichern
- Kombination aus Mandant, Dateiname, Größe und Eingangsdatum prüfen
- vor dem Upload in DATEV DMS oder einer eigenen Tabelle nach Dubletten suchen
4. Fehlerpfade ergänzen
Produktiv braucht der Workflow Fehlerbehandlung.
Mindestens:
- Upload fehlgeschlagen
- Dokumenterstellung fehlgeschlagen
- Mandant nicht gefunden
- mehrere Mandanten gefunden
- Anhang ohne Dateinamen
- nicht unterstützter Dateityp
- DATEVconnect nicht erreichbar
- OAuth Credential abgelaufen
- Outlook Update fehlgeschlagen
- Slack oder Teams nicht erreichbar
Ein produktiver Workflow sollte dafür einen Fehlerkanal haben:
Fehler → keine Archivmarkierung → Benachrichtigung → manuelle PrüfungFehler → keine Archivmarkierung → Benachrichtigung → manuelle Prüfung5. Review Queue konkret ausbauen
Eine Outlook-Kategorie ist ein guter Anfang. Für echte Abläufe braucht man oft mehr:
- zuständige Person oder Team
- Grund der Review
- Link zur ursprünglichen E-Mail
- Vorschlag für Mandant und Dokumenttyp
- Entscheidungshistorie
- erneuter Start nach Korrektur
6. Datenschutz und Berufsgeheimnis ernst nehmen
DATEV-DMS-Workflows verarbeiten regelmäßig vertrauliche Daten.
Deshalb prüfen:
- Welche Daten stehen in n8n Execution Logs?
- Werden Binärdaten dauerhaft gespeichert?
- Wer hat Zugriff auf n8n?
- Welche Daten gehen an Slack oder Teams?
- Welche Daten stehen in Fehlermeldungen?
- Wie lange werden Logs aufbewahrt?
- Wo läuft n8n: Cloud, eigenes Hosting, Dienstleister?
Für Steuerkanzleien ist das kein Randthema. E-Mail-Anhänge können Mandanten-, Lohn-, Steuer- und Bankdaten enthalten.
n8n Binary Mode: Warum die Einstellung relevant ist
Der Workflow setzt auf heruntergeladene Outlook-Anhänge als Binary Data.
In n8n kann Binary Data je nach Setup im Dateisystem, in der Datenbank oder über andere Mechanismen gespeichert werden. Das beeinflusst:
- Performance bei großen Anhängen
- Speicherverbrauch
- Backup-Verhalten
- Datenschutz
- Aufbewahrung in Execution Logs
- Verhalten bei mehreren Workflow-Ausführungen
Für Tests ist das meist unproblematisch. Für produktive DATEV-DMS-Workflows sollte man aber prüfen, wie n8n Binary Data speichert und wann diese Daten wieder gelöscht werden.
DATEVconnect Gateway: Warum der Workflow nicht direkt "gegen DATEV" läuft
Der Workflow nutzt Klardaten DATEVconnect Nodes.
Diese Nodes sprechen nicht einfach irgendeinen öffentlichen DATEV-Endpunkt im Internet an. Sie arbeiten mit DATEVconnect beziehungsweise einem Gateway, das Zugriff auf die DATEV-Umgebung ermöglicht.
Das ist wichtig, weil viele DATEV-Daten in der lokalen oder gehosteten DATEV-Desktop-Welt liegen. DATEV DMS ist kein normales Cloud-DMS mit frei verfügbarer REST API für jeden Use Case.
Die typische Architektur ist:
n8n Workflow
↓
Klardaten DATEVconnect Node
↓
DATEVconnect Gateway
↓
DATEVconnect
↓
DATEV DMSn8n Workflow
↓
Klardaten DATEVconnect Node
↓
DATEVconnect Gateway
↓
DATEVconnect
↓
DATEV DMSMehr dazu: DATEVconnect Gateway
DATEV Online APIs vs. DATEVconnect
Bei DATEV gibt es verschiedene technische Zugriffswege.
Für manche Use Cases sind DATEV Online APIs relevant. Für andere braucht man DATEVconnect oder Zugriff auf die DATEV-Desktop-Umgebung.
Grob gesagt:
| Bereich | Typischer Zugriffsweg |
|---|---|
| DATEV Online Services | DATEV Online APIs |
| DATEV DMS in der DATEV-Umgebung | DATEVconnect / Gateway |
| Rechnungswesen- und Stammdaten in Desktop-Kontexten | DATEVconnect / Gateway |
| tiefere Datenextraktion, Reporting, BI | oft zusätzliche Enterprise API oder kundenspezifischer Zugriff |
Für diesen Workflow ist DATEV DMS entscheidend. Deshalb ist DATEVconnect beziehungsweise ein Gateway der relevante technische Kontext.
Typische Erweiterungen des Workflows
1. Microsoft Teams statt Slack
Viele Kanzleien arbeiten mit Microsoft 365. Dann kann eine Teams-Nachricht die naheliegende Benachrichtigung sein.
Die fachliche Empfehlung bleibt gleich: keine unnötigen Mandantendaten in Chat-Systeme schreiben.
2. Review Queue für unklare Fälle
Der Workflow setzt bereits DMS_REVIEW_REQUIRED. Daraus kann man einen echten Prozess machen:
Review-Kategorie erkannt
→ Aufgabe erzeugen
→ Mitarbeiter wählt Mandant und Dokumenttyp
→ Workflow archiviert nach FreigabeReview-Kategorie erkannt
→ Aufgabe erzeugen
→ Mitarbeiter wählt Mandant und Dokumenttyp
→ Workflow archiviert nach Freigabe3. Dokumenttyp automatisch erkennen
Man kann Anhänge nach Namen, Absender, Betreff, Inhalt oder OCR-Ergebnis klassifizieren:
Lohnabrechnung
Bescheid
Vertrag
Eingangsrechnung
BankdokumentLohnabrechnung
Bescheid
Vertrag
Eingangsrechnung
BankdokumentDann können DMS-Klasse, Ordner, Beschreibung und Zeitraum genauer gesetzt werden.
4. Anhänge stärker vorfiltern
Das Template filtert bereits Signaturen, Inline-Bilder, Kalender- und Kontaktdateien.
Produktiv kann man ergänzen:
- erlaubte Dateitypen
- Mindestgröße
- Maximalgröße
- Passwortschutz erkennen
- ZIP-Dateien separat behandeln
- Bilddateien nur bei Scans erlauben
5. Original-E-Mail als PDF oder EML ablegen
Für manche Prozesse reicht der Anhang nicht. Dann kann es sinnvoll sein, die ursprüngliche E-Mail zusätzlich abzulegen.
Wichtig ist dann, dass die E-Mail und ihre Anhänge nachvollziehbar zusammengehören.
6. Duplikaterkennung
Vor dem DMS-Upload kann man prüfen, ob dasselbe Dokument bereits archiviert wurde.
Mögliche Schlüssel:
Outlook Message ID
Attachment ID
Dateihash
Mandant + Dateiname + Dateigröße
Mandant + externer DokumentcodeOutlook Message ID
Attachment ID
Dateihash
Mandant + Dateiname + Dateigröße
Mandant + externer DokumentcodeBeispiel: Produktiver Ablauf mit Review Queue
Ein belastbarer produktiver Ablauf könnte so aussehen:
1. Outlook-Mail trifft in definiertem DMS-Ordner ein
2. Trigger lädt Mail mit Anhängen
3. Workflow ignoriert bereits archivierte oder prüfpflichtige Mails
4. Workflow filtert technische Anhänge
5. Workflow sucht Mandant über Mapping-Tabelle
6. Wenn genau ein Mandant gefunden:
6.1 DMS-Metadaten bestimmen
6.2 Dublettenprüfung durchführen
6.3 Datei in DATEV DMS hochladen
6.4 Dokumenteintrag erstellen
6.5 Outlook auf DMS_ARCHIVED setzen und verschieben
6.6 technische Erfolgsmeldung senden
7. Wenn kein oder mehrere Mandanten gefunden:
7.1 Review-Aufgabe erzeugen
7.2 Outlook auf DMS_REVIEW_REQUIRED setzen
8. Wenn DATEV fehlschlägt:
8.1 Outlook nicht als archiviert markieren
8.2 Fehlerkanal informieren
8.3 Retry oder manuelle Prüfung1. Outlook-Mail trifft in definiertem DMS-Ordner ein
2. Trigger lädt Mail mit Anhängen
3. Workflow ignoriert bereits archivierte oder prüfpflichtige Mails
4. Workflow filtert technische Anhänge
5. Workflow sucht Mandant über Mapping-Tabelle
6. Wenn genau ein Mandant gefunden:
6.1 DMS-Metadaten bestimmen
6.2 Dublettenprüfung durchführen
6.3 Datei in DATEV DMS hochladen
6.4 Dokumenteintrag erstellen
6.5 Outlook auf DMS_ARCHIVED setzen und verschieben
6.6 technische Erfolgsmeldung senden
7. Wenn kein oder mehrere Mandanten gefunden:
7.1 Review-Aufgabe erzeugen
7.2 Outlook auf DMS_REVIEW_REQUIRED setzen
8. Wenn DATEV fehlschlägt:
8.1 Outlook nicht als archiviert markieren
8.2 Fehlerkanal informieren
8.3 Retry oder manuelle PrüfungDas ist weniger spektakulär als vollständige Dunkelverarbeitung, aber deutlich sicherer.
Typische Fehler in DATEV-n8n-Workflows
Fehler 1: Der Workflow verarbeitet nur einen Anhang
Viele einfache E-Mail-Workflows nehmen nur den ersten Anhang. Das ist für Kanzleipost riskant, weil Mandanten oft mehrere Dokumente in einer E-Mail senden.
Das Template löst das durch Splitten in einzelne Items.
Fehler 2: Falscher Mandant
Das ist der kritischste Fehler.
Wenn der Mandant nicht eindeutig ist, sollte der Workflow nicht automatisch archivieren. Genau deshalb gibt es im Template den Review-Zweig.
Fehler 3: DMS-Metadaten sind zu generisch
Wenn alles als Dokument in <Keine Angabe> landet, wird DMS schnell unübersichtlich.
Die Template-Werte müssen an die tatsächliche Kanzleistruktur angepasst werden.
Fehler 4: Erfolg wird gemeldet, obwohl DATEV fehlgeschlagen ist
Outlook darf erst nach erfolgreichem DATEV-Upload und erfolgreicher Dokumenterstellung abgeschlossen werden.
Das Template setzt die Archivmarkierung nach der DMS-Erstellung. Produktiv sollte man zusätzlich Fehlerpfade und Teilfehler sauber behandeln.
Fehler 5: Keine Duplikaterkennung
E-Mail-Trigger können erneut laufen. Benutzer können Kategorien entfernen. Workflows können manuell neu gestartet werden.
Ohne Idempotenz entstehen schnell doppelte DMS-Dokumente.
Fehler 6: n8n Execution Logs speichern zu viele Daten
Bei E-Mail-Anhängen können Logs und Binary Storage vertrauliche Daten enthalten.
Produktiv muss klar sein, welche Daten n8n speichert, wer Zugriff hat und wann sie gelöscht werden.
Wann n8n für DATEV-Workflows gut passt
n8n passt gut, wenn:
- der Ablauf klar regelbasiert ist
- Eingangssysteme wie Outlook, SharePoint, Teams, Slack oder interne Tools beteiligt sind
- DATEV-DMS- oder Stammdaten-Aufrufe über Nodes gekapselt werden können
- technische Teams den Workflow betreiben können
- Review-Prozesse bewusst eingeplant sind
- Automatisierung schrittweise eingeführt werden soll
Typische Beispiele:
- E-Mail-Anhänge in DATEV DMS ablegen
- Dokumente aus Portalen abholen und klassifizieren
- interne Freigaben auslösen
- Mandantenstammdaten abgleichen
- technische Statusmeldungen an IT oder Fachbereiche senden
Wann n8n allein nicht reicht
n8n ist ein Workflow-Werkzeug. Es ersetzt nicht automatisch:
- ein Berechtigungskonzept
- ein DMS-Fachkonzept
- eine Mandanten-Matching-Strategie
- Monitoring
- Betriebsverantwortung
- Datenschutzprüfung
- Fehler- und Review-Prozesse
Wenn die Anforderungen komplexer werden, braucht man oft zusätzliche Komponenten:
- Datenbank für Mapping und Idempotenz
- internes Review-Frontend
- zentrale Logging- und Monitoring-Plattform
- dokumentierte Betriebsprozesse
- tiefere DATEV-Integration
Build vs. Gateway: Selbst bauen oder Klardaten nutzen?
Man kann DATEVconnect-Anbindungen grundsätzlich selbst bauen. Das bedeutet aber:
- DATEVconnect verstehen
- lokale DATEV-Umgebungen anbinden
- Authentifizierung und Benutzerkontext sauber handhaben
- Fehlerfälle behandeln
- Versionen und Updates berücksichtigen
- Betrieb und Monitoring sicherstellen
- n8n Nodes oder HTTP-Aufrufe pflegen
Für manche Teams ist das sinnvoll.
Für viele Kanzleien, TaxTech-Anbieter und IT-Partner ist ein Gateway pragmatischer. Die n8n-Logik bleibt sichtbar und anpassbar, aber die DATEVconnect-Anbindung muss nicht jedes Team neu lösen.
Klardaten stellt dafür den DATEVconnect Gateway und passende n8n Nodes bereit.
Mehr dazu:
Setup-Checkliste für den Workflow
Für einen funktionierenden Test brauchst Du:
- n8n Instanz mit Community Nodes
- installierte Klardaten DATEVconnect Nodes
- Microsoft Outlook OAuth2 Credentials
- Klardaten DATEVconnect Credentials
- erreichbaren DATEVconnect Gateway
- Zugriff auf DATEV DMS
- Testmandant in DATEV
- Testpostfach oder Testordner in Outlook
- definierte DMS-Zielfelder
- optional Slack OAuth2 Credentials
- ausgewählten Slack-Kanal
- Testdateien mit realistischen Dateitypen
Für einen produktiven Betrieb brauchst Du zusätzlich:
- echtes Mandantenmatching
- Fehlerkanal
- Retry-Strategie
- Duplikaterkennung
- Logging-Konzept
- Berechtigungskonzept
- Review-Prozess für unklare Fälle
- Monitoring
- klare Zuständigkeit zwischen Kanzlei, IT-Partner und Softwareanbieter
FAQ
Kann man DATEV direkt mit n8n verbinden?
Ja, aber nicht wie bei einem beliebigen SaaS-Tool mit einer einzigen öffentlichen API für alles. Für DATEV-DMS-Workflows in einer DATEV-Desktop- beziehungsweise DATEVconnect-Umgebung braucht man DATEVconnect-Zugriff. Die Klardaten DATEVconnect Nodes kapseln diesen Zugriff für n8n.
Kann n8n Outlook-Anhänge automatisch in DATEV DMS speichern?
Ja. Der Workflow zeigt genau diesen Ablauf: Outlook triggert eine Mail mit Anhängen, n8n filtert und verarbeitet die Anhänge, DATEV DMS speichert Datei und Dokumenteintrag, Outlook wird nach erfolgreicher Verarbeitung abgeschlossen.
Was ist der Unterschied zwischen Datei-Upload und Dokumenterstellung in DATEV DMS?
Der Datei-Upload speichert die Binärdatei. Die Dokumenterstellung erzeugt den fachlichen DMS-Eintrag mit Mandantenbezug, Beschreibung, Klasse, Ordner, Zeitraum und Verweis auf die Datei.
Kann der Workflow mehrere Anhänge verarbeiten?
Ja. Der Attachment-Code-Node wandelt alle archivfähigen Binary Attachments einer E-Mail in einzelne n8n Items um. Dadurch kann jeder Anhang separat in DATEV DMS verarbeitet werden.
Wie wird der richtige DATEV-Mandant gefunden?
Im Template über eine Demo-Logik aus dem Betreff und eine DATEV-Stammdatensuche. Produktiv sollte diese Logik ersetzt werden: etwa durch Mapping-Tabelle, Absenderregeln, Ordnerlogik, Mandantennummern oder ein internes System.
Was passiert, wenn kein Mandant gefunden wird?
Der Workflow archiviert dann nicht automatisch. Die Outlook-Mail wird mit DMS_REVIEW_REQUIRED markiert und muss manuell geprüft werden.
Was passiert, wenn mehrere Mandanten gefunden werden?
Auch dann wird nicht automatisch archiviert. Mehrdeutige Treffer sind Review-Fälle.
Was passiert, wenn nur Signaturbilder oder Kalenderdateien anhängen?
Der Workflow filtert solche Anhänge heraus. Wenn kein archivfähiges Dokument übrig bleibt, wird die E-Mail als prüfpflichtig markiert.
Kann man Slack durch Microsoft Teams ersetzen?
Ja. Slack ist nur der Benachrichtigungskanal im Template. In Microsoft-365-Umgebungen kann Teams der passende Kanal sein.
Sollte man Mandantennamen und Betreffzeilen in Slack posten?
Nur wenn das bewusst geprüft wurde. In vielen Fällen sollten Chat-Nachrichten technisch bleiben und keine vertraulichen Inhalte in Slack oder Teams schreiben.
Kann ich Gmail statt Outlook verwenden?
Grundsätzlich ja, aber der Workflow müsste angepasst werden. Der Trigger, Binary Attachment Handling und die Abschlussaktion sind Outlook-spezifisch.
Brauche ich DATEVconnect für diesen Workflow?
Für DATEV-DMS-Workflows in einer DATEV-Desktop- beziehungsweise DATEVconnect-Umgebung ist DATEVconnect der relevante technische Weg. Ob DATEVconnect den konkreten Fall abdeckt, hängt vom Zielmodul, den benötigten Daten und der Umgebung ab.
Sind DATEV Online APIs dasselbe wie DATEVconnect?
Nein. DATEV Online APIs und DATEVconnect adressieren unterschiedliche technische Kontexte und Use Cases. Für DATEV DMS in der DATEV-Umgebung ist DATEVconnect beziehungsweise ein Gateway relevant.
Kann ich mit n8n alle DATEV-Daten nutzen?
Nein. Welche Daten nutzbar sind, hängt vom DATEV-Zugriffsweg, den Modulen, Berechtigungen und verfügbaren Schnittstellen ab.
Ist der Workflow produktionsbereit?
Er ist ein gutes Template. Für Produktion fehlen typischerweise echtes Mandantenmatching, Duplikaterkennung, Fehlerworkflow, Monitoring, Review Queue, Datenschutzprüfung und DMS-Metadatenabstimmung.
Wann brauche ich statt DATEVconnect Gateway die Enterprise API?
Wenn DATEVconnect die benötigten Daten oder Prozesse nicht abdeckt. Typische Fälle sind tieferes Reporting, Power BI, Controlling oder individuelle Automatisierungen rund um DATEV-Desktop-Daten. Dann sollte man prüfen, ob die Klardaten Enterprise API der passende Zugriffsweg ist.
Fazit
n8n eignet sich gut, um Outlook, Slack oder Teams, interne Systeme und DATEV-DMS-Prozesse miteinander zu verbinden.
Der entscheidende Punkt ist aber nicht der reine Upload. Entscheidend ist der fachlich saubere Ablauf:
richtige E-Mail
→ richtiger Mandant
→ relevante Anhänge
→ richtige DMS-Metadaten
→ DATEV-Dokument erfolgreich erstellt
→ Outlook erst danach abschließen
→ unklare Fälle in Reviewrichtige E-Mail
→ richtiger Mandant
→ relevante Anhänge
→ richtige DMS-Metadaten
→ DATEV-Dokument erfolgreich erstellt
→ Outlook erst danach abschließen
→ unklare Fälle in ReviewDer Workflow Archive Outlook email attachments to DATEV DMS with Slack notifications zeigt dafür ein gutes Grundmuster: Trigger mit Wiederholungsschutz, zentrale Konfiguration, eindeutiges Mandantenmatching, Attachment-Filterung, getrennte DATEV-DMS-Schritte, Review-Kategorie und eine zurückhaltende Slack-Benachrichtigung.
Für produktive Kanzlei-Workflows muss man vor allem Mandantenmatching, DMS-Metadaten, Fehlerbehandlung, Duplikaterkennung und Review-Prozess sauber ergänzen.
Wenn Du DATEV DMS, DATEVconnect und n8n verbinden möchtest, kann der Klardaten DATEVconnect Gateway die DATEVconnect-Seite bereitstellen, während n8n die Workflow-Logik übernimmt.
Für komplexere Workflows, KI-gestützte Suche oder Kanzleiprozesse mit Review-Schritten kann außerdem Klarvos relevant sein.