Power Automate ile Teams ‘de Kanal ve Kişi Etiketleme

Çoğu insanın merakla googleladığı, sekmeler arasında kaybolduğu o muamma konu! Bu makalede Power Automate ile Microsoft Teams ‘de kanal ve kişiyi etiketleme ile otomatik post paylaşma konusunu ele alıp tüm adımlarıyla nasıl yapacağımıza bakacağız.

Odak sorunumuzun doğuş hikayesi şöyle:

  “İnsan Kaynakları departmanı her gün kim doğmuş diye mesaisinin yarısını bu kişileri tespit edip onlara mail atarak geçirmesin, şirketçe haberleşme platformu olarak Teams kullanıyoruz. Burada otomatik doğum günü postu oluşturabilecek bir sistem kuralım. Hem herkesi haberdar etsin hem de kişinin doğum gününü kutlasın.”

Power Automate

, aslında Microsoft’un önceden ortamlarda Flow adıyla bilinen ürününün yeni adı. O yüzden power automate olarak girdiğiniz sitenin çoğu yerinde hala “Flow” ismini görebilirsiniz. Power Automate, yaklaşık 200 – 250 ürünle entegre çalışabilen, bu ürünler arasında çeşitli aktarım, yazma, okuma, oluşturma işlemlerinizi gerçekleştirebileceğiniz iş akışı oluşturma ürünüdür.  Bu ürünü kullanarak her sabah 9’da bitmemiş tasklarınzı kendinize gönderebilir, gönderdiğiniz anketlerin sonuçlarına göre task oluşturma gibi birden çok ürünle entegre akışlar oluşturabilirsiniz.

Şimdi odak sorunumuza geri dönersek yapmamız gereken işler şöyle:

  • Doğum günleri, kişi mail adreslerinin olduğu bir veri kaynağı oluşturacağız.
  • Veriler içinde doğum günlerinin bugün olup olmadığının kontrolünü yapacağız.
  • Doğum günü bugün olanlar içinde Microsoft Teams ‘de kanal seçip kişiyi ve kanalı mentionlayarak herkesin haberinin olmasını sağlayacağız.
  • Bunu her gün tekrarlasın.

Şimdi adım adım ilerleyelim. Öncelikle Power Automate ‘in sitesine gidip yeni bir tane akış oluşturun.

1-TETİKLEYİCİ SEÇİMİ

Bir flow akışı başlatmanız için ihtiyacınız olan en temel şey bir başlatıcı eylemdir(trigger-tetikleyici). Cevap vereceğimiz soru şu olmalıdır: “Ben bu akışın ne zaman çalışmaya başlamasını istiyorum?”. Biz bu akışımızda “Yineleme -Recurrence” kullanacağız. Tetikleyiciyi seçtikten sonra ne zaman çalışacağına dair bilgileri giriyoruz. Biz bu akış için her sabah 10 dedik.

power automate ile teams de mention için yineleme triggeri gif

2-Doğum günleri ve kişi bilgilerini içeren veri kaynağına bağlantı

Burada veri kaynağı olarak biz SQL tercih edeceğiz. Siz isterseniz Excel de tercih edebilirsiniz. Bu noktada şunu hatırlatmakta fayda var. Veri kaynağını değiştirmek istediğiniz akışı en başından tekrar yapmanız gerek. Çünkü bu kaynağı kullanarak kontrol gerçekleştireceğiz ve işlem yapacağız. Seçtiğimiz aksiyon “Satırları Al” işlemi. Böylelikle tablodaki hepsi için kontrol yapabilecek.

sql bağlantısı

3- “Doğum günü bugün mü?” kontrolü

Bu kontrol için action olarak “Koşul” seçiyoruz. Bu koşulda 2 parça olacak: ilki doğum gününün gün parçasını kontrol edecek (ayın aynı günü mü?); ikincisiyse ayını kontrol edecek (Aynı ay mı?). “Choose a value” alanına şimdi bir expression yazacağız. Bunun için “Expression” başlığını seçiyoruz.

power automate kosul ekleme

Koşulları takip etme açısından zorlanmayın diye aşağıya görsel olarak bıraktım. Bir tanesinin kod halini de aşağıda bulabilirsiniz. Burada ilk satırda gelen tarih ibarelerinin gün kısımlarını almak için  formatDateTime fonksiyonunu kullanıyoruz, bugünle eşleşip eşleşmediğini görmek için bugünü de utcNow fonksiyonu ile elde ediyoruz. Yanlarındaki ‘dd’ ve ‘MM’ ifadeleri sırasıyla gün ve ayı temsil ediyor. Bu ifadeleri eklediğinizde bunu her satır için yapacak şekilde “Her Birine Uygula” adımının içina alacak. Formüllerdeki items(‘Apply_to_each’) adımı oradan geliyor. [‘Birthday’] ise bizim veri kaynağımızda doğum günlerinin tutulduğu sütunun adı.
PS: ‘MM’ ifadesini büyük kullanmamız gerekiyor yoksa algılamıyor, yani yanlış yazmadık.

