Conector Slack
Starea conectorului: Planificat Încă neconstruit. Tajo nu rulează astăzi acest conector.
Ilustrație · date de exemplu
Exemplu de sincronizare
Sursă
Slack
Starea conectorului: Planificat
Destinație
Celălalt instrument al tău
Starea conectorului: Instrument personalizat
Maparea câmpurilor
| Câmp sursă | Câmp destinație | Valoare exemplu |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Ciornă
- Verifică o înregistrare
- Aprobă această versiune
Stările se referă la fiecare conector și nu garantează că această sincronizare este pregătită. Câmpurile sunt ilustrative. Verifică schema și permisiunile reale înainte de sincronizare.
Conectați spațiul de lucru Slack la Brevo prin Tajo pentru notificări de marketing în timp real, alerte de echipă pentru evenimentele clienților și automatizare a fluxului de lucru declanșată de interacțiunile Slack.
Prezentare generală
| Proprietate | Valoare |
|---|---|
| Platformă | Slack |
| Categorie | Integrare personalizată |
| Complexitate configurare | Ușoară |
| Integrare oficială | Nu |
| Date sincronizate | Utilizatori, Canale, Mesaje, Evenimente |
| URL de bază API | https://slack.com/api |
Funcționalități
- Alerte de marketing - Trimiteți notificări în timp real pentru evenimentele campaniei, noii abonați și etapele de venituri
- Notificări de evenimente clienți - Alertați echipele despre acțiunile clienților de mare valoare din Brevo
- Declanșatoare de flux de lucru - Utilizați interacțiunile Slack (clicuri pe butoane, trimiteri de formulare) pentru a declanșa automatizări Brevo
- Rutare bazată pe canal - Rutați notificările către canale specifice pe baza tipului de eveniment sau segmentului de clienți
- Sincronizare utilizatori - Mapați utilizatorii din spațiul de lucru Slack la contactele Brevo pentru comunicații interne
- Mesaje interactive - Trimiteți mesaje bogate cu butoane și acțiuni pentru fluxurile de lucru ale echipei
- Mesaje programate - Programați notificări pentru rezumatele zilnice/săptămânale de marketing
- Suport fire de discuții - Grupați notificările înrudite în fire de discuții pentru comunicare organizată
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:
- Un spațiu de lucru Slack cu acces de administrator
- O aplicație Slack creată la api.slack.com/apps
- Token bot cu scopurile necesare
- Un cont Brevo cu acces API
- Un cont Tajo
Autentificare
Token bot (Recomandat)
Instalați o aplicație Slack în spațiul de lucru și utilizați tokenul bot pentru acces API.
- Creați aplicația la api.slack.com/apps
- Adăugați scopurile OAuth necesare sub “OAuth & Permissions”
- Instalați aplicația în spațiul de lucru
- Copiați 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
Pentru distribuirea integrării Slack la mai multe spații de lucru:
# Authorization URLhttps://slack.com/oauth/v2/authorize? client_id={client_id}& scope=chat:write,channels:read,users:read& redirect_uri={redirect_uri}
# Token exchangecurl -X POST "https://slack.com/api/oauth.v2.access" \ -d "client_id={client_id}" \ -d "client_secret={client_secret}" \ -d "code={auth_code}"Scopuri bot necesare
chat:write # Send messageschannels:read # List channelschannels:history # Read channel messagesusers:read # List workspace usersusers:read.email # Read user email addressesreactions:write # Add reactions to messagesfiles:write # Upload filesAcces e-mail utilizator
Scopul users:read.email este necesar pentru a potrivi utilizatorii Slack cu contactele Brevo. Fără el, maparea utilizatorilor va fi limitată la numele de afișare.
Configurare
Configurare de bază
connectors: slack: enabled: true bot_token: "${SLACK_BOT_TOKEN}" signing_secret: "${SLACK_SIGNING_SECRET}"
# Notification channels channels: marketing: "C01234567" sales: "C01234568" support: "C01234569" alerts: "C01234570"
# Event routing notifications: new_subscriber: channel: marketing template: subscriber_alert high_value_order: channel: sales template: order_alert support_ticket: channel: support template: ticket_alertMapare câmpuri
Mapați datele utilizatorilor Slack la atributele de contact Brevo:
Mapări implicite
| Parameter | Type | Description |
|---|---|---|
profile.email required | string | E-mailul utilizatorului (identificator unic pentru potrivirea cu Brevo) |
real_name optional | string | Numele complet, împărțit în FIRSTNAME/LASTNAME |
profile.phone optional | string | Mapează la atributul SMS |
profile.title optional | string | Titlul postului |
tz optional | string | Fusul orar al utilizatorului |
is_admin optional | boolean | Statusul de administrator al spațiului de lucru |
team_id optional | string | ID-ul echipei din spațiul de lucru |
status_text optional | string | Statusul personalizat al utilizatorului |
Metode API
Mesagerie
| Metodă | Punct final | Descriere |
|---|---|---|
POST | chat.postMessage | Trimite un mesaj într-un canal |
POST | chat.update | Actualizează un mesaj existent |
POST | chat.delete | Șterge un mesaj |
POST | chat.scheduleMessage | Programează un mesaj |
POST | chat.postEphemeral | Trimite mesaj efemer utilizatorului |
Canale
| Metodă | Punct final | Descriere |
|---|---|---|
GET | conversations.list | Listează canalele |
GET | conversations.info | Obține informații canal |
GET | conversations.members | Listează membrii canalului |
GET | conversations.history | Obține mesajele din canal |
Utilizatori
| Metodă | Punct final | Descriere |
|---|---|---|
GET | users.list | Listează utilizatorii din spațiul de lucru |
GET | users.info | Obține informații utilizator |
GET | users.lookupByEmail | Caută utilizator după e-mail |
GET | users.conversations | Listează canalele utilizatorului |
Interacțiuni
| Metodă | Punct final | Descriere |
|---|---|---|
POST | views.open | Deschide o vizualizare modală |
POST | views.update | Actualizează o vizualizare modală |
POST | reactions.add | Adaugă reacție emoji |
Evenimente
Notificări Brevo-la-Slack
| Eveniment | Declanșator | Acțiune Slack |
|---|---|---|
new_subscriber | Contact creat în Brevo | Postează în #marketing |
campaign_sent | Campanie de e-mail trimisă | Postează rezumat în #marketing |
order_placed | Comandă de mare valoare detectată | Postează în #sales cu detalii |
cart_abandoned | Coș abandonat timp de 30 min | Postează în #sales pentru urmărire |
ticket_created | Tichet de suport deschis | Postează în #support |
unsubscribed | Contact dezabonat | Postează alertă în #marketing |
Declanșatoare Slack-la-Brevo
| Eveniment Slack | Declanșator | Acțiune Brevo |
|---|---|---|
message_action | Comandă rapidă mesaj personalizată | Adaugă contact în listă sau declanșează automatizare |
block_actions | Clic pe buton în mesaj | Actualizează atribut contact sau trimite e-mail |
view_submission | Formular modal trimis | Creează contact sau declanșează flux de lucru |
Exemple de cod
Inițializare conector
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Slackawait tajo.connectors.connect('slack', { botToken: process.env.SLACK_BOT_TOKEN, signingSecret: process.env.SLACK_SIGNING_SECRET});Trimitere notificări de marketing
// Send a notification when a high-value order is placedawait 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' } ] } ] }});Gestionare interacțiuni Slack
import crypto from 'crypto';
app.post('/slack/interactions', async (req, res) => { // Verify Slack request signature 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);
// Handle button actions 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();});Limite de rată
Limitele de rată ale API-ului Slack utilizează un sistem pe niveluri:
| Nivel | Limită | Metode frecvente |
|---|---|---|
| Nivel 1 | 1 cerere/minut | chat.delete, conversations.kick |
| Nivel 2 | 20 cereri/minut | conversations.history, users.info |
| Nivel 3 | 50 cereri/minut | conversations.list, users.list |
| Nivel 4 | 100 cereri/minut | chat.postMessage |
| Special | Variabil | chat.postMessage în același canal: 1/sec |
Limite suplimentare:
- Web API: Limită burst cu throttle pe termen scurt
- Events API: Reîncercări de livrare pentru 3 tentative
- Incoming Webhooks: 1 mesaj/secundă per URL webhook
- Block Kit: Maximum 50 blocuri per mesaj
Rata de postare în canal
Postarea în același canal este limitată la aproximativ 1 mesaj pe secundă. Grupați notificările sau utilizați fire de discuții pentru a evita limitarea ratei.
Depanare
Probleme frecvente
| Problemă | Cauză | Soluție |
|---|---|---|
not_authed | Token bot invalid | Reinstalați aplicația și copiați noul token bot |
channel_not_found | Botul nu este în canal | Invitați botul în canalul țintă |
missing_scope | Scop necesar neacordat | Adăugați scopul și reinstalați aplicația |
| Eveniment nerecepted | Abonament eveniment nesetat | Configurați URL-ul Event Subscriptions |
| Timeout interacțiune | Răspuns >3 secunde | Răspundeți cu 200 imediat, procesați asincron |
Modul de depanare
Activați jurnalizarea verbosă:
connectors: slack: debug: true log_level: verbose log_events: trueTestare conexiune
tajo connectors test slack# ✓ Bot token valid# ✓ Workspace accessible# ✓ Channels readable# ✓ Message posting enabled# ✓ Event subscriptions activeBune practici
- Utilizați Block Kit - Construiți mesaje bogate, interactive cu framework-ul Block Kit al Slack
- Răspundeți rapid - Confirmați interacțiunile în 3 secunde, procesați asincron
- Grupați mesajele înrudite - Grupați notificările înrudite în fire de discuții pentru a reduce zgomotul
- Rutați pe canal - Trimiteți diferite tipuri de evenimente în canalele de echipă corespunzătoare
- Includeți butoane de acțiune - Adăugați butoane “View in Brevo” pentru acces rapid la datele clienților
- Implementați unfurling - Afișați previzualizări bogate pentru linkurile Brevo partajate în Slack
Securitate
- Token bot - Token de acces cu scop OAuth cu permisiuni granulare
- Semnare cereri - Verificare semnătură HMAC SHA-256 pentru cererile primite
- OAuth 2.0 - Autorizare standard industrie pentru distribuire multi-spațiu de lucru
- Criptare TLS - Toată comunicarea API criptată prin HTTPS
- Rotație token - Rotație automată a tokenului pentru securitate îmbunătățită