Elementary prend en charge Slack et Microsoft Teams comme destinations d’alertes. Les mécanismes pour chacun sont différents, et dans Slack il existe deux méthodes d’intégration avec des capacités significativement différentes.
Slack : token vs webhook
L’intégration par token est l’approche recommandée. Elle vous donne des canaux personnalisés par modèle, le taggage d’utilisateurs (@jessica.jones), et des téléchargements de fichiers incluant des informations détaillées sur les échecs. La configuration prend 10 à 15 minutes.
Créez une application Slack dans votre espace de travail, puis ajoutez ces portées de token de bot :
channels:joinchannels:readchat:writefiles:writeusers:readusers:read.emailgroups:read
Installez l’application dans votre espace de travail, copiez le token de bot, puis configurez Elementary :
# Dans votre profil Elementaryslack: token: xoxb-your-slack-token channel_name: data-alerts group_alerts_by: "table"Ou passez directement à l’interface CLI :
edr monitor \ --slack-token $SLACK_TOKEN \ --slack-channel-name data-alerts \ --group-by tableL’intégration par webhook est plus simple mais limitée. Vous créez un webhook entrant dans Slack — sans application personnalisée requise — et passez l’URL à l’interface CLI :
edr monitor --slack-webhook $SLACK_WEBHOOK_URLL’inconvénient est que les webhooks n’envoient que vers un canal fixe unique et ne prennent pas en charge les mentions d’utilisateurs. Pas de @jessica.jones dans l’alerte, pas de routage vers #finance-data-alerts basé sur les métadonnées du modèle. Les webhooks conviennent pour une preuve de concept rapide ou pour les cas où un seul canal fixe sans mentions d’utilisateurs est suffisant. L’intégration par token est la norme pour un usage en production.
Routage des alertes vers différents canaux Slack
Avec l’intégration par token, les alertes sont routées vers des canaux spécifiques en fonction des métadonnées du modèle. Deux patterns fonctionnent bien ensemble.
Le routage par modèle est la solution de repli pour les modèles qui nécessitent un comportement non standard :
models: - name: mrt__marketing__campaigns config: meta: channel: marketing-data-alertsLe routage par chemin dans dbt_project.yml gère des répertoires entiers à la fois :
models: your_project: marts: marketing: +meta: channel: marketing-data-alerts finance: +meta: channel: finance-data-alertsChaque modèle sous marts/marketing/ est routé vers #marketing-data-alerts, chaque modèle sous marts/finance/ vers #finance-data-alerts. Les modèles individuels peuvent toujours remplacer cela en définissant leur propre channel dans le YAML au niveau du modèle — la configuration la plus spécifique l’emporte.
La structure des canaux dépend de l’organisation de l’équipe. Un canal par domaine (finance, marketing, produit) convient aux équipes de taille moyenne organisées par fonction. Un canal par squad convient aux équipes organisées par domaine produit. Un seul canal partagé pour toutes les alertes tend à produire un volume élevé qui réduit le rapport signal/bruit pour les destinataires.
Microsoft Teams
L’intégration Teams utilise des webhooks avec des Adaptive Cards pour la mise en forme. La configuration est simple :
teams: notification_webhook: https://your-org.webhook.office.com/webhookb2/... group_alerts_by: "table"Ou via l’interface CLI :
edr monitor --teams-webhook $TEAMS_WEBHOOK_URLL’intégration Teams présente plusieurs limitations : les mentions d’utilisateurs ne sont pas pleinement prises en charge, les options de mise en forme sont plus contraintes que Slack, et Microsoft a déprécié les Incoming Webhooks fin 2025. Les organisations qui n’ont pas migré vers Power Automate Workflows devront le faire.
Pour les organisations qui standardisent sur Teams, les Power Automate Workflows déclenchés par des événements webhook offrent plus de contrôle sur la mise en forme des messages et le routage des notifications que l’ancienne approche par webhook. L’URL du webhook entrant change lors de la migration, mais la configuration Elementary conserve la même structure.
Si vous avez besoin de capacités d’alertes plus riches que ce que Teams supporte actuellement — routage par canal, mentions d’utilisateurs, mise en forme conditionnelle — la voie pratique est soit Elementary Cloud (qui s’étend à PagerDuty et d’autres outils de gestion d’incidents), soit une approche hybride où les alertes Elementary vont dans un canal Teams et un workflow Power Automate gère le routage ultérieur.