Создайте AI-помощника для записи клиентов через WhatsApp, который отвечает на вопрос о ремонте велосипеда, предлагает актуальное время и создает подтвержденную запись в Calendly. Клиент спрашивает об услуге, выбирает время и сообщает свои данные в одном и том же диалоге WhatsApp.
В примере используется Harbor Cycle Workshop, вымышленная мастерская, которая предлагает бесплатный 15-минутный Repair assessment (осмотр для оценки ремонта). В нашем контролируемом тесте в WhatsApp клиент выбрал 10:00 на 27 октября 2026 года в часовом поясе Europe/London. Доставленное подтверждение совпало с записью в Calendly с 10:00 до 10:15.


Настоящие скриншоты мобильного WhatsApp. Подтверждение совпало с записью в Calendly, проверенной независимо. Email-адреса и персональные ссылки скрыты; подписи контактов приведены к названию мастерской.
Что будет делать помощник для записи в WhatsApp?
Клиент выполняет в WhatsApp три шага:
| Шаг клиента | Что делает агент |
|---|---|
| Спрашивает о ремонте прокола | Объясняет, что работа стоит от £12, запчасти оплачиваются отдельно, а осмотр бесплатный |
| Просит дату осмотра | Читает доступность в Calendly и предлагает время в часовом поясе мастерской |
| Выбирает предложенное время и называет имя и email | Создает запрошенную запись в Calendly, затем возвращает подтверждение и ссылки для управления записью |
Вы соберете это за шесть шагов: добавите знания о мастерской, подготовите событие Calendly, подключите его инструменты, зададите инструкции по бронированию, протестируете полный диалог и повторите его в WhatsApp. MCP (Model Context Protocol) представляет собой подключение, которое позволяет агенту использовать инструменты доступности и бронирования Calendly.
Что вам понадобится
- Создайте аккаунт Quickchat AI и подтвердите email, если это потребуется. Для бизнес-развертывания нужны коммерческий план и AI-кредиты; ответы в Preview и Simulation Testing также расходуют кредиты. Ознакомьтесь с ценами Quickchat AI.
- Используйте Calendly на плане Standard или выше. Согласно справочнику Booking API, для создания записей нужен платный план, даже если само подключение по MCP бесплатно.
- Получите доступ к нужному бизнес-аккаунту Meta и номеру WhatsApp Business Platform. Пройдите поддерживаемую процедуру проверки и изучите тарифы Meta на сообщения.
- Подготовьте контролируемый телефон клиента и тестовый почтовый ящик. Помечайте и отменяйте тестовые записи. Перед запуском замените вымышленные данные компании.
Скачайте комплект Harbor Cycle Workshop с точным Main Prompt, пятью исходными статьями, настройкой Calendly, текстами для передачи сотрудникам и тестовыми сообщениями. Это редактируемые файлы настройки, а не импорт в один клик. Main Prompt и источники знаний также приведены в конце руководства.
Сначала соберите и протестируйте все в AI Preview, затем повторите диалог в WhatsApp. Чтобы делегировать часть настройки, используйте необязательную инструкцию для ChatGPT или Claude с тем же комплектом.
Шаг 1: Передайте агенту знания о мастерской
Пять коротких статей дают агенту факты об услугах и при этом разделяют цены, часы работы и доступное для записи время.
Используйте знания о мастерской для стабильных фактов, а Calendly для актуального времени.
- При настройке аккаунта выберите вариант с описанием. Введите «Сервисный помощник Harbor Cycle Workshop, который отвечает на вопросы о ремонте велосипедов и записывает на 15-минутный Repair assessment», затем нажмите Create my AI Agent.
- Продолжите, нажав Next. Выберите план или нажмите Skip for now, чтобы завершить настройку. Откройте Identity и задайте имя Harbor Cycle Workshop.
- Откройте Knowledge Base > Add Article. Введите заголовок первого источника в Create custom article, затем нажмите Create article.
- Вставьте полный текст источника в поле Content на экране Edit Article, нажмите Save и дождитесь статуса Ready. Повторите для остальных четырех источников. Каждое сохранение запускает обработку статьи.
Вставьте полный текст источника в Content, затем сохраните его и проверьте обработку. В локальном редакторе показано начало статьи об услугах.
| Источник для копирования | Что он устанавливает |
|---|---|
| 1. Услуги | Бесплатный 15-минутный осмотр: это проверка велосипеда, а не бронирование ремонтных работ |
| 2. Ориентировочные цены | Стартовые цены на работу и отдельная оплата запчастей |
| 3. Часы работы и записи | Часы работы, расписание записи и актуальная доступность: это разные вещи |
| 4. Адрес и контакты | Адрес для очного визита и способ связаться с сотрудниками |
| 5. Помощь сотрудников и ограничения бронирования | Подтверждение, неопределенные результаты, ссылки для управления записью и резервный вариант |
Полные блоки находятся в приложении с источниками знаний для копирования и в папке knowledge/ комплекта.
Адаптируя собственную утвержденную документацию, оставьте вопросы наличия запчастей, окончательной стоимости и сроков готовности сотрудникам.
Проверьте первый результат: когда все пять источников получат статус Ready, спросите в AI Preview: «У меня прокол. Сколько это может стоить и что входит в осмотр?» В ответе должны быть стартовая цена работы £12, отдельная оплата запчастей и уточнение, что осмотр не резервирует ремонтные работы.

