Konektor Slack

Propojte svůj pracovní prostor Slack s Brevo přes Tajo pro notifikace marketingu v reálném čase, týmové upozornění na zákaznické události a automatizaci pracovních toků spouštěnou interakcemi Slack.

Přehled

VlastnostHodnota
PlatformaSlack
KategorieVlastní integrace
Složitost nastaveníSnadná
Oficiální integraceAno
Synchronizovaná dataUživatelé, Kanály, Zprávy, Události
Základní URL APIhttps://slack.com/api

Funkce

  • Marketingová upozornění – Odesílejte notifikace v reálném čase pro události kampaní, nové odběratele a příjmové milníky
  • Notifikace zákaznických událostí – Upozorňujte týmy na hodnotné zákaznické akce z Brevo
  • Spouštěče pracovních toků – Používejte interakce Slack (kliknutí na tlačítka, odeslání formulářů) pro spouštění automatizací Brevo
  • Směrování podle kanálů – Směrujte notifikace do konkrétních kanálů na základě typu události nebo segmentu zákazníků
  • Synchronizace uživatelů – Mapujte uživatele pracovního prostoru Slack na kontakty Brevo pro interní komunikaci
  • Interaktivní zprávy – Odesílejte bohaté zprávy s tlačítky a akcemi pro týmové pracovní toky
  • Plánované zprávy – Plánujte notifikace pro denní/týdenní marketingové shrnutí
  • Podpora vláken – Seskupujte související notifikace ve vláknech pro organizovanou komunikaci

Předpoklady

Než začnete, ujistěte se, že máte:

  1. Pracovní prostor Slack s administrátorským přístupem
  2. Aplikaci Slack vytvořenou na api.slack.com/apps
  3. Bot token s požadovanými rozsahy
  4. Účet Brevo s přístupem k API
  5. Účet Tajo

Ověření

Bot Token (doporučeno)

Nainstalujte aplikaci Slack do svého pracovního prostoru a pro přístup k API použijte bot token.

  1. Vytvořte aplikaci na api.slack.com/apps
  2. Přidejte požadované rozsahy OAuth v části “OAuth & Permissions”
  3. Nainstalujte aplikaci do pracovního prostoru
  4. Zkopírujte 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

Pro distribuci integrace Slack do více pracovních prostorů:

Terminal window
# Autorizační URL
https://slack.com/oauth/v2/authorize?
client_id={client_id}&
scope=chat:write,channels:read,users:read&
redirect_uri={redirect_uri}
# Výměna tokenů
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é rozsahy bota

chat:write # Odesílání zpráv
channels:read # Výpis kanálů
channels:history # Čtení zpráv kanálu
users:read # Výpis uživatelů pracovního prostoru
users:read.email # Čtení e-mailových adres uživatelů
reactions:write # Přidávání reakcí ke zprávám
files:write # Nahrávání souborů

Přístup k e-mailu uživatele

Rozsah users:read.email je nutný pro párování uživatelů Slack s kontakty Brevo. Bez něj bude mapování uživatelů omezeno na zobrazovaná jména.

Konfigurace

Základní nastavení

connectors:
slack:
enabled: true
bot_token: "${SLACK_BOT_TOKEN}"
signing_secret: "${SLACK_SIGNING_SECRET}"
# Kanály pro notifikace
channels:
marketing: "C01234567"
sales: "C01234568"
support: "C01234569"
alerts: "C01234570"
# Směrování událostí
notifications:
new_subscriber:
channel: marketing
template: subscriber_alert
high_value_order:
channel: sales
template: order_alert
support_ticket:
channel: support
template: ticket_alert

Mapování polí

Mapujte uživatelská data Slack na atributy kontaktů Brevo:

Výchozí mapování

Parameter Type Description
profile.email required
string

E-mail uživatele (jedinečný identifikátor pro párování v Brevo)

real_name optional
string

Celé jméno, rozdělené na FIRSTNAME/LASTNAME

profile.phone optional
string

Mapuje se na atribut SMS

profile.title optional
string

Pracovní pozice

tz optional
string

Časové pásmo uživatele

is_admin optional
boolean

Stav administrátora pracovního prostoru

team_id optional
string

ID týmu pracovního prostoru

status_text optional
string

Vlastní stav uživatele

Metody API

Zasílání zpráv

MetodaKoncový bodPopis
POSTchat.postMessageOdeslání zprávy do kanálu
POSTchat.updateAktualizace existující zprávy
POSTchat.deleteSmazání zprávy
POSTchat.scheduleMessageNaplánování zprávy
POSTchat.postEphemeralOdeslání dočasné zprávy uživateli

Kanály

MetodaKoncový bodPopis
GETconversations.listVýpis kanálů
GETconversations.infoInformace o kanálu
GETconversations.membersVýpis členů kanálu
GETconversations.historyZískání zpráv kanálu

Uživatelé

MetodaKoncový bodPopis
GETusers.listVýpis uživatelů pracovního prostoru
GETusers.infoInformace o uživateli
GETusers.lookupByEmailVyhledání uživatele podle e-mailu
GETusers.conversationsVýpis kanálů uživatele

