Slack Bağlayıcısı

Gerçek zamanlı pazarlama bildirimleri, müşteri olaylarına ilişkin ekip uyarıları ve Slack etkileşimleriyle tetiklenen iş akışı otomasyonu için Slack çalışma alanınızı Tajo üzerinden Brevo’ya bağlayın.

Genel Bakış

ÖzellikDeğer
PlatformSlack
KategoriÖzel Entegrasyon
Kurulum KarmaşıklığıKolay
Resmi EntegrasyonEvet
Senkronize Edilen VeriKullanıcılar, Kanallar, Mesajlar, Olaylar
API Temel URLhttps://slack.com/api

Özellikler

  • Pazarlama uyarıları - Kampanya olayları, yeni aboneler ve gelir kilometre taşları için gerçek zamanlı bildirimler gönderin
  • Müşteri olay bildirimleri - Brevo’dan yüksek değerli müşteri eylemleri hakkında ekipleri uyarın
  • İş akışı tetikleyicileri - Brevo otomasyonlarını tetiklemek için Slack etkileşimlerini (düğme tıklamaları, form gönderimleri) kullanın
  • Kanal tabanlı yönlendirme - Olay türüne veya müşteri segmentine göre bildirimleri belirli kanallara yönlendirin
  • Kullanıcı senkronizasyonu - Dahili iletişim için Slack çalışma alanı kullanıcılarını Brevo kişileriyle eşleştirin
  • Etkileşimli mesajlar - Ekip iş akışları için düğmeler ve eylemler içeren zengin mesajlar gönderin
  • Planlı mesajlar - Günlük/haftalık pazarlama özetleri için bildirimler planlayın
  • İş parçacığı desteği - Düzenli iletişim için ilgili bildirimleri iş parçacıklarında gruplayın

Ön Koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

  1. Yönetici erişimi olan bir Slack çalışma alanı
  2. api.slack.com/apps adresinde oluşturulmuş bir Slack uygulaması
  3. Gerekli kapsamları olan bir bot belirteci
  4. API erişimi olan bir Brevo hesabı
  5. Bir Tajo hesabı

Kimlik Doğrulama

Bot Belirteci (Önerilen)

Slack uygulamasını çalışma alanınıza yükleyin ve API erişimi için bot belirtecini kullanın.

  1. api.slack.com/apps adresinde uygulama oluşturun
  2. “OAuth & Permissions” altında gerekli OAuth kapsamlarını ekleyin
  3. Uygulamayı çalışma alanına yükleyin
  4. Bot User OAuth Token’ı kopyalayın (xoxb-...)
Terminal window
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 entegrasyonunuzu birden fazla çalışma alanına dağıtmak için:

Terminal window
# Yetkilendirme URL'si
https://slack.com/oauth/v2/authorize?
client_id={client_id}&
scope=chat:write,channels:read,users:read&
redirect_uri={redirect_uri}
# Belirteç değişimi
curl -X POST "https://slack.com/api/oauth.v2.access" \
-d "client_id={client_id}" \
-d "client_secret={client_secret}" \
-d "code={auth_code}"

Gerekli Bot Kapsamları

chat:write # Mesaj gönder
channels:read # Kanalları listele
channels:history # Kanal mesajlarını oku
users:read # Çalışma alanı kullanıcılarını listele
users:read.email # Kullanıcı e-posta adreslerini oku
reactions:write # Mesajlara tepki ekle
files:write # Dosya yükle

Kullanıcı E-posta Erişimi

users:read.email kapsamı, Slack kullanıcılarını Brevo kişileriyle eşleştirmek için gereklidir. Bu kapsam olmadan kullanıcı eşleştirme yalnızca görünen adlarla sınırlı olacaktır.

Yapılandırma

Temel Kurulum

connectors:
slack:
enabled: true
bot_token: "${SLACK_BOT_TOKEN}"
signing_secret: "${SLACK_SIGNING_SECRET}"
# Bildirim kanalları
channels:
marketing: "C01234567"
sales: "C01234568"
support: "C01234569"
alerts: "C01234570"
# Olay yönlendirme
notifications:
new_subscriber:
channel: marketing
template: subscriber_alert
high_value_order:
channel: sales
template: order_alert
support_ticket:
channel: support
template: ticket_alert

Alan Eşleştirme

Slack kullanıcı verilerini Brevo kişi özniteliklerine eşleyin:

Varsayılan Eşleştirmeler

Parameter Type Description
profile.email required
string

Kullanıcı e-postası (Brevo eşleştirmesi için benzersiz tanımlayıcı)

real_name optional
string

Tam ad, FIRSTNAME/LASTNAME olarak bölünür

profile.phone optional
string

SMS özniteliğine eşlenir

profile.title optional
string

İş unvanı

tz optional
string

Kullanıcı saat dilimi

is_admin optional
boolean

Çalışma alanı yönetici durumu

team_id optional
string

Çalışma alanı takım kimliği

status_text optional
string

Kullanıcı özel durumu

API Yöntemleri

Mesajlaşma

YöntemUç NoktaAçıklama
POSTchat.postMessageBir kanala mesaj gönder
POSTchat.updateMevcut bir mesajı güncelle
POSTchat.deleteBir mesajı sil
POSTchat.scheduleMessageBir mesaj planla
POSTchat.postEphemeralKullanıcıya geçici mesaj gönder

Kanallar

YöntemUç NoktaAçıklama
GETconversations.listKanalları listele
GETconversations.infoKanal bilgisini al
GETconversations.membersKanal üyelerini listele
GETconversations.historyKanal mesajlarını al

Kullanıcılar

