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
174 lines
4.1 KiB
Markdown
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
|