Automatizar publicaciones en WordPress con n8n
Automatizar publicaciones en WordPress con n8n es una forma poderosa de ahorrar tiempo y mantener tu sitio actualizado. n8n te permite conectar WordPress con casi cualquier fuente de datos o evento.
Aquí te guiaré paso a paso sobre cómo configurar esto, asumiendo que ya tienes una instancia de n8n funcionando (ya sea en la nube o auto-alojada).
—
**Paso 0: Preparación en WordPress (Muy Importante)**
Para que n8n pueda interactuar con tu WordPress, necesitas una forma segura de autenticación. La mejor práctica es usar las **Contraseñas de Aplicación (Application Passwords)**.
1. **Asegúrate de que la API REST esté habilitada:** WordPress tiene su API REST habilitada por defecto desde la versión 4.7. No necesitas hacer nada especial a menos que la hayas deshabilitado previamente con algún plugin o código.
2. **Crear una Contraseña de Aplicación:**
* Inicia sesión en tu panel de administración de WordPress.
* Ve a **Usuarios > Tu Perfil**.
* Desplázate hacia abajo hasta la sección **Contraseñas de Aplicación**.
* Dale un nombre a tu nueva contraseña (por ejemplo, «n8n Automation»).
* Haz clic en **Añadir nueva Contraseña de Aplicación**.
* WordPress te generará una contraseña única. **Cópiala inmediatamente y guárdala en un lugar seguro**, ya que no podrás verla de nuevo. Esta será tu «contraseña» para n8n, y tu nombre de usuario de WordPress será tu «usuario».
—
**Paso 1: Crear un Nuevo Workflow en n8n**
1. Abre tu interfaz de n8n.
2. Haz clic en **»New Workflow»** o en el icono `+` para crear un nuevo flujo de trabajo.
—
**Paso 2: El Nodo de Disparador (Trigger Node)**
Este nodo determina cuándo se ejecutará tu automatización. Algunos ejemplos comunes:
* **Webhook:** Para cuando quieres que otro servicio (Zapier, una app personalizada, un formulario) envíe datos a n8n para crear la publicación.
* **RSS Feed Reader:** Para publicar automáticamente artículos de otro feed RSS en tu WordPress.
* **Cron:** Para ejecutar la automatización en un horario regular (por ejemplo, cada día a las 9 AM).
* **Google Sheets / Airtable:** Para leer filas de una hoja de cálculo y convertirlas en publicaciones.
* **Email:** Para crear posts a partir de correos electrónicos entrantes.
**Ejemplo: Usaremos un nodo `Webhook` para este tutorial, lo que nos permitirá probarlo manualmente fácilmente.**
1. Busca y selecciona el nodo **Webhook**.
2. Configura el método HTTP a **POST** (es común enviar datos con POST).
3. Copia la URL del Webhook que n8n te proporciona. La usaremos para enviar datos de prueba.
—
**Paso 3: El Nodo de WordPress (WordPress Node)**
Este es el corazón de la integración.
1. Haz clic en el `+` después del nodo `Webhook` y busca el nodo **WordPress**.
2. **Configurar Credenciales de WordPress:**
* En el nodo WordPress, haz clic en **»Create New Credential»**.
* En el campo **»WordPress Base URL»**, introduce la URL completa de tu sitio WordPress (por ejemplo, `https://tusitio.com`).
* En el campo **»User Name»**, introduce el nombre de usuario de WordPress para el cual generaste la contraseña de aplicación.
* En el campo **»Password»**, pega la Contraseña de Aplicación que generaste en el Paso 0.
* Haz clic en **»Save»**.
3. **Configurar la Operación de Publicación:**
* En el nodo WordPress, asegúrate de que **»Operation»** esté configurado como **»Create»**.
* En **»Resource»**, selecciona **»Post»**.
4. **Mapear los Datos del Post:**
Aquí es donde defines qué información del disparador se convierte en qué parte de tu publicación de WordPress.
* **Title (Título):** Haz clic en el engranaje al lado del campo, selecciona **»Add Expression»** e introduce `{{ $json.title }}`. (Asumimos que tu Webhook enviará un campo llamado `title`).
* **Content (Contenido):** De manera similar, introduce `{{ $json.content }}`.
* **Status (Estado):** Puedes poner «publish» para publicar inmediatamente, o «draft» para dejarlo como borrador. Puedes usar una expresión si tu disparador envía un estado (`{{ $json.status }}`).
* **Categories (Categorías):** Si tu Webhook envía IDs o nombres de categorías, puedes mapearlos. Por ejemplo, `{{ $json.categories }}` (si es un array de IDs) o buscar la opción de «Name» si necesitas mapear por nombre.
* **Tags (Etiquetas):** Similar a las categorías, `{{ $json.tags }}`.
* **Featured Image ID (Imagen Destacada):** Esto es un poco más complejo si necesitas subir la imagen primero. Ver la sección **»Consideraciones Avanzadas»**.
—
**Paso 4: Probar el Workflow**
1. Asegúrate de que tu n8n Workflow esté en modo **»Test»** (botón «Test Workflow» o «Execute Workflow» en la esquina superior derecha).
2. **Enviar Datos de Prueba al Webhook:**
* Utiliza una herramienta como Postman, Insomnia, `curl` o incluso un sitio como `webhook.site` o `requestb.in` (si quieres ver el JSON) para enviar una solicitud POST a la URL de tu Webhook (la que copiaste en el Paso 2).
* El cuerpo de la solicitud POST debe ser JSON y contener al menos los campos `title` y `content` (y cualquier otro que hayas mapeado).
**Ejemplo de JSON para enviar:**
«`json
{
«title»: «Mi Primera Publicación Automatizada con n8n»,
«content»: «Este es el contenido de mi publicación, creada automáticamente usando n8n y la API de WordPress. ¡Es genial!»,
«status»: «publish»,
«categories»: [1, 2],
«tags»: [«n8n», «automatización», «wordpress»]
}
«`
*Nota: Para categorías y etiquetas, los números (1, 2) serían los IDs de tus categorías/etiquetas existentes en WordPress. Puedes encontrar los IDs inspeccionando la URL cuando editas una categoría/etiqueta, o usando la API REST de WordPress (`tusitio.com/wp-json/wp/v2/categories`).*
3. **Verificar en n8n:** n8n debería mostrar los datos pasando por los nodos. Si el nodo de WordPress se ejecuta correctamente, verás una salida con el ID de la nueva publicación, la URL, etc.
4. **Verificar en WordPress:** Inicia sesión en tu panel de WordPress y ve a «Entradas». Deberías ver la nueva publicación allí.
—
**Paso 5: Activar el Workflow**
Una vez que hayas probado y confirmado que todo funciona como esperas, haz clic en el botón **»Activate Workflow»** (en la esquina superior derecha de la pantalla de n8n). Esto pondrá tu automatización en vivo.
—
**Consideraciones Avanzadas y Ejemplos**
* **Subir una Imagen Destacada:**
1. **Nodo adicional antes de WordPress:** Si tu fuente de datos te da una URL de imagen, puedes usar el nodo **HTTP Request** para descargar la imagen.
2. **Nodo WordPress (Media):** Luego, añade un segundo nodo **WordPress**, pero selecciona **»Resource: Media»** y **»Operation: Upload»**. Envía los datos binarios de la imagen descargada. Este nodo te devolverá el `id` de la imagen subida.
3. **Nodo WordPress (Post):** Finalmente, en tu nodo WordPress original para crear el post, mapea el `id` de la imagen que obtuviste del nodo Media a **»Featured Image ID»**.
* **Usar Google Sheets como Fuente:**
1. **Trigger:** Usa el nodo `Google Sheets Trigger` para cuando se añada una nueva fila, o `Cron` + `Google Sheets` para leer todas las filas.
2. **Data Mapping:** Mapea las columnas de tu hoja (`{{ $json.ColumnaDeTitulo }}`, `{{ $json.ColumnaDeContenido }}`) a los campos de WordPress.
* **Contenido Generado por IA (ChatGPT/OpenAI):**
1. **Trigger:** Un `Webhook` (para activar manualmente o desde otra herramienta) o `Cron`.
2. **Nodo OpenAI:** Añade un nodo `OpenAI` (o `ChatGPT`) para generar el título y/o el contenido del post basándose en un prompt.
3. **Set Node:** Usa un nodo `Set` para formatear la salida de OpenAI en los campos `title` y `content` antes de pasarlos al nodo de WordPress.
* **Formato HTML en el Contenido:** La API de WordPress generalmente acepta HTML en el campo `content`, así que si tu fuente de datos proporciona contenido HTML, puedes mapearlo directamente.
* **Error Handling:** Añade un nodo `IF` después del nodo WordPress para verificar si la publicación se creó correctamente. Si no, puedes usar nodos como `Send Email` o `Telegram` para enviarte una notificación de error.
* **Actualizar Posts Existentes:**
* En el nodo WordPress, selecciona **»Operation: Update»**.
* Necesitarás el **»ID»** del post a actualizar.
* Luego, mapea los campos que deseas cambiar.
—
¡Con esto, tienes una base sólida para automatizar tus publicaciones en WordPress con n8n! Las posibilidades son casi ilimitadas.

