Slack Konektor
Povežite svoj Slack radni prostor s Brevom putem Taja za marketinške obavijesti u stvarnom vremenu, timska upozorenja o korisničkim događajima i automatizaciju tijeka rada pokrenuti Slack interakcijama.
Pregled
| Svojstvo | Vrijednost |
|---|---|
| Platforma | Slack |
| Kategorija | Prilagođena integracija |
| Složenost postavljanja | Jednostavno |
| Službena integracija | Da |
| Sinkronizirani podaci | Korisnici, Kanali, Poruke, Događaji |
| Osnovni URL API-ja | https://slack.com/api |
Značajke
- Marketinška upozorenja - Šaljite obavijesti u stvarnom vremenu za događaje kampanje, nove pretplatnike i prihodni prekretnice
- Obavijesti o korisničkim događajima - Upozoravajte timove na visokovjredne korisničke akcije iz Breva
- Okidači tijeka rada - Koristite Slack interakcije (klikovi gumba, slanje obrazaca) za pokretanje Brevo automatizacija
- Usmjeravanje temeljeno na kanalima - Usmjeravajte obavijesti na određene kanale prema vrsti događaja ili segmentu klijenata
- Sinkronizacija korisnika - Mapirajte korisnike Slack radnog prostora na Brevo kontakte za internu komunikaciju
- Interaktivne poruke - Šaljite bogate poruke s gumbima i akcijama za timske tijekove rada
- Zakazane poruke - Zakazujte obavijesti za dnevne/tjedne marketinške sažetke
- Podrška za teme razgovora - Grupirajte povezane obavijesti u temama za organiziranu komunikaciju
Preduvjeti
Prije nego što počnete, osigurajte da imate:
- Slack radni prostor s administratorskim pristupom
- Slack aplikaciju kreiranu na api.slack.com/apps
- Bot token s potrebnim opsezima
- Brevo račun s API pristupom
- Tajo račun
Autentifikacija
Bot Token (Preporučeno)
Instalirajte Slack aplikaciju u svom radnom prostoru i koristite bot token za API pristup.
- Kreirajte aplikaciju na api.slack.com/apps
- Dodajte potrebne OAuth opsege pod “OAuth & Permissions”
- Instalirajte aplikaciju u radni prostor
- Kopirajte 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": "Pozdrav iz Taja!"}'OAuth 2.0
Za distribuciju Slack integracije na više radnih prostora:
# URL autorizacijehttps://slack.com/oauth/v2/authorize? client_id={client_id}& scope=chat:write,channels:read,users:read& redirect_uri={redirect_uri}
# Zamjena tokenacurl -X POST "https://slack.com/api/oauth.v2.access" \ -d "client_id={client_id}" \ -d "client_secret={client_secret}" \ -d "code={auth_code}"Potrebni Bot opsezi
chat:write # Slanje porukachannels:read # Popis kanalachannels:history # Čitanje poruka kanalausers:read # Popis korisnika radnog prostorausers:read.email # Čitanje e-mail adresa korisnikareactions:write # Dodavanje reakcija na porukefiles:write # Učitavanje datotekaPristup korisničkom e-mailu
Opseg users:read.email potreban je za podudaranje Slack korisnika s Brevo kontaktima. Bez njega, mapiranje korisnika bit će ograničeno na prikazna imena.
Konfiguracija
Osnovna konfiguracija
connectors: slack: enabled: true bot_token: "${SLACK_BOT_TOKEN}" signing_secret: "${SLACK_SIGNING_SECRET}"
# Kanali za obavijesti channels: marketing: "C01234567" sales: "C01234568" support: "C01234569" alerts: "C01234570"
# Usmjeravanje događaja notifications: new_subscriber: channel: marketing template: subscriber_alert high_value_order: channel: sales template: order_alert support_ticket: channel: support template: ticket_alertMapiranje polja
Mapirajte Slack korisničke podatke na Brevo atribute kontakata:
Zadana mapiranja
| Parameter | Type | Description |
|---|---|---|
profile.email required | string | E-mail korisnika (jedinstveni identifikator za Brevo podudaranje) |
real_name optional | string | Puno ime, podijeljeno u FIRSTNAME/LASTNAME |
profile.phone optional | string | Mapira na SMS atribut |
profile.title optional | string | Radni naziv |
tz optional | string | Korisnikova vremenska zona |
is_admin optional | boolean | Status administratora radnog prostora |
team_id optional | string | ID tima radnog prostora |
status_text optional | string | Prilagođeni status korisnika |
API metode
Poruke
| Metoda | Krajnja točka | Opis |
|---|---|---|
POST | chat.postMessage | Pošaljite poruku u kanal |
POST | chat.update | Ažurirajte postojeću poruku |
POST | chat.delete | Izbrišite poruku |
POST | chat.scheduleMessage | Zakažite poruku |
POST | chat.postEphemeral | Pošaljite efemeralnu poruku korisniku |
Kanali
| Metoda | Krajnja točka | Opis |
|---|---|---|
GET | conversations.list | Popis kanala |
GET | conversations.info | Informacije o kanalu |
GET | conversations.members | Popis članova kanala |
GET | conversations.history | Poruke kanala |
Korisnici
| Metoda | Krajnja točka | Opis |
|---|---|---|
GET | users.list | Popis korisnika radnog prostora |
GET | users.info | Informacije o korisniku |
GET | users.lookupByEmail | Pronađi korisnika prema e-mailu |
GET | users.conversations | Popis korisničkih kanala |
Interakcije
| Metoda | Krajnja točka | Opis |
|---|---|---|
POST | views.open | Otvorite modalni prikaz |
POST | views.update | Ažurirajte modalni prikaz |
POST | reactions.add | Dodajte emoji reakciju |
Događaji
Obavijesti Brevo -> Slack
| Događaj | Okidač | Akcija u Slacku |
|---|---|---|
new_subscriber | Kontakt kreiran u Brevu | Objava u #marketing |
campaign_sent | Emailska kampanja poslana | Objava sažetka u #marketing |
order_placed | Otkriven viskovrijedni narudžba | Objava u #sales s detaljima |
cart_abandoned | Napuštena košarica 30 min | Objava u #sales za praćenje |
ticket_created | Otvoren tiket podrške | Objava u #support |
unsubscribed | Kontakt se odjavio | Upozorenje u #marketing |
Okidači Slack -> Brevo
| Slack događaj | Okidač | Brevo akcija |
|---|---|---|
message_action | Prilagođeni prečac poruke | Dodaj kontakt na popis ili pokreni automatizaciju |
block_actions | Klik gumba u poruci | Ažuriraj atribut kontakta ili pošalji e-mail |
view_submission | Podnesen modalni obrazac | Kreiraj kontakt ili pokreni tijek rada |
Primjeri koda
Inicijalizacija konektora
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Povežite Slackawait tajo.connectors.connect('slack', { botToken: process.env.SLACK_BOT_TOKEN, signingSecret: process.env.SLACK_SIGNING_SECRET});Slanje marketinških obavijesti
// Pošaljite obavijest kada je postavljena viskovrijedna narudžbaawait 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: 'Nova viskovrijedna narudžba' } }, { type: 'section', fields: [ { type: 'mrkdwn', text: '*Iznos:*\n$1.250,00' } ] }, { type: 'actions', elements: [ { type: 'button', text: { type: 'plain_text', text: 'Pregledaj u Brevu' }, url: 'https://app.brevo.com/contacts' } ] } ] }});Rukovanje Slack interakcijama
import crypto from 'crypto';
app.post('/slack/interactions', async (req, res) => { // Verificirajte Slack potpis zahtjeva 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);
// Upravljajte akcijama gumba 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();});Ograničenja brzine
Slack API ograničenja brzine koriste slojeviti sustav:
| Razina | Ograničenje | Uobičajene metode |
|---|---|---|
| Razina 1 | 1 zahtjev/minuta | chat.delete, conversations.kick |
| Razina 2 | 20 zahtjeva/minuta | conversations.history, users.info |
| Razina 3 | 50 zahtjeva/minuta | conversations.list, users.list |
| Razina 4 | 100 zahtjeva/minuta | chat.postMessage |
| Posebno | Varira | chat.postMessage u isti kanal: 1/s |
Dodatna ograničenja:
- Web API: Naglasni limit s kratkoročnim ograničenjem
- Events API: Ponovne pokušaje isporuke za 3 pokušaja
- Dolazni webhookovi: 1 poruka/sekunda po URL-u webhookova
- Block Kit: Najviše 50 blokova po poruci
Brzina objave u kanalu
Objavljivanje u isti kanal ograničeno je na otprilike 1 poruku po sekundi. Skupne obavijesti ili koristite teme razgovora kako biste izbjegli ograničenja brzine.
Rješavanje problema
Uobičajeni problemi
| Problem | Uzrok | Rješenje |
|---|---|---|
not_authed | Nevažeći bot token | Ponovo instalirajte aplikaciju i kopirajte novi bot token |
channel_not_found | Bot nije u kanalu | Pozovite bota u ciljni kanal |
missing_scope | Traženi opseg nije odobren | Dodajte opseg i ponovo instalirajte aplikaciju |
| Događaj nije primljen | Pretplata na događaj nije postavljena | Konfigurirajte URL pretplate na događaje |
| Istek interakcije | Odgovor >3 sekunde | Odmah odgovorite s 200, asinkrono obradite |
Način otklanjanja grešaka
Omogućite opširno bilježenje:
connectors: slack: debug: true log_level: verbose log_events: trueTestiranje veze
tajo connectors test slack# ✓ Bot token valjani# ✓ Radni prostor dostupan# ✓ Kanali čitljivi# ✓ Objava poruka omogućena# ✓ Pretplate na događaje aktivnePreporučene prakse
- Koristite Block Kit - Gradite bogate, interaktivne poruke s Slackovim Block Kit okvirom
- Brzo odgovarajte - Potvrdite interakcije u roku od 3 sekunde, asinkrono obradite
- Grupirajte povezane poruke u teme razgovora - Smanjite buku grupiranjem obavijesti u temama
- Usmjeravajte prema kanalu - Šaljite različite vrste događaja u odgovarajuće timske kanale
- Uključite akcijske gumbe - Dodajte gumbe “Pregledaj u Brevu” za brzi pristup korisničkim podacima
- Implementirajte unfurling - Prikažite bogate preglede Brevo veza dijeljenih u Slacku
Sigurnost
- Bot Token - OAuth opsežni pristupni token s granularnim dozvolama
- Potpisivanje zahtjeva - HMAC SHA-256 verifikacija potpisa za dolazne zahtjeve
- OAuth 2.0 - Industrijski standardna autorizacija za distribuciju u više radnih prostora
- TLS enkripcija - Sva API komunikacija šifrirana putem HTTPS
- Rotacija tokena - Automatska rotacija tokena za poboljšanu sigurnost