# Реализация конвертации лидов в CRM

## 1. Введение

В этом руководстве мы шаг за шагом покажем, как в NocoBase реализовать функцию конвертации сделок (Opportunity Conversion) в CRM. Расскажем, как создать необходимые collections (таблицы), настроить страницы управления данными, спроектировать процесс конвертации и связи между объектами, чтобы Вы смогли успешно построить весь бизнес-процесс.

[Решение NocoBase CRM теперь доступно — приглашаем попробовать!](https://www.nocobase.com/cn/blog/crm-solution)

## 2. Подготовка: создание необходимых collections

Перед началом подготовим 4 collections и настроим связи между ними.

### 2.1 Collection LEAD (Лид)

Хранит информацию о потенциальных клиентах. Поля:


| Field name     | Отображаемое название | Field interface  | Description                                                              |
| -------------- | --------------------- | ---------------- | ------------------------------------------------------------------------ |
| id             | **Id**                | Integer          | Первичный ключ                                                            |
| account_id     | **account_id**        | Integer          | Внешний ключ ACCOUNT                                                      |
| contact_id     | **contact_id**        | Integer          | Внешний ключ CONTACT                                                      |
| opportunity_id | **opportunity_id**    | Integer          | Внешний ключ OPPORTUNITY                                                  |
| name           | **Имя лида**          | Single line text | Имя потенциального клиента                                                |
| company        | **Компания**          | Single line text | Название компании потенциального клиента                                  |
| email          | **Email**             | Email            | Email-адрес потенциального клиента                                        |
| phone          | **Телефон**           | Phone            | Контактный телефон                                                        |
| status         | **Статус**            | Single select    | Текущий статус (не квалифицирован, новый, в работе, в подогреве, в сделке, завершено) |
| Account        | **Компания**          | Many to one      | Связь с Collection компаний                                               |
| Contact        | **Контакт**           | Many to one      | Связь с Collection контактов                                              |
| Opportunity    | **Сделка**            | Many to one      | Связь с Collection сделок                                                 |

### 2.2 Collection ACCOUNT (Компания)

Хранит подробную информацию о компаниях. Поля:


| Field name | Отображаемое название | Field interface  | Description                  |
| ---------- | --------------------- | ---------------- | ---------------------------- |
| name       | **Название**          | Single line text | Название аккаунта (компании) |
| industry   | **Отрасль**           | Single select    | Отрасль аккаунта             |
| phone      | **Телефон**           | Phone            | Контактный телефон           |
| website    | **Сайт**              | URL              | Официальный сайт             |

### 2.3 Collection CONTACT (Контакт)

Хранит информацию о контактах:


| Field name | Отображаемое название | Field interface  | Description       |
| ---------- | --------------------- | ---------------- | ----------------- |
| name       | **Имя**               | Single line text | Имя контакта      |
| email      | **Email**             | Email            | Email контакта    |
| phone      | **Телефон**           | Phone            | Телефон контакта  |

### 2.4 Collection OPPORTUNITY (Сделка)

Хранит информацию о сделках. Поля:


| Field name | Отображаемое название | Field interface  | Description                                                              |
| ---------- | --------------------- | ---------------- | ------------------------------------------------------------------------ |
| name       | **Название**          | Single line text | Название сделки                                                           |
| stage      | **Стадия**            | Single select    | Стадия сделки (квалификация, потребности, КП, переговоры, закрытие, успех, провал) |
| amount     | **Сумма**             | Number           | Сумма сделки                                                              |
| close_date | **Дата закрытия**     | Datetime         | Ожидаемая дата закрытия                                                   |

## 3. Понимание процесса конвертации сделки

### 3.1 Стандартный процесс

Обычно сделка проходит следующий путь от лида к официальной сделке:

![20250225211802](https://static-docs.nocobase.com/20250225211802.png)

### 3.2 Описание связей

Предположим, Вы успешно создали 4 collections и настроили деловые связи между ними:

![Связи](https://static-docs.nocobase.com/20250225090913.png)

## 4. Создание страниц управления данными

В рабочем пространстве NocoBase создайте страницы управления данными для каждой collection и наполните их случайными лидами для последующего тестирования.

![Страницы управления](https://static-docs.nocobase.com/20250224234721.png)

## 5. Реализация конвертации сделки

В этом разделе мы покажем, как преобразовать лид в записи компании, контакта и сделки и предотвратить повторный запуск конвертации.

### 5.1 Создание операции редактирования «Конвертировать»

В детальной странице лида создайте операцию редактирования с названием «Конвертировать». В открывающемся всплывающем окне настройте следующее:

#### 5.1.1 Отображение базовой информации лида

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

#### 5.1.2 Поля связей

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

![Связные поля](https://static-docs.nocobase.com/20250224234155.png)

#### 5.1.3 Настройка значений по умолчанию для быстрого создания

В настройках всплывающего окна «Быстрое создание» настройте значения по умолчанию для каждого связного поля — так данные лида будут автоматически переноситься в целевые collection. Маппинг:

- Лид/Имя лида → Компания/Название
- Лид/Email → Компания/Email
- Лид/Телефон → Компания/Телефон
- Лид/Имя лида → Контакт/Имя
- Лид/Email → Контакт/Email
- Лид/Телефон → Контакт/Телефон
- Лид/Имя лида → Сделка/Название
- Лид/Статус → Сделка/Стадия

Скриншоты конфигурации:

![Маппинг 1](https://static-docs.nocobase.com/20250225000218.png)

Теперь добавим к операции отправки дружелюбное уведомление:
![20250226154935](https://static-docs.nocobase.com/20250226154935.png)
![20250226154952](https://static-docs.nocobase.com/20250226154952.png)

Эффект отправки:
![Маппинг 2](https://static-docs.nocobase.com/20250225001256.png)

#### 5.1.4 Проверка результата конвертации

После настройки при выполнении операции конвертации система автоматически создаёт и связывает новые записи компании, контакта и сделки. Пример:

![](https://static-docs.nocobase.com/202502252130-transfer1.gif)
![](https://static-docs.nocobase.com/202502252130-transfer2.gif)

### 5.2 Защита от повторной конвертации

Чтобы один и тот же лид нельзя было сконвертировать несколько раз, добавим ограничение:

#### 5.2.1 Обновление статуса лида

В операции отправки формы конвертации добавьте автоматическое обновление данных, меняющее статус лида на «Сконвертирован».

Скриншоты:

![Обновление статуса 1](https://static-docs.nocobase.com/20250225001758.png)
![Обновление статуса 2](https://static-docs.nocobase.com/20250225001817.png)
Демонстрация:
![202502252130-transfer](https://static-docs.nocobase.com/202502252130-transfer.gif)

#### 5.2.2 Правила связности кнопки

Добавьте правило связности кнопки конвертации: когда статус лида равен «Сконвертирован», кнопка автоматически скрывается, что предотвращает повторные операции.

Скриншоты:

![Связность кнопки 1](https://static-docs.nocobase.com/20250225001838.png)
![Связность кнопки 2](https://static-docs.nocobase.com/20250225001939.png)
![Связность кнопки 3](https://static-docs.nocobase.com/20250225002026.png)

## 6. Настройка блоков связанных записей на детальных страницах

Чтобы пользователи могли видеть связанные данные на детальных страницах каждой Collection, нужно настроить соответствующие list-блоки или блоки деталей.

### 6.1 Детальная страница Collection компании

На детальной странице компании (например, во всплывающем окне редактирования/деталей контактов) добавьте следующие list-блоки:

- list контактов
- list сделок
- list лидов

Пример:

![Детали компании](https://static-docs.nocobase.com/20250225085418.png)

### 6.2 Добавление условий фильтрации

Для каждого list-блока добавьте условия фильтрации, чтобы отображались только записи, связанные с текущим ID компании.

Скриншоты:

![Фильтр 1](https://static-docs.nocobase.com/20250225085513.png)
![Фильтр 2](https://static-docs.nocobase.com/20250225085638.png)

### 6.3 Детальные страницы контактов и сделок

Во всплывающем окне деталей контакта добавьте:

- list сделок
- детали компании
- list лидов (с фильтром по ID)

Скриншот:

![Детали контакта](https://static-docs.nocobase.com/20250225090231.png)

На детальной странице сделки также добавьте:

- list контактов
- детали компании
- list лидов (с фильтром по ID)

Скриншот:

![Детали сделки](https://static-docs.nocobase.com/20250225091208.png)

## 7. Итоги

Следуя описанным шагам, Вы успешно реализовали базовую функцию конвертации сделок CRM и настроили связи между контактами, компаниями и лидами. Надеемся, что это руководство в понятной и пошаговой форме помогло Вам разобраться с построением такого бизнес-процесса и сделает работу с проектом удобнее и эффективнее.

---

Если возникнут вопросы, заходите в [сообщество NocoBase](https://forum.nocobase.com) или загляните в [официальную документацию](https://docs-cn.nocobase.com). Надеемся, это руководство поможет Вам реализовать модерацию регистрации под Ваши задачи и при необходимости расширить её. Удачной работы и успешного проекта!
