Telegram'a bildirimler

Son güncelleme: 22.04.2024

Yeni destek taleplerinin alınmasına ve zaten var olan destek taleplerinde yeni müşteri yanıtlarının oluşturulmasına dair bildirimleri yapılandırma bilgisi bu makalemizde verilmiştir. Diğer talimatlar:

Telegram'a bildirim almak için bir Telegram botu oluşturmanız ve Deskie yönetici hesabınızda ilgili kuralları yapılandırmanız gerekmektedir. 

Telegram'da bot oluşturma

Telegram'a bildirim almak için ayrı bir bot oluşturun. Aynı botu farklı temsilcilere ve/veya farklı gruplara bildirim göndermek için kullanabileceksiniz.

Önemli: bildirimler için ayrı bir Telegram botu oluşturulmalıdır. Bildirimler için oluşturulan Telegram botu asla müşterilerle iletişim kanalı olarak kullanılmalıdır.

1. Telegram'da bir bot oluşturun. Bunu yapmak için:

a. 
"Arama" çubuğuna @BotFather yazın veya t.me/botfather bağlantısını kullanın;
b.
 "Start" / "Başlat" düğmesini tıklayın veya /start komutunu girin;
c. 
@BotFather'ın yanıt mesajındaki veya menüdeki komut listesinde /newbot komutunu seçin;
d. 
Oluşturmakta olduğunuz botu adlandırın ve ardından botunuz için "bot" (birleşik veya yalnızca alt çizgi ile ayrılmış) sözcüğü ile biten bir kullanıcı adı verin.

Botu oluşturma sırasında @BotFather üzerinden elde edilecek bot API tokeni, Deskie'de kuralları yapılandırmak için gerekecektir.

Telegram servisinin bir Telegram botunun kullanıcıya (müşterinize) ilk yazmasına izin vermediğini lütfen aklınızda bulundurun. Özel yazışma kapsamında bottan bildirim alabilmek için, önce mutlaka bota en az bir mesaj göndermeniz gerekmektedir; bildirim alması gereken ekip arkadaşlarınızın da aynı prosedürü izlemesi gerektiğini unutmayın. İlgili botu @botfather'ın oluşturduğu mesajdaki bağlantıyı takip ederek veya Telegram'daki arama aracını kullanarak bulabilirsiniz.

2. Bildirimlerin gönderilmesini yapılandırmak için sohbet ID (Chat ID) değeri de gereklidir.

Tek bir kullanıcı/müşteri ile gerçekleştirilen sohbetin ve bir grup ile gerçekleştirilen grup sohbetin ID'leri farklı olduğu için, önce botun kime (tek kullanıcı/grup) bildirim göndereceğine karar vermeniz gerekmektedir. 

Sohbet ID değerini birkaç farklı şekilde edinebilirsiniz:

  • ilgili görevleri yerine getiren bir bota (örneğin, @username_to_id_bot) sorarak;

  • Telegram Web-A sürümünde tarayıcı çubuğundaki değerin ilgili kısmını kopyalayarak. Telegram hesabınıza giriş yaptıktan sonra, bildirimleri ayarlamak istediğiniz grubu, ekip arkadaşınızla olan sohbeti veya "Kayıtlı Mesajlar" sekmesini (bildirimleri kendiniz için ayarlamak istediğinizde) açın ve # sembolünden sonra gelen sayıyı kopyalayın;

  • Telegram API'sinin json yanıtı aracılığıyla.

Son yöntemi daha ayrıntılı olarak açıklayalım. Tarayıcınızın adres çubuğuna şu bağlantıyı girin: https://api.telegram.org/bot[oluşturduğunuz botun tokeni]/getUpdates; [bot_tokeni] değişkenini parantezlerle birlikte oluşturduğunuz botun API tokeni ile ikame edin. Almanız gereken yanıt şu şekilde olmalıdır: "{"ok":true,"result":[]}".

