Slack Node
Slack node'u, SkyStudio workflow'larında Slack çalışma alanınızla (workspace) entegrasyon sağlar. Kanal mesajlarını okuyabilir, mesaj gönderebilir, arama yapabilir ve AI destekli sorgular çalıştırabilirsiniz.
Bağlantı Kurulumu ve Yönetimi
Slack node'unu kullanabilmek için api.slack.com üzerinde bir Slack Uygulaması oluşturmanız, gerekli bot izin kapsamlarını (scope) eklemeniz ve oluşan Bot User OAuth Token'ı SkyStudio'ya girmeniz gerekir.
Slack Bot Token Alma
1. Yeni uygulama oluşturma
- api.slack.com/apps adresine gidin.
- Sağ üstteki Create New App butonuna tıklayın.
- Açılan pencerede From scratch seçeneğini seçin.
- App Name alanına uygulamanıza bir ad verin (örn.
SkyStudio). - Pick a workspace açılır menüsünden entegre etmek istediğiniz workspace'i seçin.
- Create App butonuna tıklayın.
2. Bot izin kapsamlarını (scope) ekleme
- Uygulama sayfasının sol menüsünde Features başlığı altından OAuth & Permissions bölümüne gidin.
- Sayfayı aşağı kaydırarak Scopes → Bot Token Scopes bölümüne ulaşın.
- Add an OAuth Scope butonuna tıklayarak aşağıdaki scope'ları tek tek ekleyin:
| Scope | Açıklama |
|---|---|
channels:history | Public kanallardaki mesajları okur |
channels:read | Public kanal listesini ve bilgilerini görüntüler |
chat:write | Bot olarak mesaj gönderir |
groups:history | Private kanallardaki mesajları okur |
groups:read | Private kanal listesini ve bilgilerini görüntüler |
users:read | Workspace'teki kullanıcıları listeler |
users:read.email | Kullanıcıların e-posta adreslerini görüntüler |
3. Uygulamayı workspace'e yükleme
- Scope'ları ekledikten sonra sayfanın OAuth Tokens bölümüne gidin.
- Install to [Workspace Adı] butonuna tıklayın.
- Açılan izin onay sayfasında uygulamanın erişeceği alanları gözden geçirin ve Allow butonuna tıklayın.
4. Bot Token'ı kopyalama
Yükleme tamamlandığında OAuth & Permissions sayfasına yönlendirilirsiniz. Bot User OAuth Token alanındaki xoxb- ile başlayan token'ı Copy butonuyla kopyalayın.
Not: Bu token'ı kaybetseniz bile OAuth & Permissions sayfasına geri dönerek her zaman görüntüleyebilir ve kopyalayabilirsiniz.
SkyStudio'ya Bağlantı Ekleme
- SkyStudio'nun sol menüsünden Uygulama Bağlantıları bölümüne gidin.
- Yeni Bağlantı Ekle butonuna tıklayın.
- Sağlayıcı olarak Slack seçin.
- Bağlantı Adı alanına tanımlayıcı bir isim girin (örn.
Prod Slack). - Bot Token alanına kopyaladığınız
xoxb-…token'ını yapıştırın. - Kaydet butonuna tıklayın.
Bağlantıyı Node'a Atama
Slack node'unu canvas'a ekledikten sonra sağ paneldeki Uygulama Bağlantıları açılır menüsünden kaydettiğiniz bağlantıyı seçin.
İpucu: Birden fazla Slack workspace'i için ayrı bağlantılar tanımlayabilir ve her workflow'da hangisini kullanacağınızı seçebilirsiniz.
Operasyonlar
Slack node'u 7 operasyon sunmaktadır:
| Operasyon | Kategori | Açıklama |
|---|---|---|
| Kanal Mesajlarını Getir | Öne Çıkan | Belirli bir kanalın geçmiş mesajlarını listeler |
| Mesaj Gönder | Öne Çıkan | Bir kanala veya kullanıcıya mesaj gönderir |
| Mesajlarda Ara | Öne Çıkan | Workspace genelinde anahtar kelimeyle mesaj arar |
| Slack AI Asistan | Öne Çıkan | Doğal dil sorgusuyla Slack verilerini sorgular |
| Kanalları Listele | Standart | Workspace'teki tüm kanalları listeler |
| Kanal Üyelerini Getir | Standart | Belirli bir kanalın üyelerini döndürür |
| Kullanıcıları Listele | Standart | Workspace'teki tüm kullanıcıları listeler |
Kanal Mesajlarını Getir
Belirtilen kanalın mesaj geçmişini döndürür. Kanal aktivitesini izleme, raporlama veya veri analizi workflow'larında kullanılır.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Slack bağlantısı |
| Channel ID | Evet | Mesajları getirilecek kanalın ID'si (örn. C01234ABCDE) |
| Limit | Hayır | Döndürülecek maksimum mesaj sayısı |
Channel ID Nasıl Bulunur?
Slack uygulamasında ilgili kanala sağ tıklayıp Kanal Ayrıntılarını Görüntüle seçeneğini açın; sayfanın en altında Channel ID gösterilir. Alternatif olarak "Kanalları Listele" operasyonunun çıktısındaki id alanı kullanılabilir.
Örnek Çıktı
{
"messages": [
{
"ts": "1717200000.000100",
"user": "U01234ABCDE",
"text": "Bugünkü sprint toplantısı saat 14:00'da.",
"type": "message"
}
]
}
Mesaj Gönder
Belirtilen kanala veya kullanıcıya Slack mesajı gönderir. Bildirim, uyarı veya rapor paylaşımı workflow'larında kullanılır.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Slack bağlantısı |
| Channel ID or Name | Evet | Mesaj gönderilecek kanal ID'si veya adı (örn. C01234ABCDE veya #genel) |
| Message | Evet | Gönderilecek mesaj metni |
Kullanım Notu
Kanal adı girilirken başına # işareti eklenebilir veya yalnızca ad yazılabilir (örn. genel). Doğrudan bir kullanıcıya mesaj göndermek için kullanıcının @ adını veya User ID'sini kullanın.
Örnek Çıktı
{
"ok": true,
"channel": "C01234ABCDE",
"ts": "1717200100.000200",
"message": {
"text": "Günlük rapor hazır.",
"type": "message"
}
}
Mesajlarda Ara
Slack workspace'indeki tüm kanallarda anahtar kelimeyle mesaj arar. İçerik araştırma ve geçmiş mesaj sorgulama senaryolarında kullanılır.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Slack bağlantısı |
| Search Query | Evet | Aranacak anahtar kelime veya ifade |
| Count | Hayır | Döndürülecek maksimum sonuç sayısı |
Kullanım Notu
Arama, bot token'ının erişimi olan kanallarla sınırlıdır. search:read scope izni olmadan bu operasyon çalışmaz.
Örnek Çıktı
{
"messages": {
"matches": [
{
"channel": { "id": "C01234ABCDE", "name": "genel" },
"ts": "1717100000.000100",
"text": "Sprint review toplantısı iptal edildi.",
"username": "ahmet.yilmaz"
}
],
"total": 1
}
}
Slack AI Asistan
Doğal dil sorgusuyla Slack workspace verilerini sorgular. Karmaşık arama sorguları yazmadan kanal ve mesaj analizine ulaşmak için idealdir.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Slack bağlantısı |
| Query | Evet | Doğal dilde Slack sorgusu |
| System Prompt | Hayır | AI asistanının davranışını özelleştiren sistem talimatı |
Kullanım Örneği
Query: "Bu hafta #destek kanalında en çok hangi konu konuşuldu?"
System Prompt: "Yalnızca son 7 günlük mesajları dikkate al. Sonuçları Türkçe ve maddeler halinde özetle."
Kanalları Listele
Slack workspace'indeki tüm kanalların listesini döndürür. Kanal ID'lerini keşfetmek ve dinamik kanal seçimi için kullanılır.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Slack bağlantısı |
| Limit | Hayır | Döndürülecek maksimum kanal sayısı |
| Exclude Archived | Hayır | Açıksa arşivlenmiş kanalları sonuçlardan çıkarır |
Örnek Çıktı
{
"channels": [
{
"id": "C01234ABCDE",
"name": "genel",
"is_private": false,
"num_members": 45
},
{
"id": "C09876ZYXWV",
"name": "destek",
"is_private": false,
"num_members": 12
}
]
}
Kanal Üyelerini Getir
Belirli bir kanalın üye listesini (User ID'leri) döndürür. Kanal bazlı bildirim ve üye yönetimi workflow'larında kullanılır.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Slack bağlantısı |
| Channel ID | Evet | Üyeleri getirilecek kanalın ID'si |
Örnek Çıktı
{
"members": [
"U01234ABCDE",
"U09876ZYXWV",
"U05555MNOPQ"
],
"response_metadata": {
"next_cursor": ""
}
}
Kullanıcıları Listele
Slack workspace'indeki tüm kullanıcıların listesini döndürür. Kullanıcı bilgilerini senkronize etme ve User ID'leri keşfetme senaryolarında kullanılır.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Slack bağlantısı |
| Limit | Hayır | Döndürülecek maksimum kullanıcı sayısı |
Örnek Çıktı
{
"members": [
{
"id": "U01234ABCDE",
"name": "ahmet.yilmaz",
"real_name": "Ahmet Yılmaz",
"profile": {
"email": "ahmet@sirket.com",
"display_name": "Ahmet"
},
"is_bot": false
}
]
}
Hızlı Başlangıç Örnekleri
Örnek 1: Günlük Özet Raporu
Her gün belirli bir kanalın mesajlarını özetleyip başka bir kanala gönderen workflow:
Schedule (Her gün 09:00) → Kanal Mesajlarını Getir → LLM (özetle) → Mesaj Gönder
Kanal Mesajlarını Getir ayarları:
- Channel ID:
C01234ABCDE(takip edilecek kanal) - Limit:
100
Mesaj Gönder ayarları:
- Channel ID or Name:
#yönetim-özet - Message:
{{llm.output}}
Örnek 2: Destek Talebi Bildirimi
Yeni bir destek talebi geldiğinde ilgili ekibi Slack üzerinden uyaran workflow:
Webhook (yeni bilet tetikleyici) → LLM (mesaj formatla) → Mesaj Gönder
Mesaj Gönder ayarları:
- Channel ID or Name:
#destek-ekibi - Message:
{{llm.output}}
Örnek 3: Slack AI ile Kanal Analizi
Kullanıcının doğal dille sorduğu soruları Slack verisiyle yanıtlayan chatbot:
Metin Girişi → Slack AI Asistan → Metin Çıktısı
Slack AI Asistan ayarları:
- Query:
{{input.text}} - System Prompt:
"Sen bir şirket içi asistanısın. Yalnızca Slack kanallarındaki verileri kullan. Yanıtlarını Türkçe ve kısa tut."
Örnek 4: Yeni Üye Hoş Geldin Mesajı
Bir kanala yeni üye katıldığında otomatik karşılama mesajı gönderen workflow:
Webhook (kanal üyelik tetikleyici) → Kullanıcıları Listele → LLM (kişiselleştirilmiş mesaj) → Mesaj Gönder
Mesaj Gönder ayarları:
- Channel ID or Name:
#genel - Message:
{{llm.output}}
Sık Karşılaşılan Hatalar
| Hata | Olası Neden | Çözüm |
|---|---|---|
invalid_auth | Token geçersiz veya iptal edilmiş | Slack App sayfasından yeni bir Bot Token oluşturun ve SkyStudio bağlantısını güncelleyin |
missing_scope | Token'ın gerekli izin kapsamı yok | Slack App → OAuth & Permissions sayfasından gerekli scope'u ekleyin ve uygulamayı yeniden yükleyin |
channel_not_found | Hatalı Channel ID veya bot kanalda değil | "Kanalları Listele" ile doğru ID'yi bulun; botu kanala ekleyin (/invite @botadı) |
not_in_channel | Bot hedef kanalın üyesi değil | Slack'te /invite @botadı komutuyla botu kanala ekleyin |
ratelimited | Slack API hız limiti aşıldı | Kısa sürede çok fazla istek gönderilmemesine dikkat edin; workflow sıklığını azaltın |
Boş members | Kanalda bot izni yok veya kanal boş | Bot token'ının channels:read ve users:read scope'larına sahip olduğunu kontrol edin |
Notlar
- Bot token'ı (
xoxb-) yalnızca botun üye olduğu kanalları okuyabilir. Botu ilgili kanallara eklemek için Slack'te/invite @botadıkomutunu kullanın. - Exclude Archived parametresi
trueolarak ayarlandığında arşivlenmiş kanallar listelenmez; bu, büyük workspace'lerde performansı artırır. - Slack API'si dakikada 50 istek sınırına (Tier 3) tabidir. Çok sayıda mesaj çeken workflow'larda Limit parametresiyle istek sayısını kontrol altında tutun.
- Mesajlarda Ara operasyonu çalışabilmek için
search:readscope'una ihtiyaç duyar. Bu izin varsayılan olarak gelmez; Slack App ayarlarından ayrıca eklenmelidir. - Kullanıcı listesi
is_bot: trueolan bot kullanıcılarını da içerebilir. İnsan kullanıcıları filtrelemek için sonuçları LLM veya If-Else node'uyla işleyebilirsiniz.