Slack-connector
Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.
Illustratie · voorbeelddata
Voorbeeld van synchronisatie
Bron
Slack
Connectorstatus: Gepland
Bestemming
Je andere tool
Connectorstatus: Eigen tool
Veldtoewijzing
| Bronveld | Doelveld | Voorbeeldwaarde |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Opstellen
- Eén record controleren
- Deze versie goedkeuren
Statussen gelden per connector en garanderen niet dat deze synchronisatie klaar is. De velden zijn illustratief. Controleer het echte schema en de rechten voordat een synchronisatie draait.
Verbind je Slack-workspace met Brevo via Tajo voor realtime marketingnotificaties, teamalerts bij klantgebeurtenissen en workflow-automatisering die getriggerd wordt door Slack-interacties.
Overzicht
| Eigenschap | Waarde |
|---|---|
| Platform | Slack |
| Categorie | Custom Integration |
| Setupcomplexiteit | Eenvoudig |
| Officiële integratie | Nee |
| Gesynchroniseerde data | Gebruikers, Kanalen, Berichten, Events |
| API Base URL | https://slack.com/api |
Functies
- Marketingalerts - Stuur realtime notificaties voor campagne-events, nieuwe abonnees en omzetmijlpalen
- Klantgebeurtenisnotificaties - Waarschuw teams bij waardevolle klantacties vanuit Brevo
- Workflow-triggers - Gebruik Slack-interacties (knopkliks, formulierinzendingen) om Brevo-automatiseringen te triggeren
- Kanaalgebaseerde routing - Route notificaties naar specifieke kanalen op basis van eventtype of klantsegment
- Gebruikerssynchronisatie - Map Slack-workspace-gebruikers naar Brevo-contacten voor interne communicatie
- Interactieve berichten - Stuur rijke berichten met knoppen en acties voor teamworkflows
- Geplande berichten - Plan notificaties voor dagelijkse/wekelijkse marketing-samenvattingen
- Threadsondersteuning - Groepeer gerelateerde notificaties in threads voor georganiseerde communicatie
Vereisten
Voordat je begint, zorg dat je beschikt over:
- Een Slack-workspace met admin-toegang
- Een Slack-app aangemaakt op api.slack.com/apps
- Bot token met de vereiste scopes
- Een Brevo-account met API-toegang
- Een Tajo-account
Authenticatie
Bot Token (aanbevolen)
Installeer een Slack-app in je workspace en gebruik het bot token voor API-toegang.
- Maak een app aan op api.slack.com/apps
- Voeg vereiste OAuth-scopes toe onder “OAuth & Permissions”
- Installeer de app in de workspace
- Kopieer het 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
Voor het distribueren van je Slack-integratie naar meerdere workspaces:
# 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}"Vereiste bot-scopes
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 filesToegang tot gebruikers-e-mails
De users:read.email-scope is vereist om Slack-gebruikers te matchen met Brevo-contacten. Zonder deze scope is gebruikersmapping beperkt tot displaynamen.
Configuratie
Basisinstelling
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_alertVeldmapping
Map Slack-gebruikersdata naar Brevo-contactattributen:
Standaardmappings
| Parameter | Type | Description |
|---|---|---|
profile.email required | string | E-mail van gebruiker (unieke identifier voor Brevo-matching) |
real_name optional | string | Volledige naam, gesplitst in FIRSTNAME/LASTNAME |
profile.phone optional | string | Mapt naar SMS-attribuut |
profile.title optional | string | Functietitel |
tz optional | string | Tijdzone van gebruiker |
is_admin optional | boolean | Workspace admin-status |
team_id optional | string | Workspace team-ID |
status_text optional | string | Custom status van gebruiker |
API-methoden
Berichten
| Method | Endpoint | Beschrijving |
|---|---|---|
POST | chat.postMessage | Een bericht naar een kanaal sturen |
POST | chat.update | Een bestaand bericht bijwerken |
POST | chat.delete | Een bericht verwijderen |
POST | chat.scheduleMessage | Een bericht plannen |
POST | chat.postEphemeral | Ephemeral bericht naar gebruiker sturen |
Kanalen
| Method | Endpoint | Beschrijving |
|---|---|---|
GET | conversations.list | Kanalen opvragen |
GET | conversations.info | Kanaalinfo ophalen |
GET | conversations.members | Kanaalleden opvragen |
GET | conversations.history | Kanaalberichten ophalen |
Gebruikers
| Method | Endpoint | Beschrijving |
|---|---|---|
GET | users.list | Workspace-gebruikers opvragen |
GET | users.info | Gebruikersinfo ophalen |
GET | users.lookupByEmail | Gebruiker zoeken op e-mail |
GET | users.conversations | Kanalen van gebruiker opvragen |
Interacties
| Method | Endpoint | Beschrijving |
|---|---|---|
POST | views.open | Een modal-view openen |
POST | views.update | Een modal-view bijwerken |
POST | reactions.add | Emoji-reactie toevoegen |
Events
Brevo-naar-Slack-notificaties
| Event | Trigger | Slack-actie |
|---|---|---|
new_subscriber | Contact aangemaakt in Brevo | Post naar #marketing |
campaign_sent | E-mailcampagne verzonden | Samenvatting posten naar #marketing |
order_placed | Waardevolle order gedetecteerd | Post naar #sales met details |
cart_abandoned | Winkelwagen 30min verlaten | Post naar #sales voor follow-up |
ticket_created | Supportticket geopend | Post naar #support |
unsubscribed | Contact heeft uitgeschreven | Alert posten naar #marketing |
Slack-naar-Brevo-triggers
| Slack-event | Trigger | Brevo-actie |
|---|---|---|
message_action | Custom message shortcut | Contact toevoegen aan lijst of automatisering triggeren |
block_actions | Knopklik in bericht | Contactattribuut bijwerken of e-mail versturen |
view_submission | Modal-formulier ingediend | Contact aanmaken of workflow triggeren |
Codevoorbeelden
Connector initialiseren
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});Marketingnotificaties versturen
// 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' } ] } ] }});Slack-interacties afhandelen
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();});Rate limits
Slack API-rate limits gebruiken een tier-systeem:
| Tier | Limiet | Veelgebruikte methoden |
|---|---|---|
| Tier 1 | 1 request/minuut | chat.delete, conversations.kick |
| Tier 2 | 20 requests/minuut | conversations.history, users.info |
| Tier 3 | 50 requests/minuut | conversations.list, users.list |
| Tier 4 | 100 requests/minuut | chat.postMessage |
| Speciaal | Variabel | chat.postMessage naar hetzelfde kanaal: 1/sec |
Aanvullende limieten:
- Web API: Burst limit met kortetermijn-throttling
- Events API: Delivery-retries voor 3 pogingen
- Incoming Webhooks: 1 bericht/seconde per webhook-URL
- Block Kit: Maximaal 50 blocks per bericht
Posting rate per kanaal
Posten naar hetzelfde kanaal is beperkt tot ongeveer 1 bericht per seconde. Batch notificaties of gebruik threads om rate limiting te voorkomen.
Probleemoplossing
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
not_authed | Ongeldig bot token | Herinstalleer app en kopieer nieuw bot token |
channel_not_found | Bot niet in kanaal | Nodig de bot uit in het doelkanaal |
missing_scope | Vereiste scope niet verleend | Voeg scope toe en herinstalleer app |
| Event niet ontvangen | Event subscription niet ingesteld | Configureer Event Subscriptions URL |
| Interactie-timeout | Response >3 seconden | Reageer direct met 200, verwerk asynchroon |
Debugmodus
Schakel uitgebreide logging in:
connectors: slack: debug: true log_level: verbose log_events: trueVerbinding testen
tajo connectors test slack# ✓ Bot token valid# ✓ Workspace accessible# ✓ Channels readable# ✓ Message posting enabled# ✓ Event subscriptions activeBest practices
- Gebruik Block Kit - Bouw rijke, interactieve berichten met Slack’s Block Kit-framework
- Reageer snel - Bevestig interacties binnen 3 seconden, verwerk asynchroon
- Thread gerelateerde berichten - Groepeer gerelateerde notificaties in threads om ruis te beperken
- Routeer per kanaal - Stuur verschillende eventtypes naar passende teamkanalen
- Voeg actieknoppen toe - Voeg “View in Brevo”-knoppen toe voor snelle toegang tot klantdata
- Implementeer unfurling - Toon rijke previews voor Brevo-links die in Slack worden gedeeld
Beveiliging
- Bot Token - OAuth-gescoopt access token met granulaire rechten
- Request signing - HMAC SHA-256-signatureverificatie voor binnenkomende requests
- OAuth 2.0 - Industriestandaard-autorisatie voor multi-workspace-distributie
- TLS-encryptie - Alle API-communicatie versleuteld via HTTPS
- Tokenrotatie - Automatische tokenrotatie voor extra beveiliging