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

4.1 KiB

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

# 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:

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

# 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

Troubleshooting

N8N muestra /setup

# 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

# 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