Connecteur Slack
Statut du connecteur: Prévu Pas encore construit. Tajo n'exécute pas ce connecteur aujourd'hui.
Illustration · données d’exemple
Exemple de synchronisation
Source
Slack
Statut du connecteur: Prévu
Destination
Votre autre outil
Statut du connecteur: Outil personnalisé
Correspondance des champs
| Champ source | Champ de destination | Valeur d’exemple |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Préparer
- Vérifier un enregistrement
- Approuver cette version
Les statuts concernent chaque connecteur et ne garantissent pas que cette synchronisation soit prête. Champs illustratifs. Vérifiez le schéma réel et les autorisations avant toute synchronisation.
Connectez votre workspace Slack à Brevo via Tajo pour des notifications marketing en temps réel, des alertes d’équipe sur les événements clients et l’automatisation de workflows déclenchés par les interactions Slack.
Vue d’ensemble
| Propriété | Valeur |
|---|---|
| Plateforme | Slack |
| Catégorie | Intégration personnalisée |
| Complexité d’installation | Facile |
| Intégration officielle | Non |
| Données synchronisées | Utilisateurs, canaux, messages, événements |
| URL de base de l’API | https://slack.com/api |
Fonctionnalités
- Alertes marketing, Envoyez des notifications en temps réel pour les événements de campagne, nouveaux abonnés et jalons de revenus
- Notifications d’événements clients, Alertez les équipes lors d’actions clients à forte valeur depuis Brevo
- Déclencheurs de workflows, Utilisez les interactions Slack (clics de boutons, soumissions de formulaires) pour déclencher des automatisations Brevo
- Routage basé sur les canaux, Routez les notifications vers des canaux spécifiques selon le type d’événement ou le segment client
- Synchronisation d’utilisateurs, Mappez les utilisateurs du workspace Slack aux contacts Brevo pour les communications internes
- Messages interactifs, Envoyez des messages riches avec boutons et actions pour les workflows d’équipe
- Messages planifiés, Planifiez les notifications pour les résumés marketing quotidiens/hebdomadaires
- Prise en charge des threads, Regroupez les notifications liées dans des threads pour une communication organisée
Prérequis
Avant de commencer, assurez-vous de disposer de :
- Un workspace Slack avec accès admin
- Une application Slack créée sur api.slack.com/apps
- Un bot token avec les scopes requis
- Un compte Brevo avec accès API
- Un compte Tajo
Authentification
Bot Token (recommandé)
Installez une application Slack dans votre workspace et utilisez le bot token pour l’accès API.
- Créez l’application sur api.slack.com/apps
- Ajoutez les scopes OAuth requis dans « OAuth & Permissions »
- Installez l’application dans le workspace
- Copiez le Bot User OAuth Token (
xoxb-...)
curl -X POST "https://slack.com/api/chat.postMessage" \ -H "Authorization: Bearer xoxb-YOUR-BOT-TOKEN" \ -H "Content-Type: application/json" \ -d '{"channel": "C01234567", "text": "Hello from Tajo!"}'OAuth 2.0
Pour distribuer votre intégration Slack à plusieurs workspaces :
# URL d'autorisationhttps://slack.com/oauth/v2/authorize? client_id={client_id}& scope=chat:write,channels:read,users:read& redirect_uri={redirect_uri}
# Échange du tokencurl -X POST "https://slack.com/api/oauth.v2.access" \ -d "client_id={client_id}" \ -d "client_secret={client_secret}" \ -d "code={auth_code}"Scopes bot requis
chat:write # Envoyer des messageschannels:read # Lister les canauxchannels:history # Lire les messages de canauxusers:read # Lister les utilisateurs du workspaceusers:read.email # Lire les adresses e-mail utilisateurreactions:write # Ajouter des réactions aux messagesfiles:write # Uploader des fichiersAccès aux e-mails utilisateur
Le scope users:read.email est requis pour faire correspondre les utilisateurs Slack aux contacts Brevo. Sans lui, le mappage utilisateur sera limité aux noms affichés.
Configuration
Configuration de base
connectors: slack: enabled: true bot_token: "${SLACK_BOT_TOKEN}" signing_secret: "${SLACK_SIGNING_SECRET}"
# Canaux de notification channels: marketing: "C01234567" sales: "C01234568" support: "C01234569" alerts: "C01234570"
# Routage d'événements notifications: new_subscriber: channel: marketing template: subscriber_alert high_value_order: channel: sales template: order_alert support_ticket: channel: support template: ticket_alertMappage des champs
Mappez les données utilisateur Slack vers les attributs de contact Brevo :
Default Mappings
| Parameter | Type | Description |
|---|---|---|
profile.email required | string | E-mail utilisateur (identifiant unique pour la correspondance Brevo) |
real_name optional | string | Nom complet, réparti en FIRSTNAME/LASTNAME |
profile.phone optional | string | Mappé vers l'attribut SMS |
profile.title optional | string | Intitulé de poste |
tz optional | string | Fuseau horaire de l'utilisateur |
is_admin optional | boolean | Statut admin du workspace |
team_id optional | string | ID d'équipe du workspace |
status_text optional | string | Statut personnalisé de l'utilisateur |
Méthodes API
Messagerie
| Méthode | Endpoint | Description |
|---|---|---|
POST | chat.postMessage | Envoyer un message vers un canal |
POST | chat.update | Mettre à jour un message existant |
POST | chat.delete | Supprimer un message |
POST | chat.scheduleMessage | Planifier un message |
POST | chat.postEphemeral | Envoyer un message éphémère à un utilisateur |
Canaux
| Méthode | Endpoint | Description |
|---|---|---|
GET | conversations.list | Lister les canaux |
GET | conversations.info | Obtenir les infos d’un canal |
GET | conversations.members | Lister les membres d’un canal |
GET | conversations.history | Obtenir les messages d’un canal |
Utilisateurs
| Méthode | Endpoint | Description |
|---|---|---|
GET | users.list | Lister les utilisateurs du workspace |
GET | users.info | Obtenir les infos d’un utilisateur |
GET | users.lookupByEmail | Trouver un utilisateur par e-mail |
GET | users.conversations | Lister les canaux d’un utilisateur |
Interactions
| Méthode | Endpoint | Description |
|---|---|---|
POST | views.open | Ouvrir une vue modale |
POST | views.update | Mettre à jour une vue modale |
POST | reactions.add | Ajouter une réaction emoji |
Événements
Notifications Brevo-vers-Slack
| Événement | Déclencheur | Action Slack |
|---|---|---|
new_subscriber | Contact créé dans Brevo | Publier dans #marketing |
campaign_sent | Campagne e-mail envoyée | Publier un résumé dans #marketing |
order_placed | Commande à forte valeur détectée | Publier dans #sales avec les détails |
cart_abandoned | Panier abandonné depuis 30 min | Publier dans #sales pour suivi |
ticket_created | Ticket de support ouvert | Publier dans #support |
unsubscribed | Contact désabonné | Publier une alerte dans #marketing |
Déclencheurs Slack-vers-Brevo
| Événement Slack | Déclencheur | Action Brevo |
|---|---|---|
message_action | Raccourci de message personnalisé | Ajouter un contact à une liste ou déclencher une automatisation |
block_actions | Clic sur bouton dans un message | Mettre à jour un attribut de contact ou envoyer un e-mail |
view_submission | Formulaire modal soumis | Créer un contact ou déclencher un workflow |
Exemples de code
Initialiser le connecteur
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connecter Slackawait tajo.connectors.connect('slack', { botToken: process.env.SLACK_BOT_TOKEN, signingSecret: process.env.SLACK_SIGNING_SECRET});Envoyer des notifications marketing
// Envoyer une notification lors d'une commande à forte valeurawait tajo.slack.notify({ channel: 'sales', event: 'order_placed', data: { orderValue: '$1,250.00', products: ['Premium Widget', 'Pro Service'], isFirstOrder: true }, template: { blocks: [ { type: 'header', text: { type: 'plain_text', text: 'New High-Value Order' } }, { type: 'section', fields: [ { type: 'mrkdwn', text: '*Amount:*\n$1,250.00' } ] }, { type: 'actions', elements: [ { type: 'button', text: { type: 'plain_text', text: 'View in Brevo' }, url: 'https://app.brevo.com/contacts' } ] } ] }});Gérer les interactions Slack
import crypto from 'crypto';
app.post('/slack/interactions', async (req, res) => { // Vérifier la signature de la requête Slack const timestamp = req.headers['x-slack-request-timestamp']; const signature = req.headers['x-slack-signature']; const sigBasestring = `v0:${timestamp}:${req.rawBody}`; const mySignature = 'v0=' + crypto .createHmac('sha256', process.env.SLACK_SIGNING_SECRET) .update(sigBasestring) .digest('hex');
if (signature !== mySignature) { return res.status(401).send('Unauthorized'); }
const payload = JSON.parse(req.body.payload);
// Gérer les actions sur boutons if (payload.type === 'block_actions') { await tajo.connectors.handleWebhook('slack', { type: 'interaction', action: payload.actions[0].action_id, userId: payload.user.id, payload }); }
res.status(200).send();});Limites de débit
Les limites de débit de l’API Slack utilisent un système par tiers :
| Tier | Limite | Méthodes courantes |
|---|---|---|
| Tier 1 | 1 requête/minute | chat.delete, conversations.kick |
| Tier 2 | 20 requêtes/minute | conversations.history, users.info |
| Tier 3 | 50 requêtes/minute | conversations.list, users.list |
| Tier 4 | 100 requêtes/minute | chat.postMessage |
| Spécial | Variable | chat.postMessage vers le même canal : 1/s |
Limites supplémentaires :
- Web API : limite de burst avec throttling à court terme
- Events API : livraison avec retry sur 3 tentatives
- Incoming Webhooks : 1 message/seconde par URL de webhook
- Block Kit : maximum 50 blocs par message
Fréquence de publication dans un canal
La publication dans le même canal est limitée à environ 1 message par seconde. Groupez les notifications ou utilisez des threads pour éviter le rate limiting.
Dépannage
Problèmes courants
| Problème | Cause | Solution |
|---|---|---|
not_authed | Bot token invalide | Réinstallez l’application et copiez le nouveau bot token |
channel_not_found | Bot absent du canal | Invitez le bot dans le canal cible |
missing_scope | Scope requis non accordé | Ajoutez le scope et réinstallez l’application |
| Événement non reçu | Abonnement d’événement non configuré | Configurez l’URL Event Subscriptions |
| Timeout d’interaction | Réponse > 3 secondes | Répondez immédiatement 200, traitez en asynchrone |
Mode debug
Activez la journalisation verbeuse :
connectors: slack: debug: true log_level: verbose log_events: trueTester la connexion
tajo connectors test slack# ✓ Bot token valid# ✓ Workspace accessible# ✓ Channels readable# ✓ Message posting enabled# ✓ Event subscriptions activeBonnes pratiques
- Utilisez Block Kit, Construisez des messages riches et interactifs avec le framework Block Kit de Slack
- Répondez rapidement, Acquittez les interactions en moins de 3 secondes, traitez-les en asynchrone
- Mettez les messages associés en thread, Regroupez les notifications liées en threads pour réduire le bruit
- Routez par canal, Envoyez différents types d’événements vers les canaux d’équipe appropriés
- Incluez des boutons d’action, Ajoutez des boutons « View in Brevo » pour un accès rapide aux données clients
- Implémentez l’unfurling, Affichez des previews riches pour les liens Brevo partagés dans Slack
Sécurité
- Bot Token, Token d’accès OAuth à portée limitée avec permissions granulaires
- Signature de requête, Vérification de signature HMAC SHA-256 pour les requêtes entrantes
- OAuth 2.0, Autorisation standard de l’industrie pour la distribution multi-workspaces
- Chiffrement TLS, Toutes les communications API chiffrées via HTTPS
- Rotation des tokens, Rotation automatique des tokens pour une sécurité renforcée