# Tetikleyici ve eşleşme türü

## Eşleşme türü

Bir **tetikleyici** botu etkinleştiren, durumları değiştiren veya başka bir işlem gerçekleştiren bir şeydir. "Tetikleyici" alanındaki kelimeler, oluşturucudaki iş akışını blok içindeki olayı veya işlemi yürütmesi için bir tetikleyici olarak görev yapar.

**Tetikleyiciler** sohbetin akışını kontrol eder. Bunlar, koşullu bir blok içinde veya bir bağlantı okunda yer alan "Tetikleyici" alanında yapılandırılır.

* **Biçim:** Bir tetikleyici bir sembol, sayı, düzenli ifade veya belirli bir anahtar kelime olabilir.
* **Eylem:** Bir kullanıcının girdisi tanımlanan bir tetikleyiciyle eşleştiğinde, bot yeni bir huni durumuna ilerlemek veya bir işlem tetiklemek gibi ilişkili iş akışını çalıştırır.

<div data-with-frame="true"><figure><img src="/files/6a8d36578746c6d9290bf7bc8c7e19d380e7a646" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/47b7ec7665ed5dd5a8767926ee163a5349308b0f" alt=""><figcaption></figcaption></figure></div>

Örneğin, messenger için tüm olası başlangıç kelimeleri için bir blok oluşturmanız gerekiyorsa, aşağıdaki koşulu belirtebilirsiniz: start;start;get started;start

{% hint style="success" %}
Tüm karşılaştırma türlerinde, **noktalı virgül (;)** koşulları ayırmak için kullanılır.
{% endhint %}

Sohbet botu, belirtilen işlemi veya olayı çalıştırarak tetikleyiciye yanıt verecektir; örneğin, müşteriye bir hoş geldin mesajı gönderebilir:

<div data-with-frame="true"><figure><img src="/files/308f290458166a1bf98df4f1b24b3ac53c4aeaaf" alt="" width="563"><figcaption></figcaption></figure></div>

Bir tetikleyiciyi tanımak için, karşılaştırma türünü tanımlamanız gerekir ( **"Eşleşme Türü"** alanı). Eşleşme türü, sohbet botunun koşulu müşterinin mesajıyla veya başka bir işlemle (örneğin bir düğme tıklaması) karşılaştırmasına ve sırada hangi olayın tetikleneceğini belirlemesine yardımcı olur.

MaviBot'ta beş tür koşul eşleştirmesi vardır:

1. Belirsiz eşleşme;
2. Anahtar kelime eşleşmesi;
3. RegEx eşleşmesi;
4. Tam eşleşme;
5. Anlamsal arama.

<div data-with-frame="true"><figure><img src="/files/0a4697c8852a7666bd3ca658fbf7a8654eb83fdd" alt="" width="563"><figcaption></figcaption></figure></div>

Her birine daha yakından bakalım.

### Belirsiz eşleşme

Bu, temel karşılaştırma türüdür ve botun yazım hataları, yanlış yazımlar, doğruluk eksikleri, eksik harfler ve harf yeniden sıralamalarını işlemesine olanak tanır. Dizeler arasındaki benzerlik %70'ten büyükse koşul tetiklenir.

**Örnek:**\
Koşul için **"hello"**, aşağıdaki varyasyonlar eşleşme tetikler: **"hlelo"**, **"hellp"**, **"helo"**&#x76;e benzeri.

<div data-with-frame="true"><figure><img src="/files/493b5f2aed01066e9560af460fafe87a0860e765" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/2d4d9118830f3e3d7d5d339a83056b0cf65d5bf4" alt="" width="563"><figcaption></figcaption></figure></div>

Bu karşılaştırma türü kullanıcı odaklıdır ve koşullar işlenirken insan faktörünü dikkate alır, çünkü yazım hataları oldukça yaygındır.<br>

Düğmenin **"Belirsiz"** eşleşme türü, müşterinin sohbeti başlattığı bir sohbet botu akışındaki karşılama (ilk) bloğu için idealdir.

### Anahtar kelime eşleşmesi

