snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
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

This commit is contained in:
upstream-mirror
2026-09-17 23:28:13 +05:00
commit e7da97194a
32688 changed files with 4208681 additions and 0 deletions

View File

@@ -0,0 +1,149 @@
---
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) — настройка полей