Broadcasts
Управление email broadcast кампаниями, аудиториями и отслеживание доставки писем.
Обзор
Функциональность broadcasts включает:
- Создание и редактирование broadcast кампаний
- Управление аудиториями получателей
- Отправка кампаний (немедленно или по расписанию)
- Трекинг доставки, открытий, кликов
- Аудит-лог всех email событий
- Детальная информация по каждому получателю
Навигация
| Страница | URL | Описание |
|---|---|---|
| Broadcasts | /admin/broadcasts | Список всех broadcast кампаний |
| Detail | /admin/broadcasts/:id | Детальная страница кампании |
Страницы
Список Broadcasts
URL: /admin/broadcasts
DataTable со всеми broadcast кампаниями. Колонки:
- Title — название кампании
- Audience — целевая аудитория
- Status — статус (draft, scheduled, sent, failed)
- Recipients — количество получателей
- Delivered — успешно доставлено
- Opened — количество открытий
- Created — дата создания
Возможности:
- Создание новой кампании (FAB кнопка)
- Поиск по названию
- Фильтрация по статусу
- Переход к деталям кампании
Детальная страница Broadcast
URL: /admin/broadcasts/:id
Содержит вкладки:
Overview Tab
Основная информация о кампании:
- Идентификаторы (broadcast ID, audience ID)
- Название и subject письма
- Статус и дата отправки
- Кнопки действий (Edit, Send, Delete)
Статистика:
- Total Recipients, Delivered, Opened, Clicked
- Bounced, Complained
Recipients Tab
Таблица получателей кампании с пагинацией:
- Email адрес
- Статус доставки (pending, delivered, bounced и т.д.)
- Дата доставки, открытия, клика
Фильтрация по статусу.
Events Tab
Аудит-лог всех email событий:
- Тип события (delivered, opened, clicked, bounced, complained)
- Email адрес
- Дата события
- Метаданные
Интерфейсы
IBroadcast
typescript
interface IBroadcast {
id: string;
title: string;
subject: string;
content: string;
status: string; // draft | scheduled | sent | failed
audienceId?: string;
audienceName?: string;
from: string;
scheduledAt?: string;
sentAt?: string;
totalRecipients: number;
delivered: number;
opened: number;
clicked: number;
bounced: number;
complained: number;
createdAt: string;
updatedAt: string;
}IBroadcastRecipient
typescript
interface IBroadcastRecipient {
id: string;
broadcastId: string;
email: string;
status: string; // pending | sent | delivered | bounced | complained
deliveredAt?: string;
openedAt?: string;
clickedAt?: string;
bouncedAt?: string;
createdAt: string;
}IEmailEvent
typescript
interface IEmailEvent {
id: string;
emailId: string;
broadcastId?: string;
type: string; // delivered | opened | clicked | bounced | complained
email: string;
metadata?: Record<string, unknown>;
createdAt: string;
}IAudience
typescript
interface IAudience {
id: string;
name: string;
contactsCount: number;
createdAt: string;
updatedAt: string;
}IAudienceContact
typescript
interface IAudienceContact {
id: string;
audienceId: string;
email: string;
firstName?: string;
lastName?: string;
unsubscribed: boolean;
createdAt: string;
}BroadcastsService
Методы сервиса:
| Метод | Описание |
|---|---|
getBroadcasts(params?) | Список broadcasts с пагинацией |
getBroadcastById(id) | Получить broadcast по ID |
createBroadcast(data) | Создать новую кампанию |
updateBroadcast(id, data) | Обновить кампанию |
deleteBroadcast(id) | Удалить кампанию |
sendBroadcast(id, data?) | Отправить кампанию |
getBroadcastRecipients(broadcastId, params?) | Список получателей |
getEmailEvents(params?) | Email события |
getAudiences(params?) | Список аудиторий |
getAudienceById(id) | Аудитория по ID |
getAudienceContacts(audienceId, params?) | Контакты аудитории |
Смотри полную документацию сервисов.
Диалоги
BroadcastDialogComponent
Создание и редактирование broadcast. Поля формы:
title— название кампанииsubject— тема письмаcontent— HTML контентfrom— email отправителяaudienceId— выбор аудитории
Status Variants
| Статус | Вариант |
|---|---|
| draft | warning |
| scheduled | info |
| sent | success |
| failed | error |
Следующие шаги
- Биллинг — управление тарифами и подписками
- Сервисы — полная документация API
- Интерфейсы — TypeScript типы