Zephyrnet-Logo

Migrieren Sie Ihre IVR-Flows mit dem IVR-Migrationstool ganz einfach zu Amazon Lex

Datum:

Dieser Beitrag wurde von John Heater, SVP der Contact Center Practice bei NeuraFlash, mitverfasst. NeuraFlash ist ein Advanced AWS Partner mit über 40 Jahren Erfahrung im Sprach- und Automatisierungsbereich. Mit einem engagierten Team von Konversationsdesignern, Dateningenieuren und AWS-Entwicklern hilft NeuraFlash Kunden dabei, die Leistungsfähigkeit von Amazon Lex in ihren Contact Centern zu nutzen.

Amazon Lex bietet automatische Spracherkennung und Technologien zum Verstehen natürlicher Sprache, sodass Sie anspruchsvolle Konversationserlebnisse aufbauen und effektive interaktive Sprachantworten (IVR) erstellen können. Eine native Integration mit Amazon Connect, das Cloud-basierte Contact Center von AWS, ermöglicht das Hinzufügen einer Gesprächsschnittstelle zu jeder Call-Center-Anwendung. Sie können IVR-Erfahrungen entwerfen, um Benutzeranforderungen zu identifizieren und diese zu erfüllen, indem Sie die entsprechende Geschäftslogik ausführen.

Heute hat NeuraFlash, ein AWS APN-Partner, ein Migrationstool auf AWS-Marktplatz Damit können Sie Ihre VoiceXML (VXML) IVR-Flows einfach zu Amazon Lex und Amazon Connect migrieren. Das Migrationstool nimmt die VXML-Konfigurations- und Grammatik-XML-Dateien als Eingabe und stellt eine Amazon Lex-Bot-Definition bereit. Es unterstützt auch Grammatiken und Amazon Connect-Kontaktabläufe, sodass Sie schnell mit Ihren IVR-Konversationserlebnissen beginnen können.

In diesem Beitrag behandeln wir die Verwendung des IVR-Migrationstools und überprüfen die resultierende Amazon Lex-Bot-Definition und Amazon Connect-Kontaktabläufe.

Beispiel für eine Konversationsübersicht

Sie können die Beispiel-VXML- und Grammatikdateien als Eingabe verwenden, um das Tool auszuprobieren. Die Beispiel-IVR unterstützt die folgende Konversation:

IVR: Willkommen bei der ACME-Bank. Kann ich zur Überprüfung die letzten vier auf SSN auf dem Konto erhalten?

Anrufer: Ja, es ist 1234.

IVR: Großartig. Und das Geburtsdatum des Erstinhabers?

Anrufer: 1. Januar 2000.

IVR: Danke. Wie kann ich Ihnen heute helfen?

Anrufer: Ich möchte eine Zahlung leisten.

IVR: Sicher. Wie lautet die Kreditkartennummer?

Anrufer: 1234 5678 1234 5678

IVR: Verstanden. Was ist der CVV?

Anrufer: 123

IVR: Wie sieht es mit dem Ablaufdatum aus?

Anrufer: Januar 2025.

IVR: Großartig. Wie viel zahlen wir heute?

Anrufer: $100

IVR: Danke. Ihre Zahlung von 100 $ auf einer Karte mit den Endziffern 5678 wird bearbeitet. Können wir Ihnen sonst noch helfen?

Anrufer: Nein danke.

IVR: Ich wünsche Ihnen einen schönen Tag.

Übersicht über das Migrationstool

Das folgende Diagramm veranschaulicht die Architektur des Migrationstools.

Sie können auf das Migrationstool im AWS Marketplace zugreifen. Befolgen Sie die Anweisungen zum Hochladen Ihrer VXML- und Grammatik-XML-Dateien.

Das Tool verarbeitet die XML-Eingabedateien, um einen IVR-Fluss zu erstellen. Sie können den Amazon Connect-Kontaktablauf, die Amazon Lex-Bot-Definition und unterstützende Grammatikdateien herunterladen.

Migrationsmethodik

