﻿---
title: Воронка продлений клиентов
description: "Сервис на Laravel + Filament: единая шкала продлений клиентских договоров, напоминания за 90/60/30 дней, риск, допродажи и прогноз продлений."
---

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

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

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

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

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

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

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

- **Одна дата — один источник.** Даты продлений из биллинга, CRM и таблиц сводятся в одну таблицу с указанием источника. Расхождения между источниками выносятся в очередь проверки, а не перезаписываются молча.
- **Напоминаний несколько.** Одно напоминание легко пропустить. Окна 90/60/30 дней — пример; для разных сегментов и сумм договора их настраивают отдельно.
- **Оценка риска — по фактам.** Оценку строят на использовании продукта и обращениях в поддержку, а не на ощущении менеджера. Формулу и веса хранят как настройку.
- **Продление и расширение — в одной записи.** Если допродажи ведутся отдельно, менеджер обсуждает с клиентом только продление и упускает рост договора.
- **Многолетние договоры.** Срок договора — просто даты. Продление через 12 или 36 месяцев обрабатывается теми же окнами напоминаний.
- **Доступ по ролям.** Менеджер видит свои продления, руководитель — весь портфель, финансы — сводный прогноз. Ограничение действует на сервере, включая выгрузки.
- **Интеграция без миграции.** Биллинг и CRM подключаются через API или read-only доступ к нужным таблицам. Если в биллинге уже есть отчёт по продлениям, которому доверяют, может хватить его и уведомлений.

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

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

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

```text
Создай модели и миграции для воронки продлений: Account (внешний id,
сегмент, ответственный, оценка состояния), Contract (клиент, дата начала,
дата окончания, сумма, источник даты, срок в месяцах), Renewal (договор,
ответственный, дата назначения, статус, вероятность, сумма продления,
сумма расширения, следующий шаг, срок), RenewalAlert (продление, окно
в днях, дата отправки). Добавь фабрики с договорами на 12 и 36 месяцев.
```

### 2. Сведение источников

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

Проверьте, что расхождение дат попадает в очередь, а не теряется.

### 3. Шкала продлений

```text
Сгенерируй Filament-ресурс для Renewal: вкладки «90 дней», «60 дней»,
«30 дней», «Просрочено»; колонки оценки состояния, суммы продления
и расширения, ответственного и следующего шага; фильтры по сегменту
и владельцу; действие «Назначить следующий шаг» с обязательным сроком.
```

### 4. Напоминания и назначение владельца

```text
Добавь задачу по расписанию: за 120 дней до окончания договора создавать
Renewal и назначать ответственного по правилам; отправлять уведомления
в окнах из конфига по сегментам, не повторяя уже отправленное окно.
```

### 5. Прогноз, доступ и экспорт

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

Войдите под менеджером и убедитесь, что прогноз считается только по его продлениям.

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

- [Состояние клиентской базы](https://wpcraft.ru/kb/stacks/filament/use-cases/sales/account-health-dashboard.md) — откуда берётся оценка риска продления.
- [Точность прогноза продаж](https://wpcraft.ru/kb/stacks/filament/use-cases/sales/forecast-accuracy-dashboard.md) — как сверять прогноз продлений с фактом.
- Чем отличается от [отслеживания продлений договоров](https://wpcraft.ru/kb/stacks/filament/use-cases/operations/contract-renewal-tracker.md): там продлеваются договоры с поставщиками и подрядчиками, а здесь — договоры и подписки клиентов, приносящие выручку.

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

- [Refine: Renewal Pipeline Tracker](https://refine.dev/use-cases/sales/renewal-pipeline-tracker/)
- [Filament 4.x: ресурсы](https://filamentphp.com/docs/4.x/resources/overview)
- [Filament 4.x: вкладки списка записей](https://filamentphp.com/docs/4.x/resources/listing-records)
- [Filament 4.x: уведомления](https://filamentphp.com/docs/4.x/notifications/overview)