Голосовой ИИ-бот
👤 Партнёрский кабинет →
Мелион · melion.pro · встреча онлайн, 20–30 минут

Запись на встречу — покажем бота в деле

'+ '

20–30 минут онлайн. Покажем, как бот звонит, квалифицирует и переводит на менеджера; разберём вашу задачу и посчитаем экономику.

'+ '
'+ '
1Живой звонок бота — услышите, как он ведёт диалог
'+ '
2Разберём вашу задачу и нишу
'+ '
3Посчитаем экономику под ваши объёмы
'+ '
'+ '

Ссылку на встречу пришлём после подтверждения менеджером.

'+ ''; }, date: function(){ var days = workDays(7); var tiles = days.map(function(d){ var sel = S.date===d.label ? ' sel':''; return ''; }).join(''); return '

Выберите дату

'+ '

Ближайшие рабочие дни. Встречи — по будням.

'+ '
'+tiles+'
'+ navRow(false); }, time: function(){ var slots = timeSlots(); var tiles = slots.map(function(t){ var sel = S.time===t ? ' sel':''; return ''; }).join(''); return '

Выберите время

'+ '

'+ (S.date? esc(S.date)+' ('+esc(S.dow)+') · ':'') +'выберите удобное окно.

'+ '
Встречу проведёт '+esc(MANAGER_NAME)+'
'+ '
'+tiles+'
'+ navRow(false); }, audience: function(){ return '

Для кого вы решаете задачу?

'+ '

От этого зависят следующие вопросы.

'+ '
'+ ''+ ''+ '
'+ navRow(false); }, task: function(){ return '

Какую задачу хотите решить?

'+ '

Опишите своими словами — так встреча будет предметнее.

'+ '
'+ ''+ '
Пожалуйста, опишите задачу.
'+ '
'+ navRow(true); }, sphere: function(){ return '

Чем занимается компания?

'+ '

В какой сфере бизнес?

'+ '
'+ ''+ '
Укажите сферу бизнеса.
'+ '
'+ navRow(true); }, sales: function(){ var opts=['Нет отдела продаж','1 человек','2 человека','Больше двух']; var tiles=opts.map(function(o){return '';}).join(''); return '

Сколько человек в отделе продаж?

'+ '
'+tiles+'
'+ navRow(false); }, revenue: function(){ var tiles=['Меньше 25 млн ₽/год','Больше 25 млн ₽/год'].map(function(o){ return '';}).join(''); return '

Какая выручка компании?

'+ '

Голосовой ИИ максимально полезен при выручке от 25 млн ₽/год.

'+ '
'+tiles+'
'+ navRow(false); }, clientneed: function(){ var tiles=[['Да, есть','yes'],['Пока нет','no']].map(function(o){ return '';}).join(''); return '

Есть ли у вас клиент, которому нужен голосовой или текстовый ИИ-бот?

'+ '
'+tiles+'
'+ navRow(false); }, contacts: function(){ var partner = S.audience==='partner'; var html='

Контактные данные

'+ '

Менеджер свяжется, подтвердит детали и пришлёт ссылку на встречу.

'; if(partner){ html+='
Данные партнёра
'+ field('partner-name','Ваше имя','in-pname',S.partnerName,'Как к вам обращаться','Укажите ваше имя')+ field('partner-phone','Ваш телефон','in-pphone',S.partnerPhone,'+7 (___) ___-__-__','Введите корректный телефон'); html+='
Данные клиента
'; } html+= field('client-name','Имя клиента','in-cname',S.clientName,'Имя контактного лица','Укажите имя')+ field('client-phone','Телефон клиента','in-cphone',S.clientPhone,'+7 (___) ___-__-__','Введите корректный телефон'); html+='
'+ '
'+ ''+ ''+ '
'; // honeypot html+=''; html+= ''; return html; }, done: function(){ var recap = '
'+ '
'+esc(S.date||'')+' '+esc(S.dow?'('+S.dow+')':'')+' в '+esc(S.time||'')+'
'+ '
Уведомление: '+esc(S.channel==='telegram'?'Telegram':(S.channel==='sms'?'SMS':'—'))+'
'+ '
'; return '
'+ '
✅
'+ '

Заявка принята!

'+ recap+ '

Встреча состоится после звонка менеджера — он свяжется с вами, подтвердит детали и пришлёт ссылку.

'+ '

Держите телефон под рукой.

