{
  "slug": "blog-seo-spur",
  "category": "workflow",
  "name": "The Blog SEO Track",
  "domaene": "SEO & KI-Sichtbarkeit",
  "typTags": [
    "automatisierend",
    "prüfend"
  ],
  "teaser": "The Blog SEO Track automatically checks every blog draft for SEO issues as soon as it enters review and leaves a prioritized list of optimization suggestions directly in the CMS.",
  "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>An SEO check per blog draft sounds like a small task, but across many articles and several writers it adds up to noticeable manual effort, and the quality varies depending on who has time. The Blog SEO Track takes this first check off your hands: as soon as a draft receives the status Draft or Review, the workflow reads the title, content, current meta description and, if available, the target keyword from the CMS and sends them to a language model for analysis.</p>\n<p>It checks keyword placement, the heading hierarchy, the length and phrasing of the meta description, readability, and possible internal and external links. The result is a list of concrete suggestions sorted into Critical, Important and Optional, plus a suggested optimized meta description, attached as a comment directly to the draft. The content team is notified by chat and decides for itself which suggestions to implement. The workflow does not replace editorial judgment, it only delivers the groundwork for it.</p>\n<ul>\n<li><strong>Standardized SEO check:</strong> Every draft goes through the same check, regardless of who wrote it.</li>\n<li><strong>Less manual review:</strong> The editorial team no longer reads word for word, it only implements the prioritized suggestions.</li>\n<li><strong>Better rankings and click-through rate:</strong> Headlines and meta description are already optimized in the draft, not only after publication.</li>\n<li><strong>Knowledge transfer across the team:</strong> Junior writers learn from reasoned suggestions on their own text, instead of just receiving a correction.</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/blog-seo-spur.en.json\">blog-seo-spur.en.json</a></p>\n"
    }
  ],
  "schritte": [
    {
      "nr": 1,
      "titel": "Trigger",
      "beschreibung": "A blog draft receives the status Draft or Review in the CMS.",
      "rolle": "mensch"
    },
    {
      "nr": 2,
      "titel": "Fetch draft",
      "beschreibung": "Title, content, current meta description and, if maintained, the target keyword are loaded from the CMS.",
      "rolle": "automatisch"
    },
    {
      "nr": 3,
      "titel": "SEO analysis",
      "beschreibung": "A language model checks keyword usage, heading structure, meta description, readability, linking opportunities and alt texts.",
      "rolle": "automatisch"
    },
    {
      "nr": 4,
      "titel": "Create suggestion list",
      "beschreibung": "The results are prioritized into Critical, Important and Optional, supplemented with an optimized meta description of no more than 155 characters.",
      "rolle": "automatisch"
    },
    {
      "nr": 5,
      "titel": "Save comment in CMS",
      "beschreibung": "The suggestion list is saved as a structured comment directly on the draft.",
      "rolle": "automatisch"
    },
    {
      "nr": 6,
      "titel": "Notify team",
      "beschreibung": "A message in the team chat informs the team with a link to the draft and a brief overview of the key points.",
      "rolle": "ergebnis"
    }
  ],
  "herausgeber": "Voyage Digital",
  "version": "2.0",
  "stand": "2026-07-26",
  "nutzen": [
    {
      "titel": "Standardized SEO check",
      "text": "Every draft goes through the same check, regardless of who wrote it."
    },
    {
      "titel": "Less manual review",
      "text": "The editorial team no longer reads word for word, it only implements the prioritized suggestions."
    },
    {
      "titel": "Better rankings and click-through rate",
      "text": "Headlines and meta description are already optimized in the draft, not only after publication."
    },
    {
      "titel": "Knowledge transfer across the team",
      "text": "Junior writers learn from reasoned suggestions on their own text, instead of just receiving a correction."
    }
  ],
  "voraussetzungen": [
    {
      "label": "CMS",
      "text": "WordPress, Webflow or Contentful, with status trigger and comment function.",
      "icon": "web"
    },
    {
      "label": "Team chat",
      "text": "Slack, Teams or Discord for the content channel.",
      "icon": "notifications"
    },
    {
      "label": "Keyword tool (optional)",
      "text": "Ahrefs, SEMrush or similar, for search volume in the prioritization.",
      "icon": "trending_up"
    },
    {
      "label": "LLM access",
      "text": "API key for OpenAI, Claude or Gemini.",
      "icon": "key"
    }
  ],
  "betrieb": {
    "testing": [
      {
        "label": "Test draft",
        "text": "Set up a test draft of around 500 to 1000 words with a clean heading structure and set the status to Draft.",
        "icon": "post_add"
      },
      {
        "label": "Draft fetch",
        "text": "Check whether title, content, meta description and target keyword are loaded in full.",
        "icon": "download"
      },
      {
        "label": "Analysis and prioritization",
        "text": "Check whether the suggestions are concrete and cleanly separated into Critical, Important and Optional.",
        "icon": "fact_check"
      },
      {
        "label": "Edge cases",
        "text": "Test very short and very long drafts, a missing meta description, a missing target keyword and multilingual content.",
        "icon": "rule"
      }
    ],
    "goLive": [
      {
        "label": "Approve",
        "text": "Activate the workflow only once trigger, suggestion list and CMS comment work cleanly together.",
        "icon": "check_circle"
      },
      {
        "label": "Guidelines",
        "text": "Enrich the prompt with target audience, tone and your own content guidelines.",
        "icon": "tune"
      },
      {
        "label": "Mandatory field",
        "text": "Maintain the target keyword as a mandatory field per article in the CMS.",
        "icon": "label"
      },
      {
        "label": "Expand",
        "text": "Extend the workflow as needed with competitor analysis, a reading score, keyword research or A/B headlines.",
        "icon": "rocket_launch"
      }
    ],
    "haeufigeFehler": [
      {
        "label": "Workflow does not start",
        "text": "Check the CMS webhook and the status filter for the draft.",
        "icon": "sensors_off"
      },
      {
        "label": "Comment is not created",
        "text": "Check the write permissions in the CMS and the comment format.",
        "icon": "lock"
      },
      {
        "label": "Suggestions too generic",
        "text": "Enrich the prompt with target audience and content guidelines.",
        "icon": "auto_awesome"
      },
      {
        "label": "Meta over 155 characters",
        "text": "Enforce the length strictly in the prompt and validate it in addition.",
        "icon": "straighten"
      }
    ]
  },
  "arbeitsprompts": [
    {
      "titel": "Prompt: SEO Analysis and Suggestions",
      "beschreibung": "Checks the blog draft for SEO-relevant points and returns a prioritized list of concrete optimization suggestions plus an optimized meta description.",
      "prompt": "You are an SEO expert for [COMPANY]. Analyze the following blog draft and create concrete optimization suggestions. Address the user in a professional manner throughout, wherever your output includes a form of address.\n\nINPUT\nBlog title: [BLOG_TITLE]\nBlog content: [BLOG_CONTENT]\nCurrent meta description: [META_DESCRIPTION]\nTarget keyword (if available): [TARGET_KEYWORD]\n\nWORKING INSTRUCTIONS\nConduct a comprehensive SEO analysis and check:\n1. Keyword optimization: primary and secondary keywords, keyword density, placement.\n2. Heading structure: H1, H2, H3, hierarchy and keyword integration.\n3. Meta description: length, call to action, keyword usage.\n4. Readability: sentence length, paragraph structure, subheadings.\n5. Internal and external linking opportunities.\n6. Alt texts for images, if mentioned in the content.\n\nCreate a list of prioritized optimization suggestions in the following format:\n\nCritical (implement immediately):\n- [Concrete suggestion with example]\n\nImportant (recommended):\n- [Concrete suggestion with example]\n\nOptional (nice to have):\n- [Concrete suggestion with example]\n\nOptimized meta description (maximum 155 characters):\n[Your suggestion]\n\nIf information is missing, for example no target keyword is set, mark your assumption as such instead of making it silently. Be specific, actionable, and briefly justify each suggestion."
    }
  ],
  "prompt": "GOAL\nBuild a workflow that automatically checks every blog draft for SEO as soon as it receives the status Draft or Review in the CMS: analysis of keywords, heading structure, meta description, linking and readability, resulting in a prioritized list of concrete optimization suggestions saved directly as a comment on the draft in the CMS.\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: CMS webhook (WordPress, Webflow or Contentful).\nCondition: A draft receives the status Draft or Review.\n\nSTEPS (sequential)\n1. Fetch draft: load title, full content, current meta description and, if available, the target keyword from the CMS.\n2. AI step: SEO analysis and suggestions. Insert the working prompt \"SEO Analysis and Suggestions\" exactly as given (see the Working Prompts section). Result: a prioritized suggestion list (Critical, Important, Optional) and an optimized meta description.\n3. Save comment in CMS: save the suggestion list as a structured comment directly on the draft.\n4. Output: notify the content team in the team chat, with a link to the draft and a brief overview of the number of critical points.\n\nPROMPT GUIDANCE\nThere is a fixed working prompt for the analysis step, see the Working Prompts section. Insert it unchanged and in full into step 2.\n\nDATA FLOW\nTrigger to step 1: draft ID or link to the draft.\nStep 1 to step 2: blog title, blog content, current meta description, target keyword as input for the corresponding placeholders in the working prompt.\nStep 2 to step 3: prioritized suggestion list and optimized meta description.\nTrigger to step 4: link to the draft.\n\nERROR HANDLING\nWorkflow does not start: check the CMS webhook and the status filter (Draft/Review).\nNo target keyword set: run the analysis anyway and note the missing keyword in the comment. The target keyword should be maintained as a mandatory field in the CMS.\nComment is not created: check the write permissions in the CMS and the comment format.\nMeta description suggestion over 155 characters: validate the length, regenerate once if exceeded.\nSuggestions too generic: enrich the prompt with target audience and content guidelines, as an optional configuration.\nVery long draft (token limit): split into sections and merge the results.\n\nPLACEHOLDER CONVENTION\nAll placeholders in square brackets in the input section of the working prompt are variables and are mapped fully dynamically from the CMS: blog title, blog content, meta description and target keyword, as described in the data flow. There are no manual prompt placeholders. The square brackets in the output format of the working prompt are formatting instructions to the language model and remain unchanged. Only the CMS access, the status filter and the notification channel are configured manually.\n\nSELF CHECK BEFORE COMPLETION\nCheck, before you report the workflow as finished:\n1. Are all steps connected correctly, and does the trigger fire only for the status Draft and Review?\n2. Is the working prompt inserted in full and unchanged, and are all CMS fields mapped correctly?\n3. Does the comment land structured on the correct draft, and is the meta length validated?\n4. Are all points listed that require manual configuration: CMS webhook and write permissions, target keyword as a mandatory field, notification channel and 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": "w23_blog-seo-spur__workflow.json",
    "format": "voyage-workflow/1"
  },
  "download": {
    "schema": "voyage-workflow/1",
    "name": "Die Blog-SEO-Spur",
    "beschreibung": "Prüft jeden Blog-Draft automatisch auf SEO, sobald er im CMS den Status Entwurf oder Review erhält: Analyse von Keywords, Struktur und Meta-Description, eine priorisierte Vorschlagsliste als Kommentar direkt am Draft und eine Benachrichtigung des Content-Teams im Team-Chat.",
    "trigger": {
      "typ": "Webhook",
      "bedingung": "Ein CMS-Webhook (WordPress, Webflow oder Contentful) feuert, sobald ein Blog-Draft den Status Entwurf oder Review erhält. Die Nutzlast enthält mindestens draft_id, title, content, meta_description und status, optional zusätzlich draft_url, author und created_at."
    },
    "schritte": [
      {
        "nr": 1,
        "titel": "Trigger",
        "rolle": "mensch",
        "aktion": "Eine Person aus der Redaktion setzt den Blog-Draft im CMS auf den Status Entwurf oder Review. Der CMS-Webhook feuert daraufhin mit einer Nutzlast, die mindestens draft_id, title, content, meta_description und status enthält, optional ergänzt um draft_url, author und created_at. Die Fehlerstrategie dieses Knotens steht auf Stop: bei einem fehlerhaften oder unvollständigen Aufruf startet der restliche Ablauf nicht.",
        "prompt_ref": null,
        "eingang": [],
        "ausgang": [
          "Webhook-Nutzlast mit draft_id, title, content, meta_description, status, optional draft_url, author, created_at"
        ]
      },
      {
        "nr": 2,
        "titel": "Draft abrufen",
        "rolle": "automatisch",
        "aktion": "Im tatsächlichen Aufbau gibt es keinen eigenen Abruf-Knoten: Titel, Inhalt, aktuelle Meta-Description und Status kommen bereits mit der Webhook-Nutzlast aus Schritt 1. Ein Ziel-Keyword ist in dieser Standard-Nutzlast nicht vorgesehen und muss als zusätzliches Feld im CMS gepflegt werden, damit es hier ankommt.",
        "prompt_ref": null,
        "eingang": [
          "Webhook-Nutzlast mit draft_id, title, content, meta_description, status, optional draft_url, author, created_at"
        ],
        "ausgang": [
          "Blog-Titel (title), Blog-Inhalt (content), Meta-Description (meta_description), Ziel-Keyword (sofern als CMS-Zusatzfeld gepflegt)"
        ]
      },
      {
        "nr": 3,
        "titel": "SEO-Analyse",
        "rolle": "automatisch",
        "aktion": "Ein KI-Agent im Modus Erstellen prüft Keyword-Nutzung, Überschriften-Struktur, Meta-Description, Lesbarkeit, Verlinkungsmöglichkeiten und Alt-Texte und liefert eine strukturierte Ausgabe mit acht festen Feldern: seo_score (Zahl von 0 bis 100), keyword_analysis, heading_structure_analysis, meta_description_feedback, readability_assessment, priority_recommendations, output (vollständiger formatierter Report) und success (Boolean). Fehlerstrategie: Stop.",
        "prompt_ref": "arbeitsprompt-1",
        "eingang": [
          "Blog-Titel, Blog-Inhalt, Meta-Description, Ziel-Keyword"
        ],
        "ausgang": [
          "Strukturierte SEO-Analyse mit seo_score, keyword_analysis, heading_structure_analysis, meta_description_feedback, readability_assessment, priority_recommendations, output, success"
        ]
      },
      {
        "nr": 4,
        "titel": "Vorschlagsliste erstellen",
        "rolle": "automatisch",
        "aktion": "Erfolgt im selben KI-Aufruf wie Schritt 3, nicht als eigener Knoten. Das Feld priority_recommendations liefert die bereits nach Kritisch, Wichtig und Optional sortierten Vorschläge, meta_description_feedback die Einschätzung zur Meta-Description und output den vollständigen, fertig formatierten Report für den Kommentar.",
        "prompt_ref": "arbeitsprompt-1",
        "eingang": [
          "Strukturierte SEO-Analyse mit seo_score, keyword_analysis, heading_structure_analysis, meta_description_feedback, readability_assessment, priority_recommendations, output, success"
        ],
        "ausgang": [
          "priority_recommendations",
          "seo_score",
          "output (vollständiger Report)"
        ]
      },
      {
        "nr": 5,
        "titel": "Kommentar im CMS hinterlegen",
        "rolle": "automatisch",
        "aktion": "Ein HTTP-Request-Knoten (POST) sendet den Kommentar an die CMS-API. Die URL muss auf den echten Kommentar-Endpunkt des jeweiligen CMS umgestellt werden, zum Beispiel wp-json/wp/v2/posts/{draft_id}/comments bei WordPress oder den entsprechenden Contentful-Endpunkt, adressiert über die draft_id aus der Webhook-Nutzlast. Header: Content-Type sowie Authorization mit einem echten CMS-API-Key statt des Platzhalters. Der Body wird von der KI aus output und den Einzelfeldern der SEO-Analyse zusammengesetzt. Fehlerstrategie: Stop.",
        "prompt_ref": null,
        "eingang": [
          "priority_recommendations, seo_score, output (vollständiger Report)",
          "draft_id aus der Webhook-Nutzlast"
        ],
        "ausgang": [
          "Kommentar am Draft im CMS"
        ]
      },
      {
        "nr": 6,
        "titel": "Team benachrichtigen",
        "rolle": "ergebnis",
        "aktion": "Läuft parallel zu Schritt 5, nicht danach: Beide Knoten hängen direkt am Ergebnis der SEO-Analyse aus Schritt 3/4, der CMS-Kommentar ist keine Voraussetzung für die Benachrichtigung. Eine Chat-Nachricht, standardmäßig für den Kanal #content-team konfiguriert und vor dem Einsatz auf den echten Kanal umzustellen, nennt den Draft-Titel, den seo_score und einen Hinweis, dass die ausführlichen Empfehlungen als Kommentar im CMS liegen, ergänzt um den Link zum Draft, sofern draft_url in der Webhook-Nutzlast vorhanden ist. Fehlerstrategie: Stop.",
        "prompt_ref": null,
        "eingang": [
          "Draft-Titel und draft_url aus der Webhook-Nutzlast",
          "seo_score aus der SEO-Analyse"
        ],
        "ausgang": [
          "Team-Benachrichtigung im Chat-Kanal"
        ]
      }
    ],
    "prompts": {
      "arbeitsprompt-1": {
        "titel": "SEO-Analyse und Vorschläge",
        "text": "Sie sind SEO-Experte für [UNTERNEHMEN]. Analysieren Sie den folgenden Blog-Draft und erstellen Sie konkrete Optimierungsvorschläge. Sprechen Sie in Ihren Ausgaben, wo eine Anrede vorkommt, durchgehend mit Sie an.\n\nEINGABE\nBlog-Titel: [BLOG_TITEL]\nBlog-Inhalt: [BLOG_INHALT]\nAktuelle Meta-Description: [META_DESCRIPTION]\nZiel-Keyword (falls vorhanden): [ZIEL_KEYWORD]\n\nARBEITSANWEISUNG\nFühren Sie eine umfassende SEO-Analyse durch und prüfen Sie:\n1. Keyword-Optimierung: Haupt- und Neben-Keywords, Keyword-Dichte, Platzierung.\n2. Überschriften-Struktur: H1, H2, H3, Hierarchie und Keyword-Integration.\n3. Meta-Description: Länge, Call-to-Action, Keyword-Nutzung.\n4. Lesbarkeit: Satzlänge, Absatzstruktur, Zwischenüberschriften.\n5. Interne und externe Verlinkungsmöglichkeiten.\n6. Alt-Texte für Bilder, sofern im Content erwähnt.\n\nErstellen Sie eine Liste priorisierter Optimierungsvorschläge im folgenden Format:\n\nKritisch (sofort umsetzen):\n- [Konkreter Vorschlag mit Beispiel]\n\nWichtig (empfohlen):\n- [Konkreter Vorschlag mit Beispiel]\n\nOptional (Nice to have):\n- [Konkreter Vorschlag mit Beispiel]\n\nOptimierte Meta-Description (maximal 155 Zeichen):\n[Ihr Vorschlag]\n\nWenn Angaben fehlen, etwa kein Ziel-Keyword hinterlegt ist, kennzeichnen Sie Ihre Annahme als solche statt sie stillschweigend zu treffen. Seien Sie spezifisch, umsetzbar und begründen Sie jeden Vorschlag kurz."
      }
    },
    "datenfluss": [
      {
        "von": 1,
        "nach": 2,
        "nutzlast": "Webhook-Nutzlast: draft_id, title, content, meta_description, status, optional draft_url, author, created_at"
      },
      {
        "von": 2,
        "nach": 3,
        "nutzlast": "Blog-Titel, Blog-Inhalt, Meta-Description, Ziel-Keyword (sofern als CMS-Zusatzfeld vorhanden)"
      },
      {
        "von": 3,
        "nach": 4,
        "nutzlast": "Strukturierte Analyse: seo_score, keyword_analysis, heading_structure_analysis, meta_description_feedback, readability_assessment, priority_recommendations, output, success"
      },
      {
        "von": 4,
        "nach": 5,
        "nutzlast": "priority_recommendations, seo_score, output (vollständiger Report), adressiert über draft_id"
      },
      {
        "von": 4,
        "nach": 6,
        "nutzlast": "Draft-Titel, seo_score und draft_url, parallel zu Schritt 5, nicht von dessen Ergebnis abhängig"
      }
    ],
    "voraussetzungen": [
      "CMS mit Status-Trigger und Kommentar-Funktion, zum Beispiel WordPress, Webflow oder Contentful",
      "CMS-API-Zugang mit Schreibrechten für Kommentare, inklusive gültigem API-Key für den Authorization-Header",
      "Team-Chat für die Benachrichtigung, zum Beispiel Slack, Teams oder Discord",
      "Slack-Verbindung mit Autorisierung für den Workspace, der Bot benötigt Zugriff auf den gewählten Kanal, der Platzhalter #content-team muss auf den echten Kanal umgestellt werden",
      "Keyword-Tool optional, zum Beispiel Ahrefs oder SEMrush, für Suchvolumen in der Priorisierung",
      "LLM-Zugang per API-Key (OpenAI, Claude oder Gemini)",
      "Ziel-Keyword als Pflichtfeld pro Artikel im CMS, da es nicht Teil der Standard-Webhook-Nutzlast ist"
    ],
    "fehlerbehandlung": [
      {
        "fall": "Alle Knoten sind auf die Fehlerstrategie Stop gesetzt",
        "massnahme": "Bei einem Fehler in Trigger, SEO-Analyse, CMS-Kommentar oder Team-Benachrichtigung bricht der jeweilige Lauf ab. Es gibt keinen automatischen Retry, Fehler müssen im Log des Automations-Tools nachvollzogen werden."
      },
      {
        "fall": "Workflow startet nicht",
        "massnahme": "CMS-Webhook und Status-Filter (Entwurf/Review) prüfen."
      },
      {
        "fall": "Kein Ziel-Keyword hinterlegt",
        "massnahme": "Analyse trotzdem durchführen und im Kommentar auf das fehlende Keyword hinweisen. Ziel-Keyword als eigenes Pflichtfeld im CMS einführen, da es in der Standard-Webhook-Nutzlast nicht enthalten ist."
      },
      {
        "fall": "Kommentar wird nicht erstellt",
        "massnahme": "CMS-Endpunkt-URL (zum Beispiel wp-json/wp/v2/posts/{draft_id}/comments bei WordPress) und den Authorization-Header mit einem echten API-Key statt des Platzhalters prüfen, zusätzlich die Schreibrechte im CMS."
      },
      {
        "fall": "Meta-Description-Vorschlag über 155 Zeichen",
        "massnahme": "Länge validieren, bei Überschreitung einmalig neu generieren lassen."
      },
      {
        "fall": "Vorschläge zu generisch",
        "massnahme": "Prompt um Zielgruppe und Content-Richtlinien ergänzen."
      },
      {
        "fall": "Sehr langer Draft (Token-Limit)",
        "massnahme": "In Abschnitte teilen und die Ergebnisse zusammenführen."
      },
      {
        "fall": "Team-Benachrichtigung kommt nicht an oder landet im falschen Kanal",
        "massnahme": "Slack-Verbindung und Autorisierung für den Workspace prüfen. Der Kanal-Name #content-team ist nur ein Platzhalter und muss auf den echten Kanal umgestellt werden, der Bot benötigt Zugriff darauf."
      }
    ],
    "platzhalter": [
      {
        "name": "BLOG_TITEL",
        "quelle": "Feld title aus der Webhook-Nutzlast des CMS, dynamisch gemappt"
      },
      {
        "name": "BLOG_INHALT",
        "quelle": "Feld content aus der Webhook-Nutzlast des CMS, dynamisch gemappt"
      },
      {
        "name": "META_DESCRIPTION",
        "quelle": "Feld meta_description aus der Webhook-Nutzlast des CMS, dynamisch gemappt"
      },
      {
        "name": "ZIEL_KEYWORD",
        "quelle": "Nicht Teil der Standard-Webhook-Nutzlast, muss als eigenes Feld im CMS ergänzt werden, kann leer sein"
      },
      {
        "name": "draft_id",
        "quelle": "Eindeutige ID des Drafts aus der Webhook-Nutzlast, adressiert den Kommentar-Endpunkt im CMS-Request"
      },
      {
        "name": "status",
        "quelle": "Statusfeld aus der Webhook-Nutzlast, gefiltert auf Entwurf oder Review beziehungsweise draft/review je nach CMS"
      },
      {
        "name": "draft_url",
        "quelle": "Optionales Feld aus der Webhook-Nutzlast, Link zum Draft in der Team-Benachrichtigung"
      }
    ],
    "herausgeber": "Voyage Digital",
    "version": "2.0",
    "stand": "2026-07-26"
  },
  "itemIcon": "search",
  "recommended": [
    {
      "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"
    },
    {
      "slug": "geo-seo-claude",
      "category": "tool",
      "name": "geo-seo-claude",
      "teaser": "geo-seo-claude is an open source Claude Code skill suite that audits websites for citability in AI search systems such as ChatGPT, Claude, Perplexity, and Google AI Overviews.",
      "domaene": "SEO & KI-Sichtbarkeit"
    },
    {
      "slug": "google-search-console",
      "category": "tool",
      "name": "Google Search Console",
      "teaser": "Google's free diagnostic tool for tracking search performance, managing sitemaps, and diagnosing indexing issues to monitor a website's visibility in Google Search.",
      "domaene": "SEO & KI-Sichtbarkeit",
      "logoFile": "google-search-console.png",
      "logoEinzug": 1
    },
    {
      "slug": "seo-briefing",
      "category": "skill",
      "name": "The SEO Briefing",
      "teaser": "Turns a primary keyword into a complete SEO content briefing with keyword cluster, search intent, competitor analysis and outline, ready to use as a writing template for writers.",
      "domaene": "SEO & KI-Sichtbarkeit",
      "itemIcon": "search"
    },
    {
      "slug": "rechnungs-strecke",
      "category": "workflow",
      "name": "The Invoice Pipeline",
      "teaser": "A workflow that reads incoming PDF invoices, matches them against purchase orders in the ERP, and books matches automatically while routing discrepancies to the finance team for manual review.",
      "domaene": "Daten, Analytics & Finanzen",
      "itemIcon": "receipt"
    },
    {
      "slug": "vertragsrisiko-kette",
      "category": "workflow",
      "name": "The Contract Risk Chain",
      "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.",
      "domaene": "Recht & Compliance",
      "itemIcon": "file-warning"
    },
    {
      "slug": "playwright",
      "category": "tool",
      "name": "Playwright",
      "teaser": "Playwright is an open source framework for browser automation and end to end testing across Chromium, Firefox and WebKit, built for repeatable test suites, visual regression and ad hoc live inspection.",
      "domaene": "Softwareentwicklung & technische Infrastruktur",
      "logoFile": "playwright.svg",
      "logoEinzug": 1
    },
    {
      "slug": "content-raster",
      "category": "skill",
      "name": "The Content Grid",
      "teaser": "The Content Grid sorts your existing content into Evergreen, Update, Recycle, or Archive and turns the assessment into a prioritized action plan with quick wins.",
      "domaene": "Content & Redaktion",
      "itemIcon": "layout-grid"
    },
    {
      "slug": "email-html-mjml",
      "category": "skill",
      "name": "The Email Template",
      "teaser": "Builds responsive MJML 4.x email templates and compiles them to production-ready HTML, checked against the quirks of Outlook, Gmail, and mobile clients.",
      "domaene": "Design & Kreativ",
      "itemIcon": "mails"
    },
    {
      "slug": "betreffzeilen-pruefer",
      "category": "assistent",
      "name": "The Subject Line Reviewer",
      "teaser": "Reviews newsletter subject lines against five psychological approaches and returns a rationale, character count and an A/B test recommendation for each variant.",
      "domaene": "Content & Redaktion",
      "itemIcon": "type"
    }
  ]
}