Conector Notification
Descripción General
Sección titulada «Descripción General»El conector Notification entrega cargas como mensajes a canales externos. El cuerpo del mensaje es o bien la carga serializada como JSON o una cadena renderizada desde una plantilla Go text/template.
Tipo de Conector: MeddleNotification
Canales Admitidos: slack, teams, email, microsoft365, webhook
Parámetros de Configuración
Sección titulada «Parámetros de Configuración»- channel (obligatorio): Uno de
slack,teams,email,microsoft365,webhook - template: Cadena opcional de plantilla Go
text/template. Los campos de la carga son accesibles como{{ .field }}. Si está vacía, la carga se codifica como JSON. - webhookUrl: URL de destino (usada por el canal
webhook) - slackConfig: Opciones específicas de Slack
- teamsConfig: Opciones específicas de Teams
- emailConfig: Opciones de email SMTP
- microsoft365Config: Opciones de la API Microsoft Graph
{ "type": "MeddleNotification", "config": { "channel": "slack", "template": "Temperature alert: {{ .temperature }}°C on sensor {{ .sensor_id }}", "slackConfig": { "botToken": "xoxb-...", "channel": "#alerts" } }}Campos de slackConfig:
- botToken (obligatorio): Token OAuth del bot de Slack
- channel (obligatorio): ID o nombre del canal (ej.
#alerts)
Microsoft Teams
Sección titulada «Microsoft Teams»{ "type": "MeddleNotification", "config": { "channel": "teams", "template": "Machine {{ .machine_id }} stopped. Status: {{ .status }}", "teamsConfig": { "webhookUrl": "https://outlook.office.com/webhook/..." } }}Campos de teamsConfig:
- webhookUrl (obligatorio): URL del webhook entrante configurado en Teams
Email (SMTP)
Sección titulada «Email (SMTP)»{ "type": "MeddleNotification", "config": { "channel": "email", "template": "Alert from sensor {{ .sensor_id }}: {{ .message }}", "emailConfig": { "smtpHost": "smtp.example.com", "smtpPort": 587, "from": "alerts@example.com", "to": ["ops@example.com", "manager@example.com"], "username": "alerts@example.com", "password": "app-specific-password" } }}Campos de emailConfig:
- smtpHost (obligatorio), smtpPort (obligatorio)
- from (obligatorio, debe ser un email válido)
- to (obligatorio, mínimo 1 destinatario)
- username, password: Autenticación SMTP opcional
Microsoft 365 (Graph API)
Sección titulada «Microsoft 365 (Graph API)»Envía correo a través de Microsoft Graph usando credenciales de cliente OAuth2. Requiere un registro de aplicación en Azure AD con el permiso de aplicación Mail.Send (consentido por administrador).
{ "type": "MeddleNotification", "config": { "channel": "microsoft365", "template": "Production halted on line {{ .line_id }}", "microsoft365Config": { "tenantId": "00000000-0000-0000-0000-000000000000", "clientId": "11111111-1111-1111-1111-111111111111", "authMethod": "secret", "clientSecret": "your-client-secret", "fromAddress": "alerts@yourtenant.onmicrosoft.com", "to": ["ops@yourtenant.onmicrosoft.com"], "subject": "Production Alert", "saveToSentItems": true } }}Campos de microsoft365Config:
- tenantId (obligatorio), clientId (obligatorio)
- authMethod:
secret(por defecto) ocertificate - clientSecret: Obligatorio cuando
authMethodessecret - certificate: Obligatorio cuando
authMethodescertificate. Proporciona o biencertificateFile+privateKeyFile(PEM) opfxFile(+pfxPasswordopcional). - fromAddress (obligatorio, debe ser un email válido correspondiente a un buzón con licencia)
- to (obligatorio, mínimo 1 destinatario)
- subject: Asunto del email (por defecto
Meddle Notification) - saveToSentItems: Cuando es
true, el mensaje se guarda en los Elementos Enviados del buzón
Webhook
Sección titulada «Webhook»{ "type": "MeddleNotification", "config": { "channel": "webhook", "webhookUrl": "https://hooks.example.com/incoming", "template": "{{ .machine_id }}: {{ .status }}" }}Envía un cuerpo JSON { "message": "...", "data": { ...payload... } } a webhookUrl.
Plantillas
Sección titulada «Plantillas»Las plantillas usan la sintaxis text/template de Go. Patrones comunes:
Temperature: {{ .temperature }}°C{{ if gt .pressure 100.0 }}Pressure HIGH{{ end }}Sensor {{ .sensor_id }} reported {{ .status }} at {{ .timestamp }}Si no se configura ninguna plantilla, la carga completa se codifica como JSON como mensaje.
Casos de Uso
Sección titulada «Casos de Uso»- Notificaciones a operadores ante violaciones de umbral
- Enrutamiento de incidentes a canales de guardia vía Slack o Teams
- Registro de auditoría vía webhook a un SIEM o endpoint HTTP
- Alertas de correo corporativo con OAuth de Microsoft 365 (sin contraseña SMTP necesaria)
Mejores Prácticas
Sección titulada «Mejores Prácticas»- Usa plantillas para mantener los mensajes cortos, legibles y accionables
- Coloca Trigger o Rate Limiter por delante para evitar inundar los canales
- Para Microsoft 365, prefiere autenticación por certificado en producción; rota los secretos regularmente
- Usa el canal webhook al enviar a sistemas internos que no requieren una integración específica del proveedor
Conectores Relacionados
Sección titulada «Conectores Relacionados»- Alert - Alertas con estado, duración y enfriamiento
- Trigger - Filtrar notificaciones por condición
- Rate Limiter - Limitar la frecuencia de notificación