Slack Connector
Stanje konektorja: Načrtovano Še ni izdelano. Tajo danes ne poganja tega konektorja.
Ponazoritev · vzorčni podatki
Primer sinhronizacije
Vir
Slack
Stanje konektorja: Načrtovano
Cilj
Vaše drugo orodje
Stanje konektorja: Orodje po meri
Preslikava polj
| Izvorno polje | Ciljno polje | Vzorčna vrednost |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Osnutek
- Preglejte en zapis
- Odobrite to različico
Stanja veljajo za posamezne konektorje in ne zagotavljajo, da je ta sinhronizacija pripravljena. Polja so ponazoritvena. Pred zagonom sinhronizacije preverite dejansko shemo in dovoljenja.
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
| Lastnost | Vrednost |
|---|---|
| Platforma | Slack |
| Kategorija | Integracija po meri |
| Zahtevnost nastavitve | Enostavna |
| Uradna integracija | Ne |
| Sinhronizirani podatki | Uporabniki, kanali, sporočila, dogodki |
| Osnovni URL API | https://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š:
- Delovno okolje Slack z administratorskim dostopom
- Aplikacijo Slack, ustvarjeno na api.slack.com/apps
- Bota žetona z zahtevanimi obsegi
- Brevo račun z dostopom do API
- Tajo račun
Avtentikacija
Bot žeton (priporočeno)
Namesti aplikacijo Slack v delovno okolje in za dostop do API uporabi bot žeton.
- Ustvari aplikacijo na api.slack.com/apps
- Dodaj zahtevane obsege OAuth pod “OAuth & Permissions”
- Namesti aplikacijo v delovno okolje
- Kopiraj 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
Za distribucijo integracije Slack v več delovnih okolij:
# Authorization URLhttps://slack.com/oauth/v2/authorize? client_id={client_id}& scope=chat:write,channels:read,users:read& redirect_uri={redirect_uri}
# Token exchangecurl -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 messageschannels:read # List channelschannels:history # Read channel messagesusers:read # List workspace usersusers:read.email # Read user email addressesreactions:write # Add reactions to messagesfiles:write # Upload filesDostop 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_alertPreslikava 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
| Metoda | Končna točka | Opis |
|---|---|---|
POST | chat.postMessage | Pošlji sporočilo v kanal |
POST | chat.update | Posodobi obstoječe sporočilo |
POST | chat.delete | Izbriši sporočilo |
POST | chat.scheduleMessage | Načrtuj sporočilo |
POST | chat.postEphemeral | Pošlji kratko sporočilo uporabniku |
Kanali
| Metoda | Končna točka | Opis |
|---|---|---|
GET | conversations.list | Seznam kanalov |
GET | conversations.info | Pridobi informacije o kanalu |
GET | conversations.members | Seznam članov kanala |
GET | conversations.history | Pridobi sporočila kanala |
Uporabniki
| Metoda | Končna točka | Opis |
|---|---|---|
GET | users.list | Seznam uporabnikov delovnega okolja |
GET | users.info | Pridobi informacije o uporabniku |
GET | users.lookupByEmail | Poišči uporabnika po e-mailu |
GET | users.conversations | Seznam kanalov uporabnika |
Interakcije
| Metoda | Končna točka | Opis |
|---|---|---|
POST | views.open | Odpri modalni pogled |
POST | views.update | Posodobi modalni pogled |
POST | reactions.add | Dodaj emoji reakcijo |
Dogodki
Obvestila Brevo-na-Slack
| Dogodek | Sprožilec | Dejanje Slack |
|---|---|---|
new_subscriber | Ustvarjen stik v Brevo | Objavi v #marketing |
campaign_sent | Poslana e-mail kampanja | Objavi povzetek v #marketing |
order_placed | Zaznano naročilo visoke vrednosti | Objavi v #sales s podrobnostmi |
cart_abandoned | Košarica zapuščena 30 min | Objavi v #sales za nadaljnje ukrepanje |
ticket_created | Odprt zahtevek za podporo | Objavi v #support |
unsubscribed | Stik odjavil naročnino | Objavi opozorilo v #marketing |
Sprožilci Slack-na-Brevo
| Événement Slack | Sprožilec | Dejanje Brevo |
|---|---|---|
message_action | Bližnjica sporočila po meri | Dodaj stik na seznam ali sproži avtomatizacijo |
block_actions | Klik gumba v sporočilu | Posodobi atribut stika ali pošlji e-mail |
view_submission | Oddaja modalnega obrazca | Ustvari 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 Slackawait 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 placedawait 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' } ] } ] }});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:
| Stopnja | Omejitev | Pogoste metode |
|---|---|---|
| Stopnja 1 | 1 zahtevek/min | chat.delete, conversations.kick |
| Stopnja 2 | 20 zahtevkov/min | conversations.history, users.info |
| Stopnja 3 | 50 zahtevkov/min | conversations.list, users.list |
| Stopnja 4 | 100 zahtevkov/min | chat.postMessage |
| Posebno | Razlikuje se | chat.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žava | Vzrok | Rešitev |
|---|---|---|
not_authed | Neveljaven bot žeton | Znova namesti aplikacijo in kopiraj nov bot žeton |
channel_not_found | Bot ni v kanalu | Povabi bota v ciljni kanal |
missing_scope | Zahtevani obseg ni odobren | Dodaj obseg in znova namesti aplikacijo |
| Événement ni prejet | Naročnina na événement ni nastavljena | Nastavi URL za naročnine na événements |
| Timeout interakcije | Odgovor > 3 sekunde | Takoj odgovori z 200, obdeluj asinhrono |
Način odpravljanja napak
Omogoči podrobno beleženje:
connectors: slack: debug: true log_level: verbose log_events: truePreizkus povezave
tajo connectors test slack# ✓ Bot token valid# ✓ Workspace accessible# ✓ Channels readable# ✓ Message posting enabled# ✓ Event subscriptions activeNajboljše prakse
- Uporabi Block Kit – gradi bogata, interaktivna sporočila z okvirjem Block Kit Slack
- Hitro odgovarjaj – potrdi interakcije v 3 sekundah, obdeluj asinhrono
- Sorodna sporočila v niti – grupiraj sorodna obvestila v niti za zmanjšanje šuma
- Usmerjanje po kanalu – različne vrste événements pošlji ustreznim ekipnim kanalom
- Vključi gumbe za dejanja – dodaj gumbe “View in Brevo” za hiter dostop do podatkov o strankah
- 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