Notifications dans une séquence

Les notifications sont le lien entre une séquence automatisée et les équipes humaines. AutomationSequence V8 propose des actions natives pour SMTP, Microsoft Teams (webhooks) et Slack, avec gestion de templates Jinja2, pièces jointes dynamiques et rate limiting pour éviter le spam.

Une séquence sans notification, c'est une boîte noire. Une bonne stratégie de notification signale uniquement les anomalies — pas chaque exécution réussie.

Action smtp_send

{
  "type": "smtp_send",
  "smtp_vault_key": "SMTP_CONFIG",
  "to":      ["ops@entreprise.fr", "{{extra_recipients}}"],
  "cc":      ["direction@entreprise.fr"],
  "subject": "[{{status}}] Export {{service}} — {{date_today}}",
  "template": "templates/email_rapport.html.j2",
  "template_vars": {
    "service":  "{{service}}",
    "nb_lignes":"{{data|length}}",
    "anomalies":"{{anomaly_report}}"
  },
  "attachments": [
    "exports/{{service}}_{{date_YYYYMM}}.csv",
    "rapports/rapport_{{date_YYYYMM}}.docx"
  ],
  "priority": "normal"
}

Templates Jinja2

<!-- templates/email_rapport.html.j2 -->
<html><body style="font-family:Arial,sans-serif">
<h2>Export {{ service }} — {{ date_today }}</h2>
<p><strong>{{ nb_lignes }}</strong> lignes exportées.</p>

{% if anomalies %}
<div style="background:#fff3cd;padding:12px;border-radius:4px">
  <strong>⚠ Anomalies détectées :</strong>
  <ul>
  {% for a in anomalies %}<li>{{ a }}</li>{% endfor %}
  </ul>
</div>
{% else %}
<p style="color:green">✓ Aucune anomalie détectée.</p>
{% endif %}
</body></html>

Pièces jointes dynamiques

# Générer une PJ à la volée avant l'envoi
[
  {"type":"excel_create", "data_var":"data",
   "output":"tmp/rapport.xlsx", "output_var":"excel_path"},

  {"type":"smtp_send",
   "attachments":["{{excel_path}}"],
   "subject":"Rapport {{date_today}}"},

  # Nettoyer le fichier temporaire après envoi
  {"type":"file_delete", "path":"{{excel_path}}"}
]

Microsoft Teams

{
  "type": "teams_send",
  "webhook_vault_key": "TEAMS_WEBHOOK_OPS",
  "card": {
    "type": "AdaptiveCard",
    "title": "Export {{service}} terminé",
    "facts": [
      {"label":"Lignes",  "value":"{{data|length}}"},
      {"label":"Durée",   "value":"{{elapsed_s}}s"},
      {"label":"Statut",  "value":"{{status}}"}
    ],
    "color": "good"
  }
}

Slack

{
  "type": "slack_send",
  "webhook_vault_key": "SLACK_WEBHOOK_OPS",
  "channel": "#ops-alertes",
  "blocks": [
    {"type":"section",
     "text":{"type":"mrkdwn",
            "text":"*Export {{service}}* :white_check_mark:
{{data|length}} lignes — {{elapsed_s}}s"}}
  ]
}

Rate limiting et file d'attente

# Configuration SMTP dans le vault
SMTP_CONFIG: {
  "host": "smtp.entreprise.fr",
  "port": 587,
  "user": "sequences@entreprise.fr",
  "tls": true,
  "rate_limit": {
    "max_per_minute": 10,
    "max_per_hour": 100,
    "queue_on_limit": true,    # mettre en file si limite atteinte
    "max_queue_size": 50
  }
}

# Si rate_limit atteint → SMTP mis en file d'attente
# La file est persistée et reprise au prochain lancement
# Log HMAC de chaque envoi différé

Conclusion

Les actions SMTP, Teams et Slack d'AutomationSequence V8 couvrent tous les canaux de notification professionnels. Les templates Jinja2 permettent des messages HTML riches avec données dynamiques. Le rate limiting et la file d'attente garantissent qu'aucune notification n'est perdue même sous forte charge. La bonne pratique : notifier uniquement sur les anomalies (condition avant smtp_send) pour éviter la fatigue des alertes.

⚙️
PRODUIT LIÉ
AutomationSequence V8.0
← Article précédent Article suivant →