kosullar

formatDateTime(items('Apply_to_each')?['Birthday'],'dd')

4- TEAMS ‘DE ETİKETLEME

Geldikk esas konuyaa… Üstteki adımları yaptıktan sonra şimdi esas mesele doğum günü bugün olanın paylaşımını yapmak. Öncelikle bu adımda bunu hangi grupta ve hangi kanalda paylaşacağımızı seçmeli ve grubun&kanalın id sini almamız gerekmekte. İlgili grup  ve kanalı seçtikten sonra bunların ID alanlarını gene Power Automate ile alabilirsiniz. Bunun için iki action var: Teams Gruplarını Al , Teams Kanallarını Al. Bu istekleri çalıştırarak çıktılarından ID leri bulabilirsiniz.

power automate list channel

Aldığınız bu idleri şu adreste yerine yazıyoruz:

https://graph.microsoft.com/beta/teams/TEAM_ID/channels/CHANNEL_ID/messages

Teams ile alakalı bu özelliği kullanmak için graph.microsoft.com adresine bir istek göndereceğiz. Microsoft Graph, birden çok cihazı ve hizmeti birbirine bağlayan bir geliştiri platformudur.

Power Automate ile Teams ‘de etiketleme-mention için kullanacağımız aksiyon: HTTP with Azure AD – Invoke an HTTP Request

 

power automate invoke http request

Bu actionı daha önce hiç kullanmadıysanız karşınıza buradaki gibi bir ekran çıkmaz; önce login olmanız gereken bir ekran çıkar. Ekranda çıkan iki alana graph.microsoft.com adresini yapıştırmanız gerekiyor.

base eresource

Bu aşamayı da atladıktan sonra çıkan ekranda 4 alanın da doldurulması gerekiyor.

  • İlk olarak method alanı için bir mesaj yayınlayacağımız için POST seçeneğini seçiyoruz.
  • İkinci olarak Url of Request alanı için üstte oluşturduğumuz graph ile başlayan teams_id ve channel_id ile devam eden linki yazacağız.
  • Header kısmı için Enter Key alanına Content-Type; Enter Value alanına application/json yazıyoruz.
  • Body of Request alanına da aşağıdaki kod bloğunu yapıştırıyoruz.
{
"body": {
"content": "General Doğum günün kutlu olsun @{items('Apply_to_each_2')?['DisplayName']}
",
"contentType": "html"
},
"mentions": [
{
"id": 0,
"mentionText": "General",
"mentioned": {
"conversation": {
"id":"19:[email protected]",
"displayName": "Business Applications Trials",
"[email protected]": "#Microsoft.Teams.GraphSvc.conversationIdentityType",
"conversationIdentityType": "channel"
}
}
},
{
"id": 1,
"mentionText": "@{items('Apply_to_each_2')?['DisplayName']}",
"mentioned": {
"application": null,
"device": null,
"conversation": null,
"user": {
"id": "@{items('Apply_to_each_2')?['Id']}",
"displayName": "@{items('Apply_to_each')?['DisplayName']}",
"userIdentityType": "aadUser"
}
}
}
]
}

Tüm bunlardan sonra görüntü şöyle olacak:

 

http isteği dolu hali

BODY AÇIKLAMASI

Biraz body kısmını açıklayım. Content kısmına istediğimiz düzende bir HTML içerik giriyoruz. Bu içeriğe fotoğraf vs. de ekleyebilirsiniz. HTML içerikte kimleri etiketlemek istiyorsak onlar tagı içinde etiketliyoruz. Bunu yaparken id ler kullanıyoruz. Bu tagların içindeki id leri kod bloğunun alt kısmındaki mentioned alanının içinde tanımlıyoruz. Biz hem kanalı etiketleyeceğiz -ki bu grubu etiketlemek olacak.- hem de kişiyi etiketleyeceğiz. ID numaralarını siz verebilirsiniz, ne verdiğiniz önemli değil. Önemli olan aşağıdaki mentioned alanıyla eşleşmesi.

Mentioned kısmında öncelikle bu postun hangi konuşmada çıkacağını belirteceğiz yani kanalı etiketleyeceğiz. Bu da bizim tarafımızdaki Business Applications Trials grubumuzun general kanalı.  Conversation içinde id alanına bizim kanalın idsini yazıyoruz. ConversationIdentityType kısmına da “Channel” bilgisini yazıyoruz. Bir diğeri ise kişiyi etiketleyeceğiz. Kişi etiketini yazarken de kişinin Office 365 idsine ihtiyacımız var. Bu id yi de gene Power Automate üzerinden alabiliriz. Bu noktada kullanmamız gereken action Office 365 Users- Search User. Kullanıcının mail adresini kullanarak idsini alıyoruz.

