Plantillas de correo
El framework envía correos automáticamente en varias situaciones: recuperación de contraseña, notificaciones de workflow, formularios recibidos, alertas de stock, etc. Antes de recibir ninguno, hay que configurar el servidor de envío.
Paso 1 — Configurar SMTP
Ve a Configuración → Correo.
Necesitas los datos de tu servidor SMTP. Opciones típicas:
Con Gmail (para pruebas)
- Servidor SMTP:
smtp.gmail.com - Puerto: 587
- Encriptación: TLS
- Usuario: tu email de Gmail.
- Contraseña: no la de tu Gmail, sino una contraseña de aplicación que generas en tu cuenta de Google.
Con SendGrid, Brevo, Mailgun (producción)
Servicios especializados en envío masivo. Cada uno te da servidor, usuario y contraseña específicos. Recomendado si envías más de 100 correos al día.
Con tu propio servidor / hosting
Muchos hostings incluyen un SMTP propio. Consulta con tu proveedor.
Paso 2 — Datos del remitente
- Nombre del remitente: cómo se ve el "de:" en la bandeja del destinatario (ej. "Mi Empresa").
- Correo del remitente: la dirección que verá el destinatario (ej.
hola@miempresa.com).
Recomendación: el correo del remitente debe ser del mismo dominio que estás usando en SMTP, si no los correos pueden marcarse como spam.
Paso 3 — Prueba de envío
Antes de dar por buena la configuración, envía un correo de prueba. Botón "Enviar prueba" — pon un email tuyo y verifica que llegue.
Si no llega:
- Revisa carpeta de spam.
- Verifica credenciales SMTP.
- Ver Los correos no llegan.
Plantillas: el texto de cada correo
En Configuración → Correo, pestaña Plantillas y diseño, están todos los correos que salen del panel, agrupados por módulo. Solo aparecen los de los módulos activos: si no usas Inventario, su alerta de stock no te estorba.
Activo quiere decir que el módulo tiene su sección en el menú, la que agregas con Agregar Sección → Tipo: Plugin. Que el módulo venga en el sistema no basta: todos vienen. Si echas de menos las plantillas de un módulo, agrégalo al menú y aparecen; si te sobran las de uno que no usas, quítalo del menú y desaparecen — lo que hayas editado en ellas se conserva y vuelve contigo.
Hoy son estos:
| Módulo | Correo | Cuándo sale |
|---|---|---|
| Acceso | Código de seguridad para entrar | Se envía al iniciar sesión cuando la verificación en dos pasos está activa |
| Acceso | Contraseña nueva | Se envía cuando alguien pide recuperar su contraseña desde el acceso |
| Inventario | Alerta de stock bajo mínimo | Se envía cuando un artículo baja de su mínimo |
| Inventario | Aviso de stock por vencerse | Lo manda la revisión diaria, con lo vencido, lo que está por vencer y el valor en riesgo de esa sucursal |
| Inventario | Aviso de ítems bajo su mínimo | Lo manda la revisión diaria, con los productos bajo el mínimo de esa sucursal |
| Inventario | Aviso de traspasos detenidos | Lo manda la revisión diaria, con lo despachado que nadie ha recibido en el plazo que fijaste |
| Condominio | Invitación al portal del residente | Se envía al invitar a alguien a usar el portal, con su enlace para crear la clave |
| Condominio | Colilla disponible | Se envía al publicar el gasto común del mes, a cada unidad |
| Condominio | Recordatorio de pago vencido | Se envía desde Tesorería → Morosidad a cada unidad con pagos vencidos |
| Condominio | Aviso de multa | Se envía al notificar una multa. Es lo que abre el plazo para apelarla |
| Condominio | Respuesta a un pago avisado por transferencia | Se envía al confirmar o rechazar el comprobante que subió el residente |
| Condominio | Respuesta a una reserva | Se envía al aprobar o rechazar una reserva que necesitaba respuesta |
| Condominio | Citación a asamblea | Se envía al convocar, a todo el padrón con correo registrado |
| Mantención | Acceso al módulo de Mantención | Se envía al agregar a alguien al equipo de trabajo con su cuenta recién creada |
| Mantención | Aviso de solicitud nueva | Se envía a la sala de control cuando entra una solicitud |
| Mantención | Respuesta a una solicitud | Se envía a quien levantó la solicitud cuando se acepta o se rechaza |
| Mantención | Asignación de orden de trabajo | Se envía al técnico o supervisor a quien se asigna una orden |
| Mantención | Informe emitido para revisión | Se envía a la contraparte cuando se emite un informe |
| Mantención | Resultado de la revisión de un informe | Se envía al autor cuando la contraparte aprueba u observa su informe |
| Mantención | Turno entregado sin recibir | Se envía a las jefaturas cuando una entrega de turno queda sin acuse de recibo |
| Mantención | Preventivas atrasadas | Se envía a las jefaturas cuando hay mantenciones preventivas fuera de plazo |
| Notificaciones | Aviso de una regla de notificación | Envuelve el texto que arma la regla. {{contenido}} es ese texto |
| Propiedades | Visita agendada (al interesado) | Se envía a la persona cuando le agendas una visita a una propiedad |
| Propiedades | Visita cambiada de hora (al interesado) | Se envía cuando cambias el día, la hora o la propiedad de una visita ya agendada |
| Propiedades | Visita cancelada (al interesado) | Se envía cuando marcas la visita como cancelada |
| Propiedades | Recordatorio de visita | Lo manda la tarea «Recordar las visitas del día», si la programas en Automatizaciones |
| Propiedades | Visita asignada (a quien la muestra) | Se envía a la persona del panel a la que le asignas la visita |
| Recursos Humanos | Bienvenida al portal del colaborador | Se envía al crear un colaborador con su acceso al portal |
| Recursos Humanos | Contraseña temporal | Se envía con el botón "Enviar contraseña temporal" de la ficha |
| Recursos Humanos | Respuesta a una solicitud de ausencia | Se envía al colaborador cuando se aprueba o rechaza su solicitud |
| Recursos Humanos | Aviso de una solicitud nueva | Se envía al equipo de RRHH cuando un colaborador pide una ausencia |
| Recursos Humanos | Liquidación disponible | Se envía a cada colaborador al cerrar el período de remuneraciones |
| Recursos Humanos | Aviso de contrato por vencer | Se envía al equipo de RRHH cuando un contrato a plazo fijo está por terminar |
| Restaurante | Confirmación de una reserva | Se envía al cliente cuando se guarda su reserva, si dejó un correo |
| Restaurante | Aviso de una reserva cancelada | Se envía al cliente cuando el local cancela su reserva |
| Restaurante | Llegó un pedido por la carta QR | Aviso al equipo cuando un cliente manda un pedido desde su celular |
| Restaurante | Quedó algo abierto de ayer | Aviso de la revisión nocturna: mesas y turnos de caja que nadie cerró |
| Restaurante | Un arqueo cerró con diferencia | Aviso cuando el efectivo contado no coincide con lo esperado |
| Producción | Aviso de recetas sin ingredientes | Lo manda la revisión de madrugada, antes de que empiece el turno, con lo que falta para producir |
| Punto de venta | Aviso de turnos sin cerrar | Lo manda la revisión diaria con las cajas que quedaron abiertas de un día anterior |
| Punto de venta | Aviso de diferencias de caja | Lo manda la revisión diaria con las cajas que cerraron fuera de la tolerancia de su sucursal |
| Punto de venta | Resumen diario de ventas | Lo manda la revisión diaria con lo vendido y el margen del día anterior, por sucursal |
| Mercado Pago | Aviso de cobros sin reclamar | Lo manda la revisión diaria con los pagos aprobados que no quedaron pegados a ninguna venta |
| Restaurante | Se anuló una venta | Aviso cuando un administrador anula una venta ya cobrada |
| Restaurante | Insumos bajo su mínimo | Aviso diario con lo que hay que reponer |
| Tableros | Aviso de una tarjeta | Se envía cuando una tarjeta te involucra (asignación, vencimiento, cambio de estado) |
La lista se filtra por los módulos activos en tu panel: si no usas Mantención, sus ocho correos no te estorban. Los de arriba son todos los que existen.
Al elegir uno puedes cambiar el asunto y el contenido, y ver abajo cómo queda el correo de verdad, con datos de ejemplo, tu logo y tu color.
Variables
Cada plantilla trae sus propias variables, listadas como botones bajo el editor:
púlsalas para insertarlas donde tengas el cursor. Se escriben entre llaves dobles
—{{colaborador.nombre}}— y se reemplazan al enviar.
Si una variable no tiene valor, desaparece del correo en vez de aparecer como
{{...}}. Y los valores se escapan: un apellido con & o < no puede romper el
diseño ni colar etiquetas.
Texto con formato o HTML
Dos modos, con el interruptor de arriba a la derecha:
- Texto con formato — negritas, listas y enlaces. Es lo que quieres el 99% de las veces y no puedes romper nada.
- HTML — el marcado completo, para quien sepa. Ojo: los correos son quisquillosos (Outlook y Gmail ignoran buena parte del CSS moderno), así que usa estilos en línea y tablas.
Lo que escribas en un modo se conserva al cambiar al otro.
Probar y volver atrás
- Enviarme una prueba manda ese correo a tu propia dirección, con datos de ejemplo. Es la forma honesta de comprobar cómo se ve en tu cliente de correo.
- Restablecer vuelve al texto original del sistema. Una plantilla que nunca editaste usa ese texto, así que una instalación recién puesta envía correos completos sin que nadie configure nada.
Un remitente por comunidad (suite de condominios)
Si administras varios edificios en la misma instalación, la configuración de arriba es la de la plataforma: una sola. Eso significa que los residentes de los tres reciben correo del mismo remitente, y que una respuesta puede caer en la administración equivocada.
Por eso cada comunidad puede firmar con lo suyo, en La comunidad → Comunicaciones → Configurar el correo:
| Campo | Qué hace |
|---|---|
| Nombre del remitente | Lo que el residente ve como remitente. Vacío usa el de la plataforma |
| Responder a | A dónde llega cuando alguien contesta |
| Casilla propia | Si esta comunidad envía por su propio servidor |
Con el nombre y el «responder a» ya resuelves el problema real —quién firma y a dónde contestan— y el correo sigue saliendo por el servidor de la plataforma, que es lo más confiable.
Encendida, el correo de esa comunidad sale de verdad desde su dominio. A cambio, un servidor mal configurado deja de enviar sin que nadie se entere: los fallos quedan en «Envíos fallidos», pero nadie los mira si no sabe que hay algo que mirar. Enciéndela sólo si esa comunidad tiene su propia casilla y alguien la mantiene.
La dirección desde la que sale tiene que existir en ese servidor. Si no, el mensaje se va a spam.
La contraseña se guarda una vez: al volver a entrar, el campo aparece vacío y dejarlo así conserva la que ya estaba. Sólo se reemplaza si escribes una nueva.
El diseño común
En la misma pestaña, a la izquierda, está el marco que envuelve todos los correos: logo, nombre, color y pie. Si no pones nada, se usan el logo, el nombre y el color de Apariencia, así que tus correos ya salen con tu marca desde el primer día.
El correo se abre fuera del panel, en Gmail o en Outlook. Una imagen que solo exista dentro de tu red no la verá nadie.
Envíos fallidos: la tercera pestaña
Un correo que no sale nunca detiene lo que lo provocó —una visita se agenda igual aunque el aviso no llegue— y antes eso significaba que el fallo no se veía en ninguna parte. Ahora queda en Configuración → Correo → Envíos fallidos, con el destinatario, el asunto, de qué módulo salió y por qué no pudo enviarse. La pestaña muestra cuántos hay.
Desde ahí puedes:
- Reintentar uno, cuando ya arreglaste lo que fallaba (las credenciales SMTP, por ejemplo). Si sale, desaparece de la lista.
- Reintentar todos, y te dice cuántos salieron y cuántos siguen ahí.
- Quitar los que ya no valga la pena mandar, o Vaciar la lista entera.
Los envíos se guardan 30 días y, como mucho, los 200 últimos: si un local queda semanas sin correo, la lista no crece sin fin.
El sistema lo reintenta solo
No hace falta que entres a mirar. Un correo que falló se vuelve a intentar por su cuenta, esperando cada vez más entre un intento y el siguiente: a los 5 minutos, a la media hora, a las 2 horas, a las 6 y al día. Es a propósito: un servidor que rechaza ahora suele seguir rechazando dentro de un minuto, y insistir sin parar es lo que hace que algunos proveedores te marquen como spam.
Al sexto intento deja de insistir y el correo se queda en la lista para que decidas: reintentarlo a mano cuando arregles lo que fallaba, o quitarlo. Una dirección que ya no existe no se arregla sola.
Esto vale para todos los módulos, porque la bandeja es una sola: los avisos de una visita, los de una tarjeta o los de una firma se reintentan igual.
El reintento corre por dos caminos. Si tienes el módulo Automatizaciones, puedes programar la tarea «Reintentar los correos que fallaron» y controlar cada cuánto se repasa. Y si no lo tienes, el panel se encarga igual: cada diez minutos, la primera pantalla que alguien abra se lleva unos pocos. Con el panel cerrado —de noche, un domingo— no se reintenta nada; se reanuda cuando alguien entra.
De esos se guarda que fallaron, pero no su contenido: dejarlo escrito en una tabla es dejar la contraseña escrita. Además, reenviar un código viejo no sirve —ya venció o ya se usó—. Lo mismo con los correos que llevan un archivo adjunto: el archivo ya no existe cuando lo reintentas, y mandarlo sin él sería mandar un correo roto. En esos casos la lista te dice que vuelvas a pedirlo desde donde se generó: recuperar la contraseña otra vez, reenviar la solicitud de firma, volver a generar el reporte.
Precedencia importante
Los ajustes SMTP guardados desde el panel tienen prioridad sobre lo que esté en el archivo cms/config.php. Si editaste el archivo y "no pasa nada", es porque el panel tiene otros valores guardados. Ver Configuración general.
Cuentas de admin usan estos correos
Los correos configurados aquí también se usan para:
- Recuperación de contraseña de administradores.
- Códigos 2FA por email.
- Notificaciones internas.
No hay un SMTP separado para "correos del sistema" vs "correos a clientes" — es el mismo.
¿Qué sigue?
- Los correos no llegan — troubleshooting específico, empezando por la pestaña de envíos fallidos.
- Notification Manager — quién envía los correos automáticos.