Запитати ШІ
Українська UK
Перейти до Watbot

Інтерпретатор JavaScript

Блок виконує ваш код на JavaScript: рахує, перетворює дані, змінює змінні й теги контакту, вирішує, куди сценарію йти далі. Сам по собі блок нічого не надсилає в чат — лише те, що ви надішлете з коду.

Панель налаштувань блоку «Інтерпретатор JavaScript»Панель налаштувань блоку «Інтерпретатор JavaScript»

Налаштування

У блоці одне поле — редактор коду. Почніть набирати ім'я функції, і редактор запропонує підказку.

Редактор коду з підказкою: на «setCon» запропоновано setContactTag() і setContactVariable()Редактор коду з підказкою: на «setCon» запропоновано setContactTag() і setContactVariable()

Що доступно коду

Дані контакту — готові змінні. Усі значення — рядки. Якщо в контакту чогось немає, змінної не буде — перевіряйте через typeof phone !== 'undefined'.

Змінна Що в ній
id ID контакту на платформі
name, first_name, last_name Ім'я цілком, перше слово імені, друге слово
phone, email, address Телефон, пошта, адреса
username Ім'я користувача в месенджері
telegram_id, max_id ID людини в Telegram і MAX
created_at Дата появи контакту у вигляді 2026-01-31 12:00:00
bot_id ID бота

Функції:

Функція Що робить
getContactVariable(name) Повертає значення змінної контакту або undefined, якщо її немає. Значення — рядок: для розрахунків огорніть у Number()
setContactVariable(name, value) Записує змінну контакту. Значення — рядок, число або true/false. Об'єкт або масив спочатку перетворіть на рядок: JSON.stringify(value)
deleteContactVariable(name) Видаляє змінну контакту
getContactTags() Повертає масив тегів контакту
hasContactTag(name) true, якщо в контакту є тег
setContactTag(name) Додає тег
deleteContactTag(name) Знімає тег
getGlobalVariable(name) Повертає глобальну змінну бота
setGlobalVariable(name, value) Записує глобальну змінну. Значення зберігається рядком
deleteGlobalVariable(name) Видаляє глобальну змінну
sendMessage(text) Надсилає контакту текст. За один запуск — до десяти повідомлень
goToBlock(id) Переводить контакт у блок із зазначеним ID. Викликати можна один раз за запуск
disableContinue() Вимикає зв'язок «Продовжити» для цього запуску
hash_hmac(algo, text, key, format) Підпис HMAC. Алгоритм — md5, sha1, sha256, sha512 або md4. Результат — у шістнадцятковому вигляді, а якщо четвертим параметром передати 'base64' — у Base64
base64_encode(text), base64_decode(text) Кодування та розкодування Base64

Параметри, значення, що повертаються, і приклади кожної функції — у розділі «JavaScript API».

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

Порахувати ціну зі знижкою і зберегти результат:

var price = Number(getContactVariable('ціна'));
var total = Math.round(price * 0.9);
setContactVariable('підсумок', total);

Наступний блок покаже результат автопідстановкою {{ $підсумок }}.

Відправити контакт із тегом в окрему гілку:

if (hasContactTag('vip')) {
    goToBlock(12345);
    disableContinue();
}

Замість 12345 підставте ID потрібного блоку — його видно в налаштуваннях блоку. goToBlock сам по собі не скасовує зв'язок «Продовжити»: без disableContinue() бот виконає і зазначений блок, і той, що підключений до «Продовжити».

Виходи

  • «Продовжити» — спрацьовує після виконання коду, якщо код не викликав disableContinue().

Обмеження

  • Мова — JavaScript стандарту ES5: без let і const, стрілкових функцій і шаблонних рядків.
  • Регулярні вирази — без перегляду вперед і назад і без зворотних посилань, докладніше — у розділі «Мова».
  • Код — до 16 384 символів.
  • На виконання — 5 секунд. Код, який не вклався, зупиняється з помилкою.
  • Запитів у мережу з коду зробити не можна — для цього є блок «HTTP-запит».

Якщо код не працює

Відкрийте «Лог виконання» в налаштуваннях блоку. У записі видно вихідний код, список виконаних дій і значення останнього виразу — його зручно використовувати для налагодження: допишіть у кінець коду ім'я змінної, і її значення потрапить у лог.

«Лог виконання» блока JavaScript: вихідний код, значення останнього виразу і список дій«Лог виконання» блока JavaScript: вихідний код, значення останнього виразу і список дій

Увага

Якщо код завершився з помилкою, її текст піде контакту в чат, а сценарій піде далі за зв'язком «Продовжити». Перевіряйте код у попередньому перегляді бота, перш ніж запускати його на людях.