Ejercicio de RSS en n8n: crea un resumen que resista ejecuciones repetidas
Ejercicio editorial de RSS en n8n para practicar estado persistente, reintentos de correo, pruebas secuenciales y responsabilidades de mantenimiento.

Comprobado con las fuentes citadas el .
Ejercicio editorial: define tu resumen RSS en n8n
Crea un workflow de RSS en n8n que detecte entradas, guarde un resumen antes de enviarlo y recuerde el estado de entrega entre ejecuciones secuenciales. Este es un ejercicio editorial basado en funcionalidades documentadas; el workflow propuesto no se ha ejecutado ni validado.
Necesitas un entorno n8n con los nodos descritos a continuación, un feed público accesible, acceso a Data Tables del proyecto, credenciales SMTP configuradas según el proveedor y un destinatario de prueba. n8n documenta RSS Read para leer la URL de una publicación y Send Email para enviar mediante SMTP. Algunos proveedores requieren una configuración SMTP adicional o una contraseña de aplicación.
Confirma la disponibilidad de los nodos antes de empezar: en general, la documentación facilitada no especifica versión, edición ni plan. Limita este ejercicio a un feed y ejecuciones secuenciales; quedan fuera el procesamiento concurrente, la unicidad atómica, la entrega transaccional y el funcionamiento a escala de producción.
Sources: n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.rssfeedread.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.sendemail.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/credentials/send-email/README.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.datatable/rows.md at main · n8n-io/n8n-docs · GitHub
Prepara claves estables y separa el estado

n8n documenta Data Tables como almacenamiento persistente del proyecto y permite consultar, insertar y actualizar filas de forma condicional. Son adecuadas para necesidades de almacenamiento ligeras o moderadas; los miembros del proyecto pueden acceder a sus tablas de forma predeterminada y no se admite el acceso directo desde el nodo Code. Los siguientes esquemas y datos de prueba son propuestas editoriales.
Crea una tabla entries con feedKey, entryKey, title, link y digestId. Usa feedKey junto con entryKey como identidad, comprobándola mediante consultas e inserciones secuenciales. Crea una tabla deliveries con digestId, entryKeys, renderedBody, status y lastError. Creemos que separar la detección de la entrega facilita revisar la decisión de reintento.
Elige un identificador estable disponible en tu feed, con una política explícita de alternativa; rechaza las entradas sin una clave aceptable. No uses únicamente la posición en el array ni la fecha de publicación. Utiliza estos datos de prueba ficticios, en los que cada letra conserva el mismo título y enlace entre ejecuciones.
| feedKey | entryKey | title | link |
|---|---|---|---|
| practice-feed | A | Actualización alfa | Enlace estable al artículo A |
| practice-feed | B | Actualización beta | Enlace estable al artículo B |
| practice-feed | C | Actualización gamma | Enlace estable al artículo C |
Sources: n8n-docs/docs/build/work-with-data/data-tables.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.datatable/README.md at main · n8n-io/n8n-docs · GitHub, skills/skills/n8n-data-tables-official/references/DEDUP_PATTERNS.md at main · n8n-io/skills · GitHub
Solución sugerida: programa, guarda y envía
Para la programación, la guía de 2026 del proveedor FlowKit describe Schedule Trigger seguido de RSS Read y advierte que los campos devueltos por cada feed varían. Este diseño utiliza ese patrón programado en lugar de un nodo RSS Feed Trigger de n8n. La configuración exacta de la programación, los ajustes de zona horaria y los controles de publicación quedan fuera de este ejercicio.
Sigue esta secuencia sugerida. Las operaciones de Data Table permiten realizar las transiciones de estado, Aggregate puede reunir los datos de los elementos en una lista y Send Email proporciona el envío mediante SMTP. La agregación por sí sola no da formato al mensaje ni lo envía.
Para este ejercicio de RSS en n8n, nuestro diseño de enrutamiento sugerido utiliza workflows programados separados para la detección y la entrega, ejecutados secuencialmente y sin solaparse. Inicia el workflow de entrega directamente desde su propio Schedule Trigger y consulta las entregas pendientes, sin pasar por RSS Read ni depender de la salida de detección. Esta decisión editorial mantiene accesibles las entregas guardadas cuando falla la consulta del feed o la detección no produce elementos.
- Conecta Schedule Trigger a RSS Read y asigna los campos disponibles del feed a la estructura de los datos de prueba.
- Busca cada clave compuesta de entrada. Activa Always Output Data en la consulta Get sin resultados, crea ramas explícitas e inserta solo las entradas aún no detectadas; mantén estructuras de salida coherentes entre las ramas.
- Recupera las entradas sin digestId. Utiliza la opción All Item Data de Aggregate para conservar juntos feedKey, entryKey, title y link en cada elemento de la lista y, después, genera el cuerpo del correo en texto sin formato.
- Guarda una entrega pendiente con su digestId, las claves de las entradas y renderedBody; asocia esas entradas con ese digestId antes de enviar.
- En el workflow de entrega programado independiente, consulta las entregas cuyo status sea pending. Si no hay ninguna, termina sin enviar; de lo contrario, utiliza el contenido guardado de cada entrega.
- Configura Send Email con tu credencial SMTP, la operación Send, una dirección de remitente autorizada, tu destinatario de prueba, un asunto como Resumen RSS de práctica y el formato Text. Asigna al cuerpo del mensaje el renderedBody guardado de la entrega pendiente.
- Cuando Send Email finalice correctamente, actualiza la entrega de ese digestId a sent. Dirige los fallos de envío por la salida de error, manteniendo el estado pending y registrando lastError.
Sources: n8n RSS Read & RSS Feed Trigger node documentation | FlowKit, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.datatable/README.md at main · n8n-io/n8n-docs · GitHub, skills/skills/n8n-data-tables-official/references/DEDUP_PATTERNS.md at main · n8n-io/skills · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.datatable/rows.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.aggregate.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.sendemail.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/build/understand-workflows/workflow-components/work-with-nodes.md at main · n8n-io/n8n-docs · GitHub
Prueba ejecuciones secuenciales repetidas y revisa los fallos

