Бот для автоматизації CRM-процесів у мобільних додатках
Менеджери з продажу витрачають 20–30% робочого часу на введення даних у CRM. Голосова замітка після зустрічі, швидкий статус угоди між дзвінками — бот робить це через діалог без необхідності відкривати повноцінний CRM-клієнт.
Ключові сценарії CRM-бота
Створення контакту та угоди. «Щойно зустрівся з Іваном Петровим з ООО Альфа, телефон +7 999 123-45-67, цікавить наш Pro-тариф, плануємо зв'язатися в п'ятницю» — бот розбирає це на структуру та створює контакт + угоду у CRM.
Оновлення статусу. «Угода 1234 — перевести на етап Пропозиція відправлена» без пошуку по інтерфейсу.
Додавання активності. «Дзвонив 15 хвилин, обговорили умови, наступний крок — демо у четвер».
Запрос даних. «Які угоди у мене в роботі?», «Коли останній контакт з клієнтом Ромашка?».
Інтеграція з CRM API
Популярні системи з REST API:
- AmoCRM / Kommo — OAuth 2.0, повний REST API для угод, контактів, завдань, воронки
- Бітрікс24 — REST API через вхідний webhook або OAuth
- Salesforce — SOQL + REST/SOAP API, найбільш складна у налаштуванні
- HubSpot — чистий REST, гарна документація
- Pipedrive — REST, зручна для малого бізнесу
Для AmoCRM створення угоди з контактом:
const amo = require('amocrm-js');
async function createDealWithContact(dealData, contactData) {
// Спочатку створюємо або знаходимо контакт
const contacts = await client.contacts.create([{
name: contactData.name,
phone: [{ value: contactData.phone, enum_code: 'WORK' }],
email: contactData.email ? [{ value: contactData.email, enum_code: 'WORK' }] : []
}]);
const contactId = contacts[0].id;
// Створюємо угоду та лінкуємо контакт
const deals = await client.leads.create([{
name: dealData.name,
price: dealData.price || 0,
pipeline_id: dealData.pipelineId,
status_id: dealData.statusId,
_embedded: {
contacts: [{ id: contactId }]
}
}]);
return deals[0];
}
Розбір неструктурованого тексту — ключове завдання. Менеджер не буде заповнювати поля через діалог послідовно. Він скаже фразу, бот повинен витягти з неї ім'я, компанію, телефон, намір, наступний крок.
LLM з function calling працює краще тут, ніж NLU з інтентами: модель розуміє контекст та заповнює поля, які є в тексті, решту залишає пустими.
EXTRACT_PROMPT = """
Витягни з тексту менеджера з продажу параметри для CRM.
Якщо інформація не згадана — залиш поле null.
Не вигадуй дані, яких немає в тексті.
"""
Нормалізація телефонів. +7 999 123-45-67, 89991234567, 8(999)123-45-67 — один і той же номер. Перед записом у CRM нормалізуємо до E.164: +79991234567. Бібліотека libphonenumber (Google) — стандарт для цього.
Голосовий ввід для польових продажів
Менеджер не буде писати після зустрічі — запише голосову замітку. На iOS — SFSpeechRecognizer з SFSpeechAudioBufferRecognitionRequest, на Android — SpeechRecognizer. Після транскрипції текст передається боту як звичайне текстове повідомлення.
Якість транскрипції російською: вбудовані API працюють прийнятно для структурованих фраз, Whisper API краще справляється з розмовною мовою та нестандартними іменами/термінами галузі.
Дашборд у мобільному додатку
Крім діалогу, CRM-бот часто доповнюється компактним дашбордом: активні угоди за етапами, завдання на сьогодні, KPI за місяць. Це не заміна повному CRM-клієнту — швидкий огляд для менеджера між зустрічами.
На Android — Jetpack Compose з LazyColumn та анімованими лічильниками, на iOS — SwiftUI з модифікаторами Animation.
Процес впровадження
Аудит CRM-системи: документація API, тестовий аккаунт.
Проектування сценаріїв: створення сутностей, оновлення статусів, запрос даних.
NLP-логіка для розбору неструктурованого введення.
Мобільний клієнт з діалогом та голосовим введенням.
Тестування з реальними менеджерами з продажу — їхні формулювання завжди відрізняються від тестових.
Часові орієнтири
Бот для однієї CRM (AmoCRM / Бітрікс24) з базовими сценаріями — 2–3 тижні. З голосовим введенням, складним розбором, дашбордом — 4–6 тижнів.







