Monitoring and listening tools across omni-channel inputs in a graphically interactive voice response system

Information

  • Patent Grant
  • 11201964
  • Patent Number
    11,201,964
  • Date Filed
    Thursday, April 1, 2021
    3 years ago
  • Date Issued
    Tuesday, December 14, 2021
    2 years ago
Abstract
The graphical programming call router features a rich library of powerful and easy-to-use components that administrators can use to seamlessly drop in contact center actions such as data dips, complex interactive voice responses (“IVRs”) and call recordings, among many others. This makes it easy to visualize the exact structure and outcome of any call flow. The graphical programming call router also offers granular queue management functionality so you can get specific around call prioritization, wait time and time-based actions on virtual queues.
Description
FIELD

This disclosure relates to programming and set-up techniques for interactive voice response systems featuring an automated attendant in a call center environment.


BACKGROUND

Large businesses often have extremely busy telephone systems, some of which merit a corporate call center to receive incoming calls from customers and clients. Computer systems have been used for decades to manage the call center environments, and virtual attendants have been developed to triage calls as they come into the call center. The problems that call centers currently incur center largely around flexibility and enacting changes to the call center call routing systems on the fly.


Today, contact centers are primarily on-premise software solutions. This requires an enterprise to make a substantial investment in hardware, installation and regular maintenance of such solutions. Using on-premise software, agents and supervisors are stationed in an on-site call center. In addition, a dedicated IT staff is required because on-site software may be too complicated for supervisors and agents to handle on their own. Another drawback of on-premise solutions is that such solutions cannot be easily enhanced to include capabilities to that meet the current demands of technology. Thus, there is a need for a solution to enhance legacy on-premise solutions to provide an easy path for such solutions to address the ever changing technology advancements and channels by which customers interact with contact centers.


A need currently exists in the field of virtual telephone systems, call centers, and interactive voice response systems to set up call programming and call routing to agents within an organization.


BRIEF SUMMARY

A method using computerized networks to route call data and other kinds of incoming communications data to a customer agent includes presenting, on a computerized display, a series of drop-down menus indicating options for transmitting incoming call data within an organization and adding, to the computerized display, a graphical indication of a selected option from the series of drop down menus.





BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are in and constitute a part of this specification, illustrate certain examples of the present disclosure and together with the description, serve to explain, without limitation, the principles of the disclosure. Like numbers represent the same element(s) throughout the figures.


The components in the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding parts throughout the several views.



FIG. 1 illustrates an example environment;



FIG. 2 illustrates aspects of workforce management (WFM) solutions within the context of the environment of FIG. 1;



FIG. 3 illustrates aspects of workforce optimization (WFO) solutions within the context of the environment of FIG. 1;



FIG. 4 illustrates example implementations of automated voice response systems programmed as set forth in the present disclosure;



FIG. 5 illustrates example implementations of automated voice response systems programmed as set forth in the present disclosure;



FIG. 6 illustrates example implementations of automated voice response systems programmed as set forth in the present disclosure;



FIG. 7 illustrates example implementations of automated voice response systems programmed as set forth in the present disclosure;



FIG. 8 illustrates example implementations of automated voice response systems programmed as set forth in the present disclosure;



FIG. 9 illustrates example implementations of automated voice response systems



FIG. 10 illustrates an example computing device.



FIG. 11 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 12 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 13 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 14 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 15 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 16 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 17 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 18 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 19 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 20 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 21 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 22 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 23A is a schematic representation of a networked call center routing program in block diagram as disclosed herein.



FIG. 23B is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 24 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 25 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 26 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 27 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 28 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 29 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 30 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 31 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 32 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 33 is a schematic representation of a networked call center routing program with vi FIG. 11 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 34 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 35 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 36 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 37 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 38 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 39 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 40 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 41 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 42 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 43 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 44 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.


Visual routing components and drop down menu options as disclosed herein.



FIG. 45 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 46 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 47 is a schematic representation of a networked call center routing program with visual routing components and drop down menu options as disclosed herein.



FIG. 48 is a schematic representation of the efficiency for various algorithms used to authenticate data updates at any one of the primary computer, member computers, or verifier party computers as disclosed herein.





DETAILED DESCRIPTION

The following description of the disclosure is provided as an enabling teaching of the disclosure in its best, currently known embodiment(s). To this end, those skilled in the relevant art will recognize and appreciate that many changes can be made to the various embodiments of the embodiments described herein, while still obtaining the beneficial results of the present disclosure. It will also be apparent that some of the desired benefits of the present disclosure can be obtained by selecting some of the features of the present disclosure without utilizing other features. Accordingly, those who work in the art will recognize that many modifications and adaptations to the present disclosure are possible and can even be desirable in certain circumstances and are a part of the present disclosure. Thus, the following description is provided as illustrative of the principles of the present disclosure and not in limitation thereof.


Terminology

Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood to one of ordinary skill in the art to which this disclosure belongs.


As used in the specification and claims, the singular form “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise. For example, the term “an agent” includes a plurality of agents, including mixtures thereof.


As used herein, the terms “can,” “may,” “optionally,” “can optionally,” and “may optionally” are used interchangeably and are meant to include cases in which the condition occurs as well as cases in which the condition does not occur. Thus, for example, the statement that a formulation “may include an excipient” is meant to include cases in which the formulation includes an excipient as well as cases in which the formulation does not include an excipient.


Ranges can be expressed herein as from “about” one particular value, and/or to “about” another particular value. When such a range is expressed, another embodiment includes from the one particular value and/or to the other particular value. Similarly, when values are expressed as approximations, by use of the antecedent “about,” it will be understood that the particular value forms another embodiment. It will be further understood that the endpoints of each of the ranges are significant both in relation to the other endpoint, and independently of the other endpoint. It is also understood that there are a number of values disclosed herein, and that each value is also herein disclosed as “about” that particular value in addition to the value itself. For example, if the value “10” is disclosed, then “about 10” is also disclosed.


Publications cited herein are hereby specifically by reference in their entireties and at least for the material for which they are cited.


This disclosure relates generally to telecommunication systems by which certain incoming telecommunications data arrive at an organization for processing, and the incoming telecommunications data are analyzed for action in a computerized, software driven environment such as a call center utilizing automated virtual attendants, interactive voice response systems, and the like, along with routing protocols directing certain data to human agents or human computer operators. In particular, incoming telecommunications data may be traditional voice data, voice over internet protocol (VOIP) data, chat or messaging data, keyboard or touch screen entries, text-to-speech and speech-to-text data, and the like. The incoming telecommunications data may be generally referred to as respective “calls” coming into a system, but the term “call” is not limited to any particular source, content, protocol, or format. The terms “call” and “call data,” as used herein, is non-limiting and only used as a convenient expression to denote incoming telecommunications data, bi-directional telecommunications data, and output telecommunications data of all kinds and with respect to an organization's telecommunications processing system, such as but not limited to a call center.


In some embodiments, this disclosure is directed to not only processing the call data but also pre-planning the manner in which call data is handled. Historically, many call center software operations are programmed by a vendor to map out call “flow” routes across and among hardware devices and/or call agents, both live and virtual, who handle the incoming call data. The call agents are responsible to ensure that appropriate output data is transmitted back to a caller and that the caller is properly engaged in the most appropriate manner in the fastest time. The call flow planning, therefore, is critical to call center success rates. In some embodiments of this disclosure, the call flow planning, implementation, and updating can be successfully achieved by a client organization as opposed to a vendor because this disclosure implements a graphical programming system for call flow planning that can be utilized by a purchasing organization in-house. The embodiments described herein allow for numerous employees of an organization, managing incoming and outgoing telecommunications data, to have authorized access to a call flow management system within an organization so that changes and updates do not have to be implemented by only the vendor who sells the system. Instead, as shown in the figures and described below, user-friendly drop-down menus implement and supplement a graphical representation of the call flow that an iterative selection of parameters has implemented. The graphical representation allows the user to see how a flow is currently working, click on links and decision tools, and access user friendly selection tools for changes.


Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art. Methods and materials similar or equivalent to those described herein can be used in the practice or testing of the present disclosure. While implementations will be described within a cloud-based contact center, it will become evident to those skilled in the art that the implementations are not limited thereto.


The present disclosure is generally directed to a cloud-based contact center solution. With the rise of cloud-based computing, contact centers that take advantage of this infrastructure are able to quickly add new features and channels. Cloud-based contact centers improve the customer experience by leveraging application programming interfaces (APIs) and software development kits (SDKs) to allow the contact center to change in in response to an enterprise's needs. For example, communications channels may be easily added as the APIs and SDKs enable adding channels, such as SMS/MMS, social media, web, etc. Cloud-based contact centers provide a platform that enables frequent updates. Yet another advantage of cloud-based contact centers is increased reliability, as cloud-based contact centers may be strategically and geographically distributed around the world to optimally route calls to reduce latency and provide the highest quality experience. As such, customers are connected to agents faster and more efficiently.


Example Cloud-Based Contact Center Architecture



FIG. 1 is an example system architecture 100, and illustrates example components, functional capabilities and optional modules that may be included in a cloud-based contact center infrastructure solution. Customers 110 interact with a contact center 150 using voice, email, text, and web interfaces in order to communicate with agent(s) 120 through a network 130 and one or more of text or multimedia channels 140. The agent(s) 120 may be remote from the contact center 150 and handle communications with customers 110 on behalf of an enterprise. The agent(s) 120 may utilize devices, such as but not limited to, work stations, desktop computers, laptops, telephones, a mobile smartphone and/or a tablet. Similarly, customers 110 may communicate using a plurality of devices, including but not limited to, a telephone, a mobile smartphone, a tablet, a laptop, a desktop computer, or other. For example, telephone communication may traverse networks such as a public switched telephone networks (PSTN), Voice over Internet Protocol (VoIP) telephony (via the Internet), a Wide Area Network (WAN) or a Large Area Network. The network types are provided by way of example and are not intended to limit types of networks used for communications.


Agent(s) 120 and customers 110 may communicate with each other and with other services over the network 130. For example, a customer calling on telephone handset may connect through the PSTN and terminate on a private branch exchange (PBX). A video call originating from a tablet may connect through the network 130 terminate on the media server. A smartphone may connect via the WAN and terminate on an interactive voice response (IVR)/intelligent virtual agent (IVA) components. IVR are self-service voice tools that automate the handling of incoming and outgoing calls. Advanced IVRs use speech recognition technology to enable customers to interact with them by speaking instead of pushing buttons on their phones. IVR applications may be used to collect data, schedule callbacks and transfer calls to live agents. IVA systems are more advanced and utilize artificial intelligence (AI), machine learning (ML), advanced speech technologies (e.g., natural language understanding (NLU)/natural language processing (NLP)/natural language generation (NLG)) to simulate live and unstructured cognitive conversations for voice, text and digital interactions. In yet another example, Social media, email, SMS/MMS, IM may communicate with their counterpart's application (not shown) within the contact center 150.


The contact center 150 itself be in a single location or may be cloud-based and distributed over a plurality of locations. The contact center 150 may include servers, databases, and other components. In particular, the contact center 150 may include, but is not limited to, a routing server, a SIP server, an outbound server, a reporting/dashboard server, automated call distribution (ACD), a computer telephony integration server (CTI), an email server, an IM server, a social server, a SMS server, and one or more databases for routing, historical information and campaigns.


