На платформе TWIN существуют встроенные переменные, которые можно использовать в любом сценарии. Встроенные переменные не нужно объявлять. Вы можете сразу использовать их в своих сценариях. При указании переменных в сценариях обязательно используйте фигурные скобки (например, чтобы добавить в сценарий переменную "сегодня" используйте {системные.сегодня}). 
| Подсказка |
|---|
Помимо встроенных переменных пользователи также могут использовать в сценариях свои собственные переменные. Пользователи могут создавать переменные с различными именами. Имя переменной может быть любым. Однако, существует ограничение: имя переменной не должно содержать точку. Данный символ используется только в именах встроенных переменных. Например: - Правильные варианты: {Новая_переменная}, {Новая_Переменная}, {новаяПеременная}.
- Неправильный вариант:
{Новая.переменная}.
|
Системные переменныеВ сценариях можно использовать следующие системные переменные: {системные.сейчас} - возвращает текущие дату и время (например, 2019-11-22 04:06:58). Текущие дата и время определяются в тот момент, когда на основе сценария строится диалог с клиентом. | Подсказка |
|---|
Для входящей телефонии и чатов данная переменная имеет аналог {now}. В исходящей телефонии аналог не работает. |
Пример использования: Клиент звонит в магазин. Бот делает сообщение: Внимание, в течение этого месяца у нас проходит грандиозная распродажа! Цены снижены до 30%. Сегодня {системные.сейчас}. Торопитесь успеть! {системные.сегодня} - возвращает текущую дату без указания времени (например, 2019-11-22). Текущая дата определяется в тот момент, когда на основе сценария строится диалог с клиентом.
| Подсказка |
|---|
Для входящей телефонии и чатов данная переменная имеет аналог {today}. В исходящей телефонии аналог не работает. |
Пример использования: Клиент создает заказ и хочет узнать, когда он сможет его забрать. Бот отвечает клиенту: заказ будет готов к получению {системные.сегодня}, начиная с 18.00.

{системные.время} - возвращает текущее время без указания даты (например, 04:06:58). Текущее время определяется в тот момент, когда на основе сценария строится диалог с клиентом.
| Подсказка |
|---|
Для входящей телефонии и чатов данная переменная имеет аналог {time}. В исходящей телефонии аналог не работает. |
Пример использования: Клиент звонит в службу точного времени. Бот отвечает клиенту: Точное время: {системные.время} {системные.телефон} - возвращает номер телефона клиента, который указан в задании на обзвон для выполнения вызова. Переменная {системные.телефон} и {phone} являются одной переменной.
Пример использования: Клиент звонит в магазин, чтобы узнать срок действия заказа. Бот отвечает клиенту: уточните, заказ оформлен на номер {системные.телефон}? По завершению разговора бот отправляет шаблонное смс с информацией о заказе на номер клиента: 
{системные.предыдущий} - возвращает номер сценария, из которого был выполнен переход в текущий сценарий. Переменная позволяет получать информацию, из какого сценария был выполнен переход. Пример использования: При переходе в новый сценарий можно выполнить проверку, из какого сценария был выполнен переход, чтобы, например, не повторять вопросы, которые были заданы клиенту в предыдущем сценарии. {системные.дозвон} - возвращает количество успешных дозвонов до кандидата в рамках задания на обзвон.
Пример использования: Например, можно настроить правило перезвона через блок "Результат". Если количество успешных дозвонов до клиента составляет более 10, то такого клиента можно не беспокоить новыми вызовами.
{системные.запись} - возвращает ссылку на аудиозапись текущего диалога в телефонии.
| Информация |
|---|
На данный момент переменная {системные.запись} используется только в отчетах, сформированных для получения информации о заданиях на обзвон (Статистика → Отчеты → Адрес записи звонка). Формат файла записи: ".mp3". |
Переменные детектора эмоцийДетектор эмоций предназначен для определения эмоциональной окраски ответа клиента. Эмоциональная окраска определяется по голосу. Поэтому переменные детектора эмоций будут работать только в тех сценариях, которые используются в телефонии. В системе существуют следующие переменные детектора эмоций: - {negativ}- негативная эмоциональная окраска;
- {positive}- позитивная эмоциональная окраска;
- {neutral}- нейтральная эмоциональная окраска.
Пример использования: {детектор.эмоций}=negative 
В зависимости от эмоциональной окраски ответа клиента бот может направить развитие диалога в ту или иную сторону: | Информация |
|---|
При решении 99% задач данная функция не используется. Определить негатив в диалоге с клиентом вы можете с помощью намерений, которые будут отслеживать использование негативных слов (например, мат и/или брань). При помощи детектора эмоций вы можете распознавать эмоциональную окраску речи пользователя в обычных ситуациях (например, при отмене заказа). Старайтесь использовать детектор эмоций только в тех случаях, где это действительно необходимо (там, где вы не можете определить эмоциональную окраску с помощью намерений). |
Переменные детектора полаДетектор пола предназначен для определения пола пользователя. Поскольку пол пользователя определеяется по его голосу, то переменные детектора пола будут работать только в тех сценариях, которые используются в телефонии. В системе существуют следующие переменные детектора пола: - male - мужской;
- female - женский;
- unsure - система на смогла прийти к однозначному решению;
- unknown - не удалось определить пол или определение пола выключено/не поддерживается;
| Подсказка |
|---|
Для определения пола системе необходимо прослушать голос пользователя без посторонних звуков в течение не менее чем 1 секунды. В противном случае система не сможет распознать его пол. |
Пример использования: {детектор.пол}=male. Иллюстрация ниже демонстрирует проверку пола пользователя. Пользователей мужского пола бот перенаправляет на одну ветку, а пользователей женского пола - на другую. 
{переменная|падеж:имя_падежа} Склонение значений пользовательских переменных согласно падежу. Пример использования: {m_0|падеж:родительный} - где m_0, например: Иван Иванович. Например, требуется задать вопрос: "Могу я услышать Ивана Ивановича?". Чтобы бот использовал значение переменной в родительном падеже, в блоке "Вопрос" нужно указать следующее: "Могу я услышать {m_0|падеж:родительный}?".
Поддерживаются все падежи: - Именительный (кто? что?) – пример: это кто? - Иван Иванович;
- Родительный (кого? чего?) – пример: нет кого? - Анны Андреевны или Ивана Ивановича;
- Дательный (кому? чему?) – пример: чему вы рады? - Анне Андреевне и Ивану Ивановичу;
- Винительный (кого? что?) – пример: кого/что вы видите? - Ивана Ивановича или Анну Андреевну;
- Творительный (кем? чем?) – пример: кем восхищаетесь? - Иваном Ивановичем и Анной Андреевной;
- Предложный (о ком? о чем?) – пример: о ком думаете? - об Иване Ивановиче и Анне Андреевне.

