Không có mô tả

odoo 9e0f68babc Fix inbound attachment reply handling 1 tháng trước cách đây
models 9e0f68babc Fix inbound attachment reply handling 1 tháng trước cách đây
security af0a73844a first commit 10 tháng trước cách đây
static c4c2695610 fix(whatsapp): resolve serialization failure and owl error in discuss 1 tháng trước cách đây
views dc44d89d7f refactor: eliminar dependencia circular - remover campos Many2one a ww.group 2 tháng trước cách đây
.gitignore dc44d89d7f refactor: eliminar dependencia circular - remover campos Many2one a ww.group 2 tháng trước cách đây
API_REFERENCE.md b94917aba8 Add comprehensive WhatsApp Web integration features 4 tháng trước cách đây
README.md b94917aba8 Add comprehensive WhatsApp Web integration features 4 tháng trước cách đây
TROUBLESHOOTING.md b94917aba8 Add comprehensive WhatsApp Web integration features 4 tháng trước cách đây
__init__.py af0a73844a first commit 10 tháng trước cách đây
__manifest__.py 93ec3859b8 Fix license warnings and deprecated create methods 1 tháng trước cách đây

README.md

WhatsApp Web Integration for Odoo 18

Descripción

Este módulo integra WhatsApp con la automatización de marketing de Odoo, permitiendo enviar mensajes de WhatsApp a través de una URL personalizada usando whatsapp-web.js. Proporciona funcionalidad completa para enviar mensajes tanto a números telefónicos como a grupos de WhatsApp.

Características Principales

  • ✅ Envío de mensajes a números telefónicos individuales
  • ✅ Envío de mensajes a grupos de WhatsApp
  • ✅ Soporte para plantillas de WhatsApp Business API
  • ✅ Mensajes de texto libre (sin plantilla) para WhatsApp Web
  • ✅ Gestión de adjuntos y archivos multimedia
  • ✅ Respuestas a mensajes (quoted messages)
  • ✅ Integración con el sistema de marketing de Odoo
  • ✅ Configuración flexible de cuentas WhatsApp Web

Requisitos

  • Odoo 18.0
  • Módulo whatsapp (dependencia)
  • Servidor whatsapp-web.js configurado y funcionando

Instalación

  1. Instalar el módulo:

    cd /var/odoo/mcteam.run
    sudo -u odoo venv/bin/python3 src/odoo-bin -c odoo.conf -i whatsapp_web
    
  2. Reiniciar el servidor Odoo:

    ./restart_odoo.sh
    

Configuración

