{
  "slug": "termin-bruecke",
  "category": "workflow",
  "name": "The Appointment Bridge",
  "domaene": "Betrieb & Projektmanagement",
  "typTags": [
    "automatisierend",
    "schreibend"
  ],
  "teaser": "A workflow that reads incoming appointment requests, checks calendar availability, and drops a ready reply draft with three time proposals into the inbox for review before sending.",
  "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>Appointment requests by email usually cost more time than the appointment itself: open the calendar, search for free slots, draft a reply, match the tone. This workflow takes over exactly that intermediate step. It recognizes a flagged appointment request, extracts duration, time preference, urgency and topic, matches this against actual free slots, and places a reply draft with three concrete proposals in the inbox.</p>\n<p>What gets automated is the research and the drafting, not the sending. The draft lands in the email tool as a draft and waits for approval. This keeps control over tone, commitment and actual availability in your hands, while the mechanical groundwork falls away.</p>\n<p>A human stays in the loop at two points: applying the label that triggers the workflow, and the final review of the draft before it is sent. For recurring, low-complexity appointment requests (initial calls, introductory meetings, standard meetings), this saves noticeable time without any email going out unreviewed.</p>\n<ul>\n<li><strong>Control stays with you:</strong> Every draft goes out only after your review. No appointment is confirmed or sent automatically.</li>\n<li><strong>Consistent format:</strong> Every reply follows the same professional structure with a clear call to action, no matter who would otherwise have handled the request.</li>\n<li><strong>Less manual calendar searching:</strong> The Appointment Bridge matches the request directly against free slots, instead of you searching the calendar by hand.</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/termin-bruecke.en.json\">termin-bruecke.en.json</a></p>\n"
    }
  ],
  "schritte": [
    {
      "nr": 1,
      "titel": "Trigger",
      "beschreibung": "A new email with the label \"Appointment request\" starts the process.",
      "rolle": "mensch"
    },
    {
      "nr": 2,
      "titel": "Email analysis",
      "beschreibung": "Duration, time window, time zone, topic and special requirements are read from the message as structured JSON.",
      "rolle": "automatisch"
    },
    {
      "nr": 3,
      "titel": "Check calendar",
      "beschreibung": "Free slots within the desired time frame, usually two to three weeks, are determined taking buffer times and working hours into account.",
      "rolle": "automatisch"
    },
    {
      "nr": 4,
      "titel": "Generate draft",
      "beschreibung": "A polite reply with three concrete time proposals is drafted, with a matching tone and a clear call to action.",
      "rolle": "automatisch"
    },
    {
      "nr": 5,
      "titel": "Save draft",
      "beschreibung": "The draft is saved in the email tool, ready for review.",
      "rolle": "automatisch"
    },
    {
      "nr": 6,
      "titel": "Notify",
      "beschreibung": "A short message in Slack or Teams announces that a draft is ready for review.",
      "rolle": "ergebnis"
    }
  ],
  "herausgeber": "Voyage Digital",
  "version": "2.0",
  "stand": "2026-07-26",
  "nutzen": [
    {
      "titel": "Control stays with you",
      "text": "Every draft goes out only after your review. No appointment is confirmed or sent automatically."
    },
    {
      "titel": "Consistent format",
      "text": "Every reply follows the same professional structure with a clear call to action, no matter who would otherwise have handled the request."
    },
    {
      "titel": "Less manual calendar searching",
      "text": "The Appointment Bridge matches the request directly against free slots, instead of you searching the calendar by hand."
    }
  ],
  "voraussetzungen": [
    {
      "label": "Email tool",
      "text": "Gmail, Outlook or a comparable tool, for receiving the request and saving the draft.",
      "icon": "mail"
    },
    {
      "label": "Calendar tool",
      "text": "Google Calendar, Outlook or Calendly with read access to free slots.",
      "icon": "calendar_month"
    },
    {
      "label": "Rule set",
      "text": "Fixed working hours, buffer times, typical meeting lengths and preferred time windows, so the proposals stay realistic.",
      "icon": "rule"
    },
    {
      "label": "LLM access",
      "text": "An API key for OpenAI, Claude or Gemini.",
      "icon": "key"
    }
  ],
  "betrieb": {
    "testing": [
      {
        "label": "Send a test request",
        "text": "Send a test request, for example \"30 minutes next week, morning, Project X\".",
        "icon": "outgoing_mail"
      },
      {
        "label": "Check the analysis",
        "text": "Check whether the JSON contains the right duration, preferences and topic.",
        "icon": "data_object"
      },
      {
        "label": "Calendar and draft",
        "text": "Check whether real free slots are found and the draft contains three concrete proposals.",
        "icon": "event_available"
      },
      {
        "label": "Edge cases",
        "text": "Test requests with no free slots, multiple time zones and very urgent requests.",
        "icon": "rule"
      }
    ],
    "goLive": [
      {
        "label": "Approve",
        "text": "Activate the workflow only once the analysis, calendar match and draft run cleanly.",
        "icon": "check_circle"
      },
      {
        "label": "Draft mode",
        "text": "Let the workflow run in pure draft mode for a week and refine the slot rules based on the results.",
        "icon": "visibility"
      },
      {
        "label": "Label filter",
        "text": "Set the \"Appointment request\" label cleanly, so it does not fire on other emails.",
        "icon": "filter_alt"
      },
      {
        "label": "Adjust style",
        "text": "Match the template and tone of the drafts to your usual style.",
        "icon": "edit"
      }
    ],
    "haeufigeFehler": [
      {
        "label": "No free slots",
        "text": "Widen the search window to two to three weeks and loosen the time constraints.",
        "icon": "event_busy"
      },
      {
        "label": "Time zone mismatch",
        "text": "Detect the sender's time zone and state it explicitly in the draft.",
        "icon": "schedule"
      },
      {
        "label": "Trigger fires on every email",
        "text": "Set the filter exactly to the \"Appointment request\" label.",
        "icon": "label"
      },
      {
        "label": "Draft too generic",
        "text": "Add examples of tone and phrasing to the prompt.",
        "icon": "edit_note"
      }
    ]
  },
  "arbeitsprompts": [
    {
      "titel": "Email analysis",
      "beschreibung": "Used in step 2 to extract duration, time preferences, urgency, topic and special requirements from the appointment request.",
      "prompt": "Analyze the following email appointment request and extract all relevant information:\n\nEmail subject: [EMAIL_SUBJECT]\nEmail body: [EMAIL_BODY]\nSender: [SENDER_NAME]\n\nIdentify and structure the following information:\n1. Desired appointment duration, in minutes\n2. Time preferences, for example specific weekdays, times of day or date ranges\n3. Urgency (urgent, normal, flexible)\n4. Topic or purpose of the appointment\n5. Special requirements, for example in person, online or with additional participants\n\nReturn the information exclusively in the following JSON format:\n{\n  \"duration_minutes\": [number],\n  \"time_preferences\": \"[description]\",\n  \"urgency\": \"[urgent/normal/flexible]\",\n  \"topic\": \"[topic]\",\n  \"special_requirements\": \"[requirements]\"\n}"
    },
    {
      "titel": "Draft generation",
      "beschreibung": "Used in step 4 to turn the analysis and the selected calendar slots into the finished reply draft.",
      "prompt": "Create a professional email reply draft for the following appointment request:\n\nOriginal email:\nSender: [SENDER_NAME]\nSubject: [EMAIL_SUBJECT]\nMessage: [EMAIL_BODY]\n\nAnalyzed information:\nAppointment duration: [DURATION] minutes\nTopic: [TOPIC]\nSpecial requirements: [SPECIAL_REQUIREMENTS]\n\nAvailable times from the calendar:\n[AVAILABLE_SLOTS]\n\nWrite a friendly, professional reply that\n1. addresses the appointment request,\n2. contains three concrete time proposals with date, time and duration,\n3. picks up the tone and style of the original email,\n4. contains a clear call to action, for example \"Please let me know which time works best for you.\",\n5. closes with the following signature: [YOUR_SIGNATURE]\n\nUse a clear structure in paragraphs and list the time proposals clearly with date, time and duration."
    }
  ],
  "prompt": "GOAL\nBuild a workflow that automatically analyzes incoming appointment requests by email, checks calendar availability, and creates a ready reply draft with three concrete time proposals. Sending only happens after your manual review, never automatically.\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 email with the label \"Appointment request\".\nFilter: exact match on the label, so the workflow does not fire on every email.\n\nSTEPS\n1. AI step: email analysis. Use exactly the analysis prompt below. Output is a JSON with duration_minutes, time_preferences, urgency, topic and special_requirements.\n2. Check calendar: load free slots for the next two to three weeks, taking working hours, buffer times and preferred times from the stored rule set into account. Select three matching slots.\n3. AI step: generate draft. Use exactly the draft prompt below, with the slots from step 2 as input.\n4. Save draft: save the text as a draft in the email tool, as a reply in the same thread. No automatic sending.\n5. Output: send a notice in Slack or Teams that a draft is ready for review.\n\nPROMPTS (use exactly and unchanged)\nPrompt 1, email analysis:\n\"\"\"\nAnalyze the following email appointment request and extract all relevant information:\n\nEmail subject: [EMAIL_SUBJECT]\nEmail body: [EMAIL_BODY]\nSender: [SENDER_NAME]\n\nIdentify and structure the following information:\n1. Desired appointment duration, in minutes\n2. Time preferences, for example specific weekdays, times of day or date ranges\n3. Urgency (urgent, normal, flexible)\n4. Topic or purpose of the appointment\n5. Special requirements, for example in person, online or with additional participants\n\nReturn the information exclusively in the following JSON format:\n{\n  \"duration_minutes\": [number],\n  \"time_preferences\": \"[description]\",\n  \"urgency\": \"[urgent/normal/flexible]\",\n  \"topic\": \"[topic]\",\n  \"special_requirements\": \"[requirements]\"\n}\n\"\"\"\n\nPrompt 2, draft generation:\n\"\"\"\nCreate a professional email reply draft for the following appointment request:\n\nOriginal email:\nSender: [SENDER_NAME]\nSubject: [EMAIL_SUBJECT]\nMessage: [EMAIL_BODY]\n\nAnalyzed information:\nAppointment duration: [DURATION] minutes\nTopic: [TOPIC]\nSpecial requirements: [SPECIAL_REQUIREMENTS]\n\nAvailable times from the calendar:\n[AVAILABLE_SLOTS]\n\nWrite a friendly, professional reply that\n1. addresses the appointment request,\n2. contains three concrete time proposals with date, time and duration,\n3. picks up the tone and style of the original email,\n4. contains a clear call to action, for example \"Please let me know which time works best for you.\",\n5. closes with the following signature: [YOUR_SIGNATURE]\n\nUse a clear structure in paragraphs and list the time proposals clearly with date, time and duration.\n\"\"\"\n\nDATA FLOW\nTrigger to step 1: email subject, email body, sender.\nStep 1 to step 2: duration_minutes, time_preferences, urgency, for the slot search.\nStep 1 to step 3: duration_minutes, topic, special_requirements.\nStep 2 to step 3: the selected slots as available times.\nStep 3 to step 4: the finished draft text.\n\nERROR HANDLING\nNo free slots in the desired time frame: widen the search window to three or more weeks. If it is still empty, generate the draft with a note about the shortage and flag this in the notification.\nTime zone mismatch: detect the sender's time zone and state the time proposals in the draft with an explicit time zone reference.\nNo valid JSON from step 1: repeat the analysis step once. If the result is still invalid, send a notification for manual handling.\nUrgent request, urgency equals urgent: prioritize the earliest possible slots and flag this in the notification.\n\nPLACEHOLDER CONVENTION\nAll placeholders in square brackets are variables. Map email, analysis and calendar data dynamically, as described in the data flow. Not dynamic are [YOUR_SIGNATURE] and the rule set with working hours, buffer times and standard meeting lengths. Set these manually before activation. List all placeholders that require manual configuration separately at the end.\n\nSELF CHECK BEFORE COMPLETION\nCheck, before you report the workflow as finished:\n1. Are all steps connected correctly, and is the draft only ever saved, never sent automatically?\n2. Are both prompts inserted in full and unchanged, and are all dynamic placeholders mapped?\n3. Does the slot search take working hours, buffer times and the duration from the analysis JSON into account?\n4. Are all points listed that require manual configuration: the \"Appointment request\" label, calendar access, the rule set, [YOUR_SIGNATURE], the notification channel 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": "w05_termin-bruecke__workflow.json",
    "format": "voyage-workflow/1"
  },
  "download": {
    "schema": "voyage-workflow/1",
    "name": "Die Termin-Brücke",
    "beschreibung": "Liest eingehende Terminanfragen per E-Mail, prüft die Kalender-Verfügbarkeit und legt einen fertigen Antwort-Entwurf mit drei konkreten Terminvorschlägen ins Postfach. Der Versand erfolgt erst nach manueller Prüfung.",
    "trigger": {
      "typ": "Integrations-Trigger: neue eingehende E-Mail (Gmail)",
      "bedingung": "Der Trigger selbst filtert nicht und löst im Grundzustand bei jeder eingehenden E-Mail aus. Die Einschränkung auf das Label oder eine Stichwortsuche wie Terminanfrage muss beim Einrichten explizit als Suchfilter konfiguriert werden, sonst startet der Workflow bei jeder Nachricht im Postfach."
    },
    "schritte": [
      {
        "nr": 1,
        "titel": "Trigger",
        "rolle": "mensch",
        "aktion": "Eine neue E-Mail geht im angebundenen Postfach ein (Gmail-Integrationstrigger). Im Grundzustand löst dieser Trigger bei jeder eingehenden Nachricht aus. Die Einschränkung auf eine Suchbedingung, zum Beispiel das Label Terminanfrage, muss beim Einrichten explizit als Filter konfiguriert werden, sonst startet der Workflow bei jeder E-Mail.",
        "prompt_ref": null,
        "eingang": [],
        "ausgang": [
          "E-Mail-Betreff, E-Mail-Text, Absender-Adresse"
        ]
      },
      {
        "nr": 2,
        "titel": "E-Mail-Analyse",
        "rolle": "automatisch",
        "aktion": "Ein KI-Agent liest die Nachricht und gibt ein strukturiertes Ergebnis mit sechs Feldern zurück: duration_minutes (Zahl, Pflicht), time_preferences (Text, Pflicht), urgency (Auswahl dringend, normal oder flexibel, Pflicht), special_requirements (Text, optional), email_subject (Text, Pflicht) und sender_email (Text, Pflicht). Ein eigenes Themen-Feld gibt es in der tatsächlichen Umsetzung nicht: Betreff und Absender-Adresse werden von diesem Schritt neu strukturiert ausgegeben, und alle folgenden Schritte greifen ausschließlich auf dieses Ergebnis zu, nicht auf die Rohdaten des Triggers.",
        "prompt_ref": "arbeitsschritt-1",
        "eingang": [
          "E-Mail-Betreff, E-Mail-Text, Absender-Adresse"
        ],
        "ausgang": [
          "duration_minutes, time_preferences, urgency, special_requirements, email_subject, sender_email"
        ]
      },
      {
        "nr": 3,
        "titel": "Kalender prüfen",
        "rolle": "automatisch",
        "aktion": "Eine Kalender-Aktion ermittelt freie Slots. Start- und Endzeitpunkt werden im ISO-8601-Format berechnet, der Suchzeitraum umfasst standardmäßig sieben bis vierzehn Tage ab dem nächsten Werktag, abhängig von der erkannten Dringlichkeit und den Zeitpräferenzen. Die Termindauer wird aus duration_minutes in ein ISO-8601-Dauerformat umgerechnet, zum Beispiel PT30M, PT1H oder PT1H30M. Zeitzone und Arbeitszeit-Domäne sind im Originalexport fest hinterlegt, Europe/Berlin beziehungsweise die Domäne work für neun bis siebzehn Uhr, und müssen vor dem Go-Live an den eigenen Standort angepasst werden. Die Abfrage liefert bis zu zehn Kandidaten-Slots, nicht bereits die finalen drei.",
        "prompt_ref": null,
        "eingang": [
          "duration_minutes, time_preferences, urgency, sender_email",
          "Kalender-Regelwerk (Zeitzone, Arbeitszeit-Domäne, Pufferzeiten)"
        ],
        "ausgang": [
          "Bis zu zehn Kandidaten-Slots"
        ]
      },
      {
        "nr": 4,
        "titel": "Entwurf erzeugen",
        "rolle": "automatisch",
        "aktion": "Ein zweiter KI-Agent wählt aus den Kandidaten-Slots die drei passendsten aus und formuliert daraus eine höfliche Antwort. Die Auswahl der drei finalen Termine geschieht also an dieser Stelle, nicht bereits beim Kalenderabgleich in Schritt 3. Die Ausgabe ist strukturiert: email_subject als Antwort-Betreff in der Form RE: ..., email_body als vollständiger Antworttext, sowie meeting_slot_1, meeting_slot_2 und meeting_slot_3 als drei eigene Felder für die Terminvorschläge.",
        "prompt_ref": "arbeitsschritt-2",
        "eingang": [
          "email_subject, special_requirements (Kontext aus Schritt 2)",
          "Bis zu zehn Kandidaten-Slots (aus Schritt 3)"
        ],
        "ausgang": [
          "email_subject, email_body, meeting_slot_1, meeting_slot_2, meeting_slot_3"
        ]
      },
      {
        "nr": 5,
        "titel": "Entwurf speichern",
        "rolle": "automatisch",
        "aktion": "Der Entwurf wird im E-Mail-Tool als Antwort im ursprünglichen Thread abgelegt. Die Aktion nutzt drei Felder: to, gesetzt auf sender_email aus Schritt 2, threadId, vom E-Mail-Tool automatisch aus dem Kontext des Original-Threads übernommen ohne gesonderte KI-Anweisung im Export, und replyContent, der email_body aus Schritt 4, in HTML konvertiert mit den Tags b für Fettdruck und br für Zeilenumbrüche. Es erfolgt kein automatischer Versand.",
        "prompt_ref": null,
        "eingang": [
          "email_body (aus Schritt 4)",
          "sender_email (aus Schritt 2)"
        ],
        "ausgang": [
          "Gespeicherter E-Mail-Entwurf (HTML, als Thread-Antwort)"
        ]
      },
      {
        "nr": 6,
        "titel": "Benachrichtigen",
        "rolle": "ergebnis",
        "aktion": "Eine Slack-Nachricht informiert das Team. Auffällig im Originalexport: der Text greift nicht auf das Ergebnis von Schritt 5 zurück, sondern direkt auf sender_email, email_subject und urgency aus Schritt 2 sowie meeting_slot_1 bis meeting_slot_3 aus Schritt 4. Schritt 5 ist für diese Nachricht nur der zeitliche Vorläufer, keine Datenquelle. Das Feld channelId ist im Export leer und muss vor der Aktivierung manuell auf den Zielkanal gesetzt werden.",
        "prompt_ref": null,
        "eingang": [
          "sender_email, email_subject, urgency (aus Schritt 2)",
          "meeting_slot_1, meeting_slot_2, meeting_slot_3 (aus Schritt 4)"
        ],
        "ausgang": [
          "Benachrichtigung im Team-Chat"
        ]
      }
    ],
    "prompts": {
      "arbeitsschritt-1": {
        "titel": "E-Mail-Analyse",
        "text": "Analysieren Sie die folgende E-Mail-Terminanfrage und extrahieren Sie alle relevanten Informationen:\n\nE-Mail-Betreff: [EMAIL_SUBJECT]\nE-Mail-Text: [EMAIL_BODY]\nAbsender: [SENDER_NAME]\n\nIdentifizieren und strukturieren Sie folgende Informationen:\n1. Gewünschte Termindauer, in Minuten\n2. Zeitpräferenzen, etwa bestimmte Wochentage, Tageszeiten oder Zeiträume\n3. Dringlichkeit (dringend, normal, flexibel)\n4. Thema oder Zweck des Termins\n5. Besondere Anforderungen, zum Beispiel vor Ort, online oder mit weiteren Teilnehmern\n\nGeben Sie die Informationen ausschließlich im folgenden JSON-Format zurück:\n{\n  \"duration_minutes\": [Zahl],\n  \"time_preferences\": \"[Beschreibung]\",\n  \"urgency\": \"[dringend/normal/flexibel]\",\n  \"topic\": \"[Thema]\",\n  \"special_requirements\": \"[Anforderungen]\"\n}"
      },
      "arbeitsschritt-2": {
        "titel": "Entwurf-Generierung",
        "text": "Erstellen Sie einen professionellen E-Mail-Antwort-Entwurf für folgende Terminanfrage:\n\nUrsprüngliche E-Mail:\nAbsender: [SENDER_NAME]\nBetreff: [EMAIL_SUBJECT]\nNachricht: [EMAIL_BODY]\n\nAnalysierte Informationen:\nTermindauer: [DURATION] Minuten\nThema: [TOPIC]\nBesondere Anforderungen: [SPECIAL_REQUIREMENTS]\n\nVerfügbare Termine aus dem Kalender:\n[AVAILABLE_SLOTS]\n\nVerfassen Sie eine freundliche, professionelle Antwort, die\n1. auf die Terminanfrage eingeht,\n2. drei konkrete Terminvorschläge mit Datum, Uhrzeit und Dauer enthält,\n3. Ton und Stil der ursprünglichen E-Mail aufgreift,\n4. eine klare Handlungsaufforderung enthält, zum Beispiel „Bitte teilen Sie mir mit, welcher Termin Ihnen am besten passt.“,\n5. mit folgender Signatur schließt: [YOUR_SIGNATURE]\n\nVerwenden Sie eine klare Struktur in Absätzen und listen Sie die Terminvorschläge übersichtlich mit Datum, Uhrzeit und Dauer auf."
      }
    },
    "datenfluss": [
      {
        "von": 1,
        "nach": 2,
        "nutzlast": "E-Mail-Betreff, E-Mail-Text, Absender-Adresse"
      },
      {
        "von": 2,
        "nach": 3,
        "nutzlast": "duration_minutes, time_preferences, urgency, sender_email (als participantEmail für die Slotsuche)"
      },
      {
        "von": 3,
        "nach": 4,
        "nutzlast": "bis zu zehn Kandidaten-Slots"
      },
      {
        "von": 2,
        "nach": 4,
        "nutzlast": "email_subject, special_requirements (Kontext für Betreff und Ton des Entwurfs)"
      },
      {
        "von": 4,
        "nach": 5,
        "nutzlast": "email_body, wird in HTML konvertiert"
      },
      {
        "von": 2,
        "nach": 5,
        "nutzlast": "sender_email (als Empfängerfeld to)"
      },
      {
        "von": 5,
        "nach": 6,
        "nutzlast": "keine Dateneingabe, nur Ausführungsreihenfolge: Schritt 6 läuft nach dem Speichern des Entwurfs, bezieht seine Inhalte aber direkt aus den Schritten 2 und 4"
      },
      {
        "von": 2,
        "nach": 6,
        "nutzlast": "sender_email, email_subject, urgency (für den Benachrichtigungstext)"
      },
      {
        "von": 4,
        "nach": 6,
        "nutzlast": "meeting_slot_1, meeting_slot_2, meeting_slot_3 (für den Benachrichtigungstext)"
      }
    ],
    "voraussetzungen": [
      "E-Mail-Tool mit Integrations-Trigger auf neue Nachrichten und Schreibrechten für Entwürfe (im Originalexport Gmail, Outlook oder vergleichbar möglich)",
      "Ein beim Einrichten selbst gesetzter Suchfilter auf das Label oder Stichwort Terminanfrage, da der Trigger im Grundzustand ungefiltert auf jede E-Mail reagiert",
      "Kalender-Tool mit Lesezugriff auf freie Slots (im Originalexport auf eine feste Zeitzone Europe/Berlin und die Arbeitszeit-Domäne work konfiguriert, vor Nutzung anzupassen)",
      "Regelwerk mit Arbeitszeiten, Pufferzeiten, üblichen Meetinglängen und bevorzugten Zeitfenstern",
      "LLM-Zugang per API-Key (OpenAI, Claude oder Gemini) für beide KI-Schritte",
      "Slack- oder Teams-Verbindung mit manuell gesetztem Ziel-Channel, da das Feld channelId im Export leer ist"
    ],
    "fehlerbehandlung": [
      {
        "fall": "Alle sechs Knoten sind im Originalexport auf die Fehlerstrategie stop gesetzt",
        "massnahme": "Es gibt keinen eingebauten Retry-Zweig. Schlägt ein Schritt fehl, etwa weil die Kalender-Verbindung nicht erreichbar ist, bricht der gesamte Lauf ab. Eigene Retry- oder Alarmierungs-Zweige müssen im jeweiligen Automations-Tool separat ergänzt werden."
      },
      {
        "fall": "Keine freien Slots im Suchfenster",
        "massnahme": "Das Standardfenster umfasst sieben bis vierzehn Tage ab dem nächsten Werktag, abhängig von der Dringlichkeit. Bleibt es leer, Suchfenster auf drei oder mehr Wochen erweitern, Entwurf mit Hinweis auf den Engpass erzeugen und in der Benachrichtigung kennzeichnen."
      },
      {
        "fall": "Zeitzonen-Mismatch zwischen Absender und Kalender",
        "massnahme": "Die Kalenderabfrage ist im Originalexport fest auf Europe/Berlin gestellt und erkennt die Zeitzone des Absenders nicht automatisch. Vor dem Go-Live die Zeitzone manuell an den eigenen Standort anpassen und bei internationalen Anfragen die Terminvorschläge im Entwurf zusätzlich mit expliziter Zeitzonen-Angabe versehen."
      },
      {
        "fall": "KI liefert kein valides JSON in Schritt 2",
        "massnahme": "Analyseschritt einmal wiederholen. Bleibt das Ergebnis ungültig, Benachrichtigung zur manuellen Bearbeitung senden, da der Knoten selbst bei einem Fehler nur stoppt."
      },
      {
        "fall": "Dringende Anfrage, urgency gleich dringend",
        "massnahme": "Frühestmögliche Slots priorisieren und dies in der Benachrichtigung kennzeichnen."
      },
      {
        "fall": "Trigger feuert bei jeder eingehenden E-Mail",
        "massnahme": "Der Trigger filtert im Grundzustand nicht. Beim Einrichten auf eine Suchbedingung umstellen, zum Beispiel das Label Terminanfrage, sonst startet der Workflow bei jeder Nachricht."
      },
      {
        "fall": "Slack-Channel nicht gesetzt",
        "massnahme": "Das Feld channelId ist im Export leer und muss vor der Aktivierung manuell auf den Zielkanal gesetzt werden, sonst läuft die Benachrichtigung ins Leere."
      }
    ],
    "platzhalter": [
      {
        "name": "EMAIL_SUBJECT",
        "quelle": "Betreff der eingehenden Terminanfrage, aus dem Trigger"
      },
      {
        "name": "EMAIL_BODY",
        "quelle": "Text der eingehenden Terminanfrage, aus dem Trigger"
      },
      {
        "name": "SENDER_NAME",
        "quelle": "Absendername aus dem Trigger, für die Anrede im Entwurf"
      },
      {
        "name": "sender_email",
        "quelle": "Von Schritt 2 strukturiert ausgegebene Absender-Adresse, wiederverwendet in Schritt 3 als participantEmail, in Schritt 5 als to und in Schritt 6 im Benachrichtigungstext"
      },
      {
        "name": "DURATION",
        "quelle": "duration_minutes aus Schritt 2, in Schritt 3 nach ISO 8601 umgerechnet (PT30M, PT1H, PT1H30M)"
      },
      {
        "name": "TOPIC",
        "quelle": "Kein eigenes Strukturfeld im Originalexport, email_subject aus Schritt 2 übernimmt diese Funktion"
      },
      {
        "name": "SPECIAL_REQUIREMENTS",
        "quelle": "special_requirements aus Schritt 2, optionales Feld"
      },
      {
        "name": "AVAILABLE_SLOTS",
        "quelle": "Bis zu zehn Kandidaten-Slots aus Schritt 3, in Schritt 4 auf meeting_slot_1 bis meeting_slot_3 reduziert"
      },
      {
        "name": "YOUR_SIGNATURE",
        "quelle": "Ihre E-Mail-Signatur, kein Feld im Originalexport, vor Aktivierung manuell im Prompt zu hinterlegen"
      },
      {
        "name": "timezone / activityDomain",
        "quelle": "Im Originalexport fest auf Europe/Berlin und work (neun bis siebzehn Uhr) gesetzt, vor Go-Live an den eigenen Standort und die eigenen Arbeitszeiten anzupassen"
      },
      {
        "name": "channelId",
        "quelle": "Im Originalexport leerer Pflichtwert des Slack-Knotens, vor Aktivierung manuell auf den Zielkanal zu setzen"
      },
      {
        "name": "threadId",
        "quelle": "Wird vom E-Mail-Tool automatisch aus dem Kontext des ursprünglichen Threads übernommen, keine manuelle Eingabe nötig"
      }
    ],
    "herausgeber": "Voyage Digital",
    "version": "2.0",
    "stand": "2026-07-26"
  },
  "itemIcon": "calendar-check",
  "recommended": [
    {
      "slug": "onboarding-strecke",
      "category": "workflow",
      "name": "The Onboarding Pipeline",
      "teaser": "Automates customer onboarding from the CRM status change through to a ready-to-send welcome email, turning a classic small business bottleneck into one clean, repeatable workflow.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "door-open"
    },
    {
      "slug": "office",
      "category": "skill",
      "name": "The Office Workbench",
      "teaser": "The Office Workbench is an executable Claude skill that builds, reads, and edits Word, PowerPoint, and Excel files with the right tools, formatting rules, and quality checks for each format.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "table"
    },
    {
      "slug": "posteingang-regelwerk",
      "category": "skill",
      "name": "The Inbox Rulebook",
      "teaser": "Sorts a full inbox into a fixed rulebook of category, urgency and reply draft, so you keep the final decision while the system handles the triage.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "inbox"
    },
    {
      "slug": "uebergabe-paket",
      "category": "skill",
      "name": "The Handover Package",
      "teaser": "Builds a complete handover document from meeting notes, quotes and CRM records for the transition from sales to the delivery team.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "package-check"
    },
    {
      "slug": "posteingang-route",
      "category": "workflow",
      "name": "The Inbox Router",
      "teaser": "A workflow that automatically classifies incoming emails, applies the matching label, and immediately alerts you when something is urgent.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "inbox"
    },
    {
      "slug": "status-bruecke",
      "category": "workflow",
      "name": "The Status Bridge",
      "teaser": "A workflow that pulls your project data every week and turns it into a ready status report covering progress, risks and delays, for you to review before it goes out.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "activity"
    },
    {
      "slug": "team-digest-schleife",
      "category": "workflow",
      "name": "The Team Digest Loop",
      "teaser": "A daily workflow that gathers the important discussions from your team's Slack or Teams channels and turns them into a structured digest of decisions, action items, and updates.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "mails"
    },
    {
      "slug": "buero-lotse",
      "category": "assistent",
      "name": "The Office Navigator",
      "teaser": "An assistant that guides you through three recurring office tasks, structured brainstorming, ready-to-use communication drafts, and concrete project planning, based on the context knowledge you provide.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "printer"
    },
    {
      "slug": "korrespondenz-skript",
      "category": "skill",
      "name": "The Correspondence Script",
      "teaser": "Drafts a ready-to-send business email, from subject line to a concrete next step, matched to the recipient, occasion and tone.",
      "domaene": "Betrieb & Projektmanagement",
      "itemIcon": "mail"
    },
    {
      "slug": "gmail",
      "category": "tool",
      "name": "Gmail",
      "teaser": "Gmail is Google's email service, offering mailbox access, powerful search, filter rules, AI-assisted drafting, and automation interfaces through the Gmail API.",
      "domaene": "Betrieb & Projektmanagement",
      "logoFile": "gmail.png",
      "logoEinzug": 1
    },
    {
      "slug": "google-drive",
      "category": "tool",
      "name": "Google Drive",
      "teaser": "Google's cloud file storage for documents, spreadsheets and presentations, with real-time collaboration, granular sharing and automation through the Drive API.",
      "domaene": "Betrieb & Projektmanagement",
      "logoFile": "google-drive.png",
      "logoEinzug": 1
    }
  ]
}