Адаптация шаблона интеграции Chatforma&YClients
с помощью n8n.
Как создать запись в YClients из заполнения формы в боте, используя n8n.
Обзор сценария, как из заполнения формы создать запись в YClients через http запрос в сервисе n8n.
Шаг 1: Настройте форму в боте, в которой запрашивается телефон, e-mail и дата записи. Есть кнопка с возможностью вернуться в начало бота.
Шаг 2: Добавьте сообщение для подтверждения, что запись создана.
Шаг 3: Создайте список, в который попадают все, кто заполняет форму. Если для них запись создана, то будет приходить сообщение с подтверждением и они будут удаляться из этого списка. Если нет, то они останутся в этом списке. Для таких клиентов настраивается авторассылка через три минуты, чтобы они перешли по кнопке и заполнили форму ещё раз. Об этом подробнее расскажем дальше.
Download file
Шаг 4: Скачайте шаблон сценария. Пропишите вебхук в уведомления Chatforma на эту форму (шаги 4 - 6 в этой инструкции). В узел вебхука приходят все ответы.
Шаг 5: Следующий узел - http запрос. 5.1 В окне Authentication нужно выбрать Header Auth. 5.2 В окне Credential for Header Auth выберите -Create New -.
Шаг 6: В этом окне нужно прописать ключ для интеграции, который получают по запросу через службу поддержки в YClients по этому email адресу: support@yclients.com. На него нужно отправить письмо, объяснить, что хотите интегрировать YClients, например, с чат-ботом. Укажите контакты разработчика, который этим занимается, его e-mail и фамилию, имя. Саппорт в ответ присылает этот ключ, партнерский токен. 6.1 В поле Name - Authorization , 6.2 в поле Value - Bear partner_token. Всё, как в документации API YClients в разделе Авторизация. Вместо partner_token нужно прописать полученный ключ и нажать Save. Добавляется привязка аккаунта на n8n.
Шаг 7.1: Используйте метод POST, 7.2 в URL - book_record, 7.3 цифры в конце адреса - это ID компании, который берется из адресной строки, когда открыт YClients. сохранить.
Шаг 8: В окне Body Parameters указывается 8.1 телефон, имя, e-mail. 8.2 В appointments id - единица. Один запрос позволяет создать несколько записей. Поэтому надо указывать appointments id . Т.к. мы создаем одну запись, то appointments id - 1. 8.3 Services id - наименования услуги, его нужно смотреть в редактировании услуг YClients. 8.4 Staff_id - id сотрудника, который берётся из адресной строки YClients. 8.5 Datetime- дата, которую выбрал клиент, возьмите из ответа в вебхуке.
Шаг 9: В окне Headers надо снова перечислить партнёрский токен, логин и пароль от акканута YClients.
Шаг 10: В окне Query Parameters company_id - id компании.
При запуске узла шаблон показывает ошибку: Услуга недоступна для записи. Вам просто нужно указать корректный id услуги. Если запись не создана, например из-за того, что время занято или этот сотрудник в этот день не работает, то сценарий останавливается для этого заполнения формы, но продолжает работать для следующих.
Шаг 11: Если запись создана, то сценарий пройдёт дальше и узел Chatforma отправит сообщение в тот бот, где эта форма создана. В этом узле указан бот id, id пользователя из вебхука и id сообщения.
11.1: ID бота 11.2 и ID сообщения берётся из адресной строки браузера.
Шаг 12: В окне Credential нужно нажать -Create New- и привязать аккаунт Chatforma с помощью ключа интеграции, который генерируются в конструкторе по ссылке: https://pro.chatforma.com/profile/integration.
Шаг 13: Действие - Отправить. Объект - Сообщение пользователю.
Шаг 14: Далее, сценарий переходит к следующему узлу, который удаляет пользователя из списка. Действие - Удалить, бот id из строки браузера, ID списка тоже из строки браузера, id пользователя из вебхука. Это нужно для того, чтобы пользователю не приходила авторассылка, что запись не создана.
Сценарий настроен.

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

Шаг 15: Модуль, который запрашивает свободные даты у выбранного сотрудника. Пример, как это работает: выбрана привязка аккаунта YClients, метод Get, URL запрос указан - book_dates/idкомпании. Логин и пароль аккаунта, Query Parameters - company_id запроса компании и staff_id - id сотрудника из адресной строки, там где регистрируются сотрудники.
Шаг 16: При запуске модуля получите доступные даты для бронирования у этого сотрудника. С этими данными можно работать на промежуточных этапах сценария интеграции и запрашивать свободные даты для бронирования.
Шаг 17: И модуль, который запрашивает время сеанса, доступное для бронирования. В окне URL- book_time/idкомпании/idсотрудника/дата, которую можно менять. В Headers- регистрационные - данные логин, пароль. В Query Parameters - company_id, id сотрудника, дата.
Шаг 18: Запустите модуль, вам придут свободные часы указанного сотрудника, список времени доступных сеансов для бронирования. Эти данные можно агрегировать и показывать клиенту по запросу в боте или до попытки создания записи проверить, доступно ли выбранное время для бронирования или нет. Например после того, как в вебхуке получите желаемую дату, проверьте: если доступна, создаём запись. Если нет, сообщите клиенту, что на выбранное время запись не доступна и пришлите свободные для записи даты или часы.