Slack Connector

Poveži svoje delovno okolje Slack z Brevo prek Tajo za marketinška obvestila v realnem času, opozorila ekipe ob événementih strank in avtomatizacijo delovnih tokov, ki jih sprožajo interakcije Slack.

Pregled

LastnostVrednost
PlatformaSlack
KategorijaIntegracija po meri
Zahtevnost nastavitveEnostavna
Uradna integracijaDa
Sinhronizirani podatkiUporabniki, kanali, sporočila, dogodki
Osnovni URL APIhttps://slack.com/api

Funkcionalnosti

  • Marketinška opozorila – pošlji obvestila v realnem času za événements kampanj, nove naročnike in mejnike prihodkov
  • Obvestila o événementih strank – opozori ekipe na visoko vrednostne akcije strank iz Brevo
  • Sprožilci delovnih tokov – interakcije Slack (kliki gumbov, oddaje obrazcev) použij za sprožanje avtomatizacij Brevo
  • Usmerjanje po kanalu – usmerjaj obvestila v specifične kanale glede na vrsto événementa ali segment strank
  • Sinhronizacija uporabnikov – preslikaj uporabnike delovnega okolja Slack v stike Brevo za interno komunikacijo
  • Interaktivna sporočila – pošlji bogata sporočila z gumbi in dejanji za ekipne delovne tokove
  • Načrtovana sporočila – načrtuj obvestila za dnevne/tedenske marketinške povzetke
  • Podpora za niti – grupiraj sorodna obvestila v niti za organizirano komunikacijo

Predpogoji

Preden začneš, se prepričaj, da imaš:

  1. Delovno okolje Slack z administratorskim dostopom
  2. Aplikacijo Slack, ustvarjeno na api.slack.com/apps
  3. Bota žetona z zahtevanimi obsegi
  4. Brevo račun z dostopom do API
  5. Tajo račun

Avtentikacija

Bot žeton (priporočeno)

Namesti aplikacijo Slack v delovno okolje in za dostop do API uporabi bot žeton.

  1. Ustvari aplikacijo na api.slack.com/apps
  2. Dodaj zahtevane obsege OAuth pod “OAuth & Permissions”
  3. Namesti aplikacijo v delovno okolje
  4. Kopiraj 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

Za distribucijo integracije Slack v več delovnih okolij:

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

Zahtevani obsegi bota

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

Dostop do e-maila uporabnika

Obseg users:read.email je zahtevan za ujemanje uporabnikov Slack s stiki Brevo. Brez njega bo preslikava uporabnikov omejena na prikazana imena.

Konfiguracija

Osnovna nastavitev

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

Preslikava polj

Preslikaj podatke o uporabnikih Slack v atribute stikov Brevo:

Privzete preslikave

Parameter Type Description
profile.email required
string

E-mail uporabnika (enolični identifikator za ujemanje z Brevo)

real_name optional
string

Polno ime, razdeljeno v FIRSTNAME/LASTNAME

profile.phone optional
string

Preslika se v atribut SMS

profile.title optional
string

Naziv delovnega mesta

tz optional
string

Časovni pas uporabnika

is_admin optional
boolean

Status administratorja delovnega okolja

team_id optional
string

ID ekipe delovnega okolja

status_text optional
string

Status po meri uporabnika

Metode API

Sporočanje

MetodaKončna točkaOpis
POSTchat.postMessagePošlji sporočilo v kanal
POSTchat.updatePosodobi obstoječe sporočilo
POSTchat.deleteIzbriši sporočilo
POSTchat.scheduleMessageNačrtuj sporočilo
POSTchat.postEphemeralPošlji kratko sporočilo uporabniku

Kanali

MetodaKončna točkaOpis
GETconversations.listSeznam kanalov
GETconversations.infoPridobi informacije o kanalu
GETconversations.membersSeznam članov kanala
GETconversations.historyPridobi sporočila kanala

Uporabniki

MetodaKončna točkaOpis
GETusers.listSeznam uporabnikov delovnega okolja
GETusers.infoPridobi informacije o uporabniku
GETusers.lookupByEmailPoišči uporabnika po e-mailu
GETusers.conversationsSeznam kanalov uporabnika

Interakcije

