---
title: "Slack Connector"
description: "Komplet guide til Slack-integration til afsendelse af notifikationer, synkronisering af kanaldata og udløsning af Brevo-automatiseringer fra Slack-hændelser via Tajo."
url: https://tajo.io/dk/docs/connectors/custom/slack/
markdown: https://tajo.io/dk/docs/connectors/custom/slack.md
lang: da-DK
robots: noindex
---

Bed om tidlig adgang til Tajo

Indtast dit fornavn og din arbejds-e-mailadresse. Vi sender dig et link til at bekræfte din anmodning om adgang til Tajo.

# Slack Connector

Connectorstatus: Planlagt Ikke bygget endnu. Tajo kører ikke denne connector i dag.

| Kildefelt | Destinationsfelt | Eksempelværdi |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Forbind dit Slack-workspace til Brevo via Tajo for realtids-marketingnotifikationer, teamadvarsler om kundehændelser og workflow-automatisering udløst af Slack-interaktioner.

## Oversigt

| Egenskab | Værdi |
| --- | --- |
| **Platform** | Slack |
| **Kategori** | Brugerdefineret integration |
| **Opsætningskompleksitet** | Let |
| **Officiel integration** | Nej |
| **Synkroniserede data** | Brugere, kanaler, beskeder, hændelser |
| **API-base-URL** | `https://slack.com/api` |

## Funktioner

- **Marketingadvarsler** - Send realtidsnotifikationer om kampagnehændelser, nye abonnenter og omsætningsmilepæle
- **Notifikationer om kundehændelser** - Advar teams om kundehandlinger af høj værdi fra Brevo
- **Workflow-triggere** - Brug Slack-interaktioner (knapklik, formularindsendelser) til at udløse Brevo-automatiseringer
- **Kanalbaseret rutning** - Rut notifikationer til specifikke kanaler baseret på hændelsestype eller kundesegment
- **Brugersynkronisering** - Knyt Slack-workspace-brugere til Brevo-kontakter for intern kommunikation
- **Interaktive beskeder** - Send rige beskeder med knapper og handlinger til team-workflows
- **Planlagte beskeder** - Planlæg notifikationer til daglige/ugentlige marketingopsummeringer
- **Tråd-understøttelse** - Gruppér relaterede notifikationer i tråde for organiseret kommunikation

## Forudsætninger

Før du begynder, skal du sikre dig, at du har:

1. Et Slack-workspace med administratoradgang
2. En Slack-app oprettet på [api.slack.com/apps](https://api.slack.com/apps)
3. Bot-token med de påkrævede scopes
4. En Brevo-konto med API-adgang
5. En Tajo-konto

## Autentifikation

### Bot-token (anbefalet)

Installér en Slack-app i dit workspace, og brug bot-tokenet til API-adgang.

1. Opret en app på [api.slack.com/apps](https://api.slack.com/apps)
2. Tilføj de påkrævede OAuth-scopes under “OAuth & Permissions”
3. Installér appen i workspacet
4. Kopiér 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

Til distribution af din Slack-integration til flere 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}"
```

#### Påkrævede 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
```

Adgang til bruger-e-mail

Scope’et `users:read.email` er påkrævet for at matche Slack-brugere med Brevo-kontakter. Uden det vil brugermapping være begrænset til visningsnavne.

## Konfiguration

### Grundlæggende opsætning

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

### Feltmapping

Knyt Slack-brugerdata til Brevo-kontaktattributter:

#### Standardmappings

| Parameter | Type | Description |
| --- | --- | --- |
| `profile.email` required | string | Bruger-e-mail (unik identifikator til Brevo-matching) |
| `real_name` optional | string | Fuldt navn, opdelt i FIRSTNAME/LASTNAME |
| `profile.phone` optional | string | Mapper til SMS-attribut |
| `profile.title` optional | string | Jobtitel |
| `tz` optional | string | Brugerens tidszone |
| `is_admin` optional | boolean | Workspace-administratorstatus |
| `team_id` optional | string | Workspace-team-id |
| `status_text` optional | string | Brugerens brugerdefinerede status |

## API-metoder

### Beskeder

| Metode | Endpoint | Beskrivelse |
| --- | --- | --- |
| `POST` | `chat.postMessage` | Send en besked til en kanal |
| `POST` | `chat.update` | Opdatér en eksisterende besked |
| `POST` | `chat.delete` | Slet en besked |
| `POST` | `chat.scheduleMessage` | Planlæg en besked |
| `POST` | `chat.postEphemeral` | Send efemerisk besked til bruger |

### Kanaler

| Metode | Endpoint | Beskrivelse |
| --- | --- | --- |
| `GET` | `conversations.list` | Vis kanaler |
| `GET` | `conversations.info` | Hent kanalinfo |
| `GET` | `conversations.members` | Vis kanalmedlemmer |
| `GET` | `conversations.history` | Hent kanalbeskeder |

### Brugere

| Metode | Endpoint | Beskrivelse |
| --- | --- | --- |
| `GET` | `users.list` | Vis workspace-brugere |
| `GET` | `users.info` | Hent brugerinfo |
| `GET` | `users.lookupByEmail` | Find bruger via e-mail |
| `GET` | `users.conversations` | Vis brugerkanaler |

### Interaktioner

| Metode | Endpoint | Beskrivelse |
| --- | --- | --- |
| `POST` | `views.open` | Åbn en modal-visning |
| `POST` | `views.update` | Opdatér en modal-visning |
| `POST` | `reactions.add` | Tilføj emoji-reaktion |

## Hændelser

### Brevo-til-Slack-notifikationer

| Hændelse | Trigger | Slack-handling |
| --- | --- | --- |
| `new_subscriber` | Kontakt oprettet i Brevo | Post til #marketing |
| `campaign_sent` | E-mailkampagne sendt | Post resumé til #marketing |
| `order_placed` | Ordre af høj værdi registreret | Post til #sales med detaljer |
| `cart_abandoned` | Kurv efterladt i 30 min. | Post til #sales til opfølgning |
| `ticket_created` | Supportsag oprettet | Post til #support |
| `unsubscribed` | Kontakt afmeldt | Post advarsel til #marketing |

### Slack-til-Brevo-triggere

| Slack-hændelse | Trigger | Brevo-handling |
| --- | --- | --- |
| `message_action` | Tilpasset beskedgenvej | Tilføj kontakt til liste eller udløs automatisering |
| `block_actions` | Knapklik i besked | Opdatér kontaktattribut eller send e-mail |
| `view_submission` | Modal-formular indsendt | Opret kontakt eller udløs workflow |

## Kodeeksempler

### Initialisér konnektor

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

### Send marketingnotifikationer

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

### Håndtér 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();
});
```

## Ratebegrænsninger

Slack API-ratebegrænsninger bruger et niveauinddelt system:

| Niveau | Grænse | Almindelige metoder |
| --- | --- | --- |
| Tier 1 | 1 forespørgsel/minut | `chat.delete`, `conversations.kick` |
| Tier 2 | 20 forespørgsler/minut | `conversations.history`, `users.info` |
| Tier 3 | 50 forespørgsler/minut | `conversations.list`, `users.list` |
| Tier 4 | 100 forespørgsler/minut | `chat.postMessage` |
| Special | Varierer | `chat.postMessage` til samme kanal: 1/sek |

Yderligere grænser:

- **Web API**: Burst-grænse med kortsigtet throttling
- **Events API**: Leveringsforsøg genforsøges 3 gange
- **Incoming Webhooks**: 1 besked/sekund per webhook-URL
- **Block Kit**: Maksimalt 50 blokke per besked

Rate for kanalposter

Posts til samme kanal er begrænset til ca. 1 besked per sekund. Batch notifikationer eller brug tråde for at undgå ratebegrænsning.

## Fejlfinding

### Almindelige problemer

| Problem | Årsag | Løsning |
| --- | --- | --- |
| `not_authed` | Ugyldigt bot-token | Geninstallér appen og kopiér nyt bot-token |
| `channel_not_found` | Bot ikke i kanal | Invitér botten til målkanalen |
| `missing_scope` | Påkrævet scope ikke tildelt | Tilføj scope og geninstallér appen |
| Hændelse ikke modtaget | Hændelsesabonnement ikke sat | Konfigurér Event Subscriptions-URL |
| Interaktionstimeout | Svar >3 sekunder | Svar med 200 med det samme, behandl asynkront |

### Fejlfindingstilstand

Aktivér udførlig logning:

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

### Test forbindelse

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

## Best practices

1. **Brug Block Kit** - Byg rige, interaktive beskeder med Slacks Block Kit-framework
2. **Svar hurtigt** - Anerkend interaktioner inden for 3 sekunder, behandl asynkront
3. **Tråd relaterede beskeder** - Gruppér relaterede notifikationer i tråde for at reducere støj
4. **Rut efter kanal** - Send forskellige hændelsestyper til relevante teamkanaler
5. **Inkludér handlingsknapper** - Tilføj “Vis i Brevo”-knapper for hurtig adgang til kundedata
6. **Implementér link-unfurling** - Vis rige previews af Brevo-links delt i Slack

## Sikkerhed

- **Bot-token** - OAuth-scoped adgangstoken med granulære rettigheder
- **Request signing** - HMAC SHA-256-signaturverifikation for indgående forespørgsler
- **OAuth 2.0** - Industristandard-autorisation til distribution på tværs af workspaces
- **TLS-kryptering** - Al API-kommunikation krypteret via HTTPS
- **Tokenrotation** - Automatisk tokenrotation for øget sikkerhed

## Relaterede ressourcer

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