Менеджер рідко провалює перший дзвінок через те, що не вміє говорити з клієнтом. Частіше проблема простіша: перед очима є тільки ім'я, телефон і короткий коментар із форми. Джерело заявки лежить в аналітиці, попередня переписка в пошті або Telegram, нотатки в Google Sheets, а послуга, яку дивився клієнт, взагалі залишилася в URL сторінки. Саме тут AI помічник для продажів корисний найбільше: він не продає замість менеджера, а збирає розкиданий контекст у коротке summary перед дзвінком.

AI помічник для продажів готує summary клієнта перед дзвінком із CRM, форми, нотаток і Telegram
AI помічник для продажів готує summary клієнта перед дзвінком із CRM, форми, нотаток і Telegram

Це важлива різниця. Якщо намагатися зробити з ШІ "автоматичного продавця", процес швидко стає небезпечним: модель починає оцінювати наміри клієнта, радити агресивні скрипти або робити висновки з неповних даних. Нормальна автоматизація продажів за допомогою ШІ працює скромніше: бере факти, стискає їх до 5-7 рядків і підказує менеджеру, з чого почати розмову.

Для малого бізнесу такий сценарій часто можна зібрати без великої CRM. Достатньо форми заявки, Google Sheets CRM або просто таблиці з лідами, OpenAI API, невеликого Apps Script/Node.js шару і повідомлення в Telegram. Це продовжує логіку автоматизації обробки замовлень, тільки тут фокус не на статусах, а на підготовці менеджера до контакту.

Що менеджер має знати перед дзвінком

Поганий старт дзвінка звучить так: "Ви залишали заявку, підкажіть, що вас цікавить?" Формально це нормально. Але для клієнта це часто означає, що він знову має пояснювати те, що вже написав у формі, листі або попередньому чаті.

Перед першим контактом менеджеру бажано бачити:

  • хто клієнт і яку компанію представляє;
  • звідки прийшла заявка;
  • яку сторінку, послугу або товар він дивився;
  • що саме написав у формі;
  • чи були попередні контакти;
  • який можливий біль або задача;
  • який next step логічно запропонувати;
  • які питання варто поставити, а які вже зайві.
Картка клієнта перед дзвінком: джерело заявки, сторінка входу, біль, історія і наступний крок
Картка клієнта перед дзвінком: джерело заявки, сторінка входу, біль, історія і наступний крок

Це не має бути довгий профіль на дві сторінки. Навпаки, сильне summary коротке. Менеджер повинен прочитати його за 15-20 секунд і зрозуміти: хто перед ним, чого людина хоче і як не почати розмову з повторення очевидного.

Які дані збирати для AI summary

AI асистент для менеджера продажів не повинен отримувати "усе, що є". Йому треба давати тільки той контекст, який реально допомагає підготувати дзвінок. Чим менше зайвого шуму, тим кращий результат.

Базова структура може виглядати так:

ПолеНавіщо потрібно
lead_idстабільний ідентифікатор ліда
nameім'я клієнта
companyкомпанія, якщо відома
sourceреклама, органіка, рекомендація, форма
landing_pageсторінка або послуга, з якої прийшла заявка
messageтекст із форми або першого звернення
previous_notesкороткі нотатки менеджера або CRM
lastcontactatколи був попередній контакт
known_painзафіксована проблема, якщо вона є
next_stepщо вже домовлялися зробити

Приклад вхідного JSON:

const customerContext = {
  lead_id: "LEAD-20260527-018",
  name: "Олена",
  company: "B2B-сервіс з навчання персоналу",
  source: "google_ads",
  landing_page: "/services/automation-crm",
  message: "Потрібно навести порядок із заявками з сайту і Telegram",
  previous_notes: [
    "Запитувала про інтеграцію Google Sheets і Telegram",
    "Важливо бачити відповідального менеджера по кожній заявці"
  ],
  last_contact_at: "2026-05-24",
  known_pain: "ліди губляться між формою, таблицею і менеджерами",
  next_step: "показати приклад простої CRM-таблиці зі статусами"
};

У цьому прикладі немає приватних документів, зайвої переписки й повної історії листування. Є тільки те, що допомагає менеджеру не заходити в розмову наосліп. Якщо дані живуть у таблиці, їх можна збирати так само, як у сценаріях з GPT у Google Sheets, але з чіткішим форматом і обмеженнями.

Архітектура: JSON, prompt, summary, CRM

Процес краще будувати як маленький конвеєр, а не як "чат із клієнтом".