**Anahtar kelime eşleşmesi** insan benzeri bir danışman oluşturmaya yardımcı olan çok güçlü bir karşılaştırma türüdür. Bu eşleştirme türüyle bot, koşulun anahtar kelimelerinden en az birini içeren herhangi bir kullanıcı mesajına yanıt verir.

Başka bir deyişle, müşteri koşuldaki anahtar kelimelerden bir veya daha fazlasını içeren bir mesaj gönderirse, akış ayarlarına göre tetiklenir.

**Örnek:**\
"hello;person" koşulu için aşağıdaki mesaj bunu tetikler:\
"Bu harika kişiyi selamlamak istiyorum."

<div data-with-frame="true"><figure><img src="/files/84c58e3e9912a6681b405d8b6ab189e78d4fabdd" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/63eba9c7031847d3ac847dba30a13a14e47fb939" alt="" width="563"><figcaption></figcaption></figure></div>

Koşula çok sayıda anahtar kelime ekleyebilirsiniz. Bu, sohbet botunun müşterinin o anda neye ihtiyaç duyduğunu tanımasını ve blok içinde yapılandırılmış uygun olayı tetiklemesini sağlar.

<div data-with-frame="true"><figure><img src="/files/e71810b3d86247b193b9a06294c66bafdb9a1aee" alt="" width="375"><figcaption></figcaption></figure></div>

Yukarıdaki örnekte görüldüğü gibi, bot koşuldaki anahtar kelimelerden en az birini içeren herhangi bir mesaja yanıt verecektir.\
Bu eşleşme türü ayrıca şu alanı da kullanır **"Tetikleyicileri yoksay"** (yanıtı tetiklememesi gereken mesajlar).

<div data-with-frame="true"><figure><img src="/files/f8e3639860071d57dfdb5ab0eb4d1482ac632257" alt="" width="375"><figcaption></figcaption></figure></div>

Bu alan koşul alanına benzer şekilde çalışır ancak ters etkiyle: kullanıcının mesajı **"Tetikleyicileri yoksay"** alanındaki herhangi bir kelimeyi içeriyorsa, koşul tetiklenmez.

Buna göre, **"Tetikleyicileri yoksay"** alanındaki koşul karşılanırsa, genel koşul çalışmaz.

### Değişkenlik

Noktalı virgülle ayrılmış ek bir tetikleyici ekleyebilirsiniz, peki birkaç kelime seçeneğinden birini eşleştirmeniz gerekiyorsa ne olur?

Örneğin, "İnternetim çalışmıyor", "Bilgisayarım çalışmıyor" veya "Bilgisayarım bozuldu" gibi ifadeleri tek bir tetikleyiciyle ele almak için.

Açıkçası, tüm anahtar kelime varyasyonlarını tek tek listelemek pratik değildir. İşte bu yüzden OR sözdizimi oluşturuldu. Birkaç eşdeğer anahtar kelimeden birini belirtmek için, hepsini parantez içine alın ve dikey çizgiyle (`|`).

Örneğin, tetikleyici `(tar plan|tariff) (pereit|podklyuch|menit|pomen)` şu tür sorularla eşleşir:\
"Merhaba, yeni bir planı nasıl bağlarım?"\
"Fiyatlandırma planımı nasıl değiştiririm?"

<div data-with-frame="true"><figure><img src="/files/af60caf2f9a03c225573ea90c886ad4cdad953de" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/b4f8ed664784a8cc37cd6c028beca4861c58bb02" alt="" width="563"><figcaption></figcaption></figure></div>

Tetikleyiciyi parçalayalım:\
`(tar plan | tariff)` dizgenin şunu içermesi gerektiği anlamına gelir **“tar” VE “plan” VEYA “tariff”**\
VE aynı zamanda şu kelimelerden biri: **“switch” VEYA “connect” VEYA “change” VEYA “replace”**.

İşte başka bazı sezgisel örnekler:

* `change password (cab|pa)`\
  ("cab" ve "pa", "cabinet" ve "personal account" için kısaltmadır)
