---
title: "Slack конектор"
description: "Пълно ръководство за интеграция със Slack за изпращане на известия, синхронизация на данни от канали и задействане на Brevo автоматизации от Slack събития през Tajo."
url: https://tajo.io/bg/docs/connectors/custom/slack/
markdown: https://tajo.io/bg/docs/connectors/custom/slack.md
lang: bg-BG
robots: noindex
---

Заявете ранен достъп

Въведете собственото си име и служебен имейл адрес. Ще ви изпратим връзка за потвърждение на заявката за достъп до Tajo.

# Slack конектор

Статус на конектора: Планиран Все още не е изграден. Tajo не изпълнява този конектор днес.

| Поле източник | Целево поле | Примерна стойност |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Свържи своето Slack workspace с Brevo чрез Tajo за маркетингови известия в реално време, екипни alert-и при клиентски събития и работен поток, задействан от Slack взаимодействия.

## Преглед

| Свойство | Стойност |
| --- | --- |
| **Платформа** | Slack |
| **Категория** | Персонализирана интеграция |
| **Сложност на настройка** | Лесна |
| **Официална интеграция** | Не |
| **Синхронизирани данни** | Потребители, канали, съобщения, събития |
| **Base URL на API** | `https://slack.com/api` |

## Функции

- **Маркетингови alert-и** – Изпращай известия в реално време за събития от кампании, нови абонати и milestones за приходи
- **Известия за клиентски събития** – Alert-и за екипите при ценни действия на клиенти от Brevo
- **Workflow тригери** – Използвай Slack взаимодействия (натискания на бутони, изпращане на форми) за задействане на Brevo автоматизации
- **Рутиране на базата на канали** – Рутирай известия към конкретни канали на базата на типа събитие или клиентски сегмент
- **Синхронизация на потребители** – Мапвай потребители от Slack workspace към контакти в Brevo за вътрешни комуникации
- **Интерактивни съобщения** – Изпращай богати съобщения с бутони и действия за екипни работни потоци
- **Планирани съобщения** – Планирай известия за дневни/седмични маркетингови резюмета
- **Поддръжка на нишки** – Групирай свързани известия в нишки за организирана комуникация

## Предварителни условия

Преди да започнеш, увери се, че имаш:

