Patent ID: 12244653

DETAILED DESCRIPTION

FIG.1shows an example environment100in which a first channel is between first devices and second devices, and a second channel is between the first devices and third devices. In the example environment100, a transfer from the first channel to the second channel can be facilitated by a channel transfer manager at server devices, in accordance with one or more examples of the present disclosure. The example environment100shown inFIG.1includes first devices102, second devices106, third devices116, and servers112.

In an example according toFIG.1, a communication session can be initiated via a first channel108, wherein the first channel108comprises communications between the first devices102and the second devices106. The second devices106can send an activation110, also referred to herein as an activation message or activation notification, to the servers112, in order to initiate a transition of the communication session to a second channel114, wherein the second channel114comprises communications between the first devices102and the third devices116. In response to the activation110, the servers112can establish the second channel114. In some embodiments, the servers112can separately establish a first segment of the second channel114between the first device(s)102and the servers112, and a second segment of the second channel114between the third device(s)116and the servers112, and the servers112can be configured to link the first and second segments the second channel114in order to establish the second channel114.

In some example embodiments, the servers112can be configured with a channel transfer manager such as illustrated inFIG.3. The channel transfer manager may also be referred to herein as an intermediary or a channel transfer bot. According to one example, the channel transfer manager can implement a chat-to-voice capability, to transfer a communication session from a first channel108configured as a chat channel, to a second channel114configured as a voice channel. The chat-to-voice capability can generally be configured to allow chat-based communication sessions to be transferred to a voice channel when deemed appropriate, and the chat-based communication sessions can be given priority routing to better serve the communication session in a quick and efficient manner.

Due to the complex nature of some issues addressed by a contact center, the customer at first devices102and a chat representative at the second devices106may spend a significant amount of time in a chat communication session that ultimately needs to be escalated to a voice channel. Handling this scenario without the benefit to this disclosure can lead to frustration for the customer, the chat representative, and the voice representative when the context information is not passed through to the voice representative and the customer has to start over with their explanation of the issue, complicating the overall experience and operational efficiency.

As described herein, when a communication session is transferred from a first channel108to a second channel114, a third device116associated with the second channel114can access information, such as summary and sentiment data, pertaining to the communication session associated with the first channel108. Accordingly, a representative that uses the third device116can review the provided information to determine context/historical information about the communication session. The representative that uses the third device116can use the context information to pick up where the communication session left off prior to the transfer, and thereby avoid confusion and/or frustration of the customer that may otherwise be involved with starting over the communication session with a new representative.

Example operations according toFIG.1can include a chat representative at second device(s)106using a second channel activation element, described in connection withFIG.2, to transfer a communication session to an outbound voice queue implemented at servers112. The servers112can be configured to automatically assign a priority routing to the communication session. The servers112can furthermore be configured to prompt the customer at the first device(s)102, e.g., via the first channel108, for desired second channel connection information, such as a callback number. Once the second channel connection information is received, the servers112can be configured to initiate a second channel connection request, e.g., a callback request. To satisfy the second channel connection request, the servers112can be configured to first contact the first device(s)102to establish the first segment of the second channel114. After the first segment is established, the servers112can be configured route the communication session to a selected second channel queue, to thereby establish the second segment of the second channel114. Communication session context data including, e.g., the chat history from the first channel108and any automatically generated summary thereof can be provided to the third devices116for display to a second channel representative, e.g., in a dashboard display at the third devices116.

Embodiments of this disclosure can reduce an overall average handle time for handling communication sessions by a contact center. Embodiments can furthermore increase customer satisfaction by reducing the need for a customer to repeat their concern or previous actions taken to address a concern. Embodiments can also collect channel transfer data and statistics, leading to better insight into contact center operations. For example, embodiments can support tracking which types of communication sessions are transferred from on channel to another. Some embodiments can associate communication sessions that are transferred from a first channel108to a second channel114with a single contact trace record, which can lead to more effective and efficient analysis of contact center operations.

FIG.2illustrates an example second device200that can implement the second devices106introduced inFIG.1, and example components thereof, in accordance with one or more examples of the present disclosure. The example second device200can be a device configured to communicate with first device(s)102in a first channel108. The second device200can comprise a desktop application212and communication session context data220. The desktop application212can include tools214and a first channel communication interface218. The tools214can include, inter alia, a second channel activation element216.

In an example according toFIG.2, the first communication channel108can comprise, e.g., a chat-based communication channel via which a chat representative operator of the second device200communicates with a customer operator of a first one of the first device(s)102. Incoming text-based chat messages from the first one of the first device(s)102may be displayed via the first channel communication interface218, and the chat representative may enter and send outgoing text-based chat responses via the first channel communication interface218. The desktop application212can be configured to store the incoming text-based chat messages and the outgoing text-based chat responses in the communication session context data220.

The chat representative operator of the second device200can make a determination to transfer the communication session from the first channel108to a second channel114. While the first channel108may be a text-based channel as described above, the second channel114can comprise, e.g., a voice-based channel. The chat representative operator of the second device200can select the second channel activation element216to initiate the transfer. In some embodiments, selection of the second channel activation element216can initiate several automated procedures, thereby reducing or minimizing the actions of the chat representative operator in connection with the channel transfer.

