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)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Claude AI와 경쟁 분석을 사용한 SEO 콘텐츠 생성기
사용Claude AI와Apify 경쟁 분석으로 SEO 콘텐츠 생성
If
Code
Filter
+
If
Code
Filter
36 노드Growth AI
콘텐츠 제작
Claude AI, 경쟁 분석 및 Supabase RAG을 사용한 SEO 콘텐츠 생성기
사용Claude AI, 경쟁 분석, Supabase RAG으로 SEO 콘텐츠 생성
If
Code
Filter
+
If
Code
Filter
40 노드Growth AI
콘텐츠 제작
Replicate와 OpenAI를 사용하여 얼굴 없는 공포 단편 제작
OpenAI TTS, Replicate 비디오 생성 및 YouTube 업로드로 얼굴 없는 공포 단편 제작
If
Code
Wait
+
If
Code
Wait
50 노드Deb Mukherjee
콘텐츠 제작
Shopify 자동 WhatsApp 감사 메시지 및 로열티 쿠폰 발송 (Rapiwa API 사용)
Rapiwa를 사용한 Shopify에서 WhatsApp 감사 메시지 및 로열티 쿠폰 자동 발송
If
Code
Wait
+
If
Code
Wait
17 노드SpaGreen Creative
콘텐츠 제작
Printify 자동화 - 제목 및 설명 업데이트 - AlexK1919
GPT-4o-mini를 사용하여 Printify용 SEO 제품 제목 및 설명 자동 생성
If
Set
Code
+
If
Set
Code
26 노드Amit Mehta
콘텐츠 제작
블로그 게시자 – 완전한 AI 기반 콘텐츠 연구, 제작, 최적화 및 게시 자동화
Gemini, Ideogram AI 및 WordPress를 사용한 블로그 생성 및 게시 자동화
If
Set
Code
+
If
Set
Code
35 노드Incrementors
콘텐츠 제작