YöntemUç NoktaAçıklama
GETusers.listÇalışma alanı kullanıcılarını listele
GETusers.infoKullanıcı bilgisini al
GETusers.lookupByEmailE-posta ile kullanıcı bul
GETusers.conversationsKullanıcı kanallarını listele

Etkileşimler

YöntemUç NoktaAçıklama
POSTviews.openBir modal görünüm aç
POSTviews.updateBir modal görünümü güncelle
POSTreactions.addEmoji tepkisi ekle

Olaylar

Brevo’dan Slack’e Bildirimler

OlayTetikleyiciSlack Eylemi
new_subscriberBrevo’da kişi oluşturuldu#marketing’e gönder
campaign_sentE-posta kampanyası gönderildiÖzet #marketing’e gönder
order_placedYüksek değerli sipariş algılandıAyrıntılarla #sales’e gönder
cart_abandonedSepet 30 dk terk edildiTakip için #sales’e gönder
ticket_createdDestek bileti açıldı#support’a gönder
unsubscribedKişi aboneliği iptal etti#marketing’e uyarı gönder

Slack’ten Brevo’ya Tetikleyiciler

Slack OlayıTetikleyiciBrevo Eylemi
message_actionÖzel mesaj kısayoluKişiyi listeye ekle veya otomasyon tetikle
block_actionsMesajda düğme tıklamasıKişi özniteliğini güncelle veya e-posta gönder
view_submissionModal form gönderildiKişi oluştur veya iş akışı tetikle

Kod Örnekleri

Bağlayıcıyı Başlatma

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Slack'i bağla
await tajo.connectors.connect('slack', {
botToken: process.env.SLACK_BOT_TOKEN,
signingSecret: process.env.SLACK_SIGNING_SECRET
});

Pazarlama Bildirimleri Gönderme

// Yüksek değerli bir sipariş verildiğinde bildirim gönder
await tajo.slack.notify({
channel: 'sales',
event: 'order_placed',
data: {
customerEmail: '[email protected]',
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:*\n[email protected]' },
{ 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 Etkileşimlerini İşleme

import crypto from 'crypto';
app.post('/slack/interactions', async (req, res) => {
// Slack istek imzasını doğrula
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);
// Düğme eylemlerini işle
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();
});

Hız Sınırları

Slack API hız sınırları katmanlı bir sistem kullanır:

KatmanSınırYaygın Yöntemler
Katman 1dakikada 1 istekchat.delete, conversations.kick
Katman 2dakikada 20 istekconversations.history, users.info
Katman 3dakikada 50 istekconversations.list, users.list
Katman 4dakikada 100 istekchat.postMessage
ÖzelDeğişirAynı kanala chat.postMessage: saniyede 1

Ek sınırlar:

  • Web API: Kısa süreli kısıtlamayla patlama sınırı
  • Events API: 3 denemeye kadar teslimat yeniden denemeleri
  • Incoming Webhooks: Webhook URL’si başına saniyede 1 mesaj
  • Block Kit: Mesaj başına maksimum 50 blok

Kanal Gönderme Oranı

Aynı kanala gönderim yaklaşık olarak saniyede 1 mesajla sınırlıdır. Hız sınırlamasını önlemek için bildirimleri toplu işleyin veya iş parçacıkları kullanın.

Sorun Giderme

Yaygın Sorunlar

SorunNedenÇözüm
not_authedGeçersiz bot belirteciUygulamayı yeniden yükleyin ve yeni bot belirtecini kopyalayın
channel_not_foundBot kanalda değilBotu hedef kanala davet edin
missing_scopeGerekli kapsam verilmemişKapsamı ekleyin ve uygulamayı yeniden yükleyin
Olay alınmıyorOlay aboneliği ayarlanmamışEvent Subscriptions URL’sini yapılandırın
Etkileşim zaman aşımıYanıt >3 saniyeHemen 200 ile yanıt verin, eşzamansız işleyin

Hata Ayıklama Modu

Ayrıntılı günlük kaydını etkinleştirin:

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

Bağlantı Testi

Terminal window
tajo connectors test slack
# ✓ Bot belirteci geçerli
# ✓ Çalışma alanı erişilebilir
# ✓ Kanallar okunabilir
# ✓ Mesaj gönderme etkin
# ✓ Olay abonelikleri aktif

En İyi Uygulamalar

  1. Block Kit kullanın - Slack’in Block Kit çerçevesiyle zengin, etkileşimli mesajlar oluşturun
  2. Hızlı yanıt verin - Etkileşimleri 3 saniye içinde onaylayın, eşzamansız işleyin
  3. İlgili mesajları iş parçacığına alın - Gürültüyü azaltmak için ilgili bildirimleri iş parçacıklarında gruplayın
  4. Kanala göre yönlendirin - Farklı olay türlerini uygun ekip kanallarına gönderin
  5. Eylem düğmeleri ekleyin - Müşteri verilerine hızlı erişim için “View in Brevo” düğmeleri ekleyin
  6. Açılımı uygulayın - Slack’te paylaşılan Brevo bağlantıları için zengin önizlemeler gösterin

Güvenlik

  • Bot Belirteci - Ayrıntılı izinlere sahip OAuth kapsamlı erişim belirteci
  • İstek imzalama - Gelen istekler için HMAC SHA-256 imza doğrulaması
  • OAuth 2.0 - Çoklu çalışma alanı dağıtımı için endüstri standardı yetkilendirme
  • TLS şifreleme - Tüm API iletişimi HTTPS ile şifrelenir
  • Belirteç rotasyonu - Gelişmiş güvenlik için otomatik belirteç rotasyonu

İlgili Kaynaklar

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI Asistan

Merhaba! Belgeler hakkında her şeyi sorabilirsiniz.