Files
FarmaFinder/n8n/README.md
Antoni Nuñez Romeu cc77783b7d
Run Tests on Branches / Frontend Mobile Tests (push) Has been skipped
Run Tests on Branches / Parapharmacy API Tests (push) Has been skipped
Run Tests on Branches / Detect Changes (push) Successful in 13s
Run Tests on Branches / Backend Tests (push) Has been skipped
Run Tests on Branches / Frontend Tests (push) Has been skipped
Run Tests on Branches / PIP Platform Tests (push) Has been skipped
N8N first run script
2026-07-17 11:28:14 +02:00

174 lines
4.1 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 con las variables de entorno:
| Campo | Valor (por defecto) |
|-------|-------|
| **Email** | admin@farmafinder.com |
| **Password** | change-me |
> **IMPORTANTE**: Cambia la contraseña después del primer login.
### 2. Variables de Entorno
```bash
# En .env (o en docker-compose.yml)
N8N_EMAIL=admin@farmafinder.com
N8N_PASSWORD=change-me
```
### 3. Importar Workflows
**Deploy automático (recomendado):**
El servicio `n8n-init` en docker-compose.yml ejecuta `n8n import:workflow` automáticamente después del primer arranque. Usa un flag file (`.workflows-imported`) para no re-importar en deploys siguientes.
**Importar manualmente:**
```bash
docker compose exec n8n n8n import:workflow --separate --input=/home/node/workflows/
```
O desde la UI:
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