How the Conscience Robot communicates with customers

We’ll tell you how the QIWI fintech project - the Conscience interest-free installment plan - transferred some of the contact center’s conversations to a robot that not only answers questions, but also asks them with outgoing calls. This article is about putting HTTP requests, speech synthesis, and voice recognition into practice.











Step 1: Intelligent IVR



The issue of money is one of the few that customers still prefer to solve orally, so the workload of call centers of banks does not fall due to the appearance of chats on websites and in mobile applications. Conscience operators daily receive more than four thousand calls related to registration and use of an installment card. Since most of the requests are typical and do not require special competence to provide advice, their processing can be transferred to the robot.



// ,       require(Modules.ASR); ​ let call; ​ // ,       let data = {}; ​ const PHRASES = { hello: "http://some_url_to_mp3_sound_for_start_question" }; ​ //    dtmf,    Qiwi const dtmf = { operator: { name: "", digit: "0" }, balance: { name: "", digit: "1" }, pin_code: { name: "-", digit: "3" } };
      
      





How does it work? Turning to the hotline number, the client enters the voice menu and voices the topic of his question - the system recognizes what has been said and directs the call for further processing. The client just needs to voice their problem in free form; additional pressing of any keys on the phone is not required.



 //     «»,      VoxEngine.addEventListener(AppEvents.CallAlerting, e => { //       call = e.call;​ //        data.phone = e.callerid;​ //     SIP         . //    «»       X-CID //     data.xcid = e.headers["X-CID"];​ //    call.answer();​ //        call.addEventListener(CallEvents.Connected, HandleConnected);​ //     call.addEventListener(CallEvents.RecordStarted, record => { //  URL     data.record_url = record.url; }); //     call.addEventListener(CallEvents.Disconnected, HandleDisconnected); });​ async function HandleConnected(e) { //    call.record(true);​ //    await startPlayback(call, PHRASES.hello);​ //     startASR(); }
      
      





If the consumer is interested in general instructions - for example, activating the card, how to replenish it, changing the PIN code, and so on, he hears the recorded audio clip with a step-by-step explanation.



 // ,    mp3-  function startPlayback(call, url, loop = false) { return new Promise(resolve => { call.startPlayback(url, loop); call.addEventListener(CallEvents.PlaybackFinished, function callback() { resolve(call.removeEventListener(CallEvents.PlaybackFinished, callback)); }); }); }
      
      





Thus, the first function of the call center that is easy to automate is the reproduction of standard haouts and answers to common questions.



The second group of appeals, for the closing of which no person is needed, is informing about the current balance, the amount of debt, the amount of the next payment.



From the point of view of information security, the whole process is brought into line with the requirements of Russian legislation and industry standards: Voximplant does not have access to personal data of customers. The solution determines the subject matter and transfers the call processing to the Conscience IVR, where, using speech synthesis, the information from the client’s card is voiced, authorization occurs on the QIWI side. Voice processing scenarios share common questions and questions related to personal data.



Show code
 //    ASR      ,    function startASR() { const asr = VoxEngine.createASR({ lang: ASRLanguage.RUSSIAN_RU });​ //     asr.addEventListener(ASREvents.Result, asrevent => { asr.stop();​ speech_processing(asrevent.text); }); }​ //     function speech_processing(text) { /*   /,      */​ /*   if -       .        ,    .       includes   && */ if ( text.includes("") && text.includes("") && text.includes("") ) { //        data.category = dtmf.balance.name;​ //      «» sendDigits(dtmf.balance.digit); } else if ( text.includes("") && text.includes("") && text.includes("") ) { data.category = dtmf.pin_code.name;​ sendDigits(dtmf.pin_code.digit); } else { //    ,    - ​ data.category = dtmf.operator.name;​ sendDigits(dtmf.operator.digit); } }​ //      IVR «», //  «»     ,   ,     . //    IVR   «»    sendDigits,​ /*    ""  ,  «»    ,  ,  dtmf - 1, IVR «»    ,   dtmf - 3,     “  -” */​ function sendDigits(digit) { //   call.sendDigits(digit);​ //     1.5 ,     DTMF. setTimeout(call.hangup, 1500); }​ //   ,     . async function HandleDisconnected(e) { //    Disconnected          . data.duration = e.duration;​ //         ,     .      CRM. await sendToCrm(data);​ //   .             ,       60 .      ,   . VoxEngine.terminate(); }​ async function sendToCrm(data) { //    -       .​ Logger.write(JSON.stringify(data));​ //    -        http -     Net.httpRequestAsync }
      
      







Thanks to this, it was possible not only to increase the speed and quality of customer service, but also significantly reduce the burden on operators. Now more than a hundred thousand calls per month are processed by the robot. If the operator’s direct participation is nevertheless necessary to resolve the issue, IVR switches the call to the necessary specialist, who receives a written transcription of the entire preliminary conversation of the bot with the client: the data goes to the Conscience CRM system via the API.









Step 2: Voice Notifications



How to reduce the cost of servicing the incoming line, we figured out, go to the outgoing. One of the typical reasons why the operator calls the cardholder is a reminder about making a monthly payment: this must be done by phone, as a message or push notification may be missed. At the same time, it is not necessary to spend the time of operators on this process. With the help of the Smartcalls service, “Conscience” dials the customer - in total, the robot makes three attempts - and speaks through speech synthesis when and how much should be put into the account.





Notification script



The number of outgoing calls can reach two thousand per minute, and the operating mode allows you to use it if necessary 24/7. This significantly optimizes the routine work of operators, avoiding the need to inflate the staff and payroll, and also allows you to use specialists exclusively for solving critical and sensitive tasks of the contact center.











Step 3: Gather Feedback



The last point is the automated collection of information for research. Before using Smartcalls, the project managed to ring a sample of 3,000 to 5,000 people per month. Now the robot makes 40,000 outgoing calls every month, while all employees previously engaged in dialing were transferred to another functional. Using the service, the quality of service is monitored, customer service effectiveness (CES), customer loyalty and customer satisfaction (NPS and CSI) are measured.





NPS script



How does it work? The bot asks the client to evaluate one of the parameters of the project on a ten-point scale, and the further scenario depends on the rating. If it is “eight” and above, the robot thanks the interlocutor and ends the conversation. If “seven” and below - asks to leave a detailed comment, indicating the reasons for dissatisfaction. Speech is transcribed and uploaded in writing for further analysis.









Today, technology allows you to create a bot truly friendly. His ability to understand human speech is constantly improving as a result of continuous training in new phrases and frequently used words. Not only the names of promotions or card options are added to the language model, but also many options for the wording of the same requests.



All Articles