a. Tek bir kullanıcı/müşteri ile gerçekleştirilen sohbet ID değerini edinmek için, oluşturulan botla bir sohbet başlatıp ona birkaç mesaj gönderin. Ardından, önceki adımda (https://api.telegram.org/bot[oluşturduğunuz botun tokeni]/getUpdates bağlantısını kullanarak) açtığınız sayfayı yenileyin ve alınan sohbet ID değerini kopyalayın.

b. Grup sohbet ID değeri, botun gruba eklenmesinden hemen sonra https://api.telegram.org/bot[oluşturduğunuz botun tokeni]/getUpdates bağlantısını kullanarak açtığınız sayfada görüntülenir. Sayfayı yenileyin ve alınan sohbet ID değerini kopyalayın. Grup sohbet ID değerini farklı kılan özellik — sayısal kodun önünde yer alan eksi ("-") işareti. 

Deskie'de kuralları oluşturma

3. Deskie hesabınızda Telegram'a bildirim gönderecek kuralları oluşturun: yönetici hesabı — "Kanallar" bölümü — "Kurallar" alt bölümü.

a.
Yeni destek taleplerinin alındığına dair Telegram'a bildirimlerin gönderilmesini yapılandırmak için gelen destek talepleri türünden bir kural oluşturun:

"Şu eylemleri gerçekleştir" bloğunda, "Webhooku çalıştır" opsiyonunu seçin ve ardından metodu POST olarak belirtin. "İsteğin gönderileceği URL" alanına aşağıdaki bağlantıyı girin, parantez içindeki [oluşturduğunuz botun tokeni] değişkenini (parantezlerle birlikte) oluşturulan botun API tokeni ile ikame etmeniz yeterlidir.

https://api.telegram.org/bot[oluşturduğunuz botun tokeni]/sendMessage

"Özel isteğiniz" alanına aşağıdaki özel isteği yapıştırın; parantez içindeki [aldığınız sohbetin ID değeri] değişkenini (parantezlerle birlikte) 2. adımdaki talimatlar sonucu elde etmiş olduğunuz sohbet ID değeri (tek müşteri) veya grup sohbet ID değeri ("-" işareti ile birlikte) ile ikame edin.

{
 "chat_id": [aldığınız sohbetin ID değeri],
  "parse_mode": "HTML",
  "text": "<i>Yeni destek talebi</i>\n\n<b>#[case_number]: [case_subject]</b>\n[user_full_name]: [user_email]\n\n[case_description|text]",
  "disable_web_page_preview": "True",
  "reply_markup" : {
       "inline_keyboard": [
       [{"text":"Yanıtla", "url":"[case_url]"}]
     ] 
  }
}

Yukarıda yer alan kod kullanılarak gönderilen bildirim, Telegram arayüzünde şu şekilde görünecektir:

b. Mevcut destek taleplerinde/sohbetlerde yeni müşteri yanıtlarının alındığına dair Telegram'a bildirimlerin gönderilmesini yapılandırmak için güncellenen destek talepleri türünden bir kural oluşturun:

"Şu eylemleri gerçekleştir" bloğunda, "Webhooku çalıştır" opsiyonunu seçin ve ardından metodu POST olarak belirtin. "İsteğin gönderileceği URL" alanına aşağıdaki bağlantıyı girin, parantez içindeki [oluşturduğunuz botun tokeni] değişkenini (parantezlerle birlikte) oluşturulan botun API tokeni ile ikame etmeniz yeterlidir.

https://api.telegram.org/bot[oluşturduğunuz botun tokeni]/sendMessage

"Özel isteğiniz" alanına aşağıdaki özel isteği yapıştırın; parantez içindeki [aldığınız sohbetin ID değeri] değişkenini (parantezlerle birlikte) 2. adımdaki talimatlar sonucu elde etmiş olduğunuz sohbet ID değeri (tek müşteri) veya grup sohbet ID değeri ("-" işareti ile birlikte) ile ikame edin.

{
  "chat_id": [aldığınız sohbetin ID değeri],
  "parse_mode": "HTML",
  "text": "<i>Yeni yanıt destek talebinde</i>\n\n<b>#[case_number]: [case_subject]</b> \n[user_full_name]: [user_email]\n\n[last_message|text]",
  "disable_web_page_preview": "True",
  "reply_markup" : {
       "inline_keyboard": [
       [{"text":"Yanıtla", "url":"[case_url]"}]
     ] 
  }
}

Yukarıda yer alan kod kullanılarak gönderilen bildirim Telegram arayüzünde şu şekilde görünecektir:

Telegram'a bildirimler sayesinde artık müşterilerinizin yeni mesajlarını kaçırmayacaksınız.

PRO ipucu: Yeni sohbetlerde, sohbet (sohbet bazında oluşturulan destek talebi) konusu, ilk müşteri mesajına göre oluşturulur:

  • Bazen mesajlar oldukça uzun olabildiği için bildirim görünümünün düzeni bozulabilir;

  • Bu gibi hallerde, mesajın kendisi sohbet konusunu tekrarlayacaktır.

Bunu önlemek için, e-posta kanalı kaynaklı destek talepleri ve senkron kanallar üzerinden alınan sohbetler için ayrı kurallar oluşturmanızı ve yeni sohbetlere dair bildirimleri gönderen kurallarda [case_subject] değişkenini kullanmamanızı tavsiye ederiz.

Diğer ek olanaklar

4. Webhook kodunuza değişkenler ekleyin

Dilerseniz, ihtiyaç duyduğunuz Deskie'deki verileri (destek talebi grubu, müşteri telefon numarası, şirket, not metni vb.) temsil eden değişkenleri de webhook koduna ekleyebilirsiniz; böylece, Telegram'a bildirimler, görevlerinizi mümkün olan en iyi şekilde karşılar. Ayrıca, öğelerin görünümünü beğeninize göre değiştirebilirsiniz.

Bu şekilde yapılandırılan kodun bir örneği ve bildirimin Telegram'da görünümü:

{
"chat_id": [aldığınız sohbetin ID değeri],
 "parse_mode": "HTML",
 "text": "[last_message|text]\n\n<b>[user_full_name]</b> şu destek talebinde yazdı #[case_number]: <b>[case_subject]</b>\n\n<i>E-posta: </i>[user_email]\n<i>Grup: </i>[case_group]\n<i>Öncelik: </i>[case_priority]\n\n<a href=\"[case_url]\">Destek talebini yanıtla</a>",
 "disable_web_page_preview": "True"
}

5. Webhook kodunda ek parametreler kullanarak aşağıdakileri sağlayın:

a. "disable_notification" — sizi ana görevlerinizden uzaklaştırmayacak "sessiz" bildirimler gönderilmesini;

b. "protect_content" — bildirimleri kopyalama veya iletme özelliklerinin devre dışı bırakılmasını;

c. "message_thread_id" — belirtilen süper grup konusuna bildirimlerin gönderilmesini. İstenen konunun ID değerini edinmek için konu bağlantısındaki "/" işaretinden sonraki sayıyı kopyalayın. Örneğin, https://t.me/c/1808842600/17 için message_thread_id 17'dir;

d. [değişken|text] — html biçimlendirmesinin düz metne dönüştürülmesini;

e. [değişken|limit100] — bildirimlerin belirtilen karakter sayısına göre kısaltılmasını. Telegram, UTF-8 kodlamasında 4096 karakterden uzun mesajların gönderilmesine izin vermez.

Bu şekilde yapılandırılan kodun bir örneği ve bildirimin Telegram'da görünümü:

{
  "chat_id": [aldığınız sohbetin ID değeri],
  "parse_mode": "HTML",
  "text": "<i>Yeni yanıt destek talebinde</i>\n\n<b>#[case_number]: [case_subject]</b> \n[user_full_name]: [user_email]\n\n[last_message|limit350]",
  "disable_web_page_preview": "True",
  "disable_notification": "True",
  "protect_content": "True",
  "message_thread_id":[süper grup konusunun ID değeri],
  "reply_markup" : {
       "inline_keyboard": [
       [{"text":"Yanıtla", "url":"[case_url]"}]
     ] 
  }
}

Koddaki [süper grup konusunun ID değeri] değişkenini ilgili süper grup konusunun ID değeri ile ikame edin ve bildirim uzunluğunu istenen karakter sayısı ile sınırlandırın.

Yukarıda yer alan kod kullanılarak gönderilen bildirim, Telegram arayüzünde şu şekilde görünecektir:

6. İhtiyacınız olan bağlantıları açacak kendi düğmelerinizi ekleyin.

Bu, Deskie'deki müşteri profili, bilgi tabanı, genel destek talepleri listesi gibi bölümlere hızla geçiş yapma olanağını sağlar.

Bu şekilde yapılandırılan HTML biçimindeki kodun bir örneği ve bildirimin Telegram'da görünümü:

{
  "chat_id": [aldığınız sohbetin ID değeri],
  "parse_mode": "HTML",
  "text": "<b>#[case_number]: [case_subject]</b>\n<i>[user_full_name]</i>: [user_email]\n\n[last_message|text]",
  "disable_web_page_preview": "True",
  "reply_markup" : {
       "inline_keyboard": [
       [{"text":"Müşteri profili", "url":"https://[domain].deskie.io/staff/users/record/[user_id]"},   
        {"text":"Bilgi tabanı", "url":"https://[domain].deskie.io/knowledge_base/"}],
       [{"text":"Yanıtla", "url":"[case_url]"}]
     ] 
  }
}

"Bilgi tabanı" ve "Müşteri" profili bağlantılarında, [domain] yerine Deskie'deki alt yetki alanınızın adını belirtin.

Bu şekilde yapılandırılan Markdown V2 biçimindeki kodun bir örneği ve bildirimin Telegram'da görünümü:

{
  "chat_id": [aldığınız sohbetin ID değeri],
  "parse_mode": "MarkdownV2",
  "text": "`[case_number]`: *[case_subject]*\n[user_full_name]: `[user_email]`\n\n`[last_message|text]`",
  "disable_web_page_preview": "True",
  "reply_markup" : {
       "inline_keyboard": [
       [{"text":"Müşteri profili", "url":"https://[domain].deskie.io/staff/users/record/[user_id]"},   {"text":"Bilgi tabanı", "url":"https://[domain].deskie.io/knowledge_base/"}],
       [{"text":"Yanıtla", "url":"[case_url]"}]
     ] 
  }

"Bilgi tabanı" ve "Müşteri" profili bağlantılarında, [domain] yerine Deskie'deki alt yetki alanınızın adını belirtin.

7. İstediğiniz sözdizimi biçimlendirmesini seçin

Telegram, farklı metin biçimlendirme dillerini destekler. İhtiyacınız olanı "parse_mode" parametresinde belirtmeniz gerekmektedir.

a.
HTML — makalemizin ana bölümünde verdiğimiz bildirim ayarları örneklerinde bu biçimlendirme dilini kullandık.

b.
Markdown V2 — Telegram tarafından kullanılması önerilen düz metin biçimlendirme sözdizimine sahip bir dil.

Bu biçimlendirme dili, '_', '*', '[', ']', '(', ')', '~' vb. gibi iletilen karakterler üzerinde bir kısıtlamaya sahiptir. Söz konusu karakterleri içeren metin veya değişken bir `kod` olarak biçimlendirilmelidir: ters tek tırnak işaretleri içine alın veya backticks (unicode U+0060) kullanın. Verdiğimiz kod örneklerinde [case_subject] ve [user_full_name] değişkenlerini bu tür tırnak işaretleri içine almadığımızı fark etmişsinizdir; yukarıda değindiğimiz karakterlerden birini içerirlerse, ilgili bildirimler Telegram'a gönderilmeyecektir. Daha fazla bilgi edinmek için Telegram belgelerini inceleyin.

Telegram masaüstü uygulamasını kullanıyorsanız, Telegram'da Markdown V2 biçimlendirme dilini kullanmanın bir başka avantajı, iletiyi "uzatmasıdır". Bildirimler söz konusu olduğunda, tek bir kaydırmayla daha fazla bilgiyi görüntüleyebileceğiniz için, faydalı olabilir.

Markdown V2 biçimlendirme dilini kullandığınız sürece, bildirimdeki destek talebi numarasını veya müşteri e-posta adresini tek bir tıklamayla hızlıca kopyalayabileceksiniz.

Bu şekilde yapılandırılan kodun bir örneği ve bildirimin Telegram'da görünümü:

{ 
"chat_id": [aldığınız sohbetin ID değeri],
 "parse_mode": "MarkdownV2",
 "text": "`[case_number]`: *[case_subject]*\n[user_full_name]: `[user_email]`\n\n`[last_message|text]`",
 "disable_web_page_preview": "True",
 "reply_markup" : {
      "inline_keyboard": [
       [{"text":"Yanıtla", "url":"[case_url]"}]
     ] 
  }
 }

c. Markdown biçimlendirme dili, Telegram tarafından modası geçmiş olarak kabul edilse de desteklenmektedir.

Bu şekilde yapılandırılan kodun bir örneği ve bildirimin Telegram'da görünümü:

{ 
 "chat_id": [aldığınız sohbetin ID değeri],
  "parse_mode": "Markdown",
  "text": "*#[case_number]: [case_subject]*\n[user_full_name]: [user_email]\n\n[last_message|text]",
  "disable_web_page_preview": "True",
"reply_markup" : {
       "inline_keyboard": [
       [{"text":"Yanıtla", "url":"[case_url]"}]
     ] 
  }
}

Koddaki parantez içindeki [aldığınız sohbetin ID değeri] değişkenini (parantezlerle birlikte) 2. adımdaki talimatlar sonucu elde etmiş olduğunuz sohbet ID değeri (tek müşteri) veya grup sohbet ID değeri ("-" işareti ile birlikte) ile ikame edin.

d. Entities — parse_mode'a alternatif olarak kullanılır. Yalnızca tek bir varlığın iletilmesine olanak tanırlar; bildirim iletisinin tam uzunluğunu bilmenizi gerektirir. Minimalist bildirimler göndermek istediğinizde kullanışlıdır.

Bu şekilde yapılandırılan kodun bir örneği ve bildirimin Telegram'da görünümü:

{
  "chat_id": [aldığınız sohbetin ID değeri],
  "text":"Yeni yanıt destek talebinde: [case_number]",
   "entities": [
       {
    "offset": 0,
        "length": 35,
        "type": "text_link",
        "url":"[case_url]"
    },
       {    
        "offset": 0,
        "length": 35,
        "type": "bold"
        }
],
   "disable_web_page_preview": "True"
 }

Koddaki parantez içindeki [aldığınız sohbetin ID değeri] değişkenini (parantezlerle birlikte) 2. adımdaki talimatlar sonucu elde etmiş olduğunuz sohbet ID değeri (tek müşteri) veya grup sohbet ID değeri ("-" işareti ile birlikte) ile ikame edin.

8. Mesaj metninde @username öğesini kullanın

 Mesaj metninde @username öğesini girerek belirli bir temsilciyi bahsetme ile etiketlemek mümkündür. Telegram'a gönderilen bildirimlerde sorumlu temsilcilerin bahsetme ile etiketlenmelerini istiyorsanız:

a. Yeni alınan destek taleplerine dair bahsetme ile etiketleme niteliğine sahip bildirimleri Telegram'a gönderen gelen destek talepleri için türünden kurallar (her bir temsilci için ayrı ayrı) oluşturun:

Aşağıdaki özel istek kodunu kullanın:

{
    "chat_id": [aldığınız sohbetin ID değeri],
    "parse_mode": "HTML",
    "text": "<i>Yeni destek talebi</i>\n\n<b>#[case_number]: [case_subject]</b>\nSorumlu: @[Kullanıcı_adı]\nÖncelik: [case_priority]\n\n[case_description|text]",
    "disable_web_page_preview": "True",
    "reply_markup" : {
    "inline_keyboard": [
        [{"text":"Yanıtla", "url":"[case_url]"}]
    ] 
  }
}

Yukarıda yer alan kod kullanılarak gönderilen bildirim, Telegram arayüzünde şu şekilde görünecektir:

PRO ipucu: Kuralları daha hızlı eklemek için klonlama işlevini kullanın ve ardından yalnızca ilgili temsilcilerin verilerini düzenleyin. Tüm temsilciler için oluşturulan kuralları tek bir kural grubunda birleştirin.

Oluşturduğunuz kural grubunu, yeni gelen destek taleplerinde temsilcileri sorumlu olarak atayan kuralın altına yerleştirin. Örneğin, yönetici ve "yalnızca görüntüleme" erişimine sahip olanlar hariç, tüm müsait temsilciler arasında yeni gelen destek taleplerini eşit şekilde dağıtacak (yeni gelen destek taleplerinde müsait temsilcileri sorumlu olarak atayacak) böyle bir kural oluşturabilirsiniz:

b. Mevcut destek taleplerinde/sohbetlerde yeni oluşan müşteri yanıtları söz konusu olduğunda, güncellenen destek talepleri için şu tür bir kural (yine her bir temsilci için ayrı ayrı) gerekecektir:

Aşağıdaki özel istek kodunu kullanın:

{
    "chat_id": [aldığınız sohbetin ID değeri],
    "parse_mode": "HTML",
    "text": "<i>Yeni yanıt destek talebinde</i>\n\n<b>#[case_number]: [case_subject]</b>\nSorumlu: @[Kullanıcı_adı]\nÖncelik: [case_priority]\n\n[last_message|text]",
    "disable_web_page_preview": "True",
    "reply_markup" : {
    "inline_keyboard": [
        [{"text":"Yanıtla", "url":"[case_url]"}]
    ] 
  }
}

Destek talebi kapsamındaki yeni yanıt metnini almak için [last_message|text] adlı değişkeni kullanmanız gerektiğini lütfen unutmayın.

Yukarıda yer alan kod kullanılarak gönderilen bildirim, Telegram arayüzünde şu şekilde görünecektir:

PRO ipucu: Bildirimlerde kullanıcı adının yerine sorumlu temsilcinin Deskie'deki tam adının görüntülenmesini istiyorsanız, özel istek kodundaki şu kısmı:

\nSorumlu: @[Kullanıcı_adı]\n

şununla değiştirin:

\nSorumlu: <a href=\"tg://user?id=[user_id]\">[assigned_full_name]</a>\n

Bir Telegram kullanıcı ID'sinin nasıl alınacağı bu makalenin 2. paragrafında ayrıntılı olarak açıklanmaktadır.

Bu yapıya sahip bir bildirim, Telegram arayüzünde şu şekilde görünecektir:

9. Bildirimleri belirli bir süper grubun konusuna gönderin

Bildirimleri belirli bir süper grubun konusuna gönderebilmek için "message_thread_id" değerine ihtiyaç duyulmaktadır. 

Önemli: Bir grubun ayarlarında "konuları" etkinleştirdiğinizde, grup bir süper gruba dönüşür ve yeni oluşan süper gruba farklı bir sohbet ID değeri atanır. Bir Telegram grubuna bildirimlerin gönderilmesini yapılandırdınız ve ardından ilgili grubun ayarlarında "konuları" etkinleştirdiyseniz, Deskie kuralındaki webhook kodunda yalnızca istenen konunun ID değerini (message_thread_id) ID'sini belirtmeniz yeterli olmayacaktır. Ayrıca webhook kodundaki belirtilen sohbet ID'sini de güncellemeniz gerekecektir.

Grup sohbet ID değerinin nasıl alınacağı bu makalenin 2. paragrafında ayrıntılı olarak açıklanmaktadır. Genel olarak (ileride Telegram bu mantığı değiştirebilir), grup bir süper gruba dönüştürüldüğünde, süper grup sohbet ID değeri şu yapıyı edinir — [-100 artı Grup sohbet ID değeri]. Örneğin:

  • Sıradan grubun sohbet ID değeri — [-1808842600]

  • Grup süper gruba dönüştürüldüğünde sohbetin ID değeri — [-1001808842600]

Bir süper grubun konusunun "message_thread_id" değerini, Telegram Web-A sürümünde süper grup konusunun bağlantısının ilgili kısmını kopyalayarak elde edebilirsiniz:

Örneğimizde, "message_thread_id" değeri 41.

Bildirimleri belirli bir süper grubun konusuna gönderen webhook kodu örneği ve bildirimin Telegram'da görünümü:

 {
  "chat_id": [aldığınız sohbetin ID değeri],
  "parse_mode": "HTML",
  "text": "<i>Yeni destek talebi</i>\n\n<b>#[case_number]: [case_subject]</b> \n[user_full_name]: [user_email]\n\n[last_message|limit350]",
  "disable_web_page_preview": "True",
  "message_thread_id":[süper grup konusunun ID değeri],
  "reply_markup" : {
       "inline_keyboard": [
       [{"text":"Yanıtla", "url":"[case_url]"}]
     ] 
  }
}

Bu makale yardımcı oldu mu?