Automatización de la generación y publicación de contenido de blog con OpenAI y WordPress

Intermedio

Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 6 nodos.Utiliza principalmente nodos como Set, OpenAi, WordPress, ManualTrigger. Usar OpenAI y WordPress para automatizar la generación y publicación de contenido para blog

Requisitos previos
  • Clave de API de OpenAI
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
{
  "nodes": [
    {
      "name": "Activador Manual",
      "type": "n8n-nodes-base.manualTrigger",
      "notes": {
        "text": "### 1. Start Workflow\n\nThis `Manual Trigger` node is used for easy testing. \n\n**To trigger the workflow manually:** Click the 'Execute Workflow' button in the top right.\n\n**For production:** Consider replacing this with a `Cron` node (for scheduled posts) or a `Webhook` node (to trigger from another app, like a Google Sheet entry or a custom form).\n",
        "position": "right"
      },
      "position": [
        240,
        300
      ],
      "parameters": {},
      "typeVersion": 1,
      "id": "Activador-Manual-0"
    },
    {
      "name": "Establecer Tema del Blog",
      "type": "n8n-nodes-base.set",
      "notes": {
        "text": "### 2. Define Blog Topic\n\nThis `Set` node defines the core topic for your blog post.\n\n**How to use:**\n* **For testing:** Directly edit the 'Value' field with your desired topic.\n* **For production:** You can replace this fixed value with data from a previous node (e.g., a Google Sheet, an Airtable record, or a Webhook input) using an expression like `{{ $json.yourInputFieldName }}`.",
        "position": "right"
      },
      "position": [
        460,
        300
      ],
      "parameters": {
        "values": [
          {
            "name": "blogTopic",
            "value": "The Future of Remote Work: Trends and Challenges"
          }
        ],
        "options": {}
      },
      "typeVersion": 2,
      "id": "Establecer-Tema-del-Blog-1"
    },
    {
      "name": "Generar Título",
      "type": "n8n-nodes-base.openAi",
      "notes": {
        "text": "### 3. Generate Blog Post Title (AI)\n\nThis `OpenAI` node calls the OpenAI API to generate a compelling title based on the `blogTopic`.\n\n**Setup:**\n1.  **OpenAI Credential:** Click on 'Credentials' (above the 'Model' dropdown) and select 'New Credential'. Provide your OpenAI API Key (starts with `sk-`). Save it.\n2.  **Model:** You can change `gpt-3.5-turbo` to `gpt-4o` for potentially better results (but higher cost), or if you prefer a different model.\n\n**Output:** The generated title will be available in `{{ $node[\"Generate Title\"].json.choices[0].message.content }}`.",
        "position": "right"
      },
      "position": [
        700,
        300
      ],
      "parameters": {
        "model": "gpt-3.5-turbo",
        "options": {},
        "messages": [
          {
            "role": "system",
            "content": "You are a professional blogger. Your task is to generate concise and engaging blog post titles."
          },
          {
            "role": "user",
            "content": "Generate a blog post title for the topic: {{ $json.blogTopic }}"
          }
        ]
      },
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "resolve": false
        }
      },
      "typeVersion": 1,
      "id": "Generar-T-tulo-2"
    },
    {
      "name": "Generar Cuerpo",
      "type": "n8n-nodes-base.openAi",
      "notes": {
        "text": "### 4. Generate Blog Post Body (AI)\n\nThis second `OpenAI` node generates the full content of your blog post.\n\n**Setup:**\n1.  **Credentials:** Select the same OpenAI credential you created for the 'Generate Title' node.\n2.  **Model:** Ensure this matches your preference (e.g., `gpt-3.5-turbo` or `gpt-4o`).\n3.  **Prompts:** The 'User' prompt feeds in both the original topic and the title generated in the previous step, providing context for the AI.\n\n**Output:** The full blog post body will be in `{{ $node[\"Generate Body\"].json.choices[0].message.content }}`.",
        "position": "right"
      },
      "position": [
        940,
        300
      ],
      "parameters": {
        "model": "gpt-3.5-turbo",
        "options": {},
        "messages": [
          {
            "role": "system",
            "content": "You are a professional blogger. Write a detailed, well-structured blog post with an introduction, several body paragraphs, and a clear conclusion. Use Markdown for headings, bold text, and lists. Ensure the content is engaging and informative for a general audience."
          },
          {
            "role": "user",
            "content": "Write a blog post about: {{ $json.blogTopic }}\n\nUse the title: {{ $node[\"Generate Title\"].json.choices[0].message.content }}"
          }
        ]
      },
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "resolve": false
        }
      },
      "typeVersion": 1,
      "id": "Generar-Cuerpo-3"
    },
    {
      "name": "Preparar Contenido",
      "type": "n8n-nodes-base.set",
      "notes": {
        "text": "### 5. Prepare Content for Publishing\n\nThis `Set` node consolidates and renames the generated title and body into easily accessible fields (`blogPostTitle` and `blogPostBody`). This makes it cleaner to reference them in the final WordPress publishing step.\n\n**No specific setup needed here**, it just maps the data from the previous AI nodes.",
        "position": "right"
      },
      "position": [
        1180,
        300
      ],
      "parameters": {
        "values": [
          {
            "name": "blogPostTitle",
            "value": "={{ $node[\"Generate Title\"].json.choices[0].message.content }}"
          },
          {
            "name": "blogPostBody",
            "value": "={{ $node[\"Generate Body\"].json.choices[0].message.content }}"
          }
        ],
        "options": {}
      },
      "typeVersion": 2,
      "id": "Preparar-Contenido-4"
    },
    {
      "name": "Publicar en WordPress",
      "type": "n8n-nodes-base.wordPress",
      "notes": {
        "text": "### 6. Publish to WordPress\n\nThis `WordPress` node creates a new post on your WordPress site using the AI-generated content.\n\n**Setup:**\n1.  **WordPress Credential:** Click 'Credentials' and select 'New Credential'.\n    * **Authentication:** Choose `User & Password`.\n    * **WordPress URL:** Enter your full WordPress site URL (e.g., `https://yourdomain.com`).\n    * **Username:** Your WordPress admin username.\n    * **Password:** Your WordPress admin password.\n2.  **Title & Content:** These fields are pre-filled with expressions to pull data from the 'Prepare Content' node.\n3.  **Status:** Set to `publish` to make the post live immediately. Change to `draft` if you want to review it manually before publishing.\n\n**After successful execution, visit your WordPress site to see the new post!**",
        "position": "right"
      },
      "position": [
        1420,
        300
      ],
      "parameters": {
        "title": "={{ $json.blogPostTitle }}",
        "status": "publish",
        "content": "={{ $json.blogPostBody }}",
        "options": {},
        "resource": "post",
        "operation": "create"
      },
      "credentials": {
        "wordPressApi": {
          "id": "YOUR_WORDPRESS_CREDENTIAL_ID",
          "resolve": false
        }
      },
      "typeVersion": 2,
      "id": "Publicar-en-WordPress-5"
    }
  ],
  "pinData": {},
  "version": 1,
  "connections": {
    "Generar-Cuerpo-3": {
      "main": [
        [
          {
            "node": "Preparar-Contenido-4",
            "type": "main"
          }
        ]
      ]
    },
    "Generar-T-tulo-2": {
      "main": [
        [
          {
            "node": "Generar-Cuerpo-3",
            "type": "main"
          }
        ]
      ]
    },
    "Activador-Manual-0": {
      "main": [
        [
          {
            "node": "Establecer-Tema-del-Blog-1",
            "type": "main"
          }
        ]
      ]
    },
    "Establecer-Tema-del-Blog-1": {
      "main": [
        [
          {
            "node": "Generar-T-tulo-2",
            "type": "main"
          }
        ]
      ]
    },
    "Preparar-Contenido-4": {
      "main": [
        [
          {
            "node": "Publicar-en-WordPress-5",
            "type": "main"
          }
        ]
      ]
    }
  }
}
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?

Intermedio - 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.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos6
Categoría2
Tipos de nodos4
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Autor
Piotr Sobolewski

Piotr Sobolewski

@piotrsobolewski

AI PhD with 7 years experience as a game dev CEO, currently teaching, helping others and building something new.

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34