Как создать анкету в Телеграмме

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

Чтобы упростить сбор информации от клиентов вашего бизнеса, достаточно разделить этот процесс на простые задачи и делегировать их помощникам. Однако у обычных сотрудников анкетирование занимает 15-20 минут на одного клиента.

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

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

Администратору бота понадобиться немного времени, чтобы составить анкету по разработанному плану для проведения качественного анкетирования (например, узнать все детали заказа, перед его выполнением). Без автоматизации этот процесс может затянуться во времени. При большом потоке заказов, это станет большой проблемой.

Бот Telegram — создаём анкету или тест для подписчиков

Бот не только упростит работу, но и сможет одновременно принимать множество анкет. Полностью исключает человеческие факторы со стороны администратора бота. Ведь администратор не может 24 часа в сутки отвечать на сообщения клиентов, быть активным и проявлять энтузиазм. Бот, общаясь настроенными вопросами, будет всегда вежлив, ничего не забудет и рад помочь 24/7.

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

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

Как это работает?

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

Условная логика ветвления поможет вам избежать именно этого! Ниже представлен пример такого ветвления. В данном случае условная логика ветвления начинается с двух вариантов ответов на первый вопрос.

1. У вас есть автомобиль? (вопрос) 1.1. Да, есть автомобиль (ответ) 1.1.1. Какого он цвета? (вопрос) 1.1.1.1. Синего (ответ) 1.1.1.2.

Зеленого (ответ) 1.1.1.3. Другого (ответ) 1.1.1.3.1. Укажите этот другой цвет (вопрос) 1.2. Нет автомобиля нет (ответ) 1.2.1. На чем вы передвигаетесь по городу? (вопрос) 1.2.1.1. На автобусе (ответ) 1.2.1.2. На трамвае (ответ) 1.2.1.3. Пешком (ответ) 1.2.1.4.

Иной способ (ответ)

Если простыми словами расписать то мы уточняем у пользователя есть ли у него автомобиль и предлагаем ему два варианта ответов это «Да, есть автомобиль» и «Нет, автомобиля нет». В случае если пользователь выбрал ответ с утверждение, что у него есть автомобиль, тогда мы уточняем у него какого он цвета, и предлагаем ему три возможных варианта ответа «Синего», «Зеленого» и «Другого», если был выбран ответ «Другого», то дополнительно просим указать текстовым сообщение какой же цвет у его автомобиля. Если же пользователь выбрал вариант ответа где у него нет автомобиля, то мы спрашиваем у него на чем он передвигается. В глубину анкета может быть хоть сколько угодно уровней, ограничений нет. * * *

Уточнение при создании анкеты

Вложенные в шаг сценарии возможны, если у шага есть 2 и более кнопки

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

Шаги можно между собой по вертикали менять местами.

Еще по теме:  Отправится ли запланированное сообщение без интернета в Телеграмме

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

1. Как вас зовут? (один шаг) — ждем текстового сообщения от пользователя 2. У вас есть автомобиль? (один шаг) — предлагаем нажать кнопки 2.1 Да (здесь есть вложенный сценарий — группа шагов) 2.1.1 Марка — модель (ждем текст) 2.1.2 Цвет (ждем текст) 2.1.3 VIN (ждем текст) 2.1.4 Тип кузова (ждем текст) 2.1.5 Любите свою машину (ждем нажатие кнопки) 2.1.5.1 Да (здесь можно продолжить ветвление) 2.1.5.2 Нет (здесь можно продолжить ветвление) — пользователя переадресует к пункту 3 2.2 Нет (здесь привязки сценария нет, поэтому переход после нажатия к пункту 3) 3. Где с вами можно встретиться? (один шаг) — ждем от пользователя геолокацию или текст — Анкета закончена

Пользователь в процессе заполнения может двигаться по анкете как вперед, так и возвращаться для изменения своих ответов, при этом он может пойти по другому сценарию.

