8
n8n 한국어amn8n.com

Claude AI를 사용하여 Google Sheets에서 WordPress로 접근성 대체 텍스트 생성

중급

이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 10개의 노드를 포함합니다.주로 If, Code, HttpRequest, GoogleSheets, SplitInBatches 등의 노드를 사용하며. Claude AI를 사용하여 Google Sheets에서 WordPress로 접근성 대체 텍스트 생성

사전 요구사항
  • 대상 API의 인증 정보가 필요할 수 있음
  • Google Sheets API 인증 정보
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "meta": {
    "instanceId": "393ca9e36a1f81b0f643c72792946a5fe5e49eb4864181ba4032e5a408278263",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "b093bb6e-2797-470b-b32f-c4ffe96249bb",
      "name": "항목 반복",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        912,
        -16
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "30695fd4-d335-46c8-9987-119ce068da74",
      "name": "이미지 분석",
      "type": "@n8n/n8n-nodes-langchain.anthropic",
      "onError": "continueRegularOutput",
      "position": [
        1152,
        0
      ],
      "parameters": {
        "text": "#Tâche \nAnalysez cette image et rédigez une description alternative (alt text) pour l'accessibilité web.\nCritères :\n\n##Caractéristiques\nMaximum 125 caractères\nDécrire les éléments visuels essentiels\nTon neutre et factuel\nCommencer par l'élément principal\n\nInclure : sujet principal, actions significatives, contexte important, texte visible\nÉviter : \"image de\", \"photo de\", détails décoratifs, interprétations\nRéponse : Fournir uniquement la description, sans guillemets.\n\n##Exemples\n\nIncorrect : Photo d'un chat mignon qui dort sur un canapé rouge dans un salon\nCorrect : Chat tigré dormant sur un canapé rouge",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-20250514",
          "cachedResultName": "claude-sonnet-4-20250514"
        },
        "options": {},
        "resource": "image",
        "imageUrls": "={{ $json.URL }}"
      },
      "credentials": {
        "anthropicApi": {
          "id": "WXQf5QsxCs3AyxlW",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "e981bf45-2b8b-45ae-bce5-f20f6d29941b",
      "name": "시트 행 업데이트",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1568,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "URL": "={{ $('Loop Over Items').item.json.URL }}",
            "Alt text": "={{ $json.content[0].text }}",
            "row_number": 0
          },
          "schema": [
            {
              "id": "ID",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Alt text",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Alt text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "URL"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Export media"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $('Send Sheets URL').item.json.chatInput }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "wBRLUCktxqXE6DVJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "71cf07ec-7559-4944-a0e6-adf9b85ac4ee",
      "name": "Sheets URL 전송",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        16,
        0
      ],
      "webhookId": "cb9f34cd-dd44-4859-8a12-4f7a20c32237",
      "parameters": {
        "mode": "webhook",
        "public": true,
        "options": {
          "responseMode": "responseNode"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "1060d6dd-e8c7-4550-bac0-ab2e608b75a1",
      "name": "URL 가져오기",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        656,
        0
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Export media"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $('Send Sheets URL').item.json.chatInput }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "wBRLUCktxqXE6DVJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "1c82e061-01e3-4efb-861f-b928903ec7ee",
      "name": "WP 키 + 웹사이트 URL 가져오기 (https:// 제외)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        0
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Infos client"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $json.chatInput }}"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "wBRLUCktxqXE6DVJ",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "232776ed-2123-4ff7-96f5-336e85470a99",
      "name": "Base64 키 가져오기",
      "type": "n8n-nodes-base.code",
      "position": [
        448,
        0
      ],
      "parameters": {
        "jsCode": "// Dans une Function/Code node n8n\nconst username = $('Get WP Key + website URL WITHOUT https://').first().json['Admin Name'];\nconst password = $('Get WP Key + website URL WITHOUT https://').first().json.KEY;\nconst credentials = username + ':' + password;\n\n// Encoder en Base64 avec Buffer (Node.js)\nconst encodedCredentials = Buffer.from(credentials).toString('base64');\nconst authHeader = 'Basic ' + encodedCredentials;\n\nreturn {\n  json: {\n    username: username,\n    password: password,\n    credentials: credentials,\n    authHeader: authHeader\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "5ef87414-1e64-443d-925d-fd4c443030d3",
      "name": "WP 이미지 대체 텍스트 업데이트",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1792,
        0
      ],
      "parameters": {
        "url": "=https://{{ $('Get WP Key + website URL WITHOUT https://').item.json.Domaine }}/wp-json/wp/v2/media/{{ $('Loop Over Items').item.json.ID }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "alt_text",
              "value": "={{ $('Analyze image').item.json.content[0].text }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "={{ $('Get Base64 key').item.json.authHeader }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3fb66fec-319f-482c-8b04-3a45490bea72",
      "name": "조건문",
      "type": "n8n-nodes-base.if",
      "position": [
        1360,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "86ad2ab9-a213-4e16-b81b-b1c4315b6822",
              "operator": {
                "type": "string",
                "operation": "notExists",
                "singleValue": true
              },
              "leftValue": "={{ $json.error }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "7d00b936-879e-45d0-a874-2a40f5b5f6c3",
      "name": "고정 메모",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1248,
        -592
      ],
      "parameters": {
        "color": 4,
        "width": 816,
        "height": 1776,
        "content": "Voici la description avec le lien hypertexte échappé :\n## AI-powered alt text generation from Google Sheets to WordPress media\n## Who's it for\nWordPress site owners, content managers, and accessibility advocates who need to efficiently add alt text descriptions to multiple images for better SEO and web accessibility compliance.\n## What it does\nThis workflow automates the process of generating and updating alt text for WordPress media files using AI analysis. It reads image URLs from a Google Sheet, analyzes each image with Claude AI to generate accessibility-compliant descriptions, updates the sheet with the generated alt text, and automatically applies the descriptions to the corresponding WordPress media files. The workflow includes error handling to skip unsupported media formats and continue processing.\n## How it works\n\nInput: Provide a Google Sheets URL containing image URLs and WordPress media IDs\nAuthentication: Retrieves WordPress credentials from a separate sheet and generates Base64 authentication\nProcessing: Loops through each image URL in the sheet\nAI Analysis: Claude AI analyzes each image and generates concise, accessible alt text (max 125 characters)\nError Handling: Automatically skips unsupported media formats and continues with the next item\nUpdate Sheet: Writes the generated alt text back to the Google Sheet\nWordPress Update: Updates the WordPress media library with the new alt text via REST API\n\n## Requirements\n\nGoogle Sheets with image URLs and WordPress media IDs\nWordPress site with Application Passwords enabled\nClaude AI (Anthropic) API credentials\nWordPress admin credentials stored in Google Sheets\nExport Media URLs WordPress plugin for generating the media list\n\n## How to set up\n### Step 1: Export your WordPress media URLs\n\nInstall the \"Export Media URLs\" plugin on your WordPress site\nGo to the plugin settings and check both ID and URL columns for export (these are mandatory for the workflow)\nExport your media list to get the required data\n\n### Step 2: Configure WordPress Application Passwords\n\nGo to WordPress Admin → Users → Your Profile\nScroll down to \"Application Passwords\" section\nEnter application name (e.g., \"n8n API\")\nClick \"Add New Application Password\"\nCopy the generated password immediately (it won't be shown again)\n\n### Step 3: Set up Google Sheets\n[Duplicate this Google Sheets template]\n(https://docs.google.com/spreadsheets/d/1BKGQRx_xDiuh3QD3ACOOTJomsWFuPBjCHYMQX8UzTBE/edit?usp=sharing\\) to get the correct structure.\nThe template includes two sheets:\nSheet 1: \"Export media\" - Paste your exported media data with columns:\n\nID (WordPress media ID)\nURL (image URL)\nAlt text (will be populated by the workflow)\n\nSheet 2: \"Infos client\" - Add your WordPress credentials:\n\nAdmin Name: Your WordPress username\nKEY: The application password you generated\nDomaine: Your site URL without https:// (format: \"example.com\")\n\n### Step 4: Configure API credentials\n\nAdd your Anthropic API credentials to the Claude node\nConnect your Google Sheets account to the Google Sheets nodes\n\n## How to customize\n\nLanguage: The Claude prompt is in French - modify it in the \"Analyze image\" node for other languages\nAlt text length: Adjust the 125-character limit in the Claude prompt\nBatch processing: Change the batch size in the Split in Batches node\nError handling: The workflow automatically handles unsupported formats, but you can modify the error handling logic\nAuthentication: Customize for different WordPress authentication methods\n\nThis workflow is perfect for managing accessibility compliance across large WordPress media libraries while maintaining consistent, AI-generated descriptions. It's built to be resilient and will continue processing even when encountering unsupported media formats."
      },
      "typeVersion": 1
    },
    {
      "id": "ccae276a-6fc9-4a8e-94d4-f72a478cf336",
      "name": "완료",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1168,
        -192
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={\n    \"text\": \"Fin de la rédaction des alt description\"\n } "
      },
      "typeVersion": 1.2
    }
  ],
  "pinData": {},
  "connections": {
    "3fb66fec-319f-482c-8b04-3a45490bea72": {
      "main": [
        [
          {
            "node": "e981bf45-2b8b-45ae-bce5-f20f6d29941b",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "b093bb6e-2797-470b-b32f-c4ffe96249bb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1060d6dd-e8c7-4550-bac0-ab2e608b75a1": {
      "main": [
        [
          {
            "node": "b093bb6e-2797-470b-b32f-c4ffe96249bb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "30695fd4-d335-46c8-9987-119ce068da74": {
      "main": [
        [
          {
            "node": "3fb66fec-319f-482c-8b04-3a45490bea72",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "232776ed-2123-4ff7-96f5-336e85470a99": {
      "main": [
        [
          {
            "node": "1060d6dd-e8c7-4550-bac0-ab2e608b75a1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b093bb6e-2797-470b-b32f-c4ffe96249bb": {
      "main": [
        [
          {
            "node": "ccae276a-6fc9-4a8e-94d4-f72a478cf336",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "30695fd4-d335-46c8-9987-119ce068da74",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "71cf07ec-7559-4944-a0e6-adf9b85ac4ee": {
      "main": [
        [
          {
            "node": "1c82e061-01e3-4efb-861f-b928903ec7ee",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5ef87414-1e64-443d-925d-fd4c443030d3": {
      "main": [
        [
          {
            "node": "b093bb6e-2797-470b-b32f-c4ffe96249bb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e981bf45-2b8b-45ae-bce5-f20f6d29941b": {
      "main": [
        [
          {
            "node": "5ef87414-1e64-443d-925d-fd4c443030d3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1c82e061-01e3-4efb-861f-b928903ec7ee": {
      "main": [
        [
          {
            "node": "232776ed-2123-4ff7-96f5-336e85470a99",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

중급 - 콘텐츠 제작, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
중급
노드 수10
카테고리2
노드 유형8
난이도 설명

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34