In response to selection of the second channel activation element216, the second device200can be configured to initiate several automated procedures. The second device200can generate and send an activation110to the servers112. The second device200can also be configured to retrieve the communication session context data220and send the communication session context data220to the servers112. The second device200can also be configured to engage in second channel configuration communications235with the servers112.

In an example embodiment, the second channel configuration communications235can include a request from the server112and deliverable via the second device200to the first device(s)102via the first channel communication interface218. The request can comprise a request for second channel connection information that can be used to communicate with the first device(s)102via the second channel114. The second channel connection information can comprise, e.g., an internet protocol (IP) address, a telephone number, video connection information, or any other communications information that can be used to connect with the first device(s)102via the second channel114.

In some embodiments, the second device200can be configured to send the second channel connection information request to the first device(s)102via the first channel communication interface218, receive a second channel connection information response from the first device(s)102via the first channel communication interface218, and send the second channel connection information to the servers112. The second channel connection information can be sent to servers112pursuant to second channel configuration communications235or optionally along with the activation110or along with the communication session context data220.

In some embodiments, the second device200can be configured to send a second channel connection information request to the first device(s)102via the first channel communication interface218, receive a second channel connection information response from the first device(s)102via the first channel communication interface218, and store the second channel connection information in the communication session context data220, so that the second channel connection information is provided to the servers112, optionally along with the activation110and along with other data of the communication session context data220.

In some embodiments, second channel configuration communications235can comprise a link to a second channel connection information user interface (UI), and the second device200can be configured to send to the first device(s)102, via the first channel communication interface218, the link to a second channel connection information UI. The second channel connection information UI can be configured to collect a second channel connection information response from the first device(s)102and send the received second channel connection information to the servers112.

While the above example uses a chat-based communication channel as an example first channel108and a voice-based communication channel as an example second channel114, it should be emphasized that embodiments of this disclosure are not limited to chat and voice channels. The techniques disclosed herein can be adapted for other channel types, such as video channels, social media channels, artificial intelligence (AI) based channels, and so on. Furthermore, whileFIG.2illustrates one example second channel activation element216, embodiments can optionally include additional second channel activation elements216, wherein different second channel activation elements216initiate transfers to different channel types. In some embodiments, the second channel activation element216can be configured to access a directory of different second channel types, subchannels of a second channel, or representatives available via a second channel, wherein different directory elements are selectable to initiate transfers to different corresponding second channels.

The activation110can optionally include information about the communication session with the first device(s)102, such as a name of a customer associated with the communication session, first channel connection information such as a device ID, IP address, telephone number, or other information used in connection with communication session, information about a customer account or other personal information associated with the customer, a name of a chat representative associated with the communication session, a communication session identifier, device information associated with the second device, a duration of the communication session via the first channel, and dates and times associated with beginning and end of communication session via the first channel. Furthermore, the activation110can optionally include communication session context data220and/or second channel connection information, as noted herein.

FIG.3illustrates an example server device300that can implement the server devices112introduced inFIG.1, the example server device300including a channel transfer manager310and example components thereof, in accordance with one or more examples of the present disclosure. The channel transfer manager310comprises second channel configuration manager305, reporting and analytics311, reporting and analytics data store312, connection manager320, summary generator331, sentiment analysis332, and second channel storage330. The connection manager320comprises subchannel assignment321, queue priority assignment322, example queues323and324, and connection initiation325. The second channel storage330comprises communication session context data220, summary333, and sentiment334.

In an example according toFIG.3, the channel transfer manager310can be configured to receive activations, such as activation110, from second device(s)106such as illustrated inFIG.1. The channel transfer manager310can be configured to employ the various illustrated components thereof to establish, in response to the activation110, a second channel114between the first device(s)102and the third device(s)116, in order to continue, via the second channel114, a communication session that was begun in the first channel108.

In response to receiving the activation110, the channel transfer manager310can be configured to engage the second channel configuration manager305to retrieve second channel connection information from, e.g., the second device(s)106. The second channel configuration manager305can be configured to generate a request for the second channel connection information and send the request to the second device(s)106as part of the second channel configuration communications235. The second channel configuration manager305can be configured to subsequently receive the second channel connection information from the second device(s)106pursuant to second channel configuration communications235, and the second channel configuration manager305can be configured to supply the second channel connection information to the connection manager320.

The channel transfer manager310can be configured to store received communication session context data220in the second channel storage330. The communication session context data220can optionally be included in the activation110, or the communication session context data220can be received separately by the channel transfer manager310. The channel transfer manager310can activate the summary generator331and/or the sentiment analysis332, respectively, to generate the summary333and/or the sentiment334, respectively, based on the communication session context data220.

In some embodiments, the summary333can comprise a summary of the communication session context data220. The summary333can therefore be based on the communication session context data220. The summary333can furthermore optionally be based on further information, such as inferences based on a customer name, customer account type, or previous communication sessions with the customer. The sentiment334can comprise a customer emotional state based on emotion cues within the communication session context data220. The emotion cues can include the presence of certain words within the communication session context data220or the emotion cues can be based on an issue or pattern of issues raised in the communication session context data220, wherein the sentiment analysis332has learned to associate different issues or patterns of issues with different sentiments334. In some embodiments, the sentiment334can be associated with a time of sentiment assessment and may remain valid for a predetermined time period, after which the sentiment334may expire. In some embodiments, different sentiments may be associated with different predetermined durations.

