Перейти к основному содержимому
megapromotingДавайте обсудим

Решения · Beauty & wellness

Запись фиксируется в календаре салона, а не в его копии — и ассистент предлагает свободное время того специалиста, который действительно выполняет запрошенную услугу.

Мы подключаем ассистента к вашей системе записи через шесть инструментов, которые он вызывает во время разговора: услуги с реальными ценами, специалисты с процедурами каждого, доступность, создание, отмена и перенос записи. Источником истины остаётся ваш календарь; мы не ведём второй.

Уже построеноКоннектор написан и запущен: 946 строк в модуле интеграции с системой записи Altegio, с шестью инструментами, доступными агенту, каждый со своим сроком выполнения — 15 секунд для списка услуг, 30 для доступности, 20 для создания, отмены и переноса. Инструменты связаны в единой точке выполнения агента, вместе с другими 15 типами внутренних инструментов платформы. Вторая реализация, на которую мы опираемся, — сама платформа ассистентов в production: каналы с собственным кодом, индексированная база знаний и передача человеку с фиксацией в базе данных. Резерв: коннектор написан для одной системы записи. Если ваш салон использует другое, первый этап — проверка совместимости, а не обещание.

В салоне почти каждое входящее сообщение — это один и тот же разговор в четырёх репликах: какие услуги у вас есть, сколько стоит, кто делает, когда свободно. Это повторяется десятки раз в день, почти всегда вне графика или именно тогда, когда у администратора заняты руки. Ассистент, который отвечает на первые три вопроса и останавливается на четвёртом, ничего не решает — человеку всё равно придётся звонить, а вам всё равно придётся платить кому-то за ответы.

Поэтому мы довели интеграцию до конца: агент не просто говорит, какие часы свободны, а создаёт запись в системе салона, отменяет её и переносит. Запись пишется напрямую в ваш календарь через интерфейс системы, которой вы уже пользуетесь. Мы не держим у себя второй календарь, который потом нужно сверять с первым — источником истины остаётся только один, потому что два календаря означают, рано или поздно, двух клиентов на одно и то же время.

Полевой нюанс, который отличает рабочую интеграцию от той, что «всегда возвращает, что нет свободных мест», — это правило системы записи, записанное именно так в нашем коде: услуга и специалист путешествуют вместе. Если вы запрашиваете часы специалиста для услуги, которую он не выполняет, вы получаете 0 результатов — не ошибку, а пустой ответ, который выглядит точно как «у нас нет мест». Поэтому инструмент доступности не возвращает «свободно/занято»: он возвращает, какие специалисты выполняют запрошенную услугу, и первые свободные часы для каждого, отсортированные по самому раннему, чтобы агент мог предложить конкретную альтернативу вместо того, чтобы завершать разговор.

А реальная длительность процедуры — это вторая ловушка из той же семьи: глобальный список услуг возвращает пустую длительность, а настоящая длительность появляется только когда вы запрашиваете её с фильтром по специалисту. Без этой корректировки агент предлагает часы, которые не помещаются в календарь. Это вещи, которые вы не узнаете из документации, а только после того, как интеграция поработает на реальных данных.

Что входит

Что конкретно меняется в beauty & wellness

Услуги и цены поступают из вашей системы, а не из скопированного списка

Первый инструмент возвращает активные услуги с реальными ценами из вашего календаря, с фильтрацией по свободной формулировке клиента на румынском или русском языке, наиболее подходящие — первыми. Срок выполнения 15 секунд. Когда вы меняете цену в системе, агент говорит изменённую — у нас нет файла, который отстаёт.

Доступность показывает, кто выполняет услугу и когда, а не только свободен ли он

Инструмент доступности получает услугу — по идентификатору или по найденному названию — и, опционально, предпочтительного специалиста, который ставится первым, но с отображением альтернатив. Результат — список специалистов, которые выполняют эту услугу, и первые свободные часы для каждого, отсортированные по самому раннему. Срок: 30 секунд, потому что запрос затрагивает несколько точек.

