See llms.txt for all machine-readable content.

Back to Templates

Fix broken YouTube description links and offers with Claude, Google Sheets and Slack

Quick overview

This workflow runs weekly to scan your newest YouTube video descriptions for dead links and expired or missing promo offers using data from Google Sheets, then posts a Slack summary and uses Anthropic Claude to propose safe fixes that only update YouTube after your approval.

How it works

  1. Runs every Monday morning on a schedule.
  2. Validates the required configuration values, then reads your live offers and past decisions from Google Sheets.
  3. Uses the YouTube Data API to fetch your newest public and unlisted uploads (up to a set limit) and extracts each description’s external links, promo codes, and full offer dates.
  4. Tests each unique external link once and flags problems per video, including dead links, codes not in the offers sheet or outside their valid dates, and offer dates that have already passed.
  5. Posts a weekly Slack summary and selects the most-viewed videos with issues (up to a set limit) to process for fixes.
  6. Sends each video’s problem lines and the live offers list to Anthropic Claude to generate replacement text for only the affected lines.
  7. Validates Claude’s proposed changes against the offers sheet and, if they pass, asks for approval in Slack before updating the YouTube description; all outcomes are logged back to Google Sheets and notable results are posted to Slack.

Setup

  1. Create a Google Sheet with an “Offers” tab (Name, Code, Discount, Starts, Ends, Link) and a “Checks” tab for logging results.
  2. Add credentials for YouTube OAuth2 (with YouTube Data API v3 enabled if self-hosted), Google Sheets, Slack OAuth2, and an Anthropic API key for Claude.
  3. In the Config node, set your Google Sheet URL, the Offers/Checks tab names, your Slack channel ID, and any limits (max videos, links per video, fixes per run, and approval wait time).

Requirements

  • YouTube channel and the Google account that owns it (on self-hosted n8n, turn on the YouTube Data API v3 in your Google Cloud project)
  • Google Sheets account for the offers sheet and the check log
  • Slack workspace and the ID of the channel for approvals
  • Anthropic API key for Claude
  • Each approved update uses 50 of the 10,000 free YouTube API units you get every day

Customization

  • In Config, change maxVideos, maxFixesPerRun, maxLinksPerVideo or approvalWaitHours.
  • Change the day and time in Every Monday Morning.
  • Swap the Claude model for any chat model.

Additional info

Nothing changes on YouTube until you press Approve in Slack, and the title, tags and privacy stay as they are. Check Fix Against Sheet is plain code that stops a fix if any link, code, number or date is not in your offers sheet. A fix you decline is not asked about again unless the description changes.