# N8N Workflows for FarmaFinder Parapharmacy ## Workflows Disponibles | Workflow | Trigger | Estado | Descripción | |----------|---------|--------|-------------| | Parapharmacy Scraper - All Sources | Cada 3 días a las 2am | Inactivo | Scraping automático de las 6 tiendas | | Parapharmacy Manual Scraper | POST `/webhook/scrape-all` | Activo | Scraping manual bajo demanda | ## Configuración Inicial ### 1. Cuenta de Administrador Al iniciar N8N por primera vez, se crea automáticamente: | Campo | Valor | |-------|-------| | **Email** | admin@farmafinder.com | | **Password** | change-me | > **IMPORTANTE**: Cambia la contraseña después del primer login en http://localhost:5678/settings ### 2. Variables de Entorno ```bash # En .env N8N_USER=admin N8N_PASSWORD=change-me N8N_EMAIL=admin@farmafinder.com ``` ### 3. Importar Workflows Los workflows se importan automáticamente al iniciar el contenedor. Para importar manualmente: 1. Ir a http://localhost:5678/workflows 2. Hacer clic en "Import from File" 3. Seleccionar el archivo JSON de `n8n/workflows/` ## Fuentes de Scraping | Fuente | URL Base | Estado | |--------|----------|--------| | Promofarma | promofarma.com | ✅ Configurado | | Pharmarket | pharmarket.es | ✅ Configurado | | DocMorris | docmorris.es | ✅ Configurado | | 1001Farma | 1001farma.net | ✅ Configurado | | Primor | primor.eu | ✅ Configurado | | MiFarma | mifarma.es | ✅ Configurado | ## Uso ### Scraping Automático El workflow "Parapharmacy Scraper - All Sources" se ejecuta automáticamente cada 3 días. **Para activarlo:** 1. Ir a http://localhost:5678/workflows 2. Abrir "Parapharmacy Scraper - All Sources" 3. Activar el toggle "Active" ### Scraping Manual ```bash # Scraping con queries por defecto (todas las tiendas) curl -X POST http://localhost:5678/webhook/scrape-all # Scraping con queries específicas curl -X POST http://localhost:5678/webhook/scrape-all \ -H "Content-Type: application/json" \ -d '{"queries": ["crema hidratante", "protector solar"]}' # Scraping solo de fuentes específicas curl -X POST http://localhost:5678/webhook/scrape-all \ -H "Content-Type: application/json" \ -d '{"sources": ["promofarma", "pharmarket"]}' ``` ### Respuesta del Webhook ```json { "success": true, "message": "Scraping completed", "products": 15 } ``` ## Endpoints de la API Los workflows envían productos a: ``` POST http://parapharmacy-api:3002/api/products/bulk ``` ## Poblar Base de Datos ### Datos de Prueba ```bash # Ejecutar seed script cd apps/parapharmacy-api npm run seed ``` Esto inserta 20 productos de prueba en la base de datos. ### Scraping Real ```bash # Ejecutar scraping manual curl -X POST http://localhost:5678/webhook/scrape-all ``` ## Monitoreo - **Dashboard N8N**: http://localhost:5678 - **Historial de ejecuciones**: http://localhost:5678/executions - **Workflows**: http://localhost:5678/workflows - **Logs**: `docker logs n8n` ## Troubleshooting ### N8N muestra /setup ```bash # Verificar variables de entorno docker-compose exec n8n env | grep N8N ``` ### Webhook no funciona 1. Verificar que el workflow esté activo 2. Revisar historial de ejecuciones 3. Verificar logs: `docker logs n8n` ### Scraping falla 1. Verificar que parapharmacy-api esté corriendo 2. Verificar conexión a MongoDB 3. Revisar logs de ejecución en N8N 4. Probar con una sola fuente: `{"sources": ["promofarma"]}` ### Productos no se guardan ```bash # Verificar health check curl http://localhost:3002/api/health # Verificar MongoDB docker-compose exec mongodb mongosh --eval "db.adminCommand('ping')" ``` ## Adding New Sources Para añadir una nueva fuente: 1. Crear un nuevo nodo en el workflow 2. Configurar la URL de la fuente 3. Añadir selectores CSS para extraer productos 4. Conectar al nodo "Send to API" 5. Probar con webhook manual 6. Activar el workflow