CRM-бот для мобільного додатку: як автоматизувати введення даних у CRM
Менеджер з продажу витрачає до 30% робочого часу на ручне заповнення CRM. Після зустрічі потрібно внести ім'я, компанію, телефон, етап угоди — і часто це відкладається або робиться з помилками. Ми розробляємо CRM-ботів, які приймають голосові нотатки або текст у чаті та автоматично створюють структуровані записи в CRM. Це особливо актуально для компаній з активними продажами: за нашими даними, після впровадження бота час введення скорочується на 60%, а кількість помилок падає до 5%. У цій статті розберемо технічну реалізацію — від парсингу природної мови до інтеграції з популярними CRM.
Проблеми, які вирішує CRM-бот
Ручне створення контактів та угод. Після зустрічі менеджеру потрібно внести ім'я, компанію, телефон, етап угоди. Часто це відкладається або робиться з помилками. Бот приймає неструктуровану фразу типу «Зустрівся з Івановим з Альфи, тел +7 999...» і створює структурований запис. За статистикою, 70% менеджерів визнають, що забувають внести дані протягом дня.
Оновлення статусу без пошуку. «Угоду 1234 перевести на етап Пропозиція надіслана» — бот знаходить угоду та змінює статус за текстовою командою. Це економить до 10 хвилин на день на кожному менеджері.
Автоматизація нагадувань та завдань. «Нагадай завтра зателефонувати Петрову» — бот створює завдання в CRM з потрібним терміном.
Основні сценарії роботи бота
| Сценарій | Опис |
|---|---|
| Створення контакту та угоди | З неструктурованого тексту бот витягує поля та створює запис |
| Оновлення статусу | Команда «Перевести угоду 1234 на наступний етап» |
| Додавання активності | «Дзвонив 15 хвилин, обговорили умови» |
| Запит даних | «Які угоди в роботі?», «Коли останній контакт?» |
Як бот витягує дані з голосових нотаток?
Ключовий модуль — парсер природної мови. Ми використовуємо LLM з function calling (OpenAI або локальні моделі). Вхідна фраза передається з промптом, який просить заповнити поля контакту та угоди. Якщо інформація відсутня — поле залишається пустим. Це надійніше класичних NLU-інтентів, оскільки модель розуміє контекст фрази.
Приклад промпту на Python:
EXTRACT_PROMPT = """ Вилучи з тексту менеджера з продажу параметри для CRM. Якщо інформація не згадана — залиш поле null. Не вигадуй дані, яких немає в тексті. """ Додатково нормалізуємо телефонні номери у формат E.164 за допомогою бібліотеки libphonenumber (Google). Це гарантує єдиний формат при записі в CRM.
Чому voice input критичний для польових продажів?
Після зустрічі менеджер рідко друкує — зручніше записати голосову нотатку. На iOS використовуємо SFSpeechRecognizer, на Android — SpeechRecognizer. Для покращення розпізнавання українською мовою підключаємо Whisper API, який справляється з розмовною мовою та нестандартними назвами компаній. Як зазначено в документації Apple, SFSpeechRecognizer підтримує понад 50 мов і автоматично адаптується до голосу користувача (Apple Speech Framework).
Інтеграція з популярними CRM
| CRM | Тип авторизації | Складність інтеграції | API |
|---|---|---|---|
| AmoCRM / Kommo | OAuth 2.0 | Низька | REST |
| Бітрікс24 | OAuth 2.0 / Webhook | Середня | REST |
| Salesforce | OAuth 2.0 + SOAP | Висока | SOQL/REST |
| HubSpot | OAuth 2.0 | Низька | REST |
| Pipedrive | OAuth 2.0 | Низька | 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]; } Як забезпечити безпеку даних при інтеграції?
Дані передаються по HTTPS, токени API зберігаються в Keychain (iOS) або EncryptedSharedPreferences (Android). Аутентифікація через OAuth 2.0 або серверні API-ключі. Всі запити логуються, і доступ до логів обмежений. Це гарантує захист персональних даних клієнтів та відповідність вимогам App Store Review Guidelines (Section 5.1).
Дашборд для швидкого огляду
Крім діалогу, корисний компактний дашборд: активні угоди за етапами, завдання на сьогодні, KPI. На Android робимо на Jetpack Compose з LazyColumn, на iOS — SwiftUI з анімаціями. Це не заміна повної CRM, а швидкий погляд «між справами» — оновлюється кожні 30 секунд через GraphQL subscriptions.
Що входить у процес впровадження?
- Аудит CRM-системи: документація API, тестовий акаунт, обмеження.
- Проектування сценаріїв: створення/оновлення сутностей, запити, NLP-логіка.
- Мобільний клієнт: діалоговий інтерфейс, voice input, дашборд.
- Інтеграція: налаштування чат-бота (Telegram, WhatsApp або вбудований чат), синхронізація.
- Тестування з реальними користувачами: коригування формулювань та обробка граничних випадків.
- Документація та передача доступів.
Наш досвід: за 5 років реалізували понад 30 інтеграцій CRM для різних галузей. Працюємо під ключ — від прототипу до публікації в App Store та Google Play. Зв'яжіться з нами, щоб обговорити інтеграцію для вашої CRM. Замовте розробку бота, і ми підготуємо прототип за тиждень.
Орієнтовні терміни
- Базова версія для однієї CRM (AmoCRM або Бітрікс24) — 2–3 тижні.
- Розширена з voice input, складним NLP, дашбордом — 4–6 тижнів.
Точні терміни залежать від кількості сценаріїв та API. libphonenumber використовується для нормалізації номерів.
Висновок
CRM-бот у мобільному додатку скорочує час введення даних на 60% та знижує кількість помилок. Якщо ви хочете оцінити проект для своєї CRM — отримайте консультацію. Ми допоможемо налаштувати інтеграцію та запустити бота в продуктив.