Das IVR-Migrationstool analysiert die hochgeladene IVR-Anwendung und generiert einen Amazon Lex-Bot, Amazon Connect-Flows und SRGS-Grammatikdateien. Pro VXML-Anwendung (oder VXML-Datei) wird ein Bot generiert. Jeder Eingabezustand in der VXML-Datei wird einer Dialogaufforderung im Amazon Lex-Bot zugeordnet. Die entsprechende Grammatikdatei für den Eingabezustand wird verwendet, um einen Grammatikslot zu erstellen. Für den Amazon Connect-Flow wird jede VXML-Datei einem Knoten im IVR-Flow zugeordnet. Innerhalb des Flusses, a GetCustomerInputBlock übergibt die Kontrolle an Amazon Lex, um den Dialog zu verwalten.

Betrachten wir den folgenden VXML-Inhalt im Beispieldialog für die Benutzerüberprüfung. Sie können die herunterladen Konto überprüfen VXML-Datei.

<?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>

Zusätzlich zur vorangehenden VXML-Datei binden wir die folgenden SRGS-Grammatiken aus der IVR-Anwendung in das IVR-Migrationstool ein:

  • last4SSN.grxml – Grammatik zur Erkennung der letzten vier Ziffern der Sozialversicherungsnummer
  • dateOfBirth.grxml – Grammatik zur Erkennung des Geburtsdatums

Ein Amazon Lex-Bot wird erstellt, um den Anrufer zu verifizieren. Die Verifizierungs-Bot hat eine Absicht (VerifyAccount).

Der Bot hat zwei Slots (SSN, DOB), die auf die Grammatikdateien für die SSN- bzw. Geburtsdatumsgrammatik verweisen. Sie können die herunterladen last4SSN.grxml und dateOfBirth.grxml Grammatikdateien als Ausgabe, um die benutzerdefinierten Slot-Typen in Amazon Lex zu erstellen.

In einem weiteren Beispiel eines Zahlungsflusses liest das IVR-Migrationstool die Zahlungserfassungsflüsse ein, um einen Amazon Lex-Bot zu generieren, der Zahlungen verarbeiten kann. Sie können die entsprechende herunterladen Bezahlung VXML-Datei und SRGS-Grammatiken.

<?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>

Zusätzlich zur vorangehenden VXML-Datei binden wir die folgenden SRGS-Grammatiken aus der IVR-Anwendung in das IVR-Migrationstool ein:

Ein Amazon Lex-Bot wird erstellt, um die Zahlungsdetails zu sammeln. Die Zahlungsbot hat eine Absicht (MakePayment).

Der Bot hat vier Slots (credit card number, expiration date, CVV, payment amount), die auf die Grammatikdatei verweisen. Sie können die herunterladen creditCard.grxml, creditCardExpiration.grxml, creditCardCVV.grxml und Zahlungsbetrag.grxml Grammatikdateien als Ausgabe, um die benutzerdefinierten Slot-Typen in Amazon Lex zu erstellen.

Schließlich bietet das Migrationstool die Zahlungs-IVR-Kontaktablauf um die End-to-End-Konversation zu verwalten.

Zusammenfassung

Mit Amazon Lex können Sie auf einfache Weise anspruchsvolle Konversationserlebnisse in natürlicher Sprache erstellen. Mit dem IVR-Migrationstool können Sie Ihre VXML-IVR-Flows einfach zu Amazon Lex migrieren. Das Tool stellt die Bot-Definitionen und -Grammatiken zusätzlich zu den Amazon Connect-Kontaktabläufen bereit. Es ermöglicht Ihnen, Ihre IVR-Flows unverändert zu migrieren und mit Amazon Lex zu beginnen, was Ihnen die Flexibilität gibt, das Gesprächserlebnis in Ihrem eigenen Tempo aufzubauen.

Verwenden Sie das Migrationstool auf AWS-Marktplatz und migrieren Sie Ihr IVR noch heute zu Amazon Lex.


Über die Autoren

John Heizung hat über 15 Jahre Erfahrung in KI und Automatisierung. Als SVP der Contact Center Practice bei NeuraFlash leitet er die Implementierung der neuesten KI- und Automatisierungstechniken für ein Portfolio von Produkten und Kundenlösungen.

Sandeep Srinivasan ist Produktmanager im Amazon Lex-Team. Als scharfer Beobachter des menschlichen Verhaltens liegt ihm das Kundenerlebnis leidenschaftlich am Herzen. Seine wachen Stunden verbringt er an der Schnittstelle von Mensch, Technologie und Zukunft.

spot_img

Neueste Intelligenz

spot_img