Работа с процедурами (с примерами использования)
Старт новой сессии в чат-центре
Работа с чат-центром
chat_center_enable
Функция, которая стартует новую сессию с выбранным оператором (или командой операторов) в чат-центре.
Пример использования:
{# Старт новой сессии в чат-центре #}
{% chat_center_enable %}При этом, откроется сессия с командой «Нераспределенные», которая есть в любой учетной записи на платформе по умолчанию.
Чтобы открыть сессию с указанной командой:
{# Старт новой сессии в чат-центре с командой "Поддержка" #}
{% chat_center_enable team="Поддержка" %}Чтобы открыть сессию с конкретным оператором:
{# Старт новой сессии в чат-центре с конкретным оператором #}
{% chat_center_enable operator="[email protected]" %}Обратите внимание: если оператора с указанным Email не окажется, то сессия будет открыта с командой по умолчанию.
Чтобы добавить контекст для оператора при открытии новой сессии:
{# Формирование объекта с контекстом сессии #}
{% createobj chat_context %}
{
"Вопрос": "Привет! Как дела?"
}
{% endcreateobj %}
{# Старт новой сессии в чат-центре с заголовком и контекстом #}
{% chat_center_enable title="Сообщение от нового пользователя" variables=chat_context %}Чтобы переназначить сессию на другого оператора:
{# Переназначение сессии на другого оператора #}
{% chat_center_enable operator="[email protected]" reassign_if_exists=True %}Или другую команду операторов:
{# Переназначение сессии на другую команду операторов #}
{% chat_center_enable team="Отдел продаж" reassign_if_exists=True %}Проверить существование номера телефона в профиле клиентаРабота с профилем клиента
check_phone_number
Функция для проверки, существует ли указанный номер телефона у какого либо другого профиля клиента.
Пример использования:
{# Проверить существование номера телефона в профиле клиента #}
{% check_phone_number "+79001234567" as is_phone_exist %}
{# Если телефон был найден (существует в профиле клиента), то выполняем действие #}
{% if is_phone_exist %}
{# Сохранить номер телефона в профиль клиента #}
{% save_phone_number "+79001234567" %}
{% endif %}Обратите внимание: номер телефона проходит дополнительную валидацию перед сохранением. Заведомо неверный формат номера телефона может вызвать ошибку.
Удалить значение у атрибута профиля клиента или чатаРабота с профилем клиента
clear_attribute
Функция, которая удаляет значение атрибута из профиля клиента или чата.
Пример использования:
{# Удалить значение у атрибута профиля клиента или чата #}
{% clear_attribute "profile_city" %}Удалить тег из профиля клиентаРабота с профилем клиента
clear_tag
Функция, которая удаляет тег из профиля клиента.
Пример использования:
{# Удалить тег из профиля клиента #}
{% clear_tag "profile_auth" %}Создать объектРабота с контекстом сценария
createobj
Функция для программного создания JSON-объекта в контексте сценария (узла) чат-бота.
Пример использования:
{# Создать объект my_obj #}
{% createobj "my_obj" %}
{
"country": "Россия",
"city": "Москва"
}
{% endcreateobj %}Теперь в контексте текущего сценария (узла) будет доступна временная переменная my_obj с указанным JSON-объектом.
Обратите внимание: в названии переменной допускается только латиница и знак нижнего подчеркивания (
_).
Не забудьте сохранить полученную временную переменную в пользовательский контекст (функция save_variable).
Создать строку (с форматированием)Работа с контекстом сценария
createstring
Функция для программного создания строки с текстом в контексте сценария (узла) чат-бота. Поддерживается форматирование, а все переносы строк и отступы будут интерпретироваться, как \n, при отображении пользователю.
Пример использования:
{# Создать строку с текстом my_string #}
{% createstring "my_string" %}
Привет, {{ attributes.profile_full_name }}!
Как ваши дела?
{% endcreatestring %}Теперь в контексте текущего сценария (узла) будет доступна временная переменная my_string с указанным текстом.
Обратите внимание: в названии переменной допускается только латиница и знак нижнего подчеркивания (
_).
Не забудьте сохранить полученную временную переменную в пользовательский контекст (функция save_variable).
Удалить переменные из пользовательского контекстаРабота с контекстом сценария
delete_variables
Функция для программного удаления значения из контекста пользователя на платформе.
Пример использования:
{# Удалить переменные из пользовательского контекста #}
{% delete_variables "my_var_1" "my_var_2" "my_var_3" %}Теперь в контексте пользователя больше нет переменных my_var_1, my_var_2 и my_var_3.
Обратите внимание: вы можете удалять любое кол-во переменных из контекста пользователя за один раз.
Запустить нативную анкетуРабота с нативными анкетами
enter_input_form
Функция, которая запускает первый вопрос нативной анкеты.
Пример использования:
{# Запустить нативную анкету с названием "Моя анкета" #}
{% enter_input_form "Моя анкета" %}Чтобы предварительно заполнить некоторые (или все) вопросы нативной анкеты:
{# Запустить нативную анкету с названием "Моя анкета" и ответами на 2 вопроса #}
{% enter_input_form "Моя анкета" question_123="Виктор" question_456="Дизайнер" %}Обратите внимание: если ответ на первый вопрос был программно получен (при вызове нативной анкеты), то чат-бот пришлёт следующий неотвеченный вопрос пользователю.
Чтобы перезапустить нативную анкету:
{# Перезапустить нативную анкету с названием "Моя анкета" #}
{% enter_input_form "Моя анкета" restart=True %}Сохранить переносы строк при отображении текста подписчикуРабота с текстом (фильтр)
value|keep_slash_n
Фильтр для функции, который интерпретирует переносы строк (Enter) в \n, сохраняя оригинальный формат контента.
Пример использования:
{# Отображение текста из переменной my_var с переносами строк #}
{{ my_var|keep_slash_n }}Получить текущую дату и/или времяРабота с датой и временем
now
Функция для программного получения текущего timestamp (даты и времени) сервера платформы в UNIX-формате (по МСК).
Пример использования:
{# Получить timestamp текущей даты и времени #}
{% now as current_datetime %}Обратите внимание: функция
nowсуществует только в контексте сценария (узла), где была вызвана. Для того, чтобы её использовать в процедуре, необходимо сохранить её в контекст пользователя (функцияsave_variable) после получения.
Заменить значение в строкеРабота с контекстом сценария
replace
Функция для программной замены необходимого значения в указанной строке внутри сценария (узла) чат-бота.
Пример использования:
{# Заменить значение в строке #}
{% replace "С новым 2021 годом!" "2021" "2022" as my_var %}Теперь в контексте текущего сценария (узла) будет доступна временная переменная my_var с измененным значением.
Обратите внимание: в названии переменной допускается только латиница и знак нижнего подчеркивания (
_).
Не забудьте сохранить полученную временную переменную в пользовательский контекст (функция save_variable).
Найти ID контактов в S2 по номеру телефонаРабота с CRM-системой S2
s2crm_contact
Функция для поиска ID контакта в подключенном CRM S2 по номеру телефона.
Пример использования:
{# Найти ID контакта в S2 по номеру телефона #}
{% s2crm_contact number="79001234567" need_save=True as contact_id %}Если в S2 существует контакт с указанным номером телефона, то в контексте текущего сценария (узла) будет доступен ID контакта во временной переменной contact_id.
Обратите внимание: в названии переменной допускается только латиница и знак нижнего подчеркивания (
_).
Не забудьте сохранить полученную временную переменную в пользовательский контекст (функция save_variable).
Инициации сделки в CRM S2 по номеру телефонаРабота с CRM-системой S2
s2crm_lead_create
Функция для инициации сделки в CRM S2. Если контакта с указанным номером телефона нет, то он будет создан автоматически.
Пример использования:
{# Инициации сделки "Моя сделка" в CRM S2 по номеру телефона #}
{% s2crm_lead_create name="Моя сделка" number="79001234567" %}Для указания маршрутизации новой сделки в автоворонку:
{# Инициации сделки "Моя сделка" в CRM S2 по номеру телефона #}
{% s2crm_lead_create name="Моя сделка" number="79001234567" stage="123" %}В атрибуте stage необходимо указать ID автоворонки, которую вы создали в CRM S2.
Проверить наличие сделок в S2 по номеру телефонаРабота с CRM-системой S2
s2crm_lead_exists
Функция для проверки наличия сделок контакта по номеру телефона в подключенной к платформе CRM S2.
Пример использования:
{# Проверить наличие сделок в S2 по номеру телефона #}
{% s2crm_lead_exists number="79001234567" as is_lead_exists %}Если в S2 существует контакт с указанным номером телефона и у него есть хотя бы одна сделка, то в контексте сценария (узла) во временной переменной is_lead_exists будет значение True. Если нет сделок, то False.
Обратите внимание: вы можете использовать полученную временную переменную сразу же, не сохраняя её в контекст пользователя. Это бывает удобно для построения условий, с помощью конструкции
{% if ... %}.
Чтобы исключить ID статусов сделки, которые вам (по каким-то причинам) на данный момент не нужны для проверки:
{# Проверить наличие сделок в S2 по номеру телефона, исключив из нее некоторые ID статусов #}
{% s2crm_lead_exists number="79001234567" exclude="123,456" as is_lead_exists %}Сохранить номер телефона в профиль клиентаРабота с профилем клиента
save_phone_number
Функция для сохранения номера телефона в профиль клиента.
Пример использования:
{# Сохранить номер телефона в профиль клиента #}
{% save_phone_number "+79001234567" %}Обратите внимание: номер телефона проходит дополнительную валидацию перед сохранением. Заведомо неверный формат номера телефона может вызвать ошибку.
Сохранить переменную в пользовательский контекстРабота с контекстом сценария
save_variable
Функция для программного сохранения значения в контекст пользователя на платформе.
Пример использования:
{# Сохранить значение в пользовательский контекст #}
{% save_variable "my_var" "Привет!" %}Теперь в контексте пользователя (во всех сценариях чат-бота) будет доступна переменная my_var с указанным значением.
Обратите внимание: в названии переменной допускается только латиница и знак нижнего подчеркивания (
_).
Значение можно сохранять не только из строки, но и из другой переменной, которая есть в контексте сценария (узла) или пользователя.
Отправить письмо на указанный EmailВзаимодействие с подписчиками
send_email
Функция для программной отправки письма на указанный Email.
Создайте в интеграционном слое DTL-функцию {% send_email %}, в которой передайте первым аргументом Email получателя, во втором тему письма, а в третьем – тело письма (строку текста).
Обратите внимание: вы можете подставлять Email из контекста пользователя и/или из профиля клиента.
Пример использования:
{# Создаём тело письма #}
{% createstring message %}
Зима. Крестьянин, торжествуя,
На дровнях обновляет путь.
{% endcreatestring %}
{# Отправляем письмо на указанный Email с темой "Письмо от Пушкина" #}
{% send_email "[email protected]" "Письмо от Пушкина" message %}Обратите внимание: введенный вами текст будет отправлен с учётом переноса строк.
Отправить подписчику текст от чат-ботаВзаимодействие с подписчиками
send_text
Функция для программной отправки текста подписчику от чат-бота. Создайте в интеграционном слое DTL-функцию {% send_text %}, в которой передайте первым аргументом необходимую строку текста.
Пример использования:
{# Отправляем текст подписчику чат-бота #}
{% send_text "ВАШ ТЕКСТ ТУТ" %}Обратите внимание: введенный вами текст будет отправлен «как есть», без учёта переноса строк.
Установить переменную в контексте сценарияРабота с контекстом сценария
set
Функция для программной установки контекста внутри сценария (узла) чат-бота.
Пример использования:
{# Установить переменную в контексте сценария #}
{% set my_var="Привет!" %}Теперь в контексте текущего сценария (узла) будет доступна временная переменная my_var с указанным значением.
Обратите внимание: в названии переменной допускается только латиница и знак нижнего подчеркивания (
_).
Удобно использовать функцию set для форматирования значения «на лету» с использованием фильтров для функций.
Например, вот так:
{# Установить переменную в контексте сценария со значением текущей даты #}
{% set today=now|as_datetime|date:"d.m.Y" %}Теперь в переменной today будет содержаться строка со значением текущей даты в формате ДД.ММ.ГГГГ.
Добавить значение к атрибуту профиля клиента или чатаРабота с профилем клиента
set_attribute
Функция для программного добавления значения для атрибута чата или профиля клиента.
Пример использования:
{# Добавить значение к атрибуту профиля клиента или чата #}
{% set_attribute "profile_city" "Москва" %}Обратите внимание: если атрибута с таким названием не будет на платформе, то будет ошибка валидации интеграционного слоя при сохранении.
Добавить тег к профилю клиентаРабота с профилем клиента
set_tag
Функция для программного добавления тега к профилю клиента.
Пример использования:
{# Добавить тег к профилю клиента #}
{% set_tag "profile_auth" %}Обратите внимание: если тега с таким названием не будет на платформе, то будет ошибка валидации интеграционного слоя при сохранении.
Перемешать все элементы в спискеРабота с объектами (фильтр)
value|shuffle
Фильтр для функции, который перемешивает в случайном порядке все элементы в заданном списке.
Пример использования:
{# Перемешать все элементы в списке my_list #}
{{ my_list|shuffle }}Если в списке my_list был такой порядок элементов ["a", "b", "c" ,"d"], то после применения данного фильтра для функции, он поменяет его в абсолютно случайном порядке. Например, вот так: ["c", "d", "a" ,"b"].
Разбить строку на список, используя разделительРабота с контекстом сценария (фильтр)
split
Фильтр для функции, с помощью которого можно разбить строку на список, используя разделитель.
Пример использования:
{# Разбить строку на список, используя разделитель #}
{{ my_var|split:"," }}Если в my_var строка с текстом "John, Paul, George, Ringo", то, после применения этого фильтра, вы получите следующий список:
["John", "Paul", "George", "Ringo"]Остановить дальнейшее выполнение сценарияРабота с контекстом сценария
stop
Функция, которая останавливает дальнейшие действия в сценарии (узле). Чаще всего используется в ситуации, когда нужно оставить выполнение какой-либо процедуры в интеграционном слое.
Пример использования:
{# Остановить дальнейшее выполнение сценария #}
{% stop %}Обратите внимание: после остановки сценария пользователь может «зависнуть» в неопределенном состоянии. Чтобы так не происходило, следите за тем, что перед выполнением функции
stop, – вы оставили какое-то пояснительное сообщение или действие для пользователя.
Подписка на автоворонкуРабота с автоворонками
subscribe_to_funnel
Функция для программной подписки чата пользователя на указанную автоворонку.
Пример использования:
{# Подписка на автоворонку "Вебинар" #}
{% subscribe_to_funnel "Вебинар" %}Чтобы отправить пользователя, находящегося в указанной автоворонке, снова на её начало:
{# Повторная подписка на автоворонку "Вебинар" (сценарий пойдёт сначала) #}
{% subscribe_to_funnel "Вебинар" "start" %}Перейти в указанный сценарий чат-ботаРабота со сценариями
now
Функция для программного переключения сценариев (узлов) чат-бота. При его использовании в процедуре, пользователь чат-бота будет немедленно переключен на указанный сценарий.
Обратите внимание: если узла с указанным названием не будет, то возникнет ошибка.
Пример использования:
{# Переход в сценарий "Главное меню" #}
{% switch "Главное меню" %}Также, можно передавать GET-параметры, которые будут доступны в контексте узла, в который будет совершен переход.
Пример использования:
{# Переход в сценарий "Главное меню" с передачей GET-параметров #}
{% switch "Главное меню" %}?country=Россия&city=МоскваОтписаться от всех автоворонокРабота с автоворонками
unsubscribe_all_funnels
Функция для немедленной программной отписки чата пользователя от всех автоворонок, на которые он был подписан.
Пример использования:
{# Отписаться от всех автоворонк #}
{% unsubscribe_all_funnels %}Отписаться от автоворонкиРабота с автоворонками
unsubscribe_from_funnel
Функция для немедленной программной отписки чата пользователя от указанной автоворонки.
Обратите внимание: если пользователь не был подписан на указанную автоворонку, то ничего не произойдет.
Пример использования:
{# Отписаться от автоворонки "Вебинар" #}
{% unsubscribe_from_funnel "Вебинар" %}Last updated