In some embodiments, the summary generator331and the sentiment analysis332can comprise machine learning components that are adapted to analyze the communication session context data220and generate outputs that lead to improved second channel efficiency. In embodiments that employ machine learning, the machine learning components can consume, e.g., data from communication session context data220as well as data from reporting and analytics data store312. Efficiency of a machine learning generated summary333or sentiment334can be evaluated against second channel resolution efficiency information retrieved from reporting and analytics data store312, in an efficiency enhancing feedback loop.

In some embodiments, machine learning components included in the summary generator331and the sentiment analysis332can be configured to use a library for natural language processing, e.g., spaCy or another open-source library, along with an algorithm configured to determine sentences with high recurring words used in the communication session context data220, and determine the sentiment associated with the communication session context data220. The machine learning components can be configured to scan, e.g., a chat transcript included in communication session context data220, and to make a list of words that are commonly used therein. The machine learning components can be configured to generate the summary333or sentiment334based on statements including high recurring words, e.g., words occurring at a total number or rate above a predetermined number or rate threshold.

The connection manager320can be configured to optionally perform several operations to establish the second channel114. The connection manager320can be configured to assign a communication session corresponding to the activation110to a selected subchannel and corresponding queue of the queues323,324. Furthermore, the connection manager320can be configured to assign a queue priority to the communication session. The connection manager320can also be configured to initiate a first segment of the second channel114, the first segment comprising a link to the first device(s)102. The connection manager320can also be configured to initiate a second segment of the second channel114, the second segment comprising and to link a third device of the third device(s)116. Finally, the connection manager320can be configured to provide communication session context data220, summary333, and/or sentiment334to the third device(s)116used in the second channel114, by sending the data220,333,324to the third device(s)116or for example by sending a link or reference to an applicable location within second channel storage330.

The subchannel assignment321can be adapted to assign the communication session corresponding to the activation110to a selected subchannel and corresponding queue of the queues323,324, for example by analyzing the communication session context data220to select a subchannel for the communication session. Words in the communication session context data220can be used to infer a topic or issue, and the topic or issue can be correlated to a corresponding subchannel to be selected by subchannel assignment321. In the example illustrated inFIG.3, the queue323is the selected queue, and so the communication session corresponding to activation110is assigned to queue323.

The queues323,324comprise priority queues that are used to determine a next communication session to connect to contact center representatives available via the second channel114. In some embodiments, a communication session at the top of a queue, e.g., queue323, is assigned to a next available representative with subject matter expertise in the subchannel corresponding to queue323. The queue priority assignment322can determine a priority position within an assigned queue323for the communication session corresponding to the activation110.

The queue priority assignment322can be configured to use any of several techniques disclosed herein, or combinations thereof, to assign a priority position. In some embodiments, the queue priority assignment322can be configured to assign a priority position based on a duration of the communication session in the first channel108. A longer duration can result in a higher priority assignment by queue priority assignment322. In some embodiments, queue priority assignment322can be configured to assign a priority position based on the communication session context data220, the summary333and/or the sentiment334. For example, different issue types may result in different priority assignment by queue priority assignment322. In some embodiments, queue priority assignment322can be configured to assign a predetermined priority position to any communication session that is transferred from the first channel108.

The connection manager320can also be configured to initiate a first segment of the second channel114, the first segment comprising a link to the first device(s)102. For example, in response to the communication session advancing to a predetermined position in the queue323, the connection initiation325can be configured to use second channel connection information obtained by second channel configuration manager305to establish the first segment of the second channel114, i.e., a connection to the first device(s)102as illustrated inFIG.1. When the second channel114is a voice channel, the second channel connection information can comprise a telephone number, and the connection initiation325can be configured to place a telephone call to the telephone number and, e.g., play an automated message sequence to confirm identity of the telephone call recipient. In response to the first segment of the second channel114being successfully established, the connection initiation325can be configured to initiate the second segment of the second channel114.

To initiate the second segment of the second channel114, the connection initiation325be configured to select a third device of the third device(s)116associated with the queue323, and to link the first segment of the second channel114to the selected third device. Furthermore, the connection manager320can provide the communication session context data220, summary333, and/or sentiment334to the selected third device. The connection manager320can optionally provide a link or reference to an applicable location within second channel storage330, the link or reference being directed to the communication session context data220, summary333, and/or sentiment334, so that the selected third device can automatically load the communication session context data220, summary333, and/or sentiment334in a dashboard comprising communication session information.

Reporting and analytics311can be configured to store data pertaining to communication sessions and channel transfers in the reporting and analytics data store312. For example, in some embodiments, reporting and analytics311can be configured to store a total number of received activations, customer demographics such as age, location, and account types associated with received activations, topics or issues associated with received activations, and the like. The information in the reporting and analytics data store312can be retrieved by contact center devices for analysis and improvement of contact center processes.

FIG.4illustrates an example third device400that can implement the third devices116introduced inFIG.1, and example components thereof, in accordance with one or more examples of the present disclosure. The example third device400comprises a desktop application410. The desktop application410comprises tools412, second channel communication interface414, and communication session data viewer416. The communication session data viewer416can present data such as the communication session context data220, the summary333, and the sentiment334, and the communication session data viewer416may be referred to herein as a dashboard.

