Розробка 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:
"""Генерує персоналізований email на основі даних компанії"""
# Збагачуємо дані про компанію через 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 — пряма пропозиція зустрічі",
}
email_content = client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "system",
"content": f"""Напиши персоналізований sales-email (крок {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% (агент нічого не пропускає)
- Конверсія scheduled-demo: 18% (агент) vs 22% (SDR) — дещо нижче
- SDR фокус: переключились з L1 кваліфікації на роботу з уже теплими лідами
- Pipeline revenue: +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 тижнів