Переменные, значения которых не меняются в процессе диалогаВ системе существуют следующие переменные, значения которых ни при каких обстоятельствах не меняются в процессе диалога {companyId} - возвращает строку с идентификатором компании, которой принадлежит бот. {botId} - возвращает строку с идентификатором бота. {dialogId} - возвращает строку с идентификатором текущего диалога. {dialog} - возвращает строку с полным текстом диалога. {referer} - возвращает строку с url-адресом страницы, с которой пришёл пользователь (используется для чатов). {utcNow} - возвращает текущие дату и время в часовом поясе UTC+0. {utcTime} - возвращает текущее время в часовом поясе UTC+0. {utcToday} - возвращает текущую дату в часовом поясе UTC+0. Пример использования: По завершению разговора бот отправляет письмо на электронную почту пользователя с полным текстом диалога: 
Переменные с информацией об участнике диалогаИнформация, которую можно менять в процессе диалога с помощью сервиса клиентов (он есть как в чатах, так и в сервисе бота). {clientId} - возращает строку с внутренним идентификатором клиента в системе Twin (uuid); {clientPhone} - возращает строку с номером телефона клиента; {clientEmail} - возращает строку с адресом электронной почты клиента; {clientName} - возращает строку с именем клиента; {clientNickname} - возращает строку с псевдонимом клиента; {clientExternalId} - возращает строку с внешним идентификатором клиента в системе; {clientMetadata} - возращает массив, содержащий любые данные о клиенте. Данные, которые можно изменить только при переключении со звонка на чат и наоборот(Данный функционал недоступен в полном объеме. В данный момент указанные ниже переменные можно использовать, например, для определения в каком мессенджере ведется диалог): {communicationType} - строка, тип коммуникации с клиентом. Допустимые значения: TEXT, VOICE. {channelType} - строка, тип канала общения. Допустимые значения: WEB, MOBILE, MESSENGER. {messenger} - строка, тип мессенджера. Допустимые значения: WHATSAPP, VIBER, TELEGRAM, VKONTAKTE, FACEBOOK, SKYPE, SLACK, YANDEX, ALICE, THREADS. Переменные, значения которых меняются автоматически при каждом обращении к боту{percept} - возвращает строку с фразой, которую пользователь произносит в определенный момент {clientLastAnswerTime} - возвращает время последней фразы клиента в секундах (целое число). {botLastAnswerTime} - возвращает время последнего ответа бота в секундах (целое число). | Подсказка |
|---|
Список переменных будет обновляться по мере появления новых переменных на платформе Twin. |
|