* `(forgot|reset|restore|remember|accepts|fits|incorrect|not the right|don’t remember) password`
* `(can’t|unable to) (restore|change) password`
* `login in contract; (lost|loss|where is|don’t know|where|can’t find|no) contract`
* `(suspend|blocked|block|disconnect) (services|internet|inet|charged); (saved|save) day; put on pause; leaving`
* `auto payment; payment; pay; recurring payment; connect payment`

### Tam eşleşme

Bu karşılaştırma türünde bot, yalnızca müşterinin mesajı koşulla tam olarak eşleşirse olayı tetikler.

{% hint style="info" %}
Karşılaştırma büyük/küçük harfe duyarsızdır; yani koşul "hello" ise ve kullanıcı "HELLO" yazarsa, koşul yine de tetiklenir. Bu dikkate alınmalıdır.
{% endhint %}

Bu karşılaştırma türü, bir müşterinin bir düğmeye tıkladığı veya belirtilen bir site etiketiyle mini açılış sayfasından sohbet botuna geçtiği bağlantılar gibi ayarlarda kullanım için uygundur.

1. **Düğme tıklamaları için:**\
   Örneğin, koşullarda, müşteri tarafından tıklandığında onları ilgili bloğa götürmesi gereken düğmelerin adlarını belirtiyoruz.

<div data-with-frame="true"><figure><img src="/files/c63533f70075f0cf531a3643197f23c0c80a39fc" alt="" width="375"><figcaption></figcaption></figure></div>

Sonra, müşterinin ilk bloktan sonra düğmeye tıkladıktan sonra yönlendirilmesi gereken blokları oluşturacağız. Bunlardan dördü olmalıdır:

<div data-with-frame="true"><figure><img src="/files/5f651674bf529aa876e03190e07d20bb4b899ad1" alt=""><figcaption></figcaption></figure></div>

Ardından, ok ayarlarında düğme adını girer ve eşleşme türünü **"Tam eşleşme" olarak ayarlarız.**

<div data-with-frame="true"><figure><img src="/files/3bfdf47f1ee1c9741b3f40324402b666826b9c9a" alt=""><figcaption></figcaption></figure></div>

Şimdi botu test edebilirsiniz:

<div data-with-frame="true"><figure><img src="/files/d49701c7e4ffba265eac9c05f557657c9daea7c3" alt="" width="563"><figcaption></figcaption></figure></div>

Gördüğünüz gibi, bot düğmeleri kullanırken koşulu ve tam eşleşme seçimini doğru şekilde işler.

2. Huni içinde site etiketi kullanımı:

Bu durumda ilke, düğmeleri kullanmaya benzerdir; ancak koşul ve eşleşme türü doğrudan koşullu bloğun kendisi içinde ayarlanır.

Burada etiket **Siteler** sekmesinden alınır; burada web sayfası için etiketi yüklemişsinizdir:

<div data-with-frame="true"><figure><img src="/files/31d9e213b196807f45950046ac096b09d4e80fe9" alt="" width="563"><figcaption></figcaption></figure></div>

Bloğun koşulundaki etiket **"ETİKET" kelimesini veya başka herhangi bir etiketi kullanmadan doğrudan bloğun KOŞUL alanında belirtilir.**