Realiza las siguientes comprobaciones sugeridas y registra los resultados reales. Aquí, sent significa que el nodo Send Email ha finalizado correctamente, no que se haya confirmado la recepción en la bandeja de entrada. El contenido guardado de una entrega pendiente debe seguir disponible aunque sus entradas desaparezcan del feed.
| Entrada de prueba | Observación requerida |
|---|---|
| Primera ejecución: A/B | Un resumen que contiene A y B |
| Siguiente ejecución: B/A | Ninguna entrega adicional |
| Siguiente ejecución: B/C/A | El siguiente resumen contiene solo C |
| Datos de prueba sin una clave de identidad aceptable | Se rechazan sin insertar una entrada ni enviarla |
| Entrada nueva; provoca un fallo SMTP | Entrega pendiente que puede consultarse y error registrado |
| Restaura las credenciales; omite la entrada del feed | Un intento posterior utiliza el contenido guardado |
| Provoca un fallo de RSS Read con una entrega pendiente | Revisa la ruta de error de la consulta; el estado existente permanece sin cambios |
| Tras el fallo de la consulta, ejecuta el workflow de entrega de forma independiente | La entrega pendiente existente puede volver a intentarse con su contenido guardado |
Si faltan entradas, revisa la salida vacía de Get, las estructuras de las ramas y las claves guardadas. Aquí, Always Output Data debe activarse en la consulta; n8n advierte que utilizarlo en nodos IF puede crear bucles infinitos. Usa Continue using error output para dirigir los fallos de forma explícita; Continue, en cambio, transmite los últimos datos válidos.
Asigna un workflow de errores para los fallos que no se gestionen por otra vía. La documentación de n8n indica que los errores de nodo gestionados no lo activan automáticamente. La asignación programática de un workflow de errores está documentada para n8n 2.29.0+; las instancias anteriores utilizan los ajustes del workflow.
Sources: n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.datatable/README.md at main · n8n-io/n8n-docs · GitHub, skills/skills/n8n-data-tables-official/references/DEDUP_PATTERNS.md at main · n8n-io/skills · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.sendemail.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/build/understand-workflows/workflow-components/work-with-nodes.md at main · n8n-io/n8n-docs · GitHub, skills/skills/n8n-error-handling-official/references/ERROR_WORKFLOWS.md at main · n8n-io/skills · GitHub
Reflexiona sobre la entrega incierta y asigna responsables
Reflexión sugerida: SMTP acepta el mensaje, pero falla la actualización del estado a sent. Explica por qué un reintento podría duplicar el correo y documenta quién decide si se reenvía o se concilia el registro. Las fuentes facilitadas no establecen una entrega SMTP exactamente una vez ni una coordinación atómica entre el envío y las actualizaciones de estado.
En nuestra opinión, un envío incierto necesita una persona designada para tomar decisiones antes de funcionar sin supervisión. Completa esta lista editorial de traspaso junto con los resultados de las pruebas que hayas registrado.
Sources: n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.datatable/README.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.sendemail.md at main · n8n-io/n8n-docs · GitHub


