Generar blogs de WordPress optimizados para SEO con Gemini, Tavily y revisión humana

Avanzado

Este es unContent Creation, Miscellaneous, Multimodal AIflujo de automatización del dominio deautomatización que contiene 38 nodos.Utiliza principalmente nodos como If, Set, Code, Telegram, Aggregate. Usar Gemini, Tavily y revisión humana para generar blogs de WordPress optimizados para SEO

Requisitos previos
  • Bot Token de Telegram
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Credenciales de API de Google Sheets
  • Clave de API de OpenAI
  • Clave de API de Google Gemini
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "meta": {
    "instanceId": "58a9e858b82757a75629d435ec0da2448ad5d9e906a9ce3b7dcbb64c90fda9fe",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "e747e3a1-c579-45cf-90a3-ce1eca7bcbcd",
      "name": "Crear una publicación",
      "type": "n8n-nodes-base.wordpress",
      "position": [
        4224,
        3048
      ],
      "parameters": {
        "title": "={{ $('Structure Post Content').item.json.title }}",
        "additionalFields": {
          "tags": [],
          "status": "publish",
          "content": "={{ $('Structure Post Content').item.json.content }}",
          "categories": "={{ \n  $('Structure Selected Post').item.json.categories\n    .filter(i => i.name === $('Structure Post Content').item.json.categoryName)\n    .map(i => i.id)\n}}",
          "postTemplate": {
            "values": {}
          }
        }
      },
      "credentials": {
        "wordpressApi": {
          "id": "yuyRIMiq4Zxnq538",
          "name": "Wordpress account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a7b69718-35eb-407d-af24-8353aa262d49",
      "name": "Activador programado",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        384,
        3048
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "daysInterval": 4,
              "triggerAtHour": 20
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "c6ca0aa3-bd60-44d9-8915-9e9b038837cc",
      "name": "Modelo de chat Google Gemini",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        616,
        3272
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "id": "GrbWNcmNxQFQaJje",
          "name": "Gemini API n8n-automation"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "10e96f6d-ffa9-4931-99d5-3f239ebeafce",
      "name": "Analizador de salida estructurada",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        744,
        3272
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"topic\": \"catchy blog topic idea\",\n  \"search_query\": \"short Tavily-friendly query under 350 characters\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "393f36da-77d1-4691-bed5-645823c65875",
      "name": "Modelo de chat Google Gemini1",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        2760,
        3272
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "id": "GrbWNcmNxQFQaJje",
          "name": "Gemini API n8n-automation"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d4bcb587-56fd-4a16-8da7-1e1e34fc505f",
      "name": "Analizador de salida estructurada1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2888,
        3272
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"title\": \"SEO optimized blog title\",\n  \"excerpt\": \"Short meta description for SEO\",\n  \"keywords\": [\"keyword1\", \"keyword2\", \"keyword3\"],\n  \"image_prompt\": \"A descriptive prompt for generating a featured image\",\n  \"isExistingCategory\": true,\n  \"categoryName\": \"Selected or newly created category\",\n  \"content\": \"<h2>Heading</h2><p>Blog content in clean HTML format...</p>\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "d84285a1-5794-4e5b-971b-7e129a81ec29",
      "name": "Subir medio a Wordpress",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4000,
        3048
      ],
      "parameters": {
        "url": "https://devally.in/wp-json/wp/v2/media",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "binaryData",
        "sendHeaders": true,
        "authentication": "predefinedCredentialType",
        "headerParameters": {
          "parameters": [
            {
              "name": "content-disposition",
              "value": "=attachment; filename={{ $binary.data.fileName }}.{{ $binary.data.fileExtension }}"
            },
            {
              "name": "content-type",
              "value": "={{ $binary.data.mimeType }}"
            }
          ]
        },
        "inputDataFieldName": "data",
        "nodeCredentialType": "wordpressApi"
      },
      "credentials": {
        "wordpressApi": {
          "id": "UyfbTTKctTIA1rEx",
          "name": "Wordpress account 2"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e2e139fd-1d9e-4f0d-afca-ab6bb6660702",
      "name": "Obtener categorías existentes",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2080,
        3048
      ],
      "parameters": {
        "url": "https://devally.in/wp-json/wp/v2/categories",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "wordpressApi"
      },
      "credentials": {
        "wordpressApi": {
          "id": "UyfbTTKctTIA1rEx",
          "name": "Wordpress account 2"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "2110baac-ad2a-439a-9676-1bfc87e89e80",
      "name": "Si1",
      "type": "n8n-nodes-base.if",
      "position": [
        3328,
        3048
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "233aba38-a10c-4a89-b607-aa8a64e6b33b",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.isExistingCategory }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e0d9bc92-c6c0-4b42-a238-a27447b521aa",
      "name": "Crear categoría en Wordpress",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3552,
        3120
      ],
      "parameters": {
        "url": "https://devally.in/wp-json/wp/v2/categories",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "predefinedCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "name",
              "value": "={{ $json.categoryName }}"
            }
          ]
        },
        "nodeCredentialType": "wordpressApi"
      },
      "credentials": {
        "wordpressApi": {
          "id": "UyfbTTKctTIA1rEx",
          "name": "Wordpress account 2"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "68a44727-00d0-4ffd-b11a-8d4554f4c9e5",
      "name": "Obtener artículos sobre temas",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        960,
        2976
      ],
      "parameters": {
        "url": "https://api.tavily.com/search",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "query",
              "value": "={{ $json.output.search_query }}"
            },
            {
              "name": "max_results",
              "value": "4"
            },
            {
              "name": "time_range",
              "value": "week"
            },
            {
              "name": "include_raw_content",
              "value": "text"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer tvly-dev-1234567"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "65f4b4e2-2a9b-4c6a-ad82-b53b07b684e8",
      "name": "Extractor de URLs",
      "type": "n8n-nodes-base.code",
      "position": [
        1408,
        2976
      ],
      "parameters": {
        "jsCode": "const results = $input.first().json.results;\n\nconst urls = results.map(item => item.url);\n\nreturn { urls };"
      },
      "typeVersion": 2
    },
    {
      "id": "0e5e2dd1-3b7a-4172-ba3b-009582d723b2",
      "name": "Confirmar artículo para verificar",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1632,
        2976
      ],
      "webhookId": "c7b7352e-0736-4c56-be6d-0f282045326c",
      "parameters": {
        "chatId": "-1002717091868",
        "message": "=Please select the article to be finalized.\n\nArticles:\n{{ $json.urls.map((url, index) => \"- \" + (index+1) + \" - \" + url).join(\"\\n\") }}",
        "options": {
          "messageButtonLabel": "Finalize Article"
        },
        "operation": "sendAndWait",
        "formFields": {
          "values": [
            {
              "fieldType": "dropdown",
              "fieldLabel": "Which article should be finalized? (Select the Article Number)",
              "fieldOptions": {
                "values": [
                  {
                    "option": "1"
                  },
                  {
                    "option": "2"
                  },
                  {
                    "option": "3"
                  },
                  {
                    "option": "4"
                  },
                  {
                    "option": "None"
                  }
                ]
              },
              "requiredField": true
            }
          ]
        },
        "responseType": "customForm"
      },
      "credentials": {
        "telegramApi": {
          "id": "0WxaSezxTdjULejN",
          "name": "DevAlly"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "59b363e1-65cf-4de3-8195-4a8eb5348afe",
      "name": "Si el artículo no es nulo",
      "type": "n8n-nodes-base.if",
      "position": [
        1856,
        3048
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "0db5e8f2-565d-4ca0-a68a-3be3d264d83b",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json.data['Which article should be finalized? (Select the Article Number)'] }}",
              "rightValue": "None"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "8207e110-6077-4df9-b8e3-2aba2956b8b5",
      "name": "Agregar categorías",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2304,
        3048
      ],
      "parameters": {
        "include": "specifiedFields",
        "options": {},
        "aggregate": "aggregateAllItemData",
        "fieldsToInclude": "id, name"
      },
      "typeVersion": 1
    },
    {
      "id": "7b9cd83a-8cfd-4db9-a336-9fede02362d1",
      "name": "Generar una imagen Gemini",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        3776,
        3048
      ],
      "parameters": {
        "prompt": "={{ $json.image_prompt }}",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/imagen-4.0-generate-001",
          "cachedResultName": "models/imagen-4.0-generate-001"
        },
        "options": {},
        "resource": "image"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "GrbWNcmNxQFQaJje",
          "name": "Gemini API n8n-automation"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8bd77619-d80c-4bb7-9c9e-4304b2b7d346",
      "name": "Generar una imagen OpenAI",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        3776,
        2816
      ],
      "parameters": {
        "prompt": "={{ $json.image_prompt }}",
        "options": {
          "size": "1792x1024",
          "style": "vivid",
          "dalleQuality": "standard"
        },
        "resource": "image"
      },
      "credentials": {
        "openAiApi": {
          "id": "7OVQwPA6RZRwFmwI",
          "name": "OpenAI Account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "d15e4afe-9d26-4ecb-a301-a86a841ef5c6",
      "name": "Mensaje Telegram final",
      "type": "n8n-nodes-base.telegram",
      "position": [
        5792,
        3048
      ],
      "webhookId": "49fc260c-37f8-4b04-a618-3705c4709452",
      "parameters": {
        "text": "=Posted the Blog on \"{{ $json.Title }}\"\nCategory - {{ $json.Category }}\nLink - {{ $json.Link }}\n\nView on Google Sheets -\nhttps://docs.google.com/spreadsheets/d/1aaSBeDXtU9n4wmgoH-mn3ett54vCDCMwxzlyhJCiPqA/edit?usp=sharing\n\n{{ $json.Timestamp }}",
        "chatId": "-1002717091868",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "0WxaSezxTdjULejN",
          "name": "DevAlly"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5745c673-75ce-4b52-9722-a11430b9dc31",
      "name": "Cambiar el autor",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4896,
        3048
      ],
      "parameters": {
        "url": "=https://devally.in/wp-json/wp/v2/posts/{{ $json.id }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "predefinedCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "author",
              "value": "1"
            }
          ]
        },
        "nodeCredentialType": "wordpressApi"
      },
      "credentials": {
        "wordpressApi": {
          "id": "UyfbTTKctTIA1rEx",
          "name": "Wordpress account 2"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f1f2a2d1-2ccf-4b3f-9945-57920beba6bf",
      "name": "Agregar extracto en la publicación",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4448,
        3048
      ],
      "parameters": {
        "url": "=https://devally.in/wp-json/wp/v2/posts/{{ $json.id }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "predefinedCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "excerpt",
              "value": "={{ $('Structure Post Content').first().json.excerpt }}"
            }
          ]
        },
        "nodeCredentialType": "wordpressApi"
      },
      "credentials": {
        "wordpressApi": {
          "id": "UyfbTTKctTIA1rEx",
          "name": "Wordpress account 2"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "7cc5bf92-cb01-49a9-b81d-aeac023c708a",
      "name": "Agregar el medio destacado en la publicación",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4672,
        3048
      ],
      "parameters": {
        "url": "=https://devally.in/wp-json/wp/v2/posts/{{ $json.id }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "predefinedCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "featured_media",
              "value": "={{ $('Upload Media to Wordpress').item.json.id }}"
            }
          ]
        },
        "nodeCredentialType": "wordpressApi"
      },
      "credentials": {
        "wordpressApi": {
          "id": "UyfbTTKctTIA1rEx",
          "name": "Wordpress account 2"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "2b1d872b-ac15-4d09-9878-121b6f0ace6c",
      "name": "Obtener fecha y hora formateadas",
      "type": "n8n-nodes-base.code",
      "position": [
        5120,
        3048
      ],
      "parameters": {
        "jsCode": "const now = new Date();\nconst istNow = new Date(now.toLocaleString(\"en-US\", { timeZone: \"Asia/Kolkata\" }));\nconst date = istNow.toLocaleDateString(\"en-IN\", { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' });\nconst time = istNow.toLocaleTimeString(\"en-IN\", { hour: '2-digit', minute: '2-digit', hour12: true });\n\nreturn [{\n  json: {\n    formatted: `${date}, ${time} (IST)`\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "37f5fa97-b4b4-4f5b-aff1-e0dc91a440ed",
      "name": "Estructura para el contenido de la publicación",
      "type": "n8n-nodes-base.set",
      "position": [
        5344,
        3048
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e1175ea6-28d7-4f65-a7ec-8d96b54ac5ee",
              "name": "slug",
              "type": "string",
              "value": "={{ $('Create a post').item.json.slug }}"
            },
            {
              "id": "3930a46b-d12f-40d2-9322-87b5584ffc82",
              "name": "link",
              "type": "string",
              "value": "={{ $('Create a post').item.json.link }}"
            },
            {
              "id": "3dfa5ddb-25da-4db7-bba0-285bca546ffc",
              "name": "source_url",
              "type": "string",
              "value": "={{ $('Upload Media to Wordpress').item.json.source_url }}"
            },
            {
              "id": "89706a1a-09a4-4cee-85cc-36be3f86134c",
              "name": "categoryName",
              "type": "string",
              "value": "={{ $('If1').item.json.categoryName }}"
            },
            {
              "id": "97c78752-b4bf-4d52-95bb-d12af676f320",
              "name": "timestamp",
              "type": "string",
              "value": "={{ $json.formatted }}"
            },
            {
              "id": "2de0d9b1-743e-4dac-9a6f-b017546a7b6c",
              "name": "title",
              "type": "string",
              "value": "={{ $('Create a post').item.json.title.rendered }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c6c4f627-a4ea-47c4-ad60-a6b0922e54f4",
      "name": "Anexar datos de publicación en la hoja",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        5568,
        3048
      ],
      "parameters": {
        "columns": {
          "value": {
            "Link": "={{ $json.link }}",
            "Slug": "={{ $json.slug }}",
            "Title": "={{ $json.title}}",
            "Category": "={{ $json.categoryName }}",
            "Timestamp": "={{ $json.timestamp }}",
            "Featured Image": "={{ $json.source_url }}"
          },
          "schema": [
            {
              "id": "Timestamp",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Featured Image",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Featured Image",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Category",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Category",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Slug",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Slug",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 958859474,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1aaSBeDXtU9n4wmgoH-mn3ett54vCDCMwxzlyhJCiPqA/edit#gid=958859474",
          "cachedResultName": "Blogs Data"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1aaSBeDXtU9n4wmgoH-mn3ett54vCDCMwxzlyhJCiPqA",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1aaSBeDXtU9n4wmgoH-mn3ett54vCDCMwxzlyhJCiPqA/edit?usp=drivesdk",
          "cachedResultName": "Auto Blogging (DevAlly)"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "Gs7mfT220sbLQ7PS",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "1c0e6c33-af52-49b7-b360-c6a3e0b9a2f3",
      "name": "Generar el tema usando LLM",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        608,
        3048
      ],
      "parameters": {
        "text": "=Generate one blog topic idea based on the latest tech trends, updates, or common mistakes \nthat would attract readers to our agency blog. \nMake sure the topic is related to one of our services:\n- Web Development (Next.js, React, WordPress, performance optimization)\n- Mobile App Development (Flutter, React Native, Android, iOS)\n- Cloud & DevOps (AWS, Azure, CI/CD, serverless)\n- UI/UX Design (Figma, prototyping, accessibility)\n- AI & Automation for Businesses (chatbots, workflow automation, AI in SaaS)\n- Digital Transformation & IT Consulting (enterprise adoption, case studies)\n\nRequirements:\n- The topic must be engaging for both tech and non-tech readers.\n- The search query must be Tavily-friendly and under 350 characters.\n- Focus on fresh, trending, or news-related ideas, not outdated content.\n- Output ONLY valid JSON.\n\nOutput format:\n{\n  \"topic\": \"catchy blog topic idea\",\n  \"search_query\": \"short Tavily-friendly query under 350 characters\"\n}",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=You are a digital strategist and content researcher for a tech agency. \nYour task is to suggest trending and engaging blog topics aligned with our services, \nand generate a Tavily search query that will retrieve the latest articles on that trend. \nAlways return valid JSON."
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "60b4ff17-a30a-4356-8b11-3092bee18c9a",
      "name": "Escribir contenido para la publicación",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2752,
        3048
      ],
      "parameters": {
        "text": "=Here is the article content from Tavily that I want you to regenerate into a proper blog post:\n\nTitle:\n{{ $json.selected_article.title }}\n\nContent:\n{{ $json.selected_article.content }}\n\nPlease rewrite this into polished, factually accurate, SEO-optimized blog content following the system instructions.\n\nHere is the list of existing categories you can choose from:\n{{ $json.category_names }}\n\nIf the article doesn’t fit any of these, create a new category name.\n",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=You are an expert technical content writer for a digital agency blog. \nYour job is to take an input article and regenerate it into a polished, engaging, factually correct, SEO-friendly blog post. \nYou must keep the writing style attractive, accessible, and useful for readers (both tech and non-tech audiences).\n\nFormatting & Output Rules:\n- The blog body must be formatted in clean HTML (only headings, paragraphs, lists, links, emphasis, etc.).\n- Do not include <html>, <head>, or <body> wrappers. Only output the content section.\n- Optimize readability with headings (<h2>, <h3>), short paragraphs, bullet points, and examples.\n- Ensure the content remains fact-based and reflects real, accurate, up-to-date information.\n- Improve SEO by naturally including relevant keywords (without stuffing).\n- Write in a professional yet friendly tone that reflects thought leadership.\n\nExtra Requirements:\n- Create a strong SEO-optimized title.\n- Generate a concise excerpt (meta description, max 160 characters).\n- Suggest a creative and descriptive image prompt for a featured image (suitable for AI image generation).\n- Suggest 5–8 SEO keywords related to the article.\n- Choose the most appropriate blog category from the given list of categories. \n  - If a category from the list fits, return it and set isExistingCategory to true.\n  - If none fit, create a new category name and set isExistingCategory to false.\n\nFinal Output:\nReturn everything strictly as JSON in the following format:\n{\n  \"title\": \"SEO optimized blog title\",\n  \"excerpt\": \"Short meta description for SEO\",\n  \"keywords\": [\"keyword1\", \"keyword2\", \"keyword3\"],\n  \"image_prompt\": \"A descriptive prompt for generating a featured image\",\n  \"isExistingCategory\": true,\n  \"categoryName\": \"Selected or newly created category\",\n  \"content\": \"<h2>Heading</h2><p>Blog content in clean HTML format...</p>\"\n}"
            }
          ]
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.7
    },
    {
      "id": "c1dcd79d-6bf9-4126-82b9-742ae9f152af",
      "name": "Estructurar publicación seleccionada",
      "type": "n8n-nodes-base.set",
      "position": [
        2528,
        3048
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b7b81f9c-e613-4da6-9c5a-af4b198f7cb1",
              "name": "selected_article",
              "type": "object",
              "value": "={{ $('Structure Tavily Results').item.json.results[ $('If Article Not None').item.json.data['Which article should be finalized? (Select the Article Number)']-1] }}"
            },
            {
              "id": "603edf55-1303-4efe-9651-1cae6f7fed0f",
              "name": "categories",
              "type": "array",
              "value": "={{ $json.data }}"
            },
            {
              "id": "e3062b34-8ea6-4e49-8db3-80340ae40cb5",
              "name": "category_names",
              "type": "string",
              "value": "={{ $json.data.map(i => i.name).join(\", \") }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d2dece02-38e4-412b-bd41-dce313b35183",
      "name": "Estructurar resultados de Tavily",
      "type": "n8n-nodes-base.set",
      "position": [
        1184,
        2976
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "fce26099-b752-44e7-9278-f46a80c11593",
              "name": "results",
              "type": "array",
              "value": "={{ $json.results }}"
            },
            {
              "id": "825bfb3d-18c8-48aa-ade1-0cfb3d909149",
              "name": "query",
              "type": "string",
              "value": "={{ $json.query }}"
            },
            {
              "id": "ae64d6d8-7dc8-4bd0-91ce-d532cc0dd14a",
              "name": "request_id",
              "type": "string",
              "value": "={{ $json.request_id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "921c88fe-1d56-4fae-8cb9-55ba325a1ea5",
      "name": "Estructurar contenido de la publicación",
      "type": "n8n-nodes-base.set",
      "position": [
        3104,
        3048
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "eb24cd37-0683-40a4-900f-190c641bc088",
              "name": "title",
              "type": "string",
              "value": "={{ $json.output.title }}"
            },
            {
              "id": "718a4280-222e-4afb-88d0-e48cc5b78466",
              "name": "excerpt",
              "type": "string",
              "value": "={{ $json.output.excerpt }}"
            },
            {
              "id": "409c349e-e19f-43b5-99c3-74a2bec36570",
              "name": "keywords",
              "type": "array",
              "value": "={{ $json.output.keywords }}"
            },
            {
              "id": "50af352e-86e6-4f0b-92e9-5b2ecb22ab18",
              "name": "image_prompt",
              "type": "string",
              "value": "={{ $json.output.image_prompt }}"
            },
            {
              "id": "a53d7bd9-f909-4c58-ba91-0f21772886d4",
              "name": "content",
              "type": "string",
              "value": "={{ $json.output.content }}"
            },
            {
              "id": "f1a2355d-bae0-42df-98ac-346472d50049",
              "name": "isExistingCategory",
              "type": "boolean",
              "value": "={{ $json.output.isExistingCategory }}"
            },
            {
              "id": "68a8a296-4ab7-4e95-8647-e0a7ba91ce7c",
              "name": "categoryName",
              "type": "string",
              "value": "={{ $json.output.categoryName }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4b120cc5-79a6-436d-af9a-4a1133be97d6",
      "name": "Obtener todos los usuarios",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4896,
        2832
      ],
      "parameters": {
        "url": "https://devally.in/wp-json/wp/v2/users",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "wordpressApi"
      },
      "credentials": {
        "wordpressApi": {
          "id": "UyfbTTKctTIA1rEx",
          "name": "Wordpress account 2"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c0c4928b-c9e5-4263-845c-26bfe3a3fa34",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        2912
      ],
      "parameters": {
        "color": 4,
        "width": 464,
        "height": 400,
        "content": "## Auto-Blogger for Wordpress\nThis template automatically generates and publishes SEO-optimized blog posts to your WordPress website—powered by Gemini LLM, Tavily search, and AI image generation. It is perfect for agencies, bloggers, and businesses aiming to keep their blogs fresh with trending, value-driven content!\n\n### Key Features:\n- Scheduled, hands-free operation (customizable frequency)\n- AI-powered blog topic ideation using Gemini LLM\n- Research with Tavily for the latest articles and trends\n- Telegram-based human-in-the-loop content curation\n- Fully AI-regenerated, SEO-rich articles\n- Automated image generation (Gemini/OpenAI)\n- Direct publishing to WordPress (with dynamic categories, tags, featured images)\n- Audit trail in Google Sheets + Telegram notifications"
      },
      "typeVersion": 1
    },
    {
      "id": "2dc43d23-9ee0-4acc-9c56-55df5cd9396f",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        608,
        2720
      ],
      "parameters": {
        "width": 672,
        "height": 208,
        "content": "#### Topic Generation\nGemini LLM generates a unique, trending blog topic based on your agency’s services and the latest tech developments.\n\nIt offers a Tavily-friendly search query to pull in fresh supporting articles.\n\nTavily fetches 4 recent, relevant articles (in the background) using the AI-generated search query."
      },
      "typeVersion": 1
    },
    {
      "id": "588909f8-e45b-4a5c-9c85-b418d96e46cf",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1600,
        2768
      ],
      "parameters": {
        "width": 368,
        "content": "#### Telegram Confirmation\nYou receive a Telegram message listing the 4 suggested articles.\n\nSelect the best article or 'None' if unsuitable. This step ensures quality control and creative input."
      },
      "typeVersion": 1
    },
    {
      "id": "e67a4163-20c1-43a4-940d-e1b8fc6d68c9",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2368,
        2816
      ],
      "parameters": {
        "width": 480,
        "content": "### AI Content Rewriting\nThe selected article is passed on. Gemini LLM:\n- Rewrites the article to be SEO-optimized and factually accurate\n- Suggests a title, meta description, keywords, and image prompt\n- Determines the right category (creates a new one if needed)\n- Outputs clean HTML for direct publishing"
      },
      "typeVersion": 1
    },
    {
      "id": "5ff37c0b-5713-472f-82b4-4adf5dacdb53",
      "name": "Nota adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3392,
        2848
      ],
      "parameters": {
        "width": 336,
        "height": 96,
        "content": "### AI Featured Image Generation\nGemini or OpenAI creates a unique featured image based on the suggested prompt."
      },
      "typeVersion": 1
    },
    {
      "id": "1e9740b2-03ec-4a9b-a17b-5f6d62cadd74",
      "name": "Nota adhesiva5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4256,
        2800
      ],
      "parameters": {
        "width": 528,
        "content": "### WordPress Publishing\n\nThe full post (title, content, excerpt, category, tags, featured image) is published to your WordPress site instantly.\n\nChange the Author for the created Blog Post."
      },
      "typeVersion": 1
    },
    {
      "id": "678fbffe-6014-4505-afed-3e292cbbf122",
      "name": "Nota adhesiva6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5504,
        2848
      ],
      "parameters": {
        "width": 400,
        "height": 144,
        "content": "### Telegram Notification\n\nSends a Telegram message with the new post details and a link to the audit Google Sheet, closing the feedback loop."
      },
      "typeVersion": 1
    },
    {
      "id": "01fb5fd8-8c53-48c7-824a-72ea469f2217",
      "name": "Nota adhesiva7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -368,
        2352
      ],
      "parameters": {
        "color": 6,
        "width": 816,
        "height": 432,
        "content": "## How to Use\n\nConnect All Required Credentials:\n- WordPress (API access)\n- Gemini and/or OpenAI APIs for AI and image generation\n- Google Sheets (OAuth)\n- Telegram Bot (API)\n- Tavily Search (API Key)\n- Set Up Your Schedule:\n- Configure the Schedule Trigger node for your preferred posting frequency.\n\n## Customize Your Agency Services:\n- Update the prompt in the ‘Generate the Topic using LLM’ node to reflect your niche/services.\n\n## Deploy & Monitor:\n- Activate the workflow. Approve articles via Telegram and monitor published posts/logs in your Google Sheet."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "2110baac-ad2a-439a-9676-1bfc87e89e80": {
      "main": [
        [
          {
            "node": "7b9cd83a-8cfd-4db9-a336-9fede02362d1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "e0d9bc92-c6c0-4b42-a238-a27447b521aa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e747e3a1-c579-45cf-90a3-ce1eca7bcbcd": {
      "main": [
        [
          {
            "node": "f1f2a2d1-2ccf-4b3f-9945-57920beba6bf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "65f4b4e2-2a9b-4c6a-ad82-b53b07b684e8": {
      "main": [
        [
          {
            "node": "0e5e2dd1-3b7a-4172-ba3b-009582d723b2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a7b69718-35eb-407d-af24-8353aa262d49": {
      "main": [
        [
          {
            "node": "1c0e6c33-af52-49b7-b360-c6a3e0b9a2f3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5745c673-75ce-4b52-9722-a11430b9dc31": {
      "main": [
        [
          {
            "node": "2b1d872b-ac15-4d09-9878-121b6f0ace6c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "59b363e1-65cf-4de3-8195-4a8eb5348afe": {
      "main": [
        [
          {
            "node": "e2e139fd-1d9e-4f0d-afca-ab6bb6660702",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "1c0e6c33-af52-49b7-b360-c6a3e0b9a2f3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8207e110-6077-4df9-b8e3-2aba2956b8b5": {
      "main": [
        [
          {
            "node": "c1dcd79d-6bf9-4126-82b9-742ae9f152af",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d15e4afe-9d26-4ecb-a301-a86a841ef5c6": {
      "main": [
        []
      ]
    },
    "68a44727-00d0-4ffd-b11a-8d4554f4c9e5": {
      "main": [
        [
          {
            "node": "d2dece02-38e4-412b-bd41-dce313b35183",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "921c88fe-1d56-4fae-8cb9-55ba325a1ea5": {
      "main": [
        [
          {
            "node": "2110baac-ad2a-439a-9676-1bfc87e89e80",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f1f2a2d1-2ccf-4b3f-9945-57920beba6bf": {
      "main": [
        [
          {
            "node": "7cc5bf92-cb01-49a9-b81d-aeac023c708a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e2e139fd-1d9e-4f0d-afca-ab6bb6660702": {
      "main": [
        [
          {
            "node": "8207e110-6077-4df9-b8e3-2aba2956b8b5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c1dcd79d-6bf9-4126-82b9-742ae9f152af": {
      "main": [
        [
          {
            "node": "60b4ff17-a30a-4356-8b11-3092bee18c9a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7b9cd83a-8cfd-4db9-a336-9fede02362d1": {
      "main": [
        [
          {
            "node": "d84285a1-5794-4e5b-971b-7e129a81ec29",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8bd77619-d80c-4bb7-9c9e-4304b2b7d346": {
      "main": [
        []
      ]
    },
    "c6ca0aa3-bd60-44d9-8915-9e9b038837cc": {
      "ai_languageModel": [
        [
          {
            "node": "1c0e6c33-af52-49b7-b360-c6a3e0b9a2f3",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "d2dece02-38e4-412b-bd41-dce313b35183": {
      "main": [
        [
          {
            "node": "65f4b4e2-2a9b-4c6a-ad82-b53b07b684e8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "10e96f6d-ffa9-4931-99d5-3f239ebeafce": {
      "ai_outputParser": [
        [
          {
            "node": "1c0e6c33-af52-49b7-b360-c6a3e0b9a2f3",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "2b1d872b-ac15-4d09-9878-121b6f0ace6c": {
      "main": [
        [
          {
            "node": "37f5fa97-b4b4-4f5b-aff1-e0dc91a440ed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "393f36da-77d1-4691-bed5-645823c65875": {
      "ai_languageModel": [
        [
          {
            "node": "60b4ff17-a30a-4356-8b11-3092bee18c9a",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "d4bcb587-56fd-4a16-8da7-1e1e34fc505f": {
      "ai_outputParser": [
        [
          {
            "node": "60b4ff17-a30a-4356-8b11-3092bee18c9a",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "d84285a1-5794-4e5b-971b-7e129a81ec29": {
      "main": [
        [
          {
            "node": "e747e3a1-c579-45cf-90a3-ce1eca7bcbcd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0e5e2dd1-3b7a-4172-ba3b-009582d723b2": {
      "main": [
        [
          {
            "node": "59b363e1-65cf-4de3-8195-4a8eb5348afe",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "60b4ff17-a30a-4356-8b11-3092bee18c9a": {
      "main": [
        [
          {
            "node": "921c88fe-1d56-4fae-8cb9-55ba325a1ea5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e0d9bc92-c6c0-4b42-a238-a27447b521aa": {
      "main": [
        [
          {
            "node": "7b9cd83a-8cfd-4db9-a336-9fede02362d1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1c0e6c33-af52-49b7-b360-c6a3e0b9a2f3": {
      "main": [
        [
          {
            "node": "68a44727-00d0-4ffd-b11a-8d4554f4c9e5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c6c4f627-a4ea-47c4-ad60-a6b0922e54f4": {
      "main": [
        [
          {
            "node": "d15e4afe-9d26-4ecb-a301-a86a841ef5c6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7cc5bf92-cb01-49a9-b81d-aeac023c708a": {
      "main": [
        [
          {
            "node": "5745c673-75ce-4b52-9722-a11430b9dc31",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "37f5fa97-b4b4-4f5b-aff1-e0dc91a440ed": {
      "main": [
        [
          {
            "node": "c6c4f627-a4ea-47c4-ad60-a6b0922e54f4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿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, Varios, 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.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos38
Categoría3
Tipos de nodos15
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34