OpenWhats es una solución integral para la automatización de marketing y mensajería en WhatsApp. Este repositorio contiene documentación técnica, ejemplos de arquitectura y material demostrativo del ecosistema OpenWhats.
El proyecto está dividido en tres componentes principales:
-
OpenWhats Backend (Go):
- Núcleo del sistema de automatización basado en la librería
whatsmeow. - Expone una API REST y WebSocket para controlar sesiones de WhatsApp.
- Maneja el envío de mensajes, gestión de grupos y eventos en tiempo real.
- Núcleo del sistema de automatización basado en la librería
-
OpenWhats (VB.NET):
- Aplicación de escritorio para Windows.
- Interfaz gráfica para gestión de campañas, respuestas automáticas y configuración de cuentas.
-
OpenWhats Panel (PHP):
- Panel web para administración de licencias y usuarios.
- API para validación de clientes.
La interfaz gráfica principal para gestionar campañas y automatización.
Sistema robusto para envío de campañas a gran escala con múltiples protecciones.
- Modos de Envío:
- Simultáneo: Envío paralelo desde múltiples cuentas.
- Rotación: Cambio automático de cuenta remitente cada
Xmensajes para distribuir la carga.
- Control de Velocidad: Configuración de retardos aleatorios (Min/Max segundos) entre mensajes para simular comportamiento humano.
- Personalización: Soporte completo para variables dinámicas (ej:
Hola {{Nombre}}) y Spintax (ej:{Hola|Buenas|Qué tal}) para variar el contenido. - Reportes: Generación automática de informes HTML detallados con estado de entrega (Éxito/Fallo).
Responde automáticamente a tus clientes 24/7.
- Reglas Clásicas: Configura respuestas basadas en palabras clave ("Precio", "Info") con coincidencia exacta o parcial. Soporta envío de archivos adjuntos.
- Integración AI: Conecta OpenAI (GPT-4o) o DeepSeek para respuestas inteligentes y naturales.
- System Prompt: Define la personalidad y conocimientos del bot (ej: "Eres un asistente de ventas de zapatos...").
- Contexto: El bot recuerda el hilo de la conversación.
Limpia tus bases de datos antes de enviar.
- Verificación Real: Consulta directamente a los servidores de WhatsApp para confirmar si un número existe.
- Importación Flexible: Carga contactos desde archivos (CSV, TXT, Excel), Contactos de Google, o genera rangos numéricos secuenciales.
- Exportación: Separa automáticamente números válidos e inválidos.
Herramienta para aumentar la reputación de cuentas nuevas.
- Simula conversaciones naturales entre tus propias cuentas conectadas.
- Genera historial de chat automáticamente para reducir el riesgo de bloqueo en cuentas nuevas.
Gestiona el ciclo de ventas directamente desde la aplicación.
- Kanban Board: Visualiza tus leads en columnas por etapas (Nuevo, Contactado, Negociación, Cerrado). Arrastra y suelta para mover contactos.
- Etiquetado Inteligente: Asigna etiquetas personalizadas con colores para categorizar clientes.
- Gestión de Datos: Edita información de contacto, notas y mantén un historial de interacciones.
- Acciones Rápidas: Inicia chat, llama o agenda recordatorios directamente desde la tarjeta del cliente.
Obtén leads cualificados directamente de Google Maps.
- Búsqueda Local: Introduce palabras clave (ej: "Restaurantes en Madrid") para encontrar negocios.
- Extracción de Datos: Captura Nombre, Teléfono, Dirección, Web, Reseñas y Calificación.
- Limpieza Automática: Elimina caracteres no numéricos de los teléfonos y añade prefijos de país automáticamente.
- Exportación: Guarda los leads en Excel (XLSX), CSV o TXT listos para importar al envío masivo.
Administra múltiples líneas de WhatsApp simultáneamente.
- Instancias Independientes: Cada cuenta opera en su propio entorno aislado.
- Sesión Persistente: No necesitas escanear el QR cada vez; las sesiones se guardan de forma segura.
- Asignación de Tareas: Define qué cuenta se usa para campañas específicas o repártelas en modo rotativo.
Mantén activas tus cuentas publicando historias (estados) de forma masiva.
- Multicuenta: Publica el mismo estado en todas o varias cuentas seleccionadas con un solo clic.
- Soporte Multimedia: Sube imágenes (JPG, PNG) y videos (MP4) directamente desde tu PC.
- Estados de Texto: Crea estados de texto con fondo de color para anuncios rápidos.
Herramienta potente para obtener contactos segmentados de grupos de WhatsApp.
- Escaneo de Grupos: Detecta todos los grupos a los que pertenecen tus cuentas conectadas.
- Extracción de Miembros: Obtén la lista completa de participantes (IDs de usuario) de cualquier grupo seleccionado.
- Exportación: Guarda los datos en CSV para importarlos inmediatamente a tus campañas de envío o al filtro de números.
Auditoría completa de tus campañas de marketing.
- Historial Visual: Visualiza reportes detallados en formato HTML directamente en la aplicación.
- Calendario de Envíos: Filtra reportes por fecha para revisar el rendimiento diario.
- Detalles de Entrega: Verifica cuántos mensajes fueron enviados con éxito y cuántos fallaron.
El backend es el motor que permite la comunicación con WhatsApp. Está escrito en Go para máximo rendimiento y concurrencia.
- Go 1.23+: Necesario para compilar el código fuente.
- GCC: Requerido para compilar
go-sqlite3(en Windows, instalar MinGW o TDM-GCC).
-
Navega al directorio del backend:
cd backend -
Instala las dependencias:
go mod download
-
Ejecuta el servidor:
go run .El servidor iniciará por defecto en
http://localhost:8088.
La documentación completa e interactiva (Swagger UI) está disponible en /swagger/ cuando el servidor está corriendo. A continuación, un resumen de las funciones principales:
-
Crear Dispositivo
POST /devices- Registra una nueva sesión virtual. Retorna un
device_id.
-
Login (Conexión)
POST /devices/{device_id}/login- Inicia el proceso de conexión. Si no hay sesión, genera eventos QR por WebSocket.
-
Logout
POST /devices/{device_id}/logout- Cierra la sesión y desconecta el dispositivo.
-
Estado
GET /devices/{device_id}/status- Verifica si el dispositivo está conectado.
-
Obtener QR
GET /devices/{device_id}/qr- Obtiene el código QR actual en formato Base64 (útil si no usas WebSocket).
-
Enviar Texto
POST /messages/text- Envía mensajes de texto a usuarios o grupos.
-
Enviar Multimedia
POST /messages/media- Envía imágenes, videos, audios o documentos. Soporta
multipart/form-data.
-
Descargar Multimedia
GET /messages/{message_id}/download- Descarga el archivo adjunto de un mensaje recibido.
-
Listar Contactos
GET /contacts- Obtiene la lista de contactos sincronizados.
-
Verificar Número
GET /contacts/exists?number=51999...- Verifica si un número tiene cuenta de WhatsApp.
-
Listar Grupos
GET /groups- Obtiene todos los grupos donde participa el usuario.
-
Participantes de Grupo
GET /groups/{group_jid}/participants- Obtiene la lista de miembros de un grupo específico.
Conéctate a ws://localhost:8088/ws?device_id={device_id} para recibir actualizaciones en tiempo real.
qr: Recibes un nuevo código QR (string base64) para mostrar al usuario.connection_open: La conexión con WhatsApp se ha establecido exitosamente.ack: Confirmación de entrega de mensajes (enviado, entregado, leído).message: Notificación de mensaje entrante (texto o multimedia).
Este repositorio es únicamente informativo y demostrativo. No incluye sistemas productivos ni herramientas operativas.
OpenWhats es una plataforma independiente y no está afiliada, asociada ni respaldada por WhatsApp LLC.
El uso de cualquier herramienta de mensajería debe cumplir con las leyes locales y los términos de servicio de cada plataforma.