Patent ID: 12210721

DETAILED DESCRIPTION

The following detailed description refers to the accompanying drawings that show, by way of illustration, specific details and embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure. Other embodiments may be utilized and structural, and logical changes may be made without departing from the scope of the disclosure. The various embodiments are not necessarily mutually exclusive, as some embodiments can be combined with one or more other embodiments to form new embodiments.

Embodiments described in the context of one of the devices or methods are analogously valid for the other devices or methods. Similarly, embodiments described in the context of a device are analogously valid for a vehicle or a method, and vice-versa.

Features that are described in the context of an embodiment may correspondingly be applicable to the same or similar features in the other embodiments. Features that are described in the context of an embodiment may correspondingly be applicable to the other embodiments, even if not explicitly described in these other embodiments. Furthermore, additions and/or combinations and/or alternatives as described for a feature in the context of an embodiment may correspondingly be applicable to the same or similar feature in the other embodiments.

In the context of various embodiments, the articles “a”, “an” and “the” as used with regard to a feature or element include a reference to one or more of the features or elements.

As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.

In the following, embodiments will be described in detail.

As can, e.g., be seen fromFIG.1, a user101can access content provided by a server computer800. The content can be displayed with a user interface104, e.g. in a mobile app and/or on a website, using a client device102. Here, data is transmitted between the client device102and the server computer800by a data transmission connection103, e.g. via the Internet.

The user101may access the content (e.g. a helpsite, e.g. a help/support article) since he needs support/assistance on a specific topic. However, the content may not be sufficient and, hence, the user101may need further support/assistance, e.g. (to be) provided by a service agent (real person or chat bot).

As is, e.g., shown inFIG.2, such further support/assistance may, e.g., be provided by a chat support system200. The chat support system200may, e.g., be provided by the server computer800. The chat support system200may be provided so as to allow communication (e.g. in written form) between the user101and a service agent202(real person or chat bot). The chat support system200may comprise a chat support queue201and a table of service agents202processing chat requests input by users (e.g. by the user101). In other words, the table of service agents202may contain a corresponding entry for each of the service agents202being currently active in the chat support system200to process chat requests. The user101may submit a chat request203from the client device102via the data transmission connection103to the server computer800(e.g. by operation of a corresponding user interface portion, e.g. by operation of a corresponding button, on a display of the client device102). The submitted chat request203may be received by the server computer800and be processed by the chat support system200. The chat support system200may then create an entry corresponding to the chat request203in the chat support queue201. Once the chat request203is the next chat request to be processed (e.g. when it is on the first position in the chat support queue201), it may be processed by a(n available) service agent.

In a case when there are excessively many chat requests in the chat support queue201(e.g. when the chat support queue201contains excessively many corresponding entries) and/or when the table of service agents202only has few entries (e.g. when only few service agents are currently active to process chat requests), long waiting times for users waiting for their chat request to be processed can occur. To solve this problem, a limit for limiting the number of entries in the chat support queue201may be introduced. Thereby, if the limit should be exceeded by a further entry being added to the chat support queue201(i.e. by a further chat request being accepted), the chat support system200denies the corresponding chat request and, therefore, the chat support system200does not create a corresponding entry in the chat support queue201. In other words, the user101might still submit a chat request203(e.g. by operation of a corresponding user interface portion), but no entry corresponding to the chat request203would be added to the chat support queue201and the user101might be notified about his submitted chat request203having been denied. However, this may deteriorate a user satisfaction and increase a user frustration since the user is only informed about the chat request being denied after having tried to access the chat support system.

Therefore, a method for controlling access to the chat support system200according to various embodiments is provided which ensures a lower waiting time for support by introducing a dynamic queue limit. Here, the queue limit may, e.g., be recalculated every time a (further) user101enters a help center article with a live chat option and, after comparing the (dynamic) queue limit with a number of users already in the chat support queue201, it is determined if an entry point for chat should be shown or not. Consequently, only users101are allowed in the chat support queue201for which the chat support system200is confident that the users101can be supported within a short time frame, ensuring a faster support time and reducing agent effort on unresponsive chats.

The method for controlling access to the chat support system200according to one embodiment is exemplarily shown inFIG.3.

Each time the (further) user101accesses content in respect to which access to the chat support system200might generally be offered, the method for controlling access to the chat support system200is executed.

That is, upon the user101accessing the respective content (301), the server computer800determines whether a queue limit for a chat support queue of the chat support system will be exceeded by adding an entry corresponding to the (further) user101to the chat support queue201(302). If it is determined, by the server computer800, that the queue limit for the chat support queue201will be exceeded by adding an entry corresponding to the (further) user101to the chat support queue201(302), the server computer800prevents that a user interface access to the chat support system200is provided for the (further) user101(303). However, if is determined, by the server computer800, that the queue limit for the chat support queue201will not be exceeded by adding an entry corresponding to the (further) user101to the chat support queue201(302), the server computer800provides to the (further) user101the user interface access to the chat support system200(304).