In an example according toFIG.4, the third device400can be selected from among the third devices116by the channel transfer manager310, as described in connection withFIG.3. For example, the third device400may receive a communication from connection initiation325. The communication can comprise, e.g., a link to establish a second channel connection between the third device400and the first device(s)102. In response to receiving the communication from connection initiation325, the desktop application410can be configured to use the link to establish the second channel connection between the third device400and the first device(s)102. The desktop application410can furthermore be configured to retrieve and display information associated with the communication session, namely the communication session context data220, the summary333, and the sentiment334, in a dashboard interface such as the communication session data viewer416.

The second channel communication interface414can optionally display current second channel data for a linked communication session, such as a live video feed, a live transcript of a voice communication, or a real-time language translation of a voice communication. In contrast, the communication session data viewer416can be configured to display data historical communication session data comprising information derived from first channel communications of the communication session. The tools412can comprise tools for managing and responding to the communication session that is active within the second channel communication interface414, e.g., tools for flagging the communication session as resolved, transferring the communication session to a different channel according to the techniques described herein, or escalating the communication session.

FIG.5illustrates an example computing environment associated with a contact center500, in accordance with one or more examples of the present disclosure. The contact center500may be or may include a server such as server300, as detailed herein. Contact centers described herein may include fully automated and/or semi-automated contact center environments. In this example, dotted box502identifies the internal components of the contact center500, and components outside the dotted box502represent external components associated with the contact center. As used herein, an internal component of a contact center may refer to a component (e.g., computer server or device, network component, software service, application, etc.) that is controlled by the organization operating the contact center. In contrast, an external component of the contact center may refer to a component that interacts with at least one internal component of the contact center, but which is not controlled by the organization operating the contact center. As shown in this example, the external components associated with the contact center may include a number of external communication services504A-504E (collectively “services504”) and/or third-party tools505which may be provided by third-party service providers. Additional external components may include communication network(s)506and one or more customer devices508that communicate in interactive sessions with representatives (e.g., employees, contract workers, etc.) of the organization.

In some implementations, the internal components of the contact center may reside within a single server, e.g., the contact center server300, and/or a single data center operating at one geographic location. In such cases, some or all of the internal components of the contact center500may communicate via a secure private network such as a private LAN or secure corporate network protected by a firewall. In other implementations, the internal components may be distributed across multiple servers and/or multiple data centers that operate at different geographic locations. Internal components that are distributed across data centers may communicate via secure private networks and/or via unsecure public networks (e.g., the Internet) and may use tunneling and encryption technologies. As illustrated, the internal and external components of the contact center may communicate via communication networks506, including but not limited to computer networks (e.g., TCP/IP networks, etc.), wireless networks (e.g., Long-Term Evolution (LTE), 5G, a Universal Mobile Telecommunications Service (UMTS), Global System for Mobile communications (GSM) networks, etc.), satellite networks, and the like.

In operation, the contact center500may be implemented via the computing environment shown inFIG.5to provide interactive communication sessions (or interactive sessions) between customers using the customer devices508, and representatives of the organization using representative client devices510(“client devices510”). The customer device(s)508and/or the representative client device(s)510may be any personal computing devices, such as desktop or laptop computers, mobile devices (e.g., smartphones, tablet computers, etc.), wearable computing devices, or any other device capable of communicating over the communication network(s)506. In some scenarios, a customer, client, or other individual associated with the organization may use the customer device(s)508to contact the organization via a point-of-contact service, such as web portal(s)520or a voice gateway522. In some examples, the contact center500may support different services for different communication types, such as the web portal520that processes web chat requests received via the web site of the organization, the voice gateway522that processes calls received via a telephone network and/or Voice over IP (VOIP) calls. Although two customer portals/gateways into the contact center500are shown in this example, any number of additional customer portals/gateways may be used in other implementations, such as portals or gateway services for voice communications from the customer device(s)508, video communications, messaging/chat communications, social-media based communications, customer relationship management (CRM) based communications, or the like.

After one of the customer device(s)508initiates communication with the contact center, or vice versa, the contact center components may assign the customer to a representative and initiate an interactive session between the customer device508and one of the representative client device(s)510, e.g., associated with the assigned representative. Interactive sessions may include voice sessions, video sessions, messaging/web chat sessions, social media sessions, and/or CRM sessions, etc. As shown in this example, the contact center500may use external services503to implement the functionality of providing interactive sessions between customers and representatives. For instance, the contact center500in this example uses a voice service504A from a first external service provider, a messaging/chat service504B from a second external service provider, a video service504C from a third external service provider, a social media service504D from a fourth external service provider, and so on. In various examples, the contact center500may use any combination of external or internal communication services.

The external services503may include communication services to implement interactive sessions between a customer and a contact center representative, as well as additional services/tools to support additional features and functionalities of the contact center. For instance, one or more third-party tools505may be provided via external service providers and accessed by the internal systems of the contact center500. Such third-party tools505may include, by way of illustration only, transcript generation and/or analysis tools, customer sentiment analysis tools, sales script tools, contact monitoring tools, data analytics tools, workforce management tools, post-interactive session survey tools, etc. As with the communication services504A-504E, the third-party tools505are depicted in this example as external components of the contact center, but some or all of these tools may be implemented as internal components within the contact center.

