---
title: "Konektor Slack"
description: "Kompletny przewodnik integracji Slack do wysyłania powiadomień, synchronizacji danych kanałów i wyzwalania automatyzacji Brevo ze zdarzeń Slack przez Tajo."
url: https://tajo.io/pl/docs/connectors/custom/slack/
markdown: https://tajo.io/pl/docs/connectors/custom/slack.md
lang: pl-PL
robots: noindex
---

Poproś o wcześniejszy dostęp

Podaj imię i firmowy adres e-mail. Wyślemy Ci link potwierdzający prośbę o dostęp do Tajo.

# Konektor Slack

Status konektora: Planowany Jeszcze niezbudowany. Tajo nie uruchamia dziś tego konektora.

| Pole źródłowe | Pole docelowe | Przykładowa wartość |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Połącz swój workspace Slack z Brevo przez Tajo, aby uzyskać powiadomienia marketingowe w czasie rzeczywistym, alerty zespołowe o zdarzeniach klientów i automatyzację workflow wyzwalaną przez interakcje Slack.

## Przegląd

| Właściwość | Wartość |
| --- | --- |
| **Platforma** | Slack |
| **Kategoria** | Integracja niestandardowa |
| **Poziom konfiguracji** | Łatwy |
| **Integracja oficjalna** | Nie |
| **Synchronizowane dane** | Użytkownicy, Kanały, Wiadomości, Zdarzenia |
| **Bazowy URL API** | `https://slack.com/api` |

## Funkcje

- **Alerty marketingowe** - Wysyłaj powiadomienia w czasie rzeczywistym o zdarzeniach kampanii, nowych subskrybentach i kamieniach milowych przychodów
- **Powiadomienia o zdarzeniach klientów** - Alerty dla zespołów o działaniach klientów o wysokiej wartości z Brevo
- **Wyzwalacze workflow** - Używaj interakcji Slack (kliknięcia przycisków, przesyłanie formularzy) do wyzwalania automatyzacji Brevo
- **Routing oparty na kanałach** - Kieruj powiadomienia do określonych kanałów na podstawie typu zdarzenia lub segmentu klientów
- **Synchronizacja użytkowników** - Mapuj użytkowników workspace Slack na kontakty Brevo dla komunikacji wewnętrznej
- **Interaktywne wiadomości** - Wysyłaj bogate wiadomości z przyciskami i akcjami dla przepływów zespołu
- **Zaplanowane wiadomości** - Planuj powiadomienia dla codziennych/tygodniowych podsumowań marketingowych
- **Obsługa wątków** - Grupuj powiązane powiadomienia w wątkach dla zorganizowanej komunikacji

## Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

