İfadeler nedir?
Bir ifade, belirli bir sözdizimine sahip bir dize gibi görünür. O, sunucuda belirli bir bağlamda «yürütülür» ve yürütmenin sonucu iki boolean değerden biri olur: doğru veya yanlış (true / false).
Aslında ifade şu soruyu yanıtlar: bu belirli e-postayı bu belirli aboneye şimdi göndermek gerekli mi?
Tetikleyici e-postalar için bu tür sorular kural olarak yoktur — onların her zaman gönderilmesi gerekir. Pazarlama e-postaları için ise her şey daha karmaşıktır. Gönderim gerekliliği, abonenin tam olarak hangi verilere sahip olduğuna (örneğin, 8 Mart'ta ne hediye edileceğine dair fikirler içeren bir e-postayı kadın kitleye değil, erkek kitleye göndermek daha mantıklıdır), daha önce hangi e-postaları aldığına ve onlarla nasıl etkileşimde bulunduğuna bağlıdır.
Tüm bu karmaşık kurallar (iş mantığı), yürütülmesi bizi «Evet» veya «Hayır» yanıtına — daha önce bahsedilen true / false boolean değerine — götürecek bir dizi kontrol ve karşılaştırma biçiminde sunulabilir.
Sistemimizde bu tür İfadeler birkaç yerde mevcuttur ve ifadenin içinde erişilebilen farklı bir değişken kümesine sahip olabilir.
Temel sözdizimi
Bir ifadenin içinde farklı veri türleri kullanılabilir:
10— tam sayı3.14— ondalık sayıtrue— boolean değer truefalse— boolean değer falsenull— özel değer null"Hello"— dizesubscriber.id— bir nesnenin özelliğine erişim"World"— bir dizeyi yazmanın başka bir yolu["new", "paid", "shipped"]— dize dizisi
Karşılaştırma operatörleri
==— eşittir!=— eşit değildir<— küçüktür<=— küçük veya eşittir>— büyüktür>=— büyük veya eşittir
Matematiksel operatörler
+— toplama-— çıkarma*— çarpma/— bölme
Mantıksal operatörler
and— mantıksal VEor— mantıksal VEYAnot— mantıksal olumsuzlama
Ayrıca, matematiksel formüllerde genellikle olduğu gibi, yürütme önceliğini değiştirmek için yuvarlak parantezler kullanılabilir: parantez içindekiler önce yürütülür.
Birkaç örnek
subscriber.address_country in ["UA", "PL", "NL"] — yalnızca abonenin ülkesi belirtilenlerden biriyse true döndürür.
(subscriber.birthday_month == now.format("M")) and (now.format("Y") - subscriber.birthday_year == 18) — abonenin doğum günü bu ayda ve 18 yaşına giriyor.
Mevcut değişkenler
Mevcut değişken kümesi, İfadenin uygulandığı yere bağlıdır.
Tabandaki abonelerin gönderim kampanyasına giriş koşulu için değişkenler:
time, subscriber, tags, now
Gönderim kampanyasında bir Olayın gerçekleşmesinin kontrolü için değişkenler:
time, subscriber, tags, now, url (yalnızca bir bağlantıya tıklama olayı için), url_md5 (yalnızca bir bağlantıya tıklama olayı için)
Değişkenlerin açıklaması
- time — tam sayı, Unix timestamp formatında mevcut zaman
- subscriber — abone hakkında veri içeren nesne, alanların ayrıntılı açıklaması bu sayfada belirtilmiştir
- tags — abonenin etiketlerini içeren dize dizisi, örneğin
["tag1", "tag2", "tag3"] - now —
formatmetoduna sahip özel bir mevcut zaman nesnesi. Örneğin,now.format("Y")mevcut yılı dört karakterlik bir dize biçiminde döndürür - url — tıklamanın yapıldığı HTTP bağlantısı
- url_md5 — MD5 dizesi, yani tıklamanın yapıldığı bağlantının MD5 değeri