In the context of this application, according to various embodiments, the term “user interface access” may, e.g., be understood as accessing the chat support system200via the user interface104(e.g. by clicking on a corresponding button, e.g. by clicking on a corresponding button labelled with “Click here to chat”, e.g. by clicking on a corresponding button labelled with “Chat with us”). Accordingly, providing the user interface access to the chat support system may be understood as providing the (further) user101with a user interface portion via which the (further) user101can access the chat support system200.

As can, e.g., be seen fromFIG.4, providing the user interface access to the chat support system200to the (further) user101may be realized, e.g., by displaying on a display400(e.g. a display400of the client device102), a user interface portion401being part of the user interface104, wherein operation of the user interface portion401, e.g. by the user101, triggers the chat support system200to add an entry corresponding to the (further) user101to the chat support queue201. That is, e.g., a button401to initiate a chat may be displayed to the (further) user101on the display400, wherein it is ensured that the button401is only shown to the (further) user101when operating the button401successfully triggers the chat support system200to add an entry corresponding to the (further) user101to the chat support queue201.

As can, e.g., be seen fromFIG.5, preventing that the user interface access to the chat support system200is provided for the (further) user101may be realized by displaying on the display400(e.g. the display400of the client device102), a user interface portion501, wherein the user interface portion501indicates that the chat support system200is currently not available (i.e. the interface portion501is indicative for the fact that the queue limit for the chat support queue201will be exceeded by adding the (further) user101to the chat support queue201), and by configuring the user interface portion501not to trigger adding the (further) user101to the chat support queue201(i.e. disabling a functionality that operation of the user interface portion501triggers adding the (further) user101to the chat support queue201). That is, the (further) user101is shown on the display400and/or the user interface104the user interface portion501informing the (further) user101that the chat support system200cannot be accessed at that time, e.g. by displaying a button labelled with “Queue is full. Please try after some time.”. Further, the user interface portion501does not have any effect related to accessing the chat support system200and/or creating an entry corresponding to a chat request in the chat support queue201, i.e. a functionality that operation of the user interface portion501triggers adding the (further) user101to the chat support queue201is disabled. In other words, the (further) user101is directly informed that the chat support system200cannot be accessed at that time without having to take further action (e.g. first clicking on a button and being informed afterwards). Thereby, a user frustration may be reduced.

As can, e.g., be seen fromFIG.6, preventing that the user interface access to the chat support system200is provided for the (further) user101may be realized by non-displaying on the display400(e.g. the display400of the client device102), a user interface portion, wherein operation of the user interface portion triggers the chat support system200to add an entry corresponding to the (further) user101to the chat support queue201. That is, the (further) user101is not shown anything on the display400and/or the user interface104related to initiating a chat. In other words, the (further) user101does not even take notice of a chat support system200being implemented in this case. Thereby, a user frustration may be reduced.

As is, e.g., shown inFIG.3, the server computer800may determine the queue limit for the chat support queue201based on a total number of chat requests that have arrived in the chat support queue201in a predefined time period (e.g. within the last hour) (305), and/or a total number of chats in the chat support queue201that have been closed in a predefined time period (e.g. within the last hour) (306).

Specifically, the server computer800may determine the queue limit for the chat support queue201based on a total number of chat requests that have arrived in the chat support queue201in a predefined time period (e.g. within the last hour) divided by a total number of chats in the chat support queue201that have been closed in the predefined period.

According to one embodiment, if the quotient of the total number of chat requests that have arrived in the chat support queue201in the predefined time period divided by the total number of chats in the chat support queue201that have been closed in the predefined period exceeds a value of one, this quotient is set to have a value of one.

Further, the server computer800may determine a number of service agents present in the chat support (i.e. a number of entries of the table of service agents202, i.e. a proficiency in the chat support), and the server computer800may determine the queue limit for the chat support queue201based on the determined number of service agents (307).

Further, the server computer800may determine a number of cases handled in parallel by each service agent present in the chat support queue201(i.e. a concurrency for each service agent present in the chat support queue201), and the server computer800may determine the queue limit for the chat support queue201based on the determined number of service agents and the determined number of cases handled in parallel by each service agent (308).

Here, the server computer800may determine the sum of the number of cases handled in parallel by a respective service agent present in the chat support queue201over the number of service agents present in the chat support. In that case, the server computer800may determine the queue limit for the chat support queue201based on the determined sum.

