---
title: "Use Case 11: Broadcast"
description: "Маркетингова розсилка через alias entry у сценарії, Broadcast template і відкладена доставка."
level: advanced
use_case: 11
prerequisites:
  - ../basic/use-case-02-menu-branching.md
  - ../concepts.md#broadcast-vs-scenario-entry
---

# Use Case 11: Broadcast

> **Перед стартом:** прочитайте [Broadcast vs scenario entry](/uk/learn/implementer/training/concepts.md#broadcast-vs-scenario-entry). Рекомендовано підключений **Telegram** для E2E-тесту доставки.

## Необхідні права та доступ

| Модуль / налаштування | Навіщо |
|------------------------|--------|
| **Scenario Builder** | Alias entry і MessageKeyboard у сценарії |
| **Broadcast** (Розсилка) | Шаблон, вибір клієнтів, відправка |
| **Settings → Bots** | Канал (Telegram рекомендовано) |
| **Runs / Chat preview** | Перевірка alias entry до відправки |

## Бізнес-контекст

Маркетинговий або сервісний сценарій: масова розсилка з текстом, зображенням і кнопкою-посиланням. Повідомлення формується в сценарії (alias entry), а кампанія запускається з модуля Broadcast.

## Очікуваний результат

- Точка входу з **alias** у сценарії (латиницею)
- MessageKeyboard: текст, image URL, кнопка з **URL** (`open-url`)
- Broadcast template → alias action = ваш alias
- Розуміння різниці: **разова розсилка** vs **subscribe**; `send_after` / `one_time`

## Архітектура

```text
[Alias entry: training_broadcast_entry]
   → MessageKeyboard (текст + image + URL-кнопка)
        → End / опційно follow-up

[Модуль Broadcast]
   → Шаблон (alias = training_broadcast_entry)
   → Клієнти → training bot → «зараз» або за розкладом
```

## Покрокова реалізація

### Крок 1. Entry alias у сценарії

1. У Scenario Builder додайте блок **точки входу** (alias).
2. Задайте alias латиницею, наприклад: `training_broadcast_entry`.
3. Підключіть alias до MessageKeyboard.

| Параметр MessageKeyboard | Значення (приклад) |
|--------------------------|-------------------|
| Текст | «Спеціальна пропозиція! Знижка 10% до кінця тижня.» |
| Зображення | URL публічного зображення (https://…) |
| Кнопка | Текст: «Деталі» · тип: **open-url** · URL: `https://docs.connectiveone.io` |

**Edges:** після показу — End або коротке «Дякуємо».

→ [Налаштувати alias для розсилки](/uk/broadcast/how-to/configure-broadcast-alias.md)

**Self-check у Runs:** запустіть сценарій через **alias entry** (не Start) — переконайтеся, що keyboard і URL відображаються у preview.

---

### Крок 2. Шаблон Broadcast і відправка

1. **Broadcast** → створіть шаблон.
2. Поле **Alias action сценарію** = `training_broadcast_entry` (точний збіг з сценарієм).
3. Вкладка **Клієнти** → оберіть **себе** і **training bot**.
4. Заплануйте відправку або натисніть «зараз».

→ [Відправити розсилку з клієнтів](/uk/broadcast/how-to/send-broadcast-from-clients.md)

| Перевірка | Очікування |
|-----------|------------|
| Alias у шаблоні = alias у сценарії | Інакше entry не знайдено |
| Клієнт підписаний на bot + канал | Доставка в Telegram / widget |
| Runs після create кампанії | success ≠ миттєва доставка (див. крок 4) |

---

### Крок 3. Telegram vs Viber

| Канал | Кнопка URL | Примітка |
|-------|------------|----------|
| **Telegram** | `open-url` | Happy path навчання |
| **Viber** | `open-url` / `open-web-app` | Можливі помилки доставки — задокументуйте в result template |

Якщо Viber не доставляє — спрощуйте до text-only, перевірте тип кнопки, зафіксуйте спробу локально (не escalation).

→ [Підключити Telegram](/uk/channels/how-to/connect-telegram.md)

---

### Крок 4. Subscribe, autobroadcast і відкладена доставка

| Патерн | Семантика | Self-check |
|--------|-----------|------------|
| **`action_broadcast__subscribe`** | Підписка на **topic** для серії кампаній | Не плутати з разовою розсилкою Use Case 11 |
| **Broadcast template + alias** | Разова / масова кампанія з модуля Broadcast | Основний шлях цього Use Case |
| **`send_after`** | Затримка перед відправкою (хв/год) | У Runs: create success ≠ миттєва доставка в каналі |
| **`one_time`** | Одноразова відправка за подією | Повторний trigger не дублює повідомлення |

Після зміни бота або каналу: перевірте alias entry і токен каналу в **Settings → Bots → Channels**.

→ [Довідник actions — broadcast](/uk/actionjail/reference/actions-reference.md)

---

### Крок 5 (опційно). MessageKeyboard з URL — native, без Action Jail

Для кнопки з посиланням **спочатку** використовуйте native URL у MessageKeyboard (`open-url`). Action Jail — лише якщо native не покриває ваш кейс.

## Troubleshooting

| Симптом | Що перевірити |
|---------|----------------|
| Розсилка не стартує | Alias у шаблоні = alias у сценарії; bot і канал у вкладці «Клієнти» |
| Кнопка не клікабельна | `open-url` для Telegram; режим HTML/plain |
| Preview OK, Telegram — ні | Окремий шлях: токен каналу, реальний клієнт у списку |
| Дубль повідомлень | `one_time`; не запускайте кампанію двічі на того самого клієнта без потреби |

## Self-check (Runs + канал)

- [ ] Alias entry існує; один alias — без дублікатів
- [ ] Runs через alias: keyboard, image, URL-кнопка коректні
- [ ] Broadcast template посилається на той самий alias
- [ ] Розумієте різницю subscribe vs разова розсилка
- [ ] (Опційно) E2E Telegram: повідомлення отримано
- [ ] (Опційно) Viber attempt задокументовано в [results-template.md](/uk/learn/implementer/training/results-template.md)

## Самостійне завдання

Порівняйте дві кампанії: **text-only** vs **text + image + URL-кнопка**. Запишіть у result template, який канал тестували і що спрацювало.

## Довідкові посилання

- [Broadcast vs scenario entry](/uk/learn/implementer/training/concepts.md#broadcast-vs-scenario-entry)
- [Налаштувати alias для розсилки](/uk/broadcast/how-to/configure-broadcast-alias.md)
- [Відправити розсилку з клієнтів](/uk/broadcast/how-to/send-broadcast-from-clients.md)
- [Параметри MessageKeyboard](/uk/scenariobuilder/reference/message-keyboard-parameters.md)

**Наступний крок (після просунутого рівня):** [Use Case 13: Capstone](/uk/learn/implementer/training/capstone/use-case-13-integrated-bot.md)