Пайплайн AI summary: форма, CRM/Google Sheets, OpenAI API, запис у рядок і Telegram менеджеру
Пайплайн AI summary: форма, CRM/Google Sheets, OpenAI API, запис у рядок і Telegram менеджеру

Робоча схема:

  1. Заявка або оновлення ліда потрапляє в таблицю/CRM.
  2. Скрипт збирає потрібні поля в customerContext.
  3. Перед відправкою прибираються зайві або чутливі дані.
  4. OpenAI API отримує структурований prompt.
  5. Модель повертає коротке summary.
  6. Summary записується в CRM або Google Sheets.
  7. Менеджер отримує блок у Telegram перед дзвінком.

У новій реалізації OpenAI API зручно використовувати Responses API: запит створюється через client.responses.create, а текст відповіді читається з response.output_text. Це відповідає поточній офіційній логіці Responses API, де input може бути рядком або структурованим масивом повідомлень.

Prompt для короткого резюме клієнта

Головне правило prompt'а: модель не має вигадувати факти. Якщо контексту мало, вона повинна прямо сказати, що контекст обмежений.

const summaryPrompt = `
Ти готуєш коротке summary клієнта для менеджера продажів.
Не продавай замість менеджера.
Не вигадуй фактів, яких немає в контексті.

Поверни відповідь українською у форматі:
1. Хто клієнт:
2. Що його цікавить:
3. Можливий біль:
4. Що вже відомо з історії:
5. Рекомендований старт розмови:
6. Питання, які варто поставити:
7. Чого НЕ варто припускати:

Якщо даних мало, напиши: "Контекст обмежений" і дай тільки безпечні висновки.

Контекст:
${JSON.stringify(customerContext, null, 2)}
`;

Цей prompt спеціально не просить оцінити ймовірність покупки або "гарячість" ліда. Для цього потрібні прозорі правила, історичні дані й відповідальність за рішення. Summary має допомогти менеджеру почати розмову, а не замінити його судження.

Функція buildSalesSummary(context)

Нижче базовий приклад для Node.js. У production-версії модель, ліміти й логування краще винести в конфігурацію, але логіка залишається такою самою: підготувати контекст, викликати API, повернути короткий текст.

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY
});

export async function buildSalesSummary(context) {
  const safeContext = sanitizeLeadContext(context);

  const response = await client.responses.create({
    model: "gpt-4.1-mini",
    instructions: [
      "Ти допомагаєш менеджеру продажів підготуватися до дзвінка.",
      "Пиши коротко, практично і без вигаданих фактів.",
      "Не приймай рішення за менеджера."
    ].join(" "),
    input: summaryPromptFor(safeContext)
  });

  return response.output_text.trim();
}

function summaryPromptFor(context) {
  return `
Підготуй summary клієнта перед дзвінком.
Якщо даних мало, прямо скажи "Контекст обмежений".

Контекст:
${JSON.stringify(context, null, 2)}
`;
}

function sanitizeLeadContext(context) {
  return {
    lead_id: context.lead_id,
    name: context.name,
    company: context.company,
    source: context.source,
    landing_page: context.landing_page,
    message: context.message,
    previous_notes: context.previous_notes?.slice(-5) || [],
    last_contact_at: context.last_contact_at,
    known_pain: context.known_pain,
    next_step: context.next_step
  };
}

Тут є два важливі обмеження. Перше: у sanitizeLeadContext ми явно вирішуємо, що можна передавати моделі. Друге: інструкції вказують, що модель не має робити продаж або рішення замість людини. Це прості речі, але саме вони відрізняють робочий AI помічник для продажів від хаотичного "давайте відправимо весь CRM-рядок у GPT".

Як записати summary в CRM або Google Sheets

Якщо CRM поки немає, Google Sheets може бути достатнім першим шаром. Наприклад, у таблиці Leads можна додати колонки:

ПолеПриклад
lead_idLEAD-20260527-018
client_nameОлена
sourcegoogle_ads
statusnew
ai_summaryкороткий блок перед дзвінком
summaryupdatedatдата й час оновлення
managerвідповідальний

Запис у Google Sheets через Apps Script може виглядати так:

function writeSummaryToSheet(leadId, summary) {
  const sheet = SpreadsheetApp.getActive().getSheetByName("Leads");
  const values = sheet.getDataRange().getValues();
  const headers = values[0];

  const idCol = headers.indexOf("lead_id");
  const summaryCol = headers.indexOf("ai_summary");
  const updatedCol = headers.indexOf("summary_updated_at");

  if (idCol === -1 || summaryCol === -1 || updatedCol === -1) {
    throw new Error("Missing required columns");
  }

  for (let row = 1; row < values.length; row++) {
    if (String(values[row][idCol]) !== String(leadId)) continue;

    sheet.getRange(row + 1, summaryCol + 1).setValue(summary);
    sheet.getRange(row + 1, updatedCol + 1).setValue(new Date());
    return true;
  }

  throw new Error(`Lead not found: ${leadId}`);
}

У нормальному процесі summary треба перегенеровувати не щохвилини, а після важливих змін: нова заявка, новий коментар менеджера, новий статус, відповідь клієнта або перенесений дзвінок. Інакше система створить шум замість допомоги.

Telegram-повідомлення перед дзвінком

Менеджер має отримати summary там, де він реально працює. Якщо команда живе в Telegram, не змушуйте її відкривати таблицю перед кожним дзвінком.

Telegram-повідомлення менеджеру з коротким AI summary, болем клієнта і питаннями перед дзвінком
Telegram-повідомлення менеджеру з коротким AI summary, болем клієнта і питаннями перед дзвінком

Приклад повідомлення:

async function sendSalesSummaryToTelegram({ chatId, lead, summary }) {
  const token = process.env.TG_BOT_TOKEN;

  const text = [
    `Дзвінок: ${lead.name || "клієнт"}`,
    `Компанія: ${lead.company || "невідомо"}`,
    `Джерело: ${lead.source || "не вказано"}`,
    "",
    "AI summary:",
    summary
  ].join("
");

  await fetch(`https://api.telegram.org/bot${token}/sendMessage`, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      chat_id: chatId,
      text
    })
  });
}

Це не має бути довге повідомлення. Якщо менеджер отримує "полотно" на 3000 символів, він перестане його читати. Хороший формат - 5-7 рядків summary, 2-3 питання і один next step.

Що не можна довіряти ШІ

Найгірша помилка - дати моделі право оцінювати клієнта без правил. Вона може звучати впевнено навіть тоді, коли даних мало. Тому в процесі потрібні жорсткі межі.

Не варто довіряти ШІ:

  • рішення, чи клієнт "точно купить";
  • пріоритет ліда без прозорої scoring-моделі;
  • висновок про бюджет, якщо клієнт його не вказував;
  • припущення про мотиви клієнта;
  • персональні характеристики людини;
  • юридично або фінансово чутливі рекомендації;
  • фінальний текст комерційної пропозиції без перевірки менеджером.
Межі AI помічника для продажів: факти, припущення, рішення менеджера і заборонені висновки
Межі AI помічника для продажів: факти, припущення, рішення менеджера і заборонені висновки

Правильна роль моделі: стискати контекст, показувати можливі питання, нагадувати про next step. Неправильна роль: вирішувати за менеджера, як натискати на клієнта.

Як коротке summary економить перші 3 хвилини розмови

В одному з робочих сценаріїв менеджер перед дзвінком відкривав одразу кілька місць: Google Sheets із лідами, Telegram-чат, сторінку послуги, рекламне джерело і попередній коментар. Формально вся інформація була доступна. Практично на підготовку йшло 2-3 хвилини, а при щільному потоці дзвінків менеджер часто починав із загального питання.

Після додавання AI summary процес став простішим. У рядку ліда з'являвся короткий блок: звідки прийшла заявка, що саме цікавить клієнта, який біль уже видно, що було в попередніх нотатках і з якого питання краще почати. Менеджер не отримував готовий скрипт продажу. Він отримував нормальну пам'ятку перед контактом.

Результат був не в "магічному рості конверсії", а в операційній якості: менше повторних питань клієнту, швидше входження в контекст, краща фіксація next step після дзвінка. Для продажів це часто важливіше за ще один мотиваційний скрипт.

Як запускати без зайвого ризику

Починати варто з вузького процесу:

  1. Виберіть одне джерело лідів, наприклад форму сайту.
  2. Додайте в таблицю поля для контексту й ai_summary.
  3. Опишіть, які дані можна передавати в модель.
  4. Зробіть prompt із правилом "не вигадувати".
  5. Виведіть summary у Google Sheets.
  6. Після перевірки додайте Telegram-повідомлення менеджеру.
  7. Раз на тиждень переглядайте, які summary були корисні, а які створювали шум.

AI помічник для продажів має бути частиною процесу, а не окремою іграшкою. Він корисний тоді, коли зменшує когнітивне навантаження менеджера перед дзвінком і допомагає не втрачати вже зібраний контекст. Якщо система просто генерує красивий текст, це не автоматизація. Якщо вона дає менеджеру коротку, чесну й перевірену картину клієнта перед контактом - це вже робочий інструмент.