Вихідні кампанії AI-працівника: AI-дайлер і холодний обдзвін
Як запустити обдзвін роботом: статуси воронки, картка агента, кампанія в AI-дайлері, підсумок розмови в заявці, післядзвінковий вебхук і аналітика. Плюс варіант, коли дзвінки йдуть прямо з кабінету ElevenLabs.
Голосовий агент уміє не лише приймати дзвінки, а й телефонувати сам. Ця сторінка — про вихідний бік: як зібрати кампанію, куди лягає підсумок кожної розмови і що саме ламається найчастіше. Базове налаштування агента описане окремо: AI-працівник на телефоні.
#Два шляхи, і вони не рівноцінні
| AI-дайлер CRM | Batch calling ElevenLabs | |
|---|---|---|
| Черга, повтори, години дзвінків | у CRM | у кабінеті ElevenLabs |
| Ліміт одночасних розмов | налаштовується в кампанії | тільки тарифний |
| Блокування заявки на час дзвінка | є | немає |
| Як знаходиться заявка | за контекстом дзвінка | за останніми 9 цифрами номера |
| Статистика | у воронці CRM разом з іншими заявками | звіт кампанії окремо |
За замовчуванням беріть AI-дайлер: одна система замість двох, і результат одразу у воронці. Batch calling має сенс, коли кампанія вже зібрана на боці ElevenLabs — цей випадок описаний в кінці сторінки.
#Крок 1. Статуси воронки обдзвону
Робот має куди складати результат. Для холодного обдзвону в CRM заводиться окремий набір статусів — рівно тих, між якими розрізняє підсумок розмови:
| Код | Статус | Група |
|---|---|---|
meeting_booked | Зустріч призначена | Прийнято |
interested | Зацікавлений | Обробка |
send_info | Надіслати матеріали | Обробка |
wrong_person | Не та людина | Обробка |
recall | Перезвін | Обробка |
not_interested | Не цікаво | Відміна |
no_need | Немає потреби | Відміна |
competitor | Користується конкурентом | Відміна |
do_not_call | Не телефонувати | Відміна |
invalid_contact | Невірний контакт | Помилка |
У промті агента перелічуйте лише ті коди, які він має право ставити: модель поставить рівно те, що ви їй дозволили. Як влаштовані групи й переходи — у статті про статуси.
#Крок 2. Проєкт і база
- 01
Заведіть окремий проєкт під обдзвін
По ньому кампанія відбирає чергу й по ньому ж фільтрується статистика — холодна база не змішується з робочими заявками.
- 02
Імпортуйте базу
Заявки → Імпорт з файлу, мапінг колонок на поля CRM: імпорт з Excel і CSV. - 03
Обов'язково змапте коментар
У ньому лежить картка компанії — вид діяльності, регіон, сегмент. Саме вона їде агенту ще до першого слова; без неї робот відкриває розмову наосліп.
- 04
Приберіть очевидний брак
Рядки з поміткою про помилковий номер у реєстрі краще виключити руками: це не номери, а помилки джерела.
#Крок 3. Картка агента під вихідні
Інтеграції → AI-працівник
Agent IDз ElevenLabsобов'язковеідентифікатор агента в кабінеті
Номер для вихіднихз ElevenLabsобов'язковетелефонний номер, з якого дзвонить агент
Шлюзпорожньодля вихідних кампаній дзвонить сам ElevenLabs, телефонія в розмові не бере участі
Проєктвибіробов'язковетой самий, з якого набирається черга
Менеджер для зустрічейкористувачобов'язковебез нього
schedule_meetingвідмовляє — тобто мета кампанії зривається саме тоді, коли клієнт уже погодивсяДозволити збирати кошикпрапорецьдля холодного обдзвону вимкнути: у дзвінку нічого не продається
Ліміт розмовисекундиобов'язковеіз запасом над цільовою тривалістю: обрив по таймауту вбиває виклик
set_call_outcome
#Крок 4. Інструменти вихідної розмови
Усі інструменти — POST із заголовком X-Asterisk-Secret; готові адреси зібрані в CRM на сторінці AI-працівника. Для вихідного дзвінка номер клієнта береться з контексту виклику.
| Інструмент | Що робить |
|---|---|
set_call_outcome | головний: код статусу плюс нотатка для менеджера. Викликається рівно один раз, перед прощанням |
schedule_meeting | час зустрічі, канал (Meet/Zoom), месенджер для посилання, пошта, тема. Ставить статус, призначає менеджера, створює нагадування |
update_customer | ім'я, месенджер, додатковий номер, пошта — викликається одразу, щойно почуто, а не в кінці |
schedule_callback | домовленість передзвонити; у парі зі статусом recall |
end_call | вбудований інструмент ElevenLabs — тільки після set_call_outcome |
Нотатка з set_call_outcome — не другорядне поле. Саме вона, а не статус, є цінністю обдзвону: «не цікаво, бо вже інша система» і «не цікаво, бо немає відділу продажів» — це два різні списки для наступної хвилі. Тому невідомий код статусу нотатку не втрачає: статус можна проставити руками, а переказану роботом причину відновити нема звідки.
#Крок 5. Післядзвінковий вебхук
Settings → Webhooks → Post-call webhook у кабінеті ElevenLabs, авторизація HMAC, секрет — той самий рядок, що в полі «Ключ підпису вебхука» в Інтеграції → ElevenLabs.
Поруч варто ввімкнути «Самостійно забирати історію дзвінків»: раз на пів години CRM сама йде в ElevenLabs по розмови, яких у неї ще немає. Це закриває три випадки — вебхук не налаштували, ввімкнули пізніше за перші дзвінки, доставка загубилась. Дублів не буде: ключ той самий, ідентифікатор розмови.
#Крок 6. Кампанія
AI-дайлер → Створити кампанію
Проєктвибіробов'язковезвідки набирається черга
AI-працівниквибіробов'язковекартка агента з кроку 3
Одночасних розмовчислообов'язковеупирається в ліміт вашого тарифу ElevenLabs: виставлений із запасом, він марнує спроби — відмова в дзвінку рахується невдалою спробою
Спроб на заявкучислотипово 2–3
Інтервали повторівхвилининаприклад 60 і 240
Дні й годинирозкладобов'язковедзвінок о дев'ятій ранку або о сьомій вечора псує не одну розмову, а репутацію номера
Далі — *Наповнити чергу*: проєкт плюс статус. Черга наповнюється відбором, тому заявка, яка вже пройшла обдзвін і змінила статус, у нову хвилю не потрапить. Монітор кампанії оновлюється раз на кілька секунд і показує, хто саме зараз у розмові.
#Крок 7. Аналітика розмов
У кабінеті агента налаштовуються дві різні речі. Критерії оцінки дають відповідь «чи спрацювала розмова»: чи домовились про конкретні дату й час, чи говорили з тим, хто ухвалює рішення, чи чесно відповів агент на питання «ви робот?», чи припинив після явної відмови.
Збір даних витягає з розмови структуровані поля — яку систему використовують зараз, скільки людей працює з клієнтами, що болить, яке заперечення прозвучало. Це не дублює set_call_outcome: інструмент пише в заявку під час розмови, а аналітика дає зріз по всій кампанії й відповідає на питання «кому дзвонити в наступній хвилі».
#Крок 8. Перевірка до першого дзвінка
- Інструмент
lookup_customerвідповідає й бачить заявку за номером — у відповіді має бути коментар із карткою компанії. set_call_outcomeз тестовим кодом статусу змінює заявку: перевірте історію.- Один живий дзвінок на свій номер кнопкою «Подзвонити AI-працівником» з картки заявки.
- У картці після нього є все троє: сам дзвінок із транскриптом, підсумок нотаткою, новий статус в історії.
| Відповідь інструмента | Причина |
|---|---|
403 forbidden | не той Asterisk Secret або заголовок не долетів |
not_found | за останніми дев'ятьма цифрами номера заявки немає |
unknown_status або status_applied: false | такого коду статусу в цій CRM немає — поверніться до кроку 1 |
Якщо дзвінок є, а статусу немає — модель не викликала set_call_outcome. Лікується описом інструмента й порядком у промті, а не повторним запуском кампанії.
#Якщо дзвінки йдуть прямо з ElevenLabs
Коли кампанія зібрана в кабінеті ElevenLabs (batch calling), CRM у наборі номера не бере участі — але результат усе одно може лягати в заявку. Інструменти ті самі, змінюється одне: заявка шукається за номером телефону, за останніми дев'ятьма цифрами, і береться найсвіжіша заявка цього номера. Формат запису значення не має.
Доступ до інструментів дає Asterisk Secret із налаштувань телефонії. Токен вебмайстра тут не підходить: він уміє рівно одне — створити заявку, і статусів наявної не змінює. Секрет живе лише в налаштуваннях інструмента на боці ElevenLabs (сервер-сервер) — у браузер, на лендінг чи в CSV його класти не можна, а його зміна миттєво ламає всі інструменти, які ним користуються.
Дзвінки, зроблені так, наш сервер не бачить, тому єдине джерело записів і транскриптів — вебхук і автозабір історії з кроку 5. Розмови, які вже відбулись до налаштування, дотягуються окремою командою на сервері CRM; повторний запуск безпечний.
#Межі, про які краще знати заздалегідь
- «Недозвін» робот не ставить. Дзвінок без відповіді — це розмова, якої не було, і жоден інструмент у ній не викликався. Такі номери видно в черзі кампанії як невдалі спроби.
- Автовідповідач — окремий випадок. Увімкніть його розпізнавання, інакше голосова пошта вислухає весь скрипт і зарахується як розмова.
- Ціни робот краще не називає. Вартість залежить від кількості користувачів і набору модулів, а холодний дзвінок не встигає з'ясувати ні того, ні того: названа наосліп цифра або відлякує, або потім розходиться з реальною пропозицією.
- Дзвінок робота — це персональні дані. Запис розмови зберігається, тому на питання «звідки у вас мій номер» у промті має бути чесна відповідь, а на «не телефонуйте більше» — статус
do_not_call, який не потрапляє у фільтр наступних хвиль. - Робот не приховує, що він робот. На пряме питання відповідає чесно й пропонує перевести на людину — це не лише етика, а й те, що перевіряється критеріями оцінки розмов.