249 lines
8.8 KiB
Markdown
249 lines
8.8 KiB
Markdown
# Automatización Bot Prisa Yachts
|
|
**Fecha:** 2 julio 2026
|
|
**Responsable:** Álvaro
|
|
**n8n:** https://n8n.crewinghunters.com
|
|
|
|
---
|
|
|
|
## ¿Qué es esto?
|
|
|
|
Sistema de automatización de captación de clientes para **Prisa Yachts LLC**, empresa de servicios náuticos en Florida. El proyecto tiene dos pilares:
|
|
|
|
1. **Bot de WhatsApp** — atiende consultas 24/7, clasifica el servicio solicitado y notifica al especialista correcto
|
|
2. **Directorio marino de Florida** — base de datos de marinas, astilleros, almacenamiento y tiendas de suministros, con emails y websites, para campañas de captación
|
|
|
|
---
|
|
|
|
## Empresa: Prisa Yachts LLC
|
|
|
|
```
|
|
📞 (786) 396-3315
|
|
📧 info@prisayachts.com
|
|
🌐 prisayachts.com
|
|
📸 @prisayachts
|
|
|
|
Slogan: "Safe Command ♦ Luxury Maintenance and Care"
|
|
```
|
|
|
|
### Servicios y responsables
|
|
|
|
| # | Servicio | Especialista | WhatsApp |
|
|
|---|----------|-------------|----------|
|
|
| 1 | Engines & Mechanical | Álvaro | +1 (954) 655-4084 |
|
|
| 2 | Electrical & Electronics / NMEA | Álvaro | +1 (954) 655-4084 |
|
|
| 3 | Teak Deck Recovery | Federico | +1 (754) 209-3375 |
|
|
| 4 | Captaining & Crewing | Federico | +1 (754) 209-3375 |
|
|
| 5 | Yacht Care & Detailing | Federico | +1 (754) 209-3375 |
|
|
| 6 | Crew Placement & Staffing | Federico | +1 (754) 209-3375 |
|
|
| 7 | Other / Otro | Ambos | — |
|
|
|
|
---
|
|
|
|
## Pilar 1 — Bot de WhatsApp
|
|
|
|
### Arquitectura
|
|
|
|
```
|
|
Cliente WhatsApp
|
|
│
|
|
▼
|
|
Meta Webhook ──► n8n Webhook (POST /prisa-whatsapp)
|
|
│
|
|
▼
|
|
State Machine (Code node)
|
|
│
|
|
┌───────────┴───────────┐
|
|
▼ ▼
|
|
Is Verify? Is Send to Client?
|
|
(GET challenge) │
|
|
│ ▼
|
|
Respond 200 Enviar mensaje al cliente
|
|
│
|
|
Notify Specialist?
|
|
┌────────┴────────┐
|
|
▼ ▼
|
|
Is Both? Is Alvaro?
|
|
┌──┴──┐ ┌──┴──┐
|
|
▼ ▼ ▼ ▼
|
|
Álvaro Federico Álvaro Federico
|
|
```
|
|
|
|
### Flujo del bot (state machine)
|
|
|
|
```
|
|
PASO 1 — "new" / reset words (hola, hello, hi, menu, start)
|
|
→ Enviar MENÚ PRINCIPAL (opciones 1-7)
|
|
→ Estado: waiting_category
|
|
|
|
PASO 2 — "waiting_category"
|
|
→ Cliente responde 1-7
|
|
→ Enviar formulario del servicio específico
|
|
→ Estado: collecting_info
|
|
|
|
PASO 3 — "collecting_info"
|
|
→ Cliente envía sus datos
|
|
→ Enviar CONFIRMACIÓN al cliente
|
|
→ Notificar especialista con resumen del caso
|
|
→ Estado: complete
|
|
|
|
PASO 4 — "complete"
|
|
→ Siguiente mensaje reinicia el flujo desde el menú
|
|
```
|
|
|
|
### Estado actual del bot
|
|
|
|
| Ítem | Estado |
|
|
|------|--------|
|
|
| Workflow creado en n8n | ✅ Desplegado |
|
|
| Credential WhatsApp_Prisa | ✅ Creada (placeholder) |
|
|
| Workflow activo | ✅ Activo |
|
|
| Webhook URL | `https://n8n.crewinghunters.com/webhook/prisa-whatsapp` |
|
|
| Token de Meta | ⏳ **Pendiente aprobación Meta** |
|
|
| Phone Number ID | ⏳ **Pendiente aprobación Meta** |
|
|
|
|
### Pasos pendientes — Bot WhatsApp
|
|
|
|
- [ ] **Meta aprueba** la cuenta de WhatsApp Business
|
|
- [ ] Actualizar credencial `WhatsApp_Prisa` en n8n:
|
|
- Cambiar `PLACEHOLDER_PENDING_META_APPROVAL` → `Bearer <ACCESS_TOKEN>`
|
|
- [ ] En los 3 nodos HTTP del workflow, cambiar URL:
|
|
- Reemplazar `PLACEHOLDER_PHONE_NUMBER_ID` → `<YOUR_PHONE_NUMBER_ID>`
|
|
- [ ] Configurar webhook en Meta Developer Portal:
|
|
- URL: `https://n8n.crewinghunters.com/webhook/prisa-whatsapp`
|
|
- Verify Token: (cualquier string, ej. `prisayachts2025`)
|
|
- Suscribir a: `messages`
|
|
- [ ] Prueba final: enviar "hola" al número del negocio desde WhatsApp
|
|
|
|
---
|
|
|
|
## Pilar 2 — Directorio Marino de Florida
|
|
|
|
### Objetivo
|
|
|
|
Construir la base de datos más completa posible de negocios náuticos en Florida para usar en campañas de captación (email + WhatsApp). Cada registro incluye:
|
|
|
|
`Nombre | Dirección | Teléfono | Email | Ciudad | Condado | Website`
|
|
|
|
### Categorías del directorio
|
|
|
|
| Hoja | Descripción |
|
|
|------|-------------|
|
|
| `MARINAS` | Puertos deportivos y marinas |
|
|
| `ASTILLEROS` | Boatyards y talleres náuticos |
|
|
| `ALMACENAMIENTO` | Boat storage / dry stack |
|
|
| `SUMINISTROS` | Tiendas de suministros marinos |
|
|
|
|
### Cobertura geográfica actual
|
|
|
|
El archivo principal es `Directorio_Marino_FL_Acumulativo_4.xlsx`.
|
|
|
|
| Sesión | Zona | Condados principales |
|
|
|--------|------|---------------------|
|
|
| 1-3 | Florida Sur | Miami-Dade, Broward, Palm Beach |
|
|
| 4 | Florida Centro | Martin, St. Lucie, Okeechobee, Sarasota, Charlotte, Lee, Collier, Monroe (Keys) |
|
|
| 5 | Florida Oeste-Centro | Pinellas, Hillsborough, Manatee, Pasco, Hernando |
|
|
| 6 *(add_north_florida.js)* | Florida Norte | Volusia, Flagler, Indian River, Brevard, Citrus, Levy, Dixie, Taylor, Wakulla, Franklin, Gulf, Bay, Walton, Okaloosa, Santa Rosa, Escambia, Duval, St. Johns, Nassau |
|
|
|
|
**Registros Florida Norte (Sesión 6):**
|
|
- Marinas: 128
|
|
- Astilleros: 24
|
|
- Almacenamiento: 16
|
|
- Suministros: 37
|
|
- **Total sesión 6: 205 registros**
|
|
|
|
### Scraper de emails (`scrape_marine_emails.js`)
|
|
|
|
Automatiza la búsqueda de emails y websites para los registros que no los tienen:
|
|
|
|
```
|
|
Para cada negocio en el Excel:
|
|
1. Buscar en DuckDuckGo: "nombre" ciudad Florida marina contact email
|
|
2. Filtrar dominios basura (Yelp, Google, Facebook, etc.)
|
|
3. Scrapear homepage → página /contact → página /about
|
|
4. Extraer emails con regex, puntuar por relevancia
|
|
5. Guardar resultado en el Excel (checkpoint cada 25 filas)
|
|
```
|
|
|
|
**Última ejecución del scraper:**
|
|
- Procesó hoja MARINAS (174 filas)
|
|
- Guardado de emergencia a `_output.xlsx` (archivo bloqueado por Excel)
|
|
- Muchos registros de Miami/Broward sin email (negocios grandes, emails corporativos difíciles de scrapear)
|
|
|
|
### Pasos pendientes — Directorio
|
|
|
|
- [ ] Verificar completitud del Excel actual (contar registros por zona y categoria)
|
|
- [ ] Correr scraper en `MARINAS_NORTE`, `ASTILLEROS_NORTE`, `ALMACENAMIENTO_NORTE`, `SUMINISTROS_NORTE`
|
|
- [ ] Completar emails faltantes de Florida Sur manualmente (prioridad: marinas grandes)
|
|
- [ ] Decidir si expandir a otros estados (Georgia, Carolina del Sur, Texas...)
|
|
- [ ] Consolidar todos los acumulativos en un único archivo maestro limpio
|
|
|
|
---
|
|
|
|
## Pilar 3 — Campañas de Captación (próximo paso)
|
|
|
|
Una vez el directorio esté completo con emails, lanzar campañas automáticas:
|
|
|
|
### Email marketing
|
|
- Plataforma a definir: Mailchimp / Brevo / n8n con SMTP
|
|
- Segmentación por tipo de negocio y zona geográfica
|
|
- Template con brochure de Prisa Yachts (ya existe `Prisa_Yachts_Brochure.pdf`)
|
|
- Medir aperturas y clicks
|
|
|
|
### WhatsApp marketing (futuro)
|
|
- Usar la API aprobada de Meta para enviar mensajes masivos (templates aprobados)
|
|
- Segmentar por servicio relevante para cada tipo de marina
|
|
- Flujo: contacto frío → si responde, entra al bot automáticamente
|
|
|
|
---
|
|
|
|
## Archivos del proyecto
|
|
|
|
| Archivo | Descripción |
|
|
|---------|-------------|
|
|
| `create_whatsapp_workflow.js` | Despliega el bot en n8n (ejecutar una vez) |
|
|
| `scrape_marine_emails.js` | Scraper de emails del directorio |
|
|
| `add_north_florida.js` | Agrega datos de Florida Norte al Excel |
|
|
| `convert_to_pdf.js` | Genera `Prisa_Yachts_Brochure.pdf` desde HTML |
|
|
| `Directorio_Marino_FL_Acumulativo_4.xlsx` | Base de datos principal |
|
|
| `Directorio_Marino_FL_Acumulativo_4_output.xlsx` | Copia de emergencia del scraper |
|
|
| `Directorio_Marino_FL_Acumulativo_5.xlsx` | Datos adicionales (pendiente integrar) |
|
|
| `Prisa_Yachts_Brochure.html` | Brochure en HTML |
|
|
| `Prisa_Yachts_Brochure.pdf` | Brochure generado |
|
|
| `scrape_log.txt` | Log de la última ejecución del scraper |
|
|
|
|
---
|
|
|
|
## Dependencias técnicas
|
|
|
|
```json
|
|
{
|
|
"axios": "^1.18.1", // HTTP requests
|
|
"cheerio": "^1.2.0", // HTML parsing / scraping
|
|
"puppeteer": "^25.1.0", // HTML → PDF
|
|
"xlsx": "^0.18.5" // Lectura/escritura Excel
|
|
}
|
|
```
|
|
|
|
**n8n:** Self-hosted en `https://n8n.crewinghunters.com`
|
|
**API Key n8n:** En `create_whatsapp_workflow.js` (hardcoded — mover a variable de entorno)
|
|
|
|
---
|
|
|
|
## Resumen de prioridades
|
|
|
|
### 🔴 Bloqueado (esperando tercero)
|
|
1. Aprobación de Meta para WhatsApp Business API
|
|
|
|
### 🟡 En progreso
|
|
2. Completar directorio marino (scraper + revisión manual)
|
|
3. Integrar `Directorio_Marino_FL_Acumulativo_5.xlsx` al archivo principal
|
|
|
|
### 🟢 Listo para ejecutar cuando Meta apruebe
|
|
4. Actualizar credenciales en n8n y probar bot en producción
|
|
5. Lanzar primera campaña de email a marinas de Florida Sur
|
|
|
|
### 🔵 Próximos pasos estratégicos
|
|
6. Diseñar templates de WhatsApp aprobados por Meta
|
|
7. Construir workflow n8n para envío masivo de emails
|
|
8. Expandir directorio a otras costas (Gulf Coast, Carolinas)
|