Жалпы ақпарат

Онлайн брондауға арналған чат-бот — бұл сіздің компанияңыз үшін қызметтерді жоспарлау процесін автоматтандыруға мүмкіндік беретін funnel builder функцияларының жиынтығы.

Боттың жұмыс принципі функциялардың дәйекті орындалуына негізделген: клиентке көрсету үшін деректерді алу, содан кейін бұл деректерді жаңа функцияларды іске қосу және жаңа нәтижелер алу үшін беру.

Клиент funnel бойынша жылжыған кезде, әрбір келесі блокқа тек клиенттің таңдауына сәйкес келетін деректерді беру керек — келесі функция шақыруларын конфигурациялау үшін осы деректерді пайдаланыңыз.

Аралық деректерді (мысалы, қызметкерлердің лауазымдары мен қызмет санаттарын) алу және оларды қызметкерлер мен қызметтерді сүзу үшін беру мүмкіндігінің арқасында сіз өзіңіздің funnel-ді икемді түрде конфигурациялай аласыз және клиентке оның барысын басқаруға мүмкіндік бере аласыз.

Осы мақалада сипатталған барлық әдістер сөздіктер массивін қайтарады.

Олармен ыңғайлы жұмыс істеу үшін Массивтер және Сөздіктер бөлімдерін қарап шығуды ұсынамыз.

Сондай-ақ, пайдаланушы әрекеттерін (қызметті таңдау, күн, брондау) генерациялау функциясын пайдалану үшін tools_make_button_str_checker әдісін қарастыруды ұсынамыз.

Төменде боттың жұмыс схемасы берілген, мұнда диаграмманың әрбір блогы белгілі бір функция шақыруын білдіреді, ал көрсеткілер блоктан блокқа берілетін деректер ағынын көрсетеді. Осы ағындарда берілетін ақпарат сұралған деректерді сүзуге, сондай-ақ брондау уақытын жасауға, болдырмауға немесе өзгертуге мүмкіндік береді.

Онлайн брондау чат-ботының қолданыстағы функциялармен егжей-тегжейлі конфигурация схемасын көру үшін осы мақаланың Ботты іске асыру мысалы бөлімін қараңыз.

Филиал туралы ақпаратты алу

Онлайн брондау funnel-ін жасау және жоба филиалдары туралы ақпаратты алу үшін get_companies_for_booking функциясын пайдаланыңыз.

Функция параметрлерді қажет етпейді және әрбір филиал (funnel) үшін деректерді қамтитын тізімді қайтарады, оның параметрлерінде «Онлайн брондау» қосылған.

Деректер «кілт-мән» жұптары ретінде беріледі және филиал идентификаторын (id), атауын (name) және мекенжайын (address) қамтиды.

Қолдану мысалы:

Блок ішіндегі функция шақыруы:

Қайтарылған деректердің мысалы:

Лауазымдар немесе қызмет санаттары туралы ақпаратты алу

get_categories_for_booking(company_id) функциясы филиал үшін мамандардың барлық түрлерінің немесе қызмет санаттарының тізімін алуға мүмкіндік береді.

Қайтарылған тізімдегі әрбір элемент лауазымның немесе қызмет санатының идентификаторын (id), атауын (name) және сипаттамасын (description) қамтиды. Деректер «кілт-мән» жұптары ретінде беріледі:

Параметрлер:

Қолдану мысалы:

Код блогындағы функция шақыру мысалы:

Қызметкерлер туралы ақпаратты алу

Егер сізге филиал қызметкерлері туралы ақпарат беру қажет болса, get_employees_for_booking функциясын пайдаланыңыз.

Шақыру қызметкер идентификаторын (id), атын (name), ақпаратын (information) және лауазымын (job_title) қамтитын деректер тізімін қайтарады.

Сондай-ақ, қызметкерлерді қызметтер тізімі, лауазымы немесе қызмет санаты бойынша сүзуге болады. Ол үшін функция шақыруына қосымша параметрді беріңіз: service_ids, job_title_id немесе service_category_id.

Параметрлер тәртібі:

company_id -> service_ids -> job_title_id -> service_category_id

Параметрлер:

Ескерту:

Егер сіз филиалдың барлық қызметкерлерін алғыңыз келсе, service_ids, job_title_id және service_category_id мәндерін бос қалдырыңыз.

  • Шақыру мысалы: get_employees_for_booking(14275391)

