05b99e9ed4
- Fixed Primor URL format and selectors - Created simple N8N webhook that calls scraper API - All 3 sources now working: - Promofarma: 20 products - DocMorris: 10 products - Primor: 20 products - Total: 130 products in database - N8N webhook at /webhook/scrape working correctly
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 |
|---|---|
| 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
# 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:
- Ir a http://localhost:5678/workflows
- Hacer clic en "Import from File"
- 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:
- Ir a http://localhost:5678/workflows
- Abrir "Parapharmacy Scraper - All Sources"
- Activar el toggle "Active"
Scraping Manual
# 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
{
"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
# Ejecutar seed script
cd apps/parapharmacy-api
npm run seed
Esto inserta 20 productos de prueba en la base de datos.
Scraping Real
# 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
# Verificar variables de entorno
docker-compose exec n8n env | grep N8N
Webhook no funciona
- Verificar que el workflow esté activo
- Revisar historial de ejecuciones
- Verificar logs:
docker logs n8n
Scraping falla
- Verificar que parapharmacy-api esté corriendo
- Verificar conexión a MongoDB
- Revisar logs de ejecución en N8N
- Probar con una sola fuente:
{"sources": ["promofarma"]}
Productos no se guardan
# 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:
- Crear un nuevo nodo en el workflow
- Configurar la URL de la fuente
- Añadir selectores CSS para extraer productos
- Conectar al nodo "Send to API"
- Probar con webhook manual
- Activar el workflow