Microsoft Teams Node
Microsoft Teams node'u, SkyStudio workflow'larında Microsoft Teams çalışma alanınızla entegrasyon sağlar. Kanal mesajları okuyabilir ve gönderebilir, toplantı oluşturabilir, dosya paylaşabilir ve AI destekli sorgular çalıştırabilirsiniz. Bağlantı için Azure üzerinde bir App Registration oluşturulması gerekir.
Bağlantı Kurulumu ve Yönetimi
Teams node'unu kullanabilmek için Azure Portal'da bir App Registration oluşturmanız, gerekli izinleri (Graph API permissions) tanımlamanız ve elde ettiğiniz Tenant ID, Client ID ve Client Secret bilgilerini SkyStudio'ya girmeniz gerekir.
🎬 Videoyu izlemek için tıklayın → []
Azure App Registration Oluşturma
1. Yeni uygulama kaydetme
- portal.azure.com adresine giriş yapın.
- Arama çubuğuna
App registrationsyazıp App registrations servisine gidin. - + New registration butonuna tıklayın.
- Uygulamaya bir isim verin (örn.
SkyStudio). - Supported account types olarak Accounts in this organizational directory only (Single tenant) seçin.
- Register butonuna tıklayın.
2. Client ID ve Tenant ID kopyalama
Uygulama oluşturulduktan sonra açılan Overview sayfasında şu bilgiler görünür:
- Application (client) ID → bu sizin Client ID'niz
- Directory (tenant) ID → bu sizin Tenant ID'niz
Her ikisini de kopyalayıp bir yere kaydedin. Bu bilgilere daha sonra tekrar erişilebilir.
3. Client Secret oluşturma
- Sol menüden Certificates & secrets bölümüne gidin.
- Client secrets sekmesinde + New client secret butonuna tıklayın.
- Bir Description (açıklama) girin ve Expiration (geçerlilik süresi) seçin.
- Add butonuna tıklayın.
- Oluşturulan secret'ın Value sütunundaki değeri hemen kopyalayın.
Kritik Not: Client Secret değeri yalnızca oluşturulduğu anda görüntülenir. Sayfayı kapattıktan sonra bir daha tam değerine ulaşamazsınız. Kopyalamayı unutursanız secret'ı silip yeniden oluşturmanız gerekir.
4. API İzinleri (Permissions) ekleme
- Sol menüden API permissions bölümüne gidin.
- + Add a permission butonuna tıklayın.
- Microsoft Graph seçin.
- Application permissions sekmesini seçin.
- Teams node'u için gerekli izinleri arayıp ekleyin:
| İzin | Açıklama |
|---|---|
Team.ReadBasic.All | Team listesini okumak için |
Channel.ReadBasic.All | Kanal listesini okumak için |
ChannelMessage.Read.All | Kanal mesajlarını okumak için |
ChannelMessage.Send | Kanala mesaj göndermek için |
Chat.ReadWrite.All | Chat mesajları okumak ve göndermek için |
OnlineMeetings.ReadWrite.All | Toplantı oluşturmak ve kayıtlarına erişmek için |
Files.ReadWrite.All | Dosya göndermek için |
User.Read.All | Kullanıcı bilgilerini okumak için |
- İzinleri ekledikten sonra Grant admin consent butonuna tıklayarak izinleri onaylayın.
Not: Admin consent için Microsoft 365 yönetici hesabına ihtiyacınız vardır. Yetkili değilseniz IT departmanınızdan yardım alın.
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 Microsoft Teams seçin.
- Aşağıdaki alanları doldurun:
| Alan | Açıklama |
|---|---|
| Bağlantı Adı | Tanımlayıcı bir isim (örn. Şirket Teams) |
| Tenant ID | Azure'dan kopyaladığınız Directory (tenant) ID |
| Client ID | Azure'dan kopyaladığınız Application (client) ID |
| Client Secret | Azure'dan kopyaladığınız secret değeri |
| User Email (işlem yapan kullanıcı) | Workflow'u adına çalıştıracak kullanıcının e-posta adresi |
- Kaydet butonuna tıklayın.
Bağlantıyı Node'a Atama
Microsoft Teams 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.
Operasyonlar
Microsoft Teams node'u 12 operasyon sunmaktadır:
| Operasyon | Kategori | Açıklama |
|---|---|---|
| Kanalları Listele | Öne Çıkan | Bir team'deki kanalları listeler |
| Kanal Mesajlarını Oku | Öne Çıkan | Belirli bir kanalın mesaj geçmişini getirir |
| Kanala Mesaj Gönder | Öne Çıkan | Belirli bir kanala mesaj gönderir |
| Chat Mesajı Gönder | Öne Çıkan | Belirli bir chat'e mesaj gönderir |
| Toplantı Oluştur | Öne Çıkan | Yeni bir Teams toplantısı oluşturur |
| Teams AI Asistan | Öne Çıkan | Doğal dil sorgusuyla Teams verilerini sorgular |
| Team'leri Listele | Standart | Organizasyondaki tüm team'leri listeler |
| Chat'leri Listele | Standart | Kullanıcının chat'lerini listeler |
| Kullanıcı Bilgisi | Standart | Belirli bir kullanıcının bilgilerini getirir |
| Kullanıcıları Listele | Standart | Organizasyondaki kullanıcıları listeler |
| Dosya Gönder | Standart | Bir kanala dosya gönderir |
| Toplantı Kayıtları | Standart | Bir toplantının kayıtlarını getirir |
Kanalları Listele
Belirtilen team'deki tüm kanalları döndürür. Kanal ID'lerini keşfetmek için kullanılır.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Teams bağlantısı |
| Team ID | Evet | Kanalları listelenecek team'in ID'si |
Kanal Mesajlarını Oku
Belirtilen kanalın mesaj geçmişini döndürür.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Teams bağlantısı |
| Team ID | Evet | Mesajları okunacak kanalın bağlı olduğu team'in ID'si |
| Channel ID | Evet | Mesajları okunacak kanalın ID'si |
| Limit | Hayır | Döndürülecek maksimum mesaj sayısı |
Kanala Mesaj Gönder
Belirtilen Teams kanalına mesaj gönderir. Bildirim ve rapor paylaşımı workflow'larında kullanılır.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Teams bağlantısı |
| Team ID | Evet | Hedef kanalın bağlı olduğu team'in ID'si |
| Channel ID | Evet | Mesaj gönderilecek kanalın ID'si |
| Message | Evet | Gönderilecek mesaj içeriği |
| Content Type | Hayır | Mesaj tipi: text (düz metin) veya html (HTML içerik) |
Chat Mesajı Gönder
Belirli bir Teams chat'ine (birebir veya grup chat) mesaj gönderir.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Teams bağlantısı |
| Chat ID | Evet | Mesaj gönderilecek chat'in ID'si |
| Message | Evet | Gönderilecek mesaj içeriği |
| Content Type | Hayır | Mesaj tipi: text veya html |
Toplantı Oluştur
Yeni bir Microsoft Teams toplantısı oluşturur ve katılım bağlantısı döndürür.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Teams bağlantısı |
| Toplantı Başlığı | Evet | Toplantının adı |
| Başlangıç | Evet | Toplantı başlangıç tarihi ve saati (YYYY-MM-DDTHH:MM:SS formatında) |
| Bitiş | Evet | Toplantı bitiş tarihi ve saati (YYYY-MM-DDTHH:MM:SS formatında) |
| Timezone | Hayır | Saat dilimi (örn. Europe/Istanbul) |
| Katılımcılar | Hayır | Davet edilecek katılımcıların e-posta adresleri (virgülle ayrılmış) |
Teams AI Asistan
Doğal dil sorgusuyla Teams verilerini sorgular. Video transkriptinden de görebileceğiniz gibi, örneğin son toplantının başlığını doğal dilde sorabilirsiniz.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Teams bağlantısı |
| Query | Evet | Doğal dilde Teams sorgusu |
| System Prompt | Hayır | AI asistanının davranışını özelleştiren sistem talimatı |
Kullanım Örneği
Query: "Son toplantımın başlığı neydi?"
System Prompt: "Yalnızca son 7 gündeki toplantıları dikkate al. Türkçe yanıt ver."
Team'leri Listele
Organizasyondaki tüm team'leri listeler. Team ID'lerini keşfetmek için kullanılır.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Teams bağlantısı |
Chat'leri Listele
Kullanıcının dahil olduğu chat'leri (birebir ve grup) listeler.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Teams bağlantısı |
| Limit | Hayır | Döndürülecek maksimum chat sayısı |
Kullanıcı Bilgisi
Belirli bir kullanıcının (ID veya e-posta ile) Microsoft 365 profil bilgilerini döndürür.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Teams bağlantısı |
| User ID or Email | Evet | Bilgisi getirilecek kullanıcının ID'si veya e-posta adresi |
Kullanıcıları Listele
Organizasyondaki kullanıcıları listeler, isimle arama yapılabilir.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Teams bağlantısı |
| Ara | Hayır | Kullanıcı ismi veya e-posta ile arama filtresi |
| Limit | Hayır | Döndürülecek maksimum kullanıcı sayısı |
Dosya Gönder
Bir Teams kanalına dosya gönderir. Dosya içeriği base64 veya düz metin olarak sağlanabilir.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Teams bağlantısı |
| Team ID | Evet | Hedef kanalın bağlı olduğu team'in ID'si |
| Channel ID | Evet | Dosyanın gönderileceği kanalın ID'si |
| Dosya Adı | Evet | Dosyanın adı ve uzantısı (örn. rapor.pdf) |
| İçerik (base64 veya text) | Evet | Dosya içeriği; binary dosyalar için base64, metin dosyaları için düz metin |
Toplantı Kayıtları
Belirli bir toplantının kayıt bilgilerini ve erişim bağlantılarını döndürür.
Parametreler
| Parametre | Zorunlu | Açıklama |
|---|---|---|
| Connection | Evet | Kullanılacak Teams bağlantısı |
| Meeting ID | Evet | Kayıtları getirilecek toplantının ID'si |
Hızlı Başlangıç Örnekleri
Örnek 1: Günlük Özet Bildirimi
Her sabah belirli bir kanala günlük özet mesajı gönderen workflow:
Schedule (Her gün 09:00) → HubSpot (Fırsatları Getir) → LLM (özetle) → Kanala Mesaj Gönder
Kanala Mesaj Gönder ayarları:
- Team ID:
{satis-team-id} - Channel ID:
{genel-kanal-id} - Message:
{{llm.output}} - Content Type:
html
Örnek 2: Otomatik Toplantı Planlama
Form doldurulduğunda otomatik Teams toplantısı oluşturan workflow:
Form Builder → Toplantı Oluştur → Kanala Mesaj Gönder (toplantı linki)
Toplantı Oluştur ayarları:
- Toplantı Başlığı:
{{form.konu}} - Görüşme - Başlangıç:
{{form.tarih}}T{{form.saat}}:00 - Bitiş:
{{form.bitis_saati}} - Timezone:
Europe/Istanbul - Katılımcılar:
{{form.email}}
Örnek 3: Teams AI ile Toplantı Sorgulama
Kullanıcının doğal dilde sorduğu toplantı sorularını yanıtlayan chatbot:
Metin Girişi → Teams AI Asistan → Metin Çıktısı
Teams AI Asistan ayarları:
- Query:
{{input.text}} - System Prompt:
"Sen şirketin toplantı asistanısın. Yalnızca Teams verilerini kullan. Türkçe yanıt ver."
Örnek 4: Dosya Raporu Paylaşımı
Oluşturulan raporu Teams kanalına otomatik gönderen workflow:
Schedule → Veri Çek → Artifact (rapor oluştur) → Dosya Gönder
Dosya Gönder ayarları:
- Team ID:
{rapor-team-id} - Channel ID:
{raporlar-kanal-id} - Dosya Adı:
haftalik-rapor-{{tarih}}.html - İçerik (base64 veya text):
{{artifact.output}}
Sık Karşılaşılan Hatalar
| Hata | Olası Neden | Çözüm |
|---|---|---|
401 Unauthorized | Client Secret süresi dolmuş veya yanlış | Azure Portal'dan yeni bir Client Secret oluşturun ve SkyStudio bağlantısını güncelleyin |
403 Forbidden | Gerekli API izni verilmemiş | Azure Portal → App Registration → API Permissions'dan eksik izni ekleyin ve Grant admin consent yapın |
Team/Channel bulunamadı | Team ID veya Channel ID hatalı | "Team'leri Listele" ve "Kanalları Listele" operasyonlarıyla doğru ID'leri bulun |
Tenant ID hatası | Yanlış Tenant ID girilmiş | Azure Portal → App Registration → Overview sayfasından Directory (tenant) ID'yi kontrol edin |
AADSTS700016 | Client ID bulunamıyor | Application (client) ID'nin doğru kopyalandığını kontrol edin |
Notlar
- Client Secret'ın varsayılan geçerlilik süresi Azure'da 6 ay veya 1 yıldır. Süresi dolduğunda Azure'da yeni bir secret oluşturup SkyStudio bağlantısını güncellemeniz gerekir.
- User Email (işlem yapan kullanıcı) alanına girilen hesabın Teams'e erişimi olmalı ve organizasyonun bir üyesi olmalıdır.
- API izinleri için Admin consent gereklidir; bu işlemi yalnızca Microsoft 365 Global Admin veya Application Admin rolüne sahip kullanıcılar yapabilir.
- Dosya Gönder operasyonunda büyük dosyalar için içeriği base64 formatına çevirmeniz gerekebilir; bunu önceki bir node'da (örn. LLM veya Transform) yapabilirsiniz.
- Teams AI Asistan operasyonu, bağlı hesabın erişebildiği tüm Teams verilerini sorgulayabilir.