1. Workspace Slack z dostępem administratora
2. Aplikację Slack utworzoną na [api.slack.com/apps](https://api.slack.com/apps)
3. Token bota z wymaganymi zakresami
4. Konto Brevo z dostępem do API
5. Konto Tajo

## Uwierzytelnianie

### Token bota (zalecane)

Zainstaluj aplikację Slack w swoim workspace i używaj tokenu bota dla dostępu do API.

1. Utwórz aplikację na [api.slack.com/apps](https://api.slack.com/apps)
2. Dodaj wymagane zakresy OAuth w „OAuth & Permissions”
3. Zainstaluj aplikację w workspace
4. Skopiuj 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

Dla dystrybucji integracji Slack do wielu workspace’ów:

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

#### Wymagane zakresy 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
```

Dostęp do e-maili użytkowników

Zakres `users:read.email` jest wymagany do dopasowania użytkowników Slack z kontaktami Brevo. Bez niego mapowanie użytkowników będzie ograniczone do nazw wyświetlanych.

## Konfiguracja

### Podstawowa konfiguracja

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

### Mapowanie pól

Mapuj dane użytkowników Slack na atrybuty kontaktów Brevo:

#### Domyślne mapowania

| Parameter | Type | Description |
| --- | --- | --- |
| `profile.email` required | string | E-mail użytkownika (unikalny identyfikator do dopasowania z Brevo) |
| `real_name` optional | string | Pełne imię i nazwisko, podzielone na FIRSTNAME/LASTNAME |
| `profile.phone` optional | string | Mapuje się na atrybut SMS |
| `profile.title` optional | string | Stanowisko pracy |
| `tz` optional | string | Strefa czasowa użytkownika |
| `is_admin` optional | boolean | Status administratora workspace |
| `team_id` optional | string | ID zespołu workspace |
| `status_text` optional | string | Niestandardowy status użytkownika |

## Metody API

### Wiadomości

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `POST` | `chat.postMessage` | Wyślij wiadomość do kanału |
| `POST` | `chat.update` | Aktualizuj istniejącą wiadomość |
| `POST` | `chat.delete` | Usuń wiadomość |
| `POST` | `chat.scheduleMessage` | Zaplanuj wiadomość |
| `POST` | `chat.postEphemeral` | Wyślij efemeryczną wiadomość do użytkownika |

### Kanały

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `GET` | `conversations.list` | Lista kanałów |
| `GET` | `conversations.info` | Pobierz informacje o kanale |
| `GET` | `conversations.members` | Lista członków kanału |
| `GET` | `conversations.history` | Pobierz wiadomości kanału |

### Użytkownicy

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `GET` | `users.list` | Lista użytkowników workspace |
| `GET` | `users.info` | Pobierz informacje o użytkowniku |
| `GET` | `users.lookupByEmail` | Znajdź użytkownika po e-mailu |
| `GET` | `users.conversations` | Lista kanałów użytkownika |

### Interakcje

| Metoda | Endpoint | Opis |
| --- | --- | --- |
| `POST` | `views.open` | Otwórz widok modalny |
| `POST` | `views.update` | Aktualizuj widok modalny |
| `POST` | `reactions.add` | Dodaj reakcję emoji |

## Zdarzenia

### Powiadomienia Brevo-do-Slack

| Zdarzenie | Wyzwalacz | Akcja Slack |
| --- | --- | --- |
| `new_subscriber` | Kontakt utworzony w Brevo | Wyślij do #marketing |
| `campaign_sent` | Kampania e-mailowa wysłana | Wyślij podsumowanie do #marketing |
| `order_placed` | Wykryto zamówienie o wysokiej wartości | Wyślij do #sales ze szczegółami |
| `cart_abandoned` | Koszyk porzucony przez 30 min | Wyślij do #sales do follow-up |
| `ticket_created` | Otwarte zgłoszenie pomocy technicznej | Wyślij do #support |
| `unsubscribed` | Kontakt zrezygnował z subskrypcji | Wyślij alert do #marketing |

### Wyzwalacze Slack-do-Brevo

| Zdarzenie Slack | Wyzwalacz | Akcja Brevo |
| --- | --- | --- |
| `message_action` | Niestandardowy skrót wiadomości | Dodaj kontakt do listy lub wyzwól automatyzację |
| `block_actions` | Kliknięcie przycisku w wiadomości | Aktualizuj atrybut kontaktu lub wyślij e-mail |
| `view_submission` | Przesłanie formularza modalnego | Utwórz kontakt lub wyzwól workflow |

## Przykłady kodu

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

### Wysyłaj powiadomienia marketingowe

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

### Obsługa interakcji Slack

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

## Limity API

Limity szybkości Slack API używają systemu warstwowego:

| Warstwa | Limit | Typowe metody |
| --- | --- | --- |
| Warstwa 1 | 1 żądanie/minutę | `chat.delete`, `conversations.kick` |
| Warstwa 2 | 20 żądań/minutę | `conversations.history`, `users.info` |
| Warstwa 3 | 50 żądań/minutę | `conversations.list`, `users.list` |
| Warstwa 4 | 100 żądań/minutę | `chat.postMessage` |
| Specjalny | Różne | `chat.postMessage` do tego samego kanału: 1/sek |

Dodatkowe limity:

- **Web API**: Limit burst z krótkoterminowym ograniczaniem
- **Events API**: 3 próby dostarczenia przy błędach
- **Przychodzące webhooki**: 1 wiadomość/sekundę na URL webhooka
- **Block Kit**: Maksymalnie 50 bloków na wiadomość

Szybkość wysyłania do kanału

Wysyłanie do tego samego kanału jest ograniczone do około 1 wiadomości na sekundę. Wsaduj powiadomienia lub używaj wątków, aby uniknąć ograniczania szybkości.

## Rozwiązywanie problemów

### Typowe problemy

| Problem | Przyczyna | Rozwiązanie |
| --- | --- | --- |
| `not_authed` | Nieprawidłowy token bota | Zainstaluj ponownie aplikację i skopiuj nowy token bota |
| `channel_not_found` | Bot nie jest w kanale | Zaproś bota do docelowego kanału |
| `missing_scope` | Wymagany zakres nie przyznany | Dodaj zakres i zainstaluj ponownie aplikację |
| Zdarzenie nie odebrane | Subskrypcja zdarzeń nie ustawiona | Skonfiguruj URL Subskrypcji Zdarzeń |
| Timeout interakcji | Odpowiedź >3 sekundy | Odpowiedz 200 natychmiast, przetwarzaj asynchronicznie |

### Tryb debug

Włącz szczegółowe logowanie:

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

### Test połączenia

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

## Najlepsze praktyki

1. **Używaj Block Kit** - Twórz bogate, interaktywne wiadomości z frameworkiem Block Kit Slack
2. **Odpowiadaj szybko** - Potwierdzaj interakcje w ciągu 3 sekund, przetwarzaj asynchronicznie
3. **Grupuj powiązane wiadomości w wątkach** - Grupuj powiązane powiadomienia w wątkach, aby zmniejszyć szum
4. **Kieruj według kanału** - Wysyłaj różne typy zdarzeń do odpowiednich kanałów zespołu
5. **Dołącz przyciski akcji** - Dodaj przyciski „View in Brevo” dla szybkiego dostępu do danych klientów
6. **Wdrożyj unfurling** - Pokaż bogate podglądy dla linków Brevo udostępnianych w Slack

## Bezpieczeństwo

- **Token bota** - Token dostępu z zakresem OAuth z granularnymi uprawnieniami
- **Podpisywanie żądań** - Weryfikacja podpisu HMAC SHA-256 dla przychodzących żądań
- **OAuth 2.0** - Branżowy standard autoryzacji dla dystrybucji w wielu workspace’ach
- **Szyfrowanie TLS** - Cała komunikacja API zaszyfrowana przez HTTPS
- **Rotacja tokenów** - Automatyczna rotacja tokenów dla zwiększonego bezpieczeństwa

## Powiązane zasoby

- [Dokumentacja Slack API](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)
- [Konektor Brevo](https://tajo.io/pl/docs/connectors/marketing/brevo)
- [Skill synchronizacji klientów](https://tajo.io/pl/docs/skills/data-sync/customer-sync)