1. Configuración General

  1. Ir a Configuración > Técnico > Parámetros del Sistema
  2. Buscar el parámetro whatsapp_web.whatsapp_endpoint
  3. Establecer la URL de tu servidor whatsapp-web.js (ej: https://web.whatsapp.com/api)

2. Configuración de Cuenta WhatsApp

  1. Ir a WhatsApp > Configuración > Cuentas WhatsApp
  2. Crear o editar una cuenta WhatsApp
  3. En la sección "WhatsApp Web", configurar:
    • WhatsApp Web URL: URL de tu servidor whatsapp-web.js
  4. Guardar la configuración

3. Configuración de Grupos (Opcional)

Si deseas enviar mensajes a grupos, instala también el módulo whatsapp_web_groups:

sudo -u odoo venv/bin/python3 src/odoo-bin -c odoo.conf -i whatsapp_web_groups

Uso

Envío de Mensajes Individuales

  1. Desde el Composer de WhatsApp:

    • Seleccionar "Phone Number" como tipo de destinatario
    • Ingresar el número de teléfono
    • Elegir una plantilla o escribir mensaje libre
    • Enviar
  2. Desde Marketing:

    • Crear una campaña de marketing
    • Configurar plantillas WhatsApp
    • Ejecutar campaña

Envío de Mensajes a Grupos

  1. Desde el Composer:

    • Seleccionar "WhatsApp Group" como tipo de destinatario
    • Elegir un grupo de la lista o ingresar ID manualmente
    • Escribir mensaje libre o usar plantilla
    • Enviar
  2. Desde la vista de Grupos:

    • Ir a WhatsApp Web > Grupos
    • Seleccionar un grupo
    • Hacer clic en "Send WhatsApp Message"

Formato de Números

  • Números individuales: Se formatean automáticamente con prefijo de país (ej: 5215551234567@c.us)
  • Grupos: Usan formato 120363158956331133@g.us

Mensajes con Adjuntos

El módulo soporta envío de:

  • Documentos PDF
  • Imágenes
  • Videos
  • Audio
  • Cualquier tipo de archivo soportado por WhatsApp

API del Módulo

Métodos Principales

whatsapp.account.get_groups()

Obtiene la lista de grupos disponibles en WhatsApp Web.

account = self.env['whatsapp.account'].browse(1)
groups = account.get_groups()

whatsapp.message._send_message()

Envía un mensaje WhatsApp usando la configuración de la cuenta.

whatsapp.composer.action_send_whatsapp_template()

Procesa el envío desde el composer, soportando tanto plantillas como mensajes libres.

Estructura de Datos

Modelos Principales

whatsapp.account (Extendido)

  • whatsapp_web_url: URL del servidor whatsapp-web.js

whatsapp.message (Extendido)

  • recipient_type: Tipo de destinatario ('phone' o 'group')
  • whatsapp_group_id: Referencia al grupo (si aplica)
  • final_recipient: Destinatario final calculado

whatsapp.composer (Extendido)

  • recipient_type: Tipo de destinatario
  • whatsapp_group_id: Grupo seleccionado
  • whatsapp_group_id_char: ID de grupo manual
  • body: Mensaje libre (sin plantilla)

Configuración del Servidor whatsapp-web.js

Ejemplo de Configuración

// Ejemplo de servidor básico
const express = require('express');
const { Client } = require('whatsapp-web.js');

const app = express();
app.use(express.json());

const client = new Client();

client.on('ready', () => {
    console.log('WhatsApp Web está listo');
});

// Endpoint para enviar mensajes
app.post('/', async (req, res) => {
    const { method, args } = req.body;
    
    if (method === 'sendMessage') {
        const [to, content, options] = args;
        const message = await client.sendMessage(to, content, options);
        res.json({ _data: { id: { _serialized: message.id._serialized } } });
    }
});

client.initialize();
app.listen(3000);

Solución de Problemas

Error: "No WhatsApp Web account configured"

  • Verificar que la cuenta WhatsApp tenga configurada la URL de WhatsApp Web
  • Confirmar que la URL sea accesible desde el servidor Odoo

Error: "Error en la petición de groups"

  • Verificar conectividad con el servidor whatsapp-web.js
  • Confirmar que el servidor esté ejecutándose y respondiendo
  • Revisar logs del servidor para errores específicos

Mensajes no se envían

  • Verificar que WhatsApp Web esté conectado en el servidor
  • Confirmar que el número de teléfono esté en formato correcto
  • Revisar logs de Odoo para errores de la API

Grupos no aparecen

  • Ejecutar sincronización manual desde el menú de grupos
  • Verificar que el método getGroups esté implementado en el servidor
  • Confirmar permisos de lectura de grupos en WhatsApp

Logs y Debugging

Los logs se pueden encontrar en:

  • Logs de Odoo: /var/odoo/stg2.mcteam.run/logs/odoo-server.log
  • Logs del servidor whatsapp-web.js: Revisar configuración del servidor

Para debugging, buscar en los logs:

  • WHATSAPP WEB SEND MESSAGE
  • Error en la petición
  • Petición exitosa

Actualizaciones

Para actualizar el módulo:

cd /var/odoo/mcteam.run
sudo -u odoo venv/bin/python3 src/odoo-bin -c odoo.conf -u whatsapp_web
./restart_odoo.sh

Soporte

Para soporte técnico o reportar bugs, contactar al equipo de desarrollo.

Changelog

Versión 1.0

  • Implementación inicial
  • Soporte para mensajes individuales y grupos
  • Integración con whatsapp-web.js
  • Soporte para plantillas y mensajes libres