Запись действительно создаётся, а не обещается

Инструмент создания получает специалиста, услугу или услуги, дату и время, телефон и имя клиента, необязательно e-mail, комментарий и длительность. Результат — запись в расписании салона с идентификатором. Дальше она живет в вашей системе, не у нас — администратор видит ее там, куда обычно смотрит.

Отмена и перенос — тоже инструменты, а не сообщение администратору

Отмена требует идентификатор записи и, необязательно, причину; перенос меняет время, сохраняя запись. Без этих двух любая интеграция записи наполовину: клиенты отменяют и переносят чаще, чем бронируют, а если агент не может, работа возвращается к человеку именно в самый раздражающий момент.

Специалисты, с процедурами и длительностью каждого

Шестой инструмент возвращает список специалистов с процедурами, которые каждый делает, и длительностью каждой процедуры в минутах — можно фильтровать по имени специалиста или по услуге. Это инструмент, который отвечает на «кто делает ламинирование» и, что важнее, именно он дает агенту длительность до того, как предлагать время. Деталь, которая выясняется только на практике: реальная длительность приходит только когда спрашиваешь с фильтром по специалисту; глобальный список возвращает пустым.

Ключ интегратора хранится на сервере, вы указываете только идентификатор салона

Токен партнера — это один ключ, хранящийся в серверной среде, никогда не в базе данных по каждому инструменту. Вы подключаете салон по идентификатору компании, который проверяется до сохранения: запрашивается публичный список услуг для этого идентификатора и подсчитывается, сколько их. Если ответа нет, интеграция не сохраняется — лучше неудача при подключении, чем перед клиентом.

Неправильный заголовок означает 403, а не «интеграция не работает»

Фильтр безопасности поставщика отвечает 403 на идентификатор клиента по умолчанию, поэтому интеграция отправляет собственный идентификатор. Это та мелочь, которая, если ее не найти, приводит к дням поиска причины не там — и она записана в комментарии коду именно для того, чтобы следующий человек не терял их.

Когда выходит за пределы роли, передает обсуждение человеку, с фиксацией

Поток имеет явное состояние `bot` или `human`, журнал передачи знает передачу человеку, возврат к боту и автоматическую реактивацию, а у потока отдельно есть состояние соблюдения времени ответа. В салоне моменты, когда нужен человек, предсказуемы: жалоба после процедуры, просьба о скидке, вопрос о проблеме с кожей.

Чего не делает ассистент салона

Не рекомендует процедуры и не оценивает проблему с кожей, волосами или ногтями — даже когда клиент настаивает, потому что ответ был бы утверждением о чьем-то здоровье. Не торгуется о ценах и не предоставляет скидки, если только правило не записано и не проверяемо. И не работает на этом уровне, если у салона нет системы записи с интерфейсом — тогда он принимает запрос и передает его человеку, что является другой работой и это нужно сказать заранее.

Traseul

Как запрос проходит через систему.

01

Проверяем совместимость вашей системы записи

Первый этап — проверка, а не обещание: какую систему вы используете, какой у нее публичный интерфейс, отвечает ли она достаточно быстро для разговора. Коннектор, который у нас написан, предназначен для определенной системы. Для другой мы предоставляем результат проверки и оценку работы, в том числе когда ответ — что на уровне автоматического бронирования это никак не может работать.

02

Подключаем салон и валидируем идентификатор

Подключение выполняется с идентификатором вашей компании, который сразу проверяется по публичному интерфейсу бронирования: запрашиваются услуги и подсчитываются. Мы передаем подключенную интеграцию, с числом прочитанных услуг — если цифра не совпадает с реальностью салона, это видно сразу, а не через месяц.

03

Прикрепляем инструменты агента и пишем правила отказа

