Şablon Sistemi - Dinamik Bildirim İçeriği
Değişkenler, ifadeler ve sistem değerleriyle dinamik bildirim şablonları oluşturun; net uyarı mesajları için en iyi uygulamalarla birlikte.
Echobell'deki şablonlar, bildirim başlıklarınıza ve gövdelerinize değişkenler ekleyerek dinamik ve bağlam açısından zengin bildirimler oluşturmanızı sağlar. Bu güçlü özellik, tetikleyici verisine göre uyarlanan kişiselleştirilmiş ve bilgilendirici uyarılar üretir; genel bildirimleri eyleme geçirilebilir bilgiye dönüştürür.
"Uyarı tetiklendi" gibi genel bir mesaj almak yerine şablonlar sayesinde "Üretim sunucusunun CPU'su %95" ya da "Derleme #142 dağıtım aşamasında başarısız oldu" gibi belirli bildirimler oluşturabilirsiniz; böylece ek araştırma yapmanıza gerek kalmadan bağlamı anında edinirsiniz.
Temel Şablon Sözdizimi
Echobell şablonlarında değişkenleri çift süslü parantez içine alarak kullanabilirsiniz:
{{variableName}}
Bir kanal tetiklendiğinde bu değişkenler, tetikleyiciyle aktarılan gerçek değerlerle değiştirilir. Örneğin başlık şablonunuz You have received ${{amount}} ise ve kanalı amount değeri 100 olacak şekilde tetiklerseniz, oluşan bildirim You have received $100 olarak görüntülenir.
Gelişmiş Şablon İfadeleri
Echobell şablonları, daha karmaşık senaryolar için çeşitli ifadeleri destekler:
- Nesne Özelliklerine Erişme
{{user.name}}
{{data["value"]}}
- Dizi Öğelerine Erişme
{{items[0]}}
- Karşılaştırma Operatörlerini Kullanma
{{status == "active"}}
{{age > 18}}
- Mantıksal Operatörler
{{isSubscribed && !isPaused}}
{{isUrgent || isHighPriority}}
Tüm standart operatörler desteklenir: ==, !=, <, >, <=, >=, &&, || ve !.
Farklı Tetikleyicilerden Gelen Şablon Değişkenleri
Webhook Tetikleyicileri
Webhook ile tetiklerken değişkenleri şu yollarla sağlayabilirsiniz:
-
Sorgu dizesi parametreleri:
GET https://hook.echobell.one/t/<channel-token>?amount=100&status=complete -
JSON gövdesi (POST istekleri için):
POST https://hook.echobell.one/t/<channel-token> Content-Type: application/json { "amount": 100, "status": "complete", "user": { "name": "John", "id": 12345 } } -
Özel değişkenler:
externalLink: Bildirim kayıtlarında tıklanabilir bir bağlantı sağlarbodyAsText:Content-Typedeğeritext/plainise istek gövdesinin düz metin içeriğiheader: HTTP istek başlıklarına erişim sağlar (örneğin{{header["content-type"]}})
E-posta Tetikleyicileri
Bir kanal e-posta ile tetiklendiğinde şu değişkenler otomatik olarak kullanılabilir:
from: Gönderenin e-posta adresito: Alıcının e-posta adresisubject: E-postanın konu satırıtext: E-postanın düz metin içeriğihtml: E-postanın HTML içeriği
Şablon Kullanım Senaryoları
Karşılaştırmalar ve Boolean Değerler
Karşılaştırma veya mantıksal operatör kullanan ifadeler, boolean sonuçlarını true ya da false metni olarak görüntüler:
Payment over $1000: {{amount > 1000}}
High priority: {{isUrgent || isImportant}}
Echobell şablonları satır içi if/else (üçlü operatör) mantığını desteklemez. Farklı durumlarda farklı içerik göndermek için tetiklemeleri yönlendirmek üzere kanal Koşullarını kullanın ya da ham değerleri doğrudan yerleştirin.
Kanal Koşulları
Şablonları bildirim içeriğinde kullanmanın yanı sıra, kanalın gelişmiş ayarlarında bildirimlerin hiç gönderilip gönderilmeyeceğini belirleyen Koşullar tanımlayabilirsiniz. Bu koşullar aynı ifade sözdizimini kullanır (süslü parantezler olmadan).
Örneğin yalnızca belirli bir eşiğin üzerindeki tutarlar için bildirim göndermek üzere:
amount > 100
Bağlantı Şablonları
Bildirim kayıtlarında tıklanabilir bağlantılar oluşturmak için kanalın gelişmiş ayarlarında özel bir bağlantı şablonu yapılandırın:
https://dashboard.example.com/orders/{{orderId}}
Bir bağlantı şablonu ayarlanmadıysa varsayılan olarak externalLink değişkeninin değeri kullanılır.
Sistem Zamanı Değişkenleri (UTC)
Bu değişkenler şablonlarda (ve koşullarda) her zaman kullanılabilir ve UTC olarak hesaplanır.
Aşağıdaki değerler doğrudan (düz olarak) enjekte edilir ve adlarıyla kullanılabilir:
year,month(1–12)dayOfMonth,dayOfWeek(0–6, Pazar = 0)hour(0–23),minute,seconddate(YYYY-MM-DD),time(HH:mm:ss)iso: ISO‑8601 zaman damgası (örneğin2025-05-06T12:34:56.789Z)
Diğer değerler yalnızca sys. ad alanı altında kullanılabilir (düz adlar olarak enjekte edilmezler):
sys.timezone: Her zaman"UTC"sys.now: ISO‑8601 zaman damgası (isoile aynı değer)sys.epochMs,sys.epochSeconds: Unix epoch'tan bu yana geçen süre (sayı)sys.monthName: Ay adı (January–December)sys.dayOfWeekName: Gün adı (Sunday–Saturday)
sys. ad alanı ayrıca tüm düz değerleri de yansıtır (örneğin sys.year, sys.hour).
Örnekler:
Sent at {{date}} {{time}} {{sys.timezone}}
Today is {{sys.dayOfWeekName}}, {{sys.monthName}} {{dayOfMonth}}, {{year}}
Epoch: {{sys.epochSeconds}}
En İyi Uygulamalar
Eksik Değişkenleri Ele Alın
Echobell'de varsayılan değer operatörü yoktur. || operatörü tamamen mantıksaldır; her iki tarafı da boolean olarak değerlendirir ve true ya da false üretir. Yani {{username || "Anonymous User"}} ifadesi kullanıcı adını veya yedek metni değil, birebir true ya da false metnini görüntüler.
Bir değişken eksik olduğunda {{variable}} yalnızca boş bir metin olarak işlenir. Etiketlerinizi, değer boş olsa bile anlaşılır kalacak şekilde tasarlayın:
User: {{username}}
Server: {{serverName}}
Errors detected: {{errorCount}}
Değerin kesinlikle bulunmasını istiyorsanız, bir şablon yedeğine güvenmek yerine onu tetikleyici yükünde açıkça gönderin.
Bilgilendirici Şablonlar
Bildirimlerin ek bağlam gerektirmeden eyleme geçirilebilir olması için şablonlarınıza temel bilgileri ekleyin:
İyi Örnekler:
Title: {{service}} {{status}} on {{environment}}
Body: {{errorMessage}} at {{timestamp}}
Action required: {{recommendedAction}}
Kaçının:
Title: Alert
Body: Check logs
Şablonları Kısa Tutun
Bildirimler, başlıklar ve gövdeler net ve öz olduğunda en iyi şekilde görüntülenir:
- Başlıklar: ideal olarak 3-8 kelime, en fazla 20 kelime
- Gövdeler: ideal olarak 1-3 cümle, metin yığınlarından kaçının
- Öncelik: En önemli bilgiyi başa koyun
iOS bildirim kısıtları:
- Başlık: daraltılmış görünümde yaklaşık 40 karakter görünür
- Gövde: daraltılmış görünümde yaklaşık 60 karakter, genişletildiğinde daha fazlası
Tutarlı Adlandırma Kullanın
Kanallarınız arasında tutarlı bir değişken adlandırması sürdürün:
- Açık ve açıklayıcı adlar kullanın:
sndeğilserver_name - Bir kurala uyun: snake_case, camelCase veya kebab-case
- İlişkili kanallar arasında tutarlı olun
- Ekip üyeleri için beklenen değişkenleri belgeleyin
İyice Test Edin
Şablonlarınızın beklendiği gibi işlendiğinden emin olmak için onları farklı değişken birleşimleriyle test edin:
- Tüm değişkenler mevcutken test edin
- İsteğe bağlı değişkenler eksikken test edin
- Özel karakterler ve Unicode ile test edin
- Çok uzun değerlerle test edin
- Boş metinlerle test edin
- Sayılar, boolean değerler, diziler ve nesnelerle test edin
Okunabilir Bir Yapı Kurun
Bildirim içeriğinin kolayca taranabilmesi için biçimlendirmeden yararlanın:
🚨 Alert: {{alertName}}
━━━━━━━━━━━━━━━
Server: {{server}}
Metric: {{metric}}
Value: {{value}}
Time: {{time}}
━━━━━━━━━━━━━━━
Details: {{message}}
Ya da basit etiketler kullanın:
Server: {{server}}
CPU Usage: {{cpu}}%
Memory: {{memory}}%
Status: {{status}}
İfadelerden Yararlanın
Hesaplanmış değerleri ve karşılaştırma sonuçlarını göstermek için ifadeleri kullanın:
Title: {{service}} alert — critical: {{severity == "critical"}}
Body: {{metric}} is {{value}} (over threshold: {{value > threshold}})
Karşılaştırma ve mantıksal ifadeler true veya false olarak görüntülenir; anlam kazandırmak için bunları sabit etiket metniyle birlikte kullanın.
Saat Dilimlerini Göz Önünde Bulundurun
Sistem zamanı değişkenlerinin UTC olduğunu unutmayın. Bunu belirtin ya da şablonlarınızda dönüştürün:
Alert triggered at {{time}} UTC
Triggered: {{date}} {{time}} (UTC)
Yaygın Desenler ve Örnekler
Sunucu İzleme
Title: {{hostname}} - {{metric}} Alert
Body: {{metric}} on {{hostname}} is at {{value}}{{unit}}
Threshold: {{threshold}}{{unit}}
Time: {{date}} {{time}}
CI/CD Hatları
Title: {{repository}} - Build {{status}}
Body: Build #{{buildNumber}} {{status}} in {{duration}}s
Branch: {{branch}}
Commit: {{commit_message}}
Author: {{author}}
E-ticaret
Title: New Order #{{orderNumber}}
Body: Customer: {{customerName}}
Items: {{itemCount}} items
Total: ${{totalAmount}}
Shipping: {{shippingAddress}}
Hata Takibi
Title: {{errorType}} in {{service}}
Body: {{errorMessage}}
File: {{filename}}:{{lineNumber}}
User: {{userId}}
Environment: {{environment}}
Gelişmiş Özellikler
Bağlantı Şablonları
Bildirim kayıtlarında tıklanabilir bağlantılar oluşturmak için kanalın gelişmiş ayarlarında özel bir bağlantı şablonu yapılandırın:
https://dashboard.example.com/orders/{{orderId}}
https://grafana.example.com/d/{{dashboardId}}
https://github.com/{{repo}}/actions/runs/{{runId}}
Bir bağlantı şablonu ayarlanmadıysa varsayılan olarak externalLink değişkeninin değeri kullanılır. Bu, ilgili panolara, günlüklere veya belgelere doğrudan bildirimden hızlıca erişmek için kullanışlıdır.
Hesaplanmış Değerleri Gösterme
Şablonlar üçlü operatör (? :) mantığıyla dallanamaz ve bir metin birleştirme operatörü (+) yoktur. Bunun yerine değerleri ve karşılaştırma sonuçlarını doğrudan yerleştirin, etiketler için sabit metin kullanın:
Online: {{isOnline}}
High severity: {{severity > 5}}
Errors detected: {{count}}
Karşılaştırma ifadeleri true veya false olarak görüntülenir. Duruma göre gerçekten farklı mesajlar göndermek için tek bir şablon içinde dallanmak yerine tetiklemeleri kanal Koşullarıyla yönlendirin.
Kanal Koşulları
Şablonları bildirim içeriğinde kullanmanın yanı sıra, kanalın gelişmiş ayarlarında bildirimlerin hiç gönderilip gönderilmeyeceğini belirleyen Koşullar tanımlayabilirsiniz. Bu koşullar aynı ifade sözdizimini kullanır (süslü parantezler olmadan).
Örneğin yalnızca belirli bir eşiğin üzerindeki tutarlar için bildirim göndermek üzere:
amount > 100
status == "critical"
temperature > 30 && location == "datacenter"
Bu, bildirimler gönderilmeden önce kritik olmayan olayları eleyerek uyarı yorgunluğunu önler. Daha fazlasını Koşullar kılavuzumuzda öğrenin.
İlgili Dokümantasyon
- Webhook Entegrasyonu - Değişkenleri webhook'lar aracılığıyla nasıl aktaracağınızı öğrenin
- E-posta Tetikleyicileri - E-posta tetikleyicilerinden gelen değişkenler
- Koşullar - Bildirimleri koşullu ifadelerle filtreleyin
- Başlarken - Şablonlarla ilk kanalınızı kurun
Sorun Giderme
Şablon değişkenleri işlemiyor:
- Değişken adlarının tam olarak eşleştiğini kontrol edin (büyük/küçük harfe duyarlı)
- Değişkenlerin webhook/e-posta tetikleyicisinde aktarıldığını doğrulayın
- Önce basit değişkenlerle test edin, ardından karmaşıklığı artırın
Değişkenler boş görünüyor:
- Değişkenin tetikleyici verisinde bulunduğunu onaylayın
- Değişken adlarında yazım hatası olup olmadığını kontrol edin
- İç içe özellikler için JSON yapısını doğrulayın
İfade hataları:
- Önce basit ifadelerle sözdizimini doğrulayın
- Operatörlerin doğru şekilde boşluklandığından emin olun
- Özellik erişiminin doğru sözdizimini kullandığını kontrol edin
Yardıma mı ihtiyacınız var? Destek Merkezimizi ziyaret edin veya echobell@weelone.com adresine yazın.
Şablonlar; kullanıcılara tam olarak ihtiyaç duydukları bilgiyi, ihtiyaç duydukları anda veren dinamik ve bilgilendirici bildirimler oluşturmanın güçlü bir yoludur. Basit değişken yerleştirmeyle başlayın, ardından gelişmiş bildirim sistemleri kurmak için kademeli olarak ifadeler ve koşullu mantık ekleyin.