Можно ли понять что контакт между продавцом и покупателем близок к сделке по их общению?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Определение близости контакта к сделке по анализу общения
Да, можно! Это один из самых эффективных инструментов для прогнозирования сделок. Расскажу о различных подходах.
1. Поведенческие сигналы (Intent Signals)
В общении между продавцом и покупателем есть четкие индикаторы, которые говорят о близости к сделке.
Ранние сигналы интереса:
- Первый контакт установлен
- Покупатель ответил на письмо (любой ответ)
- Выражено общее согласие на обсуждение
Сигналы квалификации:
- Покупатель задает конкретные вопросы о функциях
- Упоминает сроки ("нам нужно это до декабря")
- Называет бюджет ("у нас есть 50k на это")
- Упоминает решающего человека ("мне нужно согласовать с CFO")
Сигналы близости к сделке:
- Обсуждение условий оплаты
- Запрос на контакты чья-то еще (регулярный персонал)
- Вопросы о имплементации и сроках внедрения
- Обсуждение контракта или SLA
- Упоминание компетиторов ("как вы отличаетесь от X?")
- Запрос на пробный период
- Обсуждение дат подписания
Сигналы отказа:
- Долгое молчание без объяснений (>10 дней без ответа)
- Покупатель говорит: "вернемся к этому позже"
- Упоминание конкурента как уже выбранного решения
- Вопросы, которые были заданы раньше (забыл / не интересует)
2. Метрика контактной активности
Индикаторы высокой активности (близко к сделке):
- Частота контактов: 3+ сообщений в неделю
- Время ответа: <2 часов (срочно)
- Инициатор: покупатель часто инициирует
- Участники: растет количество участников с покупателя
- Каналы: переход от email к видеовстречам/звонкам
Индикаторы низкой активности (далеко от сделки):
- Частота: 1 сообщение в месяц
- Время ответа: >5 дней
- Инициатор: всегда продавец инициирует
- Участники: только один контактный человек
- Каналы: только email
SQL для отслеживания активности:
WITH contact_metrics AS (
SELECT
contact_id,
COUNT(*) as total_messages,
COUNT(CASE WHEN sender = 'buyer' THEN 1 END) as buyer_initiated,
COUNT(CASE WHEN sender = 'seller' THEN 1 END) as seller_initiated,
AVG(response_time_minutes) as avg_response_time,
MAX(created_at) as last_message_date,
EXTRACT(DAY FROM NOW() - MAX(created_at)) as days_since_last_message,
COUNT(DISTINCT DATE(created_at)) as days_active
FROM messages
WHERE contact_id = $1
GROUP BY contact_id
)
SELECT
contact_id,
total_messages,
buyer_initiated,
ROUND(100.0 * buyer_initiated / total_messages, 1) as buyer_initiation_rate,
ROUND(avg_response_time, 0) as avg_response_minutes,
days_since_last_message,
days_active,
CASE
WHEN total_messages > 10 AND buyer_initiated > seller_initiated AND avg_response_time < 240 AND days_since_last_message < 7
THEN 'HIGH'
WHEN total_messages > 5 AND days_since_last_message < 14 THEN 'MEDIUM'
ELSE 'LOW'
END as deal_proximity
FROM contact_metrics;
3. Анализ ключевых слов и тем
Можно использовать NLP для анализа текста сообщений.
Слова, указывающие на близость к сделке:
| Уровень | Ключевые слова |
|---|---|
| Осведомленность | интересно, расскажите, как работает, цена |
| Рассмотрение | сравниваем, аналоги, преимущества, ROI |
| Решение | готовы, подписываем, когда начинать, контракт |
Пример:
- "Интересно!" — слабый сигнал
- "Готовы подписать контракт на этой неделе" — сильный сигнал
Python пример для простого анализа:
from collections import Counter
import re
dealing_keywords = {
'contract': 'dealing',
'signature': 'dealing',
'implement': 'dealing',
'timeline': 'dealing',
'pricing': 'dealing',
'deal': 'dealing',
'interested': 'considering',
'demo': 'considering',
'features': 'considering',
'question': 'early'
}
def analyze_message(text):
words = text.lower().split()
signals = []
for word in words:
if word in dealing_keywords:
signals.append(dealing_keywords[word])
return Counter(signals)
# Анализируем сообщение
message = "We're ready to sign the contract and start implementation next Monday"
result = analyze_message(message)
print(result) # Counter({'dealing': 4})
4. Модель прогнозирования сделки
Можно комбинировать несколько факторов в одну оценку.
Факторы (примерные веса):
- Количество сообщений: 20% веса
(более 10 = высокий сигнал)
- Инициирующее большинство покупатель: 25% веса
(>50% сообщений от покупателя = высокий сигнал)
- Время ответа: 15% веса
(<2 часов = высокий сигнал)
- Упоминание сроков/бюджета: 20% веса
(хорошо видно в сообщениях)
- Дни с последней активностью: 20% веса
(<7 дней = высокий сигнал)
SQL для расчета score:
WITH contact_analysis AS (
SELECT
contact_id,
COUNT(*) as total_msgs,
SUM(CASE WHEN sender = 'buyer' THEN 1 ELSE 0 END)::float / COUNT(*) as buyer_ratio,
AVG(response_time_minutes) as resp_time,
EXTRACT(DAY FROM NOW() - MAX(created_at)) as inactive_days,
COUNT(CASE WHEN message_text ~* '(contract|sign|implement|timeline|budget)' THEN 1 END) as dealing_keywords_count
FROM messages
WHERE contact_id = $1
GROUP BY contact_id
)
SELECT
contact_id,
(MIN(total_msgs, 20) / 20.0) * 20 + -- Messages factor (max 20%)
(CASE WHEN buyer_ratio > 0.5 THEN 25 ELSE buyer_ratio * 25 END) + -- Buyer initiation (25%)
(CASE WHEN resp_time < 120 THEN 15 WHEN resp_time < 480 THEN 10 ELSE 5 END) + -- Response time (15%)
(MIN(dealing_keywords_count, 5) / 5.0) * 20 + -- Dealing keywords (20%)
(CASE WHEN inactive_days <= 7 THEN 20 WHEN inactive_days <= 14 THEN 10 ELSE 0 END) -- Recency (20%)
as deal_score
FROM contact_analysis;
5. Практические индикаторы
Красные флаги (низкая вероятность сделки):
- Нет ответа в течение 2 недель
- Все вопросы от продавца, никто от покупателя не спрашивает
- Покупатель просит дополнительную информацию на уже пройденные темы
- Упоминание конкурента как уже выбранного
- "Вернемся к этому в Q3/Q4"
Зеленые флаги (высокая вероятность сделки):
- Покупатель проинициировал контакт
- Быстрые ответы на сообщения
- Обсуждение условий оплаты, сроков внедрения
- Все больше людей участвуют с их стороны
- Вопросы о контрактах, лицензировании, SLA
- Запрос на демонстрацию или пробный период
6. Метрики для отслеживания
-- Дашборд мониторинга контактов
SELECT
c.contact_id,
c.contact_name,
c.company_name,
COUNT(m.id) as total_messages,
MAX(m.created_at) as last_contact,
EXTRACT(DAY FROM NOW() - MAX(m.created_at)) as days_inactive,
COUNT(DISTINCT m.date_trunc('day', created_at)) as days_with_activity,
COUNT(CASE WHEN m.sender = 'buyer' THEN 1 END) as buyer_messages,
ROUND(100.0 * COUNT(CASE WHEN m.sender = 'buyer' THEN 1 END) / COUNT(*), 1) as buyer_percent,
CASE
WHEN COUNT(m.id) > 10 AND EXTRACT(DAY FROM NOW() - MAX(m.created_at)) < 7 THEN 'HOT'
WHEN COUNT(m.id) > 5 AND EXTRACT(DAY FROM NOW() - MAX(m.created_at)) < 14 THEN 'WARM'
ELSE 'COLD'
END as status
FROM contacts c
LEFT JOIN messages m ON c.id = m.contact_id
GROUP BY c.id, c.contact_name, c.company_name
ORDER BY days_inactive ASC;
7. Автоматизация прогнозирования
Можно использовать инструменты вроде:
- Sirdata, 6sense — AI для прогнозирования сделок
- Custom Python скрипт — для анализа вашей CRM
- Salesforce Einstein — встроенное AI для прогнозов
Заключение
Да, по общению можно определить близость к сделке! Ключевые факторы:
- Частота и качество сообщений — активные контакты ближе
- Инициатива покупателя — когда покупатель инициирует, это хороший знак
- Ключевые слова — слова вроде "контракт", "бюджет", "сроки" говорят о близости
- Многоучастие — когда все больше людей с их стороны участвует
- Время ответа — быстрые ответы = высокая заинтересованность
Комбинируя эти факторы, можно с уверенностью 70-80% предсказать вероятность сделки в ближайшие недели.