Все шесть инструментов прикрепляются к вашему агенту, не ко всем. В его роли мы прямо пишем, чего он не имеет права делать: рекомендовать лечение, оценивать медицинскую проблему, обещать результат, предоставлять неподтвержденную скидку. Мы поставляем конфигурацию агента и список прикрепленных инструментов.

04

Работаем на реальных разговорах, с активной передачей человеку

Начинаем с широко настроенной передачи человеку и с включенным журналом запросов. Читаем разговоры первых дней — там видны местные формулировки, которые агент не сопоставляет ни с одной услугой. Поставляем отчет с пропущенными сопоставлениями и внесенными исправлениями.

1Clientul întreabă deun serviciu2unealta de servicii3unealta dedisponibilitate(specialiștii carefac acel serviciu,prima oră liberă afiecăruia)4unealta de creare5programarea apare înagenda salonuluiAnulare și mutare, pe același drum.
Путь, в 5 шагах

Данные

К чему прикасаемся, где оно лежит и сколько остаётся

Правила отличаются от отрасли к отрасли. Это те, которые применяются в beauty & wellness.

Какие персональные данные фактически проходят через разговор
Имя, телефон, иногда e-mail, выбранная услуга и время. Только этого требует инструмент создания записи. Это минимальные данные, для которых есть причина — без телефона нельзя подтвердить запись — и мы не запрашиваем другие «чтобы были».
Данные о здоровье, которые появляются без вашего запроса
В beauty и wellness клиент сам пишет вещи вроде «у меня чувствительная кожа», «я беременна», «у меня аллергия». Это данные из специальной категории, с более строгим режимом, чем имя. Технически их нельзя предотвратить, но можно обрабатывать: агент их не запрашивает, не повторяет в ответе и не использует для того, чтобы дать совет; а команда обучается не запрашивать их в канале. То, что написал клиент, остается в разговоре, с сроком хранения, установленным при внедрении.
Записи у нас не дублируются
Источник истины остается системой салона. Мы сохраняем след исполнения — какой инструмент был вызван, с какими параметрами, с каким результатом — а не копию расписания. Разница важна при аудите: у нас нет второй базы с вашими клиентами и их временем.
Где хранятся разговоры и кто их видит
MySQL, на собственном сервере в Microsoft Azure, с отдельными таблицами по каналам, внутренними заметками и журналом аудита. Доступ вашей команды настраивается по ролям. Общего хранилища поверх клиентов нет.
Срок хранения и опубликованная политика
Они устанавливаются для каждого внедрения и прописываются в вашей опубликованной политике — не в нашей. Правило, которое мы применяем и у себя: если изменение кода меняет то, что собирается, кому попадает или как долго хранится, опубликованная политика меняется в том же commit.

Случай

Полевое правило, которое решает, работает ли интеграция записей

Ситуация

Ассистент, подключенный к системе записи салона, корректно отвечал на вопросы об услугах и ценах, но на вопрос «когда свободно» для некоторых сочетаний возвращал пустой ответ. Не ошибка — пустой ответ, который в разговоре выглядит точно как «мест нет».

Что мы построили

Причина — в правиле системы записи: услуга и специалист путешествуют вместе. Часы специалиста для услуги, которую он не выполняет, возвращают ноль результатов. Я переписал инструмент доступности так, чтобы он исходил из услуги, а не из человека: он возвращает специалистов, которые выполняют эту услугу, и первые свободные часы для каждого, отсортированные по самому раннему, с предпочтительным специалистом первым, но с сохранением альтернатив. На том же этапе я исправил и длительность процедур, которая приходит пустой из глобального списка и реальна только при фильтрации по специалисту, и добавил собственный идентификатор клиента, потому что фильтр безопасности поставщика отвечает 403 на стандартный.

Что получилось

Разговор больше не заканчивается на «не доступно». Агент предлагает конкретную альтернативу — другого специалиста, другое время — и может создать, отменить или перенести запись в расписании салона, которое остаётся единственным источником истины.

