Преобразование дат
Бот преобразует фразы сегодня, завтра и так далее, к значению дата (сегодня) + N дней.

Остались вопросы?
Напишите нам в техническую поддержку
Бот преобразует фразы сегодня, завтра и так далее, к значению дата (сегодня) + N дней.

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

(1) — переключатель сохранения сообщения. По умолчанию опция выключена.
Чтобы активировать сообщение, нажмите на переключатель. Цвет переключателя изменится на синий, а в правом верхнем углу блока загорится зеленая точка.
Это означает, что как только все условия выполняются, происходит отправка сообщения.
(2) в нашем примере — это количество пользователей, которым отправится сообщение (текущее значение подписчиков с заданными условиями рассылки по реакции).
(3) — реакция на сообщение. В списке есть 2 опции:
Нам нужно, чтобы подписчик получил информационное сообщение о нашей компании через 3 дня после начала диалога с ботом.
Для этого устанавливаем реакцию на сообщение «после первого взаимодействия», время отправки ставим 3 дня.
Задаем настройки в фильтре пользователей, название, текст сообщения. Переключатель (1) переводим в положение включить и нажимаем кнопку «Сохранить».
Нам нужно, чтобы подписчик получил сообщение об оценке качества ответа на его вопрос, после завершения диалога с ботом через 10 минут. Для этого устанавливаем реакцию на сообщение «после последнего взаимодействия» и время отправки ставим 10 минут. Задаем настройки в фильтре пользователей, название, текст сообщения. Переключатель (1) в положение включить и нажимаем кнопку «Сохранить».
Помним о том, что одно сообщение-реакция отправляется только один раз за весь диалог. Если нужно периодически давать обратную связь, то на каждое такое сообщение-реакцию нужно настраивать новую рассылку.
(4) — время отправки сообщения (задается в минутах, часах, днях).
(5) — кнопка «Сохранить». Сохраняет отправку сообщения по реакции.
Напишите нам в техническую поддержку
Чтобы попасть в настройки блока сообщений кликаем на кнопку «Редактировать» в созданной группе сообщений.
Блок сообщений — это самый главный блок, без которого нельзя построить самого простого бота. Кликаем на кнопку «Добавить блок сообщений» и создаем блок сообщений.
Настройки блока сообщений.

