Genel Bilgiler

Çevrimiçi rezervasyon için bir sohbet robotu, şirketiniz için hizmet planlama sürecini otomatikleştirmenize olanak tanıyan bir dizi huni oluşturucu işlevidir.

Botun iş akışı, işlevlerin sıralı olarak yürütülmesine dayanır: müşteriye görüntülenecek verilerin alınması, ardından bu verilerin yeni işlevleri tetiklemek ve yeni sonuçlar elde etmek için iletilmesi.

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

Ara verileri (örneğin, çalışan pozisyonları ve hizmet kategorileri) alma ve bunları çalışanları ve hizmetleri filtrelemek için iletme yeteneği sayesinde, huninizi esnek bir şekilde yapılandırabilir ve müşteriye ilerleme adımları üzerinde kontrol verebilirsiniz.

Bu makalede açıklanan tüm yöntemler, bir sözlük dizisi döndürür.

Bunlarla rahatça çalışmak için Diziler ve Sözlükler bölümlerini incelemenizi öneririz.

Ayrıca, kullanıcı eylemleri (hizmet seçimi, tarih, rezervasyon) oluşturma işlevini kullanmak için tools_make_button_str_checker yöntemini değerlendirmenizi öneririz.

Aşağıda, diyagramdaki her bloğun belirli bir işlev çağrısını temsil ettiği ve okların bloktan bloğa iletilen veri akışını gösterdiği botun iş akışının bir diyagramı bulunmaktadır. Bu akışlarda iletilen bilgiler, istenen verileri filtrelemenize ve ayrıca bir rezervasyon zamanı oluşturmanıza, iptal etmenize veya değiştirmenize olanak tanır.

Kullanılan işlevlerle çevrimiçi rezervasyon sohbet robotunun ayrıntılı bir yapılandırma şemasını görmek için bu makalenin Bot Uygulama Örneği bölümüne bakın.

Şube Bilgilerini Alma

Çevrimiçi rezervasyon hunisi oluşturmak ve proje şubeleri hakkında bilgi almak için get_companies_for_booking işlevini kullanın.

İşlev, ayarlarında "Çevrimiçi Rezervasyon" etkin olan her şube (huni) için veri içeren bir liste döndürür.

Veriler, anahtar-değer çiftleri olarak sağlanır ve şube tanımlayıcısını (id), adını (name) ve adresini (address) içerir.

İşlev herhangi bir parametre almaz.

Kullanım örneği:

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

Döndürülen veri örneği:

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 bir listesini almanızı sağlar.

Döndürülen listedeki her öğe, pozisyon veya hizmet kategorisinin bir tanımlayıcısını (id), adını (name) ve açıklamasını (description) içerir. Veriler "anahtar-değer" çiftleri olarak temsil edilir:

Parametreler:

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 sağlamanız gerekiyorsa, get_employees_for_booking işlevini kullanın.

Çağrı, çalışan tanımlayıcısını (id), adını (name), bilgisini (information) ve iş unvanını (job_title) içeren bir veri listesi döndürür.

Ayrıca çalışanları hizmet listesine, iş unvanına veya hizmet kategorisine göre 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:

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'yi boş bırakın.

  • Çağrı örneği: get_employees_for_booking(14275391, [844, 845])

Çalışanları iş unvanına göre filtrelemek için, job_title_id parametresine kimliği iletin ve service_ids ile service_category_id'yi boş bırakın.

  • Çağrı örneği: get_employees_for_booking(14275391, “”, 1021)

Belirli bir kategorideki hizmetleri sağlayan çalışanları almak için, service_ids ve job_title_id'yi boş dize 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:

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

Döndürülen veri örneği:

Hizmetler Hakkında Bilgi Alma

Şube tarafından sağlanan 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 girişi bir tanımlayıcı (id), bir ad (title), bir açıklama (description), bir fiyat (price) ve hizmet süresini dakika cinsinden (duration) içerir.

Ortaya çıkan listeyi hizmet kategorisine, çalışana veya aynı anda hem hizmet kategorisine hem de çalışana göre filtreleyebilirsiniz. Bunu yapmak için, işlevi çağırırken ek parametreler olan service_category_id ve/veya employee_id'yi iletin.

Parametre sırası:

company_id -> service_category_id -> employee_id

Parametreler:

“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 tanımlayıcıları service_category_id ve employee_id parametrelerine iletin. Yalnızca bir parametreye göre filtrelemek için diğeri için boş bir dize sağlayın.

Ç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:

Bir blok içinde işlevi çağırma:

Döndürülen veri örneği:

Mevcut Rezervasyon Tarihlerini Alma

Müşteri rezervasyon için hizmetleri seçtikten sonra, mevcut rezervasyon tarihlerinin bir listesini almaları gerekir.

Bu listeyi oluşturmak için get_dates_for_booking işlevini kullanın.

