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

SvojstvoVrijednost
PlatformaSlack
KategorijaPrilagođena integracija
Složenost postavljanjaJednostavno
Službena integracijaDa
Sinkronizirani podaciKorisnici, Kanali, Poruke, Događaji
Osnovni URL API-jahttps://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:

  1. Slack radni prostor s administratorskim pristupom
  2. Slack aplikaciju kreiranu na api.slack.com/apps
  3. Bot token s potrebnim opsezima
  4. Brevo račun s API pristupom
  5. Tajo račun

Autentifikacija

Bot Token (Preporučeno)

Instalirajte Slack aplikaciju u svom radnom prostoru i koristite bot token za API pristup.

  1. Kreirajte aplikaciju na api.slack.com/apps
  2. Dodajte potrebne OAuth opsege pod “OAuth & Permissions”
  3. Instalirajte aplikaciju u radni prostor
  4. Kopirajte 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": "Pozdrav iz Taja!"}'

OAuth 2.0

Za distribuciju Slack integracije na više radnih prostora:

Terminal window
# URL autorizacije
https://slack.com/oauth/v2/authorize?
client_id={client_id}&
scope=chat:write,channels:read,users:read&
redirect_uri={redirect_uri}
# Zamjena tokena
curl -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 poruka
channels:read # Popis kanala
channels:history # Čitanje poruka kanala
users:read # Popis korisnika radnog prostora
users:read.email # Čitanje e-mail adresa korisnika
reactions:write # Dodavanje reakcija na poruke
files:write # Učitavanje datoteka

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

Mapiranje 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

MetodaKrajnja točkaOpis
POSTchat.postMessagePošaljite poruku u kanal
POSTchat.updateAžurirajte postojeću poruku
POSTchat.deleteIzbrišite poruku
POSTchat.scheduleMessageZakažite poruku
POSTchat.postEphemeralPošaljite efemeralnu poruku korisniku

Kanali

MetodaKrajnja točkaOpis
GETconversations.listPopis kanala
GETconversations.infoInformacije o kanalu
GETconversations.membersPopis članova kanala
GETconversations.historyPoruke kanala

Korisnici

MetodaKrajnja točkaOpis
GETusers.listPopis korisnika radnog prostora
GETusers.infoInformacije o korisniku
GETusers.lookupByEmailPronađi korisnika prema e-mailu
GETusers.conversationsPopis korisničkih kanala

Interakcije

MetodaKrajnja točkaOpis
POSTviews.openOtvorite modalni prikaz
POSTviews.updateAžurirajte modalni prikaz
POSTreactions.addDodajte emoji reakciju

Događaji

Obavijesti Brevo -> Slack

DogađajOkidačAkcija u Slacku
new_subscriberKontakt kreiran u BrevuObjava u #marketing
campaign_sentEmailska kampanja poslanaObjava sažetka u #marketing
order_placedOtkriven viskovrijedni narudžbaObjava u #sales s detaljima
cart_abandonedNapuštena košarica 30 minObjava u #sales za praćenje
ticket_createdOtvoren tiket podrškeObjava u #support
unsubscribedKontakt se odjavioUpozorenje u #marketing

Okidači Slack -> Brevo

Slack događajOkidačBrevo akcija
message_actionPrilagođeni prečac porukeDodaj kontakt na popis ili pokreni automatizaciju
block_actionsKlik gumba u poruciAžuriraj atribut kontakta ili pošalji e-mail
view_submissionPodnesen modalni obrazacKreiraj 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 Slack
await 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žba
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: 'Nova viskovrijedna narudžba' }
},
{
type: 'section',
fields: [
{ type: 'mrkdwn', text: '*Korisnik:*\n[email protected]' },
{ 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:

RazinaOgraničenjeUobičajene metode
Razina 11 zahtjev/minutachat.delete, conversations.kick
Razina 220 zahtjeva/minutaconversations.history, users.info
Razina 350 zahtjeva/minutaconversations.list, users.list
Razina 4100 zahtjeva/minutachat.postMessage
PosebnoVarirachat.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

ProblemUzrokRješenje
not_authedNevažeći bot tokenPonovo instalirajte aplikaciju i kopirajte novi bot token
channel_not_foundBot nije u kanaluPozovite bota u ciljni kanal
missing_scopeTraženi opseg nije odobrenDodajte opseg i ponovo instalirajte aplikaciju
Događaj nije primljenPretplata na događaj nije postavljenaKonfigurirajte URL pretplate na događaje
Istek interakcijeOdgovor >3 sekundeOdmah 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: true

Testiranje veze

Terminal window
tajo connectors test slack
# ✓ Bot token valjani
# ✓ Radni prostor dostupan
# ✓ Kanali čitljivi
# ✓ Objava poruka omogućena
# ✓ Pretplate na događaje aktivne

Preporučene prakse

  1. Koristite Block Kit - Gradite bogate, interaktivne poruke s Slackovim Block Kit okvirom
  2. Brzo odgovarajte - Potvrdite interakcije u roku od 3 sekunde, asinkrono obradite
  3. Grupirajte povezane poruke u teme razgovora - Smanjite buku grupiranjem obavijesti u temama
  4. Usmjeravajte prema kanalu - Šaljite različite vrste događaja u odgovarajuće timske kanale
  5. Uključite akcijske gumbe - Dodajte gumbe “Pregledaj u Brevu” za brzi pristup korisničkim podacima
  6. 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

Povezani resursi

Subscribe to updates

developer-docs

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

auto-detect
AI asistent

Bok! Pitajte me o dokumentaciji.