Создали блок сообщений (1), название по умолчанию «Сообщение». Изменить имя по умолчанию — вводим название (2), которое нужно.
Стартовое сообщение — начало группы сообщений. Если поставите галочку, то группа начнет работать именно с этого блока сообщений. На скриншоте вверху, виден блок «Приветствие», с точкой в верхнем правом углу — обозначает стартовое сообщение.
Подождать ответа — опция сохранения ответа от пользователя. При включенной галочке ответ сохраняется в переменную, которая прописывается только латинскими буквами. При необходимости можно к латинским буквам добавлять цифры. Переменные назначаются по вашему желанию.
Пример
tel — переменная для сохранения телефона.
ww2 — произвольная переменная.
Если не ставить галочку «Подождать ответа», то будет переход к другому сообщению, которое указано в ссылке по умолчанию. Когда не указана ссылка по умолчанию, то бот не будет далее реагировать на запросы.
Включить markdown — опция для подсвечивания текста в Telegram. При создании текста вставьте символы, которые указаны ниже в примере
Пример
*bold text* — жирный шрифт;
_italic text_ — курсивный шрифт;
[inline URL](http://www.example.com/) — активная ссылка. В [квадратных скобках] указывается текст ссылки.
В (круглых скобках) указывается ссылка на в формате http.
`inline fixed-width code` — моноширный шрифт.
Примеры отображения форматирования текста на картинке

Время ввода — выставление времени отклика блока сообщений. Время можно выставить от 0 до 10-ти секунд. Время отсчитывается от предыдущего блока сообщений.
Пример
Есть блок 1 и блок 2, без ссылки по умолчанию. У второго блока время ввода стоит в 5 секунд. После того, как блок 1 сработает, пройдет 5 секунд и появится блок 2.
Текст сообщения (3) — текст любой длины (смайлики поддерживаются, вставляются прямо в текст).
Вставить имя — вставляется шаблон имени в формате first_name — имя, last_name — фамилия. Если нужно персонализировать сообщение, то используйте шаблон имени.
Шаблоны имен для разных социальных сетей, мессенджеров.
Вконтакте:
first_name – имя;
last_name – фамилия.
Telegram:
first_name – имя;
last_name — фамилия.
Telegram.start — содержит параметр переданный вместе с последней (для определенного пользователя) командой /start боту.
Viber:
name – имя.
Facebook Messenger:
first_name – имя.
last_name – фамилия.
Одноклассники:
name – имя.
Skype:
name – имя.
Пример
В тексте сообщения пишем: «Привет, first_name! Как дела?»
У пользователя отображается в чате: «Привет, Сергей! Как дела?»
Вставить Context переменную — вставляется шаблон переменной, в формате Context.имя переменной, где имя переменной — сохраненные ранее данные.
Пример
У пользователя запрашиваем адрес и т.п. контактные данные.
Для адреса назначаем переменную address, для телефона phone.
В конце опроса, требуем подтвердить введенные ранее данные. Наше сообщение выглядит в сервисе так:
first_name, подтвердите введенные данные:
Context.address
Context.phoneВсе верно?
Для этого и нужны переменные. Все что нужно подставить данные, которые вводились человеком ранее и к примеру, спросить подтверждение.
Ссылка по умолчанию — переход к другому блоку в любом месте чат-бота.
Пример
Есть блок 1 и блок 2. Если в блоке 1, не стоит галочка «Подождать ответа» и стоит ссылка по умолчанию на блок 2, то произойдет переход из блока 1 в блок 2 с учетом только времени ввода.
(4) Добавление контента и переходов — возможность прикрепления контента (видео, аудио, изображений) к сообщению или их отправка отдельно.
Технические ограничения для контента:
Видео — не более 30 Мб;
Аудио — не более 30 Мб;
Изображение — не более 10 Мб.
Переходы, включают в себя 2 кнопки — клавиатура и кнопки.
Клавиатура — быстрые ответы от пользователя. Использовать можно в нескольких вариациях.

Вариант 1: назначаем ответы, через условный блок переводим далее в нужный блок. Пользователь делает выбор и переходит дальше.
Вариант 2: назначаем ответы и вводим теги. Пользователь нажимает на кнопку быстрого ответа и происходит срабатывание тега, который переводит в нужный нам блок.
Кнопки — переход в другие блоки внутри бота или по URL ссылке. Выбираем, как будет работать переход, назначаем блок или вводим ссылку.

Текст кнопки (1). Для Telegram не более 20 символа вместе с пробелами. (2) — ссылка на сообщение.
Поиск по нужным блокам работает через выпадающий список или вводом имени блока в поле ввода.

(1) — текст кнопки (для Telegram ограничение не более 21 символа, включая пробелы)
(2) — URL ссылка.
Пример
Пользователю чата отправляют статью или ссылку скачать файл. Кнопка работает, как переход по ссылке.
Напишите нам в техническую поддержку
Отправляем сообщение по расписанию при условии срабатывания фильтра пользователей, с настройками даты, времени, повторности отправки.

В подчеркнутой красным цветом строке задаются настройки:
Пример
Нужно отправить сообщение 05.02.2020 в 15:00 о начале акции.
Для этого устанавливаем дату 05.02.2020 и время 15:00.
Задаем настройки в фильтре пользователей, название, текст сообщения. Переключатель (1) в положение включить и нажимаем кнопку «Сохранить».
Сообщение уйдет точно по расписанию.
Напишите нам в техническую поддержку
Работа условного блока — ветвление логики бота.
Пример
В процессе диалога нужно перевести подписчика на оператора. Как можно это сделать?
Чтобы создать условие, нужно добавить условный блок (1) в группе сообщений.

В блоке сообщений «Приветствие» сохраняем ответы в переменную и переводим в условный блок. Получаем такую схему, в условном блоке (1) срабатывает условие и далее переводит подписчика в блок сообщений (2) или (3) в зависимости от того, какой выбор он сделал.

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

В предыдущем блоке «Приветствие» сохранили ответ в переменную privet.
Прописываем условие с переходом к блоку сообщений «Имя». Выглядит оно так:
Context.privet == "Попасть бесплатно"Где, Context.privet — переменная, в которую сохраняем ответ от подписчика. Далее ставим пробел, двойное равно, пробел и в кавычках указываем ответ, который указывали в блоке «Приветствие» Таким образом получаем выражение, по которому выполняется условие, и подписчик переходит в блок «Имя». Точно такой же порядок действий и с другим условием.
Выше рассмотрели легкий вариант. А что если нам нужно сделать двойное условие с выбором опции И / ИЛИ? Для этой задачи подойдет обычный режим условного блока
Пример. Вариант с «ИЛИ»
При условии такого выражения бот понимает, что переменные param или param2 равны соответствующим значениям. И переход пользователя бота будет в другой блок при соблюдении одного из условий.
Context.param == "Попасть бесплатно" || Context.param2 == "Хочу торт"Пример. Вариант с «И»
При условии такого выражения бот понимает, что одна и вторая переменная param или param2 равна соответствующему значению. И переход пользователя бота будет в другой блок при соблюдении двух условий.
Context.param == "Попасть бесплатно" && Context.param2 == "Хочу торт"
Рассмотрим на примере Facebook Messenger. Подписчик начинает диалог с бизнес страницей и ему предлагается выбор в виде ответов «Попасть бесплатно» и «Торт в подарок».
На видео выбираем «Попасть бесплатно» и переходим к блоку сообщений «Имя».
Напишите нам в техническую поддержку
API — (программный интерфейс приложения, интерфейс прикладного программирования) (англ. application programming interface) — описание способов (набор классов, процедур, функций, структур или констант), которыми одна компьютерная программа может взаимодействовать с другой программой.
Блоку API задается имя, опции (стартовое сообщение, дождаться ответа удаленного сервиса). Настройки заголовков, параметров (переменных, постоянных).
Пример
Решаем задачу по отображению погоды в чате. Для этого нужно сделать запрос к сервису погоды и вывести данные в чат.
Самый простой для доступа к API — сервис погоды openweathermap.org.
Регистрируемся и получаем ключ приложения (APPID) по ссылке. Обычно ключ дублируется в email письме подтверждения.
Тестируем наш запрос в браузерной строке с городом Москва. Он выглядит так: http://api.openweathermap.org/data/2.5/weather?q=Москва&APPID=c12618e22638e74315c4cb17c85896d7
Ответ от сервера получаем такой

Для удобства копируем код запроса в json валидатор, например https://jsonlint.com/ и смотрим структуру запроса. Она выглядит так:

Температура находится в строке 14, параметр main.temp и равна 273,15 (Температура по Фаренгейту).
С запросами к сервису погоды разобрались. Переходим к настройке отправки запроса от бота и вывод в чат.
Создаем группу сообщений, добавляем 3 блока сообщений, 1 блок API, 1 условный блок. Цепочка выглядит так:

Переходим в блок сообщения под именем «Название города» и смотрим, что внутри.

Этот блок является стартовым сообщением, с опцией «подождать ответ». Cохраняем ответа от пользователя в контекстную переменную «city». Текстом сообщения: «Введите город» и ссылкой по умолчанию на блок «API».
В блоке «Название города» спрашиваем у подписчика бота, в каком городе он хочет узнать погоду. Ответ сохраняем в переменную и переходим в блок «API».

Включена опция «Дождаться ответа удаленного сервиса». Означает что запросы будут отправляться до тех пор, пока не получится результат. Положительный или отрицательный.
В поле «Ссылка» копируем http запрос к API сервиса погоды. Ссылка выглядит так: http://api.openweathermap.org/data/2.5/weather
Тип запроса – get.
Добавляются в http запрос переменные и постоянные. Слева название заголовка, справа значение. В примере использовать не будем.
Параметры можно передавать в http запрос, переменные и постоянные. Слева название параметра, справа значение. В нашем примере используем опцию.
Параметр «q» — передается в http запросе и соответствует контекстной переменной «city». Является переменным параметром, так как от каждого подписчика получаем запросы к разным городам. Полученная информация от подписчика подставляется в запрос к API погоды.
Параметр APPID соответствует полученному API ключу в сервисе погоды. Является постоянным параметром, так как каждый запрос обращается с конкретным ключом доступа.
Данные которые получим при ответе на http запрос должны быть в json. Сохраняем в контекстную переменную. Слева имя контекстной переменной, справа путь к данным, которые сохраняем.
При ошибке, значение «cod» будет 404 и сохранится в переменную «error». Полученная температура имеет путь main.temp, значение сохраняем в переменную «temp».
Настройки блока API закончили и переходим в условный блок для сравнения ответа от сервера.

Условие Context.error!=»404″ означает, что при коде ошибке НЕ РАВНОМ 404 происходит переход в блок «Успех».
Условие Context.error==»404″ означает, что при коде ошибке 404 происходит переход в блок «Повторный запрос».
Переходим в блок «Успех»

Текст сообщения: «Погода в Context.city Context.temp градусов».
Вместо переменных подставляются полученные значения от сервера и финальный ответ выглядит так: Погода в Москве 274.72 градусов.

Переходим в блок «Повторный запрос»

Текст сообщения: «Не верно. Введите заново город». Ответ от пользователя сохраняем в переменную «city» и происходит переход в блок «API» для нового запроса к серверу.
Напишите нам в техническую поддержку
При отправке ключевого слова в исходящем сообщении, бот может сохранять в переменную значение и отправлять сообщение или цепочку сообщений.

1 — кнопка «Добавить правило». Добавляет правило, которое по тегу сохраняет запрос в переменную, вызывает группу сообщений или выбранный блок.
2 — тег на который реагирует бот и отправляет данные из блока обработки.
3 — кнопка «Добавить блок обработки». Добавляет блок обработки (5,6,7)
4 — удаление блока обработки.
5 — условие по которому сработает блок.
6 — сохранить тег в переменную, если необходимо.
7 — выбор перехода в блок.
Напишите нам в техническую поддержку

Нажимаем на (2)


1 — Вносим имя таблицы;
2 — Добавляем переменную.
3 — Называем столбец таблицы;
4 — Выбираем переменные из выпадающего списка;
5 — Выбираем выбор типа данных. Строка — текстовые данные. Файл — преобразование картинки в ссылку.
После всех настроек, сохраняем информацию.
На этом настройка CRM таблицы завершена и рекомендуется проверить, чтобы данные вносились в таблицу.
Напишите нам в техническую поддержку
Блок, в котором изменяются переменные.
Пример
Нужно перемножить полученные от пользователя данные.
Создаем группу сообщений и называем «Проверка УП».

Переходим в группу сообщений добавляем: 3 блока сообщений и блок управление переменными. Блоки сообщений называем 1,2,3 и блок управления переменных называем УП.

В блоке 1 сохраняем ответ от пользователя в контекстную переменную «a». Для удобства ответа добавляем опцию клавиатура и заполняем поле цифрой – 5.
Это значит, что при ответе пользователя, в контекстную переменную сохранится цифра 5 и будет такое выражение Context.a = 5.

В блоке 2 проделываем точно такую же операцию, только переменная будет «b» и цифра 7. Выражение будет Context.b = 7.

Теперь переходим в блок УП и добавляем переменную. Слева пишем «c» (латинская), а справа выражение Context.a * Context.b
Это выражение обозначает, что в контекстную переменную «c» сохранится результат умножения двух переменных «a» и «b». И будет равно – 35.

В блоке 3 выводим нашу переменную в текст сообщения.

В интерфейсе Telegram это будет выглядеть так.

Напишите нам в техническую поддержку
Блок для сохранения переменных в выбранную CRM таблицу в процессе диалога.
Пример
Нужно сохранить полученные ответы от пользователя в таблицу CRM с возможностью скачивания данных в формате csv/xls.
Создадим группу сообщений и добавим 3 блока: 2 блока сообщений и 1 сохранение данных в CRM. Блок сохранения данных создается по нажатию на кнопку «Сохранение данных в ЦРМ» на панели опций справа.

Переходим в блок сообщений «1».

Ставим галочки: стартовое сообщение, подождать ответа. Задаем сохранение в переменную «zayavkabot».
Текст сообщения: «Введите имя и телефон». В опции «Ссылка по умолчанию» задаем переход к блоку сохранение данных.
Переходим в блок сохранения данных.

Ставим галочку «Дополнить запись о пользователе» — запись данных в таблицу будет идти последовательно в строчку.
Создаем заранее таблицу с название «Тестовая» и ставим галочку для сохранения данных.
Подробнее о создании CRM таблиц в этой статье.
Далее переходим в блок «2» и указываем текст сообщения: «Спасибо за данные».

Пользователь попадает в блок «1» и оставляет свои контакты. После отправки сообщения данные сохраняются в таблице «Тестовая». И пользователь переходит в блок «2», где выводится сообщение – благодарность.
В интерфейсе Telegram это будет выглядеть так:

Напишите нам в техническую поддержку