Теги и фильтры интеграционного слоя

Теги команд

Для самых распространеннных внутренних команд существуют теги, которые упрощают написание кода. Например, для команды переключения на другой узел есть тег {% 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