İşlev, müsait zaman aralıklarını kontrol edecek ve uygun tarihlerin bir listesini “gün.ay.yıl” biçiminde döndürecektir.

Parametrelerin sırası aşağıdaki gibidir:

company_id -> service_ids -> employee_id -> days_limit

Parametreler:

Kullanım örneği:

Bir blok içinde işlevi çağırma:

Döndürülen veri örneği:

Mevcut Rezervasyon Aralıklarını Alma

Mevcut rezervasyon aralıklarının bir listesini almak için get_slots_for_booking işlevini kullanın.

İşlev, seçilen tarihte müsait zamanı kontrol edecek ve boş aralıkların bir listesini “saat:dakika” biçiminde döndürecektir, örneğin [“09:00”, “11:00”, “14:30”, “16:00”].

Parametrelerin sırası aşağıdaki gibidir:

company_id -> service_ids -> employee_id -> slot_interval

Parametreler:

Kullanım örneği:

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

Döndürülen veri örneği:

Rezervasyon Oluşturma

Çevrimiçi bir rezervasyon oluşturmak için create_booking işlevini kullanın.

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

Yeni rezervasyon verileri şunları içerir:

  • tanımlayıcı (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 iş unvanı (job_title),
  • şube adı (company_name) ve şube adresi (company_address)

“anahtar: değer” biçiminde.

Parametre sırası:

company_id -> service_ids -> booking_date -> booking_time -> employee_id

Parametreler:

Kullanım örneği:

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

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

Rezervasyonlar oluştururken ve ardından tekrar müsait aralıkları talep ederken, listelerin kısaldığını fark edeceksiniz. Örneğin, 05.02.2024 tarihinde, 18:00 aralığı artık mevcut değildir (yalnızca Victoria'nın programında boştu) ve Paul Thompson için, erkek saç kesimi ve sakal şekillendirme rezervasyonları artık 9:00'dan 14:00'a kadar yapılabilir, çünkü hizmetlerin toplam süresi 1 saat 45 dakikadır ve Pavel'in zaten 16:00'da başka bir rezervasyonu vardır.

Bir Müşterinin Gelecek Rezervasyonları Hakkında Bilgi Alma

get_bookings_info işlevini çağırarak bir müşterinin mevcut rezervasyonlarını görüntüleyebilirsiniz.

Yanıt, her rezervasyon için ayrıntılı bilgilerle birlikte aktif rezervasyonların bir listesini döndürecektir.

Rezervasyon bilgileri “anahtar: değer” biçiminde sağlanır ve şunları içerir:

  • rezervasyon tanımlayıcısı (booking_id),
  • tarih (booking_date),
  • saat (booking_time),
  • seçilen hizmetlerin tanımlayıcıları (service_ids) ve adları (service_names),
  • rezervasyon süresi (booking_duration),
  • hizmetlerin toplam maliyeti (total_cost),
  • atanan çalışanın tanımlayıcısı (employee_id) ve adı (employee_name) ile unvanı (job_title),
  • şube tanımlayıcısı (company_id)
  • şube adı (company_name) ve adresi (company_address).

Parametreler:

Kullanım örneği:

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

Döndürülen veri örneği:

Rezervasyon Tarihini ve Saatini Değiştirme

Bir müşteri, rezervasyon tarihini ve saatini bağımsız olarak değiştirebilir. Bunu yapmak için, modify_booking_time işlevinin çağrıldığı huni bloğuna erişmeleri gerekir.

İşlem başarılı olursa, işlev işlem durumunu (status) True değeriyle ve bir mesajı (message) “Rezervasyon zamanı değiştirildi” “anahtar: değer” biçiminde döndürür.

Parametre sırası:

order_id -> new_date -> new_time

Parametreler:

Kullanım örneği:

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

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

Daha önce dolu olan 16:00 aralığı artık rezervasyon için uygun ve aynı hizmetler için yeni bir rezervasyon artık yalnızca 11:00'dan itibaren yapılabilir

Müşterinin rezervasyon bilgilerinde güncellenmiş rezervasyon saatini de göreceksiniz:

Rezervasyonu İptal Etme

Bir müşteri, mevcut bir rezervasyonu bağımsız olarak iptal edebilir. Bunu yapmak için, cancel_booking işlevinin çağrıldığı bloğa erişmeleri gerekir.

Başarılı bir iptal, işlem durumunu (status) True değeriyle ve bir mesajı (message) “Rezervasyon silindi” “anahtar: değer” biçiminde döndürür.

Parametre sırası:

pipeline_id -> order_id

Parametreler:

Kullanım örneği:

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

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

İptalden sonra, “09:00” ve “10:00” aralıkları tekrar rezervasyon için uygun hale gelir:

Bot Uygulama Örneği

Sohbet robotu ayarları

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

Blok №2. Bu blokta, müşteriye sağlanacak verileri alırız.

Hesap makinesi içerik açıklaması:

  • comp_id - “Hizmetler” bölümünde bulunabilen hizmet bloğu tanımlayıcısı;
  • data - sağlanan hizmetler hakkında bilgi
  • res - düğmeler oluşturmak ve koşulları ayarlamak için gereken verilerle sözlük
  • numbered_list - hizmet listesinin metin biçiminde çoğaltılması gerekiyorsa yararlı olabilir
  • buttons - hizmet verilerinden oluşturulan düğmeler dizisi
  • checker - bir sonraki bloğa geçiş için koşulları ayarlamak üzere kullanılan hizmet adları dizisi

Blok №3. Seçilen hizmetle ilgili verileri alın ve görüntüleyin.

title - data sözlükleri dizisinde, title anahtarının question değerine eşit olduğu sözlüğü bulun. Bu sözlükten aynı title anahtarı için değeri alın

description - benzer şekilde, description anahtarı için değeri alın

price - benzer şekilde, price anahtarı için değeri alın

serv_id - benzer şekilde, id anahtarı için değeri alın

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

res - b dizisinden, önceki blokta olduğu gibi bir sözlük dizisi oluşturun

buttons - düğmeleri görüntülemek için diziyi elde edin

Artık müşteri tarafından seçilen hizmetin adını, açıklamasını ve fiyatını içeren değişkenlerimiz var

Blok №4. Mevcut rezervasyon tarihlerini görüntüleyin

print_dates - seçilen hizmet için mevcut rezervasyon tarihlerini almak üzere işlevi kullanın

print_dates - bu düğmenin tarihlerle birlikte görünmesini istiyorsanız, tarih dizisine “Hizmet listesine dön” dizesini ekleyin.

Önceki adıma dönen ok için, #{checker} da “Hizmet listesine dön” koşulunu içerdiğinden, #{checker} ile olandan daha yüksek bir öncelik ayarlayın.

Blok №5.
5. blokta müşterinin seçtiği tarihi kaydediyoruz. Bunun ayrı bir blokta yapılması gerekiyor çünkü sonraki aşamalarda Blok 6'ya dönüldüğünde, question değişkeni artık müşterinin seçtiği tarihi içermeyecektir.

Blok №6. Kayıt için mevcut aralıkların seçimi ve görüntülenmesi.

data - mevcut aralıkları alırız.

Mantık, Blok №4'teki mevcut tarihlerin görüntülenmesiyle aynıdır. Ayrıca “Tarih seçimine dön” okuna yüksek öncelik ayarlamayı unutmamak önemlidir.

Blok №7. Seçilen zamanı bir değişkene kaydetme ve müşteriyi kaydetme girişimi.

choosed_time - zamanı kaydederiz

a - müşteriyi kaydetme girişimi

booking_result - işlevin yürütülmesinin sonucunu alırız.

Sonucu almak gereklidir çünkü birden fazla kişi aynı anda aynı saate kaydolmaya çalışabilir.

Blok №7.1. Müşteri kaydedilemedi.

Bu blok yalnızca hata mesajı içindir. Mesajı gönderdikten sonra müşteriyi kayıt için zaman seçimine döndürürüz.

Blok №8. Kayıt başarılı oldu.

Müşteriye hizmete kaydolduğunu bildirir ve ödeme için bir düğme görüntüleriz.

Düğme yapılandırma örneği.

Yapılandırma için 3. blokta aldığımız değişkenleri kullanırız:

Blok №8.1.

Bu blokta başarılı ödemeyi onaylarız. Blok geçişini kullanılan ödeme sistemine göre yapılandırırız.

Blok №8.2. Müşteri hizmet için ödeme yapmadı. Kaydın iptali

Müşteri hizmet için zamanında ödeme yapmazsa, gerekirse kaydı iptal edebiliriz.

or_id - sipariş kimliğini alırız

cancel_status - işlevi yürüttükten sonra iptalin başarıyla gerçekleştirilip gerçekleştirilmediğine dair yanıt alırız.

Bu örnekte müşteri, ödeme bağlantısını aldıktan 5 saniye sonra iptal bloğuna girecektir; gerçek bir durumda gerekli süreyi ayarlayabilirsiniz, ancak “Bloktan ayrıldıysa iptal et” anahtarını açmayı unutmayın.

Tam şema:

Gösterim

Kayıt Hakkında Geri Bildirim

Kayıttan sonra müşteriyle yapılan diyaloğa aşağıdaki gibi bir geri bildirim — kayıt bildirimi — gelecektir:

new_order_in_calendar - geri bildirimin değiştirilemeyen kısmı

[489046159] - order_id başvuru tanımlayıcısı

Kayıt eklendi tarih_ve_kayıt_saati

30 dakika boyunca - hizmet süresi

Nesneye: Test 30 - kaydın hangi nesneye eklendiği

Geri bildirimin kendisi:

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

Geri bildirime tepki, blok koşulunda değer belirtilerek yapılandırılabilir:

Blokta müşteriye gerekli geri dönüş mesajı yazılabilir.