---
title: "Connettore Slack"
description: "Guida completa all'integrazione di Slack per inviare notifiche, sincronizzare dati dei canali e attivare automazioni Brevo dagli eventi Slack tramite Tajo."
url: https://tajo.io/it/docs/connectors/custom/slack/
markdown: https://tajo.io/it/docs/connectors/custom/slack.md
lang: it-IT
robots: noindex
---

Richiedi l’accesso anticipato

Inserisci il tuo nome e indirizzo email aziendale. Ti invieremo un link per confermare la richiesta di accesso a Tajo.

# Connettore Slack

Stato del connettore: Pianificato Non ancora realizzato. Oggi Tajo non esegue questo connettore.

| Campo di origine | Campo di destinazione | Valore di esempio |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Collega il tuo workspace Slack a Brevo tramite Tajo per notifiche marketing in real-time, alert di team sugli eventi cliente e automazione di workflow attivata da interazioni Slack.

## Panoramica

| Proprietà | Valore |
| --- | --- |
| **Piattaforma** | Slack |
| **Categoria** | Custom Integration |
| **Complessità di setup** | Facile |
| **Integrazione ufficiale** | Sì |
| **Dati sincronizzati** | Utenti, Canali, Messaggi, Eventi |
| **API Base URL** | `https://slack.com/api` |

## Funzionalità

- **Alert marketing** - Invia notifiche in real-time per eventi di campagna, nuovi iscritti e milestone di revenue
- **Notifiche eventi cliente** - Avverti i team sulle azioni dei clienti high-value da Brevo
- **Trigger di workflow** - Usa interazioni Slack (click sui pulsanti, invio form) per attivare automazioni Brevo
- **Routing per canale** - Instrada le notifiche verso canali specifici in base al tipo di evento o segmento cliente
- **Sync utenti** - Mappa gli utenti del workspace Slack sui contatti Brevo per comunicazioni interne
- **Messaggi interattivi** - Invia messaggi ricchi con pulsanti e azioni per i workflow del team
- **Messaggi pianificati** - Pianifica notifiche per riepiloghi marketing giornalieri/settimanali
- **Supporto thread** - Raggruppa notifiche correlate nei thread per una comunicazione organizzata

## Prerequisiti

Prima di iniziare, assicurati di avere:

1. Un workspace Slack con accesso admin
2. Un’app Slack creata su [api.slack.com/apps](https://api.slack.com/apps)
3. Un bot token con gli scope richiesti
4. Un account Brevo con accesso API
5. Un account Tajo

## Autenticazione

### Bot Token (consigliato)

Installa un’app Slack sul tuo workspace e usa il bot token per l’accesso API.

1. Crea l’app su [api.slack.com/apps](https://api.slack.com/apps)
2. Aggiungi gli scope OAuth richiesti sotto “OAuth & Permissions”
3. Installa l’app nel workspace
4. Copia il 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": "Ciao da Tajo!"}'
```

### OAuth 2.0

Per distribuire la tua integrazione Slack su più workspace:

```bash
# URL di autorizzazione
https://slack.com/oauth/v2/authorize?
  client_id={client_id}&
  scope=chat:write,channels:read,users:read&
  redirect_uri={redirect_uri}

# Scambio del token
curl -X POST "https://slack.com/api/oauth.v2.access" \
  -d "client_id={client_id}" \
  -d "client_secret={client_secret}" \
  -d "code={auth_code}"
```

#### Scope bot richiesti

```
chat:write           # Invia messaggi
channels:read        # Elenca canali
channels:history     # Leggi i messaggi del canale
users:read           # Elenca gli utenti del workspace
users:read.email     # Leggi gli indirizzi email degli utenti
reactions:write      # Aggiungi reazioni ai messaggi
files:write          # Carica file
```

Accesso all'email utente

Lo scope `users:read.email` è necessario per associare gli utenti Slack ai contatti Brevo. Senza di esso, il mapping utente sarà limitato ai nomi visualizzati.

## Configurazione

### Setup di base

```yaml
connectors:
  slack:
    enabled: true
    bot_token: "${SLACK_BOT_TOKEN}"
    signing_secret: "${SLACK_SIGNING_SECRET}"

    # Canali di notifica
    channels:
      marketing: "C01234567"
      sales: "C01234568"
      support: "C01234569"
      alerts: "C01234570"

    # Routing eventi
    notifications:
      new_subscriber:
        channel: marketing
        template: subscriber_alert
      high_value_order:
        channel: sales
        template: order_alert
      support_ticket:
        channel: support
        template: ticket_alert
```

### Mapping dei campi

Mappa i dati utente Slack sugli attributi dei contatti Brevo:

#### Mapping di default

| Parameter | Type | Description |
| --- | --- | --- |
| `profile.email` required | string | Email utente (identificatore univoco per il matching Brevo) |
| `real_name` optional | string | Nome completo, suddiviso in FIRSTNAME/LASTNAME |
| `profile.phone` optional | string | Mappa sull'attributo SMS |
| `profile.title` optional | string | Titolo professionale |
| `tz` optional | string | Fuso orario dell'utente |
| `is_admin` optional | boolean | Stato admin del workspace |
| `team_id` optional | string | ID team del workspace |
| `status_text` optional | string | Stato personalizzato dell'utente |

## Metodi API

### Messaggistica

| Metodo | Endpoint | Descrizione |
| --- | --- | --- |
| `POST` | `chat.postMessage` | Invia un messaggio a un canale |
| `POST` | `chat.update` | Aggiorna un messaggio esistente |
| `POST` | `chat.delete` | Elimina un messaggio |
| `POST` | `chat.scheduleMessage` | Pianifica un messaggio |
| `POST` | `chat.postEphemeral` | Invia un messaggio effimero a un utente |

### Canali

| Metodo | Endpoint | Descrizione |
| --- | --- | --- |
| `GET` | `conversations.list` | Elenca i canali |
| `GET` | `conversations.info` | Ottieni info di un canale |
| `GET` | `conversations.members` | Elenca i membri del canale |
| `GET` | `conversations.history` | Ottieni i messaggi del canale |

### Utenti

| Metodo | Endpoint | Descrizione |
| --- | --- | --- |
| `GET` | `users.list` | Elenca gli utenti del workspace |
| `GET` | `users.info` | Ottieni info di un utente |
| `GET` | `users.lookupByEmail` | Trova un utente tramite email |
| `GET` | `users.conversations` | Elenca i canali dell’utente |

### Interazioni

| Metodo | Endpoint | Descrizione |
| --- | --- | --- |
| `POST` | `views.open` | Apri una modal view |
| `POST` | `views.update` | Aggiorna una modal view |
| `POST` | `reactions.add` | Aggiungi una reazione emoji |

## Eventi

### Notifiche Brevo-Slack

| Evento | Trigger | Azione Slack |
| --- | --- | --- |
| `new_subscriber` | Contatto creato in Brevo | Pubblica su #marketing |
| `campaign_sent` | Campagna email inviata | Pubblica il riepilogo su #marketing |
| `order_placed` | Ordine high-value rilevato | Pubblica su #sales con i dettagli |
| `cart_abandoned` | Carrello abbandonato per 30 min | Pubblica su #sales per il follow-up |
| `ticket_created` | Ticket di supporto aperto | Pubblica su #support |
| `unsubscribed` | Contatto disiscritto | Pubblica un alert su #marketing |

### Trigger Slack-Brevo

| Evento Slack | Trigger | Azione Brevo |
| --- | --- | --- |
| `message_action` | Scorciatoia messaggio personalizzata | Aggiungi contatto a lista o attiva automazione |
| `block_actions` | Click su un pulsante in un messaggio | Aggiorna attributo contatto o invia email |
| `view_submission` | Form modale inviato | Crea contatto o attiva workflow |

## Esempi di codice

### Inizializzare il connettore

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Collega Slack
await tajo.connectors.connect('slack', {
  botToken: process.env.SLACK_BOT_TOKEN,
  signingSecret: process.env.SLACK_SIGNING_SECRET
});
```

### Inviare notifiche marketing

```javascript
// Invia una notifica quando viene effettuato un ordine high-value
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: 'Nuovo ordine high-value' }
      },
      {
        type: 'section',
        fields: [
          { type: 'mrkdwn', text: '*Cliente:*\ncustomer@example.com' },
          { type: 'mrkdwn', text: '*Importo:*\n$1,250.00' }
        ]
      },
      {
        type: 'actions',
        elements: [
          {
            type: 'button',
            text: { type: 'plain_text', text: 'Vedi in Brevo' },
            url: 'https://app.brevo.com/contacts'
          }
        ]
      }
    ]
  }
});
```

### Gestire le interazioni Slack

```javascript
import crypto from 'crypto';

app.post('/slack/interactions', async (req, res) => {
  // Verifica la firma della richiesta Slack
  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);

  // Gestisci le azioni sui pulsanti
  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();
});
```

## Limiti di rate

I rate limit dell’API Slack usano un sistema a tier:

| Tier | Limite | Metodi comuni |
| --- | --- | --- |
| Tier 1 | 1 richiesta/minuto | `chat.delete`, `conversations.kick` |
| Tier 2 | 20 richieste/minuto | `conversations.history`, `users.info` |
| Tier 3 | 50 richieste/minuto | `conversations.list`, `users.list` |
| Tier 4 | 100 richieste/minuto | `chat.postMessage` |
| Speciale | Variabile | `chat.postMessage` sullo stesso canale: 1/sec |

Limiti aggiuntivi:

- **Web API**: Limite di burst con throttle a breve termine
- **Events API**: 3 retry di consegna
- **Incoming Webhooks**: 1 messaggio/secondo per URL webhook
- **Block Kit**: Massimo 50 block per messaggio

Rate di pubblicazione sul canale

La pubblicazione sullo stesso canale è limitata a circa 1 messaggio al secondo. Raggruppa le notifiche o usa i thread per evitare il rate limiting.

## Risoluzione dei problemi

### Problemi comuni

| Problema | Causa | Soluzione |
| --- | --- | --- |
| `not_authed` | Bot token non valido | Reinstalla l’app e copia il nuovo bot token |
| `channel_not_found` | Bot non nel canale | Invita il bot nel canale target |
| `missing_scope` | Scope richiesto non concesso | Aggiungi lo scope e reinstalla l’app |
| Evento non ricevuto | Sottoscrizione evento non impostata | Configura l’URL di Event Subscriptions |
| Timeout di interazione | Risposta >3 secondi | Rispondi con 200 immediatamente, elabora in modo asincrono |

### Modalità debug

Abilita il logging verboso:

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

### Testare la connessione

```bash
tajo connectors test slack
# ✓ Bot token valido
# ✓ Workspace accessibile
# ✓ Canali leggibili
# ✓ Pubblicazione messaggi abilitata
# ✓ Event subscription attive
```

## Best practice

1. **Usa Block Kit** - Costruisci messaggi ricchi e interattivi con il framework Block Kit di Slack
2. **Rispondi rapidamente** - Acknowledging delle interazioni entro 3 secondi, elabora in modo asincrono
3. **Metti in thread i messaggi correlati** - Raggruppa le notifiche correlate nei thread per ridurre il rumore
4. **Instrada per canale** - Invia tipi di evento diversi ai canali di team appropriati
5. **Includi pulsanti d’azione** - Aggiungi pulsanti “Vedi in Brevo” per accesso rapido ai dati cliente
6. **Implementa l’unfurling** - Mostra anteprime ricche per i link Brevo condivisi in Slack

## Sicurezza

- **Bot Token** - Access token OAuth con scope e permessi granulari
- **Request signing** - Verifica firma HMAC SHA-256 per le richieste in ingresso
- **OAuth 2.0** - Autorizzazione standard di settore per distribuzione multi-workspace
- **Cifratura TLS** - Tutte le comunicazioni API cifrate via HTTPS
- **Rotazione token** - Rotazione automatica dei token per maggiore sicurezza

## Risorse correlate

- [Documentazione 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)
- [Connettore Brevo](https://tajo.io/it/docs/connectors/marketing/brevo)
- [Skill Customer Sync](https://tajo.io/it/docs/skills/data-sync/customer-sync)
