﻿---
title: Операции триггерных рассылок
description: "Панель на Laravel + Filament: триггеры, сегменты, журнал отправок, пересечения аудиторий и сбои цепочек жизненного цикла клиента."
---

## Что это за сервис

Операционная панель для менеджеров жизненного цикла клиента, CRM-маркетологов и руководителя роста. Она показывает, как работают автоматические цепочки писем — приветственные, онбординг, дожим пробного периода, возврат ушедших: срабатывают ли триггеры, кто в какой сегмент попал, что отправлено и к чему это привело. Письма по-прежнему отправляет сервис рассылок, панель отвечает за контроль.

Без такого сервиса логика триггеров разнесена между сервисом рассылок, событиями продукта и полями CRM. Один пользователь получает два похожих письма за сутки, а сломанный вебхук молча останавливает цепочку на несколько дней: сбои разбирают раз в неделю. Аудитории дожима и возврата пересекаются, растёт число отписок, а приостановленная цепочка неделями стоит без владельца.

Панель нужна продуктам с подписками, пробным периодом или долгим онбордингом, где автоматические письма заметно влияют на оплату и удержание.

## Что он делает

- **Сводит цепочки в одну таблицу.** Для каждой цепочки видны триггерное событие, сегмент, число вошедших, отправки, открытия, переходы и целевые действия.
- **Следит за здоровьем триггеров.** Если отправок меньше ожидаемого или очередь триггера стоит дольше нормы, цепочка помечается, а ответственный получает уведомление в тот же день.
- **Находит пересечения аудиторий.** Ежедневная проверка показывает пользователей, подходящих под конфликтующие цепочки, и блокирует запуск, если пересечение выше порога.
- **Закрепляет владельца.** У каждой цепочки есть ответственный и срок пересмотра; приостановленные цепочки попадают в отдельный список.
- **Ведёт версии правил.** Изменения условий триггера и сегмента сохраняются с датой и автором, чтобы связать скачок показателей с конкретной правкой.

## Нюансы и особенности

- **Сервис рассылок остаётся источником отправки.** Панель читает данные сервиса рассылок через API или выгрузки и не отправляет письма сама. Дублировать логику отправки в двух местах опасно.
- **Названия событий расходятся со временем.** Разработчики переименовывают события продукта, а условия триггера остаются прежними. Проверка должна сообщать, если событие из правила больше не приходит.
- **Активной цепочки без владельца не бывает.** Перевод в статус «Активна» требует ответственного, иначе предупреждение о сбое некому получить.
- **Для первой версии хватит четырёх наборов.** Цепочки, принадлежность к сегментам, журнал отправок и один источник целевых действий. Связь с выручкой добавляют позже.
- **Персональные данные — по минимуму.** Для контроля достаточно идентификатора пользователя; адреса и содержимое писем в панель не копируют, отписки и согласия берут из сервиса рассылок.
- **Доступ ограничивают на сервере.** Менеджер цепочки видит свои цепочки, руководитель — все, изменение порогов и схемы доступно только владельцу панели.
- **Когда хватит готового продукта.** Если все триггеры и сегменты живут в одном сервисе рассылок и его отчётов достаточно, отдельная панель не нужна. Она оправдана, когда источников событий несколько.

## Как сгенерировать через ИИ-агентов

Промпты рассчитаны на AI-агента (Claude Code, Cursor и аналоги) в Laravel-проекте с установленным **Filament 4.x**. Отправляйте их по одному: каждый шаг даёт результат, который можно проверить до перехода к следующему.

### 1. Данные и модели

```text
Создай модели и миграции для операций рассылок: Sequence (название,
триггерное событие, сегмент, статус, владелец, ожидаемый объём в день,
допустимая задержка, срок пересмотра), SequenceRuleVersion (цепочка,
условия, автор, дата), SegmentMembership (пользователь, сегмент, дата),
SendLog (цепочка, пользователь, письмо, отправлено, открыто, переход,
ошибка). Храни только идентификатор пользователя. Добавь фабрики.
```

### 2. Загрузка из сервиса рассылок

```text
Сделай фоновую задачу, которая каждый час загружает журнал отправок
и принадлежность к сегментам из сервиса рассылок через API или CSV
и пишет журнал загрузки. Повторная загрузка не создаёт дубли.
```

Проверьте, что повторный запуск задачи за тот же час не удваивает число отправок.

### 3. Ресурс цепочек

```text
Сгенерируй Filament-ресурс для Sequence: таблица с объёмом, отправками,
открытиями, переходами и целевыми действиями за период, фильтры
по статусу и владельцу, вкладки «Сбой», «Приостановлены» и «Мои».
Перевод в «Активна» без владельца запрещён. В карточке покажи версии
правил.
```

### 4. Проверки триггеров и пересечений

```text
Сделай ежедневные проверки: объём отправок ниже ожидаемого или задержка
выше допустимой помечает цепочку «Сбой» и уведомляет владельца;
пользователи, попавшие в конфликтующие цепочки, выводятся в отчёт
пересечений, а запуск блокируется при доле выше порога из конфига.
```

Проверьте на демо-данных, что остановленная загрузка даёт предупреждение, а не нулевые показатели.

### 5. Роли и виджеты

```text
Настрой роли: менеджер видит свои цепочки, руководитель — все, пороги
меняет только владелец панели. Ограничение действует в таблицах,
виджетах и экспорте. Добавь виджеты цепочек со сбоями и динамики
целевых действий.
```

## Похожие сценарии

- [Мониторинг конверсии воронки](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/funnel-conversion-monitor.md) — как письма влияют на переходы между этапами воронки.
- [Эффективность контента](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/content-performance-dashboard.md) — результаты рассылок как контентного канала.
- [Сводка маркетинговых показателей](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/analytics-overview.md) — место рассылок в общей картине по маркетингу.

## Материалы и источники

- [Refine: Lifecycle Email Operations](https://refine.dev/use-cases/marketing/lifecycle-email-operations/)
- [Filament 4.x: ресурсы](https://filamentphp.com/docs/4.x/resources/overview)
- [Filament 4.x: фильтры таблиц](https://filamentphp.com/docs/4.x/tables/filters/overview)
- [Filament 4.x: уведомления в базе данных](https://filamentphp.com/docs/4.x/notifications/database-notifications)
- [Filament 4.x: виджеты](https://filamentphp.com/docs/4.x/widgets/overview)