Further, the server computer800may determine an average number of chats handled per service agent in the chat support queue201in a further predefined time period (e.g. within one hour), and the server computer800may determine the queue limit for the chat support queue201based on the determined average number of chats handled per service agent (309).

Further, the server computer800may determine an average waiting time per chat request in the chat support queue201before the processing of the chat request has been started, and the server computer800may determine the queue limit for the chat support queue201based on the determined average waiting time per chat request in the chat support queue201(310). The determined average waiting time per chat request in the chat support queue201may, e.g., be a value expressed in units of the predefined time period and/or the further predefined time period (e.g. in hours without having a unit).

Further, the server computer800may determine an average processing time per chat request in the chat support queue201, and the server computer800may determine the queue limit for the chat support queue201based on the determined average processing time per chat request in the chat support queue201. The determined average processing time per chat request in the chat support queue201may, e.g., be a value expressed in units of the predefined time period and/or the further predefined time period (e.g. in hours without having a unit).

Further, according to one embodiment, the server computer800may determine a total number of chat requests that have arrived in the chat support queue201in a predefined time period (e.g. within one hour), the server computer800may determine a total number of chats in the chat support queue201that have been closed in a predefined time period (e.g. within one hour), the server computer800may determine a number of service agents present in the chat support, the server computer800may determine a number of cases handled in parallel by each service agent present in the chat support queue201, the server computer800may determine an average number of chats handled per service agent in the chat support queue201in a further predefined time period (e.g. within one hour), the server computer800may determine an average waiting time per chat request in the chat support queue201before the processing of the respective chat request has been started, the server computer800may determine an average processing time per chat request in the chat support queue201, and the server computer800may determine the queue limit as:

(a/b)*(c*d)*e*(f+g)with:a being the determined total number of chat requests that have arrived in the chat support queue201in the predefined time period,b being the determined total number of chats in the chat support queue201that have been closed in the predefined time period,c being the determined number of service agents present in the chat support,d being the determined number of cases handled in parallel by each service agent present in the chat support queue201,e being the determined average number of chats handled per service agent in the chat support queue201in the further predefined time period,f being the determined average waiting time per chat request in the chat support queue201before the processing of the respective chat request has been started, andg being the determined average processing time per chat request in the chat support queue201.

In other words, according to various embodiments, the queue limit for the chat support queue201(i.e. the dynamic queue limit) is calculated by applying Little's Law. Accordingly, the average number of items within a system is equal to the average arrival rate of items into and out of the system multiplied by the average amount of time an item spends in the system. According to various embodiments, Little's law has been adopted and applied to a multiple-server model concept so that the formula was further evaluated to cater for multiple-server scenarios. With the original formula L-αW, it was transformed to introduce some important metric factors that can be monitored and controlled in the chat support system200(particularly utilization and wait time).

Further, according to various embodiments, in case that in the method as described above the queue limit is determined to be equal to zero or to diverge, the method includes setting, by the server computer800, the queue limit to be equal to the determined number of service agents present in the chat support.

For the purpose of determining the queue limit, the waiting time used for determine an average waiting time per chat request in the chat support queue201may be capped at a predefined value (e.g. 4 minutes). This does not guarantee that a waiting time for a respective (further) user101will always be below 4 minutes, but this may be applied as a factor in determining the queue limit to make sure that waiting time does not exceed the predefined value (e.g. 4 minutes) based on the heuristics used (e.g. past one hour heuristics).

For the purpose of determining the average processing time per chat request in the chat support queue201, the time from the respective service agent202starting to process a respective chat request203as a chat until the respective service202agent closing the corresponding chat is determined.

Further, the server computer800may maintain a database804(e.g. a Redis database/cache). The server computer800may use the database804to monitor the chat support queue201and/or actions/events carried out by the service agents202, e.g. on a time resolved basis. In other words, by the database804the server computer800may, e.g., be allowed to track the total number of chat requests that have arrived in the chat support queue201in the predefined time period, the total number of chats in the chat support queue201that have been closed in the predefined time period, the number of service agents present in the chat support, the number of cases handled in parallel by each service agent present in the chat support queue201, the average number of chats handled per service agent in the chat support queue201in a further predefined time period. To this end, the server computer800may use the database804as a cache for the processing of the chat support requests203on basis of the service agents202. For example, respectively after a predefined caching period, the server computer800may add a data element (e.g. a data bucket) to the database804including respective entries representative for chats having been processed by each service agent202, wherein data is aggregated for the duration of the predefined caching period (i.e. on a so-called bucket level by so-called data-buckets). If, during a predefined caching period, no chat requests203have been processed and/or no chats have been closed, the server computer800may not add any data entry to the database804for this caching period. For example, the predefined caching period may be one minute. The server computer800may store the data elements in the database804for the predefined time period and/or the further predefined time period and the server computer800may delete the data elements after elapse of the predefined time period and/or the further predefined time period (e.g. after elapse of the longer one of these, e.g. after one hour). That is, the database804may only contain data representative for the predefined time period and/or the further predefined time period (e.g. for the past one hour).

