Slack konektor

Prepoj svoj Slack workspace s Brevo cez Tajo pre notifikácie marketingu v reálnom čase, tímové upozornenia na zákaznícke udalosti a automatizáciu workflowov spúšťanú interakciami v Slack.

Prehľad

VlastnosťHodnota
PlatformaSlack
KategóriaVlastná integrácia
Zložitosť nastaveniaĽahké
Oficiálna integráciaÁno
Synchronizované dátaPoužívatelia, Kanály, Správy, Udalosti
API Base URLhttps://slack.com/api

Funkcie

  • Marketingové upozornenia - Posielajaj notifikácie v reálnom čase pre udalosti kampaní, nových odberateľov a príjmové míľniky
  • Notifikácie udalostí zákazníkov - Upozorni tímy na akcie zákazníkov s vysokou hodnotou z Brevo
  • Spúšťače workflowov - Použi interakcie Slack (kliknutia na tlačidlá, odoslania formulárov) na spúšťanie automatizácií Brevo
  • Smerovanie podľa kanálov - Smeruj notifikácie do konkrétnych kanálov podľa typu udalosti alebo segmentu zákazníka
  • Synchronizácia používateľov - Namapuj používateľov workspace Slack na kontakty Brevo pre internú komunikáciu
  • Interaktívne správy - Posielajaj bohaté správy s tlačidlami a akciami pre tímové workflowy
  • Naplánované správy - Plánuj notifikácie pre denné/týždenné marketingové súhrny
  • Podpora vlákien - Zoskupuj súvisiace notifikácie vo vláknach pre organizovanú komunikáciu

Predpoklady

Predtým, než začneš, uisti sa, že máš:

  1. Slack workspace s admin prístupom
  2. Slack aplikáciu vytvorenú na api.slack.com/apps
  3. Bot token s požadovanými scopes
  4. Brevo účet s API prístupom
  5. Tajo účet

Autentifikácia

Bot Token (odporúčané)

Nainštaluj Slack aplikáciu do svojho workspace a použi bot token pre API prístup.

  1. Vytvor aplikáciu na api.slack.com/apps
  2. Pridaj požadované OAuth scopes pod “OAuth & Permissions”
  3. Nainštaluj aplikáciu do workspace
  4. Skopíruj 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

Pre distribúciu tvojej Slack integrácie do viacerých workspaces:

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}"

Požadované Bot scopes

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

Prístup k e-mailu používateľa

Scope users:read.email je potrebný na zhodu používateľov Slack s kontaktmi Brevo. Bez neho bude mapovanie používateľov obmedzené na zobrazované mená.

Konfigurácia

Základné nastavenie

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

Mapovanie polí

Namapuj dáta používateľov Slack na atribúty kontaktov v Brevo:

Predvolené mapovania

Parameter Type Description
profile.email required
string

E-mail používateľa (unikátny identifikátor pre zhodu s Brevo)

real_name optional
string

Celé meno, rozdelené na FIRSTNAME/LASTNAME

profile.phone optional
string

Mapuje sa na atribút SMS

profile.title optional
string

Pracovná pozícia

tz optional
string

Časové pásmo používateľa

is_admin optional
boolean

Stav admin workspace

team_id optional
string

ID tímu workspace

status_text optional
string

Vlastný status používateľa

API metódy

Správy

MetódaEndpointPopis
POSTchat.postMessageOdoslanie správy do kanálu
POSTchat.updateAktualizácia existujúcej správy
POSTchat.deleteOdstránenie správy
POSTchat.scheduleMessageNaplánovaná správa
POSTchat.postEphemeralOdoslanie ephemeral správy používateľovi

Kanály

MetódaEndpointPopis
GETconversations.listZoznam kanálov
GETconversations.infoInformácie o kanáli
GETconversations.membersZoznam členov kanálu
GETconversations.historySprávy kanálu

Používatelia

MetódaEndpointPopis
GETusers.listZoznam používateľov workspace
GETusers.infoInformácie o používateľovi
GETusers.lookupByEmailVyhľadanie používateľa podľa e-mailu
GETusers.conversationsZoznam kanálov používateľa

Interakcie

MetódaEndpointPopis
POSTviews.openOtvorenie modálneho zobrazenia
POSTviews.updateAktualizácia modálneho zobrazenia
POSTreactions.addPridanie emoji reakcie

