Conector Slack

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ă

ProprietateValoare
PlatformăSlack
CategorieIntegrare personalizată
Complexitate configurareUșoară
Integrare oficialăDa
Date sincronizateUtilizatori, Canale, Mesaje, Evenimente
URL de bază APIhttps://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:

  1. Un spațiu de lucru Slack cu acces de administrator
  2. O aplicație Slack creată la api.slack.com/apps
  3. Token bot cu scopurile necesare
  4. Un cont Brevo cu acces API
  5. 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.

  1. Creați aplicația la api.slack.com/apps
  2. Adăugați scopurile OAuth necesare sub “OAuth & Permissions”
  3. Instalați aplicația în spațiul de lucru
  4. Copiați Bot User OAuth Token (xoxb-...)
Terminal window
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:

Terminal window
# Authorization URL
https://slack.com/oauth/v2/authorize?
client_id={client_id}&
scope=chat:write,channels:read,users:read&
redirect_uri={redirect_uri}
# Token exchange
curl -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 messages
channels:read # List channels
channels:history # Read channel messages
users:read # List workspace users
users:read.email # Read user email addresses
reactions:write # Add reactions to messages
files:write # Upload files

Acces 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_alert

Mapare 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 finalDescriere
POSTchat.postMessageTrimite un mesaj într-un canal
POSTchat.updateActualizează un mesaj existent
POSTchat.deleteȘterge un mesaj
POSTchat.scheduleMessageProgramează un mesaj
POSTchat.postEphemeralTrimite mesaj efemer utilizatorului

Canale

MetodăPunct finalDescriere
GETconversations.listListează canalele
GETconversations.infoObține informații canal
GETconversations.membersListează membrii canalului
GETconversations.historyObține mesajele din canal

Utilizatori

MetodăPunct finalDescriere
GETusers.listListează utilizatorii din spațiul de lucru
GETusers.infoObține informații utilizator
GETusers.lookupByEmailCaută utilizator după e-mail
GETusers.conversationsListează canalele utilizatorului

Interacțiuni

MetodăPunct finalDescriere
POSTviews.openDeschide o vizualizare modală
POSTviews.updateActualizează o vizualizare modală
POSTreactions.addAdaugă reacție emoji

Evenimente

Notificări Brevo-la-Slack

EvenimentDeclanșatorAcțiune Slack
new_subscriberContact creat în BrevoPostează în #marketing
campaign_sentCampanie de e-mail trimisăPostează rezumat în #marketing
order_placedComandă de mare valoare detectatăPostează în #sales cu detalii
cart_abandonedCoș abandonat timp de 30 minPostează în #sales pentru urmărire
ticket_createdTichet de suport deschisPostează în #support
unsubscribedContact dezabonatPostează alertă în #marketing

Declanșatoare Slack-la-Brevo

Eveniment SlackDeclanșatorAcțiune Brevo
message_actionComandă rapidă mesaj personalizatăAdaugă contact în listă sau declanșează automatizare
block_actionsClic pe buton în mesajActualizează atribut contact sau trimite e-mail
view_submissionFormular modal trimisCreează 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 Slack
await 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 placed
await tajo.slack.notify({
channel: 'sales',
event: 'order_placed',
data: {
customerEmail: '[email protected]',
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: '*Customer:*\n[email protected]' },
{ 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:

NivelLimităMetode frecvente
Nivel 11 cerere/minutchat.delete, conversations.kick
Nivel 220 cereri/minutconversations.history, users.info
Nivel 350 cereri/minutconversations.list, users.list
Nivel 4100 cereri/minutchat.postMessage
SpecialVariabilchat.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_authedToken bot invalidReinstalați aplicația și copiați noul token bot
channel_not_foundBotul nu este în canalInvitați botul în canalul țintă
missing_scopeScop necesar neacordatAdăugați scopul și reinstalați aplicația
Eveniment nereceptedAbonament eveniment nesetatConfigurați URL-ul Event Subscriptions
Timeout interacțiuneRăspuns >3 secundeRăspundeți cu 200 imediat, procesați asincron

Modul de depanare

Activați jurnalizarea verbosă:

connectors:
slack:
debug: true
log_level: verbose
log_events: true

Testare conexiune

Terminal window
tajo connectors test slack
# ✓ Bot token valid
# ✓ Workspace accessible
# ✓ Channels readable
# ✓ Message posting enabled
# ✓ Event subscriptions active

Bune practici

  1. Utilizați Block Kit - Construiți mesaje bogate, interactive cu framework-ul Block Kit al Slack
  2. Răspundeți rapid - Confirmați interacțiunile în 3 secunde, procesați asincron
  3. Grupați mesajele înrudite - Grupați notificările înrudite în fire de discuții pentru a reduce zgomotul
  4. Rutați pe canal - Trimiteți diferite tipuri de evenimente în canalele de echipă corespunzătoare
  5. Includeți butoane de acțiune - Adăugați butoane “View in Brevo” pentru acces rapid la datele clienților
  6. 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ă

Resurse conexe

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
Asistent AI

Bună! Întreabă-mă orice despre documentație.