As an example with a predefined caching period of one minute, the server computer800may (subsequently) add the following data entries to the database804:2ndminute: {“agent1”: 1.5(chats), “agent2”: 1(chat)}4thminute: {“agent1”: 2(chats)}5thminute: {“agent2”: 0.5(chats)}.
Here, the server computer800has not added any entries for/after the 1stminute and the 3rdminute. These entries may, e.g., represent the chats closed by the respective service agents. Based on these entries in the database804, the server computer800may aggregate the values on an agent level in a map:{“agent1”: 3.5(chats), “agent2”: 1.5(chats)}.
Then, the server computer800may determine the average by dividing by the number of agents:

5/2=2.5(chats).
Here, the number of chats may be in decimal since the formula 1/(older concurrency before ending chat) is used, by the server computer800, when a chat is closed and it is aggregated on a minute level. This is done to make sure that, e.g., if a service agent is handling two concurrent chats, the eventual output is divided instead of counting it as two chats. The server computer800may update the data buckets as soon as a corresponding event occurs (e.g. starting to process a chat request, e.g. closing a chat), which allows the server computer800to determine the support queue limit (i.e. the dynamic queue limit) in real-time. For example, when a new chat request is processed by a service agent202(i.e. a new chat is initiated), the server computer800increases an arrived chat count for the corresponding service agent202by one. For example, when a chat is closed by a service agent202, the server computer800increases a closed chat count for the corresponding service agent202by one. Further, by using, e.g., the Redis cache to store data and by running the determination/calculation, e.g., when a (further) user101opens an article, it is possible for the server computer800to get the support queue limit (i.e. the dynamic queue limit) with the most updated data and with no significant latency impact visible to the user101.

Further, according to various embodiments, in case that in the method as described above the queue limit is determined to be equal to zero or to diverge, the method includes setting, by the server computer800, the queue limit to be equal to the determined number of service agents present in the chat support. That is, in other words, in order to handle scenarios where it is, e.g., the start of day and there are no (e.g. not yet) served chats (i.e. closed chats) and the queue limit is (therefore) determined to be zero, a fallback value for a minimum queue limit is used, which (fallback value) is equal to a number of online agents (i.e. a number of service agents present in the chat support). This may also serve the purpose of making sure that customers (e.g. a (further) user101) is not prevented from entering the chat support queue201when support agents are available (e.g. service agents presently not processing any chat requests are present in the chat support).

Further, according to an example, a service agent availability at a particular time of the day is taken into account for determining the queue limit for a chat support queue. This is to prevent that, when fewer service agents were scheduled to work or during peaks in chat support requests, the users wait for a long time (even for hours in some cases) before getting help.

According to various embodiments, in summary, a method is provided as illustrated inFIG.7.

FIG.7shows a flow diagram illustrating a method for controlling access to a chat support system, for example carried out by a server computer.

In701, the server computer determines whether a queue limit for a chat support queue of the chat support system will be exceeded by adding a further user to the chat support queue.

In702, the server computer prevents that a user interface access to the chat support system is provided for the further user in case it is determined that the queue limit for the chat support queue will be exceeded by adding the further user to the chat support queue.

The method ofFIG.7is for example carried out by a server computer as illustrated inFIG.8.

FIG.8shows a server computer800according to an embodiment.

The server computer800includes a communication interface801(e.g. configured to receive a chat request, e.g. configured to transmit content provided by the server computer800). The server computer800further includes a processing unit802and a memory803. The memory803may be used by the processing unit802to store, for example, data to be processed, such as information about a chat request or information about the chat support queue201. The server computer800is configured to perform the method as described above.

The methods described herein may be performed and the various processing or computation units and the devices and computing entities described herein may be implemented by one or more circuits. In an embodiment, a “circuit” may be understood as any kind of a logic implementing entity, which may be hardware, software, firmware, or any combination thereof. Thus, in an embodiment, a “circuit” may be a hard-wired logic circuit or a programmable logic circuit such as a programmable processor, e.g. a microprocessor. A “circuit” may also be software being implemented or executed by a processor, e.g. any kind of computer program, e.g. a computer program using a virtual machine code. Any other kind of implementation of the respective functions which are described herein may also be understood as a “circuit” in accordance with an alternative embodiment.

While the disclosure has been particularly shown and described with reference to specific embodiments, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. The scope of the invention is thus indicated by the appended claims and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced.