Files
FarmaFinder/n8n/README.md
T
Antoni Nuñez Romeu 30f97fe87d feat: complete N8N scrapers for 6 sources and seed script
- Create comprehensive N8N workflow for all 6 parapharmacy sources
- Create webhook-triggered manual scraping workflow
- Add seed script with 20 sample products
- Update n8n/README.md with complete documentation
- Update docs/parapharmacy.md with seeding instructions
- Add seed script to package.json

Sources configured:
- Promofarma
- Pharmarket
- DocMorris
- 1001Farma
- Primor
- MiFarma
2026-07-16 13:00:20 +02:00

165 lines
3.8 KiB
Markdown

# 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