---
title: "Slack-koppling"
description: "Komplett integrationsguide för Slack för att skicka notifieringar, synkronisera kanaldata och utlösa Brevo-automationer från Slack-händelser via Tajo."
url: https://tajo.io/se/docs/connectors/custom/slack/
markdown: https://tajo.io/se/docs/connectors/custom/slack.md
lang: sv-SE
robots: noindex
---

Ansök om tidig åtkomst

Ange ditt förnamn och din e-postadress på jobbet. Vi skickar en länk för att bekräfta din begäran om åtkomst till Tajo.

# Slack-koppling

Kopplingens status: Planerad Inte byggd än. Tajo kör inte den här kopplingen i dag.

| Källfält | Målfält | Exempelvärde |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Anslut din Slack-arbetsyta till Brevo via Tajo för marknadsföringsnotifieringar i realtid, teamvarningar om kundhändelser och arbetsflödesautomation utlöst av Slack-interaktioner.

## Översikt

| Egenskap | Värde |
| --- | --- |
| **Plattform** | Slack |
| **Kategori** | Anpassad integration |
| **Installationskomplexitet** | Enkel |
| **Officiell integration** | Nej |
| **Data som synkas** | Användare, kanaler, meddelanden, händelser |
| **API bas-URL** | `https://slack.com/api` |

## Funktioner

- **Marknadsföringsvarningar** - Skicka realtidsnotifieringar för kampanjhändelser, nya prenumeranter och intäktsmilstolpar
- **Notifieringar för kundhändelser** - Varna team om värdefulla kundåtgärder från Brevo
- **Arbetsflödesutlösare** - Använd Slack-interaktioner (knapptryckningar, formulärinlämningar) för att utlösa Brevo-automationer
- **Kanalbaserad dirigering** - Dirigera notifieringar till specifika kanaler baserat på händelsetyp eller kundsegment
- **Användarsynkronisering** - Mappa användare i Slack-arbetsytan till Brevo-kontakter för intern kommunikation
- **Interaktiva meddelanden** - Skicka rika meddelanden med knappar och åtgärder för teamarbetsflöden
- **Schemalagda meddelanden** - Schemalägg notifieringar för dagliga/veckovisa marknadsföringssammanfattningar
- **Trådstöd** - Gruppera relaterade notifieringar i trådar för organiserad kommunikation

## Förutsättningar

Innan du börjar, se till att du har:

1. En Slack-arbetsyta med adminåtkomst
2. En Slack-app skapad på [api.slack.com/apps](https://api.slack.com/apps)
3. Bot-token med nödvändiga scopes
4. Ett Brevo-konto med API-åtkomst
5. Ett Tajo-konto

## Autentisering

### Bot-token (rekommenderas)

Installera en Slack-app i din arbetsyta och använd bot-token för API-åtkomst.

1. Skapa app på [api.slack.com/apps](https://api.slack.com/apps)
2. Lägg till nödvändiga OAuth-scopes under “OAuth & Permissions”
3. Installera app i arbetsytan
4. Kopiera 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

För att distribuera din Slack-integration till flera arbetsytor:

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

#### Nödvändiga bot-scopes

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

Åtkomst till användares e-post

Scopen `users:read.email` krävs för att matcha Slack-användare med Brevo-kontakter. Utan den begränsas användarmappning till visningsnamn.

## Konfiguration

### Grundinställning

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

### Fältmappning

Mappa Slack-användardata till Brevo-kontaktattribut:

#### Standardmappningar

| Parameter | Type | Description |
| --- | --- | --- |
| `profile.email` required | string | Användarens e-post (unik identifierare för Brevo-matchning) |
| `real_name` optional | string | Fullständigt namn, uppdelat i FIRSTNAME/LASTNAME |
| `profile.phone` optional | string | Mappas till SMS-attributet |
| `profile.title` optional | string | Jobbtitel |
| `tz` optional | string | Användarens tidszon |
| `is_admin` optional | boolean | Status för arbetsytans admin |
| `team_id` optional | string | Arbetsytans team-ID |
| `status_text` optional | string | Användarens anpassade status |

## API-metoder

### Meddelanden

| Metod | Endpoint | Beskrivning |
| --- | --- | --- |
| `POST` | `chat.postMessage` | Skicka ett meddelande till en kanal |
| `POST` | `chat.update` | Uppdatera ett befintligt meddelande |
| `POST` | `chat.delete` | Radera ett meddelande |
| `POST` | `chat.scheduleMessage` | Schemalägg ett meddelande |
| `POST` | `chat.postEphemeral` | Skicka ephemerärt meddelande till användare |

### Kanaler

| Metod | Endpoint | Beskrivning |
| --- | --- | --- |
| `GET` | `conversations.list` | Lista kanaler |
| `GET` | `conversations.info` | Hämta kanalinfo |
| `GET` | `conversations.members` | Lista kanalmedlemmar |
| `GET` | `conversations.history` | Hämta kanalmeddelanden |

### Användare

| Metod | Endpoint | Beskrivning |
| --- | --- | --- |
| `GET` | `users.list` | Lista användare i arbetsytan |
| `GET` | `users.info` | Hämta användarinfo |
| `GET` | `users.lookupByEmail` | Hitta användare via e-post |
| `GET` | `users.conversations` | Lista användarens kanaler |

### Interaktioner

| Metod | Endpoint | Beskrivning |
| --- | --- | --- |
| `POST` | `views.open` | Öppna en modalvy |
| `POST` | `views.update` | Uppdatera en modalvy |
| `POST` | `reactions.add` | Lägg till emoji-reaktion |

## Händelser

### Brevo-till-Slack-notifieringar

| Händelse | Utlösare | Slack-åtgärd |
| --- | --- | --- |
| `new_subscriber` | Kontakt skapad i Brevo | Posta till #marketing |
| `campaign_sent` | E-postkampanj skickad | Posta sammanfattning till #marketing |
| `order_placed` | Värdefull beställning upptäckt | Posta till #sales med detaljer |
| `cart_abandoned` | Kundvagn övergiven i 30 min | Posta till #sales för uppföljning |
| `ticket_created` | Supportärende öppnat | Posta till #support |
| `unsubscribed` | Kontakt avprenumererade | Posta varning till #marketing |

### Slack-till-Brevo-utlösare

| Slack-händelse | Utlösare | Brevo-åtgärd |
| --- | --- | --- |
| `message_action` | Anpassad meddelandegenväg | Lägg till kontakt i lista eller utlös automation |
| `block_actions` | Knapptryckning i meddelande | Uppdatera kontaktattribut eller skicka e-post |
| `view_submission` | Modalformulär inskickat | Skapa kontakt eller utlös arbetsflöde |

## Kodexempel

### Initiera kopplingen

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

### Skicka marknadsföringsnotifieringar

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

### Hantera Slack-interaktioner

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

## Hastighetsbegränsningar

Slacks API-hastighetsbegränsningar använder ett nivåbaserat system:

| Nivå | Gräns | Vanliga metoder |
| --- | --- | --- |
| Tier 1 | 1 förfrågan/minut | `chat.delete`, `conversations.kick` |
| Tier 2 | 20 förfrågningar/minut | `conversations.history`, `users.info` |
| Tier 3 | 50 förfrågningar/minut | `conversations.list`, `users.list` |
| Tier 4 | 100 förfrågningar/minut | `chat.postMessage` |
| Specialfall | Varierar | `chat.postMessage` till samma kanal: 1/sek |

Ytterligare gränser:

- **Web API**: Burst-gräns med kortvarig strypning
- **Events API**: Leveransåterförsök i 3 försök
- **Inkommande webhooks**: 1 meddelande/sekund per webhook-URL
- **Block Kit**: Maximalt 50 block per meddelande

Postningshastighet för kanal

Att posta till samma kanal är begränsat till ungefär 1 meddelande per sekund. Batcha notifieringar eller använd trådar för att undvika hastighetsbegränsning.

## Felsökning

### Vanliga problem

| Problem | Orsak | Lösning |
| --- | --- | --- |
| `not_authed` | Ogiltig bot-token | Installera om appen och kopiera ny bot-token |
| `channel_not_found` | Bot inte i kanal | Bjud in boten till målkanalen |
| `missing_scope` | Nödvändigt scope ej beviljat | Lägg till scope och installera om appen |
| Händelse ej mottagen | Händelseprenumeration ej satt | Konfigurera Event Subscriptions URL |
| Interaktionstimeout | Svar > 3 sekunder | Svara med 200 omedelbart, behandla asynkront |

### Felsökningsläge

Aktivera utförlig loggning:

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

### Testa anslutning

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

## Bästa praxis

1. **Använd Block Kit** - Bygg rika, interaktiva meddelanden med Slacks Block Kit-ramverk
2. **Svara snabbt** - Bekräfta interaktioner inom 3 sekunder, behandla asynkront
3. **Trådkoppla relaterade meddelanden** - Gruppera relaterade notifieringar i trådar för att minska brus
4. **Dirigera per kanal** - Skicka olika händelsetyper till lämpliga teamkanaler
5. **Inkludera åtgärdsknappar** - Lägg till “View in Brevo”-knappar för snabb åtkomst till kunddata
6. **Implementera unfurling** - Visa rika förhandsgranskningar för Brevo-länkar delade i Slack

## Säkerhet

- **Bot-token** - OAuth-scopad åtkomsttoken med granulära behörigheter
- **Förfrågningssignering** - HMAC SHA-256-signaturverifiering för inkommande förfrågningar
- **OAuth 2.0** - Industristandard för auktorisering för distribution till flera arbetsytor
- **TLS-kryptering** - All API-kommunikation krypterad via HTTPS
- **Tokenrotation** - Automatisk tokenrotation för förbättrad säkerhet

## Relaterade resurser

- [Slack API-dokumentation](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-koppling](https://tajo.io/se/docs/connectors/marketing/brevo)
- [Skill för kundsynkronisering](https://tajo.io/se/docs/skills/data-sync/customer-sync)
