Разработка AI-агента для продаж и лидогенерации
AI-агент продаж автоматизирует этапы воронки: квалификацию лидов, персонализированную коммуникацию, обработку возражений, назначение встреч. В отличие от скриптового чат-бота, LLM-агент адаптирует коммуникацию под контекст каждого лида, работает с нестандартными вопросами и поддерживает многоходовой диалог.
Функциональность sales-агента
Входящие лиды: квалификация по BANT/MEDDIC, задание уточняющих вопросов, передача в CRM с оценкой.
Исходящий outreach: персонализированные email-последовательности на основе данных о компании.
Обработка возражений: работа с типовыми возражениями («дорого», «не сейчас», «уже есть решение»).
Квалификация: скоринг лида по введённым критериям, передача горячих лидов менеджеру.
Follow-up: автоматические последующие контакты по расписанию.
Квалификационный агент
from openai import OpenAI
from pydantic import BaseModel
from typing import Optional
import json
client = OpenAI()
class LeadQualification(BaseModel):
lead_score: int # 0-100
budget_fit: bool
authority_confirmed: bool
need_identified: bool
timeline_clear: bool
next_action: str # "schedule_demo", "nurture", "disqualify"
disqualify_reason: Optional[str]
key_pain_points: list[str]
notes: str
QUALIFICATION_SYSTEM_PROMPT = """Ты — менеджер по продажам B2B SaaS.
Твоя задача — квалифицировать входящих лидов по методологии BANT:
- Budget: есть ли бюджет на решение?
- Authority: ты говоришь с ЛПР или влиятелем?
- Need: есть ли реальная бизнес-потребность?
- Timeline: когда планируют внедрение?
Веди естественный диалог. Не задавай все вопросы подряд — вплетай их в разговор.
Фиксируй ответы и обновляй квалификацию по ходу беседы.
При положительной квалификации (score>70) — предлагай демо-звонок.
При score<30 — вежливо завершай, добавляй в nurture-последовательность."""
def sales_agent_response(session_id: str, user_message: str, conversation_history: list) -> dict:
conversation_history.append({"role": "user", "content": user_message})
# Генерация ответа агента
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": QUALIFICATION_SYSTEM_PROMPT},
*conversation_history,
],
tools=[
{
"type": "function",
"function": {
"name": "update_lead_qualification",
"description": "Обновить квалификацию лида на основе новой информации",
"parameters": LeadQualification.model_json_schema(),
}
},
{
"type": "function",
"function": {
"name": "schedule_demo",
"description": "Предложить слот для демонстрации",
"parameters": {
"type": "object",
"properties": {
"lead_name": {"type": "string"},
"lead_email": {"type": "string"},
},
"required": ["lead_name", "lead_email"],
}
}
}
],
)
# ... обработка ответа
return {"response": response.choices[0].message.content}
Персонализированный outreach
def generate_personalized_outreach(lead_data: dict, sequence_step: int) -> str:
"""Генерирует персонализированное письмо на основе данных о компании"""
# Обогащаем данные о компании через API (Dadata, LinkedIn)
company_info = company_enrichment_api.get(lead_data["company_domain"])
sequence_contexts = {
1: "Первый контакт — представление и ценностное предложение",
2: "Follow-up через 3 дня — конкретная боль по данным компании",
3: "Follow-up через неделю — социальное доказательство (кейс из отрасли)",
4: "Финальное письмо — прямое предложение встречи",
}
email_content = client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "system",
"content": f"""Напиши персонализированное sales-письмо (шаг {sequence_step}).
Контекст: {sequence_contexts[sequence_step]}
Тон: профессиональный, но не формальный. Без общих фраз.
Длина: 100-150 слов."""
}, {
"role": "user",
"content": f"""Данные о лиде:
Имя: {lead_data['first_name']}
Должность: {lead_data['title']}
Компания: {lead_data['company']}
Отрасль: {company_info.get('industry')}
Размер компании: {company_info.get('employee_count')} сотрудников
Недавние новости: {company_info.get('recent_news', 'нет данных')}"""
}],
temperature=0.7,
)
return email_content.choices[0].message.content
Практический кейс: B2B SaaS лидогенерация
Контекст: компания продаёт ERP-систему для среднего бизнеса. 200+ входящих лидов в месяц, SDR-команда 4 человека не успевает обрабатывать вовремя.
Агент обрабатывает: первичный ответ на входящий запрос, квалификационный диалог (3–7 сообщений), скоринг, передача горячих лидов SDR с полным контекстом.
Результаты за первые 3 месяца:
- Time-to-first-response: 6.5ч → 3мин
- Квалифицированных лидов передано SDR: +34% (агент не упускает)
- Конверсия demo-scheduled: 18% (агент) vs 22% (SDR) — незначительно ниже
- SDR фокус: переключились с L1 квалификации на работу с уже тёплыми лидами
- Выручка pipeline: +28% за квартал
Ограничение: агент не ведёт финальные переговоры об условиях и не работает с C-level корпоративными клиентами — только квалификация и передача.
Обработка возражений
OBJECTION_HANDLERS = {
"price": "Понимаю вопрос стоимости. Давайте посмотрим на ROI — наши клиенты в среднем окупают инвестицию за {payback_period} месяцев благодаря {key_benefit}. Хотите, я покажу расчёт для вашего масштаба?",
"timing": "Понимаю, что сейчас не лучший момент. Когда было бы удобно вернуться к разговору? Мы можем поставить напоминание на {suggested_date}.",
"competitor": "Слышал, что вы рассматриваете {competitor}. Мы работаем с несколькими компаниями, которые перешли от них к нам — могу поделиться их опытом. Что для вас принципиально важно при выборе?",
"no_need": "Интересно слышать — большинство наших клиентов тоже так думали до того, как обнаружили {pain_point}. Скажите, как вы сейчас решаете {relevant_challenge}?",
}
Сроки
- Квалификационный агент: 2–3 недели
- CRM интеграция (AmoCRM/Bitrix24): 1–2 недели
- Email-последовательности + outreach: 2 недели
- A/B тестирование и настройка: 2 недели
- Итого: 7–10 недель







