Теги и фильтры интеграционного слоя
Теги команд
Для самых распространеннных внутренних команд существуют теги, которые упрощают написание кода. Например, для команды переключения на другой узел есть тег {% switch %}. Вы можете написать как {% switch "Пройти регистрацию" %}, так и /switch/21282, но гораздо проще запомнить название узла, чем идентификатор 21282.
ТОП-тегов интеграционного слоя
{% now %}Отображает текущую дату и/или время{% datetime_now %}Вернёт текущее время и дату{% switch %}Переход в узел{% set %}Установить переменную в контексте узла{% replace %}Заменить значение в строке. Пример -{% replace "С новым 2021 годом" "2021" "2022" as text %}{% createobj %}Создать объект{% createstring %}Создать строку{% calc_timedelta %}Вычисляет дельту между двумя датами{% save_variable %}Сохраниться переменную{% delete_variables %}Удалить переменную{% send_text %}Отправить текстовое сообщение{% save_phone_number %}Сохранить телефон в профиль (основной){% check_phone_number %}Проверить существует ли телефон у других клиентов{% set_attribute %}Сохранить атрибут чата{% clear_attribute %}Отчистить атрибут чата{% set_tag %}Добавить тег чата{% clear_tag %}Удалить тег чата{% profile.set_attribute %}Сохранить атрибут профиля{% profile.set_tag %}Добавить тег профиля{% profile.clear_tag %}Удалить тег профиля{% chat_center_enable %}Открыть чат-сессию с оператором{% subscribe_to_funnel %}Подписаться на воронку{% unsubscribe_from_funnel %}Отписаться от воронки{% enter_input_form %}Запустить анкету{% form_lead %}Получить данные последнего лида формы для сайта{% form_data %}Получить данные последнего лида формы для бота{% stop %}Остановить выполнение процедур и отправку контента узла
ТОП-фильтров интеграционного слоя
{% date %}Форматирует дату в соответствии с заданным форматом.{% as_datetime %}Вернуть объект в виде даты{% add_days %}Добавить дни к объекту даты и времени{% subtract_days %}Отнять дни от объекта даты и времени{% subtract %}Вычитает одно число из другого{% keep_slash_n %}Интерпретирует переносы строк (энтеры) в \n
Переменные, которые всегда есть в контексте
{{ platform }}Платформа пользователя. Может быть равна"telegram", "facebook", "viber"{{ messenger_first_name }}и{{ messenger_last_name }}Имя и фамилия пользователя (как он сам себя назвал в мессенджере){{ request.type }}Тип сообщения от пользователя. Может быть равен"text", "picture", "video", "document", "location", "contact", "postback"{{ request.content }}Содержимое сообщения от пользователя. Это текст, адрес отправленной картинки/документа, и так далее.{{ request.latitude }}и{{ request.longitude }}Широта и долгота (для типаlocation)
для того чтобы точки в координатах не были экранированы при запросе (к FlexCMS или к любому стороннему REST API), необходимо передавать их с фильтром unlocalize. Например - {{request.longitude|unlocalize }}
{{ request.is_telegram_user }}Является ли телефон аккаунтом Telegram (для типаcontact, платформыtelegram):{{ request.is_own_contact }}Отправил ли пользователь свой личный контакт или чей-то еще из записной книжки (для типаcontact, платформыtelegram/viber).{{ request.viber_api_version }}Версия API Viber: число 1, 2, 3, 4, 5 и тд (для платформыviber){{ chat_id }}Внутренний ID чата с пользователем в конструкторе{{ chat_uuid }}Внутренний UUID чата с пользователем в конструкторе{{ cookies }}Хранинище BotCookies.{{ chat_center.session.team }}и{{ chat_center.session.operator }}и{{chat_center.session.is_automatic }}Информация про контекст чат-центра (находится ли пользователь в чат-центре? с кем из операторов он общается? и тд).{{ operator.is_authorized }}Авторизован ли оператор (только для операторского бота). Возвращает True или False. Можно использовать в условиях:{% if operator_is.authorized %},{% if not operator.is_authorized %}{{ operator.phone_number }}Телефонный номер, который передал оператор (только для операторского бота).{{ get_params }}GET-параметры запроса. Подробнее о GET-параметрах можно прочитать здесь.{{ http_response }}Результат HTTP-запроса, сделанного в узле. Эта переменная существует только в узле, сделавшем запрос, и нигде больше не сохраняется. Ее можно использовать, если нужно достать что-нибудь из ответа на HTTP-запрос, но при этом полностью этот ответ сохранять необязательно. Если же вы настроите сохранение ответа в определенную переменную (например,{{ my_result }}), то результат HTTP-запроса будет одинаково доступен и в****{{ my_result }}, и в{{ http_response }}. Но после выхода из узла переменная{{ my_result }}сохранится в пользовательских переменных, а{{ http_response }}- нет.{{ http_response.http_status_code }}Статус ответа HTTP{{ http_response.http_cookies }}Куки в ответе HTTP{{ facebook_deeplink }}Ссылка на бота Facebook Messanger. Присутствует тогда, когда подключен Facebook Bot.{{ viber_deeplink }}Ссылка на бота Viber. Присутствует тогда, когда подключен Viber Bot.{{ telegram_deeplink }}Ссылка на бота Telegram. Присутствует тогда, когда подключен Telegram Bot.{{ vkontakte_deeplink }}Ссылка на бота Вконтакте. Присутствует тогда, когда подключен Вконтакте Бот.{{ bot_uuid }}UUID бота.{{ bot_key }}API-ключ к боту. Требуется внешним сервисам для интеграции с ботом.{{ node_id }}ID узла (если сообщение сгенерировано узлом, а не анкетой и пр.){{ node_name }}Название узла (если сообщение сгенерировано узлом, а не анкетой и пр.)
Полный список кастомных тегов и фильтров для работы на платформе
Рекомендуется к изучению для более продуктивной работы.
Полный список кастомных тегов и фильтров для работы на платформе
Полный список тегов Django Template Language (DTL)
Рекомендуется к изучению для более продуктивной работы.
https://docs.djangoproject.com/en/3.2/ref/templates/builtins/#ref-templates-builtins-filters
Last updated