Änderungen von Dokument N8n Workflow Engine
Zuletzt geändert von Daniel Herrmann am 2026/02/22 21:17
Von Version
14.2
bearbeitet von Daniel Herrmann
am 2026/02/22 21:00
am 2026/02/22 21:00
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version
5.1
bearbeitet von Daniel Herrmann
am 2026/02/22 19:23
am 2026/02/22 19:23
Änderungskommentar:
Neuen Anhang 1771784637258-114.png hochladen
Zusammenfassung
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -1,9 +1,5 @@ 1 1 n8n ist ein **Open-Source-Tool zur Workflow-Automatisierung**, das man selbst hosten kann. Über eine **visuelle Oberfläche** baut man Workflows per Drag-and-drop aus sogenannten „Nodes“, die verschiedene Dienste und Aktionen miteinander verbinden. Es gibt Hunderte vorgefertigte Integrationen, z. B. für Slack, Mail oder MQTT. Ebenfalls gibt es eine große Auswahl an für uns relevante Community Nodes (Vikunja, Listmonk, und so weiter) sowie die Möglichkeit, eigene Nodes zu schreiben (beispielsweise Paperless oder NATS). 2 2 3 -= Inhaltsverzeichnis = 4 - 5 -{{toc/}} 6 - 7 7 = Workflow Übersicht = 8 8 9 9 Workflows bestehen grundsätzlich aus einem oder mehreren **Triggern** und einer oder mehreren **Aktionen**. Im Folgenden werden nur die für die Mitgliederverwaltung relevanten Workflows beschrieben, N8n kann aber natürlich auch für andere Automatisierung verwendet werden. ... ... @@ -12,41 +12,16 @@ 12 12 13 13 === Document Consumed Workflow === 14 14 15 - Dieser Workflow wird durch das [[Paperless Post-Consume Script>>doc:PROJ.Digitale Mitgliederverwaltung.Paperless NGX.WebHome]] ausgelöst, immer dann, wenn ein **QR Code mit dem korrekten Inhalt **erkannt wird. Die Idee hier ist, dass **ausgedruckte und handschriftliche Dokumente **automatisch verarbeitet werden können.11 +ToDO 16 16 17 -Im Prinzip ersetzt dieser Workflow den Docuseal Webhook, der automatisch dem Backend bescheid gibt, wenn alle Parteien unterschrieben haben. Bei ausgedruckten Dokumenten passiert dies stattdessen hierüber. 18 - 19 -[[image:1771785973968-394.png||height="150"]] 20 - 21 -Der Workflow: 22 - 23 -* wird über ein Webhook vom Post Consume Script ausgelesen. Als Inhalt wird der Inhalt des dekodierten QR Codes übergeben 24 -* nur handschriftlich unterschriebene Dokumente werden verarbeitet 25 -* dem Backend wird signalisiert, dass das Dokument erfolgreich verarbeitet wurde 26 - 27 -Als Konsequenz kann das Backend weitere automatische Aktionen ausführen, beispielsweise vorläufige oder dauerhafte Berechtigungen eintragen. 28 - 29 29 === Paperless Papierkorb === 30 30 31 - **In Paperless kann nurder Owner Dokumente in den Papierkorb verschieben**. Dies lässt sich leider nicht anders konfigurieren, sodass wir uns hier mit einem Workaround behelfen: die Mitgliederverwaltung und/oder der Vorstand können dem Dokument **ein Tag zuweisen**. **Dieses Tag löst einen Workflow in Paperless aus:**15 +asd 32 32 33 -[[image:1771786279823-587.png||height="250"]] 34 - 35 -Dieser Workflow löst zwei Dinge aus (leider ist Dokument löschen keine verfügbare Aktion): 36 - 37 -* er entfernt das Tag wieder, um Rekursion zu vermeiden 38 -* und löst ein N8n Webhook aus 39 - 40 -**Der N8n Workflow löscht dann das Dokument.** 41 - 42 -[[image:1771786234093-932.png||height="150"]] 43 - 44 44 == Cron Jobs - Sync von Daten == 45 45 46 46 === Sync Tags für Einweisungen === 47 47 48 -In Paperless unterscheiden wir verschiedene Arten von Dokumente, diese sind [[hier im Wiki beschrieben>>doc:PROJ.Digitale Mitgliederverwaltung.WebHome]]. Es wäre aber nicht zweckmäßig, für jede Einweisung ebenfalls einen eigenen Typ zu erzeugen, daher verwenden wir Tags. Dise 49 - 50 50 ToDo 51 51 52 52 === Sync Document Types === ... ... @@ -59,73 +59,24 @@ 59 59 60 60 === mksp.docuseal.signature.completed === 61 61 62 - Dieses Event wird ausgelöst, wenn im Backend ein Signatur-Prozess abgeschlossen ist (d.h. alle Parteien haben unterschrieben und die Unterschrift wurde im Backend erfasst).Dies kann auf zwei Arten passieren:33 +ToDo 63 63 64 -* Bei **rein digitalen Signaturen** durch einen über **Docuseal ausgelösten Webhook** 65 -* Bei **handschriftlich** unterschrieben Zetteln durch **Einscannen** und den oben beschrieben **"Document Consumed" N8n Workflow** 66 - 67 -[[image:1771785764191-239.png||height="150"]] 68 - 69 -**Der Workflow löst nur bei digitalen Dokumenten eine Aktion aus**. Bei handschriftlich unterschriebenen Dokumenten ist das Dokument bereits eingescannt. Für digital unterschriebene Signaturen: 70 - 71 -* wird der Status der Submission aus Docuseal ausgelesen 72 -* wird das PDF mit den Unterschriften aller Parteien runtergeladen... 73 -* und anschließend in Docuseal hochgeladen und dort verarbeitet. 74 - 75 75 === mksp.backend.user.created === 76 76 77 - Dieser Workflow wird immer dann getriggert, wenn im Backend ein **neuer User** angelegt wird.Die Informationen aus der NATS Nachricht werden dann verwendet, um den **Korrespondenten in Paperless anzulegen**.37 +ToDo 78 78 79 -[[image:1771784637258-114.png||height="200"]] 80 - 81 -Die folgenden Aktionen werden ausgeführt: 82 - 83 -1. Parallel werden **alle Gruppen und Benutzer **aus Paperless ausgelesen 84 -1. Es wird auf die relevanten Gruppen und Benutzer gefiltert. Ziel ist es, **die ID der entsprechenden Gruppen und Benutzer auszulesen**. Wir sind **interessiert an den Gruppen für die Mitgliederverwaltung und die IT Admins** sowie dem statischen **MV Owner**. 85 -1. Zuletzt wird der Subflow "Create Paperless Correspondent" angelegt. Dieser bekommt als Info: 86 -11. **firstname** - aus NATS Trigger 87 -11. **lastname** - aus NATS Trigger 88 -11. **isGuest** - true wenn membership_number in NATS Trigger = null, false otherwise 89 -11. **membership_number** - aus NATS Trigger 90 -11. **user_id** - aus NATS Trigger 91 -11. **owner_id** - ID des MV Data Owner Benutzers 92 -11. **permissions** - siehe unten 93 -11. **backend_url** - URL des Makerspace Backends 94 - 95 -Der Subflow erzeugt dann den Display-Namen des Korrespondenten und **speichert die Paperless-ID über die Backend-API zurück ins Backend.** Der **Display-Name **setzt sich wie folgt zusammen: 96 - 97 -|=Nutzer-Typ|=Format|=Beispiel 98 -|Mitglied|Vorname Nachname (#Mitgliedsnummer)|Daniel Herrmann (#250) 99 -|Gast|Vorname Nachname (Gast #Nutzer-ID)|Daniel Herrmann (Gast #1) 100 - 101 -Die **Berechtigungen** werden dabei wie folgt gesetzt: 102 - 103 -{{code language="none"}} 104 -{"view":{"users":[],"groups":[{{ $('Static Data').item.json.mv_group_id }}]},"change":{"users":[],"groups":[{{ $('Static Data').item.json.it_admin_group_id }}]}} 105 -{{/code}} 106 - 107 -D.h. Owner (und damit alle Rechte) hat der statische MV Owner Nutzer. Alle Mitglieder der Gruppe "Mitgliederverwaltung" können den Korrespondenten sehen (notwendig für Zuweisung und Filterung), IT-Admins können diese verändern. 108 - 109 109 === mksp.backend.user.converted_to_guest === 110 110 111 -D ieser Workflow wird dann ausgelöst, wenn ein Mitglied den Verein verlässt und daher zum Gast wird.41 +ToDo 112 112 113 -[[image:1771785245954-780.png||height="150"]] 114 - 115 -Alle notwendigen Daten (inklusive der Paperless Korrespondent-ID) sind im NATS Event vorhanden. Es wird also lediglich ein neuer Display-Name erzeugt (Format: siehe Tabelle oben) und der Korrespondent wird aktualisiert. 116 - 117 117 === mksp.backend.user.converted_to_member === 118 118 119 -Dieser Workflow wird dann ausgelöst, wenn ein neues Mitglied dem Verein beitritt. 120 - 121 -[[image:1771785309574-242.png||height="150"]] 122 - 123 -Alle notwendigen Daten (inklusive der Paperless Korrespondent-ID) sind im NATS Event vorhanden. Es wird also lediglich ein neuer Display-Name erzeugt (Format: siehe Tabelle oben) und der Korrespondent wird aktualisiert. 124 - 125 -== Subflows == 126 - 127 127 ToDo 128 128 129 129 = Community Nodes = 130 130 131 131 asd 50 + 51 += = 52 + 53 +
- 1771785245954-780.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.dherrman - Größe
-
... ... @@ -1,1 +1,0 @@ 1 -63.2 KB - Inhalt
- 1771785309574-242.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.dherrman - Größe
-
... ... @@ -1,1 +1,0 @@ 1 -63.0 KB - Inhalt
- 1771785764191-239.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.dherrman - Größe
-
... ... @@ -1,1 +1,0 @@ 1 -92.9 KB - Inhalt
- 1771785973968-394.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.dherrman - Größe
-
... ... @@ -1,1 +1,0 @@ 1 -83.1 KB - Inhalt
- 1771786234093-932.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.dherrman - Größe
-
... ... @@ -1,1 +1,0 @@ 1 -56.7 KB - Inhalt
- 1771786279823-587.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.dherrman - Größe
-
... ... @@ -1,1 +1,0 @@ 1 -173.8 KB - Inhalt