Udalosti

Notifikácie Brevo → Slack

UdalosťTriggerAkcia v Slack
new_subscriberKontakt vytvorený v BrevoOdoslanie do #marketing
campaign_sentE-mailová kampaň odoslanáOdoslanie súhrnu do #marketing
order_placedObjednávka s vysokou hodnotouOdoslanie do #sales s detailmi
cart_abandonedKošík opustený 30 minOdoslanie do #sales pre follow-up
ticket_createdOtvorený support ticketOdoslanie do #support
unsubscribedKontakt sa odhlásilOdoslanie upozornenia do #marketing

Spúšťače Slack → Brevo

Udalosť SlackTriggerAkcia v Brevo
message_actionVlastná skratka správyPridanie kontaktu do zoznamu alebo spustenie automatizácie
block_actionsKliknutie na tlačidlo v správeAktualizácia atribútu kontaktu alebo odoslanie e-mailu
view_submissionOdoslaný modálny formulárVytvorenie kontaktu alebo spustenie workflowu

Ukážky kódu

Inicializácia konektora

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
});

Odosielanie marketingových notifikácií

// 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'
}
]
}
]
}
});

Spracovanie interakcií 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();
});

Obmedzenia rýchlosti

Slack API rate limity používajú vrstvený systém:

TierLimitBežné metódy
Tier 11 požiadavka/minútuchat.delete, conversations.kick
Tier 220 požiadaviek/minútuconversations.history, users.info
Tier 350 požiadaviek/minútuconversations.list, users.list
Tier 4100 požiadaviek/minútuchat.postMessage
ŠpeciálneRôznechat.postMessage do toho istého kanálu: 1/sek

Ďalšie limity:

  • Web API: Burst limit s krátkodobým throttlovanjem
  • Events API: Opakované pokusy doručenia 3-krát
  • Incoming Webhooks: 1 správa/sekundu na URL webhooku
  • Block Kit: Maximum 50 blokov na správu

Frekvencia príspevkov do kanálu

Príspevky do toho istého kanálu sú obmedzené na približne 1 správu za sekundu. Dávkuj notifikácie alebo použi vlákna na vyhnutie sa rate limitovaniu.

Riešenie problémov

Bežné problémy

ProblémPríčinaRiešenie
not_authedNeplatný bot tokenPreinštaluj aplikáciu a skopíruj nový bot token
channel_not_foundBot nie je v kanáliPozvi bota do cieľového kanálu
missing_scopePožadovaný scope nie je udelenýPridaj scope a preinštaluj aplikáciu
Udalosť nie je prijatáEvent subscription nie je nastavenáNakonfiguruj URL Event Subscriptions
Timeout interakcieOdpoveď > 3 sekundyOkamžite odpovedz 200, spracuj asynchrónne

Debug režim

Zapni verbose logovanie:

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

Test pripojenia

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

Odporúčané postupy

  1. Použi Block Kit - Vytváraj bohaté, interaktívne správy s frameworkom Block Kit od Slack
  2. Odpovedaj rýchlo - Potvrdzuj interakcie do 3 sekúnd, spracovávaj asynchrónne
  3. Zoskupuj súvisiace správy vo vláknach - Zoskupuj súvisiace notifikácie vo vláknach na zníženie šumu
  4. Smeruj podľa kanálu - Posielajaj rôzne typy udalostí do príslušných tímových kanálov
  5. Zahrň akčné tlačidlá - Pridaj tlačidlá “View in Brevo” pre rýchly prístup k zákazníckym dátam
  6. Implementuj unfurling - Zobrazuj bohaté náhľady pre Brevo odkazy zdieľané v Slack

Bezpečnosť

  • Bot Token - Prístupový token s obmedzeným rozsahom OAuth a jemnými oprávneniami
  • Podpisovanie požiadaviek - Overenie podpisu HMAC SHA-256 pre prichádzajúce požiadavky
  • OAuth 2.0 - Priemyselne štandardná autorizácia pre distribúciu do viacerých workspaces
  • TLS šifrovanie - Všetka API komunikácia šifrovaná cez HTTPS
  • Rotácia tokenov - Automatická rotácia tokenov pre zvýšenú bezpečnosť

Súvisiace zdroje

Subscribe to updates

developer-docs

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

auto-detect
AI asistent

Ahoj! Opýtajte sa ma na dokumentáciu.