This invention relates generally to product configuration and pricing systems and, more specifically, to an intelligent software agent that enables users to efficiently interface with a quote-to-cash system from external messaging applications.
Quote-to-cash systems integrate and automate end-to-end sell-side processes, from creating a quote for a prospective customer to collecting revenue and managing renewals. For example, quote-to-cash systems facilitate sales transactions by enabling users to configure products, price products, generate quotes, provide product recommendations, create and sign contracts, manage billings, and perform other sell-side business functions. Many quote-to-cash systems are offered as software-as-a-service (SasS) applications, and some run on or in connection with customer relationship management (CRM) systems.
Traditionally, users access a quote-to-cash system via a user interface specific to the quote-to-cash system or an associated CRM system. For example, a user may log into a web interface or access the quote-to-cash system via a dedicated application on a mobile device. This requires the user to learn how to use a series of interfaces, and the quote-to-cash provider must invest significantly in training and incentivizing adoption. Furthermore, when performing multiple tasks on a device, a user must switch between the quote-to-cash application and other applications on the device. For example, when performing both messaging and quote-to-cash functions on a device a user must switch between the messaging application and the quote-to-cash application. Moreover, logging in via the web is often not convenient when users are away from their work desk. Therefore, there is market demand for a solution that enables a user to more efficiently and conveniently interact with a quote-to-cash system.
The present disclosure relates to an intelligent quote-to-cash agent (“the Agent”) that enables users to efficiently interface with a quote-to-cash system from external messaging applications that are primarily designed for person-to-person communications (e.g., SKYPE for business, MICROSOFT TEAMS, SLACK, FACEBOOK WORKPLACE, etc.). Users are able to send the Agent quote-to-cash commands and obtain quote-to-cash system output from such messaging applications. Thus, users need not login to the quote-to-cash system or navigate screens within the quote-to-cash system interface to perform quote-to-cash functions. The Agent and users are able to communicate with each other using natural language.
In response to receiving a natural language message from a user in an external messaging application, the Agent identifies any quote-to-cash action requests and associated parameters in the message. If additional parameters are required to execute the quote-to-cash action, the Agent prompts the user for the parameters by communicating with the user using natural language and the external messaging application. Once the Agent has received the required parameters for a quote-to-cash action request, the Agent calls the quote-to-cash system with the action request and associated parameters. The Agent receives the corresponding output from the quote-to-cash system (e.g., a quote, a contract, discount information, product upsell information, etc.) and provides the output to the user via the applicable messaging application.
In certain embodiments, the Agent also may initiate communications with the user in an external messaging application when the Agent, in conjunction with a quote-to-cash system, identifies an opportunity for an improved outcome in the quote-to-cash process. For example, the Agent may proactively reach out to the user when a renewal opportunity, a pending approval, or an updated contract status relevant to the user is identified.
In certain embodiments, the user may communicate with the Agent from within an augmented or virtual reality interface to the quote-to-cash system.
The present disclosure relates to an intelligent quote-to-cash agent (“the Agent”) that enables users to efficiently interface with a quote-to-cash system from external messaging applications. The Agent enable users to enter quote-to-cash commands and obtain output from the quote-to-cash system without logging into the system and without having to navigate through screens in the quote-to-cash system's user interface. In one embodiment, a quote-to-cash system is any system that performs at least one or more of the following business functions: (1) configure, price, and quote; (2) contract generation and management; (3) revenue management (e.g., billing and financial reporting); and (4) product recommendations (e.g., identifying upsell and cross sell opportunities) and other machine learning recommendations to optimize the sales process.
As described in more detail below, the Agent is able to communicate with users using natural language and to identify quote-to-cash system action requests (i.e., commands for the quote-to-cash system) and associated parameters from natural language communications. The user may communicate with the Agent from one of a plurality of messaging applications that are not associated with the quote-to-cash system. In response to identifying a quote-to-cash action request and associated parameters in a communication session with a user, the Agent calls the quote-to-cash system and obtains the applicable quote-to-cash output requested by the user. The Agent forwards the quote-to-cash system output to the user via the external messaging application selected by the user.
The Agent is a computer system executing software that enables the system to perform the Agent functions described herein. In the preferred embodiment, the Agent software is hosted and deployed on a cloud network environment, and the Agent system can interface with multiple inputs (e.g., messaging applications) and multiple outputs (e.g., multiple quote-to-cash systems running on multiple platforms) simultaneously.
If the user message included a quote-to-cash action request, the Agent retrieves a natural language dialog script associated with the quote-to-cash action request (step 130). In one embodiment, there is a dialog script associated with each quote-to-cash action. Each quote-to-cash action is associated with parameters, and the purpose of the dialog script to obtain parameters from the user. In other words, the dialog script defines the parameters that the Agent needs to obtain for the quote-to-cash action. If user requests a quote, the Agent may request parameters such as the customer for whom the quote is requested, the price list to use, the products and associated quantity, and any discounts. For an upsell recommendation or a discount, the Agent may request the products currently in the cart. For a contract or discount approval request, the Agent may request the applicable Contract or products in the cart (for discount). If the initial user message includes recognizable parameters for the quote-to-cash action request, the return from the NLP engine will include the parameters. The user can obtain a quote-to-cash output quicker (and shorten the interaction with the Agent) by including parameters in the initial request.
Using the dialog script, the Agent converses (in natural language) with the user via the applicable messaging application until all the required parameters for the action request are received (step 135). The Agent bypasses any portion of the script related to parameter(s) conveyed in the initial message (if any). Each subsequent user utterance in the conversation is passed to the NLP engine to determine whether the utterance contains a parameter or a change of action request (e.g., terminating the request) and the Agent traverses the dialog script accordingly, bypassing any portions of the script related to parameters already received.
Once all the required parameter values are received, the Agent calls the quote-to-cash system with the action request and parameters obtained from the user (step 140). The Agent receives the corresponding output from the quote-to-cash system (step 145). For example, if the action request, is to create a quote, the quote-to-cash system returns a quote to the Agent. In certain cases, the quote-to-cash system output may be confirmation that an action has been performed. For example, if the request was to email an NDA to a customer contact, the output may be a confirmation that the requested NDA was emailed.
The Agent conveys the quote-to-cash output to the user via the applicable messaging application (i.e., the messaging application via which the user and the Agent have been communicating) (step 150). If the Agent has received an end state in the dialog scrip, the Agent asks the user if he has an additional request (steps 152, 155). If so, the above process repeats, except for step 110 as the communication session with the user is already open (step 170). If not, the Agent closes the communication session with the user (step 165). If the Agent has not received an end state in the dialog script, the Agent continues with the dialog script (step 152, 160).
In the preferred embodiment, the Agent is able to interface with multiple messaging applications, including applications that users ordinarily use in regular business applications. This enables users to efficiently access the quote-to-cash system. For example, if an enterprise uses a certain messaging application for internal communications (e.g., SLACK), being able to initiate quote-to-cash actions and obtain quote-to-cash system output via that messaging application saves users within the enterprise time and effort in completing their task. Users within such enterprise are likely using the messaging application throughout the day, and being able to interface with the quote-to-cash system via the messaging application saves the users from having to switch applications or log into the quote-to-cash system. The Agent is able to communicate with voice-based messaging applications, text-based messaging application, and, in some embodiments, virtual reality or augmented reality messaging applications. For each messaging application with which the Agent communicates, the Agent has a unique user ID that allows the Agent to send and receive messages (e.g. an email address or contact information). In other words, the Agent is treated the same as human users by the messaging applications.
In one embodiment, in responding to user quote-to-cash action requests, the Agent accesses machine learning insights of the quote-to-cash system to provide a better quote-to-cash outcome. For example, the quote-to-cash system may apply machine learning to customer and sales history to garner action recommendations (e.g., product recommendations, discount recommendations, etc.). The Agent accesses or receives these action recommendations when applicable to the user and passes them on to the user via the applicable messaging channel. For example, when the user requests a quote, the Agent may suggest a product discount. In this way, the Agent can prompt users in ways that can facilitate the sales process. In one embodiment, in response to the Agent calling the quote-to-cash system with an action request, the quote-to-cash system determines whether any machine learning insights are applicable to the request and, if so, passes the information on to the Agent along with the requested output. Also, within a dialog script, the Agent may be prompted to call the quote-to-cash system to obtain product recommendations, discount recommendations, or other recommendations. If quote-to-cash system returns a recommendation to the Agent, the dialog script instructs the Agent to convey the recommendation to the user.
Machine learning may also be applied to the user's interactions with the system to identify the user's patterns. In certain embodiments, the Agent uses pattern recognition analysis to anticipate the user's actions and to make the process of obtaining a quote-to-cash output more efficient. Type of machine learning/pattern recognition techniques that may be used include probabilistic classifiers, frequency set, and cohort analysis. The dialog script may include variables whose values are a pattern recognition result. If the dialog script includes such a variable, the Agent calls the quote-to-cash system for the value of the variable and uses the value in its dialog with the user. For example, in
The Agent may initiate communications with a user when the quote-to-cash system identifies a quote-to-cash opportunity for an improved outcome in the quote-to-cash process. For example, the Agent may proactively reach out to users when the Agent identifies a renewal opportunity, pending approval, or updated contract status.
The quote-to-cash system monitors for opportunities for users to have an improved quote-to-cash outcome. In one embodiment, the system applies machine learning algorithms to quote-to-cash data to identify such opportunities. As shown in
The Agent may also be used for person-to-person-to-Agent communications, such as when the Agent is participating in a group chat with a plurality of users. In such case, the Agent may directly receive a quote-to-cash action request or detect one from analyzing the conversation thread in the chat.
The Agent may also be used for Bot-to-Agent-to-Person communications. In such case, a bot or agent associated with another system may initiate communication with a user via the Agent. For example, the Agent may pass communications to a bot such as APPLE's SIRI, which would then convey the communication to the user. Likewise, in certain embodiments, the use may call the Agent via another bot.
System 300 includes a plurality of messaging applications 310a-d, the Agent system 320, a NLP engine 330, and one or more quote-to-cash systems 340a-c.
In one embodiment, the messaging applications 310a-d are applications primarily designed for person-to-person enterprise communications. Examples include SKYPE for business, MICROSOFT TEAMS, FACEBOOK WORKPLACE, CORTANA, and SLACK.
The Agent system 320 is a cloud-based computer system that is able to interface with multiple inputs and outputs. The Agent system 320 handles the dialog triggers, parameter gatherings, message brokering, and response formatting from a given input to a given output. In one embodiment, the Agent is built using the MICROSOFT BOTBUILDER FRAMEWORK.
The Agent system 320 has access to a plurality of dialog scripts 350 that enable the Agent to communicate with the user using natural language. The Agent system 320 calls the NLP engine 330 to identify the meaning of user communications. An example of an NLP engine is LUIS.ai Natural Language Processing as part of MICROSOFT COGNITIVE SERVICES.
An example of a quote-to-cash system 340 is the APTTUS quote-to-cash suite of products running on the SALESFORCE platform. The Agent system 320 can communicate with multiple quote-to-cash endpoints (running on different platforms) and determine which quote-to-cash application to call based on user profile information.
Using the statistical model, the NLP engine scores the correlation of the user message to each of the predefined quote-to-cash actions and associated parameters (i.e., each score reflects the likelihood of the message including the applicable quote-to-cash action or parameter) (step 440). If there is at least one quote-to-cash action with a score above a minimum confidence threshold, the NLP engine returns to the Agent the highest-scoring quote-to-cash action above the threshold (step 450). The NLP engine all returns any associated parameters identified in the message (i.e., corresponding to the returned quote-to-cash action and with a score above a threshold) (step 460).
The methods described herein are embodied in software and performed by one or more computer systems (each comprising one or more computing devices) executing the software. A person skilled in the art would understand that a computer system has one or more memory units, disks, or other physical, computer-readable storage media for storing software instructions, as well as one or more processors for executing the software instructions.
As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Accordingly, the above disclosure is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5960407 | Vivona | Sep 1999 | A |
6473084 | Phillips et al. | Oct 2002 | B1 |
7328177 | Lin-Hendel | Feb 2008 | B1 |
7574381 | Lin-Hendel | Aug 2009 | B1 |
7725358 | Brown et al. | May 2010 | B1 |
8498954 | Malov et al. | Jul 2013 | B2 |
8644842 | Arrasvuori et al. | Feb 2014 | B2 |
9519907 | Carter, III et al. | Dec 2016 | B2 |
10289261 | Aggarwal et al. | May 2019 | B2 |
10621640 | Krappe et al. | Apr 2020 | B2 |
10783575 | Krappé | Sep 2020 | B1 |
20020040332 | Maari et al. | Apr 2002 | A1 |
20030033240 | Balson et al. | Feb 2003 | A1 |
20060100912 | Kumar et al. | May 2006 | A1 |
20070016536 | Mirlas et al. | Jan 2007 | A1 |
20070039209 | White et al. | Feb 2007 | A1 |
20070087756 | Hoffberg | Apr 2007 | A1 |
20070162373 | Kongtcheu | Jul 2007 | A1 |
20080046355 | Lo | Feb 2008 | A1 |
20080091551 | Olheiser et al. | Apr 2008 | A1 |
20090048937 | Contreras et al. | Feb 2009 | A1 |
20090222319 | Cao et al. | Sep 2009 | A1 |
20090234710 | Belgaied Hassine et al. | Sep 2009 | A1 |
20090327166 | Carter, III et al. | Dec 2009 | A1 |
20100179859 | Davis et al. | Jul 2010 | A1 |
20100262478 | Bamborough et al. | Oct 2010 | A1 |
20100306120 | Ciptawilangga | Dec 2010 | A1 |
20120173384 | Herrmann et al. | Jul 2012 | A1 |
20120221410 | Bennett et al. | Aug 2012 | A1 |
20120246035 | Cross et al. | Sep 2012 | A1 |
20120254092 | Malov et al. | Oct 2012 | A1 |
20130103391 | Millmore | Apr 2013 | A1 |
20130132273 | Stiege et al. | May 2013 | A1 |
20140025529 | Honeycutt et al. | Jan 2014 | A1 |
20140149273 | Angell et al. | May 2014 | A1 |
20150120526 | Peterffy et al. | Apr 2015 | A1 |
20150142704 | London | May 2015 | A1 |
20150309705 | Keeler et al. | Oct 2015 | A1 |
20150348551 | Gruber | Dec 2015 | A1 |
20150378156 | Kuehne | Dec 2015 | A1 |
20160034923 | Majumdar et al. | Feb 2016 | A1 |
20170004588 | Isaacson | Jan 2017 | A1 |
20170068670 | Orr | Mar 2017 | A1 |
20170124176 | Beznos et al. | May 2017 | A1 |
20170124655 | Crabtree et al. | May 2017 | A1 |
20170243107 | Jolley | Aug 2017 | A1 |
20170351241 | Bowers et al. | Dec 2017 | A1 |
20170358024 | Mattingly et al. | Dec 2017 | A1 |
20180005208 | Aggarwal et al. | Jan 2018 | A1 |
20180096406 | Krappe et al. | Apr 2018 | A1 |
20180285595 | Jessen | Oct 2018 | A1 |
Number | Date | Country |
---|---|---|
1315705 | Mar 2001 | CN |
2650776 | Oct 2013 | EP |
3073421 | Sep 2016 | EP |
2001290977 | Oct 2001 | JP |
2017146909 | Aug 2017 | JP |
0052605 | Sep 2000 | WO |
03003146 | Jan 2003 | WO |
2015106353 | Jul 2015 | WO |
Entry |
---|
Qitao Xie, et al. “Chatbot Application on Cryptocurrency,” 2019, 2019 IEEE Conference on Computational Intelligence for Financial Engineering & Economics (CIFEr) (pp. 1-8) (Year: 2019). |
Oracle: Automating the Quote-to-Cash Process: An Oracle White Paper, Jun. 2009, pp. 1-19, 2009. |
Microsoft/APTTUS: Ultimate Guide to Quote-To-Cash for Microsoft Customers, Web Archives, Oct. 1, 2015, pp. 1-28. |
Wainwright, Phil, “Salesforce, Microsoft quote-to-cash partner Apttus raises $88m”, Sep. 29, 2016, pp. 1-7. |
PCT International Search Report and Written Opinion in PCT/US2017/062185, 13 pages, dated Mar. 2, 2018. |
Riggins, J., “Interview Quote-to-Cash Pioneers Apttus Links Leads to Revenue”, May 21, 2014, pp. 1-7. |
Wainewright, Phil, Apttus Applies Azure Machine Learning to Quote-to-Cash, Apr. 3, 2016, pp. 1-5. |
McCormick, M., “What is Quote to Cash?” Jan. 20, 2016, Blog, BlackCurve, pp. 1-8, 2016. |
Morelli et al., “IBM SPSS Predictive Analytics: Optimizing Decisions at the point of impact”, pp. 1-59, 2010. |
Wireless News: Banglalink Keeps Mobile Subscribers Using Predictive Analytics with KXEN, Close-Up Media, Inc., pp. 1-2, Oct. 5, 2013. |
Number | Date | Country | |
---|---|---|---|
20180293640 A1 | Oct 2018 | US |