Договоры: структура, статусы, фильтры и логика работы
Договор в FriendClient — это один заказ клиента целиком: от первого обращения до выполненной работы и закрытой суммы. Сотрудник работает не «в системе вообще», а внутри конкретного договора — вокруг него собирается всё остальное: кто клиент, в каком городе, что заказали, на каком этапе работа и сколько это стоит.
Когда клиент обращается в компанию — оставил вещь в чистку, заказал выезд мастера, попросил оборудование в аренду, позвонил по рекламации — это обращение нужно где-то вести: записать данные, посчитать стоимость, назначить кому-то работу и не потерять заказ по дороге. Договор и есть это место: он держит вместе все данные одного заказа и проводит его через все этапы, поэтому в любой момент видно, что с заказом происходит, и ничего не теряется.
Один и тот же клиент может обращаться много раз — каждое обращение оформляется отдельным договором, даже если Карта клиента уже заведена. Так заказы не путаются между собой, а вся история по клиенту остаётся целой. Договор создаёт оператор вручную либо система — через автоматический сценарий или внешний вызов.
Дальше — как договор устроен: с чем связан, как движется по этапам, какие данные хранит и по каким правилам живёт.
С чем связан
Договор — это узел, в котором сходятся почти все рабочие сущности системы. Большинство из них либо привязаны к договору, либо обслуживают его прохождение по этапам.
- С Картой клиента — каждый договор закреплён за одной картой; у одного клиента может быть много договоров.
- С Городом — у договора всегда один город исполнения, и от него зависит набор фильтров, доступных задач и расчётов.
- Со Статусом — у договора ровно один активный статус, который задаёт текущий этап и то, что с заказом сейчас можно делать.
- С Товарами и услугами — это позиции заказа (например, ковёр, диван, выезд, аренда), у каждой свои параметры, размер и стоимость.
- С Фильтрами — основной способ хранения данных заказа; набор фильтров зависит от статуса и города.
- С Задачами — работой по договору, созданной вручную, по Типовой задаче или по Автоматической задаче.
- С Расчётами — из них складывается итоговая стоимость договора с детализацией.
- С Документами — печатными формами (счёт, акт, чек), которые формируются по данным договора.
Жизненный цикл
Договор всегда находится в одном Статусе — это его текущий этап в процессе компании: «рассчитать стоимость», «назначить выезд», «заказ выполнен», «рекламация» и так далее. Набор статусов и их смысл администратор настраивает под свой процесс — система не предписывает жёсткую воронку.
Смена статуса — это не просто пометка, а полноценное событие, которое перестраивает договор. При переходе:
- перестраивается набор Фильтров — неактуальные для нового статуса удаляются, появляются нужные именно на этом этапе;
- назначаются и автоматически отклоняются Задачи;
- меняется список доступных Типовых задач;
- срабатывают Автоматические задачи, подходящие под новые условия.
Двигать договор по статусам можно вручную в форме договора или через выполнение задач — когда исполнитель завершает или отклоняет задачу, договор переходит на заранее настроенный для этого статус.
Какие данные хранит
В одном договоре собрано всё, что описывает заказ:
- данные обращения — номер телефона и свободный комментарий;
- связь с клиентом, текущий статус и город исполнения;
- значения фильтров — параметры заказа;
- список товаров и услуг;
- итоговую стоимость и детализацию расчётов.
Большую часть параметров заказа договор хранит именно через Фильтры — это его главный способ хранения данных, а не набор жёстко заданных полей. Поэтому состав видимых полей договора меняется от этапа к этапу и настраивается без участия разработчика.
Правила и ограничения
Эти правила обеспечивают целостность заказа, и на них стоит опираться при настройке процесса:
- договор не может существовать без номера телефона, статуса, клиента и города;
- при смене статуса неактуальные фильтры автоматически удаляются;
- при переходе между статусами система проверяет, что заполнены все фильтры договора и все обязательные фильтры товаров и услуг в его составе.
Типичные сценарии
Первичное обращение. Клиент звонит или пишет — оператор создаёт договор, выбирает город и статус, вносит телефон, заполняет появившиеся под этот статус и город фильтры и добавляет товары и услуги с их параметрами (например, размер изделия или количество). При сохранении система сама считает стоимость по расчётам, прогоняет автоматические задачи и создаёт нужные — скажем, задачу исполнителю на выезд, — и записывает изменение в историю.
Выезд и выполнение. По договору создана задача на выезд; специалист открывает её на странице «Мои задачи», печатает нужные документы, выполняет работу, заполняет обязательные фильтры этапа и завершает задачу. Договор переходит в статус «заказ выполнен», а автоматика ставит оператору следующую задачу — например, «получить обратную связь».
Договор движется сам. Часть шагов проходит вообще без оператора: системная автоматика действием «Обновить договор» переводит его в нужный статус и запускает пересчёт, а «Скопировать договор» создаёт копию заказа — это удобно для повторяющихся обращений. Такие действия CRM выполняет сама и закрывает соответствующую задачу.
История изменений
У каждого договора всегда есть история. При каждом сохранении система записывает полный снимок ключевых данных договора на этот момент: кто внёс изменение, когда, в каком статусе и городе, с какой стоимостью, каким клиентом и комментарием. Хранится не разница, а полное состояние — поэтому по истории можно восстановить, как заказ выглядел в любой момент времени.
Историю видно в Карте клиента; она нужна, чтобы понять, кто и когда менял заказ, разобрать спорную ситуацию или собрать аналитику. Записи неизменяемы: их нельзя отредактировать, удалить или создать вручную — каждая правка договора просто добавляет новую запись, а порядок записей строго хронологический.
Частые вопросы
- Как вести несколько заказов одного клиента? Каждое обращение — это отдельный договор, при этом все они привязаны к одной Карте клиента. Так история по клиенту остаётся целой, а заказы не путаются между собой.
- Почему договор не сохраняется? Чаще всего не хватает обязательного: номера телефона, статуса, клиента или города — без них договор не создаётся. Вторая частая причина — при переходе статуса не заполнены все фильтры договора или обязательные фильтры его товаров и услуг.
- Куда пропали фильтры после смены статуса? Это не потеря данных: при смене статуса неактуальные фильтры удаляются, а вместо них появляется набор, привязанный к новому статусу и городу. Каждый этап показывает свои поля.
- Что будет со стоимостью, если добавить товар или изменить фильтр? Стоимость пересчитывается при сохранении договора: система заново прогоняет расчёты и обновляет детализацию. Пока изменение не сохранено, итог не меняется.
- Можно ли объединить два договора одного клиента? Нет, договоры не сливаются: каждое обращение остаётся отдельным договором. Общая картина по клиенту видна через его карту, к которой привязаны все договоры.
Диагностика: договор ведёт себя не так
Договор не сохраняется или не переходит на следующий статус. Проверьте обязательные данные (телефон, статус, клиент, город) и заполненность фильтров — переход между статусами требует, чтобы были заполнены все фильтры договора и обязательные фильтры его товаров и услуг.
При сохранении не создалась ожидаемая задача. Договор при сохранении прогоняет Автоматические задачи; если задача не появилась, сверьте её условия со статусом, городом, днём и фильтрами договора — несовпадение любого условия отменяет создание.
Стоимость посчиталась не так, как ожидалось. Итог складывается из Расчётов, применяемых в заданном порядке; неожиданный результат обычно объясняется условиями расчёта (фильтр-триггер, город, статус) или порядком их применения. Если строка детализации «исчезла» после пересчёта — значит, условия этого расчёта перестали выполняться, а не потеря данных.