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

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

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

# 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

# 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