Interakce

MetodaKoncový bodPopis
POSTviews.openOtevření modálního zobrazení
POSTviews.updateAktualizace modálního zobrazení
POSTreactions.addPřidání reakce emoji

Události

Notifikace Brevo do Slack

UdálostSpouštěčAkce Slack
new_subscriberVytvořen kontakt v BrevoPříspěvek do #marketing
campaign_sentOdeslána e-mailová kampaňZveřejnění shrnutí do #marketing
order_placedZjištěna hodnotná objednávkaPříspěvek do #sales s podrobnostmi
cart_abandonedKošík opuštěn na 30 minPříspěvek do #sales pro sledování
ticket_createdOtevřen supportní tiketPříspěvek do #support
unsubscribedKontakt se odhlásilUpozornění do #marketing

Spouštěče Slack do Brevo

Událost SlackSpouštěčAkce Brevo
message_actionVlastní zástupce zprávyPřidat kontakt do seznamu nebo spustit automatizaci
block_actionsKliknutí na tlačítko ve zprávěAktualizovat atribut kontaktu nebo odeslat e-mail
view_submissionOdeslán modální formulářVytvořit kontakt nebo spustit pracovní tok

Příklady kódu

Inicializace konektoru

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Připojení Slack
await tajo.connectors.connect('slack', {
botToken: process.env.SLACK_BOT_TOKEN,
signingSecret: process.env.SLACK_SIGNING_SECRET
});

Odesílání marketingových notifikací

// Odeslání notifikace při hodnotné objednávce
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'
}
]
}
]
}
});

Zpracování interakcí Slack

import crypto from 'crypto';
app.post('/slack/interactions', async (req, res) => {
// Ověření podpisu požadavku 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);
// Zpracování akcí tlačítek
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();
});

Omezení rychlosti

Limity rychlosti Slack API používají vrstvený systém:

VrstvaLimitBěžné metody
Vrstva 11 požadavek/minutuchat.delete, conversations.kick
Vrstva 220 požadavků/minutuconversations.history, users.info
Vrstva 350 požadavků/minutuconversations.list, users.list
Vrstva 4100 požadavků/minutuchat.postMessage
SpeciálníRůznéchat.postMessage do stejného kanálu: 1/s

Další limity:

  • Web API: Burstový limit s krátkodobým omezováním
  • Events API: Opakování doručení pro 3 pokusy
  • Příchozí webhooky: 1 zpráva/s na URL webhooku
  • Block Kit: Maximálně 50 bloků na zprávu

Rychlost příspěvků do kanálu

Příspěvky do stejného kanálu jsou omezeny přibližně na 1 zprávu za sekundu. Dávkujte notifikace nebo používejte vlákna pro zamezení omezování rychlosti.

Řešení problémů

Časté problémy

ProblémPříčinaŘešení
not_authedNeplatný bot tokenPřeinstalujte aplikaci a zkopírujte nový bot token
channel_not_foundBot není v kanáluPozvěte bota do cílového kanálu
missing_scopePožadovaný rozsah nebyl udělenPřidejte rozsah a přeinstalujte aplikaci
Událost nebyla přijataOdběr událostí není nastavenNakonfigurujte URL Event Subscriptions
Timeout interakceOdpověď >3 sekundyOkamžitě odpovězte s 200, zpracovávejte asynchronně

Režim ladění

Povolte podrobné protokolování:

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

Test připojení

Terminal window
tajo connectors test slack
# ✓ Bot token platný
# ✓ Pracovní prostor přístupný
# ✓ Kanály čitelné
# ✓ Odesílání zpráv povoleno
# ✓ Odběry událostí aktivní

Osvědčené postupy

  1. Používejte Block Kit – Vytvářejte bohaté, interaktivní zprávy s frameworkem Block Kit Slack
  2. Reagujte rychle – Potvrzujte interakce do 3 sekund, zpracovávejte asynchronně
  3. Vlákněte související zprávy – Seskupujte související notifikace ve vláknech pro snížení šumu
  4. Směrujte podle kanálu – Odesílejte různé typy událostí do příslušných týmových kanálů
  5. Zahrňte akční tlačítka – Přidávejte tlačítka “View in Brevo” pro rychlý přístup k zákaznickým datům
  6. Implementujte unfurling – Zobrazujte bohaté náhledy pro odkazy Brevo sdílené ve Slack

Zabezpečení

  • Bot Token – Přístupový token s rozsahem OAuth a granulovanými oprávněními
  • Podepisování požadavků – Ověření podpisu HMAC SHA-256 pro příchozí požadavky
  • OAuth 2.0 – Průmyslově standardní autorizace pro distribuci do více pracovních prostorů
  • Šifrování TLS – Veškerá komunikace API šifrována přes HTTPS
  • Rotace tokenů – Automatická rotace tokenů pro zvýšené zabezpečení

Související zdroje

Subscribe to updates

developer-docs

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

auto-detect
AI asistent

Ahoj! Zeptejte se mě na dokumentaci.