Для каждой анкеты у вас будет ссылка для перехода в бот. Вы просто ее скидываете клиенту и он при переходе по ней попадает в бот на необходимую анкету, отвечает на вопросы — вы получаете нужную информацию.

Установка

Много было вопросов о том как оформить панель управления ботом, в этом примере вы можете посмотреть как один из готовых ее вариантов. Под данный бот я написал простенькую систему по типу MVC. Бот выкладываю в свободный доступ для ознакомления, установка его простая и все риски его использования вы берете на себя.

Источник: imakebots.ru

Создание опроса в Телеграм

Создание опроса в Телеграм

Процесс создания опроса на компьютере происходит быстрее, чем на телефоне.

Как создать опрос Telegram на компьютере через настольную версию:

Создание опроса в Телеграм

  1. Нажмите на три вертикальные точки в правом верхнем углу экрана.
  2. Нажмите «Создать опрос».
  3. Заполните необходимые поля и введите несколько вариантов ответа.

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

С помощью бота

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

Создание опроса в Телеграм

Опрос встроенными функциями Телеграм

Опросы в Telegram быстро завоевали популярность — администраторы групп и каналов стали активно использовать их в своей работе, внедрять в свои контент-планы. В связи с этим руководство коммуникатора решило запустить встроенные инструменты голосования.

Создать опрос довольно просто — все манипуляции можно выполнять как с телефона, так и в настольной версии коммуникатора:

  • Нажмите на кнопку меню (3 вертикальные точки), расположенную в правом верхнем углу экрана (или значок «скрепки» в мобильной версии). Создание опроса в Телеграм
  • Редактирование анкеты — введите вопрос и варианты ответов. Создание опроса в Телеграм
  • В появившемся всплывающем окне выберите Создать анкету.
  • Откройте нужный канал или диалог.

Создайте опрос с помощью кнопки «опрос» в Telegram. Если вы все сделали правильно, опрос будет опубликован.

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

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

Советы по проведению опросов

С технической точки зрения создание опросов — это простая процедура. Сложность заключается в самих вопросах — они должны быть простыми для понимания и правильно интерпретированы целевой аудиторией.

  • Выписывая варианты ответов, подумайте, все ли варианты вы перечислили.
  • По возможности задавайте полузакрытые вопросы — такие, в которых есть графа «Другое». Этот вариант будет выбран, если ни один из доступных вариантов не подходит.
  • Избегайте сложных формулировок, используйте язык вашей ЦА.

Как провести голосование в Телеграм с помощью опросов

Создать опрос в Telegram очень просто. Наибольшие трудности возникают при составлении вопросов. Они должны быть понятны получателям и правильно сформулированы.

Еще по теме:  Как добавить видео в кружочке в Телеграмме из галереи

Избегайте сложных предложений и используйте язык целевой группы. При разработке вариантов ответов тщательно подумайте, все ли варианты перечислены. Стоит создавать полузакрытые вопросы. В таких вопросах есть вариант «Другое».

Опросы и анкетирование могут быть самыми разнообразными. Темы могут быть следующими:

  • каков оптимальный уровень зарплаты для мужчины;
  • в каком магазине вам больше всего нравится одеваться и т.д.
  • что будет с рублем в следующем году;
  • нравится ли вам Москва;
  • Какую музыку вы любите;

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

При создании опроса могут возникнуть некоторые технические проблемы. Например, опрос не отправляется или бот не слушает команды. В этом случае вам следует:

  1. Закройте приложение и откройте его снова, при этом необходимо выключить телефон.
  2. Если это не помогает, стоит обновить версию приложения.

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

Источник: bloger-zoom.ru

Ещё один telegram-бот или реализация бота для знакомств

В момент очередного схождения-расхождения с моей бывшей(очередной) невестой, она обмолвилась, что от скуки искала себе парней на свидания через telegram-бота, которому можно было отправить фото и геолокацию и тебе подбирало людей, которые находятся поблизости. Я пообещал, что напишу что-то похожее, если мы опять разбежимся. Яра — это для тебя.
Я благополучно забыл про это, но в момент очередного безделья, я скролил сайт с кексом на зелёном фоне, где наткнулся на раздел, где люди просто выкладывали пост с фото, коротко писали о себе и указывали контакты.

