⚠️ Veraltet (Stand 2026-04-30)
Diese Dokumentation beschreibt das alte System vor dem Process-Engine-Refactor (Phase 4.7). Die zugrundeliegenden Tabellen (cascade_*, concept_instances/bausteine, crisis_scenarios/events/tasks, workflow_*) wurden gedroppt. Die hier dokumentierten Routen und Models existieren so nicht mehr.
Aktuelle Architektur: Process-Engine API — eine Engine, mehrere Apps (flow.*, concept.*, crisis.*).
Diese Datei bleibt als historische Referenz erhalten.
Chat-Nachrichten automatisieren
Eine der maechtigsten Anwendungen von n8n in Prilog: Chat-Nachrichten verarbeiten. Sie koennen auf neue Nachrichten reagieren, Schluesselworte erkennen, Nachrichten weiterleiten, Auto-Antworten senden — alles automatisch.
n8n hat einen eingebauten Matrix-Node der direkt mit Synapse (dem Chat-Server hinter Prilog) spricht. Sie brauchen kein eigenes Bot-Framework, n8n kann das von Haus aus.
Was ist moeglich?
- Schluesselwort-Trigger: "Wenn jemand 'Notfall' schreibt, sende SMS an Schulleitung"
- Weiterleitung: "Nachrichten aus dem Eltern-Chat automatisch an die richtige Klassenleitung"
- Auto-Antworten: "Wenn die Frage 'Wann ist Ferienanfang?' kommt, antworte automatisch"
- Zusammenfassungen: "Jeden Freitag eine Wochen-Zusammenfassung der Diskussionen"
- Eskalations-Bot: "Wenn 3 Nachrichten ohne Antwort, informiere die Lehrkraft"
- Uebersetzung: "Eltern-Nachrichten in Deutsch automatisch in Tuerkisch/Englisch uebersetzen"
Schritt 1: Matrix-Credentials in n8n einrichten
n8n braucht einmalig Zugangsdaten fuer Ihren Matrix-Server. Diese erhalten Sie ueber einen Prilog-Callback:
Im n8n-Editor:
- Erstellen Sie einen neuen Workflow zum Test
- Fuegen Sie einen Manual Trigger hinzu
- Dahinter einen HTTP Request Node:
- Method: GET
- URL:
PRILOG_API_URL/api/platform/v1/n8n-callback/matrix/credentials?tenantId=[Ihre Tenant-ID]
- Workflow ausfuehren
Sie erhalten als Antwort:
{
"homeserverUrl": "https://ihre-schule.prilog.team",
"userId": "@adminweser:ihre-schule.prilog.team",
"accessToken": "syt_...",
"adminUsername": "adminweser"
}Diese Daten in n8n als Credential speichern:
- Credentials (links unten) → + Add Credential
- Matrix API auswaehlen
- Homeserver URL:
https://ihre-schule.prilog.team - Access Token:
syt_...(aus dem JSON kopieren) - Save
Fertig — n8n kann jetzt mit Ihrem Matrix-Server kommunizieren.
Schritt 2: Auf neue Nachrichten lauschen
Jetzt bauen Sie Ihren ersten Chat-Workflow:
- Neuer Workflow anlegen
- + klicken → Matrix Trigger suchen und hinzufuegen
- Authentication: Ihre eben erstellten Matrix-Credentials waehlen
- Resource: Message
- Event: New Message
- Room ID: ID des Raums den Sie ueberwachen wollen (siehe naechster Abschnitt)
Der Trigger laeuft jetzt und reagiert auf jede neue Nachricht in dem Raum.
Raum-IDs herausfinden
n8n braucht die interne Matrix-Raum-ID (sieht aus wie !abc123:ihre-schule.prilog.team). So bekommen Sie sie:
Variante 1: Aus dem Web-Client
- Im Web-Client den gewuenschten Space oeffnen
- URL anschauen:
https://ihre-schule.prilog.team/spaces/[space-id]
Variante 2: Liste aller Raeume via Prilog-Node
- Prilog-Node: Matrix-Chat → Raeume auflisten
- Gibt alle Raeume mit IDs, Namen und Mitgliederzahl zurueck
Variante 3: HTTP Request
- URL:
PRILOG_API_URL/api/platform/v1/n8n-callback/matrix/rooms?tenantId=[ID]
Schritt 3: Auf Nachrichten reagieren
Nach dem Matrix Trigger koennen Sie:
Schluesselwort pruefen:
Matrix Trigger
↓
IF Node:
Bedingung: [$json.content.body] enthaelt "Notfall"
↓
[Verschiedene Aktionen je nach Ergebnis]Antwort senden — drei Varianten:
Variante A: Direkter Matrix-Node (n8n-Standard)
- Nach dem Trigger einen Matrix Node hinzufuegen
- Resource: Message
- Operation: Send
- Room ID:
[$json.room_id](oder fester Raum) - Text: Ihre Antwort
Variante B: Prilog-Node (empfohlen)
- Prilog Node hinzufuegen
- Resource: Matrix-Chat → Nachricht senden
- Tenant-ID, Raum-ID, Nachricht eintragen
Variante C: HTTP Request (manuell)
- HTTP Request Node:
- URL:
PRILOG_API_URL/api/platform/v1/n8n-callback/matrix/send - Method: POST
- Body:
{ "tenantId": "[Tenant-ID]", "roomId": "[Raum-ID]", "message": "Ihre Nachricht hier", "formattedMessage": "Optional: <b>HTML-Version</b>" }
Variante A ist schneller (direkt mit Matrix). Variante B nutzt die Prilog-Audit-Pipeline und ist die empfohlene Option fuer fast alle Faelle.
Praxis-Beispiele
Beispiel 1: Notfall-Trigger
Matrix Trigger (alle Raeume)
↓
IF: Nachricht enthaelt "Notfall" oder "112"
↓
HTTP Request: SMS an Schulleitung (z.B. via Twilio)
↓
Matrix Send: "Notfall erkannt — Schulleitung wurde benachrichtigt"Beispiel 2: Eltern-Frage automatisch beantworten
Matrix Trigger (Eltern-Chat)
↓
IF: enthaelt "Ferien" oder "frei"
↓
Matrix Send: "Die Ferientermine finden Sie im Schulkalender unter ..."Beispiel 3: Wochen-Zusammenfassung
Schedule Trigger: jeden Freitag 16:00
↓
HTTP Request: GET Matrix-Raum-Verlauf (letzte 7 Tage)
↓
OpenAI Node: Fasse die wichtigsten Themen zusammen
↓
Matrix Send (Lehrer-Chat): "Wochenrueckblick: ..."Beispiel 4: Dringlichkeitsstufen
Matrix Trigger
↓
Switch Node:
- "DRINGEND" → SMS + Matrix Markierung
- "Frage" → Auto-Antwort + Weiterleitung
- "Info" → Nur loggenDatenschutz: Was n8n zu sehen bekommt
Wenn n8n auf Matrix-Nachrichten lauscht, sieht es alle Nachrichten in den abonnierten Raeumen. Das ist datenschutzrechtlich relevant:
DSGVO-Hinweis
- n8n laeuft auf Ihrem Schulserver — keine Daten verlassen die Schule
- Trotzdem: Sie sollten in Workflow-Beschreibungen klar dokumentieren, welche Raeume ueberwacht werden und wozu
- Eltern und Schueler sollten in der Datenschutzerklaerung informiert werden, wenn KI-Tools (wie OpenAI) auf Nachrichten zugreifen
- Empfehlung: Bauen Sie einen Workflow, der eine Liste aller aktiven Matrix-Trigger generiert — fuer die Auskunftspflicht
Die wichtigsten Matrix-Felder im Trigger
Wenn der Matrix Trigger ausloest, bekommen Sie ein JSON mit diesen Feldern:
| Feld | Inhalt |
|---|---|
event_id | Eindeutige Nachrichten-ID |
room_id | Raum-ID |
sender | Wer hat die Nachricht gesendet (z.B. @mueller:schule.prilog.team) |
content.body | Der Nachrichten-Text |
content.msgtype | m.text, m.image, m.file, etc. |
origin_server_ts | Zeitstempel |
In n8n koennen Sie auf diese Felder zugreifen mit [$json.sender], [$json.content.body], etc.