Вибір контакту
Запит до блоку «Вхідний 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('Ваше замовлення передано в доставку.');
}