Patent Publication Number: US-11392960-B2

Title: Agnostic customer relationship management with agent hub and browser overlay

Description:
The following U.S. patent applications, related by subject matter to this application, are hereby for all purposes incorporated by reference into this application as though fully set forth herein:
         U.S. patent application Ser. No. 15/700,210; filed Sep. 11, 2017, entitled Dynamic Scripts for Tele-Agents;   U.S. patent application Ser. No. 15/844,512; filed Dec. 15, 2017, entitled Dynamic Lead Generation;   U.S. patent application Ser. No. 16/157,075; filed Oct. 10, 2018, entitled Semantic Jargon;   U.S. patent application Ser. No. 16/154,718 filed Oct. 9, 2018, entitled Semantic Call Notes;   U.S. patent application Ser. No. 16/177,423 filed Oct. 31, 2018, entitled Semantic Inferencing in Customer Relationship Management;   U.S. patent application Ser. No. 16/183,725, filed Nov. 7, 2018, entitled Semantic CRM Mobile Communications Sessions;   U.S. patent application Ser. No. 16/183,736, filed Nov. 8, 2018, entitled Semantic Artificial Intelligence Agent; and   U.S. patent application Ser. No. 16/198,742 filed Nov. 21, 2018, entitled Semantic CRM Transcripts from Mobile Communications Sessions.       

     BACKGROUND 
     Customer Relationship Management (‘CRM’) is an approach to managing a company&#39;s interaction with current and potential customers. CRM implements data analysis of customers&#39; history with a company to improve business relationships with customers, specifically focusing on customer retention and sales growth. CRM systems compile data from a range of communication channels, including telephone, email, live chat, text messaging, marketing materials, websites, and social media. Through the CRM approach and the systems used to facilitate it, businesses learn more about their target audiences and how to best address their needs. 
     Enterprise CRM systems typically are huge. Such systems can include data warehouse technology, used to aggregate transaction information, to merge the information with information regarding CRM products and services, and to provide key performance indicators. CRM systems aid managing volatile growth and demand and implement forecasting models that integrate sales history with sales projections. CRM systems track and measure marketing campaigns over multiple networks, tracking customer analysis by customer clicks and sales. 
     In view of their sheer size, CRM systems today tend to lack the infrastructure to make full use of the information they can access. A single tele-agent, working in a contact center supporting a hundred agents, is tasked to operate across several, or even many, client CRM systems, each having different interfaces. The need to learn many interfaces is an inefficient use of agent time. The need to operate across many interfaces slows the agent&#39;s workflow. The need to learn many interfaces increases risk of error. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  sets forth a network diagram illustrating an example system of automated computing machinery that agnostically augments a customer relationship management (“CRM”) application according to embodiments of the present invention. 
         FIG. 2  illustrates computer memory of a leadership hub configured according to embodiments of the present invention. 
         FIG. 3  illustrates computer memory of a campaign management portal configured according to embodiments of the present invention. 
         FIGS. 4-6  set forth flow charts illustrating example methods of agnostically augmenting a CRM application according to embodiments of the present invention. 
         FIG. 7  illustrates computer memory of an agent hub configured according to embodiments of the present invention. 
         FIGS. 8 and 9  set forth flow charts illustrating example methods of agnostically augmenting a CRM application according to embodiments of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS 
     Example methods and apparatus of automated computing machinery that agnostically augments a customer relationship management (“CRM”) application are described with reference to the accompanying drawings, beginning with  FIG. 1 .  FIG. 1  sets forth a network diagram illustrating an example system of automated computing machinery that agnostically augments a customer relationship management (“CRM”) application according to embodiments of the present invention. ‘Automated computing machinery’ is any device built with a computer processor connected to computer memory that contains program instructions that operate the processor and data for the processor to process. Automated computing machinery includes computers, of course, such as, for example, laptop ( 126 ). In this example also, the campaign management portal ( 114 ), the agent hub ( 122 ), and leadership hub ( 134 ) are server-type computers each of which is built upon computer processors controlled by computer program instructions disposed in computer memory. Network ( 100 ) is also automated computing machinery, composed of one or more routers each of which is built with one or more computer processors controlled by computer program instructions disposed in computer memory. Client CRM application ( 104 ) and sales organization CRM application ( 102 ) are also implemented with automated computing machinery. 
     Three broad categories of entity are represented in the example of  FIG. 1 , a sales client ( 214 ), a sales customer ( 124 ), and a sales organization ( 152 ). The client ( 214 ) hires the sales organization ( 152 ) to administer a sales campaign to sell products or services to customers. Customers generally are represented here by a customer representative ( 124 ). The term ‘customer’ is used here to include not only customer actually purchasing, but also contacts, leads, prospects, and the like. 
     A tele-agent ( 128 ), sometimes referred to in this paper simply as an ‘agent,’ communicates ( 150 ) with the customer representative ( 125 ). The communication ( 150 ) is by telephone, email, text message, meetings in person, or otherwise, and so on. The agent ( 128 ) is hired as an employee or consultant by the sales organization to work as a salesperson on a sales campaign for the client. The term ‘tele-agent’ or merely ‘agent’ is used in this paper to indicate several possible roles, including for example, business development representative, inside sales rep, inbound sales rep, sales development rep, lead development rep, lead response rep, marketing qualification rep, market response rep, account development rep, account executive, sales executive, and so on, and so on, with all such called here ‘tele-agent’ or ‘agent.’ 
     The sales organization ( 152 ) operates as a call center or contact center that has been hired by a client to conduct sales campaign for client products or services. The sales organization itself can be a sales or marketing department in a larger organization, so that it&#39;s clients are other departments within the same overall company. The sales organization also is frequently an independent contractor or consultant having only a contractual relationship with the client. The sales organization in this example includes all the elements of  FIG. 1  except the client ( 214 ), the client CRM application ( 104 ), and the customer representative ( 124 ). 
     The overall sales organization system in the example of  FIG. 1  is composed primarily of the agent hub ( 122 ), the campaign management portal ( 114 ), and the leadership hub ( 134 ), all operatively coupled for data communications through network ( 100 ). The agent hub ( 122 ) is a module of automated computing machinery configured with computer memory ( 119 ) that associates an identity of a tele-agent ( 120 ), the tele-agent&#39;s qualifications ( 125 ), and an indication ( 121 ) whether the tele-agent is logged on to the agent hub. The agent hub is operatively coupled for data communications to a browser ( 148 ), the browser bearing a browser extension ( 146 ) through which a sales template for a sales campaign to which the tele-agent is assigned to work is operatively exposed as an overlay ( 149 ) upon a graphical user interface ( 146 ) of the browser, the overlay overlaid upon a web page ( 144 ) of the CRM application ( 104 ). 
     The agent hub is labeled ‘the agent hub’ because it is the principal point of contact between an agent and the overall system. The agent hub takes the agent&#39;s ID from a logon, and from the agent&#39;s point of view, promptly displays on the agent&#39;s browser a template with questions and answers forms for use by the agent in working on a campaign to which the agent is currently assigned. Transparent to the agent is the fact that the agent hub first queried the leadership hub for a campaign ID and then queried the campaign management portal for the template. The agent merely sees that she logged on and now has a displayed template for her campaign. 
     In the example machinery of  FIG. 1 , the agent hub is operatively coupled for data communications through network ( 100 ) to the leadership hub ( 134 ), which is configured with computer memory ( 138 ) that associates the tele-agent ( 120 ) and a sales campaign ( 106 ) to which the tele-agent is assigned to work. The leadership hub ( 134 ) is labeled ‘the leadership hub’ because it is the principal point of contact between leadership ( 142 ) and the overall system of the sales organization for purposes of agnostic CRM augmentation. The leadership hub is the prime repository of campaign information, clients, products, campaign duration, geographic scope, agent assignments, supervisor and management assignments, and so on. The leadership hub exposes an interface ( 140 ) for leadership access to campaign data. For the purposes of leadership, supervisors, managers, executives, and the like, the leadership hub is the primary face of the overall system of the sales organization as it pertains to agnostic CRM augmentation. 
     In the example machinery of  FIG. 1 , the agent hub also is operatively coupled for data communications through network ( 100 ) to a campaign management portal ( 114 ), which is configured with memory ( 113 ) that associates the sales campaign ( 106 ) and the display template ( 108 ), the display template in turn associating a question ( 110 ) and an answer form ( 112 ). The campaign management portal is labeled ‘the campaign management portal’ because it provides the template materials, questions and answer forms, for actual use in campaign administration, the actual substantive conduct of a sales campaign, communication between an agent and a contact, prospect, or customer. The campaign management portal provides the substantive material that supports the actual agnostic augmentation of a CRM application with pertinent questions and answer forms in direct support of actual real-time sales activity, communications with contacts, prospects, and customers. 
     The automated computing machinery in the example of  FIG. 1  operates generally to agnostically augment a CRM application ( 104 ) first by accepting a logon from a tele-agent ( 128 ). The tele-agent operates a browser ( 148 ) on a laptop ( 126 ). 
     The browser operates a browser extension ( 146 ) obtained from an agent hub ( 122 ). A browser extension is a software module, typically source code, installed in the browser, customizing the browser, providing a user interface modified to display a sales template for a sales campaign and present the same interface for the template even across navigation of the browser among web pages. The browser is free to navigate pages of a web application, for example, while the interface exposed by the browser extension remains exactly the same. 
     The extension can be thought of as a modified browser screen that remains stable even as the browser navigates among many other web pages, changing its display for each web page, always maintaining the same display from the extension. The browser extension ( 146 ) in embodiments is implemented in source code of HTML, JavaScript, or CSS, by which the browser extension implements functionality additional to the functionality of the CRM application ( 104 ). Such additional functionality is provided for a CRM application active or running in the browser, and the browser extension provides such additional functionality identically for disparate CRMs. Such additional functionality is provided for a CRM application active or running in the browser, and the browser extension provides such additional functionality identically for disparate CRMs that are implemented at least partly as web applications regardless of the structure or function of such CRMs. 
     The tele-agent logs on through the browser extension ( 146 ) to the system organized on network ( 100 ) to include the agent hub ( 122 ), the campaign management portal ( 114 ), and the leadership hub ( 134 ). The agent hub maintains Boolean indications ( 121 ) whether each agent ( 120 ) is logged onto the system. With the tele-agent logged in, the agent hub retrieves from the leadership hub ( 134 ) the campaigns to which the agent is assigned for work. The agent hub provides the agent ID to the leadership hub which looks up associated campaign IDs ( 106 ) in computer memory. If the agent is assigned to more than one campaign, the agent hub allows the agent to select one to work on. The agent hub then provides the campaign ID to the campaign management portal, which retrieves a sales template ( 108 ) in dependence upon the campaign ID. The agent hub then installs the template in the browser extension ( 146 ), and the agent uses the questions and answer forms in the template to discuss sales with a customer representative ( 124 ). 
     In the example of  FIG. 1 , the client&#39;s CRM ( 104 ) exposes its contents to the sales organization through a web application ( 104 ). A web application, or web app, is an application program that is stored on a remote server and delivered over the internet through a browser. The web app is a client-server computer program that the client, including the user interface and client-side logic, runs in a web browser. Such web apps in some embodiments are composed of one or more dynamic web pages having functionality similar to a desktop software application, or to a mobile app. Web apps can be loaded as web pages, but can accept input and store data locally. Web apps can be composed of multiple web pages operating in coordination or can operate as a single page against a single URL. 
     In the example of  FIG. 1 , the browser ( 148 ) is navigated to a web page ( 144 ) of the web app ( 105 ). The template ( 108 ) exposed through the browser extension ( 146 ) as an overlay ( 149 ) on the GUI ( 146 ) of the laptop ( 126 ) maintains exactly the same form and content throughout a campaign across all web pages ( 144 ) of the web app ( 105 ) of the client&#39;s CRM ( 214 ). This alleviates the burden on the tele-agent to disembed pertinent information from the client&#39;s CRM. The content of the template will change when the agent directs attention to a campaign of a different client, but the overall form of the template and the overall structure of its content questions and answer forms again will remain constant across all the web pages of the web app of the new client and the new client&#39;s campaign, thus also reducing the burden on the agent to know the details of two or more client CRMs. 
     The questions ( 110 ) in the template ( 108 ) are suggestions, keyed to a campaign ( 106 ), for the tele-agent to use in communicating with a customer representative. Examples include:
         “I see from your recent announcements that you are beginning production of road graders in addition to your usual lines of front end loaders. We have in the past provided motors for your loaders, and we think we have new production that will fit your graders. Can I send you some literature?”   “I see from your recent announcements that, in addition to your usual inventory control products, you are branching out into general ledgers. We have a current generation accounting engine specifically designed as a generic engine for posting outlying accounts into any general ledger. Can I send you some literature?”   “I see from your recent ads that you are beginning production of switching power supplies in addition to your usual line of linear products. Our engineers recently designed and we now produce smoothing filters oriented specifically to the high-frequency noise components output from the switching process. Can I send you some literature?”       

     The answer forms ( 112 ) in the template ( 108 ) are forms or widgets without content, radio buttons, drop-down menus, data entry fields, and the like. Actual answers ( 118 ) are composed of pressed radio buttons, selections from drop-down menus, text entered in data entry fields, and so on. To the extent that actual answers to questions flow from communications ( 150 ) with the customer rep ( 124 ), the actual answers ( 118 ) are stored in association with the pertinent campaign ID ( 106 ) in computer memory ( 116 ) of the agent hub ( 122 ). 
     The questions ( 110 ) and answer forms ( 112 ) in the template ( 108 ) can be created as data entry by someone with knowledge of the products to which a campaign is directed or knowledge of the industry in which a sales campaign is disposed. In the example of  FIG. 1 , however, the questions and answer forms in the template are data mined by an artificial intelligence agent ( 104 ) from information found in the world wide web ( 100 ) and in the sales organization&#39;s own customer relationship management system ( 102 ). 
     As described in more detail below with regard to the example process illustrated in  FIG. 5 , the leadership hub in embodiments can create and populate data structures in computer memory ( 138 ) of a new campaign ( 106 ), including IDs of agents assigned to the campaign as well as additional campaign data such as products, client, duration, scope, and so on. The leadership hub can create a new campaign based upon a lead qualification value ( 156 ) provide by a CRM ( 102 ) internal to the sale organization. In addition to sourcing new campaigns and new campaign data from internal automation, in embodiments as in this example, a leadership hub can expose an interface ( 140 ) and accept input through the interface to create or edit campaigns among computer memory of the hub. In this example, campaign configuration is accepted through an interface ( 140 ) from campaign leadership ( 142 ). Campaign configuration from leadership ( 142 ) by data entry through interface ( 140 ) enters computer memory ( 138 ) of the leadership hub ( 134 ) with a campaign ID ( 106 ), an agent ID for at least one agent assigned to work on the campaign, and additional descriptive campaign data ( 136 ). Leadership ( 142 ) in this example is any employee or consultant of the sales organization ( 152 ) with knowledge of the campaign and data entry authority on the leadership hub, including, for example, a sales team leader, a unit supervisor, a department manager, a sales executive, or the like. Additional campaign data ( 136 ) includes, for example, a campaign name, identity of a client for whom the campaign is implemented, roles of persons assigned to work on the campaign, duration of the campaign, geographic scope of the campaign, and products for sale in the campaign. 
     The leadership hub ( 134 ) and the campaign management portal ( 114 ) are operative to display the template ( 108 ) as an overlay ( 149 ) of a web page ( 144 ) of a CRM ( 104 ). An overlay as the term is used here refers to a GUI window operated by the browser under control of an extension that is displayed within the browser&#39;s on top of everything else in the browser&#39;s window. The extension provides a GUI widget ( 123 ) that can be invoked through the GUI to display the overlay or remove the overlay from the display. Displaying the overlay at least partly obscures the display of items overlaid. Removing the overlay restores full display of the underlying items in the browser window. While the overlay is displayed, it implements full functionality as a GUI window for display of template data and acceptance of input data through the interface. The display of the overlay is based upon the agent&#39;s ID ( 120 ). The leadership hub identifies, to the campaign management portal through the agent hub, a campaign ID ( 106 ) of a campaign to which the agent is assigned, and the campaign management hub provides to the agent hub for display a sales template ( 108 ) bearing questions ( 110 ) and answers ( 112 ) for a sales campaign. The sales template is then displayed in an overlay ( 149 ). 
     In this example, the control widget for the display of the overlay includes two control button, one points left ( 131 ) and one right ( 133 ). In embodiments, both control buttons can be exposed at all time, when a mouse-click on left ( 131 ) will display the overlay, and a mouse-click on right ( 133 ) will remove the overlay. In other embodiments, only the left control is displayed when the overlay is removed, and only the right button is displayed when the overlay is displayed. 
     The example machinery of  FIG. 1  includes a display screen ( 155 ) upon which is displayed a graphical user interface (“GUI”) ( 146 ), and a pertinent web page ( 144 ) is displayed through the GUI, with the template ( 108 ) displayed as a GUI overlay ( 149 ) upon the web page. The web page ( 144 ) is a page in a web application ( 105 ) that exposes contents of a CRM ( 104 ) to the sales organization ( 152 ) including tele-agent ( 128 ). 
     In the example of  FIG. 1 , the template ( 108 ) is displayed as an overlay ( 108 ) in the same form across any web page of any CRM implemented as a web application or whose contents are exposed through a web app. The agent can, for example, navigate through a browser web pages of a web app of a client for a sales campaign and have available at all times on any web page the same form a template with questions and answers appropriate for that sales campaign. The template is functional in this way for any CRM implemented as a web application regardless of the structure or function of the CRM. In the example of  FIG. 1 , neither the hub ( 134 ) nor the portal ( 114 ) have any information, knowledge, nor any data regarding the structure or function of the CRM ( 104 ). In the example of  FIG. 1 , the machinery implements an interface neither between the CRM ( 104 ) and the hub ( 134 ) nor between the CRM ( 104 ) and the portal ( 114 ). 
     In view of this explanation, it can now be seen that ‘agnostically’ means that the computing machinery in the example of  FIG. 1  operates for disparate CRMs exposed through web apps regardless of the structure or function of a particular CRM, with no knowledge of the structure or function of the CRM, and with no interface to the CRM. The machinery of  FIG. 1  includes large quantities of memory, campaign management portal memory ( 113 ), leadership hub memory ( 138 ), the agent hub maintains agent information ( 120 ,  121 ,  125 ) in computer memory, and so on. All this memory includes not one byte or bit describing the client&#39;s CRM ( 104 ). In the machinery of  FIG. 1 , the CRM ( 104 ) is exposed through a web app ( 105 ) on a normal browser screen ( 148 ) to an agent using the browser. The machinery of  FIG. 1  uses the browser to implement a browser extension ( 146 ) that in turn implements an overlay ( 149 ) that displays a template ( 108 ) of the system. Nevertheless, there is no interface or connection or communications or sharing of data between the client CRM ( 104 ) and the computing machinery of the sales organization. With respect to the CRM ( 104 ), the machinery of  FIG. 1  knows nothing. The machinery of  FIG. 1  is agnostic with respect to the client&#39;s CRM ( 104 ). 
     Computer memory ( 113 ,  116 ,  138 ) in the example of  FIG. 1 , and in subsequent drawings also, is depicted as entities of example computer hardware, computers or servers ( 114 ,  122 ,  134 ). Readers will recognize, however, that this depiction is only for ease of explanation, not for limitation. Computer memory according to embodiments can be implemented in multiple computers or servers, hundreds of disk drives in a data center, high speed disk networks, cloud storage, and so, and so on. 
     For further explanation,  FIG. 2  illustrates computer memory ( 138 ,  139 ) of a leadership hub ( 134 ) configured according to embodiments of the present invention. The leadership hub ( 134 ) in the example of  FIG. 2  is a module of the automated computing machinery, that is a computer or server operated by at least one computer processor coupled for data communications to computer memory. In the example of  FIG. 2 , the computer memory ( 138 ) is configured according to a logical table ( 202 ) The table includes a number of logical columns ( 222 ) including a column identifying sales campaigns ( 106 ) and a column identifying tele-agents ( 120 ,  210 ,  212 ). The table also includes logical rows ( 220 ), each row representing an assignment of a tele-agent to work on a sales campaign. In addition to the columns for campaign and agent, the table includes also columns identifying a client ( 214 ), products ( 216 ) subject of a sales campaign, a duration of a campaign ( 218 ), and geophysical scope of a campaign ( 242 ). 
     The rows ( 220 ) in the example of  FIG. 2  serve to associated agents with a campaign. Storing client, product, duration, and scope with each association of an agent and a campaign represents some redundancy of storage. Readers will recognize that the redundancy can be reduced by placing the agent IDs in a separate sub-table accessed by use of the campaign ID as a foreign key. Tables associated by foreign keys, one-to-many relations, many-to-one relations, and so on, are all included within the meaning of ‘logical table’ as the term is used in this paper. 
     In addition to the logical table ( 202 ),  FIG. 2  also sets forth an example of memory physically configured as a semantic graph ( 226 ) in the computer memory ( 139 ) of the leadership hub ( 134 ). A semantic graph is a configuration of memory that uses graph structures, nodes and edges, to represent and store data. A key concept of this kind of configuration is the graph (or edge or relationship), which directly relates data items in a data store. Such a graph database contrasts with more conventional storage such as a logical table, where links among data are mere indirect metadata, and queries search for data within the store using joins to collect related data. Semantic graphs, by design, make explicit relations among data that can be difficult to model in relational systems or logical tables. 
     The semantic graph ( 226 ) in the example of  FIG. 2  illustrates a physical arrangement of campaign ( 106 ) and an additional campaign also, ( 107 ). The semantic graph of campaign ( 106 ), just as was effected by the logical table ( 202 ), also associates tele-agents ( 108 ,  210 ,  220 ) with the campaign ( 106 ). In addition, in the semantic graph of campaign ( 106 ), data describing the client ( 214 ), product ( 216 ), duration ( 218 ), and physical scope ( 242 ) each are stored only once, thus reducing the inefficient redundancy evidenced in the logical table ( 202 ). In some embodiments, a logical table is easier to comprehend and manipulate. In a logical table, however, the identification of data elements, campaign, agent, client, product, and so on, is meta-data, typically required to be known to a programmer before accessing the data. In the semantic graph, the semantic definition of each data element ( 108 ,  214 ,  216 , and so on) is built into the graph edge that associates the data element with the campaign, “agent,” “client,”, “product,” and so on. So in the semantic graph, the meta-data explaining the data content is itself an element of the content. 
     For further explanation, notice that the arrangement of nodes and edges in the semantic graph of  FIG. 2  can be characterized as semantic triples. A semantic triple is a three-part statement expressed in a form of logic. Depending on context, different terminologies are used to refer to effectively the same three parts of a statement in a logic. In this paper, the elements of a triple are referred to as subject, predicate, and object. Thus the semantic triple that includes the node campaign ( 106 ) connected by the edge labeled “Agent” to node ( 108 ) is expressed as a semantic triple as: 
     subject: campaign ( 106 ) 
     predicate: has an assigned agent 
     object: agent ( 108 ) 
     The association of the campaign ( 106 ) and the client for the campaign can be expressed as the semantic triple: 
     subject: campaign ( 106 ) 
     predicate: is for a client 
     object: client ( 214 ) 
     The association of the campaign ( 106 ) and a product that is a subject of the campaign can be expressed as the semantic triple: 
     subject: campaign ( 106 ) 
     predicate: sells a product 
     object: product ( 216 ) 
     And so on, for all the data relations in semantic graph ( 226 ). 
     The identifications of sales campaigns and tele-agents in the leadership hub, as well as other information in the computer memory of the leadership hub, are, in some embodiments at least, physically configured as semantic triples in contiguous segments of the computer memory of the leadership hub. ‘Contiguous’ means storage of the data content of semantic triples adjacent to one another sequentially in physical memory. Contiguous memory is explained in more detail with reference to the physical memory configuration ( 252 ) of  FIG. 2 . Memory configuration ( 252 ) sets forth a block diagram of a computer memory system, configured supportive of physical memory according to embodiments, that includes a computer processor (“CPU”) ( 244 ) coupled for data communications to cache memory ( 246 ), random access memory (“RAM”) ( 248 ), and disk memory ( 250 ). In accessing physical memory, the CPU looks first in the cache. Upon a cache miss, the CPU seeks memory content in RAM ( 248 ) and moves it into the cache. Failing to find sought content in RAM, a failure termed a “page fault,” the CPU looks all the way out to the disk ( 250 ), moves content into RAM ( 248 ) and then into cache ( 246 ). 
     For a pertinent set of triples, a subgraph, for example, previously stored, composed of 10 kilobytes of storage, some computer systems today support memory page sizes of a megabyte or more. Such a set of triples can be stored in a single memory page, and, once that page is in RAM, operation of the triple set for CRM can proceed with no risk of page faults at all. Cache misses would still be required to load the contents into cache, but, with the entire triple set in RAM, the cache misses would not risk page faults. The inventors estimate that after a short period of operation, the cache miss rate would be less than one percent for operation of such a set of triples in the context of CRM. That is, when a set of triples is disposed in contiguous memory in support of CRM according to embodiments of the present invention, memory access times generally will approximate cache access times, just a few nanoseconds, for more than 99% of memory access. 
     For further explanation,  FIG. 3  illustrates computer memory ( 113 ,  115 ) of a campaign management portal ( 114 ) configured according to embodiments of the present invention. The campaign management portal ( 114 ) in the example of  FIG. 3  is a module of the automated computing machinery, that is a computer or server operated by at least one computer processor coupled for data communications to computer memory. In the example of  FIG. 3 , the computer memory ( 113 ) is configured according to a logical table ( 302 ). The table includes a number of logical columns ( 318 ) including a column identifying sales campaigns ( 106 ) and a column identifying display templates ( 108 ). 
     The table also includes logical rows ( 316 ). Each row in this example associates a sales campaign ( 106 ) and a display template ( 108 ) that also associates at least one sales campaign question ( 110 ,  308 ,  312 ) and an answer form ( 112 ,  310 ,  314 ) for the question. The answer forms ( 112 ,  310 ,  314 ) associated with template ( 108 ) are forms without content, radio buttons, drop-down menus, data entry fields, and the like. Actual answers are composed of pressed radio buttons, selections from drop-down menus, text entered in data entry fields, and so on. Actual answers are stored in association with the pertinent campaign ID ( 106 ) in computer memory of an agent hub ( 118  on  FIG. 1 ). 
     In addition to the logical table ( 302 ),  FIG. 3  also sets forth an example of memory physically configured as a semantic graph ( 306 ) in the computer memory ( 115 ) of the campaign management portal ( 114 ). The semantic graph ( 306 ) in the example of  FIG. 3  illustrates a physical arrangement of memory for a campaign ( 106 ), an associated template ( 108 ), associated questions ( 110 ,  308 ,  312 ), and associated answer forms ( 112 ,  310 ,  314 ). In the semantic graph ( 306 ) associating questions and answer forms with a template of a campaign, the campaign data ( 106 ) and the template data ( 108 ) are stored only once, thus reducing the redundancy evidenced in the logical table ( 302 ) where campaign data ( 106 ) and template data are stored three time, once for each combination of question and answer form. 
     The arrangement of nodes and edges in the semantic graph of  FIG. 3  can be characterized as semantic triples, where, for example, the triple that includes the campaign ( 106 ) and the template ( 108 ) can be expressed as: 
     subject: campaign ( 106 ) 
     predicate: has a template 
     object: template ( 108 ) 
     The association of the template ( 108 ) and the first question can be expressed as: 
     subject: template ( 108 ) 
     predicate: has a question 
     object: question ( 110 ) 
     The association of the question ( 110 ) and answer form ( 112 ) can be expressed as the semantic triple: 
     subject: question ( 110 ) 
     predicate: has an answer form 
     object: answer form ( 112 ) 
     And so on, for all the data relations in semantic graph ( 306 ). 
     The identifications of sales campaigns ( 106 ) and display templates ( 108 ), including sales campaign questions ( 110 ,  308 ,  312 ) and answer forms ( 112 ,  310 ,  314 ), are, in some embodiments at least, physically configured as semantic triples in contiguous segments of the computer memory of the campaign management portal. Contiguous memory is explained in more detail above in this paper with reference to the physical memory configuration ( 252 ) of  FIG. 2 . 
     For further explanation,  FIG. 4  sets forth a flow chart illustrating an example method of agnostically augmenting a customer relationship management (“CRM”) application according to embodiments of the present invention. ‘Agnostically’ means that the method of  FIG. 4  operates for disparate CRMs exposed through web apps regardless of the structure or function of a particular CRM, with no knowledge of the structure or function of the CRM, and with no interface to the CRM. In the method of  FIG. 4 , the CRM ( 104 ) is exposed on a normal browser screen ( 148 ) to an agent using the browser. The method of  FIG. 4  uses the browser to implement a browser extension ( 146 ) that in turn implements an overlay ( 149 ) that displays a template ( 108 ) of the method. Nevertheless, there is no interface or connection or communications or sharing of data or information between the CRM and the method of  FIG. 4 . With respect to the CRM, the method of  FIG. 4  knows nothing. The method of  FIG. 4  is agnostic with respect to the CRM ( 104 ). 
     The method of  FIG. 4  includes configuring ( 402 ) by a leadership hub ( 134 ) computer memory ( 138 ) of the hub according to a logical table ( 202 ). The contents of the table ( 202 ), illustrated on  FIG. 2 , include a number of logical columns ( 222 ) including a column identifying sales campaigns ( 106 ) and a column identifying tele-agents ( 120 ,  210 ,  212 ). The table also includes logical rows ( 220 ), each row representing an assignment of a tele-agent to work on a sales campaign. 
     The method of  FIG. 4  also includes configuring ( 404 ) by a campaign management portal ( 114 ) computer memory ( 113 ) of the portal according to a logical table ( 302 ). The table is explained above with respect to  FIG. 3  as including a number of logical columns ( 318 ) including a column identifying sales campaigns ( 106 ) and a column identifying display templates ( 108 ). The table ( 302 ) also includes logical rows ( 316 ). Each row in this example associates a sales campaign ( 106 ) and a display template ( 108 ) that also associates at least one sales campaign question ( 110 ,  308 ,  312 ) and an answer form ( 112 ,  310 ,  314 ) for the question. 
     The method of  FIG. 4  also includes displaying ( 406 ) by the leadership hub ( 134 ) and the campaign management portal ( 114 ) a template ( 108 ) as an overlay ( 149 ) on a web page ( 144 ) of a CRM ( 104 ). A tele-agent runs a browser ( 148 ) on a computer such as laptop ( 126 ). The browser is navigated to a web page ( 144 ) of a web app exposed by a client CRM ( 104 ). The browser runs a pre-installed extension ( 146 ) that is capable of displaying a template ( 108 ) with questions and answer forms, retrieving actual answers, and providing actual answers to the agent hub for storage. Through the extension ( 146 ), the agent logs on to the agent hub, which provides the agent&#39;s ID to the leadership hub ( 134 ). The leadership hub identifies to the campaign management portal ( 114 ) a campaign on which the agent is authorized to work. The campaign management portal provides to the agent hub a template for the identified campaign. The agent hub provides the template to the browser extension. The tele-agent uses the contents of the template to communicate with prospects, purchasers, and other customer representatives. Thus the leadership hub and the campaign management portal coordinate by use of the agent hub the display of the template. 
     For further explanation,  FIG. 5  sets forth a flow chart illustrating a further example method of agnostically augmenting a CRM application according to embodiments of the present invention. The method of  FIG. 5  is similar to the method of  FIG. 4 , including as it does configuring ( 402 ) computer memory of a leadership hub ( 134 ) according to a logical table ( 202 ), configuring ( 404 ) computer memory ( 113 ) of a campaign management portal ( 114 ) according to a logical table ( 302 ), and displaying ( 406 ) a template ( 108 ) as an overlay on a web page of a CRM ( 104 ). 
     The method of  FIG. 5 , however, also includes physically configuring ( 506 ) by the leadership hub ( 134 ) the identifications of sales campaigns ( 106  on  FIG. 2 ) and tele-agents ( 120 ,  210 ,  212  on  FIG. 2 ) as a semantic graph ( 226 ) in the computer memory ( 139 ) of the leadership hub ( 134 ) and physically configuring ( 516 ) by the campaign management portal ( 114 ) the identifications of sales campaigns ( 106  on  FIG. 3 ) and display templates ( 108  on  FIG. 3 ), including sales campaign questions ( 110 ,  308 ,  312  on  FIG. 3 ) and answer forms ( 112 ,  310 ,  314  on  FIG. 3 ), as a semantic graph ( 306 ) in the computer memory ( 113 ) of the campaign management portal ( 114 ). Thus the leadership hub and the campaign management portal both have available when needed both the benefits of logical tables and the benefits of semantic graphs. 
     The method of claim  11  also includes inserting ( 504 ), when a lead qualification value ( 156 ) exceeds ( 502 ) a predetermined threshold ( 510 ), in computer memory of the leadership hub a new logical row for a new campaign. Lead qualification values can include, for example, BANT values (Budget Authority Need Timing), CHAMP values (Challenges Authority Money Prioritization), SPIN values (Situation Problem Implication Need-payoff), NEAT values (Need Economic impact, Access to authority, Timeline), MEDDIC values (Metrics, Economic buyer, Decision criteria, Decision process, Identify pain, Champion), and so on. Lead qualification values can be maintained as part of routine data processing in a sales organization&#39;s internal CRM application ( 102  on  FIG. 1 ) of a sales organization. A value exceeding a threshold can trigger a message to a leadership hub to create a new campaign for a client for a product. The campaign may need additional processing before going active, assignment of resources, perhaps client approval or management approval, but the initial creation of the campaign can be triggered by a lead qualification value. 
     The method of  FIG. 5  also includes assigning ( 514 ) by the leadership hub according to business rules ( 512 ) an agent ( 120 ) to a campaign ( 106 ). In this example, the assigning is automated within the hub as naturally following the creation ( 504 ) of a new campaign. Examples of business rules include:
         assigning an agent whose experience and education match the products that are the subjects of a campaign,   assigning an agent as a portion of the agent&#39;s availability so that the total assignment of the agent&#39;s availability across all campaigns to which the agent is assigned does not exceed 100%,   and so on.       

     For further explanation,  FIG. 6  sets forth a flow chart illustrating a further example method of agnostically augmenting a CRM application according to embodiments of the present invention. The method of  FIG. 6  is similar to the method of  FIG. 4 , including as it does configuring ( 402 ) computer memory of a leadership hub ( 134 ) according to a logical table ( 202 ), configuring ( 404 ) computer memory ( 113 ) of a campaign management portal ( 114 ) according to a logical table ( 302 ), and displaying ( 406 ) a template ( 108 ) as an overlay on a web page of a CRM ( 104 ). 
     The method of  FIG. 5 , however, also includes recording ( 612 ) by the leadership hub ( 134 ) as campaign data a global sales goal ( 602 ) for a campaign and an individual goal ( 604 ) for a tele-agent assigned to work on the campaign, and exposing ( 618 ) to the tele-agent through the template ( 108 ) both the global sales goal ( 602 ) for the campaign and the individual goal ( 604 ) for the tele-agent. Examples of sales goals include sales revenue, revenue by product or product line, percentage of revenue from new business, and so on. The method of  FIG. 5  also includes recording ( 614 ) by the leadership hub as campaign data a total performance bonus ( 606 ) for the agent for a campaign and the portion ( 608 ) of the total earned by the agent, and exposing ( 620 ) to a tele-agent through the template ( 108 ) both the total performance bonus ( 606 ) for the agent for the campaign and the portion ( 608 ) of the total earned by the agent. 
     The method of  FIG. 5  also includes recording ( 616 ) by the leadership hub as campaign data a leaderboard ( 610 ) comprising performance goals ( 624 ) for each agent assigned to the campaign and actual performance ( 626 ) by each agent, and exposing ( 622 ) to all tele-agents assigned to the campaign the leaderboard ( 610 ), including both the performance goals ( 624 ) for each agent and actual performance ( 626 ) by each agent. The notion of leaderboard goals in some embodiments at least is broader than sales or bonus, including, for example, number of calls made, emails sent, number of conversations, social media interactions, meetings scheduled, demos or sales presentations, proposals sent, opportunities closed, new opportunities added to a sales pipeline, lead response time, leads qualified, email open rate, email response rate, and so on, and so on, the point of the leaderboard being to show overall performance for a team, all the agents assigned to a campaign. 
     For further explanation,  FIG. 7  illustrates computer memory ( 718 ,  720 ) of an agent hub ( 122 ) configured according to embodiments of the present invention. The agent hub ( 122 ) in the example of  FIG. 7  is a module of the automated computing machinery, that is a computer or server operated by at least one computer processor coupled for data communications to computer memory ( 116 ). In the example of  FIG. 7 , the computer memory is configured according to a logical tables ( 702 ,  704 ). Table ( 702 ) includes a number of logical columns including a column identifying agents ( 120 ,  210 ,  212 ), a column that records Boolean values (Yes, No, Yes) indicating whether a corresponding agent is logged on through the agent hub, and a column that records agents&#39; job qualifications ( 706 ,  708 ,  710 ). Each logical row in table ( 702 ) associates an agent, an indication whether that agent is logged on, and that agents&#39; job qualifications for use in assigning that agent to a sales campaign. Agents&#39; job qualifications can include, for example, education, work history, recent sales experience, and so on. Table ( 704 ) includes logical columns that record sales campaign identifiers ( 106 ), template questions ( 110 ,  308 ,  312 ), and actual answers ( 712 ,  714 ,  715 ). Each row in table ( 704 ) associates a template question with an actual answer that is responsive to that question and a campaign for which the question is a component of a sales template. 
     In addition to the logical tables,  FIG. 7  also sets forth an example of memory physically configured as a semantic graph ( 720 ) in computer memory ( 116 ) of the agent hub ( 122 ). The semantic graph in the example of  FIG. 7  illustrates a physical arrangement of memory for agent records ( 119 ) and for question and answer (Q&amp;A) records ( 701 ). The agent records include nodes identifying agents ( 120 ,  210 ,  212 ) each of which has associated indications of logon (Yes, No, Yes) and associated qualifications ( 706 ,  708 ,  710 ). The Q&amp;A records associate sales template questions ( 110 ,  308 ,  312 ) with actual answers ( 712 ,  714 ,  716 ), through edges labeled ‘Qn’ for the questions and ‘AA’ for actual answers.  FIG. 7  details campaign ( 106 ), but details would be similar for multiple campaigns ( 109 ) in graph storage. Graph storage instantiates a campaign (e.g.,  106 ) only once, in contrast to table ( 704 ) which repeats ( 106 ) several times, a storage arrangement that may have advantages for search but is somewhat less efficient than the graph. 
     The arrangement of nodes and edges in the semantic graph of  FIG. 7  can be characterized as semantic triples, where, for example, the triple that includes the campaign ( 106 ) and the question ( 110 ) can be expressed as: 
     subject: campaign ( 106 ) 
     predicate: has a question 
     object: question ( 110 ) 
     The association of the question ( 110 ) and its actual answer can be expressed as: 
     subject: question ( 110 ) 
     predicate: has actual answer 
     object: answer ( 712 ) 
     The triple defining agent ( 120 ) in the agent records can be expressed as: 
     subject: agent records ( 119 ) 
     predicate: has 
     object: agent ( 120 ) 
     The triple indicating whether agent ( 120 ) is logged on can be expressed as: 
     subject: agent ( 120 ) 
     predicate: logon 
     object: Yes 
     And so on, for all the data relations in semantic graph ( 720 ). 
     The identifications of agents ( 120 ,  210 ,  212 ), qualifications ( 706 ,  708 ,  710 ), logons (Yes, No), campaigns ( 106 .  109 ), questions ( 110 ,  308 ,  312 ), and actual answers ( 712 ,  714 ,  716 ) are, optionally at least in some embodiments, physically configured as semantic triples in contiguous segments of the computer memory ( 116 ) of the agent hub ( 122 ). Contiguous memory is explained in more detail above in this paper with reference to the physical memory configuration ( 252 ) of  FIG. 2 . 
     For further explanation,  FIG. 8  sets forth a flow chart illustrating a further example method of agnostically augmenting a CRM application according to embodiments of the present invention. The method of  FIG. 8  includes configuring ( 800 ) by an agent hub ( 122 ) computer memory that associates an identity of a tele-agent, the tele-agent&#39;s qualifications, and an indication whether the tele-agent is logged on to the agent hub. The method of  FIG. 8  illustrates two example methods of such memory configuration. The method includes the example of configuring ( 802 ) by the agent hub computer memory according to a logical table ( 702 ), the table comprising logical columns identifying the tele-agent ( 120 ), the tele-agent qualifications ( 706 ), and the indication (Yes) whether the tele-agent is logged on to the agent hub. The method includes the further example of configuring ( 803 ) by the agent hub the identity of the tele-agent, the tele-agent&#39;s qualifications, and the indication whether the tele-agent is logged on as a semantic graph ( 720 ) in physical memory of the agent hub. The logical table ( 702 ) associating agent, qualifications, and logon as well as the semantic graph ( 720 ) are explained in more detail above with reference to  FIG. 7 . 
     With memory so configured, the overall operation of the method of  FIG. 8  is that an agent logs on to the system composed of an agent hub ( 122 ), a leadership hub ( 134 ), and a campaign management portal ( 114 ). The hub and the portal form an overall system coupled for data communications by, for example, a network such as ( 100  on  FIG. 1 ). An agent, by providing security credentials including the agent&#39;s identification, logs on to the overall system through the agent hub by use of a computer, a desktop computer, a tablet computer, a smartphone, or, as in this example, a laptop ( 126 ). The agent operates a browser ( 148 ) on the agent&#39;s computer. The agent navigates the browser to a web page of a web application exposed by a CRM application ( 104 ). The browser has installed upon it a browser extension ( 146 ) programmed to operative expose a sales template of the system. “Operative expose” means that the template so exposed in functional for data processing, displaying data of the template, accepting data input from the agent. 
     The agent hub queries ( 804 ) the leadership hub ( 134 ) with the agent&#39;s identification ( 120 ) to retrieve one or more sales campaigns ( 106 ) to which the agent is assigned to work. The agent can be assigned part time to more than one campaign, and if the agent is assigned to more than one, then the agent hub asks the agent, by, for example, a pull-down menu, which campaign the agent presently will work on. The agent selects. The agent hub queries the campaign management hub for the template corresponding to the selected campaign, or, if the agent is assigned only to one, queries for the template of that only campaign. The agent hub displays the template ( 108 ) through the extension ( 146 ) of the browser ( 148 ), displaying questions ( 110 ) and answer forms ( 112 ), and accepting input of actual answers to the questions. The agent hub stores actual answers in memory of the agent hub, in association with a campaign, and also for convenient reference in some embodiments at least, also in association with a pertinent question from the template. 
     Thus: The method of  FIG. 8  includes retrieving ( 804 ) by the agent hub ( 122 ) from a leadership hub ( 134 ) in dependence upon the identity of the tele-agent ( 120 ) the identity of the campaign ( 106 ) to which the tele-agent is assigned to work. The method of  FIG. 8  also includes retrieving ( 806 ) by the agent hub from a campaign management portal ( 114 ) in dependence upon the identity of the campaign ( 106 ) the sales template ( 108 ). The method of  FIG. 8  also includes operatively exposing ( 808 ) by the agent hub, through an extension ( 146 ) of a browser ( 148 ) as an overlay ( 149 ) upon a web page ( 144 ) of the CRM application ( 104 ), a sales template ( 108 ). 
     For further explanation,  FIG. 9  sets forth a flow chart illustrating a further example method of agnostically augmenting a CRM application according to embodiments of the present invention. The method of  FIG. 9  is similar to the method of  FIG. 8 , including as it does configuring ( 800 ) computer memory that associates an identity of a tele-agent, the tele-agent&#39;s qualifications, and an indication whether the tele-agent is logged on to the agent hub, including the examples of configuring ( 802 ) memory according to a logical table ( 702 ) and configuring ( 803 ) a semantic graph ( 720 ) in physical memory of an agent hub. The method of  FIG. 9 , also like the method of  FIG. 8 , includes retrieving ( 804 ) the identity of the campaign ( 106 ) to which a tele-agent is assigned to work, retrieving ( 806 ) a sales template ( 108 ) for the campaign, and exposing ( 808 ) the sales template ( 808 ) through an extension ( 146 ) of a browser as an overlay upon a web page of a CRM application. 
     In addition to such processes from the example method of  FIG. 8 , the method of  FIG. 9  also includes configuring ( 809 ) by an agent hub ( 122 ) computer memory ( 704 ,  701 ) associating the campaign with actual answers responsive to questions from a sales template. The method of  FIG. 9  illustrates two methods of such memory configuration. The method of  FIG. 9  includes configuring ( 810 ) by the agent hub computer memory according to a logical table ( 704 ), with the table including logical columns associating the campaign ( 106 ) with actual answers ( 712 ) responsive to questions ( 110 ) from a sales template ( 108  on  FIG. 1 ). The method of  FIG. 9  also includes configuring ( 812 ) by the agent hub, as a semantic graph ( 701 ) in physical memory of the agent hub, associations among the campaign ( 106  on  FIG. 7 ) and actual answers ( 712 ,  714 ,  716  on  FIG. 7 ) responsive to questions ( 110 ,  308 ,  312  on  FIG. 7 ) from a sales template ( 108  on  FIG. 1 ). The logical table ( 704 ) associating campaign, questions, and actual answers as well as the semantic graph ( 701 ) are explained in more detail above with reference to  FIG. 7 . 
     It will be understood from the foregoing description that modifications and changes may be made in various embodiments of the present invention without departing from its true spirit. The descriptions in this specification are for purposes of illustration only and are not to be construed in a limiting sense. The scope of the present invention is limited only by the language of the following claims.