Skip to main content

Módulo System Message

src/app/modules/system-message/

Servicio único para crear mensajes generados por el sistema (saludos, despedidas, avisos de fuera de horario, eventos internos del ticket). Antes esa lógica estaba duplicada en ChatGateway y en TicketService; ahora ambos y los jobs delegan en SystemMessageService.

API del servicio​

services/system-message.service.ts

MétodoDescripción
sendToContact(ticket, template, author?)Interpola la plantilla (MessageTemplateService.interpolate), persiste el mensaje, lo emite por socket y lo envía al canal externo vía OutboundRouterService.route (en segundo plano, sin bloquear). Devuelve null si el contacto no existe o la plantilla queda vacía
recordInternal(ticket, body)Persiste un mensaje de sistema interno (isInternal: true) y lo emite por socket como mensaje de sistema interno. No se envía al contacto

Los mensajes se guardan con sendType: system, ack: sent y el connectionId del ticket.

Autor (SystemMessageAuthor)​

Definido en interfaces/system-message.interface.ts con las constantes SYSTEM_MESSAGE_AUTHOR (core/constants/message.constants.ts):

kindmessageType guardadoEmisión por socket
system (por defecto)systembroadcastSystemMessage
connectionchatbroadcastConnectionMessage (con senderName: "Sistema", SYSTEM_SENDER_NAME)
department (con departmentName)chatbroadcastDepartmentGreeting

Quién lo usa​

Verificado por imports en el código: TicketService, ChatGateway, TicketInactivityResolutionJob, TicketResolutionEffectsService, el pipeline de entrada compartido (IngestInboundDeps.systemMessageService, inbound-channel.adapter.ts) y los servicios de entrada de WhatsApp y Meta.

Gotcha​

Como sendToContact pasa por OutboundRouterService, los saludos y avisos automáticos también llegan a WhatsApp / Instagram / Messenger, no solo al widget web.