{
  "slug": "vertragsrisiko-kette",
  "category": "workflow",
  "name": "The Contract Risk Chain",
  "domaene": "Recht & Compliance",
  "typTags": [
    "automatisierend",
    "prüfend",
    "analytisch"
  ],
  "teaser": "An automation workflow that reads new contracts on arrival, extracts key terms, and files a structured high, medium and low risk assessment for the responsible team to review.",
  "hat": {
    "schritte": true,
    "beispiel_szenario": false,
    "ausgabebeispiel": false,
    "konfiguration": false,
    "betrieb": true,
    "arbeitsprompts": true,
    "einrichtung": true,
    "umsetzung": false,
    "export": true,
    "staerken": false,
    "ki_funktionen": false,
    "einschraenkungen": false,
    "weniger_geeignet_fuer": false
  },
  "sections": [
    {
      "id": "description",
      "title": "Description",
      "html": "<p>New contracts often land in a folder and wait there until someone finds time to read them in full. The Contract Risk Chain takes over this groundwork. As soon as a new contract appears in the designated folder, the workflow extracts the text; for scanned documents, OCR recognition runs first. A language model then pulls the key contract elements into a fixed format: parties, term, termination, costs, liability, and data protection. This produces an executive summary along with a risk list sorted into high, medium, and low, plus an assessment of review priority. The finished summary lands in a central repository, and the responsible team, for example the legal department, is notified with a link.</p>\n<p>A human stays in the loop at the decisive point: the chain provides a structured basis for review, it does not replace it. Anyone who goes into the legal review with the summary and risk list arrives better prepared and does not have to re-read the entire contract to find the relevant passages. The analysis stays groundwork: results with legal implications belong in a lawyer&#39;s review before any decision.</p>\n<p>Where the added value is greatest depends on contract volume. For a small number of highly individual contracts, the effect stays limited. For recurring contract types such as service or supplier agreements, the automatic pre-structuring saves noticeable time ahead of the actual review.</p>\n<ul>\n<li><strong>Faster review groundwork:</strong> Legal gets finished key terms and an initial risk assessment instead of reading every contract from scratch.</li>\n<li><strong>Consistent risk scoring:</strong> Every contract is sorted into the same categories of high, medium, and low.</li>\n<li><strong>Searchable key terms:</strong> Parties, term, costs, and liability are available in structured, uniform form.</li>\n<li><strong>Shorter time to review:</strong> Groundwork and prioritization run automatically before the actual review begins.</li>\n</ul>\n"
    },
    {
      "id": "builder-prompt",
      "title": "Builder Prompt",
      "html": "<p>Copy the prompt below in full into your automation tool or agent builder. As a file: <a href=\"/ai-library/vertragsrisiko-kette.en.json\">vertragsrisiko-kette.en.json</a></p>\n"
    }
  ],
  "schritte": [
    {
      "nr": 1,
      "titel": "Trigger: new contract in folder",
      "beschreibung": "A new contract file, PDF or DOCX, is placed in the \"Contracts/New\" folder and starts the process.",
      "rolle": "mensch"
    },
    {
      "nr": 2,
      "titel": "Extract text and OCR",
      "beschreibung": "The contract text is read out; for scanned documents, OCR recognition runs first.",
      "rolle": "automatisch"
    },
    {
      "nr": 3,
      "titel": "Extract key terms",
      "beschreibung": "A language model pulls parties, term, termination periods, costs and payment terms, liability and warranty, and other important clauses into a fixed format.",
      "rolle": "automatisch"
    },
    {
      "nr": 4,
      "titel": "Create risk assessment",
      "beschreibung": "From the extracted key terms, an executive summary, a risk list sorted into high, medium, and low, recommendations for action, and a review priority are produced.",
      "rolle": "automatisch"
    },
    {
      "nr": 5,
      "titel": "Store the summary",
      "beschreibung": "The finished overview is stored in structured form in the \"Legal Reviews\" database, with a link to the original document.",
      "rolle": "automatisch"
    },
    {
      "nr": 6,
      "titel": "Notify the legal team",
      "beschreibung": "The responsible team receives a message with a link to the review and the determined priority.",
      "rolle": "ergebnis"
    }
  ],
  "herausgeber": "Voyage Digital",
  "version": "2.0",
  "stand": "2026-07-26",
  "nutzen": [
    {
      "titel": "Faster review groundwork",
      "text": "Legal gets finished key terms and an initial risk assessment instead of reading every contract from scratch."
    },
    {
      "titel": "Consistent risk scoring",
      "text": "Every contract is sorted into the same categories of high, medium, and low."
    },
    {
      "titel": "Searchable key terms",
      "text": "Parties, term, costs, and liability are available in structured, uniform form."
    },
    {
      "titel": "Shorter time to review",
      "text": "Groundwork and prioritization run automatically before the actual review begins."
    }
  ],
  "voraussetzungen": [
    {
      "label": "Cloud storage",
      "text": "Drive, Dropbox, OneDrive or comparable, with a \"Contracts/New\" folder and write access.",
      "icon": "cloud"
    },
    {
      "label": "OCR tool",
      "text": "Required for scanned contracts, otherwise extraction stays empty for scans.",
      "icon": "document_scanner"
    },
    {
      "label": "Storage for the summaries",
      "text": "Notion, Drive, or Confluence for the \"Legal Reviews\" database.",
      "icon": "description"
    },
    {
      "label": "LLM access and notification",
      "text": "Access to OpenAI, Claude, or Gemini plus Gmail or Slack for the legal team.",
      "icon": "key"
    }
  ],
  "betrieb": {
    "testing": [
      {
        "label": "Test contract",
        "text": "Place an anonymized sample in the \"Contracts/New\" folder.",
        "icon": "upload_file"
      },
      {
        "label": "Check extraction",
        "text": "Are the contract text and key terms cleanly structured, including for scans?",
        "icon": "summarize"
      },
      {
        "label": "Risk and priority",
        "text": "Is the categorization traceable and are the recommendations concrete?",
        "icon": "warning"
      },
      {
        "label": "Edge cases",
        "text": "Test different contract types, poor scans, and very long contracts.",
        "icon": "rule"
      }
    ],
    "goLive": [
      {
        "label": "Approval to start",
        "text": "Activate the workflow only once extraction, risk analysis, and notification are reliably correct.",
        "icon": "check_circle"
      },
      {
        "label": "Start with one type",
        "text": "Begin with one contract type, for example NDAs, and add templates for further types step by step.",
        "icon": "gavel"
      },
      {
        "label": "Define escalation",
        "text": "Set clear rules for contracts rated high risk.",
        "icon": "priority_high"
      },
      {
        "label": "Expand",
        "text": "Later extend with type categorization, deadline tracking, and a compliance check.",
        "icon": "rocket_launch"
      }
    ],
    "haeufigeFehler": [
      {
        "label": "PDF not searchable",
        "text": "Enable OCR, otherwise extraction stays empty for scans.",
        "icon": "find_in_page"
      },
      {
        "label": "Extraction too generic",
        "text": "Adapt the prompt per contract type.",
        "icon": "auto_awesome"
      },
      {
        "label": "Notification does not arrive",
        "text": "Check addresses, channels, and permissions.",
        "icon": "notifications_off"
      },
      {
        "label": "Duplicates on upload",
        "text": "Use a file hash or contract number as a dedup key.",
        "icon": "content_copy"
      }
    ]
  },
  "arbeitsprompts": [
    {
      "titel": "Key Terms Extraction",
      "beschreibung": "Pulls the key contract elements from the contract text into a fixed format.",
      "prompt": "You are a legally knowledgeable assistant. Analyze the following contract and extract the key contract elements in structured form.\n\nCONTRACT:\n[CONTRACT_TEXT]\n\nExtract the following information:\n\n1. CONTRACTING PARTIES\n   - Client:\n   - Contractor:\n\n2. CONTRACT TERM\n   - Start date:\n   - End date:\n   - Automatic renewal: (Yes/No plus conditions)\n\n3. TERMINATION PERIODS\n   - Ordinary termination:\n   - Extraordinary termination:\n\n4. COSTS AND PAYMENT TERMS\n   - Total volume:\n   - Payment frequency:\n   - Payment due date:\n   - Price adjustment clauses:\n\n5. LIABILITY AND WARRANTY\n   - Liability limitations:\n   - Warranty periods:\n   - Insurance:\n\n6. OTHER IMPORTANT CLAUSES\n   - Confidentiality:\n   - Data protection:\n   - Jurisdiction:\n   - Other:\n\nState \"Not specified\" when information is missing or unclearly worded in the contract, instead of speculating."
    },
    {
      "titel": "Risk Analysis",
      "beschreibung": "Assesses the extracted key terms and produces an executive summary, risk rating, and review priority.",
      "prompt": "You are an experienced lawyer. Based on the following extracted contract data, create a risk analysis and an executive summary.\n\nEXTRACTED CONTRACT DATA:\n[KEY_TERMS]\n\nTASKS:\n\n1. EXECUTIVE SUMMARY (3 to 5 sentences)\nSummarize the key points of the contract: who, what, when, how much.\n\n2. RISK ANALYSIS\nIdentify possible legal risks in the following categories:\n\n   HIGH RISKS (immediate action required):\n   - [Critical points, for example missing liability limitation, unrealistic termination periods]\n\n   MEDIUM RISKS (should be reviewed):\n   - [Moderate risks, for example unclear wording, missing clauses]\n\n   LOW RISKS (for information):\n   - [Minor points of note]\n\n3. RECOMMENDATIONS FOR ACTION\n   - [Concrete next steps for the legal team]\n\n4. REVIEW PRIORITY\n   Assess the urgency: HIGH / MEDIUM / LOW\n   Rationale: [1 to 2 sentences]\n\nStay precise, factual, and practice oriented. At the end, point out that this assessment does not replace legal advice and that results with legal implications should be reviewed by a lawyer."
    }
  ],
  "prompt": "GOAL\nBuild a workflow that starts automatically for every new contract in the monitored folder: text recognition including OCR, structured extraction of the key terms, a risk analysis sorted into high, medium, and low, filing the summary in the \"Legal Reviews\" database, and notifying the legal team with a link and priority.\n\nAdapt the structure to the concepts of your automation tool (for example nodes, steps, zaps, or agent actions). While doing so, preserve the trigger logic, the sequence, and the data flow.\n\nTRIGGER\nType: new file (PDF or DOCX) in the \"Contracts/New\" folder in your cloud storage.\n\nSTEPS\n1. Duplicate check: check a file hash or contract number as a dedup key, skip contracts already processed.\n2. Extract text: read out the contract text, run OCR first for scanned PDFs without exception.\n3. AI step: key terms extraction. Use exactly the Key Terms Extraction working prompt (see the Working Prompts section). Output: structured contract elements.\n4. AI step: risk analysis. Use exactly the Risk Analysis working prompt (see the Working Prompts section) with the key terms from step 3 as input. Output: executive summary, risks sorted into high, medium, and low, recommendations for action, and review priority.\n5. Store: file the summary in structured form in the \"Legal Reviews\" database, with a link to the original document and the review priority as its own field.\n6. Notify: inform the legal team by email or chat, with a link to the review and the priority. For priority high, apply the defined escalation rule, for example a direct message instead of a shared channel.\n\nPROMPTS\nTake over both working prompts from the section of the same name unchanged. Do not alter the placeholders they contain, and map them as described in the data flow.\n\nDATA FLOW\nStep 2 to step 3: extracted contract text as [CONTRACT_TEXT].\nStep 3 to step 4: structured key terms as [KEY_TERMS].\nStep 4 to steps 5 and 6: executive summary, risks, recommendations for action, and review priority.\nTrigger to step 5: link to the original document.\n\nERROR HANDLING\nPDF not searchable or OCR returns empty text: stop processing and send an error notice to the legal team instead of analyzing empty text.\nVery long contract, token limit reached: extract section by section and then merge the key terms.\nDuplicate detected: skip and log it.\nNotification fails: check addresses, channels, and permissions, and log the error.\nPrinciple: the analysis stays groundwork and does not replace a legal review. Every review goes to the legal team.\n\nPLACEHOLDER CONVENTION\n[CONTRACT_TEXT] and [KEY_TERMS] are mapped fully dynamically, as described in the data flow. There are no placeholders that require manual configuration in the prompts themselves. Only the monitored folder, the OCR tool, the target database, the recipients, and the escalation rule are configured manually.\n\nSELF CHECK BEFORE COMPLETION\nCheck, before you report the workflow as finished:\n1. Are all steps connected correctly, including the duplicate check before the actual processing?\n2. Are both working prompts inserted in full and unchanged, and are [CONTRACT_TEXT] and [KEY_TERMS] mapped correctly?\n3. Is the OCR handling for scans active, and is the review priority carried through into the database and the notification?\n4. Are all points listed that require manual configuration: the \"Contracts/New\" folder, the OCR tool, the target database, the recipients, the escalation rule, and the LLM access?",
  "einrichtung": {
    "intro": "Two routes lead to the same result. Pick the one that fits your setup.",
    "varianten": [
      {
        "variante": "Builder-Prompt",
        "einleitung": "Suitable when you want to build the workflow in your own automation tool.",
        "schritte": [
          "Open your workflow tool, for example n8n, Make, Zapier or Langdock.",
          "Create a new workflow and give it a name.",
          "Choose the AI-assisted build option if your tool offers one.",
          "Paste the builder prompt from above in full.",
          "Check the result against the step sequence in this document, then add your access credentials and channels."
        ]
      },
      {
        "variante": "JSON-Import",
        "einleitung": "Suitable when you want to take the workflow over unchanged.",
        "schritte": [
          "Download the JSON file from the JSON export section.",
          "Open the workflow area of your tool and create a new workflow.",
          "Give it a name and confirm.",
          "Open the menu on the workflow name and choose to import a JSON file.",
          "Upload the file, then add your own access credentials.",
          "Run a test before you activate the workflow."
        ]
      }
    ]
  },
  "exportMeta": {
    "datei": "w27_vertragsrisiko-kette__workflow.json",
    "format": "voyage-workflow/1"
  },
  "download": {
    "schema": "voyage-workflow/1",
    "name": "Die Vertragsrisiko-Kette",
    "beschreibung": "Lädt neue Verträge aus einem überwachten Google-Drive-Ordner automatisch herunter, extrahiert die zentralen Vertragsbestandteile und die rechtlichen Risiken über zwei KI-Agenten, legt das Ergebnis als Notion-Seite ab und benachrichtigt das Legal-Team per Slack.",
    "trigger": {
      "typ": "Integrations-Trigger auf einen Google-Drive-Ordner (kein Zeitplan, kein Webhook)",
      "bedingung": "Eine neue Vertragsdatei (PDF oder DOCX) erscheint im überwachten Google-Drive-Ordner. Der Trigger newContract ist vom Typ Integration, er überwacht den Ordner fortlaufend und löst bei jeder neuen Datei aus."
    },
    "schritte": [
      {
        "nr": 1,
        "titel": "Trigger: neuer Vertrag im Ordner",
        "rolle": "mensch",
        "aktion": "Eine neue Vertragsdatei (PDF oder DOCX) wird in einem überwachten Google-Drive-Ordner abgelegt. Der Integrations-Trigger newContract erkennt die neue Datei und startet den Ablauf. Für diesen Knoten ist die Fehlerstrategie stop hinterlegt: Kann der Ordner nicht gelesen werden, bricht der Lauf ab.",
        "prompt_ref": null,
        "eingang": [],
        "ausgang": [
          "Dateikennung (itemId) der neuen Vertragsdatei"
        ]
      },
      {
        "nr": 2,
        "titel": "Text und OCR extrahieren",
        "rolle": "automatisch",
        "aktion": "Der Knoten getContractFile lädt die Vertragsdatei anhand der itemId aus dem Trigger aus Google Drive herunter und stellt sie für die nachgelagerte KI-Analyse bereit. Der Graph enthält keinen eigenen OCR-Knoten. Die Texterkennung bei gescannten Dokumenten hängt vom eingesetzten Dateileser ab und bleibt eine eigene Voraussetzung außerhalb des Graphen.",
        "prompt_ref": null,
        "eingang": [
          "Dateikennung (itemId) der neuen Vertragsdatei"
        ],
        "ausgang": [
          "Heruntergeladene Vertragsdatei, bereit für die KI-Analyse"
        ]
      },
      {
        "nr": 3,
        "titel": "Key Terms extrahieren",
        "rolle": "automatisch",
        "aktion": "Der KI-Agent Contract Terms Extractor (Knoten extractContractTerms) liest die Vertragsdatei im Modus create und liefert ein strukturiertes Ausgabeschema mit den Pflichtfeldern laufzeit, kuendigungsfrist, kosten, haftungsklauseln und vertragsparteien, dazu einen zusammenfassenden output-Text und ein success-Flag.",
        "prompt_ref": "arbeitsprompt-1",
        "eingang": [
          "Heruntergeladene Vertragsdatei, bereit für die KI-Analyse"
        ],
        "ausgang": [
          "Strukturierte Felder laufzeit, kuendigungsfrist, kosten, haftungsklauseln, vertragsparteien",
          "Zusammenfassender output-Text",
          "success-Flag"
        ]
      },
      {
        "nr": 4,
        "titel": "Risikoanalyse erstellen",
        "rolle": "automatisch",
        "aktion": "Der KI-Agent Legal Risk Analyzer (Knoten analyzeLegalRisks) verarbeitet die strukturierten Felder aus Schritt 3 im Modus create und liefert ein Ausgabeschema mit den Pflichtfeldern risiken, zusammenfassung und handlungsempfehlungen, dazu einen output-Text und ein success-Flag. Eine gesondert auswertbare Prioritätsstufe kennt das Ausgabeschema nicht: Die im Arbeitsprompt abgefragte Prüfpriorität bleibt Teil des Fließtexts in risiken beziehungsweise output.",
        "prompt_ref": "arbeitsprompt-2",
        "eingang": [
          "Strukturierte Felder laufzeit, kuendigungsfrist, kosten, haftungsklauseln, vertragsparteien"
        ],
        "ausgang": [
          "Feld zusammenfassung",
          "Feld risiken (Prüfpriorität als Teil des Fließtexts)",
          "Feld handlungsempfehlungen",
          "output-Text",
          "success-Flag"
        ]
      },
      {
        "nr": 5,
        "titel": "Zusammenfassung speichern",
        "rolle": "automatisch",
        "aktion": "Der Knoten saveToNotion legt eine Notion-Seite an, mit einem aus Vertragsparteien und Datum generierten Titel und einem festgelegten Notiz-Icon (Memo-Symbol), standardmäßig im persönlichen Workspace-Bereich (createInPersonalRoot, parentId workspace). Die Seite gliedert sich in die Abschnitte Vertragsinformationen (laufzeit, kuendigungsfrist, kosten, haftungsklauseln, vertragsparteien aus Schritt 3), Zusammenfassung, Rechtliche Risiken und Handlungsempfehlungen (aus Schritt 4). Ein eigenes Prioritätsfeld sieht die Seite nicht vor. Wer nach Prüfpriorität filtern will, muss die Seite wie im Setup-Hinweis des Knotens vorgeschlagen in eine Notion-Datenbank mit eigener Prioritäts-Property umbauen.",
        "prompt_ref": null,
        "eingang": [
          "Strukturierte Felder laufzeit, kuendigungsfrist, kosten, haftungsklauseln, vertragsparteien",
          "Felder zusammenfassung, risiken, handlungsempfehlungen"
        ],
        "ausgang": [
          "Angelegte Notion-Seite mit generiertem Titel und den vier Abschnitten"
        ]
      },
      {
        "nr": 6,
        "titel": "Legal-Team benachrichtigen",
        "rolle": "ergebnis",
        "aktion": "Der Knoten notifyLegalTeam sendet eine Slack-Nachricht in den Kanal #legal, mit der Zusammenfassung und den Risiken aus Schritt 4 sowie dem Hinweis, dass die vollständige Analyse in Notion verfügbar ist. Ein automatisch mitgeführter Link zur Notion-Seite und eine risikoabhängige Eskalationsregel sind laut Setup-Hinweis des Knotens Ausbauoptionen, keine im Graphen aktive Verzweigung. Der Wechsel auf E-Mail oder Microsoft Teams ist ebenso als Alternative vorgesehen, aber nicht voreingestellt.",
        "prompt_ref": null,
        "eingang": [
          "Angelegte Notion-Seite mit generiertem Titel und den vier Abschnitten"
        ],
        "ausgang": [
          "Slack-Nachricht im Kanal #legal"
        ]
      }
    ],
    "prompts": {
      "arbeitsprompt-1": {
        "titel": "Key-Terms-Extraktion",
        "text": "Sie sind ein juristisch versierter Assistent. Analysieren Sie den folgenden Vertrag und extrahieren Sie die wichtigsten Vertragsbestandteile in strukturierter Form.\n\nVERTRAG:\n[VERTRAGSTEXT]\n\nExtrahieren Sie folgende Informationen:\n\n1. VERTRAGSPARTEIEN\n   - Auftraggeber:\n   - Auftragnehmer:\n\n2. VERTRAGSLAUFZEIT\n   - Startdatum:\n   - Enddatum:\n   - Automatische Verlängerung: (Ja/Nein plus Bedingungen)\n\n3. KÜNDIGUNGSFRISTEN\n   - Ordentliche Kündigung:\n   - Außerordentliche Kündigung:\n\n4. KOSTEN UND ZAHLUNGSBEDINGUNGEN\n   - Gesamtvolumen:\n   - Zahlungsrhythmus:\n   - Zahlungsziel:\n   - Preisanpassungsklauseln:\n\n5. HAFTUNG UND GEWÄHRLEISTUNG\n   - Haftungsbegrenzungen:\n   - Gewährleistungsfristen:\n   - Versicherungen:\n\n6. SONSTIGE WICHTIGE KLAUSELN\n   - Geheimhaltung:\n   - Datenschutz:\n   - Gerichtsstand:\n   - Sonstiges:\n\nGeben Sie „Nicht spezifiziert“ an, wenn eine Information im Vertrag fehlt oder unklar formuliert ist, statt zu spekulieren."
      },
      "arbeitsprompt-2": {
        "titel": "Risiko-Analyse",
        "text": "Sie sind ein erfahrener Jurist. Erstellen Sie auf Basis der folgenden extrahierten Vertragsdaten eine Risikoanalyse und eine Executive Summary.\n\nEXTRAHIERTE VERTRAGSDATEN:\n[KEY_TERMS]\n\nAUFGABEN:\n\n1. EXECUTIVE SUMMARY (3 bis 5 Sätze)\nFassen Sie die wichtigsten Punkte des Vertrags zusammen: wer, was, wann, wie viel.\n\n2. RISIKO-ANALYSE\nIdentifizieren Sie mögliche rechtliche Risiken in folgenden Kategorien:\n\n   HOHE RISIKEN (sofortiger Handlungsbedarf):\n   - [Kritische Punkte, zum Beispiel fehlende Haftungsbegrenzung, unrealistische Kündigungsfristen]\n\n   MITTLERE RISIKEN (sollten geprüft werden):\n   - [Moderate Risiken, zum Beispiel unklare Formulierungen, fehlende Klauseln]\n\n   NIEDRIGE RISIKEN (zur Kenntnis):\n   - [Kleinere Auffälligkeiten]\n\n3. HANDLUNGSEMPFEHLUNGEN\n   - [Konkrete nächste Schritte für das Legal-Team]\n\n4. PRÜFPRIORITÄT\n   Bewerten Sie die Dringlichkeit: HOCH / MITTEL / NIEDRIG\n   Begründung: [1 bis 2 Sätze]\n\nBleiben Sie präzise, sachlich und praxisorientiert. Weisen Sie am Ende darauf hin, dass diese Einschätzung keine Rechtsberatung ersetzt und Ergebnisse mit rechtlicher Tragweite anwaltlich zu prüfen sind."
      }
    },
    "datenfluss": [
      {
        "von": 1,
        "nach": 2,
        "nutzlast": "Dateikennung (itemId) der neuen Vertragsdatei"
      },
      {
        "von": 2,
        "nach": 3,
        "nutzlast": "Heruntergeladene Vertragsdatei als [VERTRAGSTEXT]"
      },
      {
        "von": 3,
        "nach": 4,
        "nutzlast": "Strukturierte Felder laufzeit, kuendigungsfrist, kosten, haftungsklauseln, vertragsparteien als [KEY_TERMS]"
      },
      {
        "von": 3,
        "nach": 5,
        "nutzlast": "Felder laufzeit, kuendigungsfrist, kosten, haftungsklauseln, vertragsparteien für den Abschnitt Vertragsinformationen der Notion-Seite"
      },
      {
        "von": 4,
        "nach": 5,
        "nutzlast": "Felder zusammenfassung, risiken, handlungsempfehlungen für die übrigen Abschnitte der Notion-Seite"
      },
      {
        "von": 4,
        "nach": 6,
        "nutzlast": "Felder zusammenfassung und risiken für die Slack-Nachricht"
      }
    ],
    "voraussetzungen": [
      "Google-Drive-Konto mit Zugriff auf den überwachten Ordner. Der Graph ist konkret an Google Drive gebunden, keine austauschbare Cloud-Speicher-Wahl",
      "OCR-fähiger Dateileser für gescannte Verträge, da der Graph selbst keinen eigenen OCR-Knoten enthält",
      "LLM-Zugang für die beiden Agenten-Knoten Contract Terms Extractor und Legal Risk Analyzer",
      "Notion-Workspace-Zugriff für den Knoten saveToNotion, inklusive Berechtigung, Seiten im Workspace-Root beziehungsweise persönlichen Bereich anzulegen",
      "Slack-Workspace-Zugriff auf den Kanal #legal für den Knoten notifyLegalTeam. Alternative laut Setup-Hinweis: Gmail oder Microsoft Teams, im Graphen nicht vorkonfiguriert",
      "Bei Bedarf Umbau der Notion-Seite in eine Datenbank mit eigener Prioritäts-Property, wenn nach Prüfpriorität gefiltert werden soll",
      "Eigene Eskalationsregel für hoch eingestufte Risiken, die manuell in Slack-Text oder Conditional Logic ergänzt werden muss. Im Graphen nicht als aktive Verzweigung vorhanden"
    ],
    "fehlerbehandlung": [
      {
        "fall": "Ausfall eines der sechs Knoten (newContract, getContractFile, extractContractTerms, analyzeLegalRisks, saveToNotion, notifyLegalTeam)",
        "massnahme": "Alle sechs Knoten sind mit der Fehlerstrategie stop konfiguriert. Der gesamte Lauf bricht ab, es gibt keinen automatischen Retry und keinen Fallback-Pfad im Graphen."
      },
      {
        "fall": "PDF nicht durchsuchbar",
        "massnahme": "OCR aktivieren, sonst bleibt die Extraktion bei Scans leer."
      },
      {
        "fall": "Extraktion zu generisch",
        "massnahme": "Den Extraktions-Prompt pro Vertragstyp anpassen."
      },
      {
        "fall": "Benachrichtigung kommt nicht an",
        "massnahme": "Adressen, Kanäle und Berechtigungen prüfen, insbesondere die Zugriffsrechte auf den Slack-Kanal #legal."
      },
      {
        "fall": "Duplikate beim Upload",
        "massnahme": "Datei-Hash oder Vertragsnummer als Dedup-Schlüssel verwenden. Der Graph enthält keinen eigenen Dedup-Knoten, dieser Schritt muss ergänzt werden."
      }
    ],
    "platzhalter": [
      {
        "name": "itemId",
        "quelle": "Dateikennung aus dem Trigger newContract, wird an getContractFile übergeben, um die Vertragsdatei aus Google Drive herunterzuladen"
      },
      {
        "name": "laufzeit, kuendigungsfrist, kosten, haftungsklauseln, vertragsparteien",
        "quelle": "Strukturierte Ausgabefelder des Agenten Contract Terms Extractor (extractContractTerms.output.structured), referenziert im Abschnitt Vertragsinformationen der Notion-Seite"
      },
      {
        "name": "risiken, zusammenfassung, handlungsempfehlungen",
        "quelle": "Strukturierte Ausgabefelder des Agenten Legal Risk Analyzer (analyzeLegalRisks.output.structured), referenziert in der Notion-Seite und der Slack-Nachricht"
      },
      {
        "name": "icon, title, content, parentId, parentType, createInPersonalRoot",
        "quelle": "Konfigurationsfelder des Knotens saveToNotion. Der Titel wird aus Vertragsparteien und Datum generiert, parentId/parentType/createInPersonalRoot bestimmen den Ablageort der Seite"
      },
      {
        "name": "text, channelId",
        "quelle": "Konfigurationsfelder des Knotens notifyLegalTeam. channelId ist im Graphen auf #legal voreingestellt"
      },
      {
        "name": "VERTRAGSTEXT",
        "quelle": "Platzhalter im Arbeitsprompt Key-Terms-Extraktion, wird durch die aus Google Drive heruntergeladene Vertragsdatei aus Schritt 2 ersetzt"
      },
      {
        "name": "KEY_TERMS",
        "quelle": "Platzhalter im Arbeitsprompt Risiko-Analyse, wird durch die strukturierten Felder aus extractContractTerms.output.structured ersetzt"
      }
    ],
    "herausgeber": "Voyage Digital",
    "version": "2.0",
    "stand": "2026-07-26"
  },
  "itemIcon": "file-warning",
  "recommended": [
    {
      "slug": "datenschutz-pruefer",
      "category": "assistent",
      "name": "The Data Protection Reviewer",
      "teaser": "Checks vendor and AI tool data protection documents against GDPR, rates risks with a traffic light system, and delivers concrete renegotiation points.",
      "domaene": "Recht & Compliance",
      "itemIcon": "shield-check"
    },
    {
      "slug": "vertrags-sichter",
      "category": "assistent",
      "name": "The Contract Screener",
      "teaser": "The Contract Screener reviews a contract before signing, ranks its key clauses by risk, and gives executives a structured basis for the decision and the negotiation.",
      "domaene": "Recht & Compliance",
      "itemIcon": "file-signature"
    },
    {
      "slug": "vertragsrisiko-pruefer",
      "category": "assistent",
      "name": "The Contract Risk Reviewer",
      "teaser": "Reviews contract texts before signing, flags the five most critical risks, and gives a concrete recommended action for each.",
      "domaene": "Recht & Compliance",
      "itemIcon": "file-warning"
    },
    {
      "slug": "eu-ai-act-lotse",
      "category": "assistent",
      "name": "The EU AI Act Navigator",
      "teaser": "Classifies AI use cases under the EU AI Act into the appropriate risk category and shows small and mid-sized companies the obligations and next steps that follow, while clearly separating settled law from interpretation.",
      "domaene": "Recht & Compliance",
      "itemIcon": "landmark"
    },
    {
      "slug": "dsfa-expose",
      "category": "skill",
      "name": "The DPIA Draft",
      "teaser": "The DPIA Draft turns a description of a processing activity into a structured Data Protection Impact Assessment draft under Article 35 GDPR, complete with a risk analysis, a measures plan, and a recommendation for your data protection officer.",
      "domaene": "Recht & Compliance",
      "itemIcon": "shield-alert"
    },
    {
      "slug": "annahmen-protokoll",
      "category": "skill",
      "name": "The Assumption Protocol",
      "teaser": "The Assumption Protocol exposes a belief layer by layer, from its surface justification down to the root assumption beneath it, and shows honestly which layers actually hold up.",
      "domaene": "Strategie & Entscheidung",
      "itemIcon": "help-circle"
    },
    {
      "slug": "gegenrede-protokoll",
      "category": "skill",
      "name": "The Devil's Advocate Protocol",
      "teaser": "The Devil's Advocate Protocol deliberately argues against your strategy or decision to expose risks, questionable assumptions and blind spots before you commit resources.",
      "domaene": "Strategie & Entscheidung",
      "itemIcon": "messages-square"
    },
    {
      "slug": "feedback-route",
      "category": "workflow",
      "name": "The Feedback Route",
      "teaser": "A daily automated report that sorts incoming customer feedback by sentiment and topic and immediately flags critical cases to the team.",
      "domaene": "Kundensupport & Service",
      "itemIcon": "message-square-quote"
    },
    {
      "slug": "wettbewerbs-spur",
      "category": "workflow",
      "name": "The Competitor Trail",
      "teaser": "A daily workflow that collects new competitor posts from RSS feeds and turns them into a prioritized trend report for the content team.",
      "domaene": "Recherche & Wissensmanagement",
      "itemIcon": "swords"
    },
    {
      "slug": "claude-seo",
      "category": "tool",
      "name": "claude-seo",
      "teaser": "claude-seo is an open source SEO skill and subagent suite for Claude Code that runs technical audits, content quality checks, schema markup and AI visibility analysis through 25 skills and 18 parallel agents.",
      "domaene": "SEO & KI-Sichtbarkeit"
    }
  ]
}