search user

Bu id yi ilgili Id alanına yazıyoruz. Kişi etiketleyeceğimiz için ConversationIdentityType yerine userIdentityType geliyor. Burada da “aadUser” yazıyoruz vee kaydediyoruzz.

 

Bitirdik.. bitirdik Bu konuya ilişkin söyleyeceğim son şey aşağıdaki linklerden Graph’daki Teams APIleriyle ilgili detaylı bilgi edinebilirsiniz. Bizim blogumuzda Power Automate ve Teams ile ilgili başka güzel makalelerimizi de ziyaret edebilirsiniz. Bir de bu akışın çıktısını sunuyorum.

power automate ile teams de mention

https://docs.microsoft.com/en-us/graph/api/channel-post-messages?view=graph-rest-beta&tabs=http

https://docs.microsoft.com/en-us/graph/api/resources/chatmessage?view=graph-rest-beta

https://docs.microsoft.com/en-us/graph/api/resources/chatmessagemention?view=graph-rest-beta

https://docs.microsoft.com/en-us/graph/api/channel-post-messages?view=graph-rest-beta&tabs=http


Arkadaşlar gg, sosyal izalasyon önemli

 

Power Automate ile Toplu Maıl Göndermek

Özellikle İnsan Kaynaklarının ihtiyaç duyduğu tebrik, etkinlik, özel gün kutlama gibi mail süreçlerinde katılımcılara özel hitap, mail içeriği ve detay konuların özelleştirildiği mailleri Power Automate üzerinden iletebilirsiniz.

Bu sayede tek tek mail göndermek için uğraşmazsınız. Size sadece mail listesi ve detayını belirlemek kalır.

Tablo Oluşturma

OneDrive içerisinde bir Excel açılır. Ekle sekmesinden Tablo seçilerek sayfaya bir tablo eklenir.

Bu tabloya, aşağıda yer alan görseldeki gibi Mail, AdSoyad ve mail detaylarını içeren bilgiler kolonlara yazılır.

Bu tabloda var olan her bir satır, ayrı ayrı mailler olarak akış tarafından gönderilecek.

Power Automate Akış Süreci

Yeni boş bir akış ile işleme başlanır.

Tablodaki veriler doldurduktan sonra akış bireysel tetiklenerek çalıştırılacak. Bu nedenle akışı Flow button for mobile (Manually trigger a flow) ile başlatıyoruz.

Bir sonraki adımda Excel tablosundaki verileri ekleyebilmek için Excel for Bussiness (Tablodaki satırları listele/ List rows present in a table) eklenir. Bu nesnenin içerisine az önce oluşturulan tablo eklenir.

Bir sonraki adımda Outlook (Eposta gönder/Send an email) eklenir.

Bu adımda Excel tablosunun kolonları ilgili alanlara eklenir. Excel alanlarının (mail, ad, vs) seçilmesiyle Her birine uygula (Apply to each) nesnesi otomatik olarak akışa eklenecektir. Her birine uygula nesnesi sayesinde Excel tablosundaki her bir satır için etkinlik oluşturulacaktır.

 

İlgili alanlar doldurulduktan sonra sol üst köşeden akışa isim verilir. Ör: Belirli bir listeye Mail gönderme. Akış sağ üst köşeden kaydedilerek kapatılabilir.

Excel tablosundaki bilgiler teyit edilerek akış çalıştırılabilir.

Power Automate Outlook Bağlantısı için linke göz atabilirsiniz.

Bir Davetli Listesine Power Automate ile Takvim Göndermek

Tüm etkinlik davetleriniz için katılımcılara özel hitap, etkinlik içeriği ve etkinlik konumu gibi verileri özelleştirerek toplantı takvimlerini Power Automate üzerinden iletebilirsiniz.

Bu sayede tek tek takvim oluşturmak için uğraşmazsınız. Size sadece katılımcı listesi ve etkinlik detayını belirlemek kalır.

Tablo Oluşturma

OneDrive içerisinde bir Excel açılır. Ekle sekmesinden Tablo seçilerek sayfaya bir tablo eklenir.

Bu tabloya, aşağıda yer alan görseldeki gibi Mail, AdSoyad ve etkinlik detaylarını içeren bilgiler yazılır.

Bu tabloda var olan her bir satır için ayrı ayrı toplantı mailleri akış tarafından gönderilecek.