Шаг 2: Подготовьте событие Calendly для записи
Создайте одно событие Repair assessment с фиксированной длительностью, адресом и расписанием. Агент будет использовать идентификатор этого события для проверки доступности и бронирования.
| Настройка Calendly | Значение в демонстрации |
|---|---|
| Название и тип события | Repair assessment; один организатор и один клиент |
| Длительность | 15 минут |
| Место проведения | 14 Workshop Lane, Bristol, United Kingdom, намеренно вымышленный адрес |
| Часовой пояс доступности | Europe/London |
| Со вторника по пятницу | С 10:00 до 16:00 |
| Суббота | С 10:00 до 13:00 |
| Понедельник и воскресенье | Недоступно |
| Оплата и дополнительные обязательные вопросы | Нет |
- В разделе Scheduling в Calendly отредактируйте нужное событие или нажмите + Create, чтобы создать новое событие «один на один». Заполните Event name, Duration, Location и Availability, затем нажмите Save changes. Элементы управления описаны в инструкции Calendly по настройке событий.
- Подключите календарь, по которому Calendly должен проверять конфликты. Задайте собственный часовой пояс и часы доступности события, затем добавьте реальные исключения на праздники и лимиты бронирования. Не меняйте общее расписание, которым пользуются другие события.
- В More options > Notifications and automations отредактируйте базовое уведомление по email или приглашение в календарь. Включите Include cancel and reschedule links in email invitations and reminders и сохраните. Эти персональные ссылки для управления записью дают клиентам еще один способ управлять своей записью.
- Откройте публичную страницу события и проверьте его название, 15-минутную длительность, адрес и доступные даты. В Scheduling нажмите Copy link именно для этого события и сохраните ссылку как резервный URL для шага 4.
Проверьте название, длительность и адрес осмотра на его публичной странице бронирования. Это настоящее демонстрационное событие.
Мастерская открывается в 09:00, но осмотры начинаются с 10:00. Расписание события в Calendly и подключенный календарь определяют, какое время записи агент может предложить.
Шаг 3: Подключите Calendly и ограничьте его инструменты
Подключение Calendly по MCP дает агенту набор именованных операций. Включите операции чтения, необходимые для поиска события и его времени, а бронирование добавьте только тогда, когда инструкции и проверки будут готовы.
Схема: WhatsApp передает диалог; Quickchat AI отвечает на вопросы об услугах и использует Calendly, чтобы найти время и создать запись.
Подключите Calendly и настройте список инструментов
- Откройте Actions & MCPs > Add Action > MCP, выберите Calendly в каталоге и пройдите авторизацию с контролируемым аккаунтом.
Нажмите Connect with Calendly, чтобы авторизовать аккаунт. Настоящий локальный экран настройки.
- Откройте созданный Action через Edit Action. В поле MCP action name укажите Harbor Cycle Workshop appointments.
- В разделе Tools установите Default tool activation в положение Выкл., затем настройте переключатели по таблице ниже и нажмите Save. Если вы воспользуетесь Use recommended, проверьте получившиеся переключатели: включаемый им инструмент отмены в этот рецепт не входит.
| Инструмент | Во время настройки | Во время теста бронирования |
|---|---|---|
users-get_current_user | Вкл. | Вкл. |
event_types-list_event_types | Вкл. | Вкл. |
event_types-list_event_type_available_times | Вкл. | Вкл. |
meetings-create_invitee | Выкл. | Вкл., после шага 4 и проверок услуг |
meetings-cancel_event и все остальные инструменты Calendly | Выкл. | Выкл. |
| Default tool activation | Выкл. | Выкл. |
Включите бронирование для шага 5; во время первоначальной настройки оставьте его выключенным. Отмена и Default tool activation остаются выключенными. Пример локальных настроек.
Переключатели инструментов определяют доступные операции. Main Prompt задает событие мастерской, обязательные данные клиента и момент, когда можно бронировать.
Скопируйте идентификатор события, не угадывая его
Прежде чем заменять два операторских значения в промпте, начните новый диалог в AI Preview, включив только три инструмента чтения. Этот запрос для этапа настройки получает данные события, не проверяя время и не создавая запись:
Скопировать запрос на поиск события (только чтение)
Find the active Repair assessment event lasting 15 minutes in my connected Calendly account. Look up the account owner first and copy the returned owner URI unchanged when listing their events. Follow pagination if needed. Return the exact name, duration, uri and scheduling_url in one plain-text code block. Copy both URLs in full. If there is not exactly one match, stop and explain. Do not create, change or cancel anything.
Наведите курсор на ответ и нажмите Copy. Сверьте название, длительность и публичную ссылку с событием из шага 2. Сохраните полные значения uri и scheduling_url для двух настроек промпта ниже. Если поиск дал неоднозначный результат или завершился ошибкой, разберитесь с этим до включения бронирования.
Используйте uri для вызовов инструментов, а scheduling_url для резервной страницы. Скопируйте оба значения из ответа полностью, включая https://.
Сохраните данные бронирования для следующих ходов диалога
Раскройте meetings-create_invitee, даже пока его переключатель выключен, чтобы увидеть Save to memory. Проверьте эти строки и нажмите Save:
| Выражение JSONPath | Ключ памяти |
|---|---|
$.resource.event | calendly_event_uri |
$.resource.cancel_url | calendly_cancel_url |
$.resource.reschedule_url | calendly_reschedule_url |
Каждое выражение JSONPath выбирает поле ответа; его ключ памяти делает это значение доступным в последующих сообщениях. Пример локальных настроек.
После бронирования вопрос «Можно изменить время?» должен вернуть сохраненную ссылку для переноса именно этой записи. Шаг 5 проверяет это точное значение без нового бронирования и без поиска по email.
Для времени записи в мастерской используйте Europe/London. Quickchat AI преобразует локальные даты программно и возвращает подписанные варианты. Агент бронирует вариант, который выбрал клиент.
Как заполняются поля события и записи
Когда включены и доступность, и бронирование, инструменты Calendly принимают локальные даты и явно указанный часовой пояс. Quickchat AI выполняет преобразование в UTC и повторно проверяет выбранный слот перед отправкой в Calendly. Имена инструментов остаются прежними.
| Значение | Откуда берется | Куда попадает |
|---|---|---|
| Утвержденный идентификатор события | Проверенный поиск события | event_type в запросе доступности и post_invitee_request.event_type в бронировании |
| Запрошенный диапазон дат | С полуночи запрошенной даты до полуночи следующего календарного дня | local_start_time, local_end_time и timezone в запросе доступности |
| Предложенное локальное время | Возвращенное display_time каждого варианта | Выбор клиента и подтверждение бронирования |
| Выбранная запись | local_start_time варианта, включая смещение, и timezone | post_invitee_request.local_start_time и booking_timezone в бронировании |
| Данные клиента | Имя, email и подтвержденный часовой пояс клиента | post_invitee_request.invitee |
| Фиксированный физический адрес | Настройки события и мастерской | post_invitee_request.location |
Явного запроса на предложенное время вместе с обязательными данными клиента достаточно, чтобы продолжить. Если запрос предварительный или неясный, агент сначала просит подтверждение. Quickchat AI сверяет выбранный момент времени с текущей доступностью и отправляет в Calendly его исходную временную метку.
Шаг 4: Задайте инструкции по бронированию и путь к сотрудникам
Main Prompt объединяет факты об услугах и инструменты календаря в один диалог: проверить время, получить явный выбор и обязательные данные, забронировать, затем подтвердить результат. Сообщение «Беру 10:00» вместе с именем и email клиента может завершить запрос. Предварительный выбор или недостающие данные вызывают уточняющий вопрос перед бронированием.

