Integración de Mailjet con OmniCRM
OmniCRM se integra con Mailjet para gestionar toda la comunicación por correo electrónico con clientes y personal, asegurando una entrega de correos electrónicos profesional, con marca y confiable tanto para correos electrónicos transaccionales como para campañas de marketing.
Visión General
La integración de Mailjet proporciona:
- Correos Electrónicos Transaccionales Automatizados - Restablecimientos de contraseña, facturas, correos electrónicos de bienvenida, notificaciones
- Sincronización de Contactos - Contactos de clientes sincronizados automáticamente con Mailjet para campañas
- Plantillas de Correo Electrónico - Más de 10 tipos de correos electrónicos preconfigurados con plantillas personalizables de Mailjet
- Campañas de Marketing - Campañas de correo electrónico segmentadas basadas en datos de clientes
- Entrega Confiable - Infraestructura de correo electrónico profesional con seguimiento y análisis
Configuración
Mailjet se configura en OmniCRM-API/crm_config.yaml bajo la sección mailjet.
Configuración Básica
mailjet:
api_key: your_mailjet_api_key
api_secret: your_mailjet_api_secret
Obtención de Credenciales de API:
- Crea una cuenta en <https://www.mailjet.com>
- Navega a Configuración de Cuenta → Claves de API
- Copia Clave de API y Clave Secreta
- Pega en
crm_config.yaml
Configuración de Plantillas de Correo Electrónico
OmniCRM utiliza 10 tipos distintos de plantillas de correo electrónico para comunicaciones automatizadas. Cada plantilla se configura con:
- from_email - Dirección de correo electrónico del remitente
- from_name - Nombre de visualización del remitente
- template_id - ID de plantilla de Mailjet (numérico)
- subject - Línea de asunto del correo electrónico
Tipos de Plantillas y Configuración
Correo Electrónico de Bienvenida al Cliente
Enviado cuando se crea una nueva cuenta de cliente.
api_crmCommunicationCustomerWelcome:
from_email: "support@yourcompany.com"
from_name: "Soporte de Tu Empresa"
template_id: 5977509
subject: "Bienvenido a Tu Empresa"
Cuándo se Envía:
- Nuevo cliente se registra a través del portal de Autocuidado
- El personal crea una nueva cuenta de cliente
- El cliente activa el servicio por primera vez
Variables de Plantilla Disponibles:
{{ var:customer_name }}- Nombre completo del cliente{{ var:email }}- Dirección de correo electrónico del cliente{{ var:company_name }}- Nombre de tu empresa{{ var:login_url }}- Enlace al portal de Autocuidado{{ var:support_url }}- Enlace a la página de soporte
Correo Electrónico de Factura del Cliente
Enviado cuando se genera una factura y está lista para el pago.
api_crmCommunicationCustomerInvoice:
from_email: "billing@yourcompany.com"
from_name: "Facturación de Tu Empresa"
template_id: 6759851
subject: "Tu Factura - "
Cuándo se Envía:
- Factura generada automáticamente para el período de facturación
- Factura manual creada por el personal
- El cliente solicita una copia de la factura
Variables de Plantilla Disponibles:
{{ var:customer_name }}- Nombre completo del cliente{{ var:invoice_number }}- ID/número de factura{{ var:invoice_date }}- Fecha de emisión de la factura{{ var:due_date }}- Fecha de vencimiento del pago{{ var:total_amount }}- Monto total a pagar{{ var:invoice_url }}- Enlace para ver/descargar el PDF de la factura{{ var:pay_url }}- Enlace para pagar la factura en línea
Adjunto de Factura:
El PDF de la factura se adjunta automáticamente al correo electrónico.
Recordatorio de Factura del Cliente
Enviado para recordar a los clientes sobre facturas vencidas.
api_crmCommunicationCustomerInvoiceReminder:
from_email: "billing@yourcompany.com"
from_name: "Facturación de Tu Empresa"
template_id: 6759852
subject: "Recordatorio de Pago - Factura Vencida"
Cuándo se Envía:
- La factura está X días vencida (configurable)
- Recordatorio manual activado por el personal
- Flujo de trabajo de recordatorio automatizado (si está configurado)
Variables de Plantilla Disponibles:
{{ var:customer_name }}{{ var:invoice_number }}{{ var:due_date }}{{ var:days_overdue }}{{ var:total_amount }}{{ var:pay_url }}
Correo Electrónico de Bienvenida al Usuario del Personal
Enviado cuando se crea una nueva cuenta de usuario del personal.
api_crmCommunicationUserWelcome:
from_email: "admin@yourcompany.com"
from_name: "Admin de Tu Empresa"
template_id: 5977510
subject: "Bienvenido al Equipo"
Cuándo se Envía:
- El administrador crea un nuevo usuario del personal
- Se hace clic en el botón "Enviar Correo Electrónico de Bienvenida" en la gestión de usuarios
Variables de Plantilla Disponibles:
{{ var:user_name }}- Nombre completo del usuario del personal{{ var:email }}- Correo electrónico del usuario del personal{{ var:role }}- Rol(es) asignado(s){{ var:login_url }}- Enlace para iniciar sesión en el portal de administración{{ var:temp_password }}- Contraseña temporal (si corresponde){{ var:support_email }}- Contacto de soporte técnico
Restablecimiento de Contraseña del Usuario
Enviado cuando un usuario solicita restablecer su contraseña.
api_crmCommunicationUserPasswordReset:
from_email: "noreply@yourcompany.com"
from_name: "Seguridad de Tu Empresa"
template_id: 5977511
subject: "Solicitud de Restablecimiento de Contraseña"
Cuándo se Envía:
- El usuario hace clic en "Olvidé mi Contraseña" en la página de inicio de sesión
- El usuario envía una solicitud de restablecimiento de contraseña
Variables de Plantilla Disponibles:
{{ var:user_name }}{{ var:reset_url }}- Enlace de restablecimiento de contraseña con tiempo limitado (típicamente 1 hora){{ var:expiry_time }}- Cuándo expira el enlace de restablecimiento
Nota de Seguridad:
Los enlaces de restablecimiento expiran después del período de tiempo configurado (por defecto 1 hora).
Éxito en el Restablecimiento de Contraseña del Usuario
Enviado para confirmar que la contraseña se ha cambiado con éxito.
api_crmCommunicationUserPasswordResetSuccess:
from_email: "noreply@yourcompany.com"
from_name: "Seguridad de Tu Empresa"
template_id: 5977512
subject: "Contraseña Cambiada con Éxito"
Cuándo se Envía:
- El usuario completa con éxito el restablecimiento de la contraseña
- Inmediatamente después de establecer una nueva contraseña
Variables de Plantilla Disponibles:
{{ var:user_name }}{{ var:change_date }}- Fecha/hora en que se cambió la contraseña{{ var:ip_address }}- Dirección IP del cambio (opcional){{ var:support_email }}- Contacto si el cambio fue no autorizado
Cambio de Contraseña del Usuario
Enviado cuando un usuario cambia su contraseña desde la configuración.
api_crmCommunicationUserPasswordChange:
from_email: "noreply@yourcompany.com"
from_name: "Seguridad de Tu Empresa"
template_id: 5977513
subject: "Notificación de Cambio de Contraseña"
Cuándo se Envía:
- El usuario cambia la contraseña desde el perfil/configuración
- El administrador restablece la contraseña del usuario
Variables de Plantilla Disponibles:
{{ var:user_name }}{{ var:change_date }}{{ var:changed_by }}- "Yo mismo" o nombre del administrador{{ var:support_email }}
Verificación de Correo Electrónico
Enviado para verificar la dirección de correo electrónico de un usuario.
api_crmCommunicationEmailVerification:
from_email: "noreply@yourcompany.com"
from_name: "Tu Empresa"
template_id: 5977514
subject: "Verifica Tu Dirección de Correo Electrónico"
Cuándo se Envía:
- Nueva cuenta creada (cliente o personal)
- El usuario cambia la dirección de correo electrónico
- Se requiere verificación de correo electrónico por razones de seguridad
Variables de Plantilla Disponibles:
{{ var:user_name }}{{ var:verification_url }}- Enlace para verificar el correo electrónico{{ var:verification_code }}- Código para ingresar manualmente (alternativa al enlace)
Notificación de Saldo Expirado
Enviado cuando el saldo/permiso de servicio de un cliente ha expirado.
api_crmCommunicationsBalanceExpired:
from_email: "support@yourcompany.com"
from_name: "Soporte de Tu Empresa"
template_id: 5977515
subject: "Tu Saldo de Servicio Ha Expirado"
Cuándo se Envía:
- El saldo prepago expira
- La fecha de renovación del permiso mensual ha pasado
- Se ha alcanzado la fecha de expiración del servicio
Variables de Plantilla Disponibles:
{{ var:customer_name }}{{ var:service_name }}- Nombre del servicio expirado{{ var:expiry_date }}{{ var:balance_type }}- "Datos", "Voz", "Monetario", etc.{{ var:renewal_url }}- Enlace para renovar/recargar
Alerta de Bajo Saldo
Enviado cuando el saldo de un cliente cae por debajo del umbral configurado.
api_crmCommunicationsBalanceLow:
from_email: "support@yourcompany.com"
from_name: "Soporte de Tu Empresa"
template_id: 5977516
subject: "Alerta de Bajo Saldo"
Cuándo se Envía:
- El saldo cae por debajo del umbral (por ejemplo, 20% restante)
- Configurado en el plan de servicio o OCS
- Monitoreo en tiempo real activa la alerta
Variables de Plantilla Disponibles:
{{ var:customer_name }}{{ var:service_name }}{{ var:current_balance }}{{ var:threshold }}{{ var:balance_type }}{{ var:topup_url }}- Enlace para agregar saldo
Creando Plantillas de Correo Electrónico de Mailjet
Para cada tipo de correo electrónico, necesitas crear una plantilla correspondiente en Mailjet.
Paso 1: Crear Plantilla en Mailjet
- Inicia sesión en el panel de Mailjet
- Navega a Plantillas de Correo Electrónico → Plantillas Transaccionales
- Haz clic en Crear una Nueva Plantilla
- Elige Codifica tu propia plantilla (para usuarios avanzados) o Usa el constructor de plantillas
Paso 2: Diseñar la Plantilla
Utiliza el constructor de arrastrar y soltar de Mailjet o el editor HTML para diseñar tu correo electrónico.
Elementos Esenciales:
- Encabezado - Logo y marca de la empresa
- Saludo - Personalizado con
{{ var:customer_name }}o{{ var:user_name }} - Contenido - Cuerpo del mensaje principal
- Variables - Inserta variables de plantilla de la lista anterior
- Llamada a la Acción - Botones/enlaces para acciones del usuario
- Pie de Página - Enlace de cancelación de suscripción, dirección de la empresa, contacto de soporte
Ejemplo de Plantilla (Restablecimiento de Contraseña):
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
.button { background-color: #4CAF50; color: white; padding: 14px 28px; }
</style>
</head>
<body>
<img src="https://yourcompany.com/logo.png" alt="Logo" width="200">
<h2>Solicitud de Restablecimiento de Contraseña</h2>
<p>Hola {{ var:user_name }},</p>
<p>Hemos recibido una solicitud para restablecer tu contraseña. Haz clic en el botón de abajo para crear una nueva contraseña:</p>
<a href="{{ var:reset_url }}" class="button">Restablecer Contraseña</a>
<p>Este enlace expira en {{ var:expiry_time }}.</p>
<p>Si no solicitaste esto, por favor ignora este correo electrónico.</p>
<hr>
<p style="font-size: 12px; color: #666;">
Tu Empresa | support@yourcompany.com<br/>
123 Business St, Ciudad, País
</p>
</body>
</html>
Paso 3: Obtener el ID de la Plantilla
- Guarda la plantilla en Mailjet
- Toma nota del ID de Plantilla (numérico, por ejemplo,
5977509) - Copia este ID a
crm_config.yaml
Paso 4: Probar la Plantilla
- En Mailjet, utiliza la función Correo Electrónico de Prueba
- Proporciona valores de muestra para todas las variables
- Envía un correo electrónico de prueba a ti mismo
- Verifica el formato, los enlaces y la marca
Paso 5: Configurar en OmniCRM
Agrega la configuración de la plantilla a crm_config.yaml:
mailjet:
api_key: your_api_key
api_secret: your_secret
api_crmCommunicationUserPasswordReset:
from_email: "noreply@yourcompany.com"
from_name: "Seguridad de Tu Empresa"
template_id: 5977511
subject: "Solicitud de Restablecimiento de Contraseña"
Reinicia la API de OmniCRM para que los cambios surtan efecto:
cd OmniCRM-API
sudo systemctl restart omnicrm-api
Sincronización de Contactos
Todos los contactos de clientes en OmniCRM se sincronizan automáticamente con Mailjet.
Qué se Sincroniza:
- Nombre del contacto
- Dirección de correo electrónico
- Tipo de contacto (facturación, técnico, etc.)
- Ubicación del cliente
- Campos personalizados
Frecuencia de Sincronización:
Los contactos se sincronizan en tiempo real cuando:
- Se crea un nuevo cliente
- Se agrega/actualiza un contacto
- Se modifican los detalles del cliente
Solución de Problemas
Correo electrónico no enviado
- Causa: Credenciales de API inválidas, cuenta de Mailjet suspendida o ID de plantilla incorrecto
- Solución:
- Verifica
api_keyyapi_secretencrm_config.yaml - Verifica el estado de la cuenta de Mailjet y la facturación
- Verifica que el ID de plantilla exista en Mailjet
- Revisa los registros de API en busca de errores
- Verifica
Las variables de plantilla no se sustituyen
- Causa: Desajuste en el nombre de la variable o datos faltantes en OmniCRM
- Solución:
- Verifica que los nombres de las variables coincidan exactamente (sensible a mayúsculas)
- Usa el formato
{{ var:variable_name }} - Verifica que OmniCRM esté pasando los datos de la variable en la llamada API
- Prueba con datos de muestra en Mailjet
PDF de factura no adjunto
- Causa: Fallo en la generación del PDF o tamaño de archivo demasiado grande
- Solución:
- Verifica los registros de generación de facturas
- Verifica que la plantilla de factura se renderice correctamente
- Asegúrate de que el PDF esté por debajo de 15 MB (límite de Mailjet)
- Prueba la generación de PDF de factura por separado
Contactos no sincronizados con Mailjet
- Causa: Límite de tasa de API excedido o servicio de sincronización no en ejecución
- Solución:
- Verifica los límites de tasa de API de Mailjet (200 llamadas/minuto)
- Verifica que el servicio OmniCRM-API esté en ejecución
- Revisa los registros de sincronización en busca de errores
- Activa manualmente la sincronización para pruebas
Documentación Relacionada
administration_configuration- Referencia completa de configuración de Mailjetpayments_invoices- Generación de facturas y entrega de correos electrónicosauthentication_flows- Correos electrónicos de restablecimiento y verificación de contraseñacustomer_care- Correos electrónicos de bienvenida del portal de Autocuidado
Lectura Adicional
- Documentación de Mailjet: <https://dev.mailjet.com/>
- Referencia de API de Mailjet: <https://dev.mailjet.com/email/reference/>