The ACD is used by inbound, outbound and blended contact centers to manage the flow of interactions by routing and queuing them to the most appropriate agent. Within the CTI, software connects the ACD to a servicing application (e.g., customer service, CRM, sales, collections, etc.), and looks up or records information about the caller. CTI may display a customer's account information on the agent desktop when an interaction is delivered. Campaign management may be performed by an application to design, schedule, execute and manage outbound campaigns. Campaign management systems are also used to analyze campaign effectiveness.


For inbound SIP messages, the routing server may use statistical data from reporting/dashboard information and a routing database to the route SIP request message. A response may be sent to the media server directing it to route the interaction to a target agent 120. The routing database may include: customer relationship management (CRM) data; data pertaining to one or more social networks (including, but not limited to network graphs capturing social relationships within relevant social networks, or media updates made by members of relevant social networks); agent skills data; data extracted from third party data sources including cloud-based data sources such as CRM; or any other data that may be useful in making routing decisions.


The integration of real-time and non-real-time communication services may be performed by unified communications (UC)/presence sever. Real-time communication services include Internet Protocol (IP) telephony, call control, instant messaging (IM)/chat, presence information, real-time video and data sharing. Non-real-time applications include voicemail, email, SMS and fax services. The communications services are delivered over a variety of communications devices, including IP phones, personal computers (PCs), smartphones and tablets. Presence provides real-time status information about the availability of each person in the network, as well as their preferred method of communication (e.g., phone, email, chat and video).


Recording applications may be used to capture and play back audio and screen interactions between customers and agents. Recording systems should capture everything that happens during interactions and what agents do on their desktops. Surveying tools may provide the ability to create and deploy post-interaction customer feedback surveys in voice and digital channels. Typically, the IVR/IVA development environment is leveraged for survey development and deployment rules. Reporting/dashboards are tools used to track and manage the performance of agents, teams, departments, systems and processes within the contact center. Reports are presented in narrative, graphical or tabular formats. Reports can be created on a historical or real-time basis, depending on the data collected by the contact center applications. Dashboards typically include widgets, gadgets, gauges, meters, switches, charts and graphs that allow role-based monitoring of agent, queue and contact center performance. Unified messaging (UM) applications include various messaging and communications media (voicemail, email, SMS, fax, video, etc.) stored in a common repository and accessed by users via multiple devices through a single unified interface.


The cloud-based contact center 150 may include a number of optional components to help improve the performance of agents and their departments. For example, a Workforce Management (WFM) module may be provided that forecasts and schedules the agents 120 to handle interactions in each channel 140. Additional details of the WFM module 200 are shown in FIG. 2. WFM suites address planning, staffing, resource management and real-time intraday challenges. WFM suites also include workflow automation functionality to reduce the administrative burden associated with managing common contact center activities, such as vacation, time-off or schedule changes, optimizing schedules and/or break periods, and overtime or early departure requests to address real-time variances to a plan.


WFM solutions 200 may also provide agents 120 with self-service capabilities such that agents 120 may create and manage their own schedules and obtain insight into personal performance. FIG. 2 groups the WFM suite components by primary function, although many of these overlap. Group 202 includes omni-Channel Forecasting that enables users to build forecasts for multiple contact center channels (inbound/outbound voice, email, chat, short message service (SMS), video, messaging, social media, etc.). Omni-channel forecasting accounts channel-specific interaction characteristics such as real-time or deferred activities and the ability to simultaneously handle concurrent email, chat, SMS interactions, etc. Different algorithms may be used to generate forecasts for the various communication channels, based on historical transaction volume data (e.g., hour of the day, day of week, week of month and month of the year), shrinkage factors and seasonal changes (holidays, marketing promotions, and cyclical events). Projected future transaction volumes and demand, and a capability to simulate interaction volumes and develop “what if” scenarios may be included. Volume forecasts and staffing requirement forecasts may be generated.


Also in group 202 is Back-Office/Branch Forecasting, which provides forecasting capabilities to address the unique requirements of back-office and branch environments. This includes forecast modeling techniques and algorithms to calculate skill and staffing requirements for branch/location based on customer demand and traffic patterns, including the availability of pooled employee resources across multiple locations. Multi-Skill Scheduling creates a timetable of blended agent activities that balances forecasted demand against agent availability. Schedules are based on the skill mix and proficiency level of agents who have been trained to perform various activities, support different products, or have the ability to handle more than one communication channel.


Group 204 contains intra-day management tools that provide the capability to gauge real-time service-level impacts and help determine the actions required to ensure service levels are met on an ongoing basis. Adaptive Real-Time Scheduling tools are self-learning applications that use rules to automate the process of identifying unanticipated changes in demand and finding and acquiring the resources to address the staffing overage or underage. This module may identify variances from plan, identify the skills and resources needed to handle the re-forecasted volumes, and automate the process of addressing the variances by interacting directly with employees, using self-service tools to resolve the misalignment in real time. Real-Time Adherence tools capture and compare current agent activity and status data from the automatic call distributor (ACD) (in contact centers), or work allocation and management solutions (in back offices) to schedule information. This comparison allows managers to recognize what agents are doing relative to scheduled activities, and then address any deviations from the plan. It enables managers to identify impacts on shrinkage, and determine if agents are not where they are supposed to be or doing what they are scheduled to do. Desktop Analytics (DA) provides information regard what employees do at their desktops by using an automated and systemic approach to monitor, capture, structure, analyze, report and react to all staff desktop activity and process workflows. It tracks employee activity, including detection of keystrokes, data entry, applications, screens and fields accessed, events, usage duration, and resulting actions. It measures application utilization, system response time, usage patterns, and performance metrics in order to monitor application usage and assess user efficiency, effectiveness, compliance, and external customer impact. DA modules may also provide real-time guidance to employees, as the solution knows what is being done in desktop applications.


Group 204 includes administration modules such as dashboards the display online graphical presentations of real-time, near-real-time and historical WFM data. Dashboards should be flexible and customizable by users, allowing them to modify the look and feel. Dashboards typically include widgets, gadgets, gauges, meters, switches, charts and graphs that allow role-based monitoring of operational activity for all stakeholders (agents, managers, WFM administrators, etc.). Reporting automates the gathering, organization and display of WFM-related data in order to show management what is happening in the operation. Reporting modules should deliver information interactively online, including drill-down and drill-through to underlying data, as well as in printed documents. Standard reports should consolidate information from all WFM modules and provide different views of operational and agent performance data in narrative, graphical or tabular formats. A flexible reporting module should make it easy for users to filter and view information based on employees, teams, time periods, channels, etc. Administration provides an environment for managing the parameters used to set up the application and to drive forecasting and scheduling; parameters include work rules, calendars, contact routing, schedules, scheduling rules, skill groups, interaction channel types (phone, chat, email, etc.), operating hours, etc. The environment should provide pre-built tools to facilitate system access, user set-up, user identification and rights (privileges), password administration and security.


Group 206 includes agent self-service tools, such as a web-based and/or mobile-enabled interface into the WFM application that allows agents to input preferences for time off or schedules (e.g., hours and days they want to work), view vacation accruals, sign up for overtime assignments or voluntary time off, initiate full or partial shift swaps, request schedule exceptions, and access other related information. Agent self-service modules allow agents see personal performance statistics to facilitate self-management efforts and determine if they are meeting the goals set by their manager. Alerts communicate real-time issues to agents, managers or administrators. Alerts can be based on user-defined thresholds to notify managers of out-of-adherence situations or extended contact durations, and inform agents of upcoming schedule or activity changes via screen displays, pop-up messages, emails, texts and broadcast messages. Mobility provides agents, managers, supervisors and administrators with role-based access to WFM functionality on tablets, and iOS and Android mobile devices. Agents can also initiate or respond to schedule change requests, shift swaps, time-off and overtime requests.


Within group 206, performance management tools use analytics to help managers align their goals with those of the enterprise, and produces dashboards and scorecards that allow managers to monitor, track and improve department and individual employee performance. Gamification allows contact center, back-office and branch environments to incorporate gaming and behavioral modification science, methodology and techniques systemically into business applications and processes. Gamification modules provide a recognition and reward framework to motivate and enhance performance, productivity, employee retention, sales, etc. These modules are designed to drive sustainable performance improvements and provide recognition and/or awards for goal achievement while fostering healthy competition in operating departments. Vacation/Time-Off Management provides functionality for managing time-off requests and accruals. eLearning/Meeting Management schedules individual or group training or meeting sessions. The solution utilizes user-generated input, like the maximum and minimum number of staff allowed in the meeting, the venue, and the starting time and length of the session, to optimize the placement of events. Timekeeping/Payroll Management provides functionality to automate the timekeeping process. Payroll management can be configured to interface with corporate human resources (HR) or payroll systems, or work as a stand-alone module.


Group 208 includes long-term strategic planning tools that allows managers to plan operational forecasts, budgets and schedules one or more years into the future. A benefit of this functionality is the ability to create and compare multiple “what if” scenarios and forecasts to enable users to evaluate and estimate financial and service-level impacts of potential changes, and be prepared to alter their forecasts and schedules appropriately to support the changing business environment. Hiring Management manages the employee acquisition process. This includes forecasting the number of staff and the specific skill sets required, the optimal mix of shifts (full-time, part-time, flex) and when the training should commence, to accommodate the required ramp-up period. Can also include the ability to integrate with HR systems to create hiring plans based on optimal staffing profiles. AI-based hiring management solutions may also assist enterprises in the candidate selection process, and analyze the quality of hires. Workspace Allocation automatically creates seating charts during the scheduling process. The module assigns workspaces to agents based on performance, seniority, queues, skills, teams, shifts or other user-designated input. It also inserts the seating assignment into agents' schedules, and allows supervisors to display and print the assignments.



FIG. 3 illustrates key components of a cloud-based contact center WFO suite 300. The WFO suite 300 is a set of applications designed to capture and analyze omni-channel interactions in order to optimize performance and promote customer and employee engagement, satisfaction and retention. WFO suites 300 are designed to help companies optimize, analyze and engage employees and customers. The WFO suites 300 leverage historical and real-time data to analyze customer behavior and the performance of front-office, back-office and branch operations and employees. The findings are used to identify the underlying cause of issues, and provide the information needed to support data-driven decisions and improvements to address the expectations, needs and wants of customers, prospects and employees.


The component include, but are not limited to:


Recording (e.g., audio, screen and video recording for quality assurance, regulatory or speech/text analytics), quality assurance/quality management that determines how well agents adhere to internal policies and procedures;


Quality management (QM)—evaluates how well each agent adheres to the internal policies and procedures of the department. Contact center performance management (CCPM)—integrates data from multiple sources to produce contact center reports and dashboards.


Workforce Management (WFM, as described above) for forecasting and scheduling agent staffing needs;


Coaching/eLearning—provides highly tactical and timely feedback and/or learning content to agents to help them improve their performance. Gamification—provides a recognition and reward framework to improve performance, productivity, employee retention, performance, sales, etc.;


Voice of the customer (VoC)/voice of the employee (VoE)/surveying tools that are omni-channel solutions that collect internal and external feedback, actively solicited and/or passively gathered from social media, community platforms and online review sites;


Performance management tools that align contact center activities with enterprise goals (e.g., provides scorecards and dashboards to measure staff, team and department performance, and provides the data, metrics and key performance indicators (KPIs) needed to improve the contact center and enhance the customer experience);


Speech Analytics (e.g., post-call and real-time)—capture, structure and analyze unstructured phone conversations to uncover the reasons why people call, and to identify new revenue opportunities and allows a company to identify and address an issue while the caller is still on the line.


Text Analytics—software used to extract information from unstructured text-based data such as emails, chats, SMS, social media, etc., in order to structure it for further analysis or action;


Robotic process automation (RPA)—software that leverages AI, machine learning, workflow and other technologies to automate the processing of repetitive tasks, initiate actions and communicate with other systems or employees. RPA emulates the processes performed by human workers and can be trained to adapt to changing conditions, anomalies and new situations;


Customer relationship management (CRM)/servicing—provides a complete view of the customer relationship and their interaction history;


Desktop analytics (DA)—captures, tracks and analyzes everything that happens on the agent desktop. Desktop analytics to provide visibility to management by capturing, tracking and analyzing everything that happens on agents' desktops; text analytics that is used to extract information from unstructured text-based interactions such as emails, chats, SMS, social media, etc., in order to structure it and use it to identify the reasons why people contact the organization;


Real-time guidance/next-best action (NBA)—tools designed to give agents the right information at the right time to deliver a personalized experience to each customer;


Gamification—allows contact centers and other departments to incorporate gaming methods and techniques into business applications and processes to enhance and improve agent/staff performance, motivate and drive ideal behaviors, and provide recognition and awards for goal achievement;


Customer Journey Analytics—an agile method of capturing, aggregating, measuring and evaluating the full experience as customers/prospects traverse an organization; provides the ability to reconstruct and assess what happens at every touch point, from inception to fulfillment, to evaluate the experience from the customer perspective;


Robotic process automation that is software to process transactions, manipulate data, trigger responses, initiate actions and communicate with other digital systems to automate the completion of high-volume, repetitive and non-cognitive tasks; can be applied on an attended and unattended basis.


Thus, in the context of FIGS. 1-3, the present disclosure provides improvements by enabling voice systems (e.g., the ACD) of traditional on-premise solutions to use AI-infused, cloud-based contact center applications to boost agent productivity, operational agility, and customer experience. FIG. 4 illustrates the operation of a traditional ACD routing calls to legacy softphones a desktop computers. FIG. 5 shows a first example implementation according to the present disclosure. In this example, connection and routing components are placed in front of the PBX/ACD/IVR and SIP trunk calls into the existing infrastructure. The connection and routing component(s) may be Talkdesk Callbar 4400 shown in FIG. 44, which enables agents to place and receive calls, as well as set availability, mute or hold a call, transfer calls, initiate a call conference, merge or create new contacts, pulse call recording, add notes to a caller's activity history, and access the contact's profile page in an integration of choice. In the scenario of FIG. 5, the connection and routing component(s) become the telephone and recording software for the enhanced legacy agent interface. FIG. 6 shows an alternative first example implementation according to the present disclosure. In FIG. 6 there is a change to routing logic to perform specific routing to certain targets within a group (e.g., sales). In FIGS. 5-6, the connection and routing component(s) act as ACD extensions. In FIG. 6, the connection and routing component(s) offer routing on, e.g., specific branches. In both FIGS. 5-6, the connection and routing component(s) take advantage of Universal Device support, and maintain the audio interface on the legacy phone devices. This offers the option of gradually throwing away perfectly good “dumb phones.” FIG. 7 shows another alternative first example implementation according to the present disclosure. In FIG. 7, all routing logic is removed from the ACD and all contact center traffic is routed by the connection and routing component(s). FIG. 8 shows a second example implementation according to the present disclosure. Here, the connection and routing component(s) sit behind a SIP server. Here, the connection and routing component(s) may be built into the SIP server in order to perform full routing to the enhanced legacy agent interface.


As shown in FIG. 9, the enhancements of the present disclosure are a suite of intelligent, AI-infused contact center applications built on a modern cloud-native communications platform that integrates seamlessly with existing legacy ACD systems and accelerates digital transformation. The present disclosure provides contact centers with a contemporary solution that instantly enhances agent productivity, operational efficiency and agility, and customer experience.


The present disclosure enables enterprises to integrate their existing system and enjoy access to a constant stream of new features, as well as international expansion. Such new features include:


Enjoy AI and advanced cloud capabilities


Gain efficiencies with 40+ CRM and other system integrations


Realize benefits quickly and risk-free


The present disclosure will increase operational efficiency by equipping agents 120, supervisors, and customers with smart tools to advance customer support and make every contact valuable. The present disclosure employs efficient tools to leverage and extend existing investments. The present disclosure works with an enterprise's favorite apps and enables a selection of a preferred agent desktop experience.


The present disclosure will empower agents 120 with mobile access and real-time knowledge to deliver consistent customer experience excellence over multiple touchpoints. The present disclosure will improve agents' engagement, increase CSAT/NPS, and achieve defined business goals,



FIG. 10 shows an exemplary computing environment in which example embodiments and aspects may be implemented. The computing system environment is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality.


The graphical programming call router of this disclosure features a flow-based routing for handling incoming data streams that require action by either a live agent or a virtual, computer driven agent. There are several settings that are moved from the customer account or customer telephone number level to the call flow level, and some of these transfers may be automatic when the graphical call router has been implemented with intention.


Depending on how each call flow is configured, these are some of the settings that may be managed by supervisors in a customer organization who need authority in the system to make adjustments “on-the-fly” for real world conditions. The graphical programming call router described herein is configured to identify an incoming call data source and provide the following assignments that may be programmed in either a customized or pre-set way:


Ring groups of the number;


Maximum number of agents to ring;


Maximum waiting time;


Interactive Voice Responses;


Holiday Hours;


Business Hours;


Greetings;


Recording enablement;


Time zones.


The remainder of this disclosure makes references to the figures as noted. The figures illustrate example implementations that are provided to clarify the nature and the environment of the disclosure without limiting the scope of the embodiments in any way. The graphical programming call router of this disclosure has many options available via a user interface. In one non-limiting embodiment, once a “Create New Flow” button is pressed an authorized user can start defining a new call flow 1100, 1300, 1700, 3600 and configuring each component 1105 as shown in FIG. 11 at 1110 and 1112 in drop down menus. The drop down menus allow for a programmer to make selections that can be seen directly in a graphical representation as shown in the call flow 1100. The graphical representations show the selected drop down options 1110, 1112 in a corresponding call flow route 1107 that connects components 1105 in the graphical representation. In different embodiments described below, both the components 1105 and the routes 1107 are active links that can direct a user to more information or display information directly on the screen.


Illustrated further in FIG. 12, each flow 1107 consists of a number of building blocks, called components 1200 (or steps), and are started by an interaction trigger 1210 selected in a drop down menu that is displayed simultaneously with the call flow route graph that defines the actions that the components will execute. For example, a “Play Audio” component provides the ability to receive an input text from a call center agent or operator or from a text channel of incoming call data and transform it into voice in one of the available languages.


A user can also use a variable in a Play Audio component to play a personalized greeting message for a caller: e.g., one can configure the waiting music that a customer listens to when they call you, so that the user can be consistent in brand management, or take advantage of the time customers are waiting to promote goods or services.


In another embodiment, the result of a data dip into companion software or database resources may be used to route “VIP” customers to an assignment component with a higher priority. The system of these embodiments is also configured to implement a set of actions to be triggered during a flow execution according to time rules, or any other conditions, to automate communications to be sent to customers during or after a call, etc.


In an example embodiment, the graphical programming call router may be configured to manage time consuming steps that are necessary in incoming communications management, such as but not limited to the creation of interactive voice response greetings. The following steps are illustrative of how the system may be programmed to accomplish tasks that formerly required extensive time commitments from IT professionals and vendor service personnel. FIG. 13 shows a first initial selection of starting the instruction development process for a call flow and illustrates options to save the work 1310 for later return and completion or the option to publish the work 1320 for activating as a live route in a call center.



FIG. 14 illustrates example, non-limiting steps in creating interactive voice response (IVR) greetings as one of many components 1400 in a call flow of the figure. Some example steps to implement the instruction development of FIG. 14 include:

    • Log in to the system account as an administrator.
    • Click the Admin section at the top of the page.
    • Select the Flows tab.
    • Click the Create New Flow button and type in a name and a brief description of a new flow's main actions 1200, so one can easily identify it when assigning phone numbers later on. The example of FIGS. 13 and 14 is “Inbound EMEA” and used “Inbound support flow for EMEA region” as the description.
    • Hit Create Flow.
    • Click the new My new IVR component.
    • Under the Preferences tab, make sure Text to Speech is selected and on the Language of audio output drop-down menu select the language to be used for the new greeting (we've selected English, UK for ours).
    • Type in the message that the developer/programmer wants customers to hear when they reach this IVR on the Text to speech box (e.g. “Press 1 for sales, 2 for support.”) at 1435 and 1440 respectively
    • Press the Save button [1310] to create a new flow.


      In the example of FIG. 14, the above described drop down menu selections have created components 1410, 1420, 1430 to implement flow routes 1435, 1440 so that when call data arrives such as “hit 1 for sales and 2 for support” the computerized instructions direct the call data to the correct department.


2. Assigning a Call When assigning a call, a user can select from different parameters to determine the best agent or group to answer the call:

    • “Agents” 1110A (the call can be assigned to one or multiple specific agents).
    • “Ring Groups” 1110B (the call can be assigned to one or multiple ring groups).
    • “Variables in the flow context” 1210 (the call can be assigned to a list of agents defined via an interaction context variable*).


      *Context collection: The embodiments described herein allow the IVR to collect information that will qualify an interaction save the information as context for a call. Context can be objectively identifiable portions of incoming call data (telephone numbers, IP addresses, circuit identification, call channel, data format) and can include meta data that either the user, a telecom service provider, or a call center adds to the call data for more information delivery to either a human or virtual agent.


For a simple example shown in FIG. 15, the figures show how to assign the calls that reach a support interactive voice response (IVR) menu option for a list of ring groups:

    • Click the Support queue component 1540 and select its Preferences tab.
    • Click the Ring Groups button 1537.
    • Make sure the List of Ring Groups in the programming account option is selected and click the drop-down list 1537.
    • Tick the box to select all ring groups, or select the individual ring groups to which you want the calls to be routed to.
    • Save the changes.


      As shown in the drop-down schematic of FIG. 15, in one non-limiting embodiment, the user must now select how many agents should be rung at a time, define the priority of calls to support, define a maximum waiting time, and choose the music to play to callers as they wait for a support agent to answer the call.


Embodiments of this disclosure allow for interactions to be handled by highest priority level, such as by a rule illustrated at block 515 of FIG. 23A. These kinds of rules can be generated by drop down menus described above, or they may be created on the fly according to the above noted context data and meta data for a call. In one non-limiting example, if different interactions have the same priority, the one that has been in the queue the longest will be assigned first. Agents need to be in the “available” status to be able to receive interactions. If multiple agents match the condition, then the “most idle” agent(s) is/are chosen. Without limiting the scope of the embodiments, idle time here is defined by the time spent between the last interaction that was handled by that agent and the time of the assignment request. An agent that has been idle the longest will be chosen first.


For now, as shown in the routes of FIG. 16, one can complete support line configuration and the sales line configuration by defining what to do when there was at least one successful dial attempt but no agent answered the call, and when there was a match but all agents were busy and the configured timeout was reached. In this situation, a programmer can determine pre-defined exits 1608 from certain components 1600

    • Select the Exits tab.
    • Expand the Send to drop-down menu for the No answer section 2030 and select Add new step.
    • From the Component drop-down menu, select Voicemail 1600.
    • Type in a name for this exit step: “Voicemail”.
    • Hit Add Step.
    • Scroll down to the “Maximum waiting time reached” section 2040.
    • Expand the Send to drop-down menu and select Voicemail. Scroll down to the “No match found” section.
    • Expand the Send to drop-down menu and select Voicemail.
    • Save changes.


If a user wants to give callers one or several ways out of the waiting queue:

    • Scroll down to the “Alternative Exits” section 2060 of FIG. 20.
    • In “Keypress Exits”, select 1.
    • We will have option 1 sending the call back to the Standard IVR so we'll name our Exit: “1 to return to Standard IVR.”
    • Hit Send to and select My new IVR (the name we gave to our Standard IVR component).
    • Save the flow as set forth in FIG. 21.


      The Support queue component is now configured. Other kinds of queues, such as a Sales queue component of FIG. 22, one must adjust choices 2250 accordingly.


When all components are configured, a user may initiate other features that are equally subject to the graphical programming choices such as an added Voicemail component 1600. In this component the system is configured to make users able to assign to specific agents or ring groups voicemail messages left by customers.

    • Hit the Voicemail component and select its Preferences tab.
    • Click the Ring Groups button.
    • Make sure the List of Ring Groups in your Talkdesk account option is selected and click the drop-down list.
    • Tick the box to select all ring groups or select the individual ring groups to which the voicemail will be assigned to.
    • Go to the “Record duration” section and type in the maximum amount of time in seconds that each voicemail message will last.
    • Save changes.


One notable characteristic of this disclosure is the ability to program portions of a call center's data operations in discrete modules. As shown in FIG. 18, once a sales queue 1810 call flow route has been programmed with its respective component 1815, a different component can be programmed for a support queue and its component 1817. These modules may be configured to interact across flow routes or have distinct process for handling incoming call data as shown in FIGS. 18 and 19. In this way, when a caller inputs a selection such as “1” or “2” as a call input 1910, 1920, the components may have respective “assignment” and “dial” protocols as shown.


Embodiments of this disclosure allow for the graphical programming call router to refer to outside resources according to attributes set up on a computerized program according to FIG. 23A and FIG. 23B, including other databases, servers, cloud-based data storage and the like to retrieve information about incoming data and anticipate how to best handle the same.


Using data dips and working with variables is shown, for example in FIG. 12 as variable drop down items 1210. This disclosure refers to a “data dip” as a non-limiting term by which the systems of this disclosure access information across other networks and other storage devices that are external to the call center software.


As shown in numerous figures, the drop-down menus of this disclosure include protocols for establishing variables. Variables are programming values that can change according to either conditional statement program flows or by access to real time dynamic data stored in external sources (cloud servers, external databases and the like). The process of programming variables is a powerful tool of this disclosure by allowing incoming communication data to be processed to collect data points and use them to make routing decisions. The data points can include the above noted context data and meta data. Some components, such as 2100 in FIG. 21, can expose data points that can be used to initialize or update certain flow variables 2130. For example, an inbound voice component exposes the data points such as but not limited to contact details, source and dialed phone numbers, and the Standard IVR component collects the keys pressed by the caller and populates the “selection” variable.


Here are some examples for using variables:

    • Use a variable in a Play Audio component to play a personalized greeting message for a caller. For example, one can configure the waiting music that a customer listens to when they call, so that the caller experience can be consistent in brand management or take advantage of the time customers are waiting to promote goods or services.
    • Use the result of a data dip in in an external resource such as Salesforce to route VIP customers to an assignment component with a higher priority.
    • You can also configure a set of actions to be triggered during a flow execution according to time rules, or any other conditions, to automate communications to be sent to customers during or after a call.


      Variables can be initialized from the initial step as shown in FIG. 31 or via a data dip in your CRM system.


Organizations that utilize call centers and other kinds of complex automated structures often have information storage facilities tchat are managed off site or even by third party data processing vendors (e.g., cloud based data storage offered by vendors such as but not limited to SalesForce). These organizations may use the embodiments herein to manage incoming communications data with the embodiments of this disclosure to create a simple flow to ask users to enter a case number to route sales-related calls directly to their third party vendor, such as a Salesforce case owner. The third party vendor may return useful data that would not necessarily be readily accessible on site at the user's location. This is shown in FIGS. 32 and 34 at component blocks 3200, 3300, 3400, 3410, 3430.


To use data dips with the graphical programming functions described herein, the user would need to add a variable to the “source_phone” data point and follow these non-limiting, exemplary steps:

    • Select the start_step component 1700, 1800, 1900.
    • Under the Preferences tab, click on the drop-down next to “source_phone”.
    • Hit Add New Variable.
    • Type in a name for the variable* (the example here is named “contact_phone”).
    • Click on Add variable 2130.
    • Click the Sales queue component and select its Exits tab.
    • Expand the Send to drop-down menu for the No answer component and select Add new step
    • Select Input IVR from the Component drop-down menu.


Certain flow components may be programmed to accept individualized identifying information for call data, and a component may be programmed for a caller to enter such identifying information through voice or typed in data as shown in FIG. 22 at 2250. Typed data may be allowed in a particular format by programming a certain route 2600 with a protocol for key inputs, e.g., timing out if the keying party takes too long to complete the input as shown at the key input dropdown 2610. The keyed input may be subject to text to speech translation at 2700 of FIG. 27.

    • Type in a name for this exit step: e.g., “Ask for case number”.
    • Press Add Step.
    • Scroll down to the “Maximum waiting time reached” section in the Sales queue component.
    • Expand the Send to drop-down menu and select Ask for case number.
    • Scroll down to the “No match found” section.
    • Expand the Send to dropdown menu and select Voicemail.
    • Save your changes.


Additional steps may include:

    • Click the newly created Ask for case number component and select its Preferences tab.
    • Make sure Text to speech is selected and on the Language of audio output dropdown menu, select the language to be used for the new greeting (we've selected “English, UK” for our example).
    • On the Text to speech box, type in the message you want your customers to hear when they reach this Sales IVR option (we've used: “If you know your case number please enter it now, then press pound”).
    • Scroll down to “Keypress inputs” and select the Maximum number of digits that compose the case numbers (we've used “8” for our example).
    • Select the Ending keypress users should use after typing in the case number (we'll be using the “#” key).
    • Scroll down to “Variables”. Expand the digits drop-down menu and select Add new variable.
    • Type in a name for the new variable (we've named ours “case 1”) and hit the Add variable button.
    • Save changes.
    • Now select the Exits tab for the Ask for case number component.
    • Expand the Send to drop-down menu for the “Ok” section and select Add new step.
    • Select Salesforce data dip from the Component drop-down menu. Type in a name for this exit step: e.g., “Get case owner”.
    • In the “Timeout” section, specify how many seconds the system will wait for the caller's input before directing the call to a different component (or the same if applicable).
    • Save changes.
    • Click the newly created Get case owner component and select its Preferences tab.
    • In the Query field type in or paste your Salesforce Object Query Language (SOQL) query. You can search Salesforce for specific information using SOQL. A query to case object must be done with case under quotation marks eg.: SELECT Id, Owner.Email, CreatedDate FROM “Case” Where . . . .
    • Hit the Retrieve Data button.
    • Three variables will be displayed: “Id”, “Owner.Email”, and “CreatedDate”. For example, “Owner.Email” is a field in Salesforce that refers to the email of the agent who owns the contact, so we will be using it to route the call to said agent. Expand the drop-down menu for the Owner.Email string.
    • Select Add new variable and type in a name for the new variable (we've named ours “case_owner”).*
    • Hit the Add variable button and Save your changes.
    • Now select the Exits tab.
    • Expand the Send to drop-down menu for the “Ok” section and select Add new step.
    • Select Assignment and Dial from the Component drop-down menu.
    • Type in a name for this exit step: e.g., “Route to case owner”.
    • Hit Add Step.
    • Fill out the “No result” and “Error” sections. This is particularly useful in case the number that is calling your company does not exist in your Salesforce account.
    • Save your changes.
    • Now select the Exits tab.
    • Expand the Send to drop-down menu for the “Ok” section and select Add new step.
    • Select Assignment and Dial from the Component drop-down menu.
    • Type in a name for this exit step: e.g., “Route to case owner”.
    • Hit Add Step.
    • Fill out the “No result” and “Error” sections. This is particularly useful in case the number that is calling your company does not exist in your Salesforce account.
    • Save your changes.


In another non-limiting embodiment one may select and configure which attributes will be used for matching a call with an agent.

    • Click the newly created Route to case owner component [40] and select its Preferences tab.
    • Under “Select assignment type” make sure Agents is selected.
    • Click the Variables in the flow context option and expand its drop-down list.
    • Tick the boxes next to the variable(s) you want to use for matching the call with an agent: in this case, the case owner.
    • Fill out the remaining sections in the Route to case owner component (the Variables section is the only one that is not mandatory), including the ones on the Exits tab.
    • Save changes.


Some data points collected in the flow context can also be shared with the interaction context and be displayed in the agent's call bar.


To enable this, simply follow these three extra steps:






    • Click the “Manage Context” option { } on the left [45].

    • Tick the boxes next to the string values to be displayed on the agent's Callbar [46].

    • Save your changes.





The system is configured for users to enter Preferences for various features, such as but not limited to assignments for Agents to Ring in response to incoming communications data. In this component, you can configure the maximum number of agents that will be called simultaneously.


Status of Agents

    • Only Available: If all agents are “Away” or “Offline” at the moment, the call will immediately go through the “No Match” exit.


      If all agents are “Busy”, the system will wait the Maximum Waiting Time for any agent to become “Available” instead of going through the “No Match” exit.


      If any agent is “Available” but rejects or doesn't answer the call, the call goes through the “No answer” exit.
    • Consider Any Status: When there are no “Available” agents, the component will wait the Maximum Waiting Time for any agent to become “Available” (including the ones “Away” or “Offline”) instead of exiting through a “No Match”.


      If any agent is “Available” but rejects or doesn't answer the call, the call goes through the “No answer” exit.


Assignment Strategy

    • Number of Agents: Type in the maximum number of agents that will be called simultaneously.
    • Exhaust: The system will simultaneously ring the number of agents defined in the “Number of Agents” field. It will only ring that batch of agents once. If no agent takes the call, the system will ring a different batch of agents (only once as well). It will continue to do this until there are no more available agents left or when the timeout 2610 has been reached.
    • Single Attempt: The system will simultaneously ring the number of agents defined in the “Number of Agents” field. It will only ring that batch of agents once.


Conditional Statement


With the Conditional Statement component a user can direct a call to one of several exits. Each exit has its own condition(s). The exits are evaluated in order so the call is directed to the first one whose conditions are met. If no condition is met, the “No Match” exit is taken.


Input IVR


The Input IVR component allows a caller to input data via the dial pad. This can be useful if new data is needed to make better routing decisions or to provide a better service.


Text to Speech 2700


This component allows a user to type in a message that will be converted to audio and played to your customers. It is available in seven languages at least:






    • English (UK or United States)

    • German (Germany)

    • Spanish (Spain)

    • French (France)

    • Italian (Italy)

    • Portuguese (Portugal or Brazil)

    • Russian (Russia)





Time-Based Rules 2800


Define the time-based rules 2820 to allow routing according to time ranges or to any day(s) of the week.


Traffic Splitter 2900


This component enables a user to split incoming calls into routes of your choice by weight ratios 2920.


Assigning a Call to the Case Owner


The graphically programmed call router makes it easy for a user to collect data from third party vendors, cloud based resources, on site and off site servers, and other information repositories and use retrieved data to assign a call to an appropriate agent. A simple way to do this is by first requesting the caller to input their Case ID on the dial pad. Then, through a Data Dip in into a third party vendor's data resources via a network, (e.g., Salesforce) the user will find out which agent owns the case. Lastly, the agent will use the Assignment and Dial (A&D) component to assign the call to that agent.


Please follow these instructions to learn in detail how to assign a call using a data dip for a call flow such as the flow 3000:

    • 1. Add the Standard IVR component to your flow.
    • 2. Open the Standard IVR component, and on the Preferences tab, choose Text to speech as the message type.
    • 3. Select the language you will write your message in.
    • 4. In the “Text to speech” field 3010, type in the message that will be played when the flow reaches the Standard IVR component.
      • Example: “Welcome. Please press 1 if you have a case number. Press 2 if you don't have a case number.”


Assigning a Call to the Same Agent 3300


If a user has a third party vendor information resources, such as but not limited to Salesforce integrated with a graphically programmed call router of this disclosure, a user can easily assign an incoming call to an agent who has previously dealt with the same caller. One of the simplest ways to do this is by matching the phone number the caller is using with the phone number associated with a case in database resources. The caller will then be connected to the agent who owns the case. If there isn't a match, the call can be directed to a general support line, for example.


Please follow these instructions to route a call to the owner of a case in Salesforce based on the phone number of a caller:

    • 1. Open the Inbound Voice component and select the Preferences tab. The Preferences table may be pre-programmed to accept the kind of data entry at hand or may also be used to initialize other variables such as calendar and time of day answering rules as shown in the Preferences screen 2400 of FIG. 24.
    • 2. Click on the drop-down next to “source_phone” and then on Add new variable.
    • 3. Give a name to the variable. It will store the phone number that called your contact center. We've named it “contact_phone”.
    • 4. Select the Exits tab and add the Salesforce data dip component.
    • 5. Open the Salesforce data dip component and paste the following query:
    • 6. Click on Retrieve Data.
    • 7. Click on the Owner_Email drop-down and add a new variable with the name “case_number”. This variable will store data if there is a match between the phone number used to call the contact center and the phone number associated with a case in Salesforce.
    • 8. Open the Exits tab and add the Conditional Statement component under the “Ok” section.
    • 9. Under “No Result” and “Error” add the Assignment and Dial (A&D) component and name it “Route to General”.
    • 10. Open the Conditional Statement component, and select the Exits tab.
    • 11. Use the drop-downs in the first “Exit” to create the following condition:
    • 12. Under “Send to” add a new Assignment and Dial (A&D) component and name it “Route to Owner”.
    • 13. Under “No Match”, direct the call to “Route to General” (A&D component).
    • 14. Open the A&D component named “Route to Owner”.
    • 15. Select Agents as the assignment type.
    • 16. Under “Select how to find agents”, choose Variables in the flow context and select case owner from the list.
    • 17. Complete the configuration of this and the remaining components.
    • 18. Save your flow.
    • 19. From now on, if the phone number calling your contact center exists in a Salesforce case, the call will be routed to the agent who owns the case. If it doesn't exist, the call will be directed to a general support line.


Chained Routing


With the graphically programmed call router of this disclosure, assigning incoming calls to agents/ring groups is as easy as adding and configuring the Assignment and Dial (A&D) component. If a call isn't answered, a user can direct it to different agents/ring groups by adding another A&D component. For example, if a tier-1 support team is unable to answer a call, a user can direct it to a tier-2 support team.


Please follow these instructions to create two or more layers of call assignment:

    • 1. Add the Assignment and Dial (A&D) component to your flow and name it “Support Queue 1”.
    • 2. Open the A&D component, and select the Preferences tab.
    • 3. Choose Ring Groups as the assignment type and select the appropriate ring group from the drop-down. In our example, we've chosen our “Tier 1 Support” ring group.
    • 4. Fill out the remaining fields of the Preferences tab.
    • 5. Select the Exits tab.
    • 6. Add a new A&D component under the “No answer”, “Maximum waiting time reached”, and “No match found” sections. Every time the “Tier 1 Support” ring group is unable to answer a call, it will be directed to this new component.
    • 7. Name the component “Support Queue 2” 3500.
    • 8. Open “Support Queue 2”, and select the Preferences tab.
    • 9. Choose Ring Groups as the assignment type and select your corresponding “Tier 2 Support” ring group.
    • 10. Fill out the remaining fields of the Preferences tab.
    • 11. Select the Exits tab.
    • 12. Add the appropriate components in case your “Tier 2 Support” is unable to answer the call. In our example, we will route the call to the Play Audio component in all three sections. This way we apologize to the caller for not being able to answer the call and tell them they can leave a voicemail.
    • 13. Open the Play Audio component and type or paste your message. Example: “All of our agents are currently assisting other callers. Please call again later or leave a message after the beep.”
    • 14. Select the Exits tab and add the Voicemail component.
    • 15. Complete the configuration of the Voicemail component or any other incomplete component you may have.
    • 16. Save your flow.


      From now on, if a “Tier 1 Support” ring group does not answer a call, it will be routed to the “Tier 2 Support” ring group. And if they are unable to answer the call as well, it will be directed to Voicemail.


Prioritizing Low CSATs


If an organization uses Salesforce and wants to prioritize incoming calls according to the Customer Satisfaction Score (CSAT) 3700 of a caller in Talkdesk, a programmer can do that through the use of Variables. For example, if a customer has a CSAT lower than 5, you can prioritize their call and/or assign it to more experienced agents.


Please follow these instructions to prioritize calls according to the CSAT of a caller:

    • 1. Open the Inbound Voice component and select the Preferences tab.
    • 2. Click on the drop-down next to “source_phone” and then on Add new variable.
    • 3. Give a name to the variable. It will store the phone number that called your contact center. It will be used to check if in Salesforce the number is associated with a specific CSAT.
    • 4. Select the Exits tab and add the Salesforce data dip component.
    • 5. Open the Salesforce data dip component and paste the following query:
    • 6. Click on Retrieve Data.
    • 7. Click on the CSAT_SCORE_c drop-down, and add a new variable with the name “csat_score”. This variable will store data if there is a match between the CSAT and the phone number.
    • 8. Open the Exits tab and add the same Conditional Statement component to all three Exits.
    • 9. Open the Conditional Statement component, and select the Exits tab.
    • 10. Use the drop-downs in the first “Exit” to create the following condition:
    • 11. Name the Exit “High Priority” and under “Send to” add an Assignment and Dial (A&D) component. We've named it “Premium Line” 3800 because we want to prioritize calls from customers with low CSATs.
    • 12. Under “No Match”, add a new A&D component. We've named it “Regular Line” 3810.
    • 13. Open “Premium Line” (A&D component) and select the Preferences tab.
    • 14. Scroll down to the “Priority” section, and choose “List of Priorities”.
    • 15. Since we want to prioritize these calls, select “1” for top priority.
    • 16. Fill out all the remaining fields in both tabs.
    • 17. Open “Regular Line”, scroll down to the “Priority” section, and choose “List of Priorities”.
    • 18. In the “Priority” section, select any number except 1 so that this A&D does not have the same priority has the A&D for callers with a low CSAT.
    • 19. Fill out all the remaining fields in both tabs and remember to save your flow when you are finished.


      From now on, if calls coming through the two A&D components you configured end up in the same queue (directed to the same agents or ring groups), the “Premium Line” calls will be handled first.



FIGS. 39-40 illustrate Routing with the EWT Component


The graphically programmed call router enables a user to route a call based on the calculation of the Estimated Waiting Time (EWT) component. This is particularly useful if callers have to wait a long time before being connected to an agent of a particular ring group. For instance, if the EWT is more than 15 minutes, a user can send callers directly to Voicemail or to Callback. Please follow these instructions to use the EWT component to route a call:

    • 1. Add the EWT component to your flow.
    • 2. Open the EWT component, and select the Preferences tab.
    • 3. Select the ring group for which the estimate will be given.
    • 4. Add and name the variable that will store the calculated EWT. We've named ours “ewt_1”.
    • 5. Select the Exits tab.
    • 6. Click on the drop-down under “Successful exit” and select Add new step.
    • 7. Select the Conditional Statement component and give it a name.
    • 8. Under “Indeterminate exit”, choose where to direct the call in cases where the EWT cannot be calculated. We've selected the Assignment and Dial (A&D) component.
    • 9. Open the Conditional Statement component, and select the Exits tab.
    • 10. Under “Custom Exits”, select “ewt_1” in the first drop-down, next select “Greater or Equal to”, and in the last drop-down click on Add custom value and insert the time in seconds. We've inserted “900” seconds (equal to 15 minutes).
    • 11. Name the Exit.
    • 12. Click on Send to and choose where to direct the call if the EWT is 900 seconds or more. We've selected the Callback component.
    • 13. Under “No Match”, select where to direct the call in cases where the calculated EWT is not covered by the condition(s) you have set. In our example, this exit will be taken if the EWT is less than 15 minutes, so we are routing the call directly to the “Support queue” (A&D).
    • 14. Lastly, complete the configuration of the Callback and A&D components that you have created.
      • In the A&D case, you must use the same ring group that you used in the EWT component (step 3), otherwise, the EWT could be significantly different from the time the caller will effectively wait to be connected to an agent.


Updates to the graphical programming also include extensive reporting features as shown in FIG. 45, allowing for users and programmers to save reports 4500 and share with other users immediately by email or saving to a common server location. The reports include numerous analytics 4600.


The visual programming for call routing is amenable to numerous kinds of access across all computer types as shown in FIGS. 47 and 48.


The visual call routing mapping of this disclosure includes programming routes with drop down selections for flow component operation with route link identifiers visible thereon.


In other embodiments, Pan and Zoom features are available to analyze a visible call flow route with point and click operation to check an individual component.


This disclosure enables all kinds of web based call management in which the flow-based routing operational layer is independent of other telecommunications channels and IP addresses connected to the system. Instead of routing calls into a browser, certain embodiments keep the call bar active across all channels of incoming calls. The call bar therefore is active on an individual agent's hard drive or designated section of a cloud server, and the call bar can remain in place no matter what other tabs have numerous telecommunications activities thereon. In other words, this disclosure encompasses the ability to leave a call bar in place on an agent's screen regardless of other website operations on different channels.


Context data of incoming calls may be programmed in multiple components with data dips to outside information databases, and context is accessible via the call bar which can remain present on agent's screen regardless of other web operations in place on that screen. Multiple device modes still accommodate visible call bar at all times, and the context can include any object information about the caller, including name, geographic location, telephone number, mapping functions and the like.


The embodiments herein are described as managing context collection with variable definitions in call flow components. Intelligent routing of calls to particular agents or groups of agents may be accomplished by data dips based on content of flow component data and variable completion. Right now, each variable component is allowed only one data dip, but the variable can collect multiple fields from that record. The system currently requires different data dip for each record searched in an out-of-system database, but there will be developments in that regard.


The drop down menus are tied directly to the visibly present routes between routing components, and pre-programmed call assignment strategies can be viewed in each component. The pre-programmed call assignment strategies may make use of conditional statements in flow components to define which exit and the next step in a route.


The embodiments herein take advantage of traffic splitting to preferred balance of calls directed to different centers. Traffic splitting based on geographic location of call origin, based on call header data or area code can be combined with or vary the above noted weight ratios that determine which calls go to certain agents or groups of agents. Traffic splitting with weighting allows an administrator to study the reports of FIG. 45 to gauge most efficient call flow routes. For example, tracking a case history for an incoming call by telephone number or other identifying telecommunication data can server as a data point to address how to handle a certain call. Call prioritization with data dips and alert functions can also be available for agents to identify VIP calls. Call prioritization with in-house CSAT scores entered by agents also allows they system to make intelligent routing choices.


The system described herein is further characterized in part by the use of flow variables that can be defined within components to allow incoming caller to enter information across multiple channels—“omni channel data collection.” This kind of multi-channel call flow routing and tracking allows for additional options such as intelligent reconnect for a dropped call so that customer who calls right back gets the same agent.


In one commercial embodiment of the system, tentatively known by example as a data explorer reporting system, can provide administrative reports across multiple channels of information collection. The report and data explorer is a customizable landing page for each user to see reporting functions of interest. This data explorer may include enhanced filtering capabilities for more granular data on each call. For example, there may be enhanced visual identification of efficiency and routing performance with multiple data types displayed directly on the screen of the visual programming call flow routes. The data explorer provides click and email report templates to users with access.


The data gathering and reporting system enables certain features such as an agent scoring module that is automatically scoring agents based on objective data gathered by the system, such as wait times, successful call completions, number of rings to answer, and the like. The agent score allows for ranking of agents according to context data stored for calls so that matching context to the best agents is possible.


The system may also be programmed to take advantage of data collection after a call has been completed, such as by compiling net promoter scores that allow callers to grade the agents and the customer experience on factors that set forth the call experience. This kind of net promoter scores for the call experiences may be gathered by channels other than the original channel a customer used to contact a data center. This kind of cross-channel data collection allows for more intensive studies of caller sentiment over the course of a call. The net promoter score can be based on objective data collected during a call, such as wait time, hold time and perceived sentiment from artificial intelligence that listen to an ongoing call. Accordingly, artificially intelligent bot operations may listen in on a call and develop a sentiment journey score by the words used and the volume or tone of a caller's input. Tracking a sentiment across a call can also give insight into areas in which agents were weak in maintaining a positive user experience.


A user's experience may be polled after a call or even during a call either on the same channel as originally used or via a simultaneously accessed parallel channel. For example, a caller may use voice data to enter a call center over a telecommunications data line, but while the call is proceeding, a user may be willing to also communicate via other channels such as simultaneous chatting or texting to give feedback on the sentiment journey for a particular call. A system according to this disclosure may ask a customer, during a call experience, or after the call is complete, to provide weights to which parts of the call are or were the most important and to rate the agent on those weighted criteria. The customer journey score and sentiment journey score can be weighted according to linear and nonlinear weighting functions across multiple criteria. This kind of weighting can give appropriate consideration to objective features of a call (time of day, length, wait times, and topic categories) but also correlate these weights to sales and success for better reporting.


Certain comprehensive software techniques are implemented to make the system more efficient behind the scenes. For example, improved performance in voice to text and text to voice can be implemented by enhanced use of punctuation (i.e., a comma after text conversion allows for slight pause in spoken version of numbers entered). Enhanced flow configuration can be available by making the exit name of a component consumable by another flow component as a variable function. Enhanced visual representation of flow links and routes may be implemented in ways such as showing telephone number on top level graphic for the destination phone number. Enhanced customer experience by seamless hold music over transfers (the music or advertisement loop starts where last left off if call is transferred to another hold situation). The call flow features of this disclosure are also adaptable for routing all kinds of omni-channel data from all channels (voice, text, keyboard, audio, video, etc.) and the system will adapt all of the visual flow routing features to omni-channel data, even for “social media listening.” The omni-channel options may even allow for switching of channels within a single call for the best customer experience.


The software embodiments described herein are appropriate for providing in functional sets that may be mixed and matched for the nature and complexity of the call center at hand. In fact, for very simple installations, the basics of the call center may be provided in a transportable and downloadable call center phone application that can be resident on a mobile device like any other “app.” The user merely browses, clicks, installs, and uses. This app could be integrated with other software packages on each mobile device in an network at the option of the user.


Other installations may choose more of the blocks of software but not the “whole package” that may be available in a cloud based call center operation. Subsets of the functions available in this disclosure may be available in a web based environment because all of the functions described herein are separable so that they can be mixed and matched as necessary. In fact, a basic web based call center may be available for set up in five minutes or less because a user can select the modular functions shown in this disclosure as having independently available drop down sets, pick the number of phones or channels that should answer incoming data connections, and then simply select plug ins that will work on a browser and are available from a cloud based storage server.


The disclosure of these embodiments can be described as an intelligent call flow routing manager. In an intelligent call routing environment, the system can show an administrator (whether human or computerized artificial intelligence) and determine the usage rate of certain flow routes to and from various components. Alerts can be set up so that if certain criteria exceed a threshold, then a re-routing operation goes into effect, such as a re-routing by a back up flow route that has been previously planned. The back up flow route can also be triggered to operate simultaneously with the main flow package during peak times. In this way, over time, the system can learn where likely choke points are in a flow route. By coordinating flow weights along a route, volume across a route, choke points, and the like along with customer sentiment along a sentiment journey score, the most effective call routing can be implemented.


This disclosure has one non-limiting goal of building effective networks of call flow routes, data networks, and human agent interaction with customers, along with artificially intelligent assistants that also interact with the customers. The system may be either language based so that certain language inputs lead to actions and flows, or the system may be language agnostic in that a language processor can translate options and inputs from one language to another. A poly-linguistic portion of a flow may translate the incoming data to its most efficiently used form—foreign and domestic spoken languages for flows to humans and digital numeric languages for flows to other computers. In this way, incoming and outgoing data flows in a customer call center may be equally conversant with human agents, chat bots, IVRs, CRM data dips, and the like.

Claims
  • 1. A method for programming an interactive voice response (IVR) system for routing customer communications, the method comprising: presenting a series of drop-down menus indicating options for transmitting incoming customer communications within an organization, the options representing routing actions for the customer communications;receiving selection of one or more of the options based on user interaction with at least one of the drop down menus, the options including at least one of inputs, outputs and routing conditions;defining a communication routing component based on the routing actions associated with options selected by the user, whereby the communication routing component is modular and can be combined with other communication routing components to create a communication flow route; andpresenting, on a computerized display a graphical representation of a communication flow route including a graphical representation of the communication routing component connected to graphical representations of the other communication routing components in the communication flow route, wherein selected options for each component are displayed on the corresponding graphical representation.
  • 2. The method of claim 1, wherein the options include at least one of agents, ring groups, maximum number of agents to notify, maximum waiting time, interactive voice response, hours, greetings, time zones and recording enablement.
  • 3. The method of claim 1 wherein the options include rule generation options whereby a communication routing rule based one or more of the conditions can be assigned to the communication routing component by election of one or more rule generation options.
  • 4. The method of claim 3, wherein the options include protocols for establishing call flow variables that change in accordance with the one or more conditions.
  • 5. The method of claim 1, wherein the options include data retrieval options whereby the communication routing component can retrieve external data from external resources according to attributes.
  • 6. The method of claim 5, wherein the options include protocols for establishing call flow variables that change in accordance with the external data.
  • 7. The method of claim 1, wherein the options include call protocols for establishing call flow variables that track information across multiple communication channels and permit the communications routing component to switch a communication from a first communication channel to a second communication channel that is different from the first communication channel.
  • 8. The method of claim 1, wherein the options include call protocols for establishing call flow variables that track information across multiple communication channels and permit the communication routing component to provide reconnect to an agent after a communication with the agent was dropped.
  • 9. The method of claim 1, wherein activity in the call flow is monitored across multiple communication channels including a communication channel used by a customer to contact an agent and other communication channels.
  • 10. The method of claim 9, wherein the monitored data is processed and provided to a user in a graphical manner.
  • 11. An apparatus for programming an interactive voice response (IVR) system for routing customer communications, the apparatus comprising: at least one computer hardware processor; andat least one memory device having instructions stored thereon which, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to carry out the method of: presenting a series of drop-down menus indicating options for transmitting incoming customer communications within an organization, the options representing routing actions for the customer communications;receiving selection of one or more of the options based on user interaction with at least one of the drop down menus, the options including at least one of inputs, outputs and routing conditions;defining a communication routing component based on the routing actions associated with options selected by the user, whereby the communication routing component is modular and can be combined with other communication routing components to create a communication flow route; andpresenting, on a computerized display a graphical representation of a communication flow route including a graphical representation of the communication routing component connected to graphical representations of the other communication routing components in the communication flow route, wherein selected options for each component are displayed on the corresponding graphical representation.
  • 12. The apparatus of claim 11, wherein the options include at least one of agents, ring groups, maximum number of agents to notify, maximum waiting time, interactive voice response, hours, greetings, time zones and recording enablement.
  • 13. The apparatus of claim 11 wherein the options include rule generation options whereby a communication routing rule based one or more of the conditions can be assigned to the communication routing component by election of one or more rule generation options.
  • 14. The apparatus of claim 13, wherein the options include protocols for establishing call flow variables that change in accordance with the one or more conditions.
  • 15. The apparatus of claim 11, wherein the options include data retrieval options whereby the communication routing component can retrieve external data from external resources according to attributes.
  • 16. The apparatus of claim 15, wherein the options include protocols for establishing call flow variables that change in accordance with the external data.
  • 17. The apparatus of claim 11, wherein the options include call protocols for establishing call flow variables that track information across multiple communication channels and permit the communications routing component to switch a communication from a first communication channel to a second communication channel that is different from the first communication channel.
  • 18. The apparatus of claim 11, wherein the options include call protocols for establishing call flow variables that track information across multiple communication channels and permit the communication routing component to provide reconnect to an agent after a communication with the agent was dropped.
  • 19. The apparatus of claim 11, wherein activity in the call flow is monitored across multiple communication channels including a communication channel used by a customer to contact an agent and other communication channels.
  • 20. The apparatus of claim 9, wherein the monitored data is processed and provided to a user in a graphical manner.
  • 21. Non-transient computer readable media having instructions stored thereon which, when executed by at least one computer hardware processor, cause the at least one computer hardware processor to carry out the method of: presenting a series of drop-down menus indicating options for transmitting incoming customer communications within an organization, the options representing routing actions for the customer communications;receiving selection of one or more of the options based on user interaction with at least one of the drop down menus, the options including at least one of inputs, outputs and routing conditions;defining a communication routing component based on the routing actions associated with options selected by the user, whereby the communication routing component is modular and can be combined with other communication routing components to create a communication flow route; andpresenting, on a computerized display a graphical representation of a communication flow route including a graphical representation of the communication routing component connected to graphical representations of the other communication routing components in the communication flow route, wherein selected options for each component are displayed on the corresponding graphical representation.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. application Ser. No. 16/670,952, filed on Oct. 31, 2019, which is hereby incorporated by reference in its entirety.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH

None.

US Referenced Citations (351)
Number Name Date Kind
5862203 Wulkan et al. Jan 1999 A
6100891 Thorne Aug 2000 A
6128415 Hultgren et al. Oct 2000 A
6163607 Bogart et al. Dec 2000 A
6411687 Bohacek et al. Jun 2002 B1
6587831 O'Brien Jul 2003 B1
6639982 Stuart et al. Oct 2003 B1
6754333 Flockhart et al. Jun 2004 B1
6970829 Leamon Nov 2005 B1
7023979 Wu et al. Apr 2006 B1
7076047 Brennan et al. Jul 2006 B1
7110525 Heller et al. Sep 2006 B1
7209475 Shaffer et al. Apr 2007 B1
7274787 Schoeneberger Sep 2007 B1
7372952 Wu et al. May 2008 B1
7409336 Pak et al. Aug 2008 B2
7466334 Baba Dec 2008 B1
7537154 Ramachandran May 2009 B2
7634422 Andre et al. Dec 2009 B1
7672845 Beranek et al. Mar 2010 B2
7676034 Wu et al. Mar 2010 B1
7698163 Reed et al. Apr 2010 B2
7752159 Nelken et al. Jul 2010 B2
7774790 Jirman et al. Aug 2010 B1
7788286 Nourbakhsh et al. Aug 2010 B2
7853006 Fama et al. Dec 2010 B1
7864946 Fama et al. Jan 2011 B1
7869998 Di Fabbrizio et al. Jan 2011 B1
7949123 Flockhart et al. May 2011 B1
7953219 Freedman et al. May 2011 B2
7966369 Briere et al. Jun 2011 B1
8135125 Sidhu et al. Mar 2012 B2
8160233 Keren et al. Apr 2012 B2
8243896 Rae Aug 2012 B1
8300798 Wu et al. Oct 2012 B1
8370155 Byrd et al. Feb 2013 B2
8391466 Noble, Jr. Mar 2013 B1
8594306 Laredo et al. Nov 2013 B2
8635226 Chang et al. Jan 2014 B2
8671020 Morrison et al. Mar 2014 B1
8688557 Rose et al. Apr 2014 B2
8861691 De et al. Oct 2014 B1
8898219 Ricci Nov 2014 B2
8898290 Siemsgluess Nov 2014 B2
8909693 Frissora et al. Dec 2014 B2
8935172 Noble, Jr. et al. Jan 2015 B1
9026431 Moreno Mengibar et al. May 2015 B1
9082094 Etter et al. Jul 2015 B1
9117450 Cook et al. Aug 2015 B2
9123009 Etter et al. Sep 2015 B1
9137366 Medina et al. Sep 2015 B2
9152737 Micali et al. Oct 2015 B1
9160853 Daddi et al. Oct 2015 B1
9185222 Govindarajan et al. Nov 2015 B1
9237232 Williams et al. Jan 2016 B1
9286413 Coates et al. Mar 2016 B1
9300801 Warford et al. Mar 2016 B1
9319524 Webster Apr 2016 B1
9386152 Riahi et al. Jul 2016 B2
9426291 Ouimette et al. Aug 2016 B1
9514463 Grigg et al. Dec 2016 B2
9609131 Placiakis et al. Mar 2017 B2
9674361 Ristock et al. Jun 2017 B2
9679265 Schwartz et al. Jun 2017 B1
9787840 Neuer, III et al. Oct 2017 B1
9823949 Ristock et al. Nov 2017 B2
9883037 Lewis et al. Jan 2018 B1
9930181 Moran et al. Mar 2018 B1
RE46852 Petrovykh May 2018 E
9998596 Dunmire et al. Jun 2018 B1
10009465 Fang et al. Jun 2018 B1
10115065 Fama et al. Oct 2018 B1
10154138 Te Booij et al. Dec 2018 B2
10235999 Naughton et al. Mar 2019 B1
10242019 Shan et al. Mar 2019 B1
10331402 Spector et al. Jun 2019 B1
10380246 Clark et al. Aug 2019 B2
10440180 Jayapalan et al. Oct 2019 B1
10445742 Prendki et al. Oct 2019 B2
10460728 Anbazhagan et al. Oct 2019 B2
10497361 Rule et al. Dec 2019 B1
10554590 Cabrera-Gordon et al. Feb 2020 B2
10554817 Sullivan et al. Feb 2020 B1
10601992 Dwyer et al. Mar 2020 B2
10636425 Naughton et al. Apr 2020 B2
10718031 Wu et al. Jul 2020 B1
10742806 Kotak Aug 2020 B2
10783568 Chandra et al. Sep 2020 B1
10803865 Naughton et al. Oct 2020 B2
10812654 Wozniak Oct 2020 B2
10812655 Adibi et al. Oct 2020 B1
10827069 Paiva Nov 2020 B1
10827071 Adibi et al. Nov 2020 B1
10839432 Konig et al. Nov 2020 B1
10841425 Langley et al. Nov 2020 B1
10855844 Smith et al. Dec 2020 B1
10861031 Sullivan et al. Dec 2020 B2
10943589 Naughton et al. Mar 2021 B2
11089158 Holland Aug 2021 B1
20010008999 Bull Jul 2001 A1
20020029272 Weller Mar 2002 A1
20020034304 Yang Mar 2002 A1
20020038420 Collins et al. Mar 2002 A1
20020143599 Nourbakhsh et al. Oct 2002 A1
20020169664 Walker et al. Nov 2002 A1
20020174182 Wilkinson et al. Nov 2002 A1
20030007621 Graves et al. Jan 2003 A1
20030009520 Nourbakhsh et al. Jan 2003 A1
20030032409 Hutcheson et al. Feb 2003 A1
20030061068 Curtis Mar 2003 A1
20030126136 Omoigui Jul 2003 A1
20030167167 Gong Sep 2003 A1
20040044585 Franco Mar 2004 A1
20040044664 Cash et al. Mar 2004 A1
20040078257 Schweitzer et al. Apr 2004 A1
20040098274 Dezonno et al. May 2004 A1
20040103051 Reed et al. May 2004 A1
20040162753 Vogel et al. Aug 2004 A1
20050033957 Enokida Feb 2005 A1
20050043986 Mcconnell et al. Feb 2005 A1
20050063365 Mathew et al. Mar 2005 A1
20050071178 Beckstrom et al. Mar 2005 A1
20050226220 Kilkki et al. Oct 2005 A1
20050271198 Chin et al. Dec 2005 A1
20060153357 Acharya et al. Jul 2006 A1
20060166669 Claussen Jul 2006 A1
20060188086 Busey et al. Aug 2006 A1
20060215831 Knott et al. Sep 2006 A1
20060229931 Fligler et al. Oct 2006 A1
20060277108 Altberg et al. Dec 2006 A1
20070016565 Evans et al. Jan 2007 A1
20070036334 Culbertson et al. Feb 2007 A1
20070061183 Seetharaman et al. Mar 2007 A1
20070078725 Koszewski et al. Apr 2007 A1
20070121902 Stoica et al. May 2007 A1
20070136284 Cobb et al. Jun 2007 A1
20070157021 Whitfield Jul 2007 A1
20070160188 Sharpe et al. Jul 2007 A1
20070162296 Altberg et al. Jul 2007 A1
20070198329 Lyerly et al. Aug 2007 A1
20070201636 Gilbert et al. Aug 2007 A1
20070263810 Sterns Nov 2007 A1
20070265990 Sidhu et al. Nov 2007 A1
20080002823 Fama et al. Jan 2008 A1
20080043976 Maximo et al. Feb 2008 A1
20080095355 Mahalaha et al. Apr 2008 A1
20080126957 Tysowski et al. May 2008 A1
20080255944 Shah et al. Oct 2008 A1
20090018996 Hunt et al. Jan 2009 A1
20090080411 Lyman Mar 2009 A1
20090110182 Knight, Jr. et al. Apr 2009 A1
20090171164 Jung et al. Jul 2009 A1
20090228264 Williams et al. Sep 2009 A1
20090285384 Pollock et al. Nov 2009 A1
20090306981 Cromack et al. Dec 2009 A1
20090307052 Mankani et al. Dec 2009 A1
20100106568 Grimes Apr 2010 A1
20100114646 Mcilwain et al. May 2010 A1
20100189250 Williams et al. Jul 2010 A1
20100250196 Lawler et al. Sep 2010 A1
20100266115 Fedorov et al. Oct 2010 A1
20100266116 Stolyar et al. Oct 2010 A1
20100287131 Church Nov 2010 A1
20110022461 Simeonov Jan 2011 A1
20110071870 Gong Mar 2011 A1
20110116618 Zyarko et al. May 2011 A1
20110125697 Erhart et al. May 2011 A1
20110216897 Laredo et al. Sep 2011 A1
20110264581 Clyne Oct 2011 A1
20110267985 Wilkinson et al. Nov 2011 A1
20110288897 Erhart et al. Nov 2011 A1
20120051537 Chishti et al. Mar 2012 A1
20120084217 Kohler et al. Apr 2012 A1
20120087486 Guerrero et al. Apr 2012 A1
20120109830 Vogel May 2012 A1
20120257116 Hendrickson et al. Oct 2012 A1
20120265587 Kinkead Oct 2012 A1
20120290373 Ferzacca et al. Nov 2012 A1
20120321073 Flockhart et al. Dec 2012 A1
20130073361 Silver Mar 2013 A1
20130085785 Rogers et al. Apr 2013 A1
20130124361 Bryson May 2013 A1
20130136252 Kosiba et al. May 2013 A1
20130223608 Flockhart et al. Aug 2013 A1
20130236002 Jennings et al. Sep 2013 A1
20130304581 Soroca et al. Nov 2013 A1
20140012603 Scanlon et al. Jan 2014 A1
20140039944 Humbert et al. Feb 2014 A1
20140099916 Mallikarjunan et al. Apr 2014 A1
20140101261 Wu et al. Apr 2014 A1
20140136346 Teso May 2014 A1
20140140494 Zhakov May 2014 A1
20140143018 Nies et al. May 2014 A1
20140143249 Cazzanti et al. May 2014 A1
20140177819 Vymenets et al. Jun 2014 A1
20140200988 Kassko et al. Jul 2014 A1
20140254790 Shaffer et al. Sep 2014 A1
20140257908 Steiner et al. Sep 2014 A1
20140270138 Uba et al. Sep 2014 A1
20140270142 Bischoff et al. Sep 2014 A1
20140278605 Borucki et al. Sep 2014 A1
20140278649 Guerinik et al. Sep 2014 A1
20140279045 Shottan et al. Sep 2014 A1
20140335480 Asenjo et al. Nov 2014 A1
20140372171 Martin et al. Dec 2014 A1
20140379424 Shroff Dec 2014 A1
20150012278 Metcalf Jan 2015 A1
20150023484 Ni et al. Jan 2015 A1
20150030152 Waxman et al. Jan 2015 A1
20150066632 Gonzalez et al. Mar 2015 A1
20150100473 Manoharan et al. Apr 2015 A1
20150127441 Feldman May 2015 A1
20150127677 Wang et al. May 2015 A1
20150172463 Quast et al. Jun 2015 A1
20150213454 Vedula Jul 2015 A1
20150262188 Franco Sep 2015 A1
20150262208 Bjontegard et al. Sep 2015 A1
20150281445 Kumar et al. Oct 2015 A1
20150281449 Milstein et al. Oct 2015 A1
20150295788 Witzman et al. Oct 2015 A1
20150296081 Jeong Oct 2015 A1
20150339446 Sperling et al. Nov 2015 A1
20150339620 Esposito et al. Nov 2015 A1
20150339769 Deoliveira et al. Nov 2015 A1
20150347900 Bell et al. Dec 2015 A1
20150350429 Kumar et al. Dec 2015 A1
20150350443 Kumar Dec 2015 A1
20160026629 Clifford et al. Jan 2016 A1
20160034260 Ristock Feb 2016 A1
20160042749 Hirose Feb 2016 A1
20160055499 Hawkins et al. Feb 2016 A1
20160085891 Ter et al. Mar 2016 A1
20160112867 Martinez Apr 2016 A1
20160124937 Elhaddad May 2016 A1
20160125456 Wu et al. May 2016 A1
20160134624 Jacobson et al. May 2016 A1
20160140627 Moreau et al. May 2016 A1
20160150086 Pickford May 2016 A1
20160155080 Gnanasambandam et al. Jun 2016 A1
20160173692 Wicaksono et al. Jun 2016 A1
20160180381 Kaiser et al. Jun 2016 A1
20160191699 Agrawal et al. Jun 2016 A1
20160191709 Pullamplavil et al. Jun 2016 A1
20160191712 Bouzid et al. Jun 2016 A1
20160300573 Carbune et al. Oct 2016 A1
20160335576 Peng Nov 2016 A1
20160358611 Abel Dec 2016 A1
20160378569 Ristock et al. Dec 2016 A1
20160381222 Ristock et al. Dec 2016 A1
20170006135 Siebel et al. Jan 2017 A1
20170006161 Riahi et al. Jan 2017 A9
20170024762 Swaminathan Jan 2017 A1
20170032436 Disalvo et al. Feb 2017 A1
20170068436 Auer et al. Mar 2017 A1
20170068854 Markiewicz et al. Mar 2017 A1
20170098197 Yu et al. Apr 2017 A1
20170104875 Im et al. Apr 2017 A1
20170111505 Mcgann et al. Apr 2017 A1
20170148073 Nomula et al. May 2017 A1
20170155766 Kumar Jun 2017 A1
20170207916 Luce et al. Jul 2017 A1
20170316386 Joshi et al. Nov 2017 A1
20170323344 Nigul Nov 2017 A1
20170337578 Chittilappilly et al. Nov 2017 A1
20170344988 Cusden et al. Nov 2017 A1
20180018705 Tognetti Jan 2018 A1
20180032997 Gordon et al. Feb 2018 A1
20180053401 Martin et al. Feb 2018 A1
20180061256 Elchik et al. Mar 2018 A1
20180077250 Prasad et al. Mar 2018 A1
20180121766 Mccord et al. May 2018 A1
20180137555 Clausse et al. May 2018 A1
20180165723 Wright et al. Jun 2018 A1
20180174198 Wilkinson et al. Jun 2018 A1
20180189273 Campos et al. Jul 2018 A1
20180190144 Corelli et al. Jul 2018 A1
20180198917 Ristock et al. Jul 2018 A1
20180260857 Kar et al. Sep 2018 A1
20180286000 Berry et al. Oct 2018 A1
20180293327 Miller et al. Oct 2018 A1
20180293532 Singh et al. Oct 2018 A1
20180349858 Walker et al. Dec 2018 A1
20180361253 Grosso Dec 2018 A1
20180365651 Sreedhara et al. Dec 2018 A1
20180372486 Farniok et al. Dec 2018 A1
20190013017 Kang et al. Jan 2019 A1
20190028587 Unitt et al. Jan 2019 A1
20190042988 Brown et al. Feb 2019 A1
20190108834 Nelson et al. Apr 2019 A1
20190130329 Fama et al. May 2019 A1
20190132443 Munns et al. May 2019 A1
20190147045 Kim May 2019 A1
20190172291 Naseath Jun 2019 A1
20190180095 Ferguson et al. Jun 2019 A1
20190182383 Shaev et al. Jun 2019 A1
20190205389 Tripathi et al. Jul 2019 A1
20190236205 Jia et al. Aug 2019 A1
20190238680 Narayanan et al. Aug 2019 A1
20190287517 Green et al. Sep 2019 A1
20190295027 Dunne et al. Sep 2019 A1
20190306315 Portman et al. Oct 2019 A1
20190335038 Alonso Y Caloca et al. Oct 2019 A1
20190342450 Kulkarni Nov 2019 A1
20190349477 Kotak Nov 2019 A1
20190377789 Jegannathan et al. Dec 2019 A1
20190394333 Jiron et al. Dec 2019 A1
20200007680 Wozniak Jan 2020 A1
20200012697 Fan et al. Jan 2020 A1
20200019893 Lu Jan 2020 A1
20200050996 Generes, Jr. et al. Feb 2020 A1
20200118215 Rao et al. Apr 2020 A1
20200119936 Balasaygun et al. Apr 2020 A1
20200125919 Liu et al. Apr 2020 A1
20200126126 Briancon et al. Apr 2020 A1
20200134492 Copeland Apr 2020 A1
20200134648 Qi et al. Apr 2020 A1
20200175478 Lee et al. Jun 2020 A1
20200193335 Sekhar et al. Jun 2020 A1
20200193983 Choi Jun 2020 A1
20200211120 Wang et al. Jul 2020 A1
20200218766 Yaseen et al. Jul 2020 A1
20200219500 Bender et al. Jul 2020 A1
20200242540 Rosati et al. Jul 2020 A1
20200250557 Kishimoto et al. Aug 2020 A1
20200257996 London Aug 2020 A1
20200280578 Hearty et al. Sep 2020 A1
20200280635 Barinov et al. Sep 2020 A1
20200285936 Sen Sep 2020 A1
20200336567 Dumaine Oct 2020 A1
20200351375 Lepore et al. Nov 2020 A1
20200357026 Liu et al. Nov 2020 A1
20200365148 Ji et al. Nov 2020 A1
20210004536 Adibi et al. Jan 2021 A1
20210005206 Adibi et al. Jan 2021 A1
20210056481 Wicaksono et al. Feb 2021 A1
20210081869 Zeelig et al. Mar 2021 A1
20210081955 Zeelig et al. Mar 2021 A1
20210082417 Zeelig et al. Mar 2021 A1
20210082418 Zeelig et al. Mar 2021 A1
20210084149 Zeelig et al. Mar 2021 A1
20210091996 Mcconnell et al. Mar 2021 A1
20210105361 Bergher et al. Apr 2021 A1
20210125275 Adibi Apr 2021 A1
20210133763 Adibi et al. May 2021 A1
20210133765 Adibi et al. May 2021 A1
20210134282 Adibi et al. May 2021 A1
20210134283 Adibi et al. May 2021 A1
20210134284 Adibi et al. May 2021 A1
20210136204 Adibi et al. May 2021 A1
20210136205 Adibi et al. May 2021 A1
20210136206 Adibi et al. May 2021 A1
Foreign Referenced Citations (4)
Number Date Country
1418 519 May 2004 EP
2006037836 Apr 2006 WO
2012024316 Feb 2012 WO
2015099587 Jul 2015 WO
Non-Patent Literature Citations (14)
Entry
Gaietto, Molly., “What is Customer DNA?”,—NGDATA Product News, Oct. 27, 2015, 10 pages.
Fan et al., “Demystifying Big Data Analytics for Business Intelligence Through the Lens of Marketing Mix”, Big Data Research, vol. 2, Issue 1, Mar. 2015, 16 pages.
An et al,, Towards Automatic Persona Generation Using Social Media Aug. 2016 2016 IEEE 4th International Conference on Future Internet of Things and Cloud Workshops (FiCloudW), 2 pages.
Bean-Mellinger, Barbara., “What Is the Difference Between Marketing and Advertising?”, available on Feb. 12, 2019, retrieved from https://smallbusiness.chron .com/difference-between-marketing-advertising-2504 7 .html, Feb. 12, 2019, 6 pages.
Twin, Alexandra., “Marketing”, URL: https://www.investopedia.com/lerms/m/marketing.asp, Mar. 29, 2019, 5 pages.
dictionary.com, “Marketing”, URL: https://www.dictionary.com/browse/marketing, Apr. 6, 2019, 7 pages.
Ponn et al., “Correlational Analysis between Weather and 311 Service Request Volume”, eil.mie.utoronto.ca., 2017, 16 pages.
Zhang et al., “A Bayesian approach for modeling and analysis of call center arrivals”, 2013 Winter Simulations Conference (WSC), ieeexplore.ieee.org, pp. 713-723.
Mehrotra et al., “Call Center Simulation Modeling: Methods, Challenges, and Opportunities”, Proceedings of the 2003 Winter Simulation Conference, vol. 1, 2003, pp. 135-143.
Mandelbaum et al., “Staffing Many-Server Queues with Impatient Customers: Constraint Satisfaction in Call Center”, Operations Research, Sep.-Oct. 2009, vol. 57, No. 5 (Sep.- Oct. 2009), pp. 1189-1205.
Fukunaga et al., “Staff Scheduling for Inbound Call Centers and Customer Contact Centers”, AI Magazine, Winter, vol. 23, No. 4, 2002, pp. 30-40.
Feldman et al., “Staffing of Time-Varying Queues to Achieve Time-Stable Performance”, Management Science, Feb. 2008, vol. 54, No. 2, Call Center Management, pp. 324-338.
Business Wire, “Rockwell SSD announces Call Center Simulator”, Feb. 4, 1997, 4 pages.
Nathan, Stearns., “Using skills-based routing to the advantage of your contact center”, Customer Inter@ction Solutions, Technology Marketing Corporation, May 2001, vol. 19 No. 11, pp. 54-56.
Related Publications (1)
Number Date Country
20210227074 A1 Jul 2021 US
Continuations (1)
Number Date Country
Parent 16670952 Oct 2019 US
Child 17220509 US