Спросить ИИ
Русский RU
Перейти в Watbot

Выбор контакта

Запрос в блок «Входящий Webhook» приходит не от человека, а от стороннего сервиса. Поэтому код сам указывает, к какому контакту относится запрос, — одной из функций ниже. Они есть только в этом блоке; в остальных блоках контакт уже известен.

Общие правила для всех функций:

  • Контакт ищется только среди контактов этого бота. Удалённые контакты не находятся.
  • Возвращает true, если контакт найден, и false, если нет.
  • За один запрос можно вызвать только одну функцию и только один раз. Второй вызов — даже другой функции — завершит код с ошибкой, и блок ответит кодом 422.
  • Хотя бы одна функция должна быть записана в коде. Без неё блок не запустит код и ответит 422.
  • После того как контакт найден, коду становятся доступны его встроенные переменные, переменные и теги. До этого переменные контакта пусты, а обращение к id, name и другим данным контакта остановит код с ошибкой.
  • Если контакт не найден или функция не вызывалась, код выполнится, но ничего не сохранит: переменные, теги и глобальные переменные не запишутся, сообщения не уйдут, переход и связь «Продолжить» не сработают. Блок ответит 200 с сообщением Code executed without setting contact.

setContactById

setContactById(id)

Находит контакта по его ID на платформе.

Параметр Тип Что передать
id Число или строка из цифр ID контакта. В сценарии его можно получить автоподстановкой {{ id }}
if (setContactById(request.query.contact_id)) {
    setContactVariable('оплата', 'получена');
    sendMessage('Оплата получена, начинаем собирать ваш букет.');
}

Чтобы сторонний сервис знал ID, передайте его заранее — например, в ссылке на оплату или блоком «HTTP-запрос».

setContactByTelegramId

setContactByTelegramId(id)

Находит контакта по ID человека в Telegram.

Параметр Тип Что передать
id Число или строка из цифр ID пользователя Telegram — то же, что в переменной telegram_id
var message = request.data.message;

if (message && message.from && setContactByTelegramId(message.from.id)) {
    setContactTag('писал_в_группе');
}

setContactByMaxId

setContactByMaxId(id)

Находит контакта по ID человека в MAX.

Параметр Тип Что передать
id Число или строка из цифр ID пользователя MAX — то же, что в переменной max_id
if (setContactByMaxId(request.data.user_id)) {
    sendMessage('Курьер уже в пути.');
}

setContactByVkId

setContactByVkId(id)

Находит контакта по ID человека во ВКонтакте.

Параметр Тип Что передать
id Число или строка из цифр ID пользователя ВКонтакте — число без id в начале
if (setContactByVkId(request.data.vk_user_id)) {
    setContactTag('оставил_отзыв');
}

setContactByViberId

setContactByViberId(id)

Находит контакта по ID человека в Viber.

Параметр Тип Что передать
id Строка ID пользователя Viber — строка из букв, цифр и знаков, её нельзя превращать в число
if (setContactByViberId(request.data.viber_id)) {
    sendMessage('Ваш заказ передан в доставку.');
}