Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

Всем привет, меня зовут Сергей, я разработчик чат-ботов.

Сегодня будем делать чат-бота для записи на услуги. Такой бот подойдет для многих ниш (парикмахерская, салон красоты, стоматология, репетиторы, аренда авто, массажисты, косметологи )

1. Создаем бота через @BotFather

2. Зайдем во вкладку Конструктор и настроим первые команды

Зажимаем Shift и выделяем все команды, затем жмем на корзину слева и применяем изменения.

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)
На кнопку которая подсвечивается
На кнопку которая подсвечивается

У нас осталась одна команда /start - стандартная команда, которую нельзя удалить, давайте ее и настроим, переходим в нее

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

Давайте настроим стартовое сообщение с Изображением. Для этого выберем блок "Изображение".

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

Будем приветствовать нашего клиента по имени, для этого используем переменную {{FIRST_NAME_TEXT}}. И само изображение я загрузил через ID.

Это можно сделать через бота, перейдя в него и написав ему команду /cp, выбрать Загрузить файл и получить ID.

Давайте настроим кнопки в соответствии описания, у нас их будет 2

Создаем Кнопки "Записаться на стрижку" и "Оставить отзыв"
Создаем Кнопки "Записаться на стрижку" и "Оставить отзыв"

Переход к команде или условию: напишем соответствующие команды, они создадутся у нас автоматически.

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

Если все получилось, у вас будет так 👆

Выберем команду "Выбор стрижки" и создадим выбор вариантов. Для этого добавим блок "Слайдер" и отобразим их. В слайдере выберем блок "Изображение", возьмем несколько картинок из интернета

Пишем описание для каждой стрижки и добавляем кнопку

Я добавил 3 вида:

  • Модельная стрижка - 700р
  • Кроп стрижка - 900р
  • Борода + стрижка - 1200р

Отлично, теперь сделаем запись к нам, из 4-х вопросов

1. Спросим клиента, какую услугу он выбрал?

2. Имя клиента

3. Номер телефона

4. Выбор мастера по должностям (Стажер, Барбер, Старший Барбер, Шеф)

Для этого, в созданной команде выберем блок "Формы ввода" и заполним его

Выбираем вопрос "Текст" заполняем его
Выбираем вопрос "Текст" заполняем его
Важно, в тексте задать правильно вопрос, чтобы клиент понял, что он должен сделать какое-то действие, написать или выбрать кнопку, старайтесь в боте всегда призывать к действию, так ваш бот будет понятнее для всех.
Вот такие настройки у меня
Вот такие настройки у меня

Название для статистики: пишите любое, чтобы вы потом смогли понять о чем речь

Переменная: рекомендую делать короткие и соответствующие переменные, т.е если вы продаете услугу то переменную пишем на английском service

Тип ввода: оставляем Выбор варианта🔽

Добавляем кнопку и пишем все наши услуги

Создаем в этой же команде еще 1 форму ввода, и уже по известному нам сценарию Вопрос - Текст

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

Как видите я поменял Тип ввода на "Отправка сообщения", это означает, что клиент должен передать информацию тем чему соответствует Маска ввода: Текст

Бот продолжит опрос, после того как клиент введет свое Имя

Создаем Форму ввода №3

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

Как видите я даже уточнил какой формат ввода в вопросе.

Кто-то скажет, что в Маске ввода ведь есть "Телефон", но я скажу, что лучше использовать текст, потому что если человек будет вводить телефон не соответствующий маске, то ему будет выдаваться ошибка.

Важно получить заявку от клиента и даже если он не правильно введет номер, то без проблем можем связаться с ним в мессенджере и сообщить ему об этом.

И наконец...

Создаем 4-ую Форму Ввода

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

Сразу же воспользуемся нашей переменной, и напишем текст, Выберите мастера на вашу услугу: {{service}}

И в зависимости от того, какую услугу выбрал клиент, он получит ее значение. Некое напоминание клиенту о том, что он выбрал.

В форме ввода настроим реакцию на его заполненные данные:

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

Жмем на кнопку "Добавить реакцию на ответ", в ней выбираем блок "Текст"

Вот такой текст у нас получился, {{master}}y - это чтобы отображалось корректно, потому что у нас переменная master = Барбер, с буквой "у", получится Барберу
Вот такой текст у нас получился, {{master}}y - это чтобы отображалось корректно, потому что у нас переменная master = Барбер, с буквой "у", получится Барберу

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

Вот такая форма ввода у нас получилась, тут тоже можете настроить реакцию на ответ, я здесь это делать не буду
Вот такая форма ввода у нас получилась, тут тоже можете настроить реакцию на ответ, я здесь это делать не буду

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

Как занести данные в Гугл Таблицу (Google Sheets)

Создаем таблицу, обязательно заполняем данные для столбцов

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)
Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

Создали 1 таблицу с 2-мя листами для записи.

Таблица готова для записи, теперь идем в Настройки в нашем боте

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

Как мы видим, мы можем авторизоваться через гугл и сразу же получить доступ, это мы и сделаем.

Так выглядит успешное подключение
Так выглядит успешное подключение

Возвращаемся во вкладку Конструктор, перед этим не забудьте обновить страницу. Давайте создадим команду еще одну и назовем ее "Передать данные в таблицу"

Обычная команда - "Передать данные в таблицу"
Обычная команда - "Передать данные в таблицу"
В этой команде добавляем действие - Создать строку
В этой команде добавляем действие - Создать строку

Заполняем их

Дата: {{CURRENT_DATE}} - переменная которая отвечает за текущую дату и время

Имя клиента: {{name}} - наша переменная, которую клиент сам вводит

Telegram клиента: {{username_text}} - переменная юзернейма

Номер телефона: {{phone}} - введенный телефон клиентом

Услуга: {{service}} - выбранная услуга

Мастер: {{master}} - выбранный мастер

Теперь соединим команды "Запись на стрижку" и "Передать данные в таблицу"

В команде - Действия - Отправить команду или условие - Впишем нашу команду
В команде - Действия - Отправить команду или условие - Впишем нашу команду

Не забываем применять изменения!

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

Мы настроили бот, идем тестировать!

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

Как видим, бот работает корректно, проверим запись в таблице

Делаем бота для записи на услуги с выгрузкой записи в Гугл Таблицы (Google Sheets)

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

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

55
4 комментария

Очень полезная статья🔥

Ответить

Спасибо

Ответить

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

Ответить

Спасибо вам за ваш комментарий, вынос записи в гугл таблицу в отдельную команду - стоит делать, нет необходимости записывать его в той же команде. Уже по опыту вам говорю, что удобнее выносить в отдельную команду.

Так же, здесь представлена лишь возможность заносить данные в таблицу, а не готовый кейс, который можно использовать.

Ответить