Чего этот случай не говорит

Исправления специфичны для системы записи, для которой написан коннектор. Для другой системы её полевые правила иные и выясняются так же: на реальных данных, а не при чтении документации.

Вопросы

Что спрашивает кто-то из beauty & wellness

Он действительно записывает или только говорит, что кто-то позвонит?

Записывает. Есть инструмент создания, который записывает визит в систему салона, со специалистом, услугой, датой, временем, телефоном и именем, и возвращает идентификатор записи. Отмена и перенос — тоже инструменты. Если поставщик говорит «записывает», но не может отменять и переносить, интеграция наполовину.

Почему он скажет, что свободного времени нет, когда я вижу свободные часы в расписании?

Самая частая причина в системе, с которой мы работаем, — что услуга и специалист путешествуют вместе: если запрашиваются часы специалиста для услуги, которую он не делает, ответ — ноль результатов, а не ошибка. Поэтому наш инструмент доступности начинает с услуги и возвращает специалистов, которые её выполняют, с первыми свободными часами каждого. Это исправление, написанное в коде, а не настройка.

Мой салон не использует систему записи. Что меняется?

Меняется то, что может делать агент: он принимает полный запрос — услуга, предпочтительный специалист, интервал, контакт — и передаёт его человеку вместо того, чтобы бронировать. Это полезно, но это другая работа, и мы называем её иначе. Мы не продаём вам «автоматическую запись» поверх бумажного расписания.

Может ли он предложить другое время, когда предпочтительный специалист занят?

Да, и это поведение инструмента по умолчанию: предпочтительный специалист ставится первым, но альтернативы отображаются, с первыми свободными часами для каждого, отсортированными по самому раннему. Агент, который отвечает «не доступно» и молчит, теряет именно того клиента, который был готов прийти.

Сколько длится процедура — откуда он знает, чтобы не предлагать невозможное время?

Из инструмента специалистов, который для каждого возвращает процедуры с длительностью в минутах. Важная деталь: глобальный список услуг возвращает пустую длительность, а реальная длительность появляется только при фильтрации по специалисту. Без этой правки агент предлагал бы часы, которые не помещаются. Это записано в коде, потому что мы обнаружили это на реальных данных.

Клиент пишет, что у него чувствительная кожа. Что делает агент?

Записывает это в визит, если вы этого попросили, и не даёт никаких советов. Он не оценивает, не рекомендует продукт, не говорит, подходит ли процедура — это было бы утверждением о здоровье человека, сделанным автоматической системой. Он передаёт разговор специалисту. Информация, написанная клиентом, относится к особой категории и обрабатывается как таковая, в том числе по сроку хранения.

Кто отвечает, если агент сделает неправильную запись?

Ошибка видна и исправима в том же месте, где возникла: запись находится в вашем расписании, а те же инструменты могут её отменить или перенести. Платформа хранит след выполнения — какой инструмент был вызван, с какими параметрами и с каким результатом — так что можно восстановить, что произошло. При настройке мы определяем, что он может делать сам, а что требует подтверждения человека, и это записывается, а не подразумевается.

Видит историю клиента — что он сделал в последний раз?

Только если вы дадите ему к ней явный доступ. Подключенные сегодня инструменты охватывают услуги, специалистов, доступность, создание, отмену и перенос. История визитов — это другая категория данных, с другими последствиями, и она не включается автоматически только потому, что «это полезно».

На каких каналах отвечает?

На тех, где уже пишут ваши клиенты и которые имеют собственный код в платформе: Instagram Direct и Messenger — откуда приходит большая часть сообщений в салоне — Telegram, WhatsApp через Cloud API и виджет на странице. Инструменты записи одинаковы на всех; нет более слабой версии на каком-либо канале.

Что вы хотели бы наладить?

Расскажите о своём процессе. Вместе определим, что стоит построить, что можно подключить и как проверим результат.

Давайте обсудим