# 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 ` - [ ] En los 3 nodos HTTP del workflow, cambiar URL: - Reemplazar `PLACEHOLDER_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)