The present disclosure is generally directed toward connectivity nodes on a network and more specifically connectivity utilizing a plurality of communication types.
Communication devices are readily available that support a plurality of communication types. For example, smart phones and personal computers can communicate via text chat, video chat, proprietary communications (e.g., multi-player/multi-device games), and voice, usually via a cellular or WiFi radio link, to Plain Old Telephone System (POTS) and Session Initiation Protocol (SIP) networks.
In many communication situations one party, on one device, wishes to communicate with another party over a network. If they wish to communicate via a voice telephone call, the number is located and selected or entered and the call is placed. If the communication requires another mode of communication, such as screen sharing, video, whiteboarding, images, etc., then another communication session is established outside of the telephone call. If the party wishes to communicate in text, a text number is located and a text communication application utilized and so on for email, video, etc. Even if a communication channel is established between the parties using one communication type, a separate communication session may be required if the parties need to utilize another communication type. For example, an audio conversation that requires the parties to exchange a document or image may require one party to provide another mode of communication (e.g., email, text, etc.) in which the document may be sent. Even applications that allow for multiple modes of communications (e.g., text or email with attached documents or images) require one to first know what communication modes are available, the application or mode-specific address to use to initiate such communications, and hope the called party is available to accept the calls utilizing the mode or modes selected. While such prior art systems may accomplish the goal of enabling communications via one or more communication modes or types, problems remain.
It is with respect to the above issues and other problems that the embodiments presented herein were contemplated.
Systems, components, and methods are provided to enable a rich communication experience, such as between a customer and a business. However it should be appreciated that the communications described herein may be utilized by other types of entities (e.g., government, education, individuals, etc.) without departing from the scope of the disclosure. The term “business” and “customer” are provided to promote understanding and without limiting the parties involved except as provided herein. In one embodiment, a communication platform is provided that enables communications between parties in any number of modes, switching between modes, maintaining multiple modes, while exchanging content via executable widgets pushed from an agent (business) platform to a customer device engaged in the communication.
One party (e.g., a business) utilizes computing and network connectivity equipment to establish an agent platform, such as on one or more servers attached to a network, whereby attributes of the business are provided and then made available to another party (e.g., a customer) utilizing computing and network connectivity equipment. The attributes may be one or more of static, or at least effectively static (e.g., name of business, physical address, etc.), or dynamic (e.g., today's specials, wait time to video-chat with an agent, availability of a specific loan officer to discuss an application, etc.). A workflow may comprise automated (e.g., “bot”) interactions, human interactions, bot prompted human interactions, human-supervised bot interactions, and/or other workflow components to perform a particular task of the business. The business may script or, via API, integrate existing workflows. Workflows may also be partially or entirely dynamically determined and/or ad hoc. As the workflow progresses, executable components (“widgets”) are pushed to the client device for execution. The widgets provide a compartmentalized component which may enable an alternative mode of communication (e.g., view a video link, share a document, etc.), present and/or obtain information from the customer. Other widgets, including business-specific widgets, are also contemplated by the disclosure herein which may further include, but is not limited to parallel-executing, nested, and/or recursive widgets.
In another embodiment, an interaction between a customer and business may be annotated by the customer and/or a bot or human input provided by the business and the interaction, with any annotations, maintained in a data storage. As a benefit, any or re-initiation of an interaction between the customer and the business may be resumed seamlessly. In another embodiment, an interaction is preserved to maintain a persistence of a particular transaction of a workflow. For example, an interaction that comprises eight steps to complete, but was previously terminated upon completion of step five, may be resumed in the workflow and be re-initiated at step six. Summary widgets may be provided to represent a high-level view of a workflow or task, such as a completed task, incomplete task, etc.
In one embodiment, a mobile messaging platform is disclosed, comprising: a user interface that presents a consumer with information describing a plurality of service providers that meet a search criteria entered by the consumer; and computer memory storing one or more instruction sets, the one or more instruction sets including an instruction set that: enables a determination of business availability information for at least one of the plurality of service providers, the business availability information including one or more of: (i) a presence notification for the at least one of the plurality of service providers, (ii) a communication modality useable between the consumer and the at least one of the plurality of service providers along with a schedule of availability for the communication modality, and (iii) communication history between the consumer and the at least one of the plurality of service providers; and enables a presentation of the business availability information via the user interface along with static information associated with the plurality of service providers that meet the search criteria.
In another embodiment, a server is disclosed, comprising: a data storage; a network interface to a network; and a processor to: maintain, in the data storage, indicia of an entity; obtain a dynamic attribute, via the network interface, with an entity server of the entity and wherein the dynamic attribute comprises a plurality of communication modes; receive an entity request, via the network interface, for the indicia from a user device; send the indicia and dynamic attribute to the user device; receive a selection of one of the plurality of communication modes, from the user device, to communicate with the entity and wherein the selected communication mode comprises at least a portion of the dynamic attribute; and connect the user device with the entity utilizing the selected one of the communication modes.
In another embodiment, a method is disclosed, comprising: maintaining a listing comprising at least one entry and wherein each entry comprises indicia of an entity; obtaining, a dynamic attribute for each entry from a corresponding server of the entity and wherein the dynamic attribute comprises a status of a communication mode; receiving request from a user device for the listing; in response to the received request, sending the listing; receiving, from the user device, a selection, comprising a selected one of the at least one entry and the communication mode; and connecting the user device with the entity utilizing the communication mode.
The phrases “at least one,” “one or more,” and “and/or” are open-ended expressions that are both conjunctive and disjunctive in operation. For example, each of the expressions “at least one of A, B, and C,” “at least one of A, B, or C,” “one or more of A, B, and C,” “one or more of A, B, or C,” and “A, B, and/or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together.
The term “a” or “an” entity refers to one or more of that entity. As such, the terms “a” (or “an”), “one or more,” and “at least one” can be used interchangeably herein. It is also to be noted that the terms “comprising,” “including,” and “having” can be used interchangeably.
The term “automatic” and variations thereof, as used herein, refers to any process or operation done without material human input when the process or operation is performed. However, a process or operation can be automatic, even though performance of the process or operation uses material or immaterial human input, if the input is received before performance of the process or operation. Human input is deemed to be material if such input influences how the process or operation will be performed. Human input that consents to the performance of the process or operation is not deemed to be “material.”
The term “computer-readable medium,” as used herein, refers to any tangible storage that participates in providing instructions to a processor for execution. Such a medium may take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, NVRAM, or magnetic or optical disks. Volatile media includes dynamic memory, such as main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, magneto-optical medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EPROM, a solid-state medium like a memory card, any other memory chip or cartridge, or any other medium from which a computer can read. When the computer-readable media is configured as a database, it is to be understood that the database may be any type of database, such as relational, hierarchical, object-oriented, and/or the like. Accordingly, the disclosure is considered to include a tangible storage medium and prior art-recognized equivalents and successor media, in which the software implementations of the present disclosure are stored.
While machine-executable instructions may be stored and executed locally to a particular machine (e.g., personal computer, mobile computing device, laptop, etc.), it should be appreciated that the storage of data and/or instructions and/or the execution of at least a portion of the instructions may be provided via connectivity to a remote data storage and/or processing device or collection of devices, commonly known to as “the cloud,” but may include a public, private, dedicated, shared and/or other service bureau, computing service, and/or “server farm.”
The terms “determine,” “calculate,” and “compute,” and variations thereof, as used herein, are used interchangeably and include any type of methodology, process, mathematical operation, or technique.
The term “module,” as used herein, refers to any known or later-developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and software that is capable of performing the functionality associated with that element. Also, while the disclosure is described in terms of exemplary embodiments, it should be appreciated that other aspects of the disclosure can be separately claimed.
The present disclosure is described in conjunction with the appended figures:
The ensuing description provides embodiments only and is not intended to limit the scope, applicability, or configuration of the claims. Rather, the ensuing description will provide those skilled in the art with an enabling description for implementing the embodiments. It will be understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the appended claims.
Any reference in the description comprising an element number, without a subelement identifier when a subelement identifier exists in the figures, when used in the plural, is intended to reference any two or more elements with a like element number. When such a reference is made in the singular form, it is intended to reference one of the elements with the like element number without limitation to a specific one of the elements. Any explicit usage herein to the contrary or providing further qualification or identification shall take precedence.
The exemplary systems and methods of this disclosure will also be described in relation to analysis software, modules, and associated analysis hardware. However, to avoid unnecessarily obscuring the present disclosure, the following description omits well-known structures, components, and devices that may be shown in block diagram form and are well known or are otherwise summarized.
For purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the present disclosure. It should be appreciated, however, that the present disclosure may be practiced in a variety of ways beyond the specific details set forth herein.
In another embodiment, user device 106 additionally comprises at least one human input-output component (e.g., speaker, microphone, display, touch-screen display, switches, buttons, etc.) and may further comprise radio frequency transmitters and/or receivers for WiFi, Bluetooth, Near Field Communications, GPS, infrared communications, etc., as well as other computing peripheral components, still camera, video camera, accelerometer, vibration/haptic input/output, orientation, compass, altimeter, etc. In one embodiment, user device 106 is a “smart phone” (e.g., a portable cellular telephone having input, output, and data processing capabilities beyond those required to enable placing and receiving cellular telephone calls). In another embodiment, user device 106 is a personal computer (e.g., laptop, desktop, tablet, etc.).
In another embodiment, some or all instructions executed by the processor of at least one of user device 106, server 102, or server 104 are the sole result of electrical signals through circuitry, such as in an ASIC. While it is helpful to the understanding of the embodiments herein to consider server 102 and server 104 as distinct, in other embodiments, server 102 and server 104 may be co-located or otherwise combined in whole or in part. For example, server 104 may be embodied as a desk top computer utilized by a human to access information stored and/or processed by server 102.
In another embodiment, user device 106 communicates with server 102 via communication link 112 comprising, in whole or in part, network 108. Server 102 and server 104 communicate via communication link 110 comprising, in whole or in part, network 108. Server 104 and user device 106 may communicate directly via communication link 114 or indirectly, via communication links 110 and 112. User device 106, via communications link 112, may provide the appearance of communicating with server 104 while communicating solely with server 102 or with server 104 via server 102. In another embodiment, server 104 is a component of a business entity and server 102 is a component of a service provider distinct from the business entity and server 104, user device 106 is associated with a user, such as a customer (current or prospective), of the business entity.
In another embodiment, display 202 presents information 206, such as regarding listing 204B (“Business B”). Information 206 comprises information accessed from server 102 which may have been obtained from information maintained by server 102 and/or information maintained by server 104, and accessed, such as via one or more APIs, by server 102. Accordingly, information 206 may comprise static information, such as modes of communication 210 that may be utilized by a user of user device 106 to communicate with the business. Additionally or alternatively, user device 106 may access data, via one or more APIs, from server 102 and/or server 104.
In another embodiment, modes of communication 210 may present via icon or other indicia to indicate options to communicate with a selected business and information related to one or more modes of communication 210, which may be dynamic. For example, mode of communication 210A comprises a voice call (e.g., POTS, SIP, VoIP, etc.) and additional information (e.g., the caller should expect to be on hold for fifteen minutes before talking with an agent). Mode of communication 210B comprises a text chat and additional information (e.g., that a wait of less than a minute should be expected before receiving an agent's response). Mode of communication 210C comprises a video chat and is currently unavailable. Video chat, or any one or more modes of communication 210 may be unavailable due a lack of available resources (e.g., processing, communication, agent communication devices utilized by human agents, etc.) to provide communications utilizing that particular mode or modes. As an alternative, customers who require or request the use of a particular mode, that is presently unavailable, may have the option to be notified, such as via prompt 212 or to schedule communication for a future time, such as by selecting an icon associated with mode of communication 210C. In another embodiment, a delay may cause a widget comprising a game, news feed, or other component to provide information or entertainment, or otherwise make the delay more palatable to the user.
In another embodiment, selecting prompt 212 may place the user in a call-queue for the business without requiring the call to be placed, such as via selection of the icon associated with mode of communication 210A. For example, agents may be engaged with other tasks and once the user of device 106 has been enqueued, the text of icon 212, via API and/or other data exchange with server 102 and/or server 104, may issue updates (e.g., count down timer, number of callers ahead in the queue, etc.). When the call is ready to be answered by an agent, the agent, server 102 and/or server 104 may trigger a callback to user device 106 or prompt the user to place the call where it is connected to an agent or joined to the placeholder indicating the caller's position in the queue. Connections may be made automatically, such as when certain steps in a workflow are completed or a particular widget or other action is performed. Such connections may be made automatically or request confirmation by the user and/or agent before proceeding. In other embodiments, other callbacks and/or scheduling may be provided for text, video, or other communication modes.
In one embodiment, actions 306A-306D are associated, in whole or in part, with an automated workflow which may be executed by one or more widgets “pushed” from server 102. Pushing, executing, and utilizing widgets is explained more completely with respect to the interaction depicted by
In another embodiment, display 202 presents updated and/or detailed information. For example business listing 204B is selected and additional information 402 is provided, such as specific contacts 402A-C. Specific contacts 402 may be individuals, departments, divisions, groups, etc. Additionally or alternatively, icons or other indicia of modes of communication, availability, or further details may allow a user to “drill down” into information available. For example, additional information 402A, may indicate the contact is, or can be, available for telephone interactions, additional information 402B is, or will be, available for text chat, and additional information 402C is not currently available or may require additional “drilling down” such as when additional information 402C comprises a department, division, or other group that has individual listings. Server 102 may provide all information, whether selected or not for one or more business listings 204, or detailed information as it is selected.
In another embodiment, user device 106 provides one or more features 606. For example, a user of user device 106 may be authenticated to user device 106 via password, access code, facial recognition, voice recognition, etc. Server 102 may then receive such identification which may, or may not, be provided to server 104 or any one or more of a plurality of servers 104 associated with a corresponding one or more of a plurality of businesses. For example, user device 106 may provide, or be able to provide, authentication information but omit such information, such as a user who wishes to remain anonymous. Additionally or alternatively, identification may be expressly provided or selected. For example, user device 106 may be shared by two or more people, each with an account at a particular business. Accordingly, user device 106 may provide authentication information indicating a default user or alternative user. In yet another embodiment, user device 106 may provide context cues to server 102 which may in turn provide such cues to business 104. For example, a GPS receiver and processor of user device 106 may provide location information. Location information may be relevant (e.g., a request for roadside assistance) or if not, omitted or ignored. Location information may be compared to a repository of relevant locations for the business associated with server 104. For example, an appliance store may not be interested that a user is initiating contact from a particular latitude and longitude, unless such a location indicates the address of a competitor's store or the business's own store. Then location may be highly relevant and the business may process the interaction differently as compared to location information that indicated a house in a residential neighborhood.
In another embodiment, server 102 and user device 106 may enable service discovery, such that a directory of available businesses (e.g., listings 204) is available for browsing, searching, filtering, etc. saving favorites, saving previously contacted businesses, etc. Listings may be searched, filtered, etc. based on business type, location, methods of available communication, etc. For example, one may have an urgent, but non-emergency, medical situation and know that video or still pictures will be important to determine a subsequent action required. Accordingly, a user may cause user device 106 to communicate with server 102 to identify health care providers and those that are available right now to communicate and can support communications comprising video and/or still images.
In another embodiment, server 104 provides one or more features 604. For example, server 104 may be executing an application that maintains availability for one or more resources and/or their current (or schedulable) modes of communication. Server 102 may access such information, via API or other data exchange, and integrate such information in to the presence information presented to user device 106. Server 104 may also provide customized graphical or other elements (e.g., tag lines, logos, etc.) to server 102 to provide a branded presentation for a particular business upon user device 106. Additionally or alternatively, server 104 may select, make available, and/or provide widgets to server 102 to incorporate into an interaction with user device 106. Such widgets may be graphically or otherwise branded for the particular business and/or provide or request information selected by the business as indicated by server 104.
In another embodiment, a user provides inputs to widget 708 to indicate that the task associated with widget 708 has been completed or otherwise indicates the user is done interacting with widget 708. In series or parallel, another widget, widget 710 is provided to user device 106 via widget-push 716, which is then executed by user device 106. Widgets may trigger other widgets, for example widget-push 718 may itself cause widget-push 720, such as to present widget 712.
Server 102 may operate other processes in parallel with interaction 702, for example, components of interaction 702 may be recorded and/or annotated by a human agent, bot, and/or a user associated with user device 106. A separate chat widow (not shown) may be available to ask questions or otherwise provide out-of-dialog communications (e.g., “Here is a picture of my regular paystub, but I get quarterly commission checks starting next month. Let me know if that will be an issue.”).
Widgets may have graphical representations, such as widget 708, 710, and 712 to provide and/or obtain information from a user via user device 106. Widgets maybe scripts or other executable (HTML5, JavaScript, etc.) that, when received by user device 106 within an application utilized for interaction 702, causes the widget to execute. In another embodiment, user device 106 comprises at least one processor. Pushing a widget to an application capable of executing widgets causes the widget, once received into a memory of device 106, to insert the widget into an execution stack of the application and/or the operating system. Accordingly, the widget may execute immediately upon being loaded into memory. However, widgets may also be anticipated and pushed to device 106 to await execution, such as by an application presenting an interaction and waiting for a particular event to occur. For example, an application presenting enabling interaction 702 may know that certain widgets (e.g., 708, 710, 712) will be required and push widgets 708, 710, 712 in advance. An event (e.g., asking for particular piece of information, completion/dismissal of a previous widget, etc.) may then cause a loaded widget to execute.
In another embodiment, widgets may have a state, such as active, completed, and/or historic. For example, during completion of workflow 702, widget 710 may be active, such that it is not completed, or completed but the user may go back and edit the information previously entered. However, at a later point in time, the information provided into widget 710 may no longer be accurate (e.g., the user changed employers, received a raise, etc.). Accordingly, the widget may be have a historic state to indicate the information provided reflected the information at a prior time. Similarly, a widget that displays bank account information may be utilized to determine the state of certain assets utilized in workflow 702. Such information may be dynamic and a subsequent interaction may cause an account balance widget to be identified as historic and display information such as the balance of the account at a particular date and time or that the account balance widget was accessed with balance information omitted. Summary widgets may similarly be preserved such as to maintain a widget providing a summary of a task or an interaction with a particular customer-business. For example, a customer may have a completed home loan summary widget, an inquiry into an auto loan, and an in-progress credit card application maintained as a persistent widget.
In another embodiment, server 808 accesses database 810 comprising a stored widget 812, which may be widget 806 or associated with widget 806 when widget 806 is an indicia of widget 812. Server 808, in communication with user device 106 then pushes widget 814, comprising a transmitted copy of widget 812. Database 810 may be a dedicated widget database or combined with other database tasks, such as maintaining interaction histories, user information, business information, and/or other information related to past, current, and/or future interactions.
In another embodiment, user device 106 comprises memory 816 and at least one processor comprising execution stack 822. Transmitted widget 814, once received is stored in memory 816 as widget 820. Execution stack 822 executes main application 824, such as to facilitate the interaction (e.g., connectivity to server 808, presentation and receiving of information, access to GPS, camera, and/or other components, etc.). Main application 824 may have an execution thread comprising a number of widgets 828, which may comprise address pointers, such as when widgets 828 are addresses to widgets in memory 816, such as 828C indicating the location of widget 820.
Step 906 identifies an action and actor icon 908. In one embodiment, actor icon 908 may indicate the actor to be a human agent, an agent with a particular attribute (e.g., “Loan processing agent,” “Agent based in Eastern Time Zone,” “Agent Fluent in French,” etc.), or a specific agent, such as when a particular customer associated with an interaction has a history with the business. Next, step 910 is performed by bot indicated by actor icon 912, indicating that it is an automated task performed by a processor, such as server 102 which may push a widget to user device 106 for the completion of step 910. Next, step 914 is also performed by a bot indicated by actor icon 916. Additional steps may be performed. Step 918, may be a closing step performed by a human agent indicated by actor icon 920. The actor indicated by actor icon 920 may further indicate any agent, the same agent, a supervisor agent, a customer service agent, or otherwise qualify the agent. Therefore, upon executing a particular implementation of workflow 900 one or more human agents may be scheduled or have tasks enqueued to process tasks requiring human involvement (e.g., step 906 and step 918).
In another embodiment, workflow 900 may be, at least in part, automatically generated and/or modified. For example, if prior users asked for clarification from an agent upon being presented with a particular widget, and the response may be learned by the system and provided automatically as a modified workflow 900.
In another embodiment, optional step 1416 may load a prior interaction, such as when the same user, as identified/verified upon user device 106 in communication with server 102, and the same entity associated with the selected entity indicated in step 1410. Step 1418 then conducts the interaction which may comprise pushing one or more widgets in step 1420.
In the foregoing description, for the purposes of illustration, methods were described in a particular order. It should be appreciated that in alternate embodiments, the methods may be performed in a different order than that described. It should also be appreciated that the methods described above may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used to cause a machine, such as a general-purpose or special-purpose processor (GPU or CPU), or logic circuits programmed with the instructions to perform the methods (FPGA). These machine-executable instructions may be stored on one or more machine-readable mediums, such as CD-ROMs or other type of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other types of machine-readable mediums suitable for storing electronic instructions. Alternatively, the methods may be performed by a combination of hardware and software.
Specific details were given in the description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
Also, it is noted that the embodiments were described as a process, which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium, such as a storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
While illustrative embodiments of the disclosure have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art.
The present application claims the benefit of Provisional Patent Application No. 62/462,227, filed on Feb. 22, 2017, and is incorporated herein by reference in its entirety and for all that it teaches.
Number | Date | Country | |
---|---|---|---|
62462227 | Feb 2017 | US |