Единый клиент workspace

Сводная CRM-карточка — лиды + заказы + брони одного человека под одним профилем. Merge, теги, заметки, LTV.

Единый клиент workspace

Один и тот же человек обычно появляется в системе несколькими разными «следами»:

  • оставил заявку через форму на сайте — попал в project_collection;
  • оплатил заказ через агента — попал в commerce_order;
  • записался на услугу — попал в booking;
  • спросил в Telegram — попал в чат-сессию агента.

Чтобы это не превращалось в три карточки одного и того же Коли, Framix сводит их в единого клиента workspace (workspace_client).

Где смотреть

/account/crm → вкладка «Клиенты» (она же главная). Поиск по имени / email / телефону, фильтр по источнику. Для каждого клиента видно:

  • основные контакты (имя, email, телефон);
  • агрегаты: количество лидов, заказов, броней;
  • LTV — сумма всех оплаченных заказов;
  • последняя активность.

Клик по строке открывает drawer-карточку с таймлайном событий из всех трёх источников.

Что делает merge

Иногда один человек попадает в систему дважды:

  • первый раз — оставил только email;
  • второй раз — заполнил форму только с телефоном.

Тогда workspace_client создаются два. На вкладке «Клиенты» нажмите «Объединить» в карточке → выберите второго клиента → подтвердите.

После merge:

  • лиды, заказы и брони обоих переезжают на одну карточку;
  • email/phone объединяются;
  • история событий сшивается по времени.

API: POST /api/crm/clients/merge.

Что заполняется автоматически

Запись workspace_client создаётся (или обновляется) при любом событии-источнике через upsert по (workspaceId, email) или (workspaceId, phone):

ИсточникГде создаётся клиент
Форма сайтаforms/collection.post — лид в CRM с автозаполнением клиента
Заказ через сайт или агентаcreateCommerceOrder
Бронь услугиcreateBooking
Чат-агент (захват lead-контакта)captureLeadFromMessage

Email хранится в нормализованной форме (lower-case), телефон — '+' + digits. Это позволяет однозначно сопоставить «Kolya@example.com», «kolya@example.com» и +7 999 ... / 8 (999) ... как один клиент.

Что можно править вручную

В drawer-карточке клиента — поля:

  • Имя (если автозаполнение поставило что-то корявое);
  • Email и телефон (добавить дополнительный);
  • Owner — какой member workspace «ведёт» этого клиента;
  • Теги — произвольные ярлыки (#VIP, #оптовик);
  • Заметки — длинный текстовый блок для контекста.

Эти поля переживают новые автозаливы из лидов/заказов — система не перетирает их, только добавляет историю.

Где ещё всплывает карточка клиента

  • /account/commerce (заказы) → клик по покупателю в карточке заказа → открывается CRM-drawer прямо в commerce (без перехода в /account/crm).
  • /account/bookings → клик по клиенту в карточке брони → тот же drawer.
  • /account/crm → deep-link ?client=<id> открывает drawer; ?lead=<id> — конкретный лид; ?tab=leads — инбокс лидов.

Это нужно, чтобы из ленты заказов или броней можно было быстро посмотреть всю историю клиента, а не только текущий заказ.

Источники событий в таймлайне

В таймлайне drawer'а сверху-вниз показано всё, что было с этим клиентом:

  • лиды формы (вместе с данными формы);
  • заказы товаров (со статусом и суммой);
  • брони услуг (со статусом и временем);
  • ручные заметки.

Каждое событие можно открыть в источнике («Открыть лид», «Открыть заказ», «Открыть бронь»).

На этой странице