MetodaKončna točkaOpis
POSTviews.openOdpri modalni pogled
POSTviews.updatePosodobi modalni pogled
POSTreactions.addDodaj emoji reakcijo

Dogodki

Obvestila Brevo-na-Slack

DogodekSprožilecDejanje Slack
new_subscriberUstvarjen stik v BrevoObjavi v #marketing
campaign_sentPoslana e-mail kampanjaObjavi povzetek v #marketing
order_placedZaznano naročilo visoke vrednostiObjavi v #sales s podrobnostmi
cart_abandonedKošarica zapuščena 30 minObjavi v #sales za nadaljnje ukrepanje
ticket_createdOdprt zahtevek za podporoObjavi v #support
unsubscribedStik odjavil naročninoObjavi opozorilo v #marketing

Sprožilci Slack-na-Brevo

Événement SlackSprožilecDejanje Brevo
message_actionBližnjica sporočila po meriDodaj stik na seznam ali sproži avtomatizacijo
block_actionsKlik gumba v sporočiluPosodobi atribut stika ali pošlji e-mail
view_submissionOddaja modalnega obrazcaUstvari stik ali sproži delovni tok

Primeri kode

Inicializacija konektorja

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

Pošiljanje marketinških obvestil

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

Obravnava interakcij 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();
});

Omejitve hitrosti

Omejitve hitrosti Slack API uporabljajo stopenjski sistem:

StopnjaOmejitevPogoste metode
Stopnja 11 zahtevek/minchat.delete, conversations.kick
Stopnja 220 zahtevkov/minconversations.history, users.info
Stopnja 350 zahtevkov/minconversations.list, users.list
Stopnja 4100 zahtevkov/minchat.postMessage
PosebnoRazlikuje sechat.postMessage v isti kanal: 1/s

Dodatne omejitve:

  • Web API: Omejitev za sunke s kratkoročnim omejevanjem
  • Events API: Ponovni poskusi dostave za 3 poskuse
  • Dohodne webhooks: 1 sporočilo/sekundo na URL webhooks
  • Block Kit: Največ 50 blokov na sporočilo

Hitrost objavljanja v kanal

Objavljanje v isti kanal je omejeno na približno 1 sporočilo na sekundo. Za izogibanje omejevanju hitrosti paketno objavljaj obvestila ali uporabi niti.

Odpravljanje težav

Pogoste težave

TežavaVzrokRešitev
not_authedNeveljaven bot žetonZnova namesti aplikacijo in kopiraj nov bot žeton
channel_not_foundBot ni v kanaluPovabi bota v ciljni kanal
missing_scopeZahtevani obseg ni odobrenDodaj obseg in znova namesti aplikacijo
Événement ni prejetNaročnina na événement ni nastavljenaNastavi URL za naročnine na événements
Timeout interakcijeOdgovor > 3 sekundeTakoj odgovori z 200, obdeluj asinhrono

Način odpravljanja napak

Omogoči podrobno beleženje:

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

Preizkus povezave

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

Najboljše prakse

  1. Uporabi Block Kit – gradi bogata, interaktivna sporočila z okvirjem Block Kit Slack
  2. Hitro odgovarjaj – potrdi interakcije v 3 sekundah, obdeluj asinhrono
  3. Sorodna sporočila v niti – grupiraj sorodna obvestila v niti za zmanjšanje šuma
  4. Usmerjanje po kanalu – različne vrste événements pošlji ustreznim ekipnim kanalom
  5. Vključi gumbe za dejanja – dodaj gumbe “View in Brevo” za hiter dostop do podatkov o strankah
  6. Implementiraj unfurling – prikaži bogate predoglede za povezave Brevo, deljene v Slack

Varnost

  • Bot žeton – žeton za dostop z obsegom OAuth in natančnimi dovoljenji
  • Podpisovanje zahtevkov – preverjanje podpisa HMAC SHA-256 za dohodne zahtevke
  • OAuth 2.0 – industrijski standard za avtorizacijo za distribucijo v več delovnih okolij
  • TLS šifriranje – vsa komunikacija API šifrirana prek HTTPS
  • Rotacija žetonov – samodejno rotiranje žetonov za izboljšano varnost

Povezani viri

Subscribe to updates

developer-docs

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

auto-detect
AI pomočnik

Živjo! Vprašajte me o dokumentaciji.