Ana içeriğe geç

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

  1. api.slack.com/apps adresine gidin.
  2. Sağ üstteki Create New App butonuna tıklayın.
  3. Açılan pencerede From scratch seçeneğini seçin.
  4. App Name alanına uygulamanıza bir ad verin (örn. SkyStudio).
  5. Pick a workspace açılır menüsünden entegre etmek istediğiniz workspace'i seçin.
  6. Create App butonuna tıklayın.

2. Bot izin kapsamlarını (scope) ekleme

  1. Uygulama sayfasının sol menüsünde Features başlığı altından OAuth & Permissions bölümüne gidin.
  2. Sayfayı aşağı kaydırarak Scopes → Bot Token Scopes bölümüne ulaşın.
  3. Add an OAuth Scope butonuna tıklayarak aşağıdaki scope'ları tek tek ekleyin:
ScopeAçıklama
channels:historyPublic kanallardaki mesajları okur
channels:readPublic kanal listesini ve bilgilerini görüntüler
chat:writeBot olarak mesaj gönderir
groups:historyPrivate kanallardaki mesajları okur
groups:readPrivate kanal listesini ve bilgilerini görüntüler
users:readWorkspace'teki kullanıcıları listeler
users:read.emailKullanıcıların e-posta adreslerini görüntüler

3. Uygulamayı workspace'e yükleme

  1. Scope'ları ekledikten sonra sayfanın OAuth Tokens bölümüne gidin.
  2. Install to [Workspace Adı] butonuna tıklayın.
  3. 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

  1. SkyStudio'nun sol menüsünden Uygulama Bağlantıları bölümüne gidin.
  2. Yeni Bağlantı Ekle butonuna tıklayın.
  3. Sağlayıcı olarak Slack seçin.
  4. Bağlantı Adı alanına tanımlayıcı bir isim girin (örn. Prod Slack).
  5. Bot Token alanına kopyaladığınız xoxb-… token'ını yapıştırın.
  6. 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:

OperasyonKategoriAçıklama
Kanal Mesajlarını GetirÖne ÇıkanBelirli bir kanalın geçmiş mesajlarını listeler
Mesaj GönderÖne ÇıkanBir kanala veya kullanıcıya mesaj gönderir
Mesajlarda AraÖne ÇıkanWorkspace genelinde anahtar kelimeyle mesaj arar
Slack AI AsistanÖne ÇıkanDoğal dil sorgusuyla Slack verilerini sorgular
Kanalları ListeleStandartWorkspace'teki tüm kanalları listeler
Kanal Üyelerini GetirStandartBelirli bir kanalın üyelerini döndürür
Kullanıcıları ListeleStandartWorkspace'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

ParametreZorunluAçıklama
ConnectionEvetKullanılacak Slack bağlantısı
Channel IDEvetMesajları getirilecek kanalın ID'si (örn. C01234ABCDE)
LimitHayırDö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

ParametreZorunluAçıklama
ConnectionEvetKullanılacak Slack bağlantısı
Channel ID or NameEvetMesaj gönderilecek kanal ID'si veya adı (örn. C01234ABCDE veya #genel)
MessageEvetGö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

ParametreZorunluAçıklama
ConnectionEvetKullanılacak Slack bağlantısı
Search QueryEvetAranacak anahtar kelime veya ifade
CountHayırDö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

ParametreZorunluAçıklama
ConnectionEvetKullanılacak Slack bağlantısı
QueryEvetDoğal dilde Slack sorgusu
System PromptHayırAI 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

ParametreZorunluAçıklama
ConnectionEvetKullanılacak Slack bağlantısı
LimitHayırDöndürülecek maksimum kanal sayısı
Exclude ArchivedHayırAçı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

ParametreZorunluAçıklama
ConnectionEvetKullanılacak Slack bağlantısı
Channel IDEvetÜ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

ParametreZorunluAçıklama
ConnectionEvetKullanılacak Slack bağlantısı
LimitHayırDö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

HataOlası NedenÇözüm
invalid_authToken geçersiz veya iptal edilmişSlack App sayfasından yeni bir Bot Token oluşturun ve SkyStudio bağlantısını güncelleyin
missing_scopeToken'ın gerekli izin kapsamı yokSlack App → OAuth & Permissions sayfasından gerekli scope'u ekleyin ve uygulamayı yeniden yükleyin
channel_not_foundHatalı Channel ID veya bot kanalda değil"Kanalları Listele" ile doğru ID'yi bulun; botu kanala ekleyin (/invite @botadı)
not_in_channelBot hedef kanalın üyesi değilSlack'te /invite @botadı komutuyla botu kanala ekleyin
ratelimitedSlack API hız limiti aşıldıKısa sürede çok fazla istek gönderilmemesine dikkat edin; workflow sıklığını azaltın
Boş membersKanalda 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 true olarak 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:read scope'una ihtiyaç duyar. Bu izin varsayılan olarak gelmez; Slack App ayarlarından ayrıca eklenmelidir.
  • Kullanıcı listesi is_bot: true olan 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.