Так и появилась идея написать своего бота, который бы помог людям найти друзей или кого-либо ещё.

Задача

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

Подготовка к работе

Как создавать бота через BotFather не знает только тот, кому это не интересно, так что наполнять статью лишней информацией я не стану.

Хранение «анкет»

Первоначально я создал проект ClassLibrary, который и собрался использовать для работы с данными.

Сначала нужно решить, как хранить данные пользователей. Для этого нам нужно «описать» юзера.

public class user < [Key] public string tg_id < get; set; >//Уникальный айди пользователя public string name < get; set; >//Отображаемое имя public string age < get; set; >// Возраст public string country < get; set; >// Страна public string city < get; set; >//Город public string gender < get; set; >//Пол public string photo < get; set; >//Ссылка на фото public string tg_username < get; set; >//Телеграмовский ник-нейм, по которому можно будет перейти к пользователю в личную переписку public string tg_chat_id < get; set; >//Айди чата, куда отправлять ответ >

Для хранения была выбрана БД PostgreSQL, которая была развернута на удаленном сервере.
Предварительно, устанавливаем EntityFramework, через NuGet. Это нереально упрощает жизнь в работе с БД.

Для работы требуется пакет:

А для миграций требуется пакет:

Чтобы не заниматься рутинным созданием таблицы, просто создаем саму модель данных(наш класс выше) и задаем подключение к БД.

public DbSet user < get; set; >protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

В дальнейшем выполняем миграцию.

Для этого в Консоли диспетчера пакетов выполняем команды:
enable-migrations
Включаем механизм миграций
Add-migration *Имя миграции*
Создаем миграцию
update-database
Обновляем БД

Теперь у нас в БД появятся две таблицы: История миграций и сама таблица user.

После решения вопроса хранения данных и коннекта к БД, можно переходить к написанию самого бота-обработчика.

Бот-обработчик

Сам telegram предлагает два варианта получения обновлений: webhook или постоянно дергать сервера, проверяя обновления. Webhook имеет большое количество сложностей, поэтому проще просто проверять обновления.

Получение обновлений их обработка

Для того, чтобы не создавать велосипед(иногда бывает полезно), проще использовать готовое решение: Telegram.Bot by MrRoundRobin — отличная, очень удобная библиотека для работы с Telegram.

Создаем в решение новый проект ConsoleApp, куда и устанавливаем этот пакет.

Таким образом, мы начали проверку на обновления и поставили свои обработчики ошибок.
BotOnMessageReceived — обработчик получения «обычных» сообщений
BotOnCallbackQueryReceived — обработчик нажатия кнопок, которые появляются под сообщением.

Еще по теме:  Как создать конференцию в Телеграмме с телефона на несколько человек

Дело за малым, возможность оставить анкету и возможность пролистать остальные. Так что нужно отправить пользователю две кнопки: Регистрация и Дальше. Кнопка представляет объект InlineKeyboardButton , а все кнопки нужно упаковать в

IEnumerable>

При открытии бота, ему сразу же отправляется сообщение с текстом «/start», так что нам нужно в BotOnMessageReceived обработать это сообщение и отправить в ответ наши кнопки.

Регистрация

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

RegForm.cs

public class RegForm < public string tg_id < get; set; >public string name < get; set; >public string age < get; set; >public string country < get; set; >public string city < get; set; >public string gender < get; set; >public string photo < get; set; >public string tg_username < get; set; >public string tg_chat_id < get; set; >public int stage; public RegForm(string id, string chat_id, string username) < stage = 1; tg_id = id; tg_username = username; >public (string, int) StageText(string id) < if (stage == 1) return («Введите отображаемое имя:», stage); if (stage == 2) return («Введите возраст:», stage); if (stage == 3) return («Введите Вашу страну:», stage); if (stage == 4) return («Введите Ваш город:», stage); if (stage == 5) return («Введите Ваш пол:», stage); else return («Отправьте боту Ваше фото:», stage); >public bool SetParam(string param) < if (stage == 1) name = param; if (stage == 2) age = param; if (stage == 3) country = param; if (stage == 4) city = param; if (stage == 5) gender = param; if (stage == 6) photo = param; stage++; return true; >>

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