As shown inFIG.5, a customer may initiate communication via a web portal520or voice gateway522, after which the contact center components select a communication service504A-504E based on the communication type used by the customer, and an interactive session is initiated between the customer device508and representative client device510. Although in this example the customer devices508are depicted as initiating communication sessions by first contacting an internal component of the contact center (e.g., web portal520or voice gateway522), in other examples the customer devices508may initially contact an external communication service504A-504E. For example, customer service links on the organization's web site may be hosted by and/or redirected to the external services503. In some cases, the customer communication into the contact center may be answered first by an automated computer system (e.g., implemented within an external service or an operations system514), which requests a series of inputs from the customer. Such automated systems may be implemented as voice response units for voice calls, conversation bots for web chat sessions, etc. The inputs requested from the customer via an automated system may include data identifying the customer (e.g., customer name, account number, ticket number, etc.), the purpose of the contact (e.g., a question type, a product model, etc.), or the language or geographic region of the customer, and the like. Based on the customer's responses, the automated system may determine where to direct the customer for an interactive session, for instance, to a particular data center, department of the organization, a particular communication channel, a representative having a particular role, criteria, or credentials, or to a particular representative that has had previous contact with the customer.

In some examples, certain internal components of the contact center may be used to select a communication service provider504A-504E and initiate a communication session between a customer device508and a client device510, after which the internal components may extricate themselves from the process and allow the selected communication service provider504A-504E to manage the session. For example, as described below, operations systems514and internal computer servers and/or components within the integration layer516may receive and analyze data associated with incoming requests for interactive sessions from customer devices508and assign the interactive sessions to services504A-504E and client devices510to perform the interactive session. The operations systems514and integration layer516also may receive and handle requests to transfer contacts from one representative to another, initiate multi-party interactive sessions, and initiate communication sessions between client devices510and administrator client devices512or entities within the contact center environment. The various operations systems514and components within the integration layer516also may monitor and analyze the interactive sessions to determine performance metrics for representatives and the contact center as a whole, and to implement policies and instructions based on various models (e.g., contact quality models, efficiency models, workflow projection models, etc.).

The integration layer516may provide a common interface between the internal systems and components of the contact center and the external services503used by the contact center. For example, representative client devices510may communicate with the external communication services504A-504E and third-party tools505via the components within the integration layer516. In some cases, the integration layer516provides a common framework for interfacing with the external services503, so client applications executing on representative client devices510may perform similar or identical operations regardless of which external service provider is used. In such examples, the integration layer516may therefore provide technical advantages and improve the functioning of the contact center components by providing support for plug-and-play among the external communication services504and/or the third-party tools, without requiring any software change within the client applications executing on the representative client devices510, the administrator client devices512, and/or the customer device(s)508.

For instance, a voice service504A provided by a third-party vendor for a contact center500may be replaced by a different voice service504A provided by a different third-party vendor, without requiring any functional change to the client applications executing within the representative client devices510and/or the administrator client devices512. Similarly, the integration layer516may interface with multiple different external services503for a single communication type (e.g., multiple different voice services504A, multiple different messaging/chat services504B, etc.) simultaneously, so the contact center can use multiple external services503for a single communication type at the same time, in a manner that is transparent with respect to the external services503, the representative client devices510, and/or the administrator client devices512. In such cases, an external communication service504may operate similarly or identically regardless of whether the contact center is using another service provider to provide an alternative communication service. The representative client devices510and/or the administrator client devices512also may operate similarly or identically regardless of which of the external services503(or the internal services in the dotted box502) is providing an interactive session for the representative client device510.

The integration layer516also may provide an interface between internal components of the contact center (e.g., the representative client devices510, the administrator client devices512, the operations systems514) and third-party tools505which operate as services or applications external to the contact center500. For instance, the internal operations systems514of the contact center may access third-party tools505, such as data analytics tools, workforce management tools, etc., via the integration layer516. The representative client devices510also may access the third-party tools505via the integration layer516during an interactive session between a representative and customer. The third-party tools505can include customer sentiment tools, post-interactive session survey tools, or the like. As noted above, the integration layer516may provide a uniform and common interface for accessing external third-party tools505, so that various third-party tools505may be added, removed, replaced, or upgraded, without requiring any changes to the application software of the contact center internal components.

Additionally, the integration layer516may provide an interface between various internal components of the contact center. For example, the representative client devices510may communicate via the integration layer516with other of the representative client devices510, with the administrator client devices512and/or with other internal servers/systems of the contact center500. For instance, the integration layer516may perform operations associated with sending and receiving messages within the contact center500. Moreover, the operations system(s)514may be implemented within internal computer servers of the contact center500, and may provide functionalities for common queuing, monitoring, and analysis and modeling, and policy implementations across the contact center500. As described below, client devices510may communicate with various operations system(s)514via the integration layer516, allowing the operations system(s)514to receive data regarding the interactive sessions executed on the client devices510, analyze and/or model the data, and determine operational instructions for the client devices510to implement operational models (e.g., rules and/or policies) across the contact center. Such models may include quality control models, workforce management models, contact center efficiency models, etc.

