El flujo de trabajo comienza con un disparador que se configura en intervalos horarios, por lo que hay mucho tiempo para que registre la acción de marcar como leído. Esos correos electrónicos se enviaron a la misma dirección de correo con intervalos raros diferentes durante aproximadamente una semana
@Arsen , ¿cómo va esa cuestión?
¿Conseguiste resolver? Cuéntame si tu instancia está en la v 2.23 y si puedes compartir tu json sin los datos sensibles
Un patrón que vale la pena añadir además del enfoque de marcar como leído: almacena cada messageId procesado en una Hoja de Google (o utiliza los datos estáticos del flujo de n8n) y verifica su existencia al inicio de cada ejecución antes de hacer nada. Incluso si Gmail tiene un error de sincronización en la lectura/escritura, el verificación de deduplicación lo detectará.
El flujo sería: obtener correos -
procesar -
para cada mensaje, verificar si su ID ya existe en tu registro -
si existe, omitirlo; de lo contrario, enviar la respuesta y añadir el ID al registro. Esto hace que el flujo sea idempotente independientemente de lo que diga el estado de lectura de Gmail. Los datos estáticos son la opción más sencilla si no deseas usar un almacén externo - $getWorkflowStaticData('global').processedIds como un array al que añades el ID después de cada respuesta exitosa.
El filtro de no leído es el problema. Cuando n8n responde al hilo, Gmail marca esa respuesta como un nuevo mensaje no leído, por lo que tu disparador recoge el mismo hilo nuevamente la próxima hora y el bucle continúa.
Solución: agrega un nodo de Gmail «Agregar etiqueta» después del paso de respuesta, aplica una etiqueta como auto-replied, luego excluye esa etiqueta en tu filtro de disparador. De esa manera cada hilo se procesa una sola vez, sin importar qué suceda con el estado de leído/no leído.
Sobre lo de desactivar nodos, eso no detiene el disparador del flujo de trabajo; solo omite esos nodos. Necesitas anular la publicación de todo el flujo de trabajo para detenerlo, lo cual ya hiciste.