Общая информация

На платформе TWIN существуют встроенные переменные, которые можно использовать в любом сценарии. Встроенные переменные не нужно объявлять. Вы можете сразу использовать их в своих сценариях.

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

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

Примеры:

  • Правильные варианты: {Новая_переменная}, {Новая_Переменная}, {новаяПеременная}.
  • Неправильный вариант: {Новая.переменная}.

Системные переменные

В сценариях можно использовать следующие системные переменные:



{системные.сейчас}

Переменная {системные.сейчас} возвращает текущие дату и время UTC (например, 2019-11-22 04:06:58). Текущие дата и время определяются во время диалога с клиентом.

Для входящей телефонии и чатов данная переменная имеет аналог {now}. В исходящей телефонии аналог не работает.

Пример использования:

Клиент звонит в магазин.

Бот произносит сообщение: "Внимание, в течение этого месяца у нас проходит грандиозная распродажа! Цены снижены до 30%. Сегодня {системные.сейчас}. Торопитесь успеть!"

Чтобы бот отображал время для конкретного часового пояса, нужно использовать дополнительный блок Арифметическая операция. Для параметра Тип нужно выбрать значение Дата. В поле Смещение от даты нужно ввести название системной переменной {системные.сегодня} и задать смещение в секундах. Смещение происходит от текущего времени UTC. То есть если вы хотите, чтобы бот указал текущее время, например, в Волгограде (UTC + 3), нужно задать смещение равное 10800 (количество секунд в 3 часах). Результат нужно сохранить в пользовательскую переменную. После этого пользовательскую переменную можно использовать в тексте сообщения.



{системные.сегодня}

Переменная {системные.сегодня} возвращает текущую дату без указания времени (например, 2019-11-22). Текущая дата определяется во время диалога с клиентом.

Для входящей телефонии и чатов данная переменная имеет аналог {today}. В исходящей телефонии аналог не работает.

Пример использования:

Клиент создает заказ и хочет узнать, когда он сможет его забрать.

Бот отвечает клиенту: "Заказ будет готов к получению {системные.сегодня}, начиная с 18.00".

Чтобы бот вместе с датой отображал еще и время, нужно использовать блок Арифметическая операция. Для параметра Тип нужно выбрать значение Дата. В поле Смещение от даты нужно ввести название системной переменной {системные.сегодня} и задать смещение в секундах. Смещение происходит от начала суток (00.00). То есть если вы хотите, чтобы бот отобразил текущую дату и указал время, например, 9.00, нужно задать смещение равное 32400 (количество секунд в 9 часах). Результат нужно сохранить в пользовательскую переменную. После этого пользовательскую переменную можно использовать в тексте сообщения.



{системные.время}

Переменная {системные.время} возвращает текущее время без указания даты (например, 04:06:58). Текущее время определяется во время диалога с клиентом.

Для входящей телефонии и чатов данная переменная имеет аналог {time}. В исходящей телефонии аналог не работает.

Пример использования:

Клиент звонит в службу точного времени.

Бот отвечает клиенту: "Точное время: {системные.время}".



{системные.телефон}

Переменная {системные.телефон} возвращает номер телефона клиента, который указан в задании на обзвон для выполнения вызова. Переменная {системные.телефон} и {phone} являются одной переменной. 

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

Для входящей телефонии данная переменная имеет аналог {phone}. В исходящей телефонии аналог не работает.

Пример использования:

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

Бот отвечает клиенту: "Уточните, заказ оформлен на номер {системные.телефон}?" После завершения разговора бот отправляет шаблонное СМС с информацией о заказе на номер клиента:




{системные.предыдущий}

Переменная {системные.предыдущий} возвращает идентификатор сценария, из которого был выполнен переход в текущий сценарий. Переменная позволяет получать информацию, из какого сценария клиент перешёл в текущий сценарий (возвращает ID предыдущего сценария).

Пример использования:

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



{системные.дозвон}

Переменная {системные.дозвон} возвращает количество успешных дозвонов до кандидата в рамках задания на обзвон.

Пример использования:

Например, в рамках одного сценария вы можете позвонить клиенту несколько раз и каждый раз начинать диалог по-разному:

{системные.запись}

Переменная {системные.запись} возвращает ссылку на аудиозапись текущего диалога в телефонии.

На данный момент переменная {системные.запись} используется только в отчетах, сформированных для получения информации о заданиях на обзвон. Отчеты можно сформировать на странице Отчеты в разделе Статистика. Ссылка на файл расположена в колонке Адрес записи звонка. Формат файла: ".mp3".

Переменные детектора эмоций

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