<div data-with-frame="true"><figure><img src="/files/cafaf4a67551fe47e38ba445906a4020c8c376b4" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="info" %}
Web sitesine yüklenen bir etiket kullanarak bot tetikleyicisini nasıl ayarlayacağınız hakkında daha fazla ayrıntı için şu makaleye bakın **"Bir Web Sitesi Oluşturma ve Temel Ayarlar**[**"** alanına **"Etiket"** bölümünde görünecektir.](/doc/tr/websites/siteler/builder.md#tag)
{% endhint %}

Sohbet botu ayrıca yanıt verecek ve bloğun ayarları içinde yapılandırılmış olayı çalıştıracaktır.

### RegEx eşleşmesi

RegEx eşleşmesi, botun girilen verilerin formatını kontrol etmesine olanak tanıyan bir koşul türüdür (örneğin, kullanıcının başka bir şey değil de bir telefon numarası girip girmediğini doğrulamak için).

Veri toplama sırasında kullanıcılar genellikle istenenden farklı bilgi girer. İşte tipik bir telefon numarası doğrulama akışı örneği. Kullanıcı geçerli bir telefon numarası dışında bir şey girerse, bot ondan tekrar denemesini isteyecektir.

<div data-with-frame="true"><figure><img src="/files/da848d23ec13753af49f74f8929d26777816b7b1" alt=""><figcaption></figcaption></figure></div>

Telefon numarası isteyen bloktan iki bağlantı çıkar:

1. Bir bağlantı **tetikleyicisiz**
2. Başka bir bağlantı, **regex tetikleyicisiyle** bir telefon numarasını doğrulamak için

^(\\+)?((\d{2,3}) ?\d|\d)((\[ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$

Tetikleyicili bağlantı telefon numarasını isteğe ekler ve yalnızca geçerli bir telefon numarası algılandığında tetiklenir. İkinci bağlantı, daha düşük önceliğe sahip olduğu için diğer tüm durumlarda tetiklenir.

{% hint style="info" %}
Faydalı düzenli ifadelerin tam listesi şurada bulunabilir [aynı adlı makalede](/doc/tr/chatbot/functions/regex.md).
{% endhint %}

### Anlamsal arama

Düğmenin **"**&#x41;nlamsal aram&#x61;**"** seçeneği yapay zekâya dayanır — sohbet botunuz için gerçek bir atılım.

Nasıl çalışır:

* Tetikleyici, yapay zekânın müşterinin mesajında tanımlayacağı **ANLAMINI** temsil eden kelimeler veya ifadeler içerir.
* Sistem (sohbet botu), müşterinin girdisi içinde koşula gömülü anlamı arayarak müşterinin mesajını işler.
* Ardından bot, blok içindeki karşılık gelen olayı tetikler.

Başka bir deyişle, koşulda belirli ifadeleri veya değerleri belirterek, yapay zekâ her koşulu müşterinin mesajına karşı kontrol eder ve blok içindeki ilgili olayı tetikler (örneğin, bir mesaj gönderme vb.).

Örnek:

Blok içindeki ilgili olayı tetiklemek için yapay zekânın müşterinin mesajında algılaması gereken belirli ifadeleri ve anahtar kelimeleri belirttik.

Bizim durumumuzda tetikleyici, "hesap veya sözleşme kapatma" ile ilgili ifadeleri içerir.

<div data-with-frame="true"><figure><img src="/files/d3e1af1a6ffb90c1c16026e33564a157325ff264" alt=""><figcaption></figcaption></figure></div>

şunu kullanırken **"**&#x41;nlamsal aram&#x61;**"** seçeneği, bot müşterinin mesajında koşulda belirtilenlerle anlam olarak benzer kelimeler veya ifadeler bulmalıdır:

<div data-with-frame="true"><figure><img src="/files/35d7cc173385b85edaa0db1f9a17a4ccef5e9560" alt="" width="563"><figcaption></figcaption></figure></div>

Bot her müşterinin mesajını işlediğinde, blokta tanımlanan gerekli olayı doğru şekilde tetikler.

**Bir tetikleyici nasıl yazılır**\
Tetikleyici, diğer tüm eşleşme türleri için diğer koşullar gibi ilgili alana girilir: noktalı virgüllerle (;) ayrılmış olarak.

<div data-with-frame="true"><figure><img src="/files/35a54d2c05794199fa4a9d22d15b1fa366291ce3" alt=""><figcaption></figcaption></figure></div>

Tetikleyici alanında ifadeleri veya kelimeleri mümkün olduğunca doğru ve öz şekilde belirtmek en iyisidir.

{% hint style="success" %}
Blok için kısa, net ve kesin bir koşul, sohbet botunun blok içindeki olayı doğru şekilde tetiklemesine yardımcı olur.

Koşul ne kadar karmaşık, belirsiz ve uzun ifadeler içerirse, yapay zekânın müşteri mesajlarını işlemesi o kadar uzun sürer; bu da akışınızın yanlış davranmasına yol açabilir.
{% endhint %}

{% hint style="warning" %} <mark style="color:kırmızı;">**Lütfen dikkat edin!**</mark>&#x20;

Bir tetikleyici **NOT** yalnızca tek bir kelimeden oluşmalıdır: koşullar kısa olmalı olsa da, botun aradığı anlamı yansıtmalıdırlar.

Model iki farklı tek kelimeyi karşılaştırırsa, eşleşmezler. Örneğin, "invoice" kelimesini kullanmak yerine, "aylık fatura ödemesi" koşulunu kullanın. Bu koşul, amaçlanan gereksinimleri daha iyi karşılayacak ve yapay zekâ modeline anlamsal eşleştirme için gerekli kriterleri sağlayacaktır.
{% endhint %}

Böylece, **"**&#x41;nlamsal aram&#x61;**"** seçeneğini kullanarak, yapay zekâ müşterinin mesajının anlamını anlamak için çeşitli olasılıkları analiz edecek ve eşleşmeye dayanarak sohbet botu uygun olayı tetikleyecektir.

## Tetikleyici oluşturucu

Tetikleyici, çeşitli kanallardan, ödeme sistemlerinden ve diğer entegrasyonlardan gelen geri çağırmalara yanıt vermek için ilgili bloklar içinde tetikleyicileri hızlıca oluşturmak üzere tasarlanmış benzersiz, özel bir özelliktir.

Buna göre, tetikleyici oluşturucu yalnızca tetikleyicileri destekleyen bloklar için kullanılabilir:

<div data-with-frame="true"><figure><img src="/files/baa420272b3f3b1160ba990c84d2e840abd141f1" alt="" width="375"><figcaption></figcaption></figure></div>

Tetikleyici oluşturucuyu kullanmak için, koşul alanının hemen üzerinde bulunan ilgili düğmeyi göreceğiniz blok ayarlarını açın:

<div data-with-frame="true"><figure><img src="/files/66fd30366171a758977a46232634d5130bfed547" alt=""><figcaption></figcaption></figure></div>

İlgili düğmeye tıkladıktan sonra, koşullarla çalışmak için bir pencere açılacaktır:

<div data-with-frame="true"><figure><img src="/files/478ee01ed6bb976700711b6e66d49c9fda0a6c00" alt=""><figcaption></figcaption></figure></div>

### MaviBot tetikleyicileri

<div data-with-frame="true"><figure><img src="/files/cfc579e63e3689d251f310fd3e756c175b13023c" alt=""><figcaption></figcaption></figure></div>

Düğmenin **"MaviBot Tetikleyicileri"** sekmesi, tetikleyici oluşturucudaki tüm sistem koşullarını içerir; bunlar MaviBot'ta çeşitli bölümlerde depolanmış ve kullanım için kullanılabilir durumdadır.

**Varsayılan tetikleyiciler**\
Bu işlevsellik, bir blok içindeki iç içe koşullara benzer şekilde çalışır: burada **NOT** sisteme önceden yerleştirilmiş koşulları belirlersiniz. Bu bir huni etiketi, bir site etiketi veya yalnızca projenizde bulunan başka herhangi bir koşul olabilir.

**Değişkenler**

<div data-with-frame="true"><figure><img src="/files/768408ab101348802454f2e02bc07b192c343c35" alt=""><figcaption></figcaption></figure></div>

Değişkenli tetikleyicileri kurmak oldukça kolaydır.

**Adım 1.** Değişken adını uygun alana girin.

**Adım 2.** Karşılaştırma parametresini seçin.

<div data-with-frame="true"><figure><img src="/files/6bf27b9c2abb565e2a5fd1ab1a2c1b4bb4d09f5f" alt="" width="563"><figcaption></figcaption></figure></div>

Başka bir deyişle, değişkeninizi neyle karşılaştırmak istediğinizi belirtin: belirli bir değerle veya başka bir değişkenle.

<div data-with-frame="true"><figure><img src="/files/d8e6fccc2da4562fa80a8772da8f545861f990f4" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/b5a58cd8bdeeee6872618cb6fc3f2b09ac1fafc6" alt="" width="563"><figcaption></figcaption></figure></div>

3\. Adım. Karşılaştırma türünü seçin.

<div data-with-frame="true"><figure><img src="/files/84ebee91b15e08556d7feb25844dd9e538513fd8" alt="" width="563"><figcaption></figcaption></figure></div>

Her karşılaştırmanın bir anlamı vardır: eşittir (==); eşit değildir (!=); kesinlikle büyüktür (>); büyük eşittir (>=); kesinlikle küçüktür (<); küçük eşittir (<=).

Örnek:

<div data-with-frame="true"><figure><img src="/files/792c4417c8bfb57a6d5966777976db2e6d3385e1" alt="" width="563"><figcaption></figcaption></figure></div>

Örnekte, değişkenin değeri 21'e eşit veya daha büyük olacak şekilde ayarlanmıştır. Bu ne anlama gelir?\
Bu, blok içindeki olayın yalnızca "yetişkin" yaş grubuna ait müşteriler için — yani 21 yaşında veya daha büyük olanlar için — tetikleneceği anlamına gelir.

İfade **"age >= 18"** şuna eşdeğerdir **"age > 17."**

Koşul **"age > 17"** ayrıca yalnızca 17'den kesinlikle büyük olanlar için, yani 18 ve üzeri için tetiklenecektir.

#### MaviBot bölümleri

<div data-with-frame="true"><figure><img src="/files/c9b2f24d81c17d20bbebf1a584ced9f11e6e3cae" alt=""><figcaption></figcaption></figure></div>

MaviBot bölümleri koşullarında, projedeki çeşitli olaylarla ilgili tipik geri çağırmalar — sistem bildirimleri — vardır.

Bir blok içindeki bir olayı sistem bildirimlerine dayanarak tetiklemek için, koşul alanında gerekli geri çağırmayı ayarlayın, ardından eşleşme türünü seçin ve **"Koşul ekle"** düğmesine tıklayın:

Bundan sonra, koşul bloğun içindeki ilgili alanlarda görünecektir.

{% hint style="success" %}
Blokta zaten bir koşul varsa, **"Koşul ekle"** düğmesine tıklamak yeni koşulu ekler **mevcut olanın** sonuna. Eski koşulu yeni bir koşulla değiştirmek istiyorsanız, **"Koşulu değiştir." öğesine tıklayın.**
{% endhint %}

### Messenger'lar

<div data-with-frame="true"><figure><img src="/files/027f00ce1caa9526801b2fe01bcba362c8ca07a2" alt="" width="563"><figcaption></figcaption></figure></div>

Kanallardaki koşul oluşturucu, yalnızca gönderilere veya yayınlara verilen tepkileri izlemeye yardımcı olmakla kalmaz, aynı zamanda sohbet botunun yanıtı için bloklar içindeki olayları tetiklemeye de yardımcı olur.

### Ödeme

<div data-with-frame="true"><figure><img src="/files/2600b86e7c659b48b083d1b8b938aa72c00d415e" alt="" width="563"><figcaption></figcaption></figure></div>

1\. Adım. Ödeme sistemleri için koşulları ayarlamak üzere, ilgili entegrasyonu bağladığınızdan emin olun; aksi takdirde gerekli sistemle koşul oluşturucuyu kullanamazsınız.

2\. Adım. Ardından, ihtiyacınız olan ödeme sistemine tıklayın.

3\. Adım. Uygun geri çağırmayı seçin.

4\. Adım. Ardından ödeme tutarını ilgili alana girin ve **"Koşul ekle." öğesine tıklayın.** Son adım, blok ayarlarına uygun mesajı yazmaktır:

{% hint style="success" %}
Koşul oluşturucunun diğer bölümleri burada ele alınan bölümlerle benzer şekilde yapılandırılır.\
Başarılar dileriz!
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/tr/chatbot/builder/setting/trigger/type.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