Қызметкерлерді қызмет идентификаторларының тізімі бойынша сүзу үшін, тізімді екінші параметр ретінде беріңіз және job_title_id мен service_category_id мәндерін бос қалдырыңыз.

  • Шақыру мысалы: get_employees_for_booking(14275391, [844, 845])

Қызметкерлерді лауазымы бойынша сүзу үшін, job_title_id параметріне идентификаторды беріңіз және service_ids пен service_category_id мәндерін бос қалдырыңыз.

  • Шақыру мысалы: get_employees_for_booking(14275391, “”, 1021)

Белгілі бір санаттағы қызметтерді ұсынатын қызметкерлерді алу үшін, service_ids және job_title_id мәндерін бос жолдар ретінде қалдырыңыз және таңдалған санат идентификаторын service_category_id параметріне беріңіз.

  • Шақыру мысалы: get_employees_for_booking(14275391, “”, “”, 1019)

Қолдану мысалы:

Код блогындағы функция шақыруы:

Қайтарылған деректердің мысалы:

Қызметтер туралы ақпаратты алу

Филиал ұсынатын қызметтер туралы ақпаратты алу үшін get_services_for_booking функциясын пайдаланыңыз.

Шақыру нәтижесінде бот қызмет деректерін қамтитын тізімді қайтарады. Әрбір қызмет жазбасы идентификаторды (id), атауды (title), сипаттаманы (description), бағаны (price) және қызмет ұзақтығын минуттармен (duration) қамтиды.

Алынған тізімді қызмет санаты бойынша, қызметкер бойынша немесе қызмет санаты мен қызметкер бойынша бір уақытта сүзуге болады. Ол үшін функцияны шақырған кезде service_category_id және/немесе employee_id қосымша параметрлерін беріңіз.

Параметрлер тәртібі:

company_id -> service_category_id -> employee_id

Параметрлер:

«Параметрлер» бөліміне ескерту:

Егер сіз филиалдың барлық қызметтерін алғыңыз келсе, service_category_id және employee_id мәндерін бос қалдырыңыз.

  • Шақыру мысалы: get_services_for_booking(14275391)

Егер сіз қызметтерді санат және/немесе қызметкер бойынша сүзгіңіз келсе, service_category_id және employee_id параметрлеріне сәйкес идентификаторларды беріңіз. Тек бір параметр бойынша сүзу үшін, екіншісіне бос жолды беріңіз.

Шақыру мысалдары:

  • get_services_for_booking(14275391, 1018) - қызмет санаты бойынша сүзгі;
  • get_services_for_booking(14275391, “”, 512978) - қызметкер бойынша сүзгі;
  • get_services_for_booking(14275391, 1018, 463665) - екі параметр бойынша сүзгі;

Қолдану мысалы:

Блок ішіндегі функцияны шақыру:

Қайтарылған деректердің мысалы:

Қолжетімді брондау күндерін алу

Клиент брондау үшін қызметтерді таңдағаннан кейін, оған қолжетімді брондау күндерінің тізімін алу қажет.

Бұл тізімді генерациялау үшін get_dates_for_booking функциясын пайдаланыңыз.

Функция қолжетімді уақыт терезелерін тексереді және «күн.ай.жыл» форматындағы қолайлы күндер тізімін қайтарады.

Параметрлер тәртібі келесідей:

company_id -> service_ids -> employee_id -> days_limit

Параметрлер:

Қолдану мысалы:

Блок ішіндегі функцияны шақыру:

Қайтарылған деректердің мысалы:

Қолжетімді брондау слоттарын алу

Қолжетімді брондау слоттарының тізімін алу үшін get_slots_for_booking функциясын пайдаланыңыз.

Функция таңдалған күндегі қолжетімді уақытты тексереді және «сағат:минут» форматындағы бос слоттар тізімін қайтарады, мысалы [“09:00”, “11:00”, “14:30”, “16:00”].

Параметрлер тәртібі келесідей:

company_id -> service_ids -> employee_id -> slot_interval

Параметрлер:

Қолдану мысалы:

Блоктағы функция шақыруы:

Қайтарылған деректердің мысалы:

Брондауды жасау

Онлайн брондауды жасау үшін create_booking функциясын пайдаланыңыз.

Егер брондау сәтті болса, функция «кілт: мән» форматында операция күйі (status) True мәнімен және брондау мәліметтері (booking) туралы ақпаратты қайтарады.

Жаңа брондау деректеріне мыналар кіреді:

  • идентификатор (id),
  • күн (booking_date),
  • уақыт (booking_time),
  • қызмет атаулары (services),
  • брондау ұзақтығы (service_duration),
  • жалпы құны (total_cost),
  • тағайындалған қызметкердің аты (employee_name) және оның лауазымы (job_title),
  • филиал атауы (company_name) және филиал мекенжайы (company_address)

