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

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

Инструмент для менеджеров исходящих продаж и их руководителя. Он показывает, на каком шаге цепочки писем и звонков находится каждый потенциальный клиент, кого нужно коснуться сегодня и какие шаги цепочки работают.

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

Разумная первая версия — загрузка событий из почтового сервиса, план касаний на день и автоматическая пауза при отказе или ответе. Сравнение вариантов писем и оценку темпа менеджеров подключают позже, когда по каждой цепочке наберётся достаточно отправок, чтобы разница в доле ответов была не случайной.

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

- **Показывает план на день.** Каждый менеджер видит лиды, которым сегодня положено касание, с номером шага и датой следующего контакта.
- **Считает метрики по шагам.** Доля ответов, отказов доставки и открытий собирается по цепочке, шагу и менеджеру.
- **Останавливает цепочку при отказе.** Отказ доставки, отписка или ответ клиента ставят лид на паузу до следующего шага и переносят его в очередь разбора.
- **Сравнивает темп с планом.** Руководитель видит, сколько касаний сделал каждый менеджер относительно дневной нормы.
- **Помогает выбрать лучший вариант.** Параллельные цепочки с разными текстами на одном шаге сравниваются по доле ответов.

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

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

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

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

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

```text
Создай модели и миграции для трекера цепочек касаний: Sequence (название,
вариант, владелец, активность), SequenceStep (цепочка, номер, тип: письмо,
звонок, задача; задержка в днях), Enrollment (лид, цепочка, менеджер,
текущий шаг, дата следующего касания, статус: активна, пауза, ответил,
завершена), Touch (зачисление, шаг, тип, персональное или массовое, дата,
результат: доставлено, открыто, ответ, отказ, отписка). Добавь уникальность:
у лида одна активная цепочка. Добавь фабрики.
```

### 2. Загрузка событий из почтового сервиса

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

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

### 3. План на день

```text
Сгенерируй Filament-страницу «Касания на сегодня» для менеджера: лиды
с датой следующего касания сегодня или раньше, просроченные вверху,
номер шага и процент прохождения цепочки. Действия: «Отметить касание»
с типом и результатом, «Поставить на паузу», «Завершить».
```

### 4. Метрики по шагам

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

### 5. Руководитель и доступ

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

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

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

- [Управление лидами](https://wpcraft.ru/kb/stacks/filament/use-cases/sales/lead-management.md) — откуда лиды попадают в цепочку.
- [Активность менеджеров](https://wpcraft.ru/kb/stacks/filament/use-cases/sales/sales-activity-scoreboard.md) — касания как часть общей активности команды.
- [Триггерные рассылки маркетинга](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/lifecycle-email-operations.md) — автоматические письма по жизненному циклу клиента, а не персональные продажи.

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

- [Refine: Outbound Sequence Tracker](https://refine.dev/use-cases/sales/outbound-sequence-tracker/)
- [Filament 4.x: таблицы](https://filamentphp.com/docs/4.x/tables/overview)
- [Filament 4.x: действия](https://filamentphp.com/docs/4.x/actions/overview)
- [Filament 4.x: импорт](https://filamentphp.com/docs/4.x/actions/import)