Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 3s
150 lines
9.0 KiB
Plaintext
150 lines
9.0 KiB
Plaintext
---
|
||
title: Показать ожидаемую сумму на вашей конвейере
|
||
description: Рассчитывайте и отображайте взвешенные значения сделок на основе вероятности по этапам.
|
||
---
|
||
|
||
«Ожидаемая сумма» — вычисляемое значение: **Сумма × Вероятность**. Это помогает прогнозировать выручку, взвешивая сделки по вероятности их закрытия.
|
||
|
||
<Tip>
|
||
Это пример создания [Полей формул](/l/ru/user-guide/workflows/how-tos/crm-automations/formula-fields) с помощью рабочих процессов.
|
||
</Tip>
|
||
|
||
В этом руководстве показана настройка пользовательских полей и рабочих процессов, необходимых для расчета и отображения ожидаемых сумм в вашей воронке.
|
||
|
||
## Шаг 1: Создайте пользовательские поля
|
||
|
||
В объекте «Сделки» вам нужны два пользовательских поля.
|
||
|
||
### Создайте поле «Вероятность»
|
||
|
||
1. Перейдите в **Настройки → Модель данных → Сделки**
|
||
2. Нажмите **+ Добавить поле**
|
||
3. Настроить:
|
||
* **Название**: Вероятность
|
||
* **Тип**: Число
|
||
* **Описание**: Вероятность в зависимости от этапа (0–100%)
|
||
4. Нажмите **Сохранить**
|
||
|
||
### Создайте поле «Ожидаемая сумма»
|
||
|
||
1. Нажмите **+ Добавить поле**
|
||
2. Настроить:
|
||
* **Название**: Ожидаемая сумма
|
||
* **Тип**: Валюта
|
||
* **Описание**: Вычисляется: Сумма × Вероятность
|
||
3. Нажмите **Сохранить**
|
||
|
||
### Необязательно: сделайте поля доступными только для чтения для пользователей
|
||
|
||
Если вы не хотите, чтобы пользователи вручную редактировали эти вычисляемые поля:
|
||
|
||
1. Перейдите в **Настройки → Участники → Роли**
|
||
2. Выберите роль для настройки
|
||
3. Найдите объект «Сделки»
|
||
4. Установите поля **Вероятность** и **Ожидаемая сумма** как доступные только для чтения
|
||
|
||
Это гарантирует, что обновлять эти значения смогут только рабочие процессы.
|
||
|
||
## Шаг 2: Создайте рабочий процесс №1 — обновление вероятности при изменении этапа
|
||
|
||
Этот рабочий процесс автоматически устанавливает «Вероятность», когда сделка переходит на новый этап.
|
||
|
||
### Создайте рабочий процесс
|
||
|
||
1. Перейдите в **Рабочие процессы**
|
||
2. Нажмите **+ Новый рабочий процесс**
|
||
3. Назовите его "Обновление вероятности при изменении этапа"
|
||
|
||
### Настройте триггер
|
||
|
||
1. Добавьте триггер **Запись создана или обновлена**
|
||
2. Выберите **Сделки** в качестве объекта
|
||
3. Фильтр: поле **Этап** обновлено
|
||
|
||
### Добавьте ветки для каждого этапа
|
||
|
||
Создайте ветку для каждого этапа с его вероятностью:
|
||
|
||
| Этап | Вероятность |
|
||
| ------------------- | ----------- |
|
||
| Новый | 10% |
|
||
| Проверенные | 25% |
|
||
| Встреча | 40% |
|
||
| Предложение | 60% |
|
||
| Переговоры | 80% |
|
||
| Закрыта — Выиграна | 100% |
|
||
| Закрыта — Проиграна | 0% |
|
||
|
||
<Note>
|
||
Чтобы создать новую ветку, щелкните правой кнопкой мыши на холсте рабочего процесса и нажмите **Новое действие**. Затем свяжите это действие с предыдущим узлом, перетащив стрелку от предыдущего узла к этому новому действию.
|
||
</Note>
|
||
|
||
Для каждого этапа:
|
||
|
||
1. Добавьте узел **Фильтр**: Этап = [название этапа]
|
||
2. Добавьте действие **Обновить запись**:
|
||
* Запись: инициировавшая срабатывание сделка
|
||
* Поле: Вероятность
|
||
* Значение: [вероятность для этого этапа]
|
||
|
||
### Рассчитать «Ожидаемую сумму»
|
||
|
||
После объединения веток:
|
||
|
||
1. Добавьте узел **Фильтр**: поле Сумма не пусто
|
||
2. Добавьте действие **Обновить запись**:
|
||
* Запись: инициировавшая срабатывание сделка
|
||
* Поле: Ожидаемая сумма
|
||
* Значение: Сумма × Вероятность
|
||
|
||
## Шаг 3: Создайте рабочий процесс №2 — пересчет при изменении суммы
|
||
|
||
Этот рабочий процесс обновляет «Ожидаемую сумму», когда изменяется «Сумма» сделки.
|
||
|
||
### Создайте рабочий процесс
|
||
|
||
1. Перейдите в **Рабочие процессы**
|
||
2. Нажмите **+ Новый рабочий процесс**
|
||
3. Назовите его "Пересчет «Ожидаемой суммы» при изменении «Суммы»"
|
||
|
||
### Настройте триггер
|
||
|
||
1. Добавьте триггер **Запись создана или обновлена**
|
||
2. Выберите **Сделки** в качестве объекта
|
||
3. Фильтр: поле **Сумма** обновлено
|
||
|
||
### Добавьте логику
|
||
|
||
1. Добавьте узел **Фильтр**: поле Сумма не пусто
|
||
2. Добавьте действие **Обновить запись**:
|
||
* Запись: инициировавшая срабатывание сделка
|
||
* Поле: Ожидаемая сумма
|
||
* Значение: Сумма × Вероятность
|
||
|
||
## Шаг 4: Отображение в вашей воронке
|
||
|
||
Теперь покажите итоги по «Ожидаемой сумме» в вашем канбан-представлении:
|
||
|
||
1. Откройте канбан-представление **Воронка продаж**
|
||
2. Нажмите на **число** рядом с названием любого этапа в верхней части столбца
|
||
3. Выберите **Сумма**
|
||
4. Выберите **Ожидаемая сумма**
|
||
|
||
Теперь каждый столбец показывает общую взвешенную сумму воронки для этого этапа.
|
||
|
||
## Резюме
|
||
|
||
| Компонент | Назначение |
|
||
| -------------------------- | ------------------------------------------------------------------------------------ |
|
||
| **Поле «Вероятность»** | Хранит вероятность выигрыша в зависимости от этапа |
|
||
| **Поле «Ожидаемая сумма»** | Хранит значение «Сумма × Вероятность» |
|
||
| **Рабочий процесс №1** | Обновляет «Вероятность» при изменении «Этапа», затем пересчитывает «Ожидаемую сумму» |
|
||
| **Рабочий процесс №2** | Пересчитывает «Ожидаемую сумму» при изменении «Суммы» |
|
||
| **Агрегация** | Отображает сумму поля «Ожидаемая сумма» по каждому этапу |
|
||
|
||
## Связанные материалы
|
||
|
||
* [Поля формул](/l/ru/user-guide/workflows/how-tos/crm-automations/formula-fields) — создавайте вычисляемые поля с помощью рабочих процессов
|
||
* [Канбан-представления](/l/ru/user-guide/views-pipelines/capabilities/kanban-views) — агрегации столбцов
|
||
* [Как создать пользовательские поля](/l/ru/user-guide/data-model/how-tos/create-custom-fields) — настройка полей
|