«кілт: мән» форматында.

Параметрлер тәртібі:

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

Параметрлер:

Қолдану мысалы:

Блоктағы функция шақыруы:

Сәтті брондау жауабының мысалы:

Брондауларды жасау кезінде және кейін қолжетімді слоттарды қайта сұрағанда, тізімдердің қысқарғанын байқайсыз. Мысалы, 05.02.2024 күні 18:00 слоты енді қолжетімсіз (ол тек Викторияның кестесінде бос болды), ал Пол Томпсон үшін ерлер шашын алу және сақалды сәндеуге брондауларды 9:00-ден 14:00-ге дейін жасауға болады, өйткені қызметтердің жалпы ұзақтығы 1 сағат 45 минутты құрайды, ал Павелде 16:00-де басқа брондау бар.

Клиенттің алдағы брондаулары туралы ақпаратты алу

get_bookings_info функциясын шақыру арқылы клиенттің ағымдағы брондауларын көре аласыз.

Жауап белсенді брондаулар тізімін, әрбір брондау туралы егжей-тегжейлі ақпаратпен бірге қайтарады.

Брондау ақпараты «кілт: мән» форматында беріледі және мыналарды қамтиды:

  • брондау идентификаторы (booking_id),
  • күн (booking_date),
  • уақыт (booking_time),
  • таңдалған қызметтердің идентификаторлары (service_ids) және атаулары (service_names),
  • брондау ұзақтығы (booking_duration),
  • қызметтердің жалпы құны (total_cost),
  • тағайындалған қызметкердің идентификаторы (employee_id) және аты (employee_name), және оның лауазымы (job_title),
  • филиал идентификаторы (company_id)
  • филиал атауы (company_name) және мекенжайы (company_address).

Параметрлер:

Қолдану мысалы:

Блоктағы функция шақыруы:

Қайтарылған деректердің мысалы:

Брондау күні мен уақытын өзгерту

Клиент брондау күні мен уақытын өз бетінше өзгерте алады. Ол үшін ол modify_booking_time функциясы шақырылатын funnel блогына кіруі керек.

Егер операция сәтті болса, функция «кілт: мән» форматында операция күйін (status) True мәнімен және «Booking time modified» хабарламасын (message) қайтарады.

Параметрлер тәртібі:

order_id -> new_date -> new_time

Параметрлер:

Қолдану мысалы:

Блоктағы функция шақыруы:

Сәтті операция үшін бот жауабы:

Бұрын алынған 16:00 слоты енді брондау үшін қолжетімді, ал сол қызметтерге жаңа брондауды тек 11:00-ден бастап жасауға болады

Клиенттің брондау ақпаратында сіз жаңартылған брондау уақытын да көресіз:

Брондауды болдырмау

Клиент бар брондауды өз бетінше болдырмай алады. Ол үшін ол cancel_booking функциясы шақырылатын блокқа кіруі керек.

Сәтті болдырмау «кілт: мән» форматында операция күйін (status) True мәнімен және «Booking deleted» хабарламасын (message) қайтарады.

Параметрлер тәртібі:

pipeline_id -> order_id

Параметрлер:

Қолдану мысалы:

Блоктағы функция шақыруы:

Сәтті болдырмау үшін бот жауабы:

Болдырмаудан кейін «09:00» және «10:00» слоттары қайтадан брондау үшін қолжетімді:

Ботты іске асыру мысалы

Чат-бот параметрлері

№1 блок. Бастау. Арнайы әрекеттер қажет емес

№2 блок. Бұл блокта біз клиентке ұсынылатын деректерді аламыз.

Калькулятор мазмұнының сипаттамасы:

  • comp_id - «Қызметтер» бөлімінде табуға болатын қызмет блогының идентификаторы;
  • data - ұсынылатын қызметтер туралы ақпарат
  • res - түймелерді генерациялау және шарттарды орнату үшін қажетті деректері бар сөздік
  • numbered_list - егер қызметтер тізімін мәтіндік түрде қайталау қажет болса пайдалы болуы мүмкін
  • buttons - қызмет деректерінен генерацияланған түймелер массиві
  • checker - қызмет атауларының массиві, келесі блокқа өту шарттарын орнату үшін пайдаланылады

№3 блок. Таңдалған қызмет туралы деректерді алу және көрсету.

title - data сөздіктер массивінен title кілті question мәніне тең сөздікті табыңыз. Сол сөздіктен сол title кілтінің мәнін алыңыз

description - сол сияқты, description кілтінің мәнін алыңыз

price - сол сияқты, price кілтінің мәнін алыңыз

serv_id - сол сияқты, id кілтінің мәнін алыңыз

b - хабарламаның астында түймелер ретінде көрсетілетін жолдар массивін жасаңыз

res - b массивінен алдыңғы блоктағыдай сөздіктер массивін жасаңыз

buttons - түймелерді көрсету үшін массивті алыңыз

Енді бізде клиент таңдаған қызметтің атауын, сипаттамасын және бағасын қамтитын айнымалылар бар

№4 блок. Қолжетімді брондау күндерін көрсету

print_dates - таңдалған қызмет үшін қолжетімді брондау күндерін алу үшін функцияны пайдаланыңыз

print_dates - егер сіз бұл түйменің күндермен бірге пайда болуын қаласаңыз, күндер массивіне «Қызметтер тізіміне оралу» жолын қосыңыз.

Алдыңғы қадамға оралатын көрсеткі үшін #{checker} бар көрсеткіге қарағанда жоғарырақ басымдықты орнатыңыз, себебі #{checker} құрамында «Қызметтер тізіміне оралу» шарты да бар.

№5 блок.
№5 блокта біз клиент таңдаған күнді сақтаймыз. Мұны бөлек блокта жасау керек, өйткені келесі кезеңдерде №6 блокқа оралғанда, question айнымалысы енді клиент таңдаған күнді қамтымайды.

№6 блок. Жазуға арналған қолжетімді ұяшықтарды таңдау және көрсету.

data - қолжетімді ұяшықтарды аламыз.

Логика №4 блоктағы қолжетімді күндерді шығарумен бірдей. Сондай-ақ, «Күнді таңдауға оралу» көрсеткісінің жоғарылатылған басымдығын орнатуды ұмытпаңыз

№7 блок. Таңдалған уақытты айнымалыға сақтау және клиентті жазуға әрекеттену.

choosed_time - уақытты сақтаймыз

a - клиентті жазуға әрекеттену

booking_result - функцияның орындалу нәтижесін аламыз.

Нәтижені алу қажет, өйткені бірнеше адам бір уақытта бір уақытқа жазылуға әрекеттенуі мүмкін.

№7.1 блок. Клиентті жазу мүмкін болмады.

Бұл блок тек қате туралы хабарлау үшін қажет. Хабарламаны жібергеннен кейін клиентті жазу уақытын таңдауға қайтарамыз

№8 блок. Жазу сәтті өтті.

Клиентке оның қызметке жазылғанын хабарлаймыз және төлем үшін түймені көрсетеміз.

Түймелерді орнату мысалы.

Орнату үшін біз №3 блокта алған айнымалыларды пайдаланамыз:

№8.1 блок.

Бұл блокта сәтті төлемді растаймыз. Блокқа өтуді қолданылатын төлем жүйесіне сәйкес конфигурациялаймыз

№8.2 блок. Клиент қызметті төлемеді. Жазуды болдырмау

Егер клиент қызметті уақытында төлемесе, біз қажет болса, жазуды болдырмай аламыз.

or_id - тапсырыс идентификаторын аламыз

cancel_status - функцияны орындағаннан кейін болдырмаудың сәтті орындалғаны туралы жауап аламыз.

Бұл мысалда клиент төлем сілтемесін алғаннан кейін 5 секундтан кейін болдырмау блогына түседі, нақты жағдайда сіз қажетті уақыт мөлшерін орната аласыз, ең бастысы «Блоктан кеткен жағдайда болдырмау» қосқышын қосуды ұмытпаңыз.

Толық схема:

Демонстрация

Жазу туралы колбек

Клиентпен диалогқа жазғаннан кейін келесі түрдегі колбек — жазу туралы хабарландыру — келеді:

new_order_in_calendar - колбектің өзгермейтін бөлігі

[489046159] - order_id өтінім идентификаторы

Добавлена запись даты_и_время_записи

на 30 минут - қызмет ұзақтығы

Объекту: Тест 30 - жазба қай объектіге қосылғаны

Колбектің өзінің түрі:

new_order_in_calendar: [489046159] Добавлена запись с 2025-06-01 14:00 до 2025-06-01 14:30 на 30 минут. Объекту: Тест 30

Колбекке реакцияны блоктың шартында мәнді жазу арқылы конфигурациялауға болады:

Блокта клиентке қажетті кері хабарламаны жазуға болады.