Zephyrnet Logosu

IVR geçiş aracını kullanarak IVR akışlarınızı Amazon Lex'e kolayca taşıyın

Tarih:

Bu gönderi, NeuraFlash'taki İletişim Merkezi Uygulamasından Sorumlu Kıdemli Başkan Yardımcısı John Heater tarafından ortaklaşa yazılmıştır. NeuraFlash, ses ve otomasyon alanında 40 yılı aşkın toplu deneyime sahip Gelişmiş bir AWS Çözüm Ortağıdır. Özel konuşma tasarımcıları, veri mühendisleri ve AWS geliştiricilerinden oluşan bir ekiple NeuraFlash, müşterilerin iletişim merkezlerinde Amazon Lex'in gücünden yararlanmalarına yardımcı olur.

Amazon Lex'i gelişmiş konuşma deneyimleri oluşturabilmeniz ve etkili etkileşimli sesli yanıt (IVR) akışları oluşturabilmeniz için otomatik konuşma tanıma ve doğal dil anlama teknolojileri sağlar. ile yerel bir entegrasyon Amazon Bağlantısı, AWS'nin bulut tabanlı iletişim merkezi, herhangi bir çağrı merkezi uygulamasına bir konuşma arabiriminin eklenmesini sağlar. Kullanıcı isteklerini belirlemek ve bunları uygun iş mantığını çalıştırarak yerine getirmek için IVR deneyimleri tasarlayabilirsiniz.

Bugün, bir AWS APN iş ortağı olan NeuraFlash, üzerinde bir geçiş aracı başlattı AWS Pazar Yeri bu, VoiceXML (VXML) IVR akışlarınızı Amazon Lex ve Amazon Connect'e kolayca geçirmenize yardımcı olur. Geçiş aracı, VXML yapılandırmasını ve dil bilgisi XML dosyalarını girdi olarak alır ve bir Amazon Lex bot tanımı sağlar. Ayrıca, IVR konuşma deneyimlerinize hızla başlayabilmeniz için dilbilgisi ve Amazon Connect iletişim akışlarını da destekler.

Bu gönderide, IVR geçiş aracının kullanımını ele alıyor ve sonuçta ortaya çıkan Amazon Lex bot tanımını ve Amazon Connect iletişim akışlarını gözden geçiriyoruz.

Örnek konuşmaya genel bakış

Aracı denemek için girdi olarak örnek VXML ve dil bilgisi dosyalarını kullanabilirsiniz. Örnek IVR aşağıdaki konuşmayı destekler:

IVR: ACME bankasına hoş geldiniz. Doğrulama için, hesaptaki SSN'deki son dördünü alabilir miyim?

Arayan: Evet, 1234.

IVR: Harika. Ve birincil sahibi için doğum tarihi?

Arayan: 1 Ocak 2000.

IVR: Teşekkürler. bugün size nasıl yardım edebilirim?

Arayan: Bir ödeme yapmak istiyorum.

IVR: Tabii. Kredi kartı numarası nedir?

Arayan: 1234 5678 1234 5678

IVR: Anladım. CVV'niz nedir?

Arayan: 123

IVR: Son kullanma tarihi ne durumda?

Arayan: Ocak 2025.

IVR: Harika. Bugün ne kadar ödüyoruz?

arayan: $100

IVR: Teşekkürler. 100 ile biten karttaki 5678$'lık ödemeniz işleme koyulur. Size yardımcı olabileceğimiz başka bir şey var mı?

Arayan: Hayır teşekkürler.

IVR: İyi günler.

Taşıma aracına genel bakış

Aşağıdaki diyagram, geçiş aracının mimarisini göstermektedir.

Geçiş aracına AWS Marketplace'ten erişebilirsiniz. VXML ve gramer XML dosyalarınızı yüklemek için talimatları izleyin.

Araç, bir IVR akışı oluşturmak için girdi XML dosyalarını işler. Amazon Connect iletişim akışını, Amazon Lex bot tanımını ve destekleyici dil bilgisi dosyalarını indirebilirsiniz.

Taşıma metodolojisi

IVR geçiş aracı, yüklenen IVR uygulamasını analiz eder ve bir Amazon Lex botu, Amazon Connect akışları ve SRGS dil bilgisi dosyaları oluşturur. VXML uygulaması (veya VXML dosyası) başına bir bot oluşturulur. VXML dosyasındaki her giriş durumu, Amazon Lex botundaki bir iletişim istemiyle eşlenir. Giriş durumuna karşılık gelen dilbilgisi dosyası, bir dilbilgisi yuvası oluşturmak için kullanılır. Amazon Connect akışı için her VXML dosyası, IVR akışındaki bir düğümle eşlenir. Akış içinde bir GetCustomerInputBlock iletişim kutusunu yönetmek için kontrolü Amazon Lex'e devreder.

