Paperless-ngx-Handbuch
Workflows
Workflows klinken sich in die Verarbeitungskette von Paperless-ngx ein – etwa, um zu steuern, welche Metadaten (Tags, Dokumenttypen) und Berechtigungen (Eigentümer, Rechte) einem Dokument zugewiesen werden. Ein Workflow besteht aus einem oder mehreren Auslösern und einer Reihe von Aktionen.
Workflows und ihre Aktionen werden der Reihe nach anhand der Sortierung angewendet. Bei „Zuweisungs"-Aktionen überschreiben spätere Aktionen frühere Zuweisungen – außer bei Feldern, die mehrere Werte aufnehmen (z. B. Tags, benutzerdefinierte Felder und Berechtigungen); diese werden zusammengeführt.
Auslöser (Trigger)
Die vier Auslöser-Typen
- Verarbeitung gestartet (Consumption Started): bevor ein Dokument aufgenommen wird. Filter können Quelle (Mail, Consume-Ordner oder API), Dateipfad, Dateiname und E-Mail-Regel einbeziehen.
- Dokument hinzugefügt (Document Added): nachdem ein Dokument hinzugefügt wurde. Pfad- und Quellinformationen sind dann nicht mehr verfügbar, aber der Inhalt ist ausgelesen und Metadaten wie Typ und Tags sind gesetzt – diese lassen sich nun zum Filtern nutzen.
- Dokument aktualisiert (Document Updated): wenn ein Dokument geändert wird. Wie beim Hinzufügen kann nach Inhalt, Tags, Typ, Korrespondent oder Speicherpfad gefiltert werden.
- Geplant (Scheduled): ein zeitgesteuerter Auslöser. Als Datum dienen das Hinzugefügt-, Erstellt- oder Aktualisiert-Datum oder ein benutzerdefiniertes (Datums-)Feld. Sie können einen Tages-Versatz angeben (positiv = nach dem Datum, negativ = davor).
Filter
Filtern können Sie nach:
- Quelle – z. B. Consume-Ordner, API (und Weboberfläche) oder Mail-Abruf.
- Dateiname, inklusive Platzhalter (z. B.
*.pdffür alle PDFs). - Dateipfad, inklusive Platzhalter.
- E-Mail-Regel – diese Auswahl erzwingt „Mail-Abruf" als Quelle.
- Inhaltsabgleich (nur bei Hinzugefügt, Aktualisiert und Geplant).
Für Hinzugefügt, Aktualisiert und Geplant gibt es zusätzlich erweiterte Filter:
- Beliebige Tags / Alle Tags / Keine Tags
- Dokumenttyp bzw. nicht diese Dokumenttypen
- Korrespondent bzw. nicht diese Korrespondenten
- Speicherpfad bzw. nicht diese Speicherpfade
- Abfrage auf benutzerdefinierte Felder
Aktionen
Zuweisung
„Zuweisungs"-Aktionen können setzen:
- Titel (siehe Platzhalter weiter unten)
- Tags, Korrespondent, Dokumenttyp und Speicherpfad
- Dokument-Eigentümer
- Ansichts- und/oder Bearbeitungsrechte für Nutzer oder Gruppen
- Benutzerdefinierte Felder (ein Wert wird dabei nicht gesetzt)
Entfernen
„Entfernen"-Aktionen können entweder alles oder gezielte Teile entfernen:
- Tags, Korrespondenten, Dokumenttypen oder Speicherpfade
- Dokument-Eigentümer
- Ansichts- und/oder Bearbeitungsrechte
- Benutzerdefinierte Felder
„E-Mail"-Aktionen versenden Dokumente per Mail (erfordert einen eingerichteten Mailserver). Angeben lassen sich:
- die Empfängeradresse(n), durch Kommas getrennt
- Betreff und Text (können Platzhalter enthalten)
- ob das Dokument als Anhang beigefügt wird
Webhook
„Webhook"-Aktionen senden eine POST-Anfrage an eine angegebene URL. Angeben lassen sich Ziel-URL, Anfrage-Text (als Text oder Schlüssel-Wert-Paare, mit Platzhaltern), Kodierung (JSON oder Formulardaten) und Kopfzeilen (Header). Aus Sicherheitsgründen lassen sich Webhooks auf bestimmte Ports beschränken und für lokale URLs sperren.
In den Papierkorb verschieben
„In den Papierkorb verschieben"-Aktionen legen das Dokument in den Papierkorb, von wo es bis zum endgültigen Leeren wiederhergestellt werden kann. Diese Aktion wird immer als letzte ausgeführt – unabhängig von ihrer Position in der Liste – und danach läuft kein weiterer Workflow mehr auf dem Dokument. In einer Verarbeitungs kette bricht sie die Aufnahme ab und die Datei wird gelöscht.
Platzhalter (Jinja-Templates)
Titel und Webhook-Inhalte lassen sich mit Jinja-Templates erzeugen. Das erlaubt auch logische Strukturen und Filter. Welche Platzhalter verfügbar sind, hängt vom Auslöser-Typ ab (bei der Aufnahme sind automatische Tags o. Ä. noch nicht gesetzt).
Mit jedem Auslöser-Typ verfügbar:
{{correspondent}}– zugewiesener Korrespondentenname{{document_type}}– zugewiesener Dokumenttyp{{owner_username}}– Benutzername des Eigentümers{{added}}– Hinzugefügt-Zeitpunkt ({{added_year}},{{added_month}},{{added_month_name}},{{added_day}},{{added_time}}…){{original_filename}}– ursprünglicher Dateiname ohne Endung{{filename}}– aktueller Dateiname ohne Endung{{doc_title}}– aktueller Dokumenttitel (nicht bei der Titel-Zuweisung nutzbar)
Nur bei Hinzugefügt oder Aktualisiert zusätzlich:
{{created}}– Erstellt-Zeitpunkt ({{created_year}},{{created_month}},{{created_month_name}},{{created_day}},{{created_time}}…){{doc_url}}– URL zum Dokument in der Weboberfläche{{doc_id}}– Dokument-ID
Beispiele
{{ created | localize_date('MMMM', 'en_US') }}
<!-- Ausgabe: "January" -->
{{ added | localize_date('MMMM', 'de_DE') }}
<!-- Ausgabe: "Juni" -->
Berechtigungen für Workflows
Alle Nutzer mit dem Recht, Workflows zu bearbeiten, sehen denselben Satz an Workflows. Workflows haben bewusst keinen eigenen Eigentümer und keine eigenen Berechtigungen. Da sie weitreichend wirken können – bis hin zum Ändern von Dokument-Berechtigungen –, sollten Sie den Zugriff auf Workflows bewusst einschränken.