Bu rehberde: Pazarlama metinlerinizi yayımlanmadan veya gönderilmeden önce Türkiye kurallarına göre denetleyen ajanı tanırsınız. Kararın (geçer, uyarı, engel) iş akışında gönderimi nasıl durdurduğunu öğrenirsiniz.
⏱ 10 dakika
Önemli: Ajan hukuki görüş vermez. Göndermeden önceki otomatik bir ön kontroldür; riskli yerleri, ilgili kuralı ve düzeltmeyi gösterir. Engel çıkan ve emin olunamayan durumlarda bir uzmana danışın.
Kimlik kartı
| Alan | Değer |
|---|---|
| Tür | COMPLIANCE_CHECKER |
| Kategori | İçerik |
| Kutu tipi | agent.complianceChecker |
| Varsayılan model | claude-sonnet-5 (dengeli) |
| Ekonomik model | claude-haiku-4-5 |
| Rapor türü | COMPLIANCE_REPORT (Mevzuat uyum denetimi) |
| Araçlar | Yok (isteğe bağlı web_search, varsayılan kapalı) |
| Önerilen hesaplar | Gerekmez |
Ne denetler?
- İYS (6563 sayılı Kanun): Metni ticari veya bilgilendirme olarak sınıflar. Sipariş, kargo, randevu veya ödeme mesajına eklenen her tanıtım (indirim kodu, kampanya bağlantısı) mesajı ticari yapar ve engel sayılır. Tüketiciye giden ticari SMS, WhatsApp ve e-postada İYS onayı, gönderen kimliği ve ücretsiz ret yolu aranır. Tacir ve esnafa önceden onay gerekmez, ama ret hakları vardır.
- Ticari Reklam Yönetmeliği (1 Ağustos 2026'da yürürlüğe giren değişiklik):
- Sponsorlu / influencer içerikte “Reklam” veya “Tanıtım” etiketi ilk bakışta görünmeli ve her parçada (her hikâye karesi, karusel kartı, video bölümü) tekrarlanmalıdır. Tek başına
#işbirliğiyetmez. - İnsan gibi görünen yapay zekâ karakterleri açıklanmalıdır; deepfake tavsiyeler yasaktır.
- İndirim reklamında eski fiyat, aynı kanalda indirimden önceki 10 günün en düşük fiyatı olmalıdır. Ajan fiyat geçmişinizi görmez; doğrulamanızı isteyen bir uyarı ekler.
- Kanıtsız “en iyi”, “en ucuz”, “1 numara”, “garantili” gibi iddialar ve kurallara uymayan karşılaştırmalı reklam işaretlenir.
- Sponsorlu / influencer içerikte “Reklam” veya “Tanıtım” etiketi ilk bakışta görünmeli ve her parçada (her hikâye karesi, karusel kartı, video bölümü) tekrarlanmalıdır. Tek başına
- Sağlık Hizmetlerinde Tanıtım (12 Kasım 2025): Reklam, fiyat, indirim, kampanya ve hasta yorumu yasaktır. Görselli gönderiler etkileşime (yorumlara) kapalı yayımlanır; önce/sonra görselleri yalnızca koşullarıyla kullanılır.
- Alkol: Alkollü içki tanıtımı yasaktır; restoran, bar ve oteller dahil (“rakı-balık menü”, “bira kampanyası”).
- KVKK: Herkese açık gönderide üçüncü kişilerin kişisel verisi, özellikle sağlık verisi yer almaz.
- Finans: Garantili getiri veya “risksiz” iddiası olmaz; yatırım içeriği kişisel tavsiye gibi sunulmaz.
Girdiler
| Alan | Etiket | Tür | Varsayılan | Açıklama |
|---|---|---|---|---|
items | Text to check | metin | boş | Denetlenecek metin. İş akışında boş bırakın: önceki adımdan gelen öğelerin body, caption, subject, hashtags alanları denetlenir. Tek alan için {{ $json.body }} |
channel | Channel | seçim | social | social, sms, whatsapp, email, ad |
sector | Sector | seçim | general | general, health, restaurant, finance, alcohol |
recipientType | Recipient | seçim | consumer | consumer (tüketici) veya tacir (tacir / esnaf) |
isSponsored | Sponsored / influencer content | açık/kapalı | kapalı | Ücretli iş birliği, hediye ürün, indirim kodu |
webSearch | Allow web search | açık/kapalı | kapalı | Açıkken ödül veya sıralama gibi bir iddiayı kontrol etmek için en fazla iki arama (Serper veya Tavily gerekir) |
Ortak alanlar için Ajanlara genel bakış.
Çıktılar
Her çalıştırma main çıkışından tek öğe verir: sonuç, gelen öğenin üzerine eklenir (özgün alanlar korunur). Böylece sonraki Koşul adımı {{ $json.verdict === "pass" }} ile karar verebilir. report çıkışından tek rapor gelir.
{
"verdict": "block",
"messageClass": "ticari",
"issues": [
{ "rule": "iys.promo_in_transactional", "severity": "block", "excerpt": "Bu hafta tüm ürünlerde %30 indirim", "fix": "Kargo bildiriminden tanıtımı çıkarın; kampanyayı yalnızca İYS onayı olan alıcılara ayrı bir ticari ileti olarak gönderin." },
{ "rule": "ad.previous_price", "severity": "warn", "excerpt": "%30 indirim", "fix": "Eski fiyatın bu kanaldaki son 10 günün en düşük fiyatı olduğunu doğrulayın." }
],
"revisedText": "Siparişiniz kargoya verildi. Takip: kahvedunyasi.example/takip",
"requiredLabels": []
}
| Alan | Açıklama |
|---|---|
verdict | pass (gönderilebilir), warn (düzeltin veya doğrulayın), block (bu hâliyle gönderilmemeli). Tek bir block sorunu kararı block yapar |
messageClass | ticari veya bilgilendirme |
issues[] | rule (ör. ad.sponsored_label, health.testimonial, alcohol.no_promotion, kvkk.third_party_data), severity (info, warn, block), excerpt (metinden alıntı), fix (düzeltme); birden çok metinde itemIndex |
revisedText | Kanal biçimi ve ton korunarak uyumlu hâle getirilmiş metin |
requiredLabels[] | Metnin taşıması gereken etiket ve satırlar: “Reklam”, ret satırı, yapay zekâ açıklaması… |
Örnek görev metinleri
- "Kafemizin bu kampanya SMS'ini denetle: ret satırı var mı, indirim ifadesi eski fiyat kuralına uyuyor mu?"
- "Kozmetik markamızın influencer gönderisini denetle; Reklam etiketinin her hikâye karesinde nereye gelmesi gerektiğini söyle."
- "Diş kliniğimizin Instagram gönderisini denetle; reklam sayılan her şeyi çıkar ve yalnızca bilgilendirme olarak yeniden yaz."
- "Kargo bildirimi şablonumuzu denetle; içinde tanıtım varsa bilgilendirme ve ticari ileti olarak ikiye ayır."
İş akışında kullanım
Ajanı gönderen adımdan hemen önce koyun:
Content Creator → Mevzuat Uyum Denetçisi (kanal: social) → Koşul ({{ $json.verdict === "pass" }})
├─ doğru → Gönderi yayınla
└─ yanlış → Onay iste ({{ $json.revisedText }})
- Ajan, gelen her öğe için ayrı çalışır (diğer ajanlar tek sefer çalışır): 3 gönderi gelirse 3 karar çıkar ve her öğe kendi kararını taşır.
- Kutunun
itemModeparametresionceyapılırsa tüm metinler tek kararla değerlendirilir; sorunlardaitemIndexhangi metin olduğunu söyler. - SMS kampanyalarında
channel: sms, alıcılar işletmeyserecipientType: tacirseçin.
İpuçları
- Kanalı ve sektörü doğru seçin; sağlık ve alkol kuralları yalnızca sektör öyle olduğunda uygulanır.
- Engel çıkan sonuçları bir kişi okusun. Düzeltilmiş metni yeni taslak olarak kullanın.
- Yüksek hacimli akışlarda kutuda Rapor kaydet'i kapatın; karar zaten öğenin üzerinde akar.
Maliyet beklentisi
Tek metin, araç yok (~6K giriş / ~1.2K çıkış token):
| Katman | Model | Tahmini maliyet |
|---|---|---|
| Ekonomi | claude-haiku-4-5 | ≈ 0.012 $ |
| Dengeli (varsayılan) | claude-sonnet-5 | ≈ 0.024 $ |
| Dengeli (OpenAI) | gpt-5-mini | ≈ 0.004 $ |
| Amiral gemisi | claude-opus-5 | ≈ 0.06 $ |
Sık karşılaşılan sorunlar
| Sorun | Neden | Çözüm |
|---|---|---|
Her şey warn çıkıyor | İndirim veya ticari ileti doğrulama uyarıları | Eski fiyatı ve İYS onayını doğrulayıp akışta warn'u da onaya yönlendirin |
| Koşul adımı çalışmıyor | İfade yanlış alanı okuyor | {{ $json.verdict === "pass" }} kullanın |
| Sağlık kuralları uygulanmadı | Sektör general | sector: health seçin |
| Yanlış metin denetlendi | Gelen öğede birden çok metin alanı var | items alanına {{ $json.body }} yazın |