'+ ''+ '
'; } }; function field(fid,label,inputId,val,ph,errmsg){ return '
'+ ''+ '
'+errmsg+'
'; } function navRow(withNext){ var back = ''; if(withNext) return ''; return ''; } /* ================= phone mask ================= */ function maskPhone(v){ var d = v.replace(/\D/g,''); if(d.length && d[0]==='8') d='7'+d.slice(1); if(d.length && d[0]!=='7') d='7'+d; d = d.slice(0,11); var r='+7'; if(d.length>1) r+=' ('+d.slice(1,4); if(d.length>=4) r+=')'; if(d.length>=5) r+=' '+d.slice(4,7); if(d.length>=8) r+='-'+d.slice(7,9); if(d.length>=10) r+='-'+d.slice(9,11); return r; } function phoneValid(v){ return v.replace(/\D/g,'').length===11; } /* ================= bind ================= */ function bind(key){ card.querySelectorAll('[data-next]').forEach(function(b){b.onclick=onNext;}); card.querySelectorAll('[data-back]').forEach(function(b){b.onclick=goBack;}); if(key==='date'){ card.querySelectorAll('[data-date]').forEach(function(b){ b.onclick=function(){ S.date=b.getAttribute('data-date'); S.dateFull=b.getAttribute('data-iso'); S.dow=b.getAttribute('data-dow'); goNext(); }; }); } if(key==='time'){ card.querySelectorAll('[data-time]').forEach(function(b){ b.onclick=function(){ S.time=b.getAttribute('data-time'); goNext(); }; }); } if(key==='audience'){ card.querySelectorAll('[data-aud]').forEach(function(b){ b.onclick=function(){ S.audience=b.getAttribute('data-aud'); goNext(); }; }); } if(key==='sales'){ card.querySelectorAll('[data-sales]').forEach(function(b){ b.onclick=function(){ S.salesTeam=b.getAttribute('data-sales'); goNext(); }; }); } if(key==='revenue'){ card.querySelectorAll('[data-rev]').forEach(function(b){ b.onclick=function(){ S.revenue=b.getAttribute('data-rev'); goNext(); }; }); } if(key==='clientneed'){ card.querySelectorAll('[data-cneed]').forEach(function(b){ b.onclick=function(){ S.clientNeed=b.getAttribute('data-cneed'); goNext(); }; }); } if(key==='contacts'){ // phone masks ['in-cphone','in-pphone'].forEach(function(id){ var el=document.getElementById(id); if(el) el.addEventListener('input',function(){ el.value=maskPhone(el.value); }); }); card.querySelectorAll('[data-chan]').forEach(function(b){ b.onclick=function(){ S.channel=b.getAttribute('data-chan'); card.querySelectorAll('[data-chan]').forEach(function(x){x.classList.remove('sel');}); b.classList.add('sel'); document.getElementById('f-channel').classList.remove('err'); }; }); var sb=document.getElementById('submitBtn'); if(sb) sb.onclick=onSubmit; } if(key==='done'){ var eb=card.querySelector('[data-edit]'); if(eb) eb.onclick=function(){ jumpTo('contacts'); }; } } /* ================= next-button validation ================= */ function onNext(){ var key = flow()[pos]; if(key==='task'){ var v=document.getElementById('in-task').value.trim(); S.task=v; if(!v){ document.getElementById('f-task').classList.add('err'); return; } } if(key==='sphere'){ var v2=document.getElementById('in-sphere').value.trim(); S.sphere=v2; if(!v2){ document.getElementById('f-sphere').classList.add('err'); return; } } goNext(); } /* ================= submit ================= */ function onSubmit(){ var partner = S.audience==='partner'; var ok=true; // read fields S.clientName=(document.getElementById('in-cname')||{}).value ? document.getElementById('in-cname').value.trim() : ''; S.clientPhone=(document.getElementById('in-cphone')||{}).value ? document.getElementById('in-cphone').value.trim() : ''; if(partner){ S.partnerName=(document.getElementById('in-pname')||{}).value ? document.getElementById('in-pname').value.trim() : ''; S.partnerPhone=(document.getElementById('in-pphone')||{}).value ? document.getElementById('in-pphone').value.trim() : ''; } function mark(fid, bad){ var el=document.getElementById(fid); if(el){ el.classList[bad?'add':'remove']('err'); } if(bad) ok=false; } mark('f-client-name', !S.clientName); mark('f-client-phone', !phoneValid(S.clientPhone)); if(partner){ mark('f-partner-name', !S.partnerName); mark('f-partner-phone', !phoneValid(S.partnerPhone)); } if(!S.channel){ document.getElementById('f-channel').classList.add('err'); document.querySelector('#f-channel .errmsg').style.display='block'; ok=false; } if(!ok) return; // honeypot — silent ignore var hp=(document.getElementById('in-hp')||{}).value || ''; if(hp.trim()!==''){ return; } var elapsed = Date.now()-FORM_OPENED_AT; var payload = { type: partner ? 'partner' : 'direct', date: S.date, date_full: S.dateFull, dow: S.dow, time: S.time, manager: MANAGER_NAME, task: S.task, sphere: S.sphere, sales_team: S.salesTeam, revenue: S.revenue, client_with_task: partner ? S.clientNeed : null, client_name: S.clientName, client_phone: S.clientPhone, partner_name: partner ? S.partnerName : null, partner_phone: partner ? S.partnerPhone : null, channel: S.channel, hp: hp, elapsed_ms: elapsed, maybe_spam: elapsed < SPAM_MS }; var btn=document.getElementById('submitBtn'); if(btn){ btn.disabled=true; btn.textContent='Отправляем…'; } fetch('/quiz/api/zapis-submit', { method:'POST', headers:{'Content-Type':'application/json'}, body:JSON.stringify(payload) }).then(function(r){ // route may not exist yet (v1) — show success either way (mock-friendly) jumpTo('done'); }).catch(function(){ // network / route missing — still show acceptance screen in v1 jumpTo('done'); }); } /* init */ render();