Установите полный Main Prompt
Откройте Identity > Main Prompt и вставьте полный Main Prompt, который также есть в комплекте в файле main-prompt.txt. Замените NOT CONFIGURED только в этих двух строках настроек:
| Настройка в промпте | Что вставить |
|---|---|
| Approved Calendly event type URI | Полный uri из шага 3 |
| Approved Calendly booking link | Проверенный публичный scheduling_url |
Расположенное дальше защитное предложение в промпте оставьте без изменений. Main Prompt сохраняется автоматически; дождитесь завершения сохранения и откройте его снова, чтобы проверить сохраненный текст. Вымышленный адрес встречается в знаниях, событии и инструкции по бронированию. Для настоящей мастерской обновите все три места вместе.
Укажите URI события и резервную ссылку для бронирования в Main Prompt, затем проверьте сохраненные значения. Настоящий локальный редактор.
Настройте Human Handoff
Откройте Actions & MCPs > Human Handoff, включите его и активируйте AI summary. В Handoff Rules нажмите кнопку с плюсом, добавьте правило Workshop handoff, включите его и вставьте следующий текст в Description:
Скопировать Description для правила Workshop handoff
Offer Human Handoff when the customer asks for a person; needs a final quote, parts availability or repair completion date; describes unsafe brakes, crash or frame damage, or an e-bike battery problem; or encounters a booking failure, uncertain booking result or problem with an existing appointment. Do not diagnose the bicycle, invent availability or claim that a booking was made or changed.
В поле Question укажите:
Would you like me to pass this conversation to the workshop team?
В поле Confirmation укажите:
Your conversation has been flagged for the workshop team to review. A member of staff can reply here when available. This handoff has not booked an appointment.
Question задает вопрос перед передачей; Confirmation объясняет, что сотрудники могут ответить и что запись не была создана. Пример локальных настроек.
Оставьте включенными передачу по явному запросу пользователя и Lack of knowledge. Не ограничивайте Human Agents’ availability, чтобы клиенты могли попасть в очередь, пока сотрудники офлайн. Используйте Email notifications только с реальным отслеживаемым адресом; вымышленный адрес в домене .example не может получать письма. Сохраните настройки.
Проверьте этот путь к сотрудникам после диалога бронирования на шаге 6.
Шаг 5: Протестируйте диалог и результат в календаре
Сначала прогоните четыре вопроса об услугах, затем проведите один диалог бронирования в AI Preview. Проверьте запись в Calendly, прежде чем переносить диалог в WhatsApp.
Проверьте ответы об услугах в Simulation Testing
Пока проверяете четыре вопроса об услугах, держите meetings-create_invitee выключенным.
Откройте Testing, чтобы создать или найти датасет мастерской. Пример локальной конфигурации.
- Откройте Testing в боковой панели. Страница называется Simulation Testing.
- Выберите Create Dataset > Paste messages и назовите датасет Workshop service checks.
- Вставьте эти четыре сообщения, разделенные строкой, содержащей только
---, затем нажмите Create:
Скопировать четыре тестовых сообщения об услугах
My bike has a puncture. How much might it cost, and what does the assessment cover?
---
Are you open on Monday? Can I bring my bike on Saturday?
---
Do you have my inner tube in stock, and can you finish the repair tomorrow?
---
What should I bring to my Repair assessment?
Откройте датасет, вставьте следующий текст в Evaluation criteria, затем нажмите Save:
Скопировать критерии оценки ответов об услугах
Check service facts against the workshop knowledge. Puncture labour starts at £12 with parts extra. The free Repair assessment is 15 minutes and is not a repair reservation. Monday is closed. Saturday opening hours are 09:00 to 14:00 Europe/London, not evidence of available appointments. Do not promise stock, final prices, repair completion dates or that an unsafe bicycle is safe. Score the visible reply only; inspect Action calls and Calendly separately to verify bookings.
Четыре вопроса об услугах в локальном датасете, готовом к первому прогону.
Чтобы запустить и просмотреть проверки:
- Нажмите Run, присвойте прогону метку, например
workshop service baseline, проверьте показанную стоимость в кредитах и нажмите Start Run. - Откройте завершенный прогон и прочитайте каждый ответ, его AI Score и обоснование оценки. Нажмите View, чтобы изучить соответствующий диалог.
- Проверьте в Inbox назначения после передачи и сводки, если они появились.
Каждый элемент датасета начинает новый диалог. Для бронирования используйте непрерывный тест в Preview, описанный ниже. Руководство по тестированию агента поддержки объясняет, как сравнивать прогоны после изменений.
Проведите один полный диалог бронирования
Прочитайте доступность, установите запрошенную запись и соберите ее данные. Подтверждайте бронирование только после того, как Calendly вернет успешный результат.
Завершив шаги 1–4 и проверки услуг, включите meetings-create_invitee в разделе Tools, нажмите Save и начните новый диалог в AI Preview. Используйте будущую дату в пределах диапазона бронирования события и почтовый ящик, который вы контролируете.
| Отправьте по порядку | Ожидаемый результат |
|---|---|
| «У меня прокол заднего колеса. Сколько стоит ремонт?» | Стартовая цена работы, запчасти отдельно и никакой обязывающей сметы |
| «Хочу записаться на Repair assessment [полная будущая дата], часовой пояс Europe/London» | Доступное время на запрошенную дату с указанием часового пояса мастерской |
| «Беру вариант [номер]. Меня зовут [тестовое имя], мой email [контролируемый email]» | Одна запись, совпадающая с выбранной датой и временем, за которой следует подтверждение |
| «Пришлите, пожалуйста, ссылку, чтобы изменить время» | Сохраненный URL для переноса, без нового бронирования |
| «Что мне взять с собой?» | Советы по подготовке из знаний о мастерской |
Замените инструкции в квадратных скобках своими тестовыми значениями. Указывайте полную дату и часовой пояс явно. Если какой-то детали не хватает или запрос неясен, ответьте на вопрос агента, прежде чем продолжать; он не должен выдумывать имя, email или выбор времени записи.
Проверьте запись и последующие вопросы
- В соответствующем диалоге в Inbox раскройте индикатор вызова действия. Убедитесь, что вызов бронирования следует за явным выбором и обязательными данными клиента.
- Откройте запись в Calendly. Сверьте ее событие, полную дату, часовой пояс, длительность, адрес и тестового клиента с запрошенной записью и доставленным подтверждением.
- Попросите ссылку для переноса и советы по подготовке. Сравните ссылку со значением в Inbox > Details > Memory, как показано в руководстве по проверке ниже.
Раскройте вызванный Action, чтобы изучить его входные данные и результат. Локальная заготовка с синтетическим ответом бронирования.
Сравните выбранную дату, время и часовой пояс с данными у провайдера, затем выполните очистку после контролируемого теста.
Изучите журнал Action и сохраненные ссылки бронирования
Чтобы посмотреть историю Action, откройте Actions & MCPs и нажмите View logs на карточке Harbor Cycle Workshop appointments. Откройте вызов бронирования и найдите в Parameters sent идентификатор события, post_invitee_request.local_start_time и booking_timezone там, где они видны. Сопоставьте вызов с его диалогом, прежде чем сравнивать его с выбором и данными клиента.
Нажмите View logs на карточке Action, чтобы найти записанные вызовы. Локальная заготовка.
Сверьте видимые Parameters sent с выбранной записью. Локальная заготовка с синтетическим запросом на бронирование.
Откройте запись в Calendly, чтобы увидеть все ее данные, и сверьте их с записью, которую запросил клиент. Эта таблица сопоставляет данные с полями бронирования:
| Запрошенная деталь | Запрос на бронирование | Сохраненная запись |
|---|---|---|
| Repair assessment, 15 минут | Утвержденный event_type | Правильное событие и длительность |
| Полная дата, время и часовой пояс | Выбранные local_start_time и booking_timezone; отдельно timezone приглашенного | Тот же момент времени с учетом часового пояса отображения у оператора |
| Имя и email | invitee | Нужный тестовый клиент |
| Адрес мастерской | Физический location | То же место очного визита |
Для вопроса «Пришлите, пожалуйста, ссылку, чтобы изменить время» откройте Inbox > Details > Memory. Наведите курсор на Calendly Reschedule Url, нажмите Copy и сравните полное значение с адресом, на который ведет ссылка в ответе.
Откройте Memory и нажмите Copy, чтобы получить полную сохраненную ссылку. Локальная заготовка с нерабочими примерами URL.
Так проверяется получение ссылки этого диалога. Это не подтверждает, что клиент действительно перенес запись.
Проверьте дату и часовой пояс
Для этой очной записи используйте полную дату, включая год, и Europe/London. Лондон переходит между британским летним временем и GMT, поэтому одно и то же время на часах может соответствовать разному времени UTC. Интеграция Quickchat AI с Calendly выполняет это преобразование программно и бронирует с совпадающей временной меткой, которую вернул Calendly.
Одно и то же лондонское время на часах соответствует разному времени UTC до и после перевода часов.
Сверяя запись в Calendly с выбранным клиентом временем, учитывайте часовой пояс, в котором Calendly ее отображает. Для даты перевода часов запрос доступности должен охватывать весь локальный день: между его двумя полуночными границами может быть 23 или 25 часов. Если время расходится на час, исправьте обработку даты или часового пояса и повторите проверку перед следующим бронированием.
Проверьте смену даты, недоступное время и другие пограничные случаи
| Проверка | Успешный результат |
|---|---|
| Смените дату после выбора времени | Новая проверка доступности и явный выбор новой записи перед бронированием |
| Попросите 09:00, потому что мастерская в это время открыта | Никаких выдуманных слотов; используется реальная доступность осмотра |
| Не называйте email или скажите «10:00, наверное, подойдет» | Вопрос, уточняющий недостающие данные или явное намерение; бронирования пока нет |
| Отправьте только «да», когда текущая запись не установлена | Уточнение, а не новое бронирование |
| Повторите «да» или попросите ссылку для управления записью после успешного бронирования | Агент подтверждает существующую запись; второго бронирования нет |
| Запросите недоступную дату или занятое время | Никаких предложений отсутствующего слота и никаких заявлений, что альтернативы удержаны или зарезервированы |
| Попросите найти чужое бронирование по email | Ни поиска, ни раскрытия данных |
| Опишите повреждения после аварии или тормоза, которые могут быть небезопасны | Никаких удаленных заверений о безопасности; совет не ездить и помощь сотрудников |
Используйте отдельные диалоги там, где передача сотрудникам завершила бы тест. Включите дату в период летнего времени и дату в период зимнего времени, когда они доступны для тестирования.
Разберитесь с тестом, который не завершается
| Симптом | Что проверить | Следующий шаг |
|---|---|---|
| Нет времени на день, который выглядит рабочим | Активность события, расписание события, календарь конфликтов, запрошенный локальный диапазон дат и часовой пояс | Проверьте реальную доступность события; часы работы мастерской не создают слотов |
| Ответ или запись отличаются на один час | Возвращенное display_time, утвержденные локальная дата и часовой пояс, выбранные local_start_time, booking_timezone и часовой пояс отображения у провайдера | Остановите тесты бронирования, найдите первое расхождение и повторите проверку локального времени перед следующей операцией записи в календарь |
| Calendly отклоняет бронирование | Текст ошибки, право на бронирование по плану и обязательные поля события | Исправьте конкретную настройку или недостающее поле; не делайте вывод о сбое только по чату |
| Результат неопределенный | История вызовов и реальная запись в Calendly | Пусть сотрудники установят, существует ли бронирование, прежде чем повторять попытку или отправлять форму на публичной странице |
| Ссылка для переноса отсутствует | Захват ответа бронирования и Details > Memory в том же диалоге | Проверьте три пути в памяти; если ссылка не захвачена, используйте подтверждение клиента или помощь сотрудников |
| WhatsApp не отправляет ответ | Соответствующий элемент в Inbox, состояние подключения и доставки, остаток кредитов и назначенный исполнитель | Устраните проблемы с доставкой или кредитами; верните назначение на AI Agent, если завершенная передача все еще приостанавливает ответы |
| Ответ сотрудника не отправляется | Время последнего сообщения клиента | Проверьте 24-часовое окно, описанное на шаге 6, прежде чем отправлять обычный ответ |
Руководство по надежности действий объясняет, как проследить результат до соответствующей инструкции, вызова и сохраненного значения. После изменения повторите проблемный случай и обычный диалог бронирования.
Зафиксировав результат, отмените помеченную тестовую запись из Preview и проверьте отмену в Calendly.
Шаг 6: Завершите бронирование внутри WhatsApp
Подключите протестированного агента к бизнес-номеру, затем проведите тот же диалог от вопроса об услуге до бронирования с контролируемого телефона клиента.
Настоящая локальная панель настройки показывает варианты номера перед подключением. Выберите путь, который подходит вашему номеру.
- Откройте Channels > External Apps > WhatsApp и нажмите Connect WhatsApp. Пройдите поддерживаемую Meta настройку аккаунта и номера. Актуальные варианты проверки описаны в документации по подключению WhatsApp.
- Убедитесь, что нужный номер включен для этого агента. Отправьте с тестового телефона вопрос об услуге от имени клиента и изучите как доставленный ответ, так и соответствующий диалог в Inbox.
- В настройках канала дождитесь статуса AI reply delivered. Waiting for your first message и Waiting for the AI reply to be delivered являются промежуточными состояниями.
- Продолжите тот же диалог последовательностью бронирования из шага 5. Установите полную дату и часовой пояс, явно выберите один из возвращенных вариантов времени и сообщите контролируемые имя и email. Проверьте подтверждение на телефоне и соответствующий вызов бронирования в Inbox.
- Откройте запись в Calendly. Сверьте ее событие, дату, часовой пояс, момент времени, длительность и приглашенного с запросом и подтверждением в WhatsApp.
В нашем тесте в WhatsApp клиент попросил Repair assessment на 27 октября 2026 года в Лондоне. Агент предложил 10:00, 10:30 и 11:00:

