Online 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.
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 ve Sözlükler.
Ayrıca, kullanıcı eylemleri oluşturma işlevini (hizmet seçimi, tarih, rezervasyon) kullanmak için, tools_make_button_str_checker yöntemini.
incelemenizi öneririz.

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 bölümüne bakın.
Ş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ı:

Döndürülen veriye örnek:

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:
company_id (gerekli)
Şube kimliği, beklenen format — tamsayı.
Kullanım örneği:
Kod bloğunda işlev çağrısı örneği:

Ç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:
company_id (gerekli)
Şube kimliği, beklenen format — tamsayı;
service_ids (isteğe bağlı)
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]
job_title_id (isteğe bağlı)
Unvan kimliği, beklenen format — tamsayı;
service_category_id (isteğe bağlı)
Hizmet kategorisi kimliği, beklenen format — tamsayı;
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ı:

Döndürülen veriye örnek:

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:
company_id (gerekli)
Şube kimliği, beklenen format – tamsayı;
service_category_id (isteğe bağlı)
Hizmet kategorisi kimliği, beklenen format – tamsayı;
employee_id (isteğe bağlı)
Çalışan kimliği, beklenen format – tamsayı;
“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;
Kullanım örneği:
İşlevi bir blok içinde çağırma:

Döndürülen veriye örnek:

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:
company_id (gerekli)
şube kimliği, beklenen format – tamsayı;
service_ids (isteğe bağlı)
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]);
employee_id (isteğe bağlı)
ç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;
days_limit (isteğe bağlı)
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);
Kullanım örneği:
İşlevi bir blok içinde çağırma:

Döndürülen veriye örnek:

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:
company_id (gerekli)
şube kimliği, beklenen format – tamsayı;
service_ids (isteğe bağlı) -
rezervasyon için hizmet kimlikleri listesi, beklenen format – tamsayı veya bir tamsayı listesi (örn. 842 veya [842, 843]);
date (isteğe bağlı) -
slot kontrolü için tarih, beklenen format – “gün.ay.yıl” biçiminde bir dize, örneğin “01.01.2024”;
employee_id (isteğe bağlı)
ç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;
slot_interval (isteğe bağlı)
uygun slotlar arasındaki dakika cinsinden aralık, beklenen format – tamsayı, varsayılan değer – 30 (dakika);
Kullanım örneği:
Bloktaki işlev çağrısı:
Döndürülen veriye örnek:
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),
tarih (booking_date),
saat (booking_time),
hizmet adları (services),
rezervasyon süresi (service_duration),
toplam maliyet (total_cost),
atanan çalışanın adı (employee_name) ve unvanı (job_title),
şube adı (company_name) ve şube adresi (company_address)
“anahtar: değer” formatında.
Parametre sırası:
company_id -> service_ids -> booking_date -> booking_time -> employee_id
Parametreler:
company_id (gerekli)
şube kimliği, beklenen format – tamsayı;
service_ids (gerekli)
rezervasyon için hizmet kimlikleri listesi, beklenen format – tamsayı veya bir tamsayı listesi (örn. 5 veya [5, 10, 15]);
booking_date (gerekli)
rezervasyon tarihi, beklenen format – “gün.ay.yıl” biçiminde bir dize, örneğin “15.01.2024”;
booking_time (gerekli)
rezervasyon saati, beklenen format – “saat:dakika” biçiminde bir dize, örneğin “12:30”;
employee_id (isteğe bağlı)
ç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;
Kullanım örneği:
Bloktaki işlev çağrısı:
Başarılı rezervasyon yanıtı örneği:
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.
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),
tarih (booking_date),
saat (booking_time),
seçilen hizmetlerin kimlikleri (service_ids) ve adları (service_names),
rezervasyon süresi (booking_duration),
hizmetlerin toplam maliyeti (total_cost),
atanan çalışanın kimliği (employee_id) ve adı (employee_name), ayrıca unvanı (job_title),
şube kimliği (company_id)
şube adı (company_name) ve adresi (company_address).
Parametreler:
client_id (isteğe bağlı)
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.
Kullanım örneği:
Bloktaki işlev çağrısı:
Döndürülen veriye örnek:
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ı:
order_id -> new_date -> new_time
Parametreler:
order_id (gerekli)
rezervasyon kimliği, beklenen değer – tamsayı;
new_date (gerekli)
yeni rezervasyon tarihi, beklenen format – “gün.ay.yıl” biçiminde bir dize, örneğin “16.01.2024”;
new_time (gerekli)
yeni rezervasyon saati, beklenen format – “saat:dakika” biçiminde bir dize, örneğin “14:30”;
Kullanım örneği:
Bloktaki işlev çağrısı:
Başarılı işlem için bot yanıtı:
Ö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
Müşterinin rezervasyon bilgileri içinde güncellenmiş rezervasyon saatini de göreceksiniz:
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:
pipeline_id (gerekli)
şube kimliği, beklenen değer – tamsayı;
order_id (gerekli)
rezervasyon kimliği, beklenen değer – tamsayı;
Kullanım örneği:
Bloktaki işlev çağrısı:
Başarılı iptal için bot yanıtı:
İptalden sonra “09:00” ve “10:00” slotları tekrar rezervasyon için müsait olur:
Bot uygulama örneği
Chatbot ayarları
Blok №1. Başlangıç. Özel bir işlem gerekmez
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
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
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.
Ö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.
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.
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
Blok №7. Seçilen saati bir değişkene kaydetme ve müşteriyi rezerve etmeyi deneme.
choosed_time - zamanı kaydediyoruz
a - müşteriyi rezerve etme girişimi
booking_result - işlevin yürütme sonucunu alıyoruz.
Sonucu almak gerekir, çünkü birkaç kişi aynı anda aynı saate rezervasyon yapmaya çalışabilir.
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
Blok №8. Rezervasyon başarılı.
Müşteriye hizmete kaydedildiğini bildirir ve ödeme için düğmeyi gösteririz.
Buton ayar örneği.
Ayarlar için Blok №3'te aldığımız değişkenleri kullanıyoruz:
Blok №8.1.
Bu blokta başarılı ödemeyi onaylıyoruz. Bloğa geçişi kullanılan ödeme sistemine göre ayarlıyoruz
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.
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.
Tam şema:
Gösterim
Rezervasyon callback'i
Müşteriyle olan diyaloga, rezervasyondan sonra aşağıdaki biçimde bir callback — rezervasyon bildirimi — gelecektir:

new_order_in_calendar - callback'in değiştirilemeyen kısmı
[489046159] - order_id başvuru kimliği
Rezervasyon tarihi_saatine kaydı eklendi
30 dakika için - hizmet süresi
Nesneye: Test 30 - 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:

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