N8n Workflow Engine

Version 9.2 von Daniel Herrmann am 2026/02/22 19:41

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).

Inhaltsverzeichnis

Workflow Übersicht

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.

Workflows für Dokumente

Document Consumed Workflow

ToDO

Paperless Papierkorb

asd

Cron Jobs - Sync von Daten

Sync Tags für Einweisungen

ToDo

Sync Document Types

ToDo

Backend Event Workflows

Bestimmte Events aus dem Backend werden über NATS als Event gepublished. Details dazu sind auf der Seite zu NATS beschrieben. Hier werden die Events beschrieben, die Paperless betreffen:

mksp.docuseal.signature.completed

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:

  • Bei rein digitalen Signaturen durch einen über Docuseal ausgelösten Webhook
  • Bei handschriftlich unterschrieben Signaturen durch Einscan

mksp.backend.user.created

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.

1771784637258-114.png

Die folgenden Aktionen werden ausgeführt:

  1. Parallel werden alle Gruppen und Benutzer aus Paperless ausgelesen
  2. 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.
  3. Zuletzt wird der Subflow "Create Paperless Correspondent" angelegt. Dieser bekommt als Info:
    1. firstname - aus NATS Trigger
    2. lastname - aus NATS Trigger
    3. isGuest - true wenn membership_number in NATS Trigger = null, false otherwise
    4. membership_number - aus NATS Trigger
    5. user_id - aus NATS Trigger
    6. owner_id - ID des MV Data Owner Benutzers
    7. permissions - siehe unten
    8. backend_url - URL des Makerspace Backends

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:

Nutzer-TypFormatBeispiel
MitgliedVorname Nachname (#Mitgliedsnummer)Daniel Herrmann (#250)
GastVorname Nachname (Gast #Nutzer-ID)Daniel Herrmann (Gast #1)

Die Berechtigungen werden dabei wie folgt gesetzt:

{"view":{"users":[],"groups":[{{ $('Static Data').item.json.mv_group_id }}]},"change":{"users":[],"groups":[{{ $('Static Data').item.json.it_admin_group_id }}]}} 

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.

mksp.backend.user.converted_to_guest

Dieser Workflow wird dann ausgelöst, wenn ein Mitglied den Verein verlässt und daher zum Gast wird.

1771785245954-780.png

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.

mksp.backend.user.converted_to_member

Dieser Workflow wird dann ausgelöst, wenn ein neues Mitglied dem Verein beitritt.

1771785309574-242.png

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.

Subflows

ToDo

Community Nodes

asd