Generar anclas de texto SEO a partir de Google Sheets
Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 19 nodos.Utiliza principalmente nodos como Code, Filter, GoogleSheets, SplitInBatches, Agent. Usar Claude 4 Sonnet para generar textos ancla de SEO desde Google Sheets
- •Credenciales de API de Google Sheets
- •Clave de API de Anthropic
Nodos utilizados (19)
Categoría
{
"meta": {
"instanceId": "393ca9e36a1f81b0f643c72792946a5fe5e49eb4864181ba4032e5a408278263"
},
"nodes": [
{
"id": "8c2cca9f-cd91-4afc-8c2a-dbfb79b64b56",
"name": "Cuando se recibe mensaje en chat",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-1792,
208
],
"webhookId": "181a1719-6394-4157-98ed-3a7a48b23a0a",
"parameters": {
"mode": "webhook",
"public": true,
"options": {
"responseMode": "responseNode"
}
},
"typeVersion": 1.3
},
{
"id": "6d70bc94-52aa-4ac6-b94e-aca33559f7d0",
"name": "Filtrar",
"type": "n8n-nodes-base.filter",
"position": [
-944,
208
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "4aa3c2d2-9383-4b0c-a8ee-8a691dcd8744",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.URL }}",
"rightValue": ""
},
{
"id": "81017b55-ffb5-497c-8b05-5d2643e3fecd",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.Anchors }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "3b41fbd6-fdf0-43e7-b2ac-db6f49869370",
"name": "Iterar sobre elementos",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-400,
208
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "26244ced-732e-4e26-93d8-d6dbdf15e3a5",
"name": "Générateur d'ancres",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
96,
224
],
"parameters": {
"text": "=# Context\nYou are an SEO expert specialized in internal linking optimization. Your mission is to create optimized link anchors for natural referencing with all their linguistic variations.\n# Task\nBased on the provided information about a web page, generate 10 different SEO anchors with all linguistic variations that can be used to create internal links to this page from other pages of the site.\n# Input Data\n\nPage URL: {{ $json.URL }}\nPage Name/Title: {{ $json['Niv 0'] }}{{ $json['Niv 1'] }}{{ $json['Niv 2'] }}{{ $json['Niv 3'] }}\nContent Description: {{ $json['Description de la page'] }}\n\n# Instructions for Anchor Generation\n## SEO Criteria to Follow:\n\nSemantic relevance: The anchor must faithfully reflect the content of the target page\nStrategic keywords: Integrate the main keywords of the target page\nNaturalness: The anchor must integrate naturally into text\nDiversity: Vary formulations to avoid over-optimization\nOptimal length: Between 2 and 6 words for maximum efficiency\n\n## Types of Anchors to Create:\n\nExact anchors: Use the exact main keyword (2 variants)\nBrand/name anchors: Use the page or section name (2 variants)\nLong-tail anchors: Longer expressions including secondary keywords (3 variants)\nContextual anchors: Natural formulations for insertion in a paragraph (2 variants)\nCall-to-action anchors: Encourage action while describing content (1 variant)\n\n## Linguistic Variations to Generate for Each Anchor:\nFor each main anchor, systematically generate:\n\nSingular/plural variation (if applicable)\nGender variation: masculine/feminine (if applicable)\nTemporal variation: present/past/future (if applicable)\nFormal/informal variation: formal/casual register\nSynonymous variation: use of main synonyms\nStructural variation: word order inversion, addition/removal of articles\nPrepositional variation: with/without prepositions (to, of, for, on, etc.)\n\n# Desired Output Format\nmain anchor 1\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 2\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 3\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 4\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 5\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 6\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 7\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 8\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 9\nvariation 1\nvariation 2\nvariation 3\nvariation 4\nmain anchor 10\nvariation 1\nvariation 2\nvariation 3\nvariation 4\n# Additional Constraints\n\nAvoid generic anchors (\"click here\", \"learn more\", \"read more\")\nDon't repeat exactly the same formulation between main anchors and their variations\nAdapt the language register to the website's tone\nPrioritize added value for the user\nEnsure balanced distribution between different types of anchors\nGenerate 3-5 relevant variations per anchor (not necessarily 4 if certain variations don't apply)\nPrioritize quality of variations over quantity\n\nDon't make an introduction or conclusion to your response, simply return the list of anchors with their variations.\nGenerate now 10 optimized SEO anchors with all their linguistic variations for the described page.",
"options": {},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "a498c4b3-1a95-41cf-ac41-c9f5d6f37c61",
"name": "Anthropic Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"position": [
80,
400
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "claude-sonnet-4-20250514",
"cachedResultName": "Claude 4 Sonnet"
},
"options": {}
},
"credentials": {
"anthropicApi": {
"id": "WXQf5QsxCs3AyxlW",
"name": "Anthropic account"
}
},
"typeVersion": 1.3
},
{
"id": "4296eb85-78a4-4c38-ad7d-a080d3b8b07a",
"name": "Actualizar hoja",
"type": "n8n-nodes-base.googleSheets",
"position": [
1312,
224
],
"parameters": {
"columns": {
"value": {},
"schema": [],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Anchor"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $('When chat message received').item.json.chatInput }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "wBRLUCktxqXE6DVJ",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "a8c0d205-ff46-4cd9-89c2-11be32cd90f0",
"name": "Importar hojas",
"type": "n8n-nodes-base.code",
"position": [
912,
224
],
"parameters": {
"jsCode": "// Code avec conservation de toutes les colonnes existantes\nconst items = [];\n\n// Récupérer les données de vos différents nodes \nconst loopItem = $('Loop Over Items').item.json;\nconst aiAgentOutput = $input.first().json.output;\n\n// Créer l'objet avec toutes les colonnes et le mapping des nouvelles valeurs\nconst transformedItem = {\n // Copier toutes les propriétés existantes\n ...loopItem,\n \n // Écraser/ajouter les nouvelles valeurs\n 'Ancre': aiAgentOutput\n};\n\n// Retourner l'item transformé\nitems.push(transformedItem);\nreturn items;"
},
"typeVersion": 2
},
{
"id": "eba6bb70-cd87-485b-8f91-dad6ef78c8dc",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1824,
112
],
"parameters": {
"color": 4,
"width": 608,
"height": 288,
"content": "# Phase 1: Workflow Initialization"
},
"typeVersion": 1
},
{
"id": "7a2d141f-442b-475f-af20-69edd9111637",
"name": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
112
],
"parameters": {
"color": 3,
"width": 688,
"height": 432,
"content": "# Phase 4: AI-Powered Anchor Generation"
},
"typeVersion": 1
},
{
"id": "c088d3ac-bef8-4191-be23-a5084171ba55",
"name": "Nota adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
112
],
"parameters": {
"width": 896,
"height": 304,
"content": "# Phase 5: Data Integration and Google Sheets Update"
},
"typeVersion": 1
},
{
"id": "3fd478d7-3082-4e37-9ef7-6b492d29b53a",
"name": "Nota adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1824,
448
],
"parameters": {
"color": 4,
"width": 608,
"height": 592,
"content": "###What you do:\n\nDuplicate this template: https://docs.google.com/spreadsheets/d/1VNl8xLYgRrNcKrmN9hCdfov1dMnwD44tAALJZAlagCo\nFill in your page information in the \"Anchor\" sheet with:\n\nPage: Name/title of your page\nURL: Complete URL of the page\nPage description: Brief description of the page content to help AI generate relevant anchors\n\n\nSend a chat message with your duplicated Google Sheets URL to trigger the workflow\n\n### What the system does:\n\nReceives the chat trigger and extracts the Google Sheets URL from your message\nConnects to Google Sheets using OAuth2 authentication\nRetrieves all data from the \"Anchor\" sheet of your specified document\nLoads your page information including names, URLs, and descriptions for anchor generation\n\n### Result:\n\n✅ Workflow activated and ready to process your SEO data\n✅ Secure connection established to your Google Sheets document\n✅ All page information loaded and available for AI processing\n✅ Foundation set for automated anchor generation based on your specific pages"
},
"typeVersion": 1
},
{
"id": "95720cff-a480-48e8-aa19-d1250c199b8f",
"name": "Obtener hojas",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1440,
208
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Anchor"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "={{ $('When chat message received').item.json.chatInput }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "wBRLUCktxqXE6DVJ",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "e5d907dc-e34c-431a-8f30-f8d95ada7daf",
"name": "Nota adhesiva4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1184,
112
],
"parameters": {
"width": 528,
"height": 288,
"content": "# Phase 2: Data Filtering and Validation"
},
"typeVersion": 1
},
{
"id": "0f5cec09-d540-4c79-8946-ac486a4d9e71",
"name": "Nota adhesiva5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1184,
448
],
"parameters": {
"width": 528,
"height": 304,
"content": "### What the system does:\n\nFilters the retrieved data to identify pages that need anchor text generation\nApplies specific criteria: pages must have a URL but no existing anchor text\nValidates data quality by checking for empty anchor fields\nPrepares clean dataset for the AI processing pipeline\n\n### Result:\n\n✅ Only relevant pages selected for anchor generation\n✅ Existing anchor texts preserved and protected\n✅ Clean, validated data ready for AI processing\n✅ Efficient workflow execution by avoiding unnecessary processing\n"
},
"typeVersion": 1
},
{
"id": "f16841d6-b2ba-4dab-b057-608030855427",
"name": "Nota adhesiva6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-624,
112
],
"parameters": {
"color": 7,
"width": 528,
"height": 288,
"content": "# Phase 3: Batch Processing Setup"
},
"typeVersion": 1
},
{
"id": "02cd635e-9b37-48e7-ac4e-5942745a1885",
"name": "Nota adhesiva7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-624,
448
],
"parameters": {
"color": 7,
"width": 528,
"height": 288,
"content": "### What the system does:\n\nOrganizes filtered data into manageable processing batches\nInitializes the loop mechanism to handle multiple pages sequentially\nPrepares each page item with all necessary context information\nSets up iterative processing to ensure all pages are handled individually\n\n### Result:\n\n✅ Systematic processing of all qualifying pages\n✅ Memory-efficient batch handling for large datasets\n✅ Individual attention to each page's unique characteristics\n✅ Reliable processing loop that handles interruptions gracefully"
},
"typeVersion": 1
},
{
"id": "b47f1ce3-a4bf-4da7-b0a4-10cde82ab188",
"name": "Nota adhesiva8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
576
],
"parameters": {
"color": 3,
"width": 688,
"height": 400,
"content": "## What the system does:\n\nProcesses each page individually using Claude 4 Sonnet AI model\nAnalyzes page context including URL, title hierarchy (Niv 0-3), and content description\nGenerates 10 unique SEO anchors with 3-5 linguistic variations each (40-50 total variations)\nApplies advanced SEO criteria: semantic relevance, keyword optimization, natural language flow\nCreates diverse anchor types: exact match, brand anchors, long-tail, contextual, and call-to-action variants\nEnsures linguistic diversity with singular/plural, formal/informal, and synonym variations\n\n## Result:\n\n✅ Professional-quality anchor texts optimized for internal linking\n✅ Diverse anchor variations to avoid over-optimization penalties\n✅ SEO-compliant anchors that improve search engine rankings\n✅ Natural language anchors that enhance user experience\n✅ Comprehensive anchor library for flexible content integration\n"
},
"typeVersion": 1
},
{
"id": "7939bb48-faf1-4f4c-830e-84142302b900",
"name": "Nota adhesiva9",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
448
],
"parameters": {
"width": 896,
"height": 416,
"content": "## What the system does:\n\nCombines AI-generated anchors with existing page data while preserving all original information\nTransforms data structure to match Google Sheets format requirements\nUpdates the original Google Sheets document with generated anchor texts in the \"Ancre\" column\nUses keyword matching to ensure accurate row updates without data corruption\nCompletes the processing loop and moves to the next page in the batch\nContinues iterative processing until all filtered pages have anchor texts generated\nMaintains real-time synchronization between the workflow and your spreadsheet\n\n## Result:\n\n✅ Generated anchors seamlessly integrated with existing data\n✅ Your Google Sheets document automatically updated with new anchor texts\n✅ Complete SEO anchor library available for immediate use in content\n✅ Batch processing completed efficiently for all qualifying pages\n✅ Ready-to-use internal linking strategy with professional anchor variations\n✅ Time saved compared to manual anchor text creation and researchRéessayer"
},
"typeVersion": 1
},
{
"id": "e1c3fd04-0438-4956-86d3-7a9810b06510",
"name": "Nota adhesiva13",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2816,
112
],
"parameters": {
"width": 816,
"height": 336,
"content": "## Need more advanced automation solutions? Contact us for custom enterprise workflows!\n\n# Growth-AI.fr\n\n## https://www.linkedin.com/in/allanvaccarizi/\n## https://www.linkedin.com/in/hugo-marinier-%F0%9F%A7%B2-6537b633/"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"6d70bc94-52aa-4ac6-b94e-aca33559f7d0": {
"main": [
[
{
"node": "3b41fbd6-fdf0-43e7-b2ac-db6f49869370",
"type": "main",
"index": 0
}
]
]
},
"95720cff-a480-48e8-aa19-d1250c199b8f": {
"main": [
[
{
"node": "6d70bc94-52aa-4ac6-b94e-aca33559f7d0",
"type": "main",
"index": 0
}
]
]
},
"a8c0d205-ff46-4cd9-89c2-11be32cd90f0": {
"main": [
[
{
"node": "4296eb85-78a4-4c38-ad7d-a080d3b8b07a",
"type": "main",
"index": 0
}
]
]
},
"4296eb85-78a4-4c38-ad7d-a080d3b8b07a": {
"main": [
[
{
"node": "3b41fbd6-fdf0-43e7-b2ac-db6f49869370",
"type": "main",
"index": 0
}
]
]
},
"3b41fbd6-fdf0-43e7-b2ac-db6f49869370": {
"main": [
[],
[
{
"node": "26244ced-732e-4e26-93d8-d6dbdf15e3a5",
"type": "main",
"index": 0
}
]
]
},
"a498c4b3-1a95-41cf-ac41-c9f5d6f37c61": {
"ai_languageModel": [
[
{
"node": "26244ced-732e-4e26-93d8-d6dbdf15e3a5",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"26244ced-732e-4e26-93d8-d6dbdf15e3a5": {
"main": [
[
{
"node": "a8c0d205-ff46-4cd9-89c2-11be32cd90f0",
"type": "main",
"index": 0
}
]
]
},
"8c2cca9f-cd91-4afc-8c2a-dbfb79b64b56": {
"main": [
[
{
"node": "95720cff-a480-48e8-aa19-d1250c199b8f",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Creación de contenido, IA Multimodal
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Growth AI
@growthaiCompartir este flujo de trabajo