Затем клиент выбрал 10:00 и сообщил тестовые имя и email. Следующий ответ подтвердил запись и содержал ссылки Calendly для управления ею:

Независимая проверка в Calendly нашла один совпадающий 15-минутный осмотр с той же датой, временем и тестовым клиентом. После проверки мы отменили его и убедились, что активных записей с такими данными не осталось.
Посмотрите совпадающий ответ Calendly
Этот фрагмент взят из настоящего события Calendly, прочитанного перед очисткой. 27 октября 2026 года Europe/London находится на GMT, поэтому 10:00:00Z соответствует 10:00 в Лондоне.
{
"resource": {
"name": "Repair assessment",
"status": "active",
"start_time": "2026-10-27T10:00:00Z",
"end_time": "2026-10-27T10:15:00Z"
}
}
Мы отдельно сверили тестового клиента и событие, затем отменили запись. Приватные идентификаторы и ссылки для управления записью опущены.
Завершите в том же треде WhatsApp: спросите «Что мне взять с собой?» и запросите сохраненную ссылку для переноса. Сохраните вместе доставленный диалог и совпадающую запись в Calendly как результат теста. Отдельно проверьте в тестовом почтовом ящике настроенные email-уведомления, затем отмените помеченную запись и убедитесь, что отмена прошла.
Проверьте передачу сотрудникам и возврат к агенту
Тестируйте Human Handoff после диалога бронирования, потому что он приостанавливает ответы AI. Диалог в очереди ждет, пока подключится сотрудник; настройте отслеживаемую очередь и не обещайте время ответа.
- С телефона клиента попросите поговорить с человеком.
- Откройте соответствующий диалог в Inbox и проверьте назначение после передачи и AI-сводку. Нажмите Assign to me.
- Через Send message отправьте ответ сотрудника, видимый клиенту. Убедитесь, что тот же ответ пришел на телефон, и проверьте его статус Delivered или Read. Внутренняя заметка не является сообщением клиенту.
- Выберите AI Agent в выпадающем списке исполнителя. Снова задайте с телефона вопрос о подготовке и убедитесь, что агент возобновил ответы.
WhatsApp разрешает обычные ответы в течение 24 часов после последнего сообщения клиента. Новое сообщение клиента сбрасывает это окно. После его закрытия оператор должен дождаться нового сообщения клиента или использовать одобренный шаблон сообщения; обычное поле ответа отключается. См. политику Meta в отношении сообщений и руководство по Inbox.
Заметка AI Note дает сотрудникам контекст диалога. Более ранний локальный пример передачи; изучите этот экран после собственного теста.
Используйте публичную страницу бронирования, когда бронирование в чате невозможно
Когда бронирование в чате невозможно и нет ни одного незавершенного запроса на бронирование, предложите утвержденную ссылку на событие. Объясните, что клиент выбирает время, вводит свои данные и подтверждает запись на Calendly. Ему следует проверить часовой пояс, отображаемый на странице, и итоговое подтверждение. Агент не получает автоматического подтверждения этой отдельной отправки через сайт.
Если бронирование уже могло быть создано, пусть сотрудники проверят это, прежде чем повторять попытку или отправлять клиента на страницу. Для последующих изменений используйте сохраненную в этом диалоге ссылку для управления записью или подтверждение Calendly у клиента; инструмент отмены держите выключенным.
Прежде чем использовать настройку с клиентами, замените вымышленные данные компании, проверьте исключения в календаре и определите, кто следит за очередью сотрудников. После изменения знаний, промпта или инструментов повторно прогоните проверки услуг и полный диалог.
Общее руководство по записи через Calendly описывает более широкий процесс работы с инструментами и памятью; эта сборка добавляет знания о мастерской и проверку в WhatsApp.
Частые вопросы о записи клиентов через WhatsApp
Могут ли клиенты забронировать запись Calendly прямо в WhatsApp?
Да. Quickchat AI может предложить актуальное время из Calendly, собрать имя и email клиента и создать выбранную запись внутри диалога в WhatsApp. Публичная страница бронирования остается резервным вариантом, если бронирование в чате невозможно; открытие этой ссылки не резервирует время.
Нужен ли клиенту аккаунт Calendly?
Нет. Компания подключает свой аккаунт Calendly к Quickchat AI. Клиент выбирает один из предложенных вариантов времени и сообщает свое имя и email в диалоге.
Можно ли использовать отдельное приложение WhatsApp Business?
Этот агент работает через WhatsApp Business Platform с помощью подключения канала в Quickchat AI. Само по себе отдельное приложение Business его не запускает. Используйте поддерживаемые варианты номера и проверки, которые показываются при подключении.
Бесплатна ли запись клиентов через WhatsApp?
Для создания записей через Booking API Calendly нужен план Standard или выше, даже если само подключение к его MCP-серверу может быть бесплатным. Развернутому бизнес-агенту также нужны коммерческий план Quickchat AI и AI-кредиты. Плата Meta зависит от маршрута сообщений, категории и рынка получателя.
Когда запись действительно создается?
После того как клиент явно запросил доступное время, сообщил необходимые данные, а Calendly успешно принял запрос на бронирование. Предложенное время или email-адрес сами по себе не создают бронирование. Сверяйте подтверждение с реальной записью в Calendly.
Как клиенты отменяют или переносят запись?
Агент может отправить персональную ссылку для управления записью, сохраненную при бронировании, которое он создал в этом диалоге. Если такой ссылки нет, клиент использует подтверждение от Calendly или обращается к сотрудникам. В этом рецепте инструмент отмены остается выключенным, а записи не ищутся по введенному email-адресу.
Будет ли этот помощник отправлять напоминания о записи в WhatsApp?
Этот рецепт охватывает диалоги, начатые клиентом, и создание записей. Подтверждение от Calendly не является напоминанием в WhatsApp. Для запланированных напоминаний в WhatsApp нужны отдельно протестированный планировщик, согласие получателя, шаблоны там, где они требуются, и настройка доставки.
Могут ли ChatGPT или Claude подготовить этого помощника для WhatsApp?
Коннектор аккаунта Quickchat AI может подготовить значительную часть конфигурации агента. Он может сохранить предоставленные инструкции и статьи, подготовить датасет для проверок услуг и создать ограниченный Action для Calendly. Остальные настройки проверяете вы, и вы же авторизуете внешние аккаунты.
Это подключение отдельно от Calendly MCP. Ваш AI-клиент использует коннектор аккаунта для управления агентом; агент затем использует инструменты Calendly в диалогах с клиентами.
Откройте Manage your AI in над боковым меню панели управления. Эта настоящая локальная панель подключает AI-клиент к управлению аккаунтом; клиентский номер WhatsApp подключается на шаге 6.
- Откройте Quickchat AI в ChatGPT и нажмите Install plugin или используйте страницу Quickchat AI в каталоге Claude Directory. Войдите в аккаунт, которому будет принадлежать этот агент.
- Распакуйте комплект мастерской. Прикрепите его текстовые файлы и все пять файлов из папки
knowledge/или вставьте их содержимое в диалог. - Отправьте приведенный ниже запрос на настройку и просмотрите все запросы на подтверждение, которые покажет ваш AI-клиент.
Скопировать запрос на настройку аккаунта
Use the Quickchat AI connector to prepare Harbor Cycle Workshop from the attached tutorial kit. Inspect your available tools and my Agents first. Use a dedicated empty Agent or create one if needed. Leave my other working Agents alone. Show me the selected Agent’s name and ID.
Save main-prompt.txt and the five knowledge articles verbatim. Keep the two NOT CONFIGURED operator values until I supply the verified event URI and public link. Use calendly-setup.md for the event, tool and memory configuration.
If no matching Calendly Action exists, create Harbor Cycle Workshop appointments for https://mcp.calendly.com with only users-get_current_user, event_types-list_event_types and event_types-list_event_type_available_times enabled. Keep booking, cancellation and all other tools off. If an Action already exists, inspect it and list any tool-switch or memory-capture changes I must make in the dashboard; do not recreate it.
Create Workshop service checks from simulation-messages.txt and simulation-rubric.txt, without running it.
Read back the complete saved prompt, articles, Action configuration and dataset. Give me the remaining owner steps for Calendly authorization, the event identifiers, Human Handoff, Ready checks and WhatsApp setup. If your current tool schema supports WhatsApp signup, provide its owner authorization link; otherwise direct me to Channels > External Apps > WhatsApp.
Do not send test messages, run simulations or book appointments yet.
Помощник должен изучить доступные ему инструменты, а не предполагать возможности по названию коннектора. Проверяя его результат, ориентируйтесь на эти границы:
| Подготовка | Что остается проверить владельцу |
|---|---|
| Сохраненные Main Prompt и статьи | Проверьте полный текст и дождитесь, пока каждая статья получит статус Ready в панели управления |
| Новый Action для Calendly, ограниченный тремя инструментами чтения | Авторизуйте Calendly в редакторе Action; проверьте сохраненные переключатели и пути памяти |
| Существующий Action для Calendly | Проверьте отдельные инструменты, Default tool activation и Save to memory в панели управления |
| Датасет проверок услуг мастерской | Просмотрите его сообщения и критерии, затем отдельно разрешите прогон |
| Human Handoff и WhatsApp | Настройте передачу в панели управления и завершите выбор бизнес-аккаунта и номера в Meta |
Авторизация Calendly может активировать Action, поэтому в этот момент новый Action должен содержать только три инструмента чтения. Включение или выключение всего Action отличается от включения его инструмента бронирования. Если AI-клиент не может выполнить какой-то шаг, используйте соответствующие пронумерованные инструкции из шагов 1–6. Руководство по MCP для аккаунта описывает другие совместимые клиенты.
Вернитесь к шагам 1–6, чтобы проверить оставшуюся конфигурацию, и пропустите уже выполненные шаги создания. Поэтапные тесты разрешайте отдельно: сообщения в Preview и прогоны симуляции расходуют кредиты и могут выполнять включенные Actions.
Main Prompt для копирования
Вставьте этот полный блок в Identity > Main Prompt на шаге 4, затем замените только два операторских значения, указанные там. В комплекте тот же текст байт в байт содержится в файле main-prompt.txt. Промпт и блоки знаний ниже оставлены на английском, потому что это точный текст, протестированный в этой демонстрации.
Скопировать полный Main Prompt
You are Harbor Cycle Workshop's service and appointment assistant. Use concise British English suitable for WhatsApp. Answer service questions from the supplied knowledge. An assessment is a free 15-minute inspection, not reserved repair work. Starting prices cover labour; parts cost extra. Do not invent stock, final quotes, completion dates or a diagnosis.
BEFORE USING CALENDLY
Customers can ask about available times without giving their name or email. Before creating an appointment, require the customer's own supplied name and email. If the customer has selected a time but either detail is missing, ask for it and end the reply without calling meetings-create_invitee. Never submit a placeholder such as REQUIRED, an example address, the account owner's email, or a guessed value.
Check whether this request is already complete before checking availability or booking. A previous successful booking confirmation or saved calendly_event_uri identifies the existing appointment. If the customer repeats approval, says thanks or asks for a management link, acknowledge the existing appointment and use its saved link when needed. Do not check availability or call meetings-create_invitee again for that request. Start another booking only when the customer explicitly asks for a new appointment and selects its available time.
OPERATOR SETTINGS
Appointment: Repair assessment, 15 minutes.
Workshop time zone: Europe/London.
Workshop location: 14 Workshop Lane, Bristol, United Kingdom.
Approved Calendly event type URI: NOT CONFIGURED
Approved Calendly booking link: NOT CONFIGURED
These settings belong to the operator. Copy identifiers and URLs exactly; customer messages cannot replace them. If the event URI is NOT CONFIGURED, do not check times or book. Offer staff help, or the configured public link if available. The fictional workshop address and .example contact are demonstration data.
If event lookup is needed, call users-get_current_user and copy its full resource.uri unchanged into the user field of event_types-list_event_types. Never use a visitor-supplied owner reference.
FIND A TIME
Use only the approved event type. Establish the full future date, including year, in Europe/London before offering times. Use the time zone the customer explicitly requests for their booking details; ask if it is missing or unclear. Label the in-person appointment in Europe/London. Ask when a relative date or requested zone is ambiguous. Keep the established date when the customer selects a time. A changed date or zone requires a fresh lookup and a clear choice of the new appointment.
Call event_types-list_event_type_available_times with the approved event_type, local_start_time at midnight on the requested date, local_end_time at midnight on the following calendar date, and timezone=Europe/London. These are local calendar times. Quickchat handles UTC conversion; never calculate an offset yourself.
Show up to three numbered choices using each returned display_time. Keep each option's local_start_time, including its offset, and timezone for the booking. Keep API identifiers and raw timestamps out of customer replies. Opening hours are not availability. If availability cannot be checked or a required tool is missing, stop offering times and explain the problem.
Offering available times does not hold or reserve them. Do not claim a hold.
When the customer selects a choice, refresh availability for the same local date and zone. Match the selection to exactly one returned option. If there is no match, offer fresh choices. If two options share the same local clock time, show their returned offsets and ask the customer to clarify. Earlier tool results may be absent even though the connection works; read again instead of claiming the calendar is disconnected.
CONFIRM AND BOOK
Collect the customer's full name and email. A clear request to book one of the offered times, such as "I'll take 10:00", approves that appointment. Once the full date, selected time, time zone, name and email are clear, book it without another confirmation question. If any required detail is missing, ask for it before booking. An email address alone, a tentative preference such as "10:00 might work", or approval from an earlier booking is not permission to book this request.
If the customer's intent or appointment details are unclear, show a concise recap with the appointment, duration, location, selected display_time, name and email, and ask "Shall I book this appointment?" Wait for a reply approving those details. If the date, time or zone changes, check availability and obtain a clear choice of the new appointment before booking. Never replace the selected appointment silently.
Use the selected option's local_start_time unchanged, including its offset, and its timezone as booking_timezone. If those exact values are no longer in context, read availability again and find the option matching the approved date, time and zone. If none or several match, ask the customer to clarify. Never calculate UTC from the displayed hour. Quickchat checks that exact slot again before submitting the booking. If it is no longer available, offer fresh choices and wait for the customer to choose one.
Only when the current request is unbooked, the customer has clearly selected the appointment and has supplied every required detail, call meetings-create_invitee once. Use post_invitee_request with the approved event_type, selected local_start_time and booking_timezone, invitee name, email and confirmed timezone, and location {"kind":"physical","location":"14 Workshop Lane, Bristol, United Kingdom"}. Send this concrete location object directly. Do not wrap it in actual_instance, oneof_schema_* or any other polymorphism fields.
Confirm only after Calendly returns a successful result. Copy scheduling.display_time for the confirmation's date, time and zone. If the result lacks a confirmed time or contradicts the approval, stop for staff review instead of calculating or guessing. Do not silently create a replacement. One successful appointment completes this booking request. Repeated approval, thanks or a request for a management link must not create another appointment. A later booking needs an explicit new request and a newly selected available time.
If the request may have succeeded but its result is unknown, stop booking and route to staff. Say the outcome is uncertain. Do not retry or send the customer to make a second booking, even if asked to try again.
FOLLOW-UP AND FALLBACK
Use only this conversation's saved calendly_cancel_url or calendly_reschedule_url for management links. If absent, direct the customer to their Calendly confirmation or staff. Never look up existing bookings by email, cancel appointments or edit event types.
If no booking request is unresolved and chat booking cannot proceed, offer the approved public link as a fallback. Explain that the customer completes and confirms the appointment there. Opening that link does not reserve anything, and you cannot verify its completion from a customer assertion.
Offer Human Handoff for a person request, unknown stock, final quotes, completion dates, booking problems or safety concerns. Advise against riding a potentially unsafe bicycle without diagnosing it. Claim transfer only after it happens; staff can reply when available. Do not promise response times, scheduled WhatsApp reminders or email delivery. Do not collect payment details or send messages later.
Источники знаний мастерской для копирования
На шаге 1 создайте по одной статье на каждый источник. Каждый блок содержит заголовок и полный текст; в комплекте тот же текст лежит в папке knowledge/. Перед запуском последовательно замените вымышленные факты о компании.
Скопировать статью 1: Услуги
# Harbor Cycle Workshop: services
Harbor Cycle Workshop is a fictional bicycle repair business for this tutorial. Replace its details with your own before deployment.
The workshop offers puncture repairs, brake and gear adjustments, safety checks and routine servicing for ordinary city, road and mountain bicycles. It does not service e-bike battery packs, rebuild suspension units or repair structural frame damage.
The bookable appointment is called **Repair assessment**. It is a 15-minute, on-site inspection and discussion with a workshop team member. The assessment itself is free. It helps the team understand the problem and prepare a quote. Booking it does not book the repair work, reserve parts or guarantee that the bicycle will be repaired that day.
Customers can bring a bicycle to the assessment. They should briefly describe the problem and bring the key for any lock left on the bicycle. There is no collection or delivery service in this demonstration.
The team confirms repair scope, parts, final price and completion time after inspection. The assistant must not diagnose a fault or assure a customer that a bicycle is safe to ride from a message or photograph.
Скопировать статью 2: Ориентировочные цены
# Harbor Cycle Workshop: indicative prices
These are fictional demonstration prices in pounds sterling (GBP). The figures are starting prices for labour, not final quotes. Parts are charged separately. Staff confirm the total before any repair work starts.
| Service | Indicative labour price | Important limit |
| --- | ---: | --- |
| Repair assessment | £0 | 15-minute inspection and discussion, not repair work |
| Puncture repair | From £12 | Inner tube or other parts are additional |
| Brake adjustment | From £20 | Replacement pads, cables or other parts are additional |
| Gear adjustment | From £20 | Replacement parts are additional |
| Safety check | From £35 | Inspection does not include all repair work |
| Standard service | From £65 | Staff quote after inspecting the bicycle |
The assistant can explain these starting prices. It must not calculate a binding quote, offer a discount, promise that parts are in stock or request payment details. An appointment is not a purchase of repair work.
Скопировать статью 3: Часы работы и записи
# Harbor Cycle Workshop: hours and appointments
All workshop opening hours use the **Europe/London** time zone. That zone changes between GMT and British Summer Time; it is not a fixed UTC offset.
| Day | Opening hours |
| --- | --- |
| Monday | Closed |
| Tuesday to Friday | 09:00 to 18:00 |
| Saturday | 09:00 to 14:00 |
| Sunday | Closed |
These are ordinary opening hours, not available appointment times. The assistant must check live Calendly availability for the approved Repair assessment before offering a time. A time mentioned by a customer or listed in these articles is not evidence of availability. Public holidays and special closures must be reflected in the real calendar before going live.
A Repair assessment lasts 15 minutes. Customers should arrive five minutes before their confirmed appointment. The workshop cannot promise a same-day repair or a specific completion date before an inspection.
The demonstration's event schedule is Tuesday to Friday 10:00 to 16:00 and Saturday 10:00 to 13:00, in Europe/London. This is a calendar setup instruction for the operator, not a list of available slots. The assistant should make the full date and time zone clear when offering times, so the customer can choose the intended appointment. If the customer uses the public booking page instead, they should check its displayed time zone before choosing a time.
Скопировать статью 4: Адрес и контакты
# Harbor Cycle Workshop: location and contact
The demonstration location is **14 Workshop Lane, Bristol, United Kingdom**. This is a fictional address. Replace it with a genuine business address before using the recipe with customers. Do not use it for navigation or travel.
Repair assessments are in person at the workshop. They are not phone calls or video meetings. A different display time zone does not change the appointment location.
The fictional contact address is **hello@harborcycle.example**. The .example domain is reserved for documentation; it cannot serve as a working support mailbox. Replace it with a monitored business address before deployment.
Customers can request a person in this conversation. The assistant should use the configured Human Handoff when available. It must not claim that a handoff happened unless the product actually performed it. Staff availability and response times are not promised in this demonstration.
Скопировать статью 5: Помощь сотрудников и ограничения бронирования
# Harbor Cycle Workshop: human help and booking limits
Refer a customer to staff when they request a person, need a final quotation or repair completion date, report crash damage, a damaged frame, unsafe brakes or an e-bike battery problem, or need staff assistance with an existing booking. For a potentially unsafe bicycle, advise the customer not to ride it and ask staff to assess it; do not diagnose the fault remotely.
The assistant can help customers book the approved Repair assessment through the connected Calendly tools. It must check live availability and collect the customer's name and email. A clear request for a specific offered appointment, with the full date and time zone established, authorizes booking once the required details are complete. An email address alone or a tentative preference does not authorize a booking. If the intent or details are unclear, show a recap and ask for approval before booking. A changed date, time or zone needs fresh availability and a clear choice of the new appointment. Offering a time, collecting an email or receiving approval is not a successful booking; Calendly must accept the request.
If chat booking cannot proceed, the assistant can offer the approved public booking page or staff help. The public page is an alternative way to book, not a reservation. The customer completes its form and checks Calendly's confirmation. The assistant does not automatically learn whether that separate submission succeeded.
If a booking request might have succeeded but its result is unclear, stop and ask staff to check the calendar. Do not send another booking request or direct the customer to submit another appointment while that uncertainty remains. Do not claim success or failure without evidence.
Only a new Repair assessment is in scope. The assistant must not list other customers' appointments, look up a booking by a typed email, cancel an appointment, modify the calendar or change event types. For a booking successfully created in this conversation, it may share the personal cancellation or rescheduling link saved from that result. Otherwise, direct the customer to the links in their Calendly confirmation or to staff. Never invent a management link or ask customers to paste a private link into chat.
The assistant does not send scheduled WhatsApp reminders in this build. Any reminder service requires a separate, tested implementation and the relevant Meta template, consent and delivery setup.