As illustrated by these examples and the other examples described herein, the integration layer516may provide additional technical advantages within contact center environments, including improving the functioning and efficiency of client devices510and other internal operational systems514. For instance, the integration layer516may provide a common queuing framework for client devices510, which is capable of managing the work queue(s) for the client devices510(e.g., live customer contact queues, deferred work item queues, etc.) received from various external and internal contact center services. As noted above, the integration layer516also may provide internal operational systems514with detailed data regarding interactive sessions from diverse client devices510in a consistent and uniform manner, allowing the operations systems514to improve the performance, contact quality, and workflow across the contact center. Operations systems514also may include rules engines using heuristics and/or trained machine-learned models to analyze the interactive session data received from different client devices510and may transmit instructions and/or policies to client devices510across the contact center to implement uniform and consistent models.

The integration layer516is depicted inFIG.5as a separate internal component of the contact center. In such examples, the integration layer516may include one or more dedicated computer servers and/or software applications or services configured to perform the functionalities of the integration layer516described herein. In other examples, the integration layer516depicted inFIG.5may represent a conceptual layer, in which some or all of the components and functionalities of the integration layer516may be implemented within other internal or external devices and systems. For instance, any or all portions of the integration layer516may be implemented within the external communication services504and/or other external services provided by third-party vendors. Additionally or alternatively, some or all of the integration layer516may be implemented within the client devices510, administrator client devices512, and/or operations systems514within the contact center. For example, the client devices510may run a desktop application and/or communication façade(s) to initiate and manage communications with external services503and other internal components/systems. These applications, façades, and other services or interfaces of the client devices510and/or other operations systems514of the contact center may implement various portions of the integration layer516.

FIG.6shows an example computer architecture for a computer capable of executing program components for implementing the functionality described herein. The computer architecture shown inFIG.6may correspond to the systems and components of a server computer, workstation, desktop computer, laptop, tablet, network appliance, mobile device (e.g., tablet computer, smartphone, etc.), or other computing device, and can execute any of the software components described herein. The computer600may, in some examples, correspond to any of the computing systems or devices described above, such as the first device(s)102, the second device(s)106, the third device(s)116, the servers112, and/or any other computing devices described herein. It will be appreciated that in various examples described herein, a computer600might not include all of the components shown inFIG.6, can include additional components that are not explicitly shown inFIG.6, and/or may utilize a different architecture from that shown inFIG.6.

The computer600includes a baseboard602, or “motherboard,” which may be a printed circuit board to which a multitude of components or devices are connected by way of a system bus or other electrical communication paths. In one illustrative configuration, one or more central processing units (“CPUs”)604operate in conjunction with a chipset606. The CPUs604can be standard programmable processors that perform arithmetic and logical operations necessary for the operation of the computer600.

The CPUs604perform operations by transitioning from one discrete, physical state to the next through the manipulation of switching elements that differentiate between and change these states. Switching elements generally include electronic circuits that maintain one of two binary states, such as flip-flops, and electronic circuits that provide an output state based on the logical combination of the states of one or more other switching elements, such as logic gates. These basic switching elements can be combined to create more complex logic circuits, including registers, adders-subtractors, arithmetic logic units, floating-point units, and the like.

The chipset606provides an interface between the CPUs604and the remainder of the components and devices on the baseboard602. The chipset606can provide an interface to a RAM608, used as the main memory in the computer600. The chipset606can further provide an interface to a computer-readable storage medium such as a ROM610or non-volatile RAM (“NVRAM”) for storing basic routines that help to startup the computer600and to transfer information between the various components and devices. The ROM610or NVRAM can also store other software components necessary for the operation of the computer600in accordance with the configurations described herein.

The computer600can operate in a networked environment using logical connections to remote computing devices and computer systems through a network, such as the network618. The chipset606also may include functionality for providing network connectivity through a Network Interface Controller (NIC)612, such as a gigabit Ethernet adapter. The NIC612is capable of connecting the computer600to other computing devices over the network618. It should be appreciated that multiple NICs612can be present in the computer600, connecting the computer to other types of networks and remote computer systems. In some instances, the NICs612may include at least on ingress port and/or at least one egress port.

The computer600can also include one or more input/output controllers616for receiving and processing input from a number of input devices, such as a keyboard, a mouse, a touchpad, a touch screen, an electronic stylus, or other type of input device. Similarly, an input/output controller616can provide output to a display, such as a computer monitor, a flat-panel display, a digital projector, a printer, or other type of output device.

The computer600can include one or more storage device(s)620, which may be connected to and/or integrated within the computer600, that provide non-volatile storage for the computer600. The storage device(s)620can store an operating system622, data storage systems624, and/or applications626, such as any of the various applications and software components described herein. The storage device(s)620can be connected to the computer600through a storage controller614connected to the chipset606. The storage device(s)620can consist of one or more physical storage units. The storage controller614can interface with the physical storage units through a serial attached SCSI (“SAS”) interface, a serial advanced technology attachment (“SATA”) interface, a fiber channel (“FC”) interface, or other type of interface for physically connecting and transferring data between computers and physical storage units.

The computer600can store data on the storage device(s)620by transforming the physical state of the physical storage units to reflect the information being stored. The specific transformation of physical state can depend on various factors, in different embodiments of this description. Examples of such factors can include, but are not limited to, the technology used to implement the physical storage units, whether the storage device(s)620are characterized as primary or secondary storage, and the like.

For example, the computer600can store information to the storage device(s)620by issuing instructions through the storage controller614to alter the magnetic characteristics of a particular location within a magnetic disk drive unit, the reflective or refractive characteristics of a particular location in an optical storage unit, or the electrical characteristics of a particular capacitor, transistor, or other discrete component in a solid-state storage unit. Other transformations of physical media are possible without departing from the scope and spirit of the present description, with the foregoing examples provided only to facilitate this description. The computer600can further read information from the storage device(s)620by detecting the physical states or characteristics of one or more particular locations within the physical storage units.

In addition to the storage device(s)620described above, the computer600can have access to other computer-readable storage media to store and retrieve information, such as program modules, data structures, or other data. It should be appreciated by those skilled in the art that computer-readable storage media is any available media that provides for the non-transitory storage of data and that can be accessed by the computer600. In some examples, the various operations performed by a computing system (e.g., representative client devices210, internal servers302, etc.) may be supported by one or more devices similar to computer600. Stated otherwise, some or all of the operations described herein may be performed by one or more computers600operating in a networked (e.g., client-server or cloud-based) arrangement.

By way of example, and not limitation, computer-readable storage media can include volatile and non-volatile, removable and non-removable media implemented in any method or technology. Computer-readable storage media includes, but is not limited to, RAM, ROM, erasable programmable ROM (“EPROM”), electrically-erasable programmable ROM (“EEPROM”), flash memory or other solid-state memory technology, compact disc ROM (“CD-ROM”), digital versatile disk (“DVD”), high definition DVD (“HD-DVD”), BLU-RAY, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information in a non-transitory fashion.

As mentioned briefly above, the storage device(s)620can store an operating system622utilized to control the operation of the computer600. In some examples, the operating system622comprises a LINUX operating system. In other examples, the operating system622comprises a WINDOWS® SERVER operating system from MICROSOFT Corporation of Redmond, Washington. In further examples, the operating system622can comprise a UNIX operating system or one of its variants. It should be appreciated that other operating systems can also be utilized. The storage device(s)620can store other system or application programs and data utilized by the computer600.

In various examples, the storage device(s)620or other computer-readable storage media is encoded with computer-executable instructions which, when loaded into the computer600, transform the computer from a general-purpose computing system into a special-purpose computer capable of implementing various techniques described herein. These computer-executable instructions transform the computer600by specifying how the CPUs604transition between states, as described above. In some examples, the computer600may have access to computer-readable storage media storing computer-executable instructions which, when executed by the computer600, perform the various techniques described herein. The computer600can also include computer-readable storage media having instructions stored thereupon for performing any of the other computer-implemented operations described herein.

FIG.7is a flow diagram illustrating an example process700to transfer a communication session from a first channel to a second channel, in accordance with one or more examples of the present disclosure. The blocks of the illustrated process700represent operations according to a method, components in one or more computing devices, and/or computer executable instructions in a computer readable storage medium, as can be appreciated. While the operations are illustrated in sequence, it can furthermore be appreciated that certain operations can optionally be re-ordered, combined, removed or supplemented with other operations in some embodiments.

In an embodiment, the process700illustrated inFIG.7can be performed by the servers112illustrated inFIG.1. In summary, the process700includes receiving a channel transfer request at operation710, performing the requested channel transfer at operations720, and updating reporting and analytics data at operation750. Performing the requested channel transfer at operations720can include operations722,724, and726which generate and store data in second channel storage, and operations730to establish the second channel connections, e.g., between the first device(s)102and the third device(s)116illustrated inFIG.1.

At operation710, the servers112can receive a channel transfer request applicable to a communication session. For example, the servers112can receive the activation110, wherein the activation110comprises a request to transfer a communication session from a first channel108to a second channel114. The first channel108can comprise, connect, or otherwise be associated with one or more first devices102and one or more second devices106, and the second channel114can comprise, connect, or otherwise be associated with the one or more first devices102and one or more third devices116. In some embodiments, the first channel108can comprise a first communication mode such as a text-based communication mode, and the second channel114can comprise a second communication mode such as a voice-based communication mode. The received request, e.g., the activation110, can be from an electronic device of the one or more second devices106, the electronic device comprising an activation tool such as the second channel activation element216illustrated inFIG.2, wherein the activation tool216is configured to generate the request/activation110during the first channel108communication session with the first device(s)102.

At operation720, in response to the request received at operation710, the servers112can transfer the communication session from first channel108to second channel114. Transferring the communication session from the first channel108to second channel114can comprise operations722,724, and726as well as operations730.

At operation722, the servers112can receive communication session context data220from the one or more second devices106of the first channel108. At operation724, the servers112can generate a communication session summary333and/or a sentiment334. In some embodiments, the communication session summary333can be based at least in part on recurring data included in the communication session context data220. For example, the recurring data can comprise recurring words included in the communication session context data220and generating the communication session summary333can comprise applying a machine learning component to generate the communication session summary333based on the recurring words. In contrast, the sentiment334can be based on occurrence of one or more predetermined emotion identifier terms within the communication session context data220. At operation726, the servers112can store the communication session context data220, the communication session summary333and/or the sentiment334in a second channel storage location330that is accessible by the one or more third devices116of the second channel114.

At operation730, the servers112can establish, based on the request received at operation710, a connection between the one or more first devices102and the one or more third devices116of the second channel114. Establishing the connection between the one or more first devices102and the one or more third devices116of the second channel114can comprise, e.g., operations732-742.

At operation732, the servers112can acquire second channel connection information from the one or more first devices102. For example, the second channel configuration manager305illustrated inFIG.3can use second channel configuration communications235to acquire the second channel connection information.

At operation734, the servers112can optionally determine a subchannel queue. For example, when the second channel114comprises multiple subchannels, the servers112can apply subchannel assignment321to determine, based the communication session context data220, a subchannel of the multiple subchannels for the communication session, and a corresponding queue323. Transferring the communication session to the second communication channel114can include assigning, by subchannel assignment321, the communication session to the subchannel.

At operation736, the servers112can insert a communication session identifier associated with the communication session in a second channel queue, e.g., in the queue323. The insertion can be made for example by queue priority assignment322. In some embodiments, inserting the communication session identifier in the second channel queue323can comprise inserting the communication session identifier at a position within the second channel queue323having a first priority level, the first priority level being higher than a second priority level of another communication session identifier within the second channel queue323. Queue priority assignment322can be configured to determine the position based on, e.g., a duration of the communication session in the first channel108or based at least in part on the communication session context data220, e.g., based on customer account information and/or an issue or topic identified in the communication session context data220.

In response to expiration of a period of time according to the second channel queue323, e.g., after the communication session identifier reaches a predetermined position in the second channel queue323, at operation738the servers112can use the acquired second channel connection information, acquired at operation732, to establish the first segment of the second channel114. The first segment can include a connection between the servers112and the first device(s)102, as illustrated inFIG.1.

At operation740, in response to success in establishing the first segment at operation738, the servers112can select a third device from among the one or more third devices116. The selected third device can be associated with a subchannel determined at operation734. If a pool of third devices is available, the servers112can select for example a first available third device from the pool, or else, e.g., a third device that is a shortest network distance from the first device(s)102.

At operation742, the servers112can provide the communication session context data220, the communication session summary333and/or the sentiment334from second channel storage location330to the selected third device. In some embodiments, the servers112can load the communication session context data220, summary333and/or sentiment334at a location accessible by at least one third device of the one or more third devices116. For example, the servers112can load the data in an active cache for ease of access by the one or more third devices116. Upon completion of operation742, the second channel connection is established and the servers112can end the second channel establishment task.

At operation750, the servers112can update a data store such as reporting and analytics data store312with request information associated with the request received at operation710. The request information can comprise, e.g., an identification of the first channel108, an identification of the second channel114, identifications of the first device(s)102, second device(s)106, and/or third device(s)116, date and time of channel transfer, duration of the communication session in the first and/or second channels, a topic identified based on the communication session context data220, a sentiment334, a summary333, a customer and/or customer account type information, and/or any other information from communication session context data220. In some embodiments the reporting and analytics data store312can comprise, inter alia, a total number of channel transfer requests to transfer communication sessions from the first channel108to the second channel114. In some embodiments the reporting and analytics data store312can comprise statistics related to numbers of channel transfer requests generated by different second devices of the second device(s)106and/or corresponding representatives.

Variations ofFIG.7can be understood with the benefit of this disclosure. For example, in on example variation, at operation710a channel transfer request can be received to transfer a communication session from a first channel108to a second channel114, wherein the first channel108comprises one or more first devices102and one or more second devices106, and wherein the second channel114includes the one or more first devices102and one or more third devices116.

At722, communication session context data220can be received, wherein the communication session context data222is acquired via the first channel108. At724, a machine learning component can be used to generate a summary333based on the communication session context data220.

At730, a second channel connection can be established between the one or more third devices116and the one or more first devices102in order to fulfill the channel transfer request received at710. Establishing the second channel connection can comprise operations732-742, e.g., acquiring at732and via the first channel108, second channel connection information from the one or more first devices102; inserting at736an identifier associated with the communication session in a second channel queue323; using at738using the second channel connection information to establish a first connection to the one or more first devices102in accordance with a position of the identifier in the second channel queue323; providing at742the communication session context data220to a selected device of the one or more third devices116; and linking at740the first connection to the selected device of the one or more third devices116.

In some instances, one or more components may be referred to herein as “configured to,” “configurable to,” “operable/operative to,” “adapted/adaptable,” “able to,” “conformable/conformed to,” etc. Those skilled in the art will recognize that such terms (e.g., “configured to”) can generally encompass active-state components and/or inactive-state components and/or standby-state components, unless context requires otherwise.

As used herein, the term “based on” can be used synonymously with “based, at least in part, on” and “based at least partly on.”

As used herein, the terms “comprises/comprising/comprised” and “includes/including/included,” and their equivalents, can be used interchangeably. An apparatus, system, or method that “comprises A, B, and C” includes A, B, and C, but also can include other components (e.g., D) as well. That is, the apparatus, system, or method is not limited to components A, B, and C.

While the invention is described with respect to the specific examples, it is to be understood that the scope of the invention is not limited to these specific examples. Since other modifications and changes varied to fit particular operating requirements and environments will be apparent to those skilled in the art, the invention is not considered limited to the example chosen for purposes of disclosure and covers all changes and modifications which do not constitute departures from the true spirit and scope of this invention.

Although the application describes embodiments having specific structural features and/or methodological acts, it is to be understood that the claims are not necessarily limited to the specific features or acts described. Rather, the specific features and acts are merely illustrative some embodiments that fall within the scope of the claims of the application.