Kullanıcı doğrulaması için örnek iletişim kutusunda aşağıdaki VXML içeriğini ele alalım. indirebilirsiniz Hesabı Doğrula VXML dosyası.

<?xml version="1.0" encoding="UTF-8"?> <vxml version="1.0" application="app_root.vxml"> <!--*** Verify user with SSN ***-->
<form id="Verify_SSN"> <field name="Verify_SSN"> <grammar type="application/srgs+xml" srcexpr="'./grammar/last4ssn.grxml'"/> <prompt> <audio expr="'./prompts/Verify_SSN/Init.wav'"> To verify your account, can I please have the last four digits of your social security number. </audio> </prompt>
<!--*** Handling when the user input is not understood ***-->
<nomatch count="1"> <audio expr="./prompts/Verify_SSN/nm1.wav'"> I'm sorry, I didn't understand. Please tell me the last four digits of your social security number. </audio>
</nomatch>
<nomatch count="2"> <audio expr="./prompts/Verify_SSN/nm2.wav'"> I'm sorry, I still didn't get that. Please say or enter the last four digits of your social security number. You can also say I dont know if you do not have it. </audio>
</nomatch> <!--*** Handling when the user does not provide input ***--> <noinput count="1"> <audio expr="./prompts/Verify_SSN/ni1.wav'"> I'm sorry, I couldn't hear you. Please tell me the last four digits of your social security number. </audio>
</noinput>
<noinput count="2"> <audio expr="./prompts/Verify_SSN/ni1.wav'"> I'm sorry, I still could not hear you. Please say or enter the last four digits of your social security number. You can also say I dont know if you do not have it. </audio>
</noinput> <!--*** Handling when the user input is recognized ***--> <filled> <if cond="Verify_SSN.option == 'agent'"> <assign name="transfer_reason" expr="'agent'"/> <goto next="transfer.vxml"/> <elseif cond="Verify_SSN.option == 'dunno'" /> <assign name="transfer_reason" expr="'no_ssn'"/> <goto next="transfer.vxml"/> <else/> <assign name="last4_ssn" expr="Verify_SSN.option"/> <goto next="#Verify_DOB"/> </if> </filled> </field>
</form> <!--*** Verify user with date of birth ***-->
<form id="Verify_DOB"> <field name="Verify_DOB"> <grammar type="application/srgs+xml" srcexpr="'./grammar/dateofbirth.grxml'"/> <prompt> <audio expr="'./prompts/Verify_DOB/Init.wav'"> Thank you. And can I also have your date of birth? </audio> </prompt> <!--*** Handling when the user input is not understood ***-->
<nomatch count="1"> <audio expr="./prompts/Verify_DOB/nm1.wav'"> I'm sorry, I didn't understand. Please say your date of birth. </audio>
</nomatch>
<nomatch count="2"> <audio expr="./prompts/Verify_DOB/nm2.wav'"> I'm sorry, I still didn't get that. Please say or enter your date of birth. For example, you can say July twenty fifth nineteen eighty or enter zero seven two five one nine eight zero. </audio>
</nomatch> <!--*** Handling when the user does not provide input ***--> <noinput count="1"> <audio expr="./prompts/Verify_DOB/ni1.wav'"> I'm sorry, I couldn't hear you. Please say your date of birth. </audio>
</noinput>
<noinput count="2"> <audio expr="./prompts/Verify_DOB/ni1.wav'"> I'm sorry, I still could not hear you. Please say or enter your date of birth. For example, you can say July twenty fifth nineteen eighty or enter zero seven two five one nine eight zero. </audio>
</noinput> <!--*** Handling when the user input is recognized ***--> <filled> <if cond="Verify_DOB.option == 'agent'"> <assign name="transfer_reason" expr="'agent'"/> <goto next="transfer.vxml"/> <else/> <assign name="date_of_birth" expr="Verify_DOB.option"/> <goto next="validate_authentication.vxml"/> </if> </filled> </field>
</form> </vxml>

Önceki VXML dosyasına ek olarak, IVR geçiş aracına IVR uygulamasından aşağıdaki SRGS gramerlerini ekledik:

Arayanı doğrulamak için bir Amazon Lex botu oluşturulur. bu doğrulama botu bir amacı var (VerifyAccount).

Botun iki yuvası vardır (SSN, DOB) sırasıyla SSN ve doğum tarihi dilbilgisi için dilbilgisi dosyalarına atıfta bulunur. indirebilirsiniz last4SSN.grxml ve tarihOfBirth.grxml Amazon Lex'te özel yuva türleri oluşturmak için dilbilgisi dosyalarını çıktı olarak kullanın.

Başka bir ödeme akışı örneğinde, IVR geçiş aracı, ödemeleri işleyebilecek bir Amazon Lex botu oluşturmak için ödeme tahsilat akışlarını okur. ilgili indirebilirsiniz Ödeme VXML dosyası ve SRGS gramerleri.

<?xml version="1.0" encoding="UTF-8"?> <vxml version="1.0" application="app_root.vxml"> <!--*** Collect the users credit card for payment ***-->
<form id="CreditCard_Collection"> <field name="CreditCard_Collection"> <grammar type="application/srgs+xml" srcexpr="'./grammar/creditcard.grxml'"/> <prompt> <audio expr="'./prompts/CreditCard_Collection/Init.wav'"> To start your payment, can I please have your credit card number. </audio> </prompt>
<!--*** Handling when the user input is not understood ***-->
<nomatch count="1"> <audio expr="./prompts/CreditCard_Collection/nm1.wav'"> I'm sorry, I didn't understand. Please tell me your credit card number. </audio>
</nomatch>
<nomatch count="2"> <audio expr="./prompts/CreditCard_Collection/nm2.wav'"> I'm sorry, I still didn't get that. Please say or enter your credit card number. </audio>
</nomatch> <!--*** Handling when the user does not provide input ***--> <noinput count="1"> <audio expr="./prompts/CreditCard_Collection/ni1.wav'"> I'm sorry, I couldn't hear you. Please tell me your credit card number. </audio>
</noinput>
<noinput count="2"> <audio expr="./prompts/CreditCard_Collection/ni1.wav'"> I'm sorry, I still could not hear you. Please say or enter your credit card number. </audio>
</noinput> <!--*** Handling when the user input is recognized ***--> <filled> <assign name="creditcard_number" expr="CreditCard_Collection.option"/> <goto next="#ExpirationDate_Collection"/> </filled> </field>
</form> <!--*** Collect the credit card expiration date ***-->
<form id="ExpirationDate_Collection"> <field name="ExpirationDate_Collection"> <grammar type="application/srgs+xml" srcexpr="'./grammar/creditcard_expiration.grxml'"/> <prompt> <audio expr="'./prompts/ExpirationDate_Collection/Init.wav'"> Thank you. Now please provide your credit card expiration date. </audio> </prompt> <!--*** Handling when the user input is not understood ***-->
<nomatch count="1"> <audio expr="./prompts/ExpirationDate_Collection/nm1.wav'"> I'm sorry, I didn't understand. Please say the expiration date. </audio>
</nomatch>
<nomatch count="2"> <audio expr="./prompts/ExpirationDate_Collection/nm2.wav'"> I'm sorry, I still didn't get that. Please say or enter your credit card expiration date. </audio>
</nomatch> <!--*** Handling when the user does not provide input ***--> <noinput count="1"> <audio expr="./prompts/ExpirationDate_Collection/ni1.wav'"> I'm sorry, I couldn't hear you. Please say the expiration date. </audio>
</noinput>
<noinput count="2"> <audio expr="./prompts/ExpirationDate_Collection/ni1.wav'"> I'm sorry, I still could not hear you. Please say or enter your credit card expiration date. </audio>
</noinput> <!--*** Handling when the user input is recognized ***--> <filled> <if cond="ExpirationDate_Collection.option == 'agent'"> <assign name="transfer_reason" expr="'agent'"/> <goto next="transfer.vxml"/> <else/> <assign name="creditcard_expiration" expr="ExpirationDate_Collection.option"/> <goto next="#CVV_Collection"/> </if> </filled> </field>
</form> <!--*** Collect the credit card CVV number ***-->
<form id="CVV_Collection"> <field name="CVV_Collection"> <grammar type="application/srgs+xml" srcexpr="'./grammar/creditcard_cvv.grxml'"/> <prompt> <audio expr="'./prompts/CVV_Collection/Init.wav'"> Almost done. Now please tell me the CVV code. </audio> </prompt> <!--*** Handling when the user input is not understood ***-->
<nomatch count="1"> <audio expr="./prompts/CVV_Collection/nm1.wav'"> I'm sorry, I didn't understand. Please say the CVV on the credit card. </audio>
</nomatch>
<nomatch count="2"> <audio expr="./prompts/CVV_Collection/nm2.wav'"> I'm sorry, I still didn't get that. Please say or enter the credit card CVV. It can be found on the back of the card. </audio>
</nomatch> <!--*** Handling when the user does not provide input ***--> <noinput count="1"> <audio expr="./prompts/CVV_Collection/ni1.wav'"> I'm sorry, I couldn't hear you. Please say the CVV on the credit card. </audio>
</noinput>
<noinput count="2"> <audio expr="./prompts/CVV_Collection/ni1.wav'"> I'm sorry, I still could not hear you. Please say or enter the credit card CVV. It can be found on the back of the card. </audio>
</noinput> <!--*** Handling when the user input is recognized ***--> <filled> <if cond="CVV_Collection.option == 'agent'"> <assign name="transfer_reason" expr="'agent'"/> <goto next="transfer.vxml"/> <else/> <assign name="creditcard_cvv" expr="CVV_Collection.option"/> <goto next="#PaymentAmount_Collection"/> </if> </filled> </field>
</form> <!--*** Collect the payment amount ***-->
<form id="PaymentAmount_Collection"> <field name="PaymentAmount_Collection"> <grammar type="application/srgs+xml" srcexpr="'./grammar/amount.grxml'"/> <prompt> <audio expr="'./prompts/PaymentAmount_Collection/Init.wav'"> Finally, please tell me how much you will be paying. You can also say full amount. </audio> </prompt> <!--*** Handling when the user input is not understood ***-->
<nomatch count="1"> <audio expr="./prompts/PaymentAmount_Collection/nm1.wav'"> I'm sorry, I didn't understand. Please say the amount of your payment. </audio>
</nomatch>
<nomatch count="2"> <audio expr="./prompts/PaymentAmount_Collection/nm2.wav'"> I'm sorry, I still didn't get that. Please say or enter your payment amount. If you will be paying in full you can just say full amount. </audio>
</nomatch> <!--*** Handling when the user does not provide input ***--> <noinput count="1"> <audio expr="./prompts/PaymentAmount_Collection/ni1.wav'"> I'm sorry, I couldn't hear you. Please say the amount of your payment. </audio>
</noinput>
<noinput count="2"> <audio expr="./prompts/PaymentAmount_Collection/ni1.wav'"> I'm sorry, I still could not hear you. Please say or enter your payment amount. If you will be paying in full you can just say full amount. </audio>
</noinput> <!--*** Handling when the user input is recognized ***--> <filled> <if cond="PaymentAmount_Collection.option == 'agent'"> <assign name="transfer_reason" expr="'agent'"/> <goto next="transfer.vxml"/> <elseif cond="Verify_SSN.option == 'full_amount'" /> <assign name="creditcard_amount" expr="'full''"/> <goto next="processpayment.vxml"/> <else/> <assign name="creditcard_amount" expr="PaymentAmount_Collection.option"/> <goto next="processpayment.vxml"/> </if> </filled> </field>
</form> </vxml>

Önceki VXML dosyasına ek olarak, IVR geçiş aracına IVR uygulamasından aşağıdaki SRGS gramerlerini ekledik:

Ödeme ayrıntılarını toplamak için bir Amazon Lex botu oluşturulur. bu Ödeme botu bir amacı var (MakePayment).

Botun dört yuvası vardır (credit card number, expiration date, CVV, payment amount) dilbilgisi dosyasına başvuran. indirebilirsiniz kredi Kartı.grxml, kredi KartıExpiration.grxml, kredi KartıCVV.grxml, ve ödemeAmount.grxml Amazon Lex'te özel yuva türleri oluşturmak için dilbilgisi dosyalarını çıktı olarak kullanın.

Son olarak, geçiş aracı şunları sağlar: ödeme IVR iletişim akışı uçtan uca konuşmayı yönetmek için.

Sonuç

Amazon Lex, karmaşık, doğal dil konuşma deneyimlerini kolayca oluşturmanıza olanak tanır. IVR geçiş aracı, VXML IVR akışlarınızı Amazon Lex'e kolayca geçirmenizi sağlar. Araç, Amazon Connect kişi akışlarına ek olarak bot tanımlarını ve dilbilgilerini sağlar. IVR akışlarınızı olduğu gibi taşımanıza ve Amazon Lex'i kullanmaya başlamanıza olanak tanıyarak size konuşma deneyimini kendi hızınızda oluşturma esnekliği sağlar.

Taşıma aracını şurada kullanın: AWS Pazar Yeri ve IVR'nizi bugün Amazon Lex'e taşıyın.


Yazarlar Hakkında

John Isıtıcı AI ve otomasyonda 15 yılı aşkın deneyime sahiptir. NeuraFlash'taki İletişim Merkezi Uygulamasının Kıdemli Başkan Yardımcısı olarak, bir ürün portföyü ve müşteri çözümleri için en yeni yapay zeka ve otomasyon tekniklerinin uygulanmasına liderlik ediyor.

Sandeep Srinivasan Amazon Lex ekibinde bir Ürün Yöneticisidir. İnsan davranışlarının keskin bir gözlemcisi olarak müşteri deneyimi konusunda tutkulu. Uyanma saatlerini insanların, teknolojinin ve geleceğin kesiştiği yerde geçirir.

spot_img

En Son İstihbarat

spot_img

Bizimle sohbet

Merhaba! Size nasıl yardım edebilirim?