1. Slack workspace с администраторски достъп
2. Slack приложение, създадено на [api.slack.com/apps](https://api.slack.com/apps)
3. Bot token с необходимите обхвати
4. Акаунт в Brevo с API достъп
5. Акаунт в Tajo

## Автентикация

### Bot Token (препоръчително)

Инсталирай Slack приложение в своя workspace и използвай bot token за API достъп.

1. Създай приложение на [api.slack.com/apps](https://api.slack.com/apps)
2. Добави необходимите OAuth обхвати от “OAuth & Permissions”
3. Инсталирай приложението в workspace
4. Копирай 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

За дистрибутиране на твоята Slack интеграция към множество workspaces:

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

#### Необходими Bot обхвати

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

Достъп до имейли на потребители

Обхватът `users:read.email` се изисква за съпоставяне на Slack потребители с контакти в Brevo. Без него, мапването на потребители ще бъде ограничено до display имена.

## Конфигурация

### Основна настройка

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

### Мапване на полета

Мапвай потребителски данни от Slack към атрибути на контактите в Brevo:

#### Мапвания по подразбиране

| Parameter | Type | Description |
| --- | --- | --- |
| `profile.email` required | string | Имейл на потребителя (уникален идентификатор за съпоставяне в Brevo) |
| `real_name` optional | string | Пълно име, разделено на FIRSTNAME/LASTNAME |
| `profile.phone` optional | string | Мапва към атрибут SMS |
| `profile.title` optional | string | Длъжност |
| `tz` optional | string | Часова зона на потребителя |
| `is_admin` optional | boolean | Статус на администратор на workspace |
| `team_id` optional | string | Team ID на workspace |
| `status_text` optional | string | Персонализиран статус на потребителя |

## API методи

### Messaging

| Метод | Крайна точка | Описание |
| --- | --- | --- |
| `POST` | `chat.postMessage` | Изпрати съобщение в канал |
| `POST` | `chat.update` | Обнови съществуващо съобщение |
| `POST` | `chat.delete` | Изтрий съобщение |
| `POST` | `chat.scheduleMessage` | Планирай съобщение |
| `POST` | `chat.postEphemeral` | Изпрати ephemeral съобщение на потребител |

### Канали

| Метод | Крайна точка | Описание |
| --- | --- | --- |
| `GET` | `conversations.list` | Списък с канали |
| `GET` | `conversations.info` | Получаване на информация за канал |
| `GET` | `conversations.members` | Списък с членове на канал |
| `GET` | `conversations.history` | Получаване на съобщения от канал |

### Потребители

| Метод | Крайна точка | Описание |
| --- | --- | --- |
| `GET` | `users.list` | Списък с потребители на workspace |
| `GET` | `users.info` | Получаване на информация за потребител |
| `GET` | `users.lookupByEmail` | Намери потребител по имейл |
| `GET` | `users.conversations` | Списък с канали на потребителя |

### Взаимодействия

| Метод | Крайна точка | Описание |
| --- | --- | --- |
| `POST` | `views.open` | Отвори модален изглед |
| `POST` | `views.update` | Обнови модален изглед |
| `POST` | `reactions.add` | Добави emoji реакция |

## Събития

### Известия от Brevo към Slack

| Събитие | Тригер | Slack действие |
| --- | --- | --- |
| `new_subscriber` | Създаден контакт в Brevo | Публикуване в #marketing |
| `campaign_sent` | Изпратена имейл кампания | Публикуване на резюме в #marketing |
| `order_placed` | Открита поръчка с висока стойност | Публикуване в #sales с детайли |
| `cart_abandoned` | Кошница изоставена за 30 мин | Публикуване в #sales за follow-up |
| `ticket_created` | Отворен тикет за поддръжка | Публикуване в #support |
| `unsubscribed` | Контакт се отписа | Публикуване на alert в #marketing |

### Тригери от Slack към Brevo

| Slack събитие | Тригер | Действие в Brevo |
| --- | --- | --- |
| `message_action` | Персонализиран shortcut за съобщение | Добавяне на контакт към списък или задействане на автоматизация |
| `block_actions` | Натискане на бутон в съобщение | Обновяване на атрибут на контакт или изпращане на имейл |
| `view_submission` | Изпратена модална форма | Създаване на контакт или задействане на workflow |

## Примери с код

### Инициализация на конектора

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

### Изпращане на маркетингови известия

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

### Обработка на 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();
});
```

## Ограничения на заявките

API rate limits на Slack използват многостепенна система:

| Ниво | Лимит | Чести методи |
| --- | --- | --- |
| Tier 1 | 1 заявка/минута | `chat.delete`, `conversations.kick` |
| Tier 2 | 20 заявки/минута | `conversations.history`, `users.info` |
| Tier 3 | 50 заявки/минута | `conversations.list`, `users.list` |
| Tier 4 | 100 заявки/минута | `chat.postMessage` |
| Special | Варира | `chat.postMessage` към същия канал: 1/сек |

Допълнителни лимити:

- **Web API**: Burst лимит с краткосрочен throttle
- **Events API**: Опити за повторна доставка до 3 пъти
- **Incoming Webhooks**: 1 съобщение/секунда на webhook URL
- **Block Kit**: Максимум 50 блока на съобщение

Скорост на публикуване в канал

Публикуването в същия канал е ограничено до приблизително 1 съобщение на секунда. Пакетирай известия или използвай нишки, за да избегнеш rate limiting.

## Отстраняване на проблеми

### Чести проблеми

| Проблем | Причина | Решение |
| --- | --- | --- |
| `not_authed` | Невалиден bot token | Преинсталирай приложението и копирай нов bot token |
| `channel_not_found` | Ботът не е в канала | Покани бота в целевия канал |
| `missing_scope` | Необходимият обхват не е предоставен | Добави обхвата и преинсталирай приложението |
| Събитието не се получава | Не е зададен event subscription | Конфигурирай Event Subscriptions URL |
| Interaction timeout | Отговорът е над 3 секунди | Отговори с 200 веднага, обработвай асинхронно |

### Режим за дебъг

Активирай подробно логване:

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

### Тест на връзката

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

## Добри практики

1. **Използвай Block Kit** – Създавай богати, интерактивни съобщения с рамката Block Kit на Slack
2. **Отговаряй бързо** – Потвърждавай взаимодействията в рамките на 3 секунди, обработвай асинхронно
3. **Използвай нишки за свързани съобщения** – Групирай свързани известия в нишки, за да намалиш шума
4. **Рутирай по канал** – Изпращай различни типове събития към подходящи екипни канали
5. **Включвай action бутони** – Добавяй бутони “View in Brevo” за бърз достъп до клиентски данни
6. **Внедри unfurling** – Показвай богати визуализации за Brevo връзки, споделени в Slack

## Сигурност

- **Bot Token** – OAuth-scoped access token с гранулирани разрешения
- **Подписване на заявки** – HMAC SHA-256 верификация на подпис за входящи заявки
- **OAuth 2.0** – Индустриален стандарт за авторизация за мулти-workspace дистрибуция
- **TLS криптиране** – Цялата API комуникация е криптирана чрез HTTPS
- **Ротация на token-и** – Автоматична ротация на token-и за повишена сигурност

## Свързани ресурси

- [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)
- [Brevo конектор](https://tajo.io/bg/docs/connectors/marketing/brevo)
- [Customer Sync скил](https://tajo.io/bg/docs/skills/data-sync/customer-sync)