Etkinlik tarih ve saat bilgisi Power Automete’in beklediği formatta olması adına 2020-03-23T13:00:00 biçiminde yazılmıştır. Saat formatı, 24 saat biçimindedir ve tam belirttiğiniz saat için etkinlik oluşturulacaktır.

Power Automate Akış Süreci

Yeni boş bir akış ile işleme başlanır.

Tablodaki veriler doldurduktan sonra akış bireysel tetiklenerek çalıştırılacak. Bu nedenle akışı Flow button (Manually trigger a flow) ile başlatıyoruz.

Bir sonraki adımda Excel tablosundaki verileri ekleyebilmek için Excel for Bussiness (Tablodaki satırları listele/ List rows present in a table) eklenir. Bu nesnenin içerisine az önce oluşturulan tablo eklenir.

Bir sonraki adımda Outlook (Etkinlik Oluştur/ Create an Event) eklenir.

Bu adımda Excel tablosunun kolonları ilgili alanlara eklenir. Excel alanlarının (mail, ad soyad, tarih, vs) seçilmesiyle Her birine uygula (Apply to each) nesnesi otomatik olarak akışa eklenecektir. Her birine uygula nesnesi sayesinde Excel tablosundaki her bir satır için etkinlik oluşturulacaktır.

İlgili alanlar doldurulduktan sonra sol üst köşeden akışa isim verilir. Ör: Belirli bir listeye Outlook takvimi göndermek. Akış sağ üst köşeden kaydedilerek kapatılabilir.

Excel tablosundaki bilgiler teyit edilerek akış çalıştırılabilir.

 

Power Automate Outlook Bağlantısı için linke göz atabilirsiniz.

Power Automate Akışlarını Forms Yanıtlarına Göre Şekillendirin

[vc_row][vc_column][vc_column_text]Önceki makalelerimizde Ms Forms ile elektronik ortamda güvenli şekilde veri toplanabildiğinden bahsetmiştik. Otomatik iş süreçleri ise Power Automate akışları ile gerçekleştirebilir.

Bu yazıda MS Forms ile oluşturulmuş bir forma İşlem Seçiniz sorusu ekleyerek kullanıcının seçimine göre şekillenecek bir akış oluşturacağız.

Kullanıcı Formu Onaya Gönder seçeneğini işaretlerse Approval süreci başlayacak, diğer durumda ise sadece bilgilendirme e-postası iletilecek.

Form içine İşlem Seçiniz sorusu eklendikten sonra Power Automate’e geçerek boş bir akış ile işlemlere başlanabilir.

Power Automate

Tüm akışlar oluşturulurken ilk adımda bir tetikleyici belirlenerek oluşturulur. Tetikleyici akışın çalışmaya başlaması için gerekli olan adımdır ve doğru şekilde belirlenmesi önemlidir. Bu makalede oluşturacağımız akış Form yanıtlandığında çalışacak. Yani form her yanıtlandığında akış tetiklenecek ve çalışmaya başlayacak. Form Yanıtlandığında(When a new response is submitted) tetikleyicisi eklenir. Hangi anket yanıtlandığında akış çalışacaksa bu bağlayıcının açılan listesinden belirlenir.

Sonraki adımda ise anketin yanıtlarına bakacağız. Verilen yanıtlara ulaşabilmek için Yanıt Alma Detayları(Get Response Details) adımı eklenir.

Form Kimliği kısmında anketin adı seçilir. Yanıt kimliği için Yanıt bildirimleri listesi Yanıt Kimliği seçilir.

Bu adım ile anketin içindeki tüm soru alanları erişilebilir oldu. Bu sayede, İşlem Seçiniz sorusuna verilen yanıtı alabiliriz.

Yeni adımda, soruya verilen cevabı sınamak için Koşul(Condition) eklenir. Sol tarafa dinamik içerik ile İşlem Seçiniz sorusu eklenir.

Sağ tarafa ise verilen yanıtlardan biri yazılacak. Bu kontrolde Metin (String) bir ifade kontrol edeceğimiz için String fonksiyonu kullanılacak.

String(‘Formu Onaya Gönder’) ifadesi ile verilen yanıt bu değere eşit mi diye kontrol edilecek.

Koşulun Evet ise bölümüne Onay Mailleri (Approval) ekleyerek, Hayır ise kısmına E-mail gönder(Send an E-mail) ekleyerek süreci bitiriyoruz.

Onay maillerinin Onay/Ret olma durumlarına göre de, talebi oluşturan(formu onaya gönderen kişiye) bilgilendirme yapılabilir. (Talebiniz onaylanmıştır./Talebiniz reddedilmiştir.)

Diğer Power Automate yazılarını okumak için linke tıklayın.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/office_imza_son.gif” image_size=”full”][/vc_column][/vc_row]