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
| Vlastnost | Hodnota |
|---|---|
| Platforma | Slack |
| Kategorie | Vlastní integrace |
| Složitost nastavení | Snadná |
| Oficiální integrace | Ano |
| Synchronizovaná data | Uživatelé, Kanály, Zprávy, Události |
| Základní URL API | https://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:
- Pracovní prostor Slack s administrátorským přístupem
- Aplikaci Slack vytvořenou na api.slack.com/apps
- Bot token s požadovanými rozsahy
- Účet Brevo s přístupem k API
- Úč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.
- Vytvořte aplikaci na api.slack.com/apps
- Přidejte požadované rozsahy OAuth v části “OAuth & Permissions”
- Nainstalujte aplikaci do pracovního prostoru
- Zkopírujte 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
Pro distribuci integrace Slack do více pracovních prostorů:
# Autorizační URLhttps://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ávchannels:read # Výpis kanálůchannels:history # Čtení zpráv kanáluusers:read # Výpis uživatelů pracovního prostoruusers:read.email # Čtení e-mailových adres uživatelůreactions:write # Přidávání reakcí ke zprávámfiles: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_alertMapová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
| Metoda | Koncový bod | Popis |
|---|---|---|
POST | chat.postMessage | Odeslání zprávy do kanálu |
POST | chat.update | Aktualizace existující zprávy |
POST | chat.delete | Smazání zprávy |
POST | chat.scheduleMessage | Naplánování zprávy |
POST | chat.postEphemeral | Odeslání dočasné zprávy uživateli |
Kanály
| Metoda | Koncový bod | Popis |
|---|---|---|
GET | conversations.list | Výpis kanálů |
GET | conversations.info | Informace o kanálu |
GET | conversations.members | Výpis členů kanálu |
GET | conversations.history | Získání zpráv kanálu |
Uživatelé
| Metoda | Koncový bod | Popis |
|---|---|---|
GET | users.list | Výpis uživatelů pracovního prostoru |
GET | users.info | Informace o uživateli |
GET | users.lookupByEmail | Vyhledání uživatele podle e-mailu |
GET | users.conversations | Výpis kanálů uživatele |
Interakce
| Metoda | Koncový bod | Popis |
|---|---|---|
POST | views.open | Otevření modálního zobrazení |
POST | views.update | Aktualizace modálního zobrazení |
POST | reactions.add | Přidání reakce emoji |
Události
Notifikace Brevo do Slack
| Událost | Spouštěč | Akce Slack |
|---|---|---|
new_subscriber | Vytvořen kontakt v Brevo | Příspěvek do #marketing |
campaign_sent | Odeslána e-mailová kampaň | Zveřejnění shrnutí do #marketing |
order_placed | Zjištěna hodnotná objednávka | Příspěvek do #sales s podrobnostmi |
cart_abandoned | Košík opuštěn na 30 min | Příspěvek do #sales pro sledování |
ticket_created | Otevřen supportní tiket | Příspěvek do #support |
unsubscribed | Kontakt se odhlásil | Upozornění do #marketing |
Spouštěče Slack do Brevo
| Událost Slack | Spouštěč | Akce Brevo |
|---|---|---|
message_action | Vlastní zástupce zprávy | Přidat kontakt do seznamu nebo spustit automatizaci |
block_actions | Kliknutí na tlačítko ve zprávě | Aktualizovat atribut kontaktu nebo odeslat e-mail |
view_submission | Odeslá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í Slackawait 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ávceawait 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' } ] } ] }});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:
| Vrstva | Limit | Běžné metody |
|---|---|---|
| Vrstva 1 | 1 požadavek/minutu | chat.delete, conversations.kick |
| Vrstva 2 | 20 požadavků/minutu | conversations.history, users.info |
| Vrstva 3 | 50 požadavků/minutu | conversations.list, users.list |
| Vrstva 4 | 100 požadavků/minutu | chat.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ém | Příčina | Řešení |
|---|---|---|
not_authed | Neplatný bot token | Přeinstalujte aplikaci a zkopírujte nový bot token |
channel_not_found | Bot není v kanálu | Pozvěte bota do cílového kanálu |
missing_scope | Požadovaný rozsah nebyl udělen | Přidejte rozsah a přeinstalujte aplikaci |
| Událost nebyla přijata | Odběr událostí není nastaven | Nakonfigurujte URL Event Subscriptions |
| Timeout interakce | Odpověď >3 sekundy | Okamž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: trueTest připojení
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
- Používejte Block Kit – Vytvářejte bohaté, interaktivní zprávy s frameworkem Block Kit Slack
- Reagujte rychle – Potvrzujte interakce do 3 sekund, zpracovávejte asynchronně
- Vlákněte související zprávy – Seskupujte související notifikace ve vláknech pro snížení šumu
- Směrujte podle kanálu – Odesílejte různé typy událostí do příslušných týmových kanálů
- Zahrňte akční tlačítka – Přidávejte tlačítka “View in Brevo” pro rychlý přístup k zákaznickým datům
- 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í