# Çevrimiçi rezervasyon için chatbot

## Genel Bilgiler

Çevrimiçi rezervasyon için bir chatbot, şirketiniz için hizmet planlama sürecini otomatikleştirmenizi sağlayan bir funnel builder işlevleri kümesidir.

Botun iş akışı, işlevlerin sıralı olarak yürütülmesine dayanır: önce müşteriye gösterilecek veriler alınır, ardından bu veriler yeni işlevleri tetiklemek ve yeni sonuçlar elde etmek için iletilir.

Müşteri funnel boyunca ilerlerken, her bir sonraki bloğa yalnızca müşterinin seçimine karşılık gelen verileri aktarmalısınız — bu verileri sonraki işlev çağrılarını yapılandırmak için kullanın.

Ara verileri (örneğin çalışan pozisyonları ve hizmet kategorileri) alma ve bunları çalışanları ve hizmetleri filtrelemek için iletebilme özelliği sayesinde, funnelınızı esnek şekilde yapılandırabilir ve müşteriye ilerleme adımlarını kontrol etme imkânı verebilirsiniz.

{% hint style="info" %}
Bu makalede açıklanan tüm yöntemler bir sözlük dizisi döndürür.

Onlarla rahat çalışmak için aşağıdaki bölümleri incelemenizi öneririz [Diziler](broken://pages/e341a5eb847c2fa03ade776ced736a5fdaa92c4b) ve [Sözlükler](broken://pages/920d34dae2154e2f0cedd5f307138579850f6d15).&#x20;

Ayrıca, kullanıcı eylemleri oluşturma işlevini (hizmet seçimi, tarih, rezervasyon) kullanmak için, [tools\_make\_button\_str\_checker yöntemini](/doc/tr/chatbot/functions/hesap-makinesi/arrays.md).&#x20;
{% endhint %}

incelemenizi öneririz.

<figure><img src="/files/ef10ca315e4a86fc03a60d69a9a3fc5124bc87c2" alt="" width="563"><figcaption><p>chatbot diyagramı</p></figcaption></figure>

{% hint style="info" %}
Kullanımda olan işlevlerle çevrimiçi rezervasyon chatbotunun ayrıntılı yapılandırma diyagramını görmek için bu makalenin [Bot Uygulama Örneği](#example-of-bot-implementation) bölümüne bakın.&#x20;
{% endhint %}

## Şube Bilgilerini Alma

Bir çevrimiçi rezervasyon funnel'ı oluşturmak ve proje şubeleri hakkında bilgi almak için get\_companies\_for\_booking işlevini kullanın.

İşlev, ayarlarında “Online Booking” etkin olan her şube (funnel) için verileri içeren bir liste döndürür.

Veriler anahtar-değer çiftleri olarak sunulur ve şube kimliğini (id), adını (name) ve adresini (address) içerir.

İşlev herhangi bir parametre almaz.

### Kullanım örneği:

Bir blok içindeki işlev çağrısı:

<figure><img src="/files/1c15b449081dacad8891a6e304c569072e2b66dc" alt="" width="375"><figcaption></figcaption></figure>

Döndürülen veriye örnek:

<figure><img src="/files/9c92a94fd0bb89812b7d0ad92daa109899345115" alt="" width="375"><figcaption></figcaption></figure>

## Pozisyonlar veya hizmet kategorileri hakkında bilgi alma

get\_categories\_for\_booking(company\_id) işlevi, bir şube için tüm uzman türlerinin veya hizmet kategorilerinin listesini almanızı sağlar.

Döndürülen listedeki her öğe, pozisyonun veya hizmet kategorisinin bir kimliğini (id), adını (name) ve açıklamasını (description) içerir. Veriler "anahtar-değer" çiftleri olarak sunulur:

#### Parametreler:

<table><thead><tr><th width="310">Parametre</th><th>Açıklama</th></tr></thead><tbody><tr><td>company_id (gerekli) </td><td>Şube kimliği, beklenen format — tamsayı.</td></tr></tbody></table>

### Kullanım örneği:

Kod bloğunda işlev çağrısı örneği:

<figure><img src="/files/fc57d4c3580845e1c3b6e7be7e6c8b516781d2e7" alt="" width="375"><figcaption></figcaption></figure>

## Çalışanlar hakkında bilgi alma

Şube çalışanları hakkında bilgi vermeniz gerekiyorsa, get\_employees\_for\_booking işlevini kullanın.

Çağrı, çalışan kimliğini (id), adını (name), bilgilerini (information) ve unvanını (job\_title) içeren bir veri listesi döndürür.

Çalışanları hizmet listesine, unvana veya hizmet kategorisine göre de filtreleyebilirsiniz. Bunu yapmak için işlev çağrısına ek bir parametre iletin: service\_ids, job\_title\_id veya service\_category\_id.

#### Parametre sırası:

company\_id -> service\_ids -> job\_title\_id -> service\_category\_id

#### **Parametreler:**

<table><thead><tr><th width="287"></th><th></th></tr></thead><tbody><tr><td>company_id (gerekli)</td><td>Şube kimliği, beklenen format — tamsayı;</td></tr><tr><td>service_ids (isteğe bağlı)</td><td>Hizmet kimliği veya bir hizmet kimlikleri listesi, beklenen format — tamsayı veya virgülle ayrılmış köşeli parantez içinde bir tamsayı listesi; örn. [844, 845]</td></tr><tr><td>job_title_id (isteğe bağlı)</td><td>Unvan kimliği, beklenen format — tamsayı;</td></tr><tr><td>service_category_id (isteğe bağlı) </td><td>Hizmet kategorisi kimliği, beklenen format — tamsayı;</td></tr></tbody></table>

**Not:**

Bir şubenin tüm çalışanlarını almak istiyorsanız, service\_ids, job\_title\_id ve service\_category\_id değerlerini boş bırakın.

* Çağrı örneği: get\_employees\_for\_booking(14275391)

Çalışanları bir hizmet kimlikleri listesine göre filtrelemek için, listeyi ikinci parametre olarak iletin ve job\_title\_id ile service\_category\_id değerlerini boş bırakın.

* Çağrı örneği: get\_employees\_for\_booking(14275391, \[844, 845])

Çalışanları unvana göre filtrelemek için, kimliği job\_title\_id parametresine iletin ve service\_ids ile service\_category\_id değerlerini boş bırakın.

* Çağrı örneği: get\_employees\_for\_booking(14275391, “”, 1021)

Belirli bir kategoride hizmet veren çalışanları almak için, service\_ids ve job\_title\_id alanlarını boş dizeler olarak bırakın ve seçilen kategori kimliğini service\_category\_id'ye iletin.

* Çağrı örneği: get\_employees\_for\_booking(14275391, “”, “”, 1019)

### Kullanım örneği:

Kod bloğunda işlev çağrısı:

<figure><img src="/files/d1b525de9a97e97feb5f0f08ba05fd356d576c82" alt=""><figcaption></figcaption></figure>

Döndürülen veriye örnek:

<figure><img src="/files/e0ea11cabc29a27d83e7f510d7f48dcef6e6abf6" alt="" width="375"><figcaption></figcaption></figure>

## Hizmetler hakkında bilgi alma

Şube tarafından sunulan hizmetler hakkında bilgi almak için **get\_services\_for\_booking** işlevini kullanın.

Çağrı sonucunda bot, hizmet verilerini içeren bir liste döndürür. Her hizmet kaydı bir kimlik (**id**), bir ad (**title**), bir açıklama (**description**), bir fiyat (**price**) ve hizmet süresini dakika cinsinden (**duration**).

Dönen listeyi hizmet kategorisine, çalışana veya hem hizmet kategorisi hem çalışana göre aynı anda filtreleyebilirsiniz. Bunun için işlev çağrısında ek parametreler **service\_category\_id** ve/veya **employee\_id** iletin.

#### Parametre sırası:

company\_id -> service\_category\_id -> employee\_id

**Parametreler:**

<table><thead><tr><th width="310"></th><th></th></tr></thead><tbody><tr><td>company_id (gerekli) </td><td>Şube kimliği, beklenen format – tamsayı;</td></tr><tr><td>service_category_id (isteğe bağlı) </td><td>Hizmet kategorisi kimliği, beklenen format – tamsayı;</td></tr><tr><td>employee_id (isteğe bağlı) </td><td>Çalışan kimliği, beklenen format – tamsayı;</td></tr></tbody></table>

#### “Parametreler” bölümüne not:

Bir şubenin tüm hizmetlerini almak istiyorsanız, **service\_category\_id** ve **employee\_id** değerlerini boş bırakın.

* Çağrı örneği: get\_services\_for\_booking(14275391)

Hizmetleri kategoriye ve/veya çalışana göre filtrelemek istiyorsanız, ilgili kimlikleri **service\_category\_id** ve **employee\_id** parametrelere iletin. Yalnızca bir parametreye göre filtrelemek için diğerine boş bir dize girin.

Çağrı örnekleri:

* get\_services\_for\_booking(14275391, 1018) - hizmet kategorisi filtresi;
* get\_services\_for\_booking(14275391, “”, 512978) - çalışan filtresi;
* get\_services\_for\_booking(14275391, 1018, 463665) - her iki parametreye göre filtreleme;

### &#x20;Kullanım örneği:

İşlevi bir blok içinde çağırma:

<figure><img src="/files/1069237881a1a1c72fe69529792ed3d73b61f928" alt=""><figcaption></figcaption></figure>

Döndürülen veriye örnek:

<figure><img src="/files/431e0656a6be38ede03db0eb8dcf84254a4542ff" alt="" width="375"><figcaption></figcaption></figure>

## Uygun rezervasyon tarihlerini alma

Müşteri rezervasyon için hizmetleri seçtikten sonra, uygun rezervasyon tarihlerinin listesini alması gerekir.

Bu listeyi oluşturmak için **get\_dates\_for\_booking** işlevini kullanın.

işlevini kullanın. İşlev, uygun zaman aralıklarını kontrol edecek ve “gün.ay.yıl” formatında uygun tarihlerin bir listesini döndürecektir.

#### Parametrelerin sırası şöyledir:

company\_id -> service\_ids -> employee\_id -> days\_limit

#### Parametreler:

<table><thead><tr><th width="309.33941650390625"></th><th></th></tr></thead><tbody><tr><td>company_id (gerekli) </td><td>şube kimliği, beklenen format – tamsayı;</td></tr><tr><td>service_ids (isteğe bağlı)</td><td>rezervasyon için hizmet kimlikleri listesi, beklenen format – tamsayı veya virgülle ayrılmış köşeli parantez içinde bir tamsayı listesi (örn. 842 veya [842, 843]);</td></tr><tr><td>employee_id (isteğe bağlı)</td><td>çalışan kimliği, beklenen format – tamsayı. Parametre değeri boş bırakılırsa veya boş bir dize “” olarak iletilirse, işlev service_ids listesindeki hizmetlerin tamamını sunan tüm çalışanlar arasında uygun tarihleri arar;</td></tr><tr><td>days_limit (isteğe bağlı)</td><td>uygun tarihler için aramanın yapılacağı mevcut tarihten itibaren gün sayısı, beklenen format – tamsayı, varsayılan değer – 14 (gün);</td></tr></tbody></table>

### Kullanım örneği:

İşlevi bir blok içinde çağırma:

<figure><img src="/files/d3424f8abdb14a4b155631fba1d175f28baba985" alt=""><figcaption></figcaption></figure>

Döndürülen veriye örnek:

<figure><img src="/files/2e283b407b2098e164903478ff1d989cebe496dd" alt="" width="375"><figcaption></figcaption></figure>

## Uygun rezervasyon saatlerini alma

Uygun rezervasyon saatleri listesini almak için **get\_slots\_for\_booking** işlevini kullanın.

işlevini kullanın. İşlev, seçilen tarihte uygun zaman olup olmadığını kontrol edecek ve “saat:dakika” formatında boş slotların bir listesini döndürecektir; örneğin \[“09:00”, “11:00”, “14:30”, “16:00”].

#### Parametrelerin sırası şöyledir:

company\_id -> service\_ids -> employee\_id -> slot\_interval

#### Parametreler:

<table><thead><tr><th width="284"></th><th></th></tr></thead><tbody><tr><td>company_id (gerekli)</td><td>şube kimliği, beklenen format – tamsayı;</td></tr><tr><td>service_ids (isteğe bağlı) - </td><td>rezervasyon için hizmet kimlikleri listesi, beklenen format – tamsayı veya bir tamsayı listesi (örn. 842 veya [842, 843]);</td></tr><tr><td>date (isteğe bağlı) - </td><td>slot kontrolü için tarih, beklenen format – “gün.ay.yıl” biçiminde bir dize, örneğin “01.01.2024”;</td></tr><tr><td>employee_id (isteğe bağlı)</td><td>çalışan kimliği, beklenen format – tamsayı. Parametre değeri boş bırakılırsa veya boş bir dize olarak iletilirse, işlev seçilen tarihte çalışan ve service_ids listesindeki hizmetlerin tamamını sunan tüm çalışanların programlarında boş slotları arar;</td></tr><tr><td>slot_interval (isteğe bağlı) </td><td>uygun slotlar arasındaki dakika cinsinden aralık, beklenen format – tamsayı, varsayılan değer – 30 (dakika);</td></tr></tbody></table>

### Kullanım örneği:

Bloktaki işlev çağrısı:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXc7GJ9EjdCro_idrF14dVYscslN653oUESQaAFjHBWZrSO8q4joGD95kXjFfaX-E2oRT_nLCdKNrGdN9j5wBVJFKOgiyG2ZGDJNjR-l3OAhvP2E0pPTA0dOiYD3WxGdxdD57bRO-UC3CoGVVO4XV3Cq5BNpc8cZ1S6S0lsnlw?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

Döndürülen veriye örnek:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXe6V_i1iPe4C6A6CDJPu6GNK4fFLzUzq4ktYRRf01jRRgvRl87Ir3hWs2GbWRsYatbz0o8srDyE6pHklrvZ129tilNr5fuR9C_lhQP75MO-_Mfi9JVgcTvHoldK6Y8dcZ_cQamJp2JDxBfA8OU3a9cDgPavncaz-9aU_p31qg?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

## Rezervasyon oluşturma

Çevrimiçi rezervasyon oluşturmak için **create\_booking** işlevini kullanın.

işlevini kullanın. Rezervasyon başarılı olursa, işlev işlem durumunu (status) True değeriyle ve rezervasyon ayrıntılarını (booking) “anahtar: değer” formatında döndürür.

Yeni rezervasyon verileri şunları içerir:

* kimlik (id),&#x20;
* tarih (booking\_date),&#x20;
* saat (booking\_time),&#x20;
* hizmet adları (services),&#x20;
* rezervasyon süresi (service\_duration),&#x20;
* toplam maliyet (total\_cost),&#x20;
* atanan çalışanın adı (employee\_name) ve unvanı (job\_title),&#x20;
* şube adı (company\_name) ve şube adresi (company\_address)&#x20;

“anahtar: değer” formatında.

#### Parametre sırası:&#x20;

company\_id -> service\_ids -> booking\_date -> booking\_time -> employee\_id

Parametreler:

<table><thead><tr><th width="288"></th><th></th></tr></thead><tbody><tr><td>company_id (gerekli)</td><td>şube kimliği, beklenen format – tamsayı;</td></tr><tr><td>service_ids (gerekli)</td><td>rezervasyon için hizmet kimlikleri listesi, beklenen format – tamsayı veya bir tamsayı listesi (örn. 5 veya [5, 10, 15]);</td></tr><tr><td>booking_date (gerekli)</td><td>rezervasyon tarihi, beklenen format – “gün.ay.yıl” biçiminde bir dize, örneğin “15.01.2024”;</td></tr><tr><td>booking_time (gerekli) </td><td>rezervasyon saati, beklenen format – “saat:dakika” biçiminde bir dize, örneğin “12:30”;</td></tr><tr><td>employee_id (isteğe bağlı)</td><td>çalışan kimliği, beklenen format – tamsayı. Parametre değeri boş bırakılırsa veya boş bir dize “” olarak iletilirse, işlev belirtilen tarih ve saatte uygunsa, service_ids listesindeki hizmetlerin tamamını sunan rastgele bir çalışanla rezervasyon yapar;</td></tr></tbody></table>

### &#x20;Kullanım örneği:

Bloktaki işlev çağrısı:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXdb3Fq2gqGtJ-QK342Hr12Ckv-krW_04_uAeJsCcnKpCq_iTC8mAxXjXvc_UqOVAOfm7WGcHYlfcvZjImoZXoNuPYCctsZOPB35toHI4zWMmK-sr3GoEdujlh8YQRxXsF_qN-I836wsU3AKhMvP8t0KiF0h6syWhECIxsynkQ?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

Başarılı rezervasyon yanıtı örneği:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXfsZPfW9v1VoJqC3nNqtnlLQJS-KhAaEi3uUzhz26vYmcxajMRMwd7NnZVZB2LpmavglbNibSpAAJIlo0mbge1_K6rguZTf1tE4NxkBPmKQ1GCy0x47vzfkIV5DTN-R-RlYpMZ-bfAQ-vrZ_tEM6mugSbn0E5BAjHCVN2Gdmw?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

Rezervasyonlar oluşturulup ardından uygun slotlar tekrar istendiğinde, listelerin kısaldığını fark edeceksiniz. Örneğin 05.02.2024 tarihinde 18:00 slotu artık uygun değildir (yalnızca Victoria'nın programında boştu) ve Paul Thompson için erkek saç kesimi ile sakal şekillendirme rezervasyonları artık 9:00 ile 14:00 arasında yapılabilir; çünkü hizmetlerin toplam süresi 1 saat 45 dakikadır ve Pavel'in 16:00'da başka bir rezervasyonu vardır.

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXfglzV1DHx8clVfshVMInDi9MOS6sAlPGG8Axr6FYKBAeINwRaj2gvJMRYNcec7ZmDCnFKYCkU64AQqz2mgMWxCnp4G4YPRPb6C9D9g9KLKFM2e2bCVpBA2refY_fChq-W1uNy196r5d8dNZUudGRg-2qgN9NX20lCteL8AZw?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

## Bir müşterinin yaklaşan rezervasyonları hakkında bilgi alma

Bir müşterinin mevcut rezervasyonlarını **get\_bookings\_info** işlevini kullanın.

işlevini çağırarak görüntüleyebilirsiniz. Yanıt, aktif rezervasyonların bir listesini ve her rezervasyon için ayrıntılı bilgileri döndürür.

Rezervasyon bilgileri “anahtar: değer” formatında sunulur ve şunları içerir:

* rezervasyon kimliği (booking\_id),&#x20;
* tarih (booking\_date),&#x20;
* saat (booking\_time),&#x20;
* seçilen hizmetlerin kimlikleri (service\_ids) ve adları (service\_names),&#x20;
* rezervasyon süresi (booking\_duration),&#x20;
* hizmetlerin toplam maliyeti (total\_cost),&#x20;
* atanan çalışanın kimliği (employee\_id) ve adı (employee\_name), ayrıca unvanı (job\_title),&#x20;
* şube kimliği (company\_id)&#x20;
* şube adı (company\_name) ve adresi (company\_address).

#### Parametreler:

<table><thead><tr><th width="253"></th><th></th></tr></thead><tbody><tr><td>client_id (isteğe bağlı)</td><td>client ID, req – Belirli bir müşteri için rezervasyonları almak istiyorsanız bu parametre gereklidir; varsayılan olarak botla yapılan sohbetteki müşteri kimliğini kullanır.</td></tr></tbody></table>

### Kullanım örneği:

Bloktaki işlev çağrısı:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXeKlJcFxIx3cc_3vb8g0MARiqu6iNE4eW8BEmVY21MjT74GxS2U7JKFaAn6Sia99v4kQ4O8HuHFYkQJs8jCNmtpZHIkKq1SZ3_3BCBSA7mCs_iXVk6Ucu8hWTOHN7mPa0J5LGG5QSRK8TSP9BEZracVVNQBZKuZkLJx36r_TA?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

Döndürülen veriye örnek:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcHzfzRWdUXAmr-iwrHhcdpHYraOD--i4jjI5ftsc-KRzzEOOFArT3hKZE--WucI4m3_b2v0DK99dV4EL2BQ9d0U2q-2fGHM6RiCHX_YUl7kgI-SA4zJIHs4zFte6GhgQAMfUY9Qim4THusxMhKielEnXQuHzapLqmh_oZm?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

## Rezervasyon tarih ve saatini değiştirme

Bir müşteri, rezervasyon tarihini ve saatini bağımsız olarak değiştirebilir. Bunun için, **modify\_booking\_time** işlevinin çağrıldığı funnel bloğuna erişmesi gerekir.

İşlem başarılı olursa, işlev işlem durumunu (status) True değeriyle ve “Booking time modified” mesajını (message) “anahtar: değer” formatında döndürür.

#### Parametre sırası:&#x20;

order\_id -> new\_date -> new\_time

#### Parametreler:

<table><thead><tr><th width="300"></th><th></th></tr></thead><tbody><tr><td>order_id (gerekli) </td><td>rezervasyon kimliği, beklenen değer – tamsayı;</td></tr><tr><td>new_date (gerekli)</td><td>yeni rezervasyon tarihi, beklenen format – “gün.ay.yıl” biçiminde bir dize, örneğin “16.01.2024”;</td></tr><tr><td>new_time (gerekli)</td><td>yeni rezervasyon saati, beklenen format – “saat:dakika” biçiminde bir dize, örneğin “14:30”;</td></tr></tbody></table>

### Kullanım örneği:

Bloktaki işlev çağrısı:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcDyllYwQDcuLOWIAFTCHb4A765baTgyFrir86V0h3ja3OQpECP2D5TszmK-M_PbKmQRVbp1LFLUMc_JIU4m9562kGnWz9WILVhjpMhf1jZw5bOUXCuBbUasMKWeaTo0pATOPujX4QK6laEk2TlXPU6Qycc7xlih1KbEBxK?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

Başarılı işlem için bot yanıtı:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXdKqYrp28WS18aq3-_0I_3iDJUc2FmzwsilP1-5do9jmVjjVJ3Igfflo9rMnU_KEWWdAUYSZtjp6B0bVxwBcc7P21RvWVIeCOEAq0pNEh1KYDxJATu71S1Fiil4gicJeFuq5MAcp7bnQdUqRf8kjrWMXuA2_Fl09tjKwEPI?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

Önceden dolu olan 16:00 slotu artık rezervasyon için müsait ve aynı hizmetler için yeni bir rezervasyon artık yalnızca 11:00'den itibaren yapılabilir

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXeM-8-vu5dfYf4DlMnzlWTk08tQm80ne-qTBJleANK0Mjn-TuZWyMbO13Hex4FzdwvCgQspNeErgWwQkTZIejzDWK1BItCGxrLpAi9D0XFx75rqFvUF9UChQ_LoZqUNozZzKwubmGkx7XSgsTm-_1CBORCt5Nidh5X4ohbx?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

Müşterinin rezervasyon bilgileri içinde güncellenmiş rezervasyon saatini de göreceksiniz:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXeCyMMrRSlqAdCpmu0-HWsS6iKxW6xHjdtcnZ2NjxLTaRy7W_w3mhyLZQ2PjZgpvbmHRnRML-5A6hTwHpgpLaTerklX-opM8_UTQAeuT-ev2bd7AvC6N1ynPf50EUVRs6m4hZU4YIKnWQRamRcGbror5uJ7ElZ2v2KPtX1NxQ?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

## Rezervasyonu iptal etme

Bir müşteri mevcut bir rezervasyonu bağımsız olarak iptal edebilir. Bunun için, **cancel\_booking** işlevinin çağrıldığı funnel bloğuna erişmesi gerekir.

işlevinin çağrıldığı bloğa erişmesi gerekir. Başarılı bir iptal, işlem durumunu (status) True değeriyle ve “Booking deleted” mesajını (message) “anahtar: değer” formatında döndürür.

Parametre sırası:

pipeline\_id -> order\_id

Parametreler:

<table><thead><tr><th width="321"></th><th></th></tr></thead><tbody><tr><td>pipeline_id (gerekli)</td><td>şube kimliği, beklenen değer – tamsayı;</td></tr><tr><td>order_id (gerekli)</td><td>rezervasyon kimliği, beklenen değer – tamsayı;</td></tr></tbody></table>

### Kullanım örneği:

Bloktaki işlev çağrısı:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXdWFqf619l5j1eQoe4p6QCPqGGsqcyEefKLs5PJxPwecillJaxUnQSC5eHFcT2olsrM62PHJDVGyxeD6Tl2xg3id27f-p51spmVZFjlDhSwzw3TwMx-CbQT9n3fnjYLPCO4wlqtKdB0cd1W36dp9wXYg4gEVJh6eketyDUQ?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

Başarılı iptal için bot yanıtı:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXe7FcrjKQxzoEgo3wfMuUt0a9zkPVkb02ojx5pZ3KYWU5NfLazmLhgCaNxvigreYXXfzYFEhd5KyF7D3808VLBGl5Cte7YRXI0cWQK3J9ZV05G5y5XUIXGq1Arcac2KrPmHnCCakarcTFXd_9X5_4yYsI6j4rpMySaZr3lA?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

İptalden sonra “09:00” ve “10:00” slotları tekrar rezervasyon için müsait olur:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcRLLDJ0un8QPUj11yC8VDy2TlbbgUHuDd13YSQ3AZU3ey4Cg00SMEke5LFPKWGHR8em7BWHiH8l-bSqGICNAU5CP9ORBGI9CFMKziB0JQLZA0QUvYJ8q-SXXQGQsPCnEWdNrDZ1G7bZupR4zOLgGpJt9TgZBxG_R1MPf9f?key=KyjJFgzVYb53MOCGur8CUg" alt=""><figcaption></figcaption></figure>

## Bot uygulama örneği

### Chatbot ayarları

**Blok №1.** Başlangıç. Özel bir işlem gerekmez

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcXoXRmydVuSiBv9lAWBG-5rDy8cIcNbk2zjsJ7o5kxShJEExU13A9O2v9pFuqG6oTndOvrnRft3jHQaZFf-7RGYiFM09FPzpQdrdS47_ttQcgLvbDExj9xIBEjJ80qVPHSAFzfth5zcO_rCvqk66FaK-Nx?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption><p>Blok 1.</p></figcaption></figure>

**Blok №2**. Bu blokta müşteriye sunulacak verileri alıyoruz.

Hesaplayıcı içerik açıklaması:

* comp\_id - “Hizmetler” bölümünde bulunabilecek hizmet blok kimliği;
* data - sağlanan hizmetler hakkında bilgi
* res - butonları oluşturmak ve koşulları ayarlamak için gerekli verileri içeren sözlük
* numbered\_list - hizmetler listesinin metin biçiminde çoğaltılması gerekiyorsa yararlı olabilir
* buttons - hizmet verilerinden oluşturulan buton dizisi
* checker - sonraki bloğa geçiş koşullarını ayarlamak için kullanılan hizmet adları dizisi

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXdLGPcvhDRumGklk525zCB4VEqziavYPoNoqJiC3XD036d1R_jcSF2yeDhFZvrTOTxFrALYNF9_ezfdbKxgn6fSuIkTyCzHb9Cxaw3cW9ywtyUbvf3Bezb3ukuZC3fFuM5e0Jb8tNCyWRqUv-8aev2MHeo?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption><p>Blok № 2</p></figcaption></figure>

**Blok №3**. Seçilen hizmete ait verileri alın ve görüntüleyin.

title - sözlükler dizisinde **data**, anahtarın **title** eşit olduğu sözlüğü bulun **question**. Bu sözlükten aynı anahtarın değerini alın **title**

description - benzer şekilde, anahtarın değerini alın **description**

price - benzer şekilde, anahtarın değerini alın **price**

serv\_id - benzer şekilde, anahtarın değerini alın **id**

b - mesajın altında buton olarak görüntülenecek bir dize dizisi oluşturun

res - diziden **b**, önceki bloktaki gibi bir sözlük dizisi oluşturun

buttons - butonları görüntülemek için diziyi alın

Şimdi müşterinin seçtiği hizmetin adını, açıklamasını ve fiyatını içeren değişkenlere sahibiz

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXfoMVt3v-buSCBlpe9hKGoFoemSKQW0oeLLZ7LZwZ24vR507mCOTzuewDhUsfCangNsex0sKbdc9k-HeJXQ-ermTNsf_p3O4xtlpygOhFmzyWZ2cjCDxHUUdZq0gCsiSGJmSWIkN04n4XOkpX2t6nHVORhb?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption><p>Blok № 3</p></figcaption></figure>

**Blok №4.** Uygun rezervasyon tarihlerini göster

print\_dates - seçilen hizmet için uygun rezervasyon tarihlerini almak amacıyla işlevi kullanın

print\_dates - bu butonun tarihlerle birlikte görünmesini istiyorsanız, tarih dizisine “Hizmet listesine dön” dizesini ekleyin.

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXeNbqnf6RHcvKlt8ECsxm7uUQpLClSJ2kVgW9HPi35Pmq5XtsAR_yXWCxHr_0CYwJ4whUQfdof71uxnPt8BHxobfYJdxGeDhmf3BXd5NHAPyC12RT6cRIzn8g_Kda70WRAhjYhJ85Vfhi9i40aqUu-Kvg8E?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

Önceki adıma dönen ok için, #{checker} ile olan oktan daha yüksek bir öncelik belirleyin; çünkü #{checker} ayrıca “Hizmet listesine dön” koşulunu da içerir.

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcuUIlqDrtiEGIX7Dk8d1YILa_s9F2bRzrgcgQ_eytukzhEe2IDatqW7VPPgyQeLfzOYqtY-vL2rdCaGYSf3PSRpe4JSXlHD68TJHrOHec6tBRvMOp_sIMs3bqWAQKX9jWPDsWjY-CGQnZEc8QPr2ZGikXQ?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

**Blok №5.**\
5\. blokta müşteri tarafından seçilen tarihi kaydediyoruz. Bunu ayrı bir blokta yapmak gerekir, çünkü sonraki aşamalarda Blok 6'ya geri dönüldüğünde question değişkeni artık müşteri tarafından seçilen tarihi içermeyecektir.

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXfBnoXAoC-hwhm7MJk242wb1qbGz4qwZr-L180d271_eNanul0suKBZUdiYAy95nTZD7rVZv5bYgnB8dZ3u0pW75yMtdz2mQ6bzqTTAxEhVZAihD-VCj-45M9jldb6Ic_JuyDEWsvlodPlxY-2150k62HuW?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

**Blok №6.** Rezervasyon için uygun zaman aralıklarının seçimi ve gösterimi.

data - uygun zaman aralıklarını alıyoruz.

Mantık, uygun tarihlerin gösterildiği Blok №4 ile aynıdır. Ayrıca “Tarih seçimine geri dön” okunun önceliğini artırmayı unutmayın

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXdO4UUM3CyFvJN5lNulwUwHbEWQhng6kaW_YVmOrbkP-2VoQHB3Sg09TkpPv5joYo3EV_9iaFI68B4dfgzL49RveaMzZHQIOs7mKyzFgsA6PKrwrKM0oMKZVGMZjbyz2rxIi0kpaOZFZIStEzUvASiyunli?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

**Blok №7.** Seçilen saati bir değişkene kaydetme ve müşteriyi rezerve etmeyi deneme.&#x20;

choosed\_time - zamanı kaydediyoruz

a - müşteriyi rezerve etme girişimi

booking\_result - işlevin yürütme sonucunu alıyoruz.&#x20;

Sonucu almak gerekir, çünkü birkaç kişi aynı anda aynı saate rezervasyon yapmaya çalışabilir.&#x20;

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXczzYBOEvinNi3ixDewD_V6XrrfAwjChrujdPmo7MK1m1qV-8depW4IV8_-VxA6_u2RKwTBYifAi4q5kxN1OEG_6m9exNS-hAvtB2VH49kP-X5uuAboxpgb--ugGdit-JI6inwRHXMQtbPbqSy-oe3ZvLi_?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

**Blok №7.1.** Müşteri rezerve edilemedi.

Bu blok yalnızca hata mesajı için gereklidir. Mesaj gönderildikten sonra müşteriyi rezervasyon için saat seçimine geri döndürürüz

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXflFxwu5IdfEsIzK1dpt4STbIc6GY2HDz-NvpW6vmG12aBRj5TWgaN2O_YWlLaCSN3B52bMDf8EIMo2kKofNkTzD_TqRWu7F5rEL1NiFrlPiJwLntEG9DgdSKYocFtNQMADKTMJFHADE4fPUgeFJJ5crM3y?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

**Blok №8.** Rezervasyon başarılı.

Müşteriye hizmete kaydedildiğini bildirir ve ödeme için düğmeyi gösteririz.

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXebWZ4RSKanJHHLwJmqRzx_sQAwEqpnz7hMmMOqJziY9J4IpSAPevmApHRz_oR3GEIuceV_IOAi1XdpUMqNtgC5nI-vB75hIq_9NDudNSGzYESotA-rl-WCFjLtcVQA6kiFvcDvij0koA2ttg4NVvwwiQI?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

Buton ayar örneği.&#x20;

Ayarlar için Blok №3'te aldığımız değişkenleri kullanıyoruz:

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcuWNRouJXZN4GcbOP_g5b2cBGtzMjW3t20fJDYvPqy02QHr_Mx7seJfSJSjnieOxRiuZ2eQ8F8iJEcBkllOYNYR4cXYGFfuK69jsVhnLUuq-3a2a5Lts8UXEJyP1m0DvNoEmyDiMcXXpLQX8srFEgvnSo?key=Gdkru5ZyRiCm0ujtl74quw" alt="" width="375"><figcaption></figcaption></figure>

**Blok №8.1.**

Bu blokta başarılı ödemeyi onaylıyoruz. Bloğa geçişi kullanılan ödeme sistemine göre ayarlıyoruz

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcKwiimzQWaWQdY87DhVF0EHgXGIN1am1ybhpQIN2ZjubanvoORX4nF86oxQfeDUH0rSfPPLQp4BVRDYJh0wMWQRp-ko-Dm8PmWeBPyA9KvPiSwDt6GkzUrsFw9ITDDjH7-JsG97mxgwZ_8OtCMFVVkhPza?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

**Blok №8.2.** Müşteri hizmet için ödeme yapmadı. Kaydı iptal etme

Müşteri hizmetin ücretini zamanında ödemezse, gerekirse kaydı iptal edebiliriz.

or\_id - sipariş kimliğini alıyoruz

cancel\_status - işlev tamamlandıktan sonra iptalin başarıyla yapılıp yapılmadığına dair yanıt alıyoruz.&#x20;

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXe0S7A8roVZ-cqy20A7SABHlZEH561HeUudCIFcTEmV19DibNgEWLoEqZ45pWtukMuEdaxuJ1KjsvAiR7hFeGCrNLIMBghZIglifArlGWnBA1O6uKfGoeHRyfYihmIH1EalHVrqOKJKW6AsvOraqTIM2k6j?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

Bu örnekte müşteri, ödeme bağlantısını aldıktan 5 saniye sonra iptal bloğuna geçecektir; gerçek durumda ise gerekli süreyi ayarlayabilirsiniz, yalnızca “Bloktan ayrılırsa iptal et” anahtarını etkinleştirmeyi unutmayın.

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXf4JnYF9gJdYh1IeHnh0KIP8TBthzNABp_TjejLyQXugQBBb_Xvz4yfoedExR9VJy6koxfpNqGkYe38fioTFrzuuioJjVVVp2HLB9w8gRt5LqMcFX5samcaj30aBLV69MVTCNrg2bEbnVaoxv5IuUidtB3Y?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

Tam şema:<br>

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXelLMX7_UQ0Op_QDn8S-GKMp68O-cJDYMFviZLju8TUjMMYKIMwyv9AePru93ccedeKajHSx4kP5e4t1XFfAtabSJBfluvE7q-VsZkx1rO3ICGBm0dvVUtEriaro8UXixY6XratDgILrSOMHfXIpfaHb8Y?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

### Gösterim<br>

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcgQC7kI1xOkzZOYyijAdDELqmlgit1O615fU0RQjYF-g-ztgkNayFf2gaPupplvgiAoE1T_bOdSh-dLO4Oaqu2AVnmh-5uooWhCc3BOqqdIzgQh6gV4r3l86VJHRgXEOZTmKD3HqbXoTuRrpZ8qYJOj4Ol?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcMs9Sg7IOqKfcvVdL5ud1odnPrlHg0Acfa71bnpFAfmQ_7GP4AsKI7JI2GVzAQZV9a2d0jMGmFamGiuD_mMG00SsfAQZvje_aPGybcmsKBU0F2VpTbv5H9qPPA5gszFwQyZaaG3TH9HDutSZE19JzNo5nV?key=Gdkru5ZyRiCm0ujtl74quw" alt=""><figcaption></figcaption></figure>

## Rezervasyon callback'i

Müşteriyle olan diyaloga, rezervasyondan sonra aşağıdaki biçimde bir callback — rezervasyon bildirimi — gelecektir:

<figure><img src="/files/900a9b23a496be5aedd16be7e50d6035b5d7d9d1" alt="" width="464"><figcaption></figcaption></figure>

<mark style="color:orange;">**new\_order\_in\_calendar**</mark> - callback'in değiştirilemeyen kısmı&#x20;

&#x20;<mark style="color:yellow;">**\[489046159]**</mark> - order\_id başvuru kimliği&#x20;

<mark style="color:red;">**Rezervasyon tarihi\_saatine kaydı eklendi**</mark>

<mark style="color:purple;">**30 dakika için**</mark> - hizmet süresi&#x20;

<mark style="color:red;">**Nesneye: Test 30**</mark> - kaydın tam olarak hangi nesneye eklendiği

Callback'in görünümü:

***`new_order_in_calendar: [489046159] 2025-06-01 14:00 ile 2025-06-01 14:30 arasına 30 dakikalık kayıt eklendi. Nesneye: Test 30`***

Callback'e tepkiyi, blok koşuluna bir değer yazarak ayarlayabilirsiniz:

<figure><img src="/files/f13f116e318cffad3947872e0ed5378522d7fabb" alt=""><figcaption></figcaption></figure>

Blokta müşteriye gerekli bir yanıt mesajı yazılabilir.


---

# 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/booking/chatbot.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.
