# Про стартове повідомлення у Viber

Viber має особливість у роботі з першим повідомленням від бота: після першого повідомлення система очікує відповіді користувача перед відправкою наступного повідомлення. Це впливає на структуру сценаріїв для Viber та потребує особливого підходу до першого блоку.

## Контекст і проблема

У багатьох сценаріях потрібно відправити кілька повідомлень підряд або показати інформацію без очікування відповіді користувача. Однак у Viber після першого повідомлення система автоматично очікує відповіді користувача, що може порушити логіку сценарію.

**Проблема:**
- Якщо перший блок — "Повідомлення користувачу", наступне повідомлення не буде відправлене, поки користувач не відповість
- Це може порушити логіку сценарію, де потрібно показати кілька повідомлень підряд

## Основні концепції

### Механізм очікування відповіді

Viber автоматично встановлює режим очікування відповіді після першого повідомлення від бота. Це означає:
- Система чекає на ввід від користувача
- Наступні повідомлення не відправляються до отримання відповіді
- Timeout очікування залежить від налаштувань бота

### Правильна структура для Viber

Для забезпечення коректної роботи сценарію в Viber перший блок повинен бути інтерактивним:
- **"Очікування відповіді користувача"** — бот чекає на текстовий ввід
- **"Повідомлення з клавіатурою"** — бот показує кнопки для вибору

Це забезпечує взаємодію користувача з ботом з самого початку та дозволяє системі продовжити виконання сценарію.

## Варіанти підходів

### Інтерактивний перший блок vs пасивне повідомлення

**Інтерактивний перший блок (рекомендовано):**
- ✅ Плюси: Забезпечує коректну роботу сценарію, дозволяє користувачу одразу взаємодіяти з ботом
- ❌ Мінуси: Потрібно додати інтерактивний елемент (клавіатуру або очікування вводу)

**Пасивне повідомлення:**
- ✅ Плюси: Простота структури
- ❌ Мінуси: Може порушити логіку сценарію, наступні повідомлення не відправляються

**Чому використовуємо інтерактивний перший блок:**
Це забезпечує коректну роботу сценарію та дозволяє користувачу одразу взаємодіяти з ботом, що покращує користувацький досвід.

### Альтернативні рішення

Якщо потрібно відправити кілька повідомлень підряд без очікування відповіді:
1. Використати action блоки для відправки повідомлень
2. Об'єднати кілька повідомлень в одне
3. Використати welcome message (якщо підтримується)

## Прийняті рішення

### Обов'язкова інтерактивність першого блоку

Для Viber перший блок сценарію повинен бути інтерактивним (клавіатура або очікування вводу). Це забезпечує коректну роботу системи та дозволяє користувачу одразу взаємодіяти з ботом.

### Timeout очікування

Timeout очікування відповіді залежить від налаштувань бота. Якщо користувач не відповів протягом timeout, система може перейти до наступного кроку або завершити діалог.

## Наслідки для користувачів і імплементації

### Для інтеграторів

При створенні сценаріїв для Viber важливо:

1. **Перевірити перший блок** — він повинен бути інтерактивним
2. **Додати клавіатуру або очікування вводу** — для забезпечення коректної роботи
3. **Об'єднати повідомлення** — якщо потрібно показати кілька повідомлень підряд
4. **Використати action блоки** — для відправки повідомлень без очікування відповіді

### Типові помилки

**Помилка:** Наступні повідомлення не відправляються після першого  
**Проблема:** Перший блок — пасивне повідомлення без інтерактивності  
**Рішення:** Додати клавіатуру або очікування вводу до першого блоку

**Помилка:** Сценарій "зависає" після першого повідомлення  
**Проблема:** Система очікує відповіді, але користувач не знає, що робити  
**Рішення:** Додати інструкції або кнопки для навігації

### Обмеження

- Viber вимагає взаємодії користувача після першого повідомлення
- Timeout очікування відповіді залежить від налаштувань бота
- Деякі типи повідомлень можуть не підтримуватися

## Пов'язані документи

- **Reference:** [Viber Bot API Documentation](https://developers.viber.com/docs/api/rest-bot-api/) — офіційна документація Viber
- **Explanation:** [Стилізація клавіатури у Viber](/uk/scenariodialog/explanation/viber-keyboard-styling.md) — налаштування клавіатури для Viber

