---
title: "Slack konektor"
description: "Kompletan vodič za Slack integraciju za slanje obaveštenja, sinhronizaciju podataka kanala i pokretanje Brevo automatizacija iz Slack događaja putem Tajo."
url: https://tajo.io/sr/docs/connectors/custom/slack/
markdown: https://tajo.io/sr/docs/connectors/custom/slack.md
lang: sr-Latn-RS
robots: noindex
---

Zatražite rani pristup

Unesite ime i poslovnu adresu e-pošte. Poslaćemo vam vezu za potvrdu zahteva za pristup Taju.

# Slack konektor

Status konektora: Planirano Još nije izrađeno. Tajo danas ne pokreće ovaj konektor.

| Izvorno polje | Odredišno polje | Primer vrednosti |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Poveži svoj Slack radni prostor sa Brevo putem Tajo za obaveštenja o marketingu u realnom vremenu, timska upozorenja o događajima kupaca i automatizaciju toka pokretanu Slack interakcijama.

## Pregled

| Svojstvo | Vrednost |
| --- | --- |
| **Platforma** | Slack |
| **Kategorija** | Prilagođena integracija |
| **Složenost podešavanja** | Lako |
| **Zvanična integracija** | Ne |
| **Sinhronizovani podaci** | Korisnici, Kanali, Poruke, Događaji |
| **Osnovni URL API-ja** | `https://slack.com/api` |

## Karakteristike

- **Marketing upozorenja** - Slanje obaveštenja u realnom vremenu za događaje kampanje, nove pretplatnike i prihodni milestones
- **Obaveštenja o događajima kupaca** - Upozoravanje timova o akcijama kupaca visoke vrednosti iz Brevo
- **Okidači toka** - Korišćenje Slack interakcija (klikovi na dugme, slanje formulara) za pokretanje Brevo automatizacija
- **Rutiranje zasnovano na kanalima** - Rutiranje obaveštenja na specifične kanale prema tipu događaja ili segmentu kupaca
- **Sinhronizacija korisnika** - Mapiranje korisnika Slack radnog prostora na Brevo kontakte za internu komunikaciju
- **Interaktivne poruke** - Slanje bogatih poruka sa dugmadima i akcijama za timske tokove
- **Zakazane poruke** - Zakazivanje obaveštenja za dnevne/nedeljne marketing sažetke
- **Podrška za teme** - Grupisanje srodnih obaveštenja u temama za organizovanu komunikaciju

## Preduslovi

Pre nego što započneš, proveri da imaš:

1. Slack radni prostor sa admin pristupom
2. Slack aplikaciju kreiranu na [api.slack.com/apps](https://api.slack.com/apps)
3. Bot token sa potrebnim skopovima
4. Brevo nalog sa API pristupom
5. Tajo nalog

## Autentifikacija

### Bot Token (preporučeno)

Instaliraj Slack aplikaciju u svom radnom prostoru i koristi bot token za API pristup.

1. Kreiraj aplikaciju na [api.slack.com/apps](https://api.slack.com/apps)
2. Dodaj potrebne OAuth skopove pod “OAuth & Permissions”
3. Instaliraj aplikaciju u radni prostor
4. Kopiraj Bot User OAuth Token (`xoxb-...`)

```bash
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 distribuciju Slack integracije na više radnih prostora:

```bash
# 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}"
```

#### Potrebni bot skopovi

```
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
```

Pristup email-u korisnika

Skop `users:read.email` je potreban za podudaranje Slack korisnika sa Brevo kontaktima. Bez njega, mapiranje korisnika biće ograničeno na prikazana imena.

## Konfiguracija

### Osnovno podešavanje

```yaml
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
```

### Mapiranje polja

Mapiranje Slack korisničkih podataka na Brevo atribute kontakta:

#### Default Mappings

| Parameter | Type | Description |
| --- | --- | --- |
| `profile.email` required | string | Email korisnika (jedinstveni identifikator za podudaranje Brevo) |
| `real_name` optional | string | Puno ime, podeljeno na FIRSTNAME/LASTNAME |
| `profile.phone` optional | string | Mapira se na SMS atribut |
| `profile.title` optional | string | Naziv posla |
| `tz` optional | string | Vremenska zona korisnika |
| `is_admin` optional | boolean | Status admin korisnika radnog prostora |
| `team_id` optional | string | ID tima radnog prostora |
| `status_text` optional | string | Prilagođeni status korisnika |

## API metode

### Poruke

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `POST` | `chat.postMessage` | Slanje poruke u kanal |
| `POST` | `chat.update` | Ažuriranje postojeće poruke |
| `POST` | `chat.delete` | Brisanje poruke |
| `POST` | `chat.scheduleMessage` | Zakazivanje poruke |
| `POST` | `chat.postEphemeral` | Slanje efemerne poruke korisniku |

### Kanali

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `GET` | `conversations.list` | Listanje kanala |
| `GET` | `conversations.info` | Dohvatanje informacija o kanalu |
| `GET` | `conversations.members` | Listanje članova kanala |
| `GET` | `conversations.history` | Dohvatanje poruka kanala |

### Korisnici

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `GET` | `users.list` | Listanje korisnika radnog prostora |
| `GET` | `users.info` | Dohvatanje informacija o korisniku |
| `GET` | `users.lookupByEmail` | Pronalaženje korisnika po emailu |
| `GET` | `users.conversations` | Listanje kanala korisnika |

### Interakcije

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `POST` | `views.open` | Otvaranje modalnog prikaza |
| `POST` | `views.update` | Ažuriranje modalnog prikaza |
| `POST` | `reactions.add` | Dodavanje emoji reakcije |

## Događaji

### Obaveštenja Brevo-ka-Slack

| Događaj | Okidač | Slack akcija |
| --- | --- | --- |
| `new_subscriber` | Kontakt kreiran u Brevo | Objavi na #marketing |
| `campaign_sent` | Email kampanja poslata | Objavi sažetak na #marketing |
| `order_placed` | Detektovana porudžbina visoke vrednosti | Objavi na #sales sa detaljima |
| `cart_abandoned` | Korpa napuštena 30 min | Objavi na #sales za praćenje |
| `ticket_created` | Tiket podrške otvoren | Objavi na #support |
| `unsubscribed` | Kontakt otkazao pretplatu | Objavi upozorenje na #marketing |

### Okidači Slack-ka-Brevo

| Slack događaj | Okidač | Brevo akcija |
| --- | --- | --- |
| `message_action` | Prilagođena prečica poruke | Dodaj kontakt na listu ili pokreni automatizaciju |
| `block_actions` | Klik na dugme u poruci | Ažuriraj atribut kontakta ili pošalji email |
| `view_submission` | Modalni formular poslat | Kreiraj kontakt ili pokreni tok |

## Primeri koda

### Inicijalizacija konektora

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

### Slanje marketing obaveštenja

```javascript
// Send a notification when a high-value order is placed
await tajo.slack.notify({
  channel: 'sales',
  event: 'order_placed',
  data: {
    customerEmail: 'customer@example.com',
    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:*\ncustomer@example.com' },
          { 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'
          }
        ]
      }
    ]
  }
});
```

### Obrada Slack interakcija

```javascript
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();
});
```

## Ograničenja brzine

Slack API ograničenja brzine koriste nivoidni sistem:

| Nivo | Limit | Uobičajene metode |
| --- | --- | --- |
| Nivo 1 | 1 zahtev/minut | `chat.delete`, `conversations.kick` |
| Nivo 2 | 20 zahteva/minut | `conversations.history`, `users.info` |
| Nivo 3 | 50 zahteva/minut | `conversations.list`, `users.list` |
| Nivo 4 | 100 zahteva/minut | `chat.postMessage` |
| Posebno | Zavisi | `chat.postMessage` na isti kanal: 1/sek |

Dodatna ograničenja:

- **Web API**: Burst limit sa kratkoročnim prigušenjem
- **Events API**: 3 pokušaja ponovne isporuke
- **Incoming Webhooks**: 1 poruka/sekundi po webhook URL-u
- **Block Kit**: Maksimalno 50 blokova po poruci

Brzina postavljanja na kanal

Postavljanje na isti kanal je ograničeno na otprilike 1 poruku u sekundi. Grupiši obaveštenja ili koristi teme da izbjegneš ograničavanje brzine.

## Rešavanje problema

### Česti problemi

| Problem | Uzrok | Rešenje |
| --- | --- | --- |
| `not_authed` | Nevažeći bot token | Ponovo instaliraj aplikaciju i kopiraj novi bot token |
| `channel_not_found` | Bot nije u kanalu | Pozovi bot u ciljni kanal |
| `missing_scope` | Potrebni skop nije dodeljen | Dodaj skop i ponovo instaliraj aplikaciju |
| Događaj nije primljen | URL pretplate na događaje nije postavljen | Konfiguriši URL Event Subscriptions |
| Timeout interakcije | Odgovor >3 sekunde | Odmah odgovori sa 200, obradi asinhrono |

### Debug režim

Uključi detaljno logovanje:

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

### Testiraj vezu

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

## Najbolje prakse

1. **Koristi Block Kit** - Pravi bogate, interaktivne poruke sa Slack Block Kit okvirom
2. **Odgovaraj brzo** - Potvrdi interakcije u roku od 3 sekunde, obradi asinhrono
3. **Grupiši srodne poruke u temama** - Grupiši srodna obaveštenja u temama da smanjiš buku
4. **Rutiranje po kanalima** - Šalji različite tipove događaja na odgovarajuće timske kanale
5. **Uključi dugmad za akcije** - Dodaj dugmad “View in Brevo” za brzi pristup korisničkim podacima
6. **Implementiraj unfurling** - Prikaži bogate preglede za Brevo linkove deljene u Slack-u

## Bezbednost

- **Bot Token** - OAuth-skopovani access token sa granularnim dozvolama
- **Potpisivanje zahteva** - HMAC SHA-256 verifikacija potpisa za dolazne zahteve
- **OAuth 2.0** - Standardna autorizacija za distribuciju na više radnih prostora
- **TLS enkripcija** - Sva API komunikacija enkriptovana putem HTTPS
- **Rotacija tokena** - Automatska rotacija tokena za pojačanu bezbednost

## Povezani resursi

- [Slack API dokumentacija](https://api.slack.com/methods)
- [Slack Block Kit Builder](https://app.slack.com/block-kit-builder)
- [Slack Events API](https://api.slack.com/events-api)
- [Brevo konektor](https://tajo.io/sr/docs/connectors/marketing/brevo)
- [Customer Sync veština](https://tajo.io/sr/docs/skills/data-sync/customer-sync)