А самой памятью выступает static Dictionary registrations = new Dictionary(); , в который мы добавляем новый KeyValuePair, при нажатии на кнопку.

Чтобы бот знал, как ему реагировать на нажатие, нужно в BotOnCallbackQueryReceived добавить

var message = e.CallbackQuery; if (message.Data == «Registration») < RegForm form = new RegForm(message.From.Id.ToString(), message.Message.Chat.Id.ToString(), message.From.Username);//Создаем новую форму регистрации registrations.Add(message.From.Id.ToString(), form);//Добавляем форму в «память», где ключом будет telegram_id пользователя. var t = form.StageText(form.tg_id); //Получаем текст, который отправим пользователю, в зависимости от стадии регистрации. Bot.SendTextMessageAsync(message.Message.Chat.Id, t.Item1);//отправляем сообщение пользователю. return; >

И таким же образом, обрабатывая полученные данные, можно заполнить форму и сохранить данные.
using (Context db = new Context()) < IMapper mapper = new MapperConfiguration(cfg =>cfg.CreateMap()).CreateMapper(); if (db.user.Where(x => x.tg_id == message.From.Id.ToString()).Count() != 0) db.user.Update(mapper.Map(u)); else < db.user.Add(mapper.Map(u)); > db.SaveChanges(); >

Если пользователь уже имеет анкету, то просто обновим данные.

Сохранение фото пользователя

if (message.Type == MessageType.Photo) < string file = Bot.GetFileAsync(message.Photo[message.Photo.Count() — 1].FileId).Result.FilePath; string filepath = message.From.Id + «.» + file.Split(‘.’).Last(); using (FileStream fileStream = new FileStream(«C:\images\» + filepath, FileMode.OpenOrCreate, FileAccess.ReadWrite)) < var st = Bot.DownloadFileAsync(file).Result; st.Position = 0; st.CopyTo(fileStream); >u.SetParam(«C:\images\» + filepath); >

Показ остальных анкет

Для этого просто нужно брать данные из БД и отправлять пользователю.

Для этого пишем простенький метод, который и будет брать данные из БД и возвращать их в удобном формате:

public static User GetRandom() < Stopwatch s = new Stopwatch(); s.Start(); User u; using (Context db = new Context()) < Random r = new Random(); int count = db.user.Count(); if (count >1) count = count — 1; List users = mapper.Map, List>(db.user.ToList()); u = users.ElementAt(r.Next(0, count)); > Console.WriteLine(«[» + DateTime.Now + «] For finding » + s.ElapsedMilliseconds + » ms»); s = null; return u; >

Обработчик нажатия кнопки Next:

if (message.Data == «Next») < if (searchForms.Count != 0) < searchForms.Remove(message.From.Id.ToString()); >IMapper mapper = new MapperConfiguration(cfg => cfg.CreateMap()).CreateMapper(); User user = BaseWorker.GetRandom(); SendAnket(user, message.Message.Chat.Id.ToString());//Метод, который создает форматирование в сообщении. return; >

Заключение

При всей своей простоте, бот понравился публике.

Меньше чем за сутки, 134 юзера оставили свои анкеты, есть положительные отклики. И без особой рекламы — лишь один пост на сайте, который особо плюсов не набрал.

Боты — это давно забытое старое, которое обрело новую жизнь. Они помогают реально автоматизировать многие процессы и даже искать себе пару в интернете. В обход забитых монетизацией сайтов знакомств.

Спасибо, что дочитали до конца.

Good luck, have fun, dont eat yellow snow.

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...