В системе существуют следующие переменные детектора эмоций: 

  • {negative  негативная эмоциональная окраска;
  • {positive} –  позитивная эмоциональная окраска;
  • {neutral} –  нейтральная эмоциональная окраска.

Пример использования:

В зависимости от эмоциональной окраски ответа клиента бот может направить развитие диалога в ту или иную сторону:

{детектор.эмоций}=negative

При решении 99% задач данная функция не используется. Определить негатив в диалоге с клиентом вы можете с помощью намерений, которые будут отслеживать использование негативных слов (например, мат и/или брань). При помощи детектора эмоций вы можете распознавать эмоциональную окраску речи пользователя в обычных ситуациях (например, при отмене заказа). Старайтесь использовать детектор эмоций только в тех случаях, где это действительно необходимо (там, где вы не можете определить эмоциональную окраску с помощью намерений). 

Переменные детектора пола

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

Для использования данной переменной в задании на обзвон необходимо установить флажок для параметра Определение гендерного признака.

В системе существуют следующие переменные детектора пола: 

  • male – мужской;
  • female – женский;
  • unsure – система не смогла прийти к однозначному решению;
  • unknown – не удалось определить пол или определение пола  выключено/не поддерживается.

Для определения пола системе необходимо прослушать голос пользователя без посторонних звуков в течение не менее чем 1 секунды. В противном случае система не сможет распознать его пол.

Пример использования:

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

  • {детектор.пол}=male;
  • {детектор.пол}=female.

Склонение значений пользовательских переменных по падежам

{переменная|падеж:имя_падежа}формат записи имен пользовательских переменных, который позволяет склонять их значения по падежам.

Пример использования:

{userName|падеж:родительный} - где m_0, например: Иван Иванович.

Например, требуется задать вопрос: "Могу я услышать Ивана Ивановича?". Чтобы бот использовал значение переменной в родительном падеже, в сообщении, которое будет озвучено ботом в блоке "Вопрос", нужно указать следующее: "Могу я услышать {userName|падеж:родительный}?".

Поддерживаются все падежи:

  • Именительный (кто? что?) пример: это кто? - Иван Иванович;
  • Родительный (кого? чего?) пример: нет кого? - Анны Андреевны или Ивана Ивановича;
  • Дательный  (кому? чему?) пример: кому вы рады? - Анне Андреевне и Ивану Ивановичу;
  • Винительный (кого? что?) пример: кого/что вы видите? - Ивана Ивановича или Анну Андреевну;
  • Творительный  (кем? чем?) пример: кем восхищаетесь? - Иваном Ивановичем и Анной Андреевной;
  • Предложный (о ком? о чем?) пример: о ком думаете? - об Иване Ивановиче и Анне Андреевне.

Переменные, значения которых не меняются в процессе диалога

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

  • {companyId} – возвращает строку с идентификатором компании, которой принадлежит бот;
  • {botId} – возвращает строку с идентификатором бота;
  • {dialogId} – возвращает строку с идентификатором текущего диалога;
  • {dialog} – возвращает строку с полным текстом диалога;
  • {referer} – возвращает строку с адресом индексной страницы, с которой пришёл пользователь (используется для чатов);
  • {utcNow} – возвращает текущие дату и время в часовом поясе UTC;
  • {utcTime} – возвращает текущее время в часовом поясе UTC;
  • {utcToday} – возвращает текущую дату в часовом поясе UTC.

Пример использования:

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

Переменные с информацией об участнике диалога

Нижи приводится список переменных, значения которых можно изменять в процессе диалога:

  • {clientId} – возвращает строку с внутренним идентификатором клиента в системе Twin (uuid);
  • {clientPhone} – возвращает строку с номером телефона клиента;
  • {clientEmail} – возвращает строку с адресом электронной почты клиента;
  • {clientName} – возвращает строку с именем клиента;
  • {clientNickname} – возвращает строку с псевдонимом клиента;
  • {clientExternalId} – возвращает строку с внешним идентификатором клиента в системе;
  • {clientMetadata} – возвращает массив, содержащий любые данные о клиенте (задается в следующем формате:  {"{firstName}": "Иван", "{middleName}": "Иванович", "{lastName}": "Иванов"}.

Значения данных переменных бот может получать по различным каналам связи (например, Viber, WhatsApp, Telegram и др.).  Чтобы изменить значение любой из этих переменных, нужно определить соответствующую переменную в сценарии.

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

Переменные, значения которых можно изменить только при переключении со звонка на чат и наоборот

(Данный функционал недоступен в полном объеме. На текущий момент указанные ниже переменные можно использовать, например, чтобы определить, в каком мессенджере происходит диалог с клиентом):

  • {communicationType}строка, тип коммуникации с клиентом. Допустимые значения: TEXT, VOICE;
  • {channelType}строка, тип канала общения. Допустимые значения: WEB, MOBILE, MESSENGER;
  • {messenger}строка, тип мессенджера. Допустимые значения: WHATSAPP, VIBER, TELEGRAM, VKONTAKTE, FACEBOOK, SKYPE, SLACK, YANDEX, ALICE, THREADS.

Facebook и Instagram принадлежат Мета, которая признана экстремистской организацией и запрещена в Российской Федерации.

Пример использования:

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

Переменные, значения которых меняются при каждом обращении к боту

  • {percept} – возвращает строку с последним ответом клиента на вопрос бота.
  • {clientLastAnswerTime} – возвращает время последнего ответа пользователя на вопрос бота. Значение отображается в виде временной метки Unix-времени.
  • {botLastAnswerTime} – возвращает время последнего ответа бота в секундах. Значение отображается в виде временной метки Unix-времени.

Временная метка Unix-времени (например, 1658125300) отображает количество секунд, которое прошло с 1 января 1970 года (00:00:00 UTC).

Данные переменные используются для входящей телефонии и в чатах в основном для отладочных целей.

Список переменных будет обновляться по мере появления новых переменных на платформе Twin.


Системные переменные

Переменные детектора эмоций

Переменные детектора пола

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

Для использования данной переменной в задании на обзвон необходимо установить флажок для параметра Определение гендерного признака.

Склонение значений пользовательских переменных по падежам

Переменные, значения которых не меняются в процессе диалога

Переменные с информацией об участнике диалога

Переменные, значения которых можно изменить только при переключении со звонка на чат и наоборот

Переменные, значения которых меняются при каждом обращении к боту