Surrika

Как проверить дубли и пропуски в сделках CRM

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

Отчеты и данные

Как считать

  1. Расчет берет сделки за последние 12 месяцев и сравнивает записи по покупателю, дате, сумме и категории.
  2. Группы с двумя и более совпадениями считаются потенциальными дублями.
  3. Отдельно считаются дни без сделок и записи без покупателя, менеджера или суммы.
  4. По каждому месяцу выводятся общее число сделок, дубли, неполные записи и их доли.

Расчет на выгрузках магазина

Пример посчитан на выгрузках вымышленного мебельного магазина: продажи сайта и трех маркетплейсов, реклама, сделки CRM и остатки за 2024-2025 годы.

Как проверить, что в CRM нет дублей сделок и пропусков по покупателям и менеджерам? Хочу увидеть, в каких месяцах записи повторяются или теряются.

Доля дублей и неполных сделок по месяцам. Вымышленный мебельный магазин

SQL, по которому посчитано

WITH bounds AS (
    SELECT date_trunc('month', max(date)) AS max_month
    FROM deals
),
months AS (
    SELECT t.month::DATE AS month
    FROM bounds,
    generate_series(bounds.max_month - INTERVAL '11 months', bounds.max_month, INTERVAL '1 month') AS t(month)
),
base AS (
    SELECT deal_id, customer_id, date, manager, category, amount
    FROM deals
    WHERE date >= (SELECT min(month) FROM months)
      AND date < (SELECT max(month) + INTERVAL '1 month' FROM months)
),
dup_groups AS (
    SELECT customer_id, date, amount, category, count(*) AS cnt
    FROM base
    WHERE customer_id IS NOT NULL
      AND amount IS NOT NULL
    GROUP BY customer_id, date, amount, category
    HAVING count(*) > 1
),
dup_deals AS (
    SELECT date, sum(cnt - 1)::INTEGER AS duplicate_deals
    FROM dup_groups
    GROUP BY date
),
incomplete_monthly AS (
    SELECT date_trunc('month', date)::DATE AS month,
           CAST(count(*) FILTER (
               WHERE customer_id IS NULL
                  OR manager IS NULL
                  OR amount IS NULL
                  OR amount <= 0
           ) AS INTEGER) AS incomplete_deals
    FROM base
    GROUP BY 1
),
daily AS (
    SELECT date, count(*) AS deals_count
    FROM base
    GROUP BY date
),
monthly AS (
    SELECT m.month,
           coalesce(sum(d.deals_count), 0)::INTEGER AS deals_count,
           coalesce(sum(dd.duplicate_deals), 0)::INTEGER AS duplicate_deals,
           date_diff('day', m.month, m.month + INTERVAL '1 month') - count(DISTINCT d.date) AS days_without_deals,
           coalesce(im.incomplete_deals, 0)::INTEGER AS incomplete_deals
    FROM months m
    LEFT JOIN daily d ON date_trunc('month', d.date)::DATE = m.month
    LEFT JOIN dup_deals dd ON dd.date = d.date
    LEFT JOIN incomplete_monthly im ON im.month = m.month
    GROUP BY m.month, im.incomplete_deals
)
SELECT
    month,
    deals_count,
    duplicate_deals,
    days_without_deals,
    incomplete_deals,
    round(
        CASE WHEN deals_count = 0 THEN 0
             ELSE duplicate_deals::DOUBLE / deals_count
        END, 4
    ) AS duplicate_share,
    round(
        CASE WHEN deals_count = 0 THEN 0
             ELSE incomplete_deals::DOUBLE / deals_count
        END, 4
    ) AS incomplete_share
FROM monthly
ORDER BY month

Где в CRM искать дубли сделок по клиенту

Выгрузите сделки за 12 месяцев из отчета по воронке или из карточки покупателя. В каждой паре проверьте номер сделки, источник, менеджера и статус, потому что совпадение суммы еще не доказывает дубль. Если один заказ разбили на несколько строк, сравните оплаты и даты отгрузки. Карточка покупателя показывает повторные покупки, их не нужно смешивать с дублями.

Как найти пропуски в сделках CRM

Сверьте месяцы с резким падением числа сделок с выгрузкой звонков и заказов сайта. Проверьте, не отключилась ли интеграция телефонии или импорт из шоурума. Пропуски по будням при ровном потоке обращений указывают на потерю записей. Провал в праздники объясняется графиком работы.

Как читать результат проверки дублей и пропусков

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

Что делать с дублями и пропусками в сделках

Не удаляйте запись сразу. Пометьте ее как дубль, привяжите к основной сделке и сохраните номер оплаты. Восстановите пустые покупателя, менеджера и сумму по звонкам и оплатам. Настройте обязательные поля для новых сделок и проверяйте выгрузку раз в неделю. Ответственного за проверку закрепите за руководителем отдела продаж.

Частые ошибки

Фильтр только по выигранным сделкам

Дубли среди проигранных и открытых сделок не попадут в проверку. Смотрите все статусы, иначе воронка останется с лишними записями.

Одинаковые сделки разных менеджеров

Два менеджера могут завести одну покупку в один день и завысить свои планы. Разбирайте такие пары на сверке воронки и фиксируйте основную сделку.

Вопросы

Что делать, если дубль нашли после закрытия месяца?

Сверьте оплаты и отчет о прибыли за этот месяц. Исправление оформите отдельной корректировкой, чтобы не переписывать закрытый период.

Что проверить при расхождении выручки в CRM с продажами?

Сверьте статусы сделок и даты оплат. Расхождение дают ручные суммы, возвраты и сделки без оплаты. Дубли объясняют только часть разницы.

Посчитайте это на своих выгрузках

Бросьте выгрузки на доску Surrika и задайте вопрос обычными словами. Ответ придет графиком, а под ним будет SQL, по которому он посчитан.

14 дней бесплатно, карта не нужна.

По теме

Все задачи