Source: https://patents.google.com/patent/US10359923B2/en
Timestamp: 2019-09-20 12:25:09
Document Index: 273827901

Matched Legal Cases: ['Application No. 2014323444', 'Application No. 2', 'Application No. 2', 'Application No. 2', 'Application No. 201480063743', 'Application No. 14846310', 'Application No. 10', 'Application No. 10', 'Application No. 10', 'Application No. 14846310', 'Application No. 13', 'Application No. 13']

US10359923B2 - Application builder platform - Google Patents
Application builder platform Download PDF
US10359923B2
US10359923B2 US15/069,678 US201615069678A US10359923B2 US 10359923 B2 US10359923 B2 US 10359923B2 US 201615069678 A US201615069678 A US 201615069678A US 10359923 B2 US10359923 B2 US 10359923B2
US15/069,678
US20160196053A1 (en
2014-02-28 Priority to US14/193,407 priority Critical patent/US9285974B2/en
2016-03-14 Application filed by Genesys Telecommunications Laboratories Inc filed Critical Genesys Telecommunications Laboratories Inc
2016-03-14 Priority to US15/069,678 priority patent/US10359923B2/en
2016-03-16 Assigned to ANGEL.COM INCORPORATED reassignment ANGEL.COM INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KUMAR, PRAPHUL, VYMENETS, LEON
2016-07-07 Publication of US20160196053A1 publication Critical patent/US20160196053A1/en
2019-07-23 Publication of US10359923B2 publication Critical patent/US10359923B2/en
An interface for configuring an interaction site is provided. First values corresponding to first parameters of an interaction page of the one or more interaction pages are received. Recommended interaction pages for the interaction site are selected based on the first values. An interface for selecting any interaction page of the recommended interaction pages is provided. Data indicating a selection of a particular interaction page is received. In response to receiving the data indicating the selection of the particular interaction page, an interface for configuring the particular interaction page is provided. Second values corresponding to second parameters of the particular interaction page are received. A second multi-step communication flow is determined based on (i) values corresponding to the parameters associated with the first multi-step communication flow and (ii) the second values. An interaction flow document including code for the interaction site specifying the second multi-step communication flow is generated.
This application is a continuation of U.S. patent application Ser. No. 14/193,407, filed on Feb. 28, 2014, now U.S. Pat. No. 9,285,974, the disclosure of which is incorporated herein by reference.
A developer may develop an application to allow a user to use a personal communications device to contact a company to discuss a service or a product provided by the company. Developers may develop and share applications over an application builder platform.
In a general aspect, instructions that, when executed, provide an interface for configuring an interaction site, the interaction site enabling communications between a user device and a communications system over any of multiple communications channels, including an interactive voice response (IVR) channel are transmitted from an application builder system to a content provider system, where the interaction site specifies a first multi-step communication flow between the user device and the communications system, and where the first multi-step communication flow is determined based on one or more interaction pages configurable by a developer of the content provider system through interactions with the interface to input values corresponding to parameters of the one or more interaction pages. One or more first values corresponding to one or more of first parameters of an interaction page of the one or more interaction pages are received from the content provider system. One or more recommended interaction pages for the interaction site are selected by the application builder system and based on the one or more first values corresponding to the one or more of the first parameters. Instructions that, when executed, provide an interface for selecting any interaction page of the one or more recommended interaction pages are transmitted from the application builder system to the content provider system. Data indicating a selection of a particular interaction page of the one or more recommended interaction pages are received from the content provider system. In response to receiving the data indicating the selection of the particular interaction page, instructions that when executed, provide an interface for configuring the particular interaction page are transmitted from the application builder system to the content provider system, where the particular interaction page includes one or more second parameters. One or more second values corresponding to the one or more of the second parameters of the particular interaction page are received from the content provider system. A second multi-step communication flow between the user device and the communications system is determined by the application builder system based on (i) at least one of the values corresponding to the parameters associated with the first multi-step communication flow and (ii) the one or more second values corresponding to the one or more of the second parameters of the particular interaction page. An interaction flow document is generated, the interaction flow document including code for the interaction site specifying the second multi-step communication flow.
Implementations may include one or more of the following features. For example, to transmit instructions that, when executed, provide an interface for configuring an interaction site, contextual data representing one or more design criteria may be obtained by the application builder system. One or more recommended interaction sites including the interaction site may be selected by the application builder system based on the contextual data. Instructions that, when executed, provide an interface for selecting any interaction site of the one or more recommended interaction sites may be transmitted from the application builder system to the content provider system. Selection data indicating a selection of the interaction site of the one or more recommended interaction sites may be received from the content provider system. The instructions that, when executed, provide the interface for configuring the interaction site may be obtained.
To obtain contextual data representing one or more design criteria, instructions that, when executed, provide an interface for presenting one or more predetermined questions and entering one or more answers corresponding to the one or more predetermined questions may be transmitted from the application builder system to the content provider system. Data representing the one or more answers corresponding to the one or more predetermined questions may be received from the content provider system. The contextual data representing the one or more design criteria based on the data representing the one or more answers corresponding to the one or more predetermined questions may be determined by the application builder system.
To select one or more recommended interaction sites, a search query based on the contextual data representing the one or more design criteria may be obtained by the application builder system. A plurality of interaction sites including the one or more recommended interaction sites based on the search query may be obtained by the application builder system. To obtain contextual data representing one or more design criteria, a search query representing the one or more design criteria may be received.
To select the one or more recommended interaction pages for the interaction site, a search query based on the one or more first values corresponding to the one or more of the first parameters may be obtained by the application builder system. A plurality of interaction pages including the one or more recommended interaction pages based on the search query may be obtained by the application builder system. The particular interaction page may be an interaction page configured by a developer of a second, different content provider system.
Instructions that, when executed, provide an interface for sharing the interaction flow document including the code for the interaction site specifying the second multi-step communication flow with another developer of a second, different content provider system may be transmitted from the application builder system to the content provider system. The code of the interaction flow document may include XML scripts that correspond to pages of the interaction site. The multiple communications channels may further include at least one of a SMS channel, a chat channel, and an email channel.
In another general aspect of a system includes one or more processors and one or more non-transitory computer-readable storage devices storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including transmitting instructions that, when executed by a content provider system, provide an interface for configuring an interaction site, the interaction site enabling communications between a user device and a communications system over any of multiple communications channels, including an interactive voice response (IVR) channel, where the interaction site specifies a first multi-step communication flow between the user device and the communications system, and where the first multi-step communication flow is determined based on one or more interaction pages configurable by a developer of the content provider system through interactions with the interface to input values corresponding to parameters of the one or more interaction pages; receiving one or more first values corresponding to one or more of first parameters of an interaction page of the one or more interaction pages; selecting, based on the one or more first values corresponding to the one or more of the first parameters, one or more recommended interaction pages for the interaction site; transmitting instructions that, when executed by the content provider system, provide an interface for selecting any interaction page of the one or more recommended interaction pages; receiving data indicating a selection of a particular interaction page of the one or more recommended interaction pages; in response to receiving the data indicating the selection of the particular interaction page, transmitting instructions that, when executed by the content provider system, provide an interface for configuring the particular interaction page, where the particular interaction page includes one or more second parameters; receiving one or more second values corresponding to the one or more of the second parameters of the particular interaction page; determining a second multi-step communication flow between the user device and the communications system based on (i) at least one of the values corresponding to the parameters associated with the first multi-step communication flow and (ii) the one or more second values corresponding to the one or more of the second parameters of the particular interaction page; and generating an interaction flow document, the interaction flow document including code for the interaction site specifying the second multi-step communication flow.
Implementations may include one or more of the following features. For example, the instructions may include transmitting instructions that, when executed, provide an interface for configuring an interaction site that includes obtaining contextual data representing one or more design criteria; selecting, based on the contextual data, one or more recommended interaction sites including the interaction site; transmitting, to the content provider system, instructions that, when executed, provide an interface for selecting any interaction site of the one or more recommended interaction sites; receiving, from the content provider system, selection data indicating a selection of the interaction site of the one or more recommended interaction sites; and obtaining the instructions that, when executed, provide the interface for configuring the interaction site.
The instructions may include obtaining contextual data representing one or more design criteria that includes transmitting, to the content provider system, instructions that, when executed, provide an interface for presenting one or more predetermined questions and entering one or more answers corresponding to the one or more predetermined questions; receiving, from the content provider system, data representing the one or more answers corresponding to the one or more predetermined questions; and determining the contextual data representing the one or more design criteria based on the data representing the one or more answers corresponding to the one or more predetermined questions.
The instructions may include selecting the one or more recommended interaction pages for the interaction site that includes obtaining a search query based on the one or more first values corresponding to the one or more of the first parameters; and obtaining a plurality of interaction pages including the one or more recommended interaction pages based on the search query.
The instructions may include transmitting, to the content provider system, instructions that, when executed, provide an interface for sharing the interaction flow document including the code for the interaction site specifying the second multi-step communication flow with another developer of a second, different content provider system.
In another general aspect, a system includes one or more processors and one or more non-transitory computer-readable storage devices storing instructions that when executed by the one or more processors cause the one or more processors to perform operations including receiving instructions from an application builder system that, when executed, provide an interface for configuring an interaction site, the interaction site enabling communications between a user device and a communications system over any of multiple communications channels, including an interactive voice response (IVR) channel, where the interaction site specifies a first multi-step communication flow between the user device and the communications system, and where the first multi-step communication flow is determined based on one or more interaction pages configurable by a developer of a content provider system through interactions with the interface to input values corresponding to parameters of the one or more interaction pages; transmitting one or more first values corresponding to one or more of first parameters of an interaction page of the one or more interaction pages; receiving instructions from the application builder system that, when executed, provide an interface for selecting any interaction page of one or more recommended interaction pages, where the one or more recommended interaction pages are obtained by the application builder system based on the one or more first values corresponding to the one or more of the first parameters; transmitting data indicating a selection of a particular interaction page of the one or more recommended interaction pages; receiving instructions from the application builder system that, when executed, provide an interface for configuring the particular interaction page, where the particular interaction page includes one or more second parameters; transmitting one or more second values corresponding to the one or more of the second parameters of the particular interaction page; and transmitting an instruction to generate an interaction flow document, the interaction flow document including code for the interaction site specifying a second multi-step communication flow, where the second multi-step communication flow between the user device and the communications system is determined by the application builder system based on (i) at least one of the values corresponding to the parameters associated with the first multi-step communication flow and (ii) the one or more second values corresponding to the one or more of the second parameters of the particular interaction page.
Implementations may include one or more of the following features. For example, the instructions may include receiving instructions that, when executed, provide an interface for configuring an interaction site that includes providing contextual data representing one or more design criteria; receiving, from the application builder system, instructions that, when executed, provide an interface for selecting any interaction site of one or more recommended interaction sites; and transmitting, to the application builder system, selection data indicating a selection of the interaction site of the one or more recommended interaction sites.
The instructions may include providing contextual data representing one or more design criteria including receiving, from the application builder system, instructions that, when executed, provide an interface for presenting one or more predetermined questions and entering one or more answers corresponding to the one or more predetermined questions; and transmitting, to the application builder system, data representing the one or more answers corresponding to the one or more predetermined questions, where the contextual data representing the one or more design criteria is determined by the application builder system based on the data representing the one or more answers corresponding to the one or more predetermined questions.
The instructions may include receiving, from the application builder system, instructions that, when executed, provide an interface for sharing the interaction flow document including the code for the interaction site specifying the second multi-step communication flow with another developer of a second, different content provider system. The code of the interaction flow document may include XML scripts that correspond to pages of the interaction site.
FIG. 1 is a block diagram of a communications system that provides development and access of interaction sites in a multi-channel solution platform.
FIGS. 4A-4H illustrate a GUI for an application development platform that is used by a content provider to create an interaction site for a communications system.
FIGS. 6A and 6B are flow charts illustrating an example of a process for a content provider to create and host an interaction site.
FIG. 7 is a flow chart illustrating an example of a process for a user to communicate with a multi-channel communications system and access an interaction site via a communications channel.
The interaction between a customer and an automated response system may be designed by a content provider offering the service using an interaction flow that segments the interaction into multiple discrete steps. For example, when a customer dials a company's telephone number to pay a bill, a voice interaction flow may include the steps of (i) acquiring the customer's account number, (ii) informing the customer of a current balance, (iii) acquiring the customer's payment information, (iv) processing payment, and (v) conducting a customer satisfaction survey. Each of the above automated steps may be implemented using artifacts. In this application, an artifact, a construct, or a building block may be used interchangeably, and an artifact refers to a computer program, a portion of a computer program, or computer software code configured to perform a specific function. For example, an interaction site that is configured to specify a multi-step communication flow between a user and an automated response system may be an artifact. As another example, an interaction page that is configured to perform a step of the multi-step communication flow may be an artifact.
In an application development ecosystem where there are many developers and content providers, many of the steps in an interaction flow may have already been developed by another developer or content provider. For example, multiple developers may have developed various artifacts for recognizing a caller's credit card number by voice, and processing the payment. One artifact may be implemented to recognize a special accent, while another artifact may be implemented to recognize a specific language. It may be useful to provide developers an application builder platform that offers the ability and flexibility to download, share, design, and develop artifacts for communications interactions. For ease of exposition, the following description begins by describing a voice site, which is configured to receive and respond to telephone contacts, and then expands the description to cover an interaction site that supports contacts over any one of multiple different communication channels (e.g., email contacts, chat contacts, and SMS contacts). Note that an artifact is not limited to an interaction site or an interaction page, and may include any building block that facilitates interactions between a user and a communications system.
The communications system 100 is an example implementation of a system that supports an interactive multi-channel delivery platform. In general, the communications system 100 includes the communications device 110, a telephone network 120, a data network 130, the multi-channel communications system 135, a content provider system 142, an interaction flow processor 180, an interaction flow document database 185, and an application builder 190. The communications system 100 may additionally include an application server 140, and a data store 160.
The recommendation engine 196 is operable to present a recommendation to the developer of the content provider system 142 through the content provider interface 192. That is, the recommendation engine 196 is operable to provide the user (i.e., the developer) with a recommendation for a specific artifact that the recommendation engine 196 has concluded is likely of interest to the developer based either on direct searches conducted by the developer, or inferences drawn from the developer's activities on the application development platform. Additionally, the recommendation engine 196 may provide the recommendation at a time of its own choosing that is deemed most appropriate for the specific artifact. For example, the recommendation engine 196 may provide a recommended interaction page for telling jokes to be linked between two interaction pages, if the recommendation engine 196 determines that a caller may have to wait a few minutes while the system performs the processing necessary to transition between the two interaction pages.
Each displayed artifact may be visually represented by a number of attributes on the GUI 241. For example, the artifact 204 may include an icon 213, a name 209 (e.g., “Customer Experience Interaction Site”), a category (e.g., “Survey”), and/or a status (“New”). An artifact may be designated as “New” if the release date of the artifact is within a threshold date. An artifact may be designated as “Popular” if the number of downloads of the artifact satisfies a threshold number.
FIG. 2D illustrates a GUI 200 for an application development platform for viewing the Comments section of an artifact. To view the Comments section of an artifact in the Marketplace, the content provider may access the GUI 244 by selecting the “Marketplace” tab 202, clicking on the artifact 204 to select the artifact and then clicking on the “Comments” tab 227. The Comments section 244 allows the content provider to view comments posted by other content providers, and also allow the content provider to post comments about the artifact. For example, Commenter 1 may make a general comment 229 about the Customer Experience Interaction Site, while Commenter 3 may make a technical comment 231 about the interaction site. The Comments section 244 provides any interested content provider an insight into an artifact before downloading, and also provides a place that content providers may exchange ideas on how to avoid and/or fix bugs associated with the artifacts.
FIG. 2E illustrates a GUI 200 for an application development platform for previewing an artifact. To preview the artifact in the Marketplace, the content provider may access the GUI 245 by selecting the “Marketplace” tab 202, clicking on the artifact 204 to select the artifact and then clicking on the “Preview” button 233. The preview section 235 shows a template interaction flow of the artifact, and allows the content provider to get a more in-depth exposure to the artifact before downloading the artifact to the content provider's collection. For example, the preview section 235 here shows the interaction flow of the Customer Experience Interaction Site. However, the content provider will typically not be able to see the details of each interaction page without downloading the interaction site.
FIGS. 4A-4H illustrate a GUI 400 for an application development platform used by a content provider to create an interaction site for a communications system. The GUI 400 may be implemented by the content provider interface 192 and presented to the content provider 142 when the content provider 142 accesses the application builder 190 using a web browser over the data network 130 to create/manage the interaction site. The following describes the different components of the GUI 400 with respect to the system 100 that is described with reference to FIG. 1. Specifically, the components of the GUI 400 are described as used by the content provider 142 to create an interaction site for providing a survey to users of a service associated with the content provider 142. However, the GUI 400 and the associated application development tool may be used by other systems, content providers or application developers to create any interaction site to perform any desired automated interaction flow in response to a customer contact.
FIG. 4A illustrates an example GUI of an interaction site overview page 401 that may be presented to the content provider, for example, when the content provider clicks on the “Edit” button 309 of the “My Apps” page 301 to configure the interaction site “Customer Experience Interaction Site.” The CX Builder tab 404 shows that the content provider is accessing the configuration tool of the application development platform. The Site Overview page 401 may be accessed by the content provider, for example, by clicking on the “Site Overview” link 401 a. The Site Overview page 401 provides a listing of template interaction pages associated with this template interaction site downloaded by the content provider. The name of the interaction site is specified in the heading 401 b of the Site Overview page 401 (e.g., “ Customer Experience Interaction Site ”).
The order in which the various pages are processed is determined by the links in the respective pages. Each page usually contains a link to the next page that is to be processed. For example, the interaction site illustrated in the Site Overview page 401 has an interaction flow 402 of eight interaction pages, including the interaction pages “Quick Survey Message”, “Survey Question 1”, “Survey Question 2”, “Survey Question 3”, “Record Responses”, “Thank You Message”, “End Call”, and “Call Log”. Each of the pages may be identified by a page name that is shown in the Page Name field 401 d. In addition or as an alternative to the page name, each page also may be identified by a page number that is shown in the Page # field 401 e. The page name and page number of a page are specified by the content provider when creating the pages for the interaction site. A page may have a unique page name, or it may have a page name that is similar to the page name of another page. In case two or more pages share the same page name, they may be differentiated based on the page numbers. The combination of page name and page number uniquely identifies a page. A user may access and modify any of the pages displayed in the interaction flow 402 by selecting them from the displayed list.
The Contact section 405 lists the contact information associated with each of the multiple channels for the interaction site “Customer Experience Interaction Site”. For example, a user may access the interaction site via a voice channel by calling the number “1-800-123-4567.” Alternatively, the user may access the interaction site via a SMS channel by sending a text message with the short code “12345” and the keyword “angel.” Alternatively, the user may access the interaction site via a Chat channel by accessing the URL “www.example.com/chat.” Alternatively, the user may access the interaction site via an E-mail channel by sending an e-mail to the address “support@example.com.” The “Assign Contact” link 403 allows the content provider to define the contact information for an interaction site.
FIG. 4B illustrates an example GUI 451 for configuring an interaction page (specifically, a message page) that is the first page that is processed for the interaction site in the event that the user accesses the interaction site. Note that this interaction page is a template interaction page, and may include one or more default parameters for the content provider to input values. In addition, this template interaction page may also include one or more default values that correspond to the one or more default parameters, where the content provider may edit the values accordingly. The “Quick Survey Message” interaction page is identified by its page name 411 b and/or page number 411 c. The page name 411 b and the page number 411 c correspond to the name of the page shown in the Page Name field 401 d and the number of the page shown in the Page # field 401 e respectively, shown in the Site Overview page 401.
The comments text box 411 d allows the content provider to enter comments about the interaction page to be previewed on the Site Overview page 401. The main tab 411 e of the interaction page allows the content provider to enter parameters that configure the interaction page for the IVR channel. The “Response Type” parameter 412 allows the content provider to specify what type of response the multi-channel communications system 135 may expect the user to provide after the message specified in the “Initial Prompts” parameter 411 g is delivered to the user, which allows the content provider to customize the resources to be used to process the received response. Here, the initial prompt expects a YES/NO answer, and the default “Response Type” parameter 412 is set to “Keyword” accordingly. In some implementations, the received information may be stored in a variable “Variable 1” as specified by default in the “Store in Variable” drop-down menu, where the variable may be selected from a list of variables previously specified by the content provider. The variable stores the keyword provided by the user and processed by the multi-channel communications system 135. In some implementations, the value of the variable may be stored in the data store 160.
Fields 413 a, 413 b, and 413 c correspond to keywords that the content provider may expect a user to say, after providing the user with the initial prompt. In the field 413 a, the default value is the keyword “Yes.” Alternatively, the user may also press the number pad “1” on the communications device 110 to send a “Yes” response. By default, in the event that the user has responded with the keyword “Yes,” a value of “1” will be assigned to “Variable 1,” and the next destination 419 a interaction page presented to the user will be “Survey Question 1,” which corresponds to page # “2000,” as indicated in the Page # field 401 e shown in the Site Overview page 401.
Similarly, in the field 413 b, the default value is the keyword “No.” Alternatively, the user may also press the number pad “2” on the communications device 110 to send a “No” response. By default, in the event that the user has responded with the keyword “No,” the value “2” will be assigned to “Variable 1,” and the next destination 419 b interaction page presented to the user will be “End Call,” which corresponds to page # “7000,” as indicated in the Page # field 401 e shown in the Site Overview page 401. Lastly, by default, the field 413 c is shown as having no default value.
The “View” button 414 allows the content provider to display a GUI on the content provider system 142 similar to the GUI 451 for configuring the interaction page as specified in the destination interaction page pull-down menu 419 a. The “Recommend” button 416 allows the content provider to get recommended interaction pages that can be selected as the next destination interaction page 419 a. For example, the content provider may wish to replace the interaction page “Survey Question 1” with another template interaction page that has been designed for a specific purpose. The content provider may click on the “Recommend” button 416 to view a list of recommended interaction pages.
In response to the content provider clicking on the “Recommend” button 416, the content provider system 142 displays a list of recommended interaction pages 418, as shown in FIG. 4C. In some implementations, the list of recommended interaction pages 418 may be obtained by the recommendation engine 196 based on one or more values corresponding to one or more parameters associated with the interaction page that is being configured. For example, for the interaction page “Quick Survey Message,” the parameter “Initial Prompts” has a value of “Would you be willing to take an automated survey today?,” and the keyword response field 413 a has a value of “Yes.” Based on these values, the recommendation engine 196 may generate a search query and obtain a list of recommended interaction pages 418 to be displayed on the GUI 451 based on the search results.
In some implementations, the list of recommended interaction pages 418 may be obtained by the recommendation engine 196 based on one or more values corresponding to one or more parameters associated with the destination interaction page 419 a. For example, the recommendation engine 196 may determine that the default destination interaction page 419 a “Survey Question 1” is categorized under the “Survey” category by the original developer of the interaction page 419 a. Based on this determination, the recommendation engine 196 may obtain a list of recommended interaction pages 418 that are also under the “Survey” category to be displayed on the GUI 451. In some other implementation, other known search algorithms may be applied to obtain the list of recommended interaction pages 418.
In some implementation, the number of recommended interaction pages presented on the GUI 451 may be fewer than the number recommended interaction pages obtained by the recommendation engine 196. The content provider interface 192 may determine the number of recommended interaction pages presented on the GUI 451 based on a number of factors. For example, the number of recommended interaction pages presented on the GUI 451 may be based on the size of the display on the content provider system 142. Here, the list of recommended interaction pages 418 includes three recommended interaction pages 418 a, 418 b, and 418 c. For each recommended interaction page, a page name (e.g., “Interaction Page 1”) is presented as well as a brief description (e.g., “Satisfaction Survey”). The content provider may select any one of the three recommended interaction pages 418 a, 418 b, and 418 c to replace the destination interaction page 419 a. Alternatively, the content provider may click on the “More” button 418 d, which will display more recommended interaction pages to the content provider. Although not shown here, in some implementations, the content provider may be offered to preview the recommended interaction page before selecting the destination interaction page 419 a. In some implementations, the list 418 may include a search textbox that enables the content provider to enter a search query to find additional recommended interaction pages.
FIG. 4D illustrates the example GUI 451 showing that in response to the content provider selecting the “Interaction Page 2” 418 b in the list of the recommended interaction pages 418, the value in the destination interaction page 419 a is updated to show “Interaction Page 2” as the interaction page linked to the “Quick Survey Message” interaction page. In addition, a new page number 2500 is assigned to the interaction page “Interaction Page 2.” The template interaction page “Interaction Page 2” may be configured by the content provider by clicking the “View” button.
Notably, the one or more recommended interaction pages obtained by the recommendation engine 196 may not have been developed by the same content provider or the same developer as the template interaction site. By enabling the content provider to integrate template interaction pages from multiple developers, the application builder 190 provides the flexibility for content providers to design robust applications.
FIG. 4E shows the content provider editing the template interaction page. In this example, the content provider may wish to add an option for users to speak with an agent as a recognizable response. The content provider edits the “Initial Prompt” textbox 411 g to “Would you be willing to take an automated survey today, or speak to an agent?” In addition, the content provider added a new keyword value “Agent” to the keyword field 413 c, along with the corresponding value (e.g., 3) for the “Press” parameter. The content provider may click the button 421 to search for a recommended interaction page that has been configured to connect the user to an agent at a call center.
In response to the content provider clicking on the “Recommend” button 421, the content provider system 142 displays a list of recommended interaction pages 431 provided by the recommendation engine 196, as shown in FIG. 4F. In some implementations, the list of recommended interaction pages 431 may be dynamically obtained by the recommendation engine 196 based on one or more updated values corresponding to one or more parameters associated with the interaction page that is being configured. For example, the parameter “Initial Prompt” has an updated value of “Would you be willing to take an automated survey today, or speak to an agent?” and the keyword response field 413 c has been updated to include a value of “Agent.” Based on these updated values, the recommendation engine 196 may submit a search and obtain a list of recommended interaction pages 431 to be displayed on the GUI 451. Here, the list of recommended interaction pages 431 includes three recommended interaction pages 433 a, 433 b, and 433 c.
FIG. 4G shows that in response to the content provider selecting the “Interaction Page 5” 433 b in the list of the recommended interaction pages 431, the value in the destination interaction page 441 is updated to show “Interaction Page 5” as the destination interaction page. In addition, a new page number 7500 is assigned to the interaction page “Interaction Page 5.”
The template interaction page “Interaction Page 5” may be configured by the content provider by clicking the “View” button.
FIG. 4H illustrates an example GUI of an updated interaction site overview page 401. As described above, the content provider has added links to two interaction pages 451 and 453 to the template interaction site. The corresponding page names and page numbers are updated in the Page Name field 401 d and the Page # field 401 e, respectively. Note that the interaction page “Survey Question 1” is no longer linked to any interaction page in the interaction site because as described in FIG. 4D, the application builder 190 has removed the link from the interaction page “Quick Survey Message” to the interaction page “Survey Question 1” when the content provider selects the interaction page “Interaction Page 2” as the new destination page.
The examples describe above are not limiting. A GUI for developing an interaction page used in a multi-channel communications environment may have more or fewer configurable parameters than the GUIs described in FIGS. 4A-4H.
The content provider may compile the updated interaction site by clicking the “Compile” button 401 i, where the application compiler 194 may compile the input parameters into an interaction flow document, and may save the interaction flow document in the interaction flow document database 185.
While the pages shown in FIGS. 4A-4H are all messages pages, other page types of the interaction site may similarly be used to configure parameters for multiple different communications channels. For example, question pages and multimodal action pages may present configurable parameters that include common parameters generic to all communications channels and, in some implementations, may additionally include channel-specific parameters. In some implementations, some page types, such as, for example, logic pages and transaction pages, are always generic to all communication channels. In other implementations, logic pages and transaction pages include configurable parameters that are generic to all communications channels and also include configurable parameters that are channel-specific.
The “Overview” section 509 enables the content provider to add overview information about the artifact. For example, the content provider may add information related to a brief description, a release date, and/or a category similar to the list 517 of categories. When published in the marketplace, other content providers may view the artifact similar to that described in. FIG. 2B.
FIGS. 6A and 6B are flow charts illustrating an example of a process 600 for a content provider to create and host an interaction site. In general, the process 600 provides a content provider an interface for recommending interaction sites to the content provider for application development, and for designing and creating an interaction site that may be accessed in a multi-channel solution platform. The process 600 is described as being performed by a computer system comprising one or more computers, for example, the communications system 100 shown in FIG. 1.
Referring to FIG. 6A, the application builder 190 provides to the content provider system 142 a content provider interface for developing an interaction site executable by a user device to communicate with a server using any one of multiple communications channels (601). The application builder 190 may include a content provider interface 192. The content provider interface 192 is a GUI front-end for an application development tool that can be used to build an interaction site that is capable of handling interactions using multiple communications channels. The content provider may access the content provider interface 192 over the data network 130.
The content provider system 142 inputs contextual data for each of the enabled multiple communications channels (603). For example, the application builder 190 may provide a GUI similar to the GUI 201 in FIG. 2A, which allows the content provider to input a search query and search for a template interaction site. As another example, the application builder 190 may provide a GUI which prompts the content provider to answer a number to predetermined questions to determine the context of the interaction site.
The application builder 190 identifies one or more recommended interaction sites based on contextual data (605). The application builder 190 may include a recommendation engine 196. For example, the application builder 190 may provide a GUI similar to the GUI 201 in FIG. 2A, which displays the recommended artifacts 219 to the content provider.
The content provider system 142 determines whether an interaction site is selected from the recommended interaction sites (607). If the content provider system 142 selects an interaction site from the recommended interaction sites, the application builder 190 provides an interface for configuring an interaction site that includes predefined interaction pages associated with the selected interaction site (609). For example, the application builder 190 may provide a GUI similar to the GUI 401 in FIG. 4A, which enables the content provider to configure the recommended interaction site. If the content provider system 142 does not select an interaction site from the recommended interaction sites, the application builder 190 provides an interface for configuring an interaction site that does not include predefined interaction pages (611).
The content provider selects a predefined interaction page to configure, or generate a new interaction page (613). For example, in FIG. 4A, the content provider may select any one of the template interaction pages listed in the interaction flow 402 to configure a predefined interaction page, or add a new interaction page. The content provider inputs page data for the selected or new interaction page (615). For example, the application builder 190 may provide a GUI similar to the GUI 451 in FIG. 4B, which enables the content provider to configure the template interaction page.
Referring to FIG. 6B, the application builder 190 identifies recommended interaction pages based on page data (621). The application builder 190 may include a recommendation engine 196. For example, the application builder 190 may provide a GUI similar to the GUI 451 in FIG. 4C, which enables the content provider to obtain a list 418 of recommended interaction pages from the recommendation engine 196. In some implementations, the recommendation engine 196 obtains the list 418 of recommended interaction pages based on one or more values corresponding to one or more parameters associated with the template interaction page that is being configured.
The content provider system 142 determines whether an interaction page is selected from the recommended interaction pages (623). For example, the content provider may select any one of the three recommended interaction pages 418 a, 418 b, or 418 c by clicking on the corresponding icon in the GUI 451 in FIG. 4C.
If the content provider system 142 selects an interaction page from the recommended interaction pages, the application builder 190 provides an interface for configuring the recommended interaction page (625). The content provider inputs page data for the recommended interaction page (627). After the content provider inputs page data for the recommended interaction page, or if the content provider system 142 does not select an interaction page from the recommended interaction pages, the content provider system 142 determines whether the content provider has finished defining pages of the interaction site (629). Notably, while not explicitly shown in FIG. 6B, the input of page data for the recommended interaction page also may trigger additional interaction page recommendations in some implementations.
If the content provider has not finished defining the pages of the interaction site, the content provider selects a page from among the site's existing pages to edit (e.g., by modifying the page or deleting the page) or generates a new page (613). If the content provider has finished defining the pages of the interaction site, the application builder 190 generates an interaction flow document including data defining the interaction site based on the contact data and the page data for the multiple communications channels (631). The application builder 190 may include an application compiler 194. In some implementations, the application builder 190 may generate an interaction flow document, which may include XML scripts that correspond to pages (e.g., interaction pages) of an interaction site created by the content provider via the content provider interface.
FIG. 7 is a flow chart illustrating an example of a process 700 for a user to communicate with a multi-channel communications system and access an interaction site via a communications channel. In general, the process 700 provides a communications device access to an interaction site using a communications channel of a user's choice. The process 700 is described as being performed by a computer system comprising one or more computers, for example, the communications system 100 shown in FIG. 1
The communications device 110 sends a request to access an interaction site via a particular communications channel (701). A user of the communications device (e.g., a smart phone) 110 is able to interact with the communications device 110 to request a service from an interaction site that is provided by a content provider using a communications channel. For example, the user may indicate a desire to request a service by contacting the multi-channel communications system 135 in any of multiple different ways. For example, the user may call a telephone number, send an SMS message, enter into a chat session, or send an email.
The multi-channel communications system 135 receives the request from communications device 110, and sends a request to the interaction, flow processor 180 to obtain code for initiating the interaction site (703). Depending on the communications channel the communications device 110 is using, the request is received by a handling system in the multi-channel communications system 135. For example, if the user of the communications device 110 calls a phone number to reach the interaction site, the call handling system 150 will receive the phone call. Based on the contact information received by the multi-channel communications system 135, the corresponding handling system sends a request to the interaction flow processor 180 for the scripts for executing the interaction site. The request sent by the multi-channel communications system 135 to the interaction flow processor 180 may include an interaction site identifier (e.g., a unique interaction site identifier) that may be used by the interaction flow processor 180 to identify the desired interaction site. In some implementations, the multi-channel communications system 135 may send a request for the scripts for executing the entire flow of the interaction site. In other implementations, the multi-channel communications system 135 may send a request for the scripts for executing a particular state of the flow (e.g., a state corresponding to executing a single page or executing a subset of the pages of the interaction site), rather than the entire flow.
The interaction flow processor 180 identifies the communications channel used by the user to contact the system (705). In some implementations, the communications channel may be included in the request sent by the multi-channel communications system 135. In some implementations, the communications channel may be determined by the interaction flow processor 180 based on the identifier of the handling system. For example, the identifier may be an IP address of the handling system. As another example, the identifier may be metadata embedded in the request to the interaction flow processor 180.
The interaction flow processor 180 accesses the interaction flow document for the interaction site (707). Based on the interaction site that the multi-channel communications system 135 has requested, the interaction flow processor 180 accesses the interaction flow document stored in the interaction flow document database 185. The interaction flow document database 185 then provides the common code for the interaction site (709). In some implementations, the common code may be XML scripts.
The interaction flow processor 180 translates the common code to code specific to the determined communications channel (711). Based on the communications channel that the communications device 110 is using, the interaction flow processor 180 translates the scripts in the interaction flow document to a specific language that the handling system can execute. For example, if the handling system is the call handling system 150, the interaction flow processor 180 translates the scripts from XML scripts to VoiceXML scripts. In some implementations, the translation may include adding parameters specific to a type of communications channel in the translated scripts. For example, if the handling system is the call handling system 150, the interaction flow processor 180 may add information specific to ASR resource selection in the translated scripts. The interaction flow processor 180 then transmits the translated code that is specific to the determined communications channel to the multi-channel communications system 135 (713).
The multi-channel communications system 135 executes code specific to the determined communications channel to initiate the interaction site between the multi-channel communications system 135 and the communications device 110 (715). The communications device 110 then interacts with the interaction site via the communications channel (717). Notably, if the interaction site is an enhanced interaction site (i.e., a site that includes one or more multimodal action pages), the communication device 110 may interact with the interaction site via the standard communications mode (e.g., text) of the communications channel (e.g., chat) and, in at least some portions of the interaction flow, via one or more additional communication modes (e.g., video and audio). As stated previously, multimodal action pages are described in greater detail in application Ser. No. application Ser. No. 13/092,090, which is incorporated herein by reference for all purposes.
The communications device 110 transmits interaction data to the data store 160, and the data store 160 stores the interaction data (719). In some implementations, the recommendation engine 196 may access the interaction data to recommend artifacts to content providers. For example, the recommendation engine 196 may only recommend interaction sites that satisfy a certain call drop threshold. As another example, the recommendation engine 196 may only recommend interaction sites that satisfy a certain customer satisfaction threshold. As another example, the recommendation engine 196 may only recommend interaction sites that have been accessed by a threshold number of callers.
providing an interface for configuring an interaction site, the interaction site enabling communications between a user device and a communications system over one or more communication channels;
receiving, by a processor, a first set of parameters for configuring the interaction site having one or more interaction pages, the one or more interaction pages determining a multi-step communication flow between a device and a communications system;
providing, by the processor and based on the first set of parameters, one or more recommended interaction pages for the interaction site;
receiving, by the processor, selection of a particular interaction page of the one or more recommended interaction pages;
in response to receiving the selection, providing an interface for configuring the particular interaction page;
receiving, by the processor, a second set of parameters for the particular interaction page;
determining, by the processor, a particular multi-step communication flow between the user device and the communications system based on the second set of parameters; and
generating, by the processor, an interaction flow document, wherein the interaction flow document comprises code for the interaction site specifying the particular multi-step communication flow.
obtaining, by the processor, contextual data representing one or more design criteria;
selecting, by the processor and based on the contextual data, one or more recommended interaction sites including the interaction site; and
receiving, by the processor, a selection of the interaction site of the one or more recommended interaction sites.
3. The method of claim 2, wherein obtaining contextual data representing one or more design criteria comprises:
presenting, by the processor, one or more predetermined questions;
receiving, by the processor, data representing the one or more answers corresponding to the one or more predetermined questions; and
determining, by the processor, the contextual data representing the one or more design criteria based on the data representing the one or more answers corresponding to the one or more predetermined questions.
4. The method of claim 2, wherein selecting one or more recommended interaction sites comprises:
obtaining, by the processor, a search query based on the contextual data representing the one or more design criteria; and
obtaining, by the processor a plurality of interaction sites including the one or more recommended interaction sites based on the search query.
5. The method of claim 2, wherein obtaining contextual data representing one or more design criteria comprises receiving a search query representing the one or more design criteria.
6. The method of claim 1, wherein providing the one or more recommended interaction pages for the interaction site comprises:
obtaining, by the processor, a search query based on the first set of parameters; and
obtaining, by the processor, a plurality of interaction pages including the one or more recommended interaction pages based on the search query.
7. The method of claim 1, wherein the particular interaction page is an interaction page configured by a developer of a second, different content provider system.
sharing, by the processor, the interaction flow document including the code for the interaction site specifying the second multi-step communication flow with another developer of a second, different content provider system.
9. The method of claim 1, wherein the code of the interaction flow document comprises XML scripts that correspond to the one or more interaction pages of the interaction site.
10. The method of claim 1, wherein the interaction site is configured to enable communication between the user device and the communication system over a multiple communications channel and wherein the multiple communications channel comprises an interactive voice response (IVR) channel, a SMS channel, a chat channel, and an email channel.
a memory having instructions stored thereon that, when executed by the processor, cause the processor to:
provide an interface for configuring an interaction site, the interaction site enabling communications between a user device and a communications system over one or more communication channels;
receive a first set of parameters for configuring the interaction site having one or more interaction pages, the one or more interaction pages determining a multi-step communication flow between a device and a communications system;
provide, based on the first set of parameters, one or more recommended interaction pages for the interaction site;
receive a selection of a particular interaction page of the one or more recommended interaction pages;
receive a second set of parameters for the particular interaction page;
determine a particular multi-step communication flow between the user device and the communications system based on the second set of parameters; and
generate an interaction flow document, wherein the interaction flow document comprises code for the interaction site specifying the particular multi-step communication flow.
obtain contextual data representing one or more design criteria;
select, based on the contextual data, one or more recommended interaction sites including the interaction site; and
receive selection data indicating a selection of the interaction site of the one or more recommended interaction sites.
13. The system of claim 12, wherein the instructions that cause the processor to obtain contextual data representing one or more design criteria comprises instructions that cause the processor to:
present one or more predetermined questions;
receive data representing the one or more answers corresponding to the one or more predetermined questions; and
determine the contextual data representing the one or more design criteria based on the data representing the one or more answers corresponding to the one or more predetermined questions.
14. The system of claim 11, wherein the instructions that cause the processor to provide the one or more recommended interaction pages for the interaction site comprises instructions that cause the processor to:
obtain a search query based on the one or more first values corresponding to the one or more of the first parameters; and
obtain a plurality of interaction pages including the one or more recommended interaction pages based on the search query.
15. The system of claim 11, wherein instructions further cause the processor to:
share the interaction flow document including the code for the interaction site specifying the particular multi-step communication flow with another developer of a second, different content provider system.
memory having instructions stored thereon that when executed by the processor cause the processor to:
transmit a first set of parameters for configuring an interaction site having one or more interaction pages, the one or more interaction pages determining a multi-step communication flow between a device and a communications system;
transmit a selection of a particular interaction page of the one or more recommended interaction pages;
transmit a second set of parameters of the particular interaction page; and
transmit an instruction to generate an interaction flow document, wherein the interaction flow document comprises code for the interaction site specifying a particular multi-step communication flow.
provide contextual data representing one or more design criteria;
select an interaction site of one or more recommended interaction sites; and
transmit a selection of the interaction site of the one or more recommended interaction sites.
18. The system of claim 17, wherein the instructions that cause the processor to provide contextual data representing one or more design criteria comprises instructions that cause the processor to:
transmit data representing the one or more answers corresponding to one or more predetermined questions, wherein the contextual data representing the one or more design criteria is determined based on the data representing the one or more answers corresponding to the one or more predetermined questions.
share the interaction flow document including the code for the interaction site specifying the second multi-step communication flow with another developer of a second, different content provider system.
20. The system of claim 16, wherein the code of the interaction flow document comprises XML scripts that correspond to the one or more interaction pages of the interaction site.
US15/069,678 2014-02-28 2016-03-14 Application builder platform Active 2034-08-28 US10359923B2 (en)
US14/193,407 US9285974B2 (en) 2014-02-28 2014-02-28 Application builder platform
US15/069,678 US10359923B2 (en) 2014-02-28 2016-03-14 Application builder platform
US14/193,407 Continuation US9285974B2 (en) 2014-02-28 2014-02-28 Application builder platform
US20160196053A1 US20160196053A1 (en) 2016-07-07
US10359923B2 true US10359923B2 (en) 2019-07-23
ID=54006780
US14/193,407 Active 2034-09-07 US9285974B2 (en) 2014-02-28 2014-02-28 Application builder platform
US15/069,678 Active 2034-08-28 US10359923B2 (en) 2014-02-28 2016-03-14 Application builder platform
US (2) US9285974B2 (en)
US20020175943A1 (en) 1997-09-30 2002-11-28 Mci Communications Corporation Monitoring system client with call center layout and design capabilities
US20030231758A1 (en) 2002-01-23 2003-12-18 Richard Bock Call center and method of operating a call center
US6854154B2 (en) 2000-12-28 2005-02-15 Fuji Jukogyo Kabushiki Kaisha Wiper assembly with movable wiper motor support
US20120084751A1 (en) 2010-09-30 2012-04-05 Petr Makagon Automated Call Center Software Build Generator
US20120173386A1 (en) 2006-03-31 2012-07-05 Digital River, Inc. Web-Based Product Ordering Method
US20120300921A1 (en) 2011-05-23 2012-11-29 Avaya Inc. System and method for search-based work assignments in a contact center
US20130028396A1 (en) 2011-07-29 2013-01-31 Avaya Inc. Customer shared control in customer service scenarios
US20130204626A1 (en) 2012-02-03 2013-08-08 Nuance Communications, Inc. Method and Apparatus for Setting Selected Recognition Parameters to Minimize an Application Cost Function
US20140177821A1 (en) 2012-11-29 2014-06-26 Genesys Telecommunications Laboratories, Inc. System and method for testing and deploying rules
US20140188475A1 (en) 2012-12-29 2014-07-03 Genesys Telecommunications Laboratories, Inc. Fast out-of-vocabulary search in automatic speech recognition systems
WO2015042345A1 (en) 2013-09-20 2015-03-26 Angel.Com Incorporated Multi-channel delivery platform
US20150248226A1 (en) 2014-02-28 2015-09-03 Angel.Com Incorporated Application builder platform
US20150281436A1 (en) 2014-03-31 2015-10-01 Angel.Com Incorporated Recording user communications
US20150350429A1 (en) 2014-05-29 2015-12-03 Angel.Com Incorporated Custom grammars builder platform
US20160191705A1 (en) 2014-12-31 2016-06-30 Angel.Com Incorporated Call center builder platform
2014-02-28 US US14/193,407 patent/US9285974B2/en active Active
2016-03-14 US US15/069,678 patent/US10359923B2/en active Active
US20140247927A1 (en) 2010-04-21 2014-09-04 Angel.Com Incorporated Dynamic speech resource allocation
US20170118349A1 (en) 2010-04-21 2017-04-27 Genesys Telecommunications Laboratories, Inc. Multimodal interactive voice response system
US20170118338A1 (en) 2010-04-21 2017-04-27 Genesys Telecommunications Laboratories, Inc. Multi-channel delivery platform
US20150319303A1 (en) 2010-04-21 2015-11-05 Angel.Com Incorporated Communication of information during a call
US20140348319A1 (en) 2010-04-21 2014-11-27 Angel.Com Incorporated Multi-channel delivery platform
US8571195B2 (en) 2011-07-29 2013-10-29 Avaya Inc. Customer shared control in customer service scenarios
EP3047638A1 (en) 2013-09-20 2016-07-27 Greeneden U.S. Holding II, LLC Multi-channel delivery platform
US20170155766A1 (en) 2014-12-31 2017-06-01 Genesys Telecommunications Laboratories, Inc. Call center builder platform
Australian Government Patent Examination Report No. 1 for Application No. 2014323444, dated Nov. 18, 2016, 3 pages.
Bellman, Dynamic programming, Princeton University Press, 1957, pp. 169-199.
Brown et al., Class-based n-gram models of natural language, J Computational Linguistics, 1992, 18(4): 467-479.
Canadian Office Action for Application No. 2,928,357, dated Feb. 5, 2019, 3 pages.
Canadian Office Action for Application No. 2,928,357, dated Mar. 2, 2017, 3 pages.
Canadian Office Action for Application No. 2,928,357, dated Mar. 2, 2018, 3 pages.
Chinese Patent Office Action with English Translation for Application No. 201480063743.1, dated Mar. 14, 2018, 24 pages.
Cisco Unified Contact Center Express Editor Step Reference Guide, Release 9.0(1), Retrieved from the Internet: http://www.cisco.com/c/dam/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/crs/express_9_0/programming/guide/SeriesVol2.pdf, Jul. 6, 2012, 248 pages.
Cisco Unified Contact Center Express Solution Refernce Network Design Release 9.0(1), Retrieved from the Internet: http://www.cisco.com/den/us/td/docs/voice_ip_comm/cust_contact/contact_center/crs/express_9_0/design/UCCX_BK_UD5B347F_00_uccx-solution-reference-network-design, Jul. 6, 2016, 156 pages.
Extended European Search Report for Application No. 14846310.2, dated Jan. 17, 2017, 12 pages.
International Preliminary Report on Patentability for PCT/US2011/033505, dated Oct. 23, 2012, 11 pages.
International Search Report and Written Opinion for Application No. PCT/US2011/033505, dated Aug. 2, 2011, 11 pages.
International Search Report and Written Opinion for PCT/US2014/056452, dated Dec. 29, 2014, 10 pages.
Korean Decision of Rejection and English Translation for Application No. 10-2016-7010439, dated Jan. 26, 2018, 12 pages.
Korean Notice of Allowance with English Translation for Application No. 10-2016-7010439, dated Mar. 14, 2018, 3 pages.
Korean Office action with English Translation for Application No. 10-2016-7010439, dated Mar. 17, 2017, 19 pages.
Supplementary European Search Report for Application No. 14846310.2, dated Sep. 23, 2016, 8 pages.
U.S. Non-Final Office Action for Application No. 13/092,101 dated Mar. 11, 2013, 12 pages.
U.S. Non-Final Office Action for U.S. Appl. No. 13/092,090, dated May 9, 2013, 12 pages.
U.S. Non-Final Office Action for U.S. Appl. No. 13/092,101, dated Mar. 11, 2013, 12 pages.
U.S. Non-Final Office Action for U.S. Appl. No. 14/058,661 dated Sep. 4, 2014, 7 pages.
U.S. Notice of Allowance for Application No. 13/092,090, dated Oct. 9, 2013, 13 pages.
U.S. Notice of Allowance for U.S. Appl. No. 13/092,101, dated Jul. 12, 2013, 11 pages.
U.S. Notice of Allowance for U.S. Appl. No. 14/170,722 dated Oct. 27, 2014, 10 pages.
US9285974B2 (en) 2016-03-15
US20150248226A1 (en) 2015-09-03
US20160196053A1 (en) 2016-07-07
AU2010241779A1 (en) 2011-11-17 Secure customer service proxy portal
EP1660971A2 (en) 2006-05-31 A system and method for enabling automated dialogs
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VYMENETS, LEON;KUMAR, PRAPHUL;REEL/FRAME:038004/0396