Saltar al contenido principal

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:

  1. Crea una cuenta en <https://www.mailjet.com>
  2. Navega a Configuración de Cuenta → Claves de API
  3. Copia Clave de API y Clave Secreta
  4. 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

  1. Inicia sesión en el panel de Mailjet
  2. Navega a Plantillas de Correo Electrónico → Plantillas Transaccionales
  3. Haz clic en Crear una Nueva Plantilla
  4. 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

  1. Guarda la plantilla en Mailjet
  2. Toma nota del ID de Plantilla (numérico, por ejemplo, 5977509)
  3. Copia este ID a crm_config.yaml

Paso 4: Probar la Plantilla

  1. En Mailjet, utiliza la función Correo Electrónico de Prueba
  2. Proporciona valores de muestra para todas las variables
  3. Envía un correo electrónico de prueba a ti mismo
  4. 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_key y api_secret en crm_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

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 Mailjet
  • payments_invoices - Generación de facturas y entrega de correos electrónicos
  • authentication_flows - Correos electrónicos de restablecimiento y verificación de contraseña
  • customer_care - Correos electrónicos de bienvenida del portal de Autocuidado

Lectura Adicional