Displaying database records on a chat platform

The system allows direct integration and real-time updating of database records within chat sessions, addressing the limitations of conventional chat platforms by enabling efficient data sharing and reducing operational overhead.

JP2026090443APending Publication Date: 2026-06-02SALESFORCE INC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
SALESFORCE INC
Filing Date
2026-02-18
Publication Date
2026-06-02

AI Technical Summary

Technical Problem

Conventional chat platforms do not allow users to seamlessly integrate and update database records within chat sessions, requiring manual formatting and separate systems for data sharing.

Method used

A system that enables users to search, retrieve, and share database records directly within chat sessions by using a server to detect input requests, query databases, and display results, allowing real-time updates and integration of database records into chat platforms.

Benefits of technology

Facilitates seamless integration of database records into chat sessions, saving operational resources by eliminating the need for separate systems and manual formatting, and enabling real-time updates and sharing of data fields.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026090443000001_ABST
    Figure 2026090443000001_ABST
Patent Text Reader

Abstract

This invention provides embodiments of systems, apparatuses, devices, methods, and / or computer program products for displaying database records in a chat platform, as well as combinations and partial combinations thereof. [Solution] In a given embodiment, the server may detect a request to launch a search window containing an input field. In response to detecting a request to launch a search window, the server may display a search window containing an input field. The server may receive a string through the input field. The server may query the database for database records that match the string. The server may receive a selection of database records from a chat participant. The server may display a subset of fields from the database record in the chat session.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Mobile sales representatives often use a chat platform to communicate with colleagues using an online chat platform. Sales representatives may need to communicate database records such as sales records to other colleagues. For example, a sales representative may need to alert another sales representative of a sales opportunity. A sales opportunity may correspond to a sales record that includes multiple data fields. The data fields may be stored in a database. A sales representative may need to share a subset of the data fields with that other sales representative. Further, that other sales representative may need to update a sales record while on the move. For example, that other sales representative may need to update a sales record after a sale has been completed. In that case, in a conventional system, a sales representative needs to share a copy of each individual data field of a database record. Further, the individual data fields are copies of the data fields. Thus, in a conventional system, no interface is provided for quickly updating data fields of a sales record through a chat platform.

Brief Description of the Drawings

[0002] The accompanying drawings, which are incorporated herein and form a part of this specification, illustrate embodiments of the present disclosure and, together with the description, further function to explain the principles of the embodiments and enable one of ordinary skill in the art to make and use the embodiments, either individually or in combination. [Figure 1] FIG. 1 is a block diagram of an architecture of a system for displaying a database record in a chat session, according to some embodiments. [Figure 2A] FIG. 2 is a block diagram of a data flow of a system for displaying a database record in a chat session using a mobile device, according to some embodiments. [Figure 2B]This is a block diagram of the data flow of a system for displaying database records in a chat session using a computing device, according to several embodiments. [Figure 3] This is a user interface for a chat platform, including a chat session and a search window, in several embodiments. [Figure 4] This is a user interface for a chat session that includes database records, in several embodiments. [Figure 5] This is a user interface for an extended view of database records, according to several embodiments. [Figure 6] This is a user interface for a chat session that includes a list of chat participants, in several embodiments. [Figure 7] This is a block diagram of an interface for a desktop collaborative application, according to several embodiments. [Figure 8] This is a block diagram of an interface for a desktop collaborative application, according to several embodiments. [Figure 9] This flowchart shows the process for searching and displaying database records in a chat session, according to several embodiments. [Figure 10] This flowchart shows the process for displaying an initial set of database records in a chat session, according to several embodiments. [Figure 11] This is a block diagram of exemplary components of a mobile device according to one embodiment. [Figure 12] This is a block diagram of exemplary components of a computing system according to one embodiment.

[0003] In drawings, similar reference numbers generally indicate identical or similar elements. Additionally, the number(s) at the left of a reference number generally identify the drawing in which that reference number first appears. [Modes for carrying out the invention]

[0004] This specification provides embodiments of systems, apparatuses, devices, methods, and / or computer program products for displaying database records in a chat platform, as well as combinations and partial combinations thereof.

[0005] In traditional systems, the use of a chat platform only allows users to send messages, images, etc. Furthermore, in traditional systems, users can only share copies of data fields from a database instead of the actual data fields. This means that users cannot update the data fields from the chat platform. In some cases, it may be useful to share the actual data fields from database records within the chat platform so that users can provide the current values ​​of the data fields within the chat platform, and other users can update the data fields as needed.

[0006] In a given embodiment, the server may detect a request to launch a search window containing an input field. The request occurs in a chat platform running a chat session between two or more chat participants. The request may be detected in response to a chat participant selecting an input button on the chat platform. In response to detecting a request to launch a search window, the server may display a search window containing an input field. The server may receive a string through the input field. The server may query the database for database records that match the string. The query may be automatically updated based on modifications to the string. Modifications may include the deletion or addition of characters in the string. The server may display the query results in the chat session. The results may include the name of the database record encoded with the database identifier of the database record. The server may receive a selection of a database record from a chat participant. The server may display a subset of fields of the database record in the chat session.

[0007] The above configuration allows chat participants to search, retrieve, and share database records within chat sessions on the chat platform. As a result, chat participants can seamlessly integrate database records into chat sessions. This avoids the step of using a separate system from the chat platform to retrieve database records. Furthermore, it avoids the need to manually format the retrieved database records so that they can be integrated into chat sessions. Therefore, the above configuration saves operational resources by seamlessly integrating database records into chat sessions.

[0008] Figure 1 is a block diagram of system 100 for sharing collaborative documents with users via instant messaging. System 100 may include one or more mobile devices 102-b and one or more computing devices 104-a, and one or more mobile devices 102-b and one or more computing devices 104-a may be operably and / or communicatively coupled to a cloud collaborative system 170. For example, one or more computing devices 104-a, one or more mobile devices 102-b, and / or the cloud collaborative system 170 of system 100 may all be communicatively and / or operably coupled to each other as part of one or more communication networks via wired connections, wireless connections, or a combination of wired and wireless connections.

[0009] In one exemplary embodiment, one or more communication networks may include, but are not limited to, an ad-hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless wide area network (WWAN), a metropolitan area network (MAN), part of the Internet, part of the public switched telephone network (PSTN), a cellular telephone network, a wireless network, a WiFi network, a WiMAX network, any other type of network, or a combination of two or more such networks.

[0010] In one embodiment, one or more computing devices 104-a may be configured to run one or more applications, which may generally include, but are not limited to, a desktop collaborative application 110. For example, one or more computing devices 104-a may represent a desktop computing device, a server device, a virtual machine running on a desktop computing device and / or a server device, and / or similar. Exemplary implementations of computing devices 104-a are further shown and described with reference to Figure 10.

[0011] In one embodiment, one or more mobile devices 102-b may be configured to run one or more mobile applications, which may generally include, but are not limited to, mobile collaborative applications 112. For example, one or more mobile devices 102-b may represent a mobile phone, a personal digital assistant, a tablet computing device, a portable media player, and the like. Exemplary implementations of mobile devices 102-b are further shown and described with reference to Figure 9.

[0012] In one embodiment, a desktop collaborative application 110 (e.g., a web browser, a native application, etc.) may be configured to visually present (or otherwise display) one or more user interface (UI) views on a display device operably coupled to each computing device 110-a. The one or more UI views may generally be configured to allow users of the desktop collaborative application 110 to chat in real time with other users via each computing device 102-a and / or one or more mobile devices 102-b using one or more chat UI views.

[0013] In one embodiment, a mobile collaborative application 112 (e.g., a mobile web browser, a native mobile application, etc.) is configured to visually present (or otherwise display) one or more user interface (UI) views. The one or more UI views may be configured to allow users of the mobile collaborative application 112 to chat in real time with other users via their respective computing devices 102-a and / or one or more mobile devices 102-b using one or more chat UI views.

[0014] In one embodiment, the cloud collaborative system 170 may include, but is not limited to, a management application program interface (API) gateway 122, a collaborative management system 126, a collaborative communication system 128, a record data store 134, an account data store 136, and a communication data store 138. All of these systems, gateways, and data stores may be connected to each other in a communicative and / or operational manner via one or more wired connections, wireless connections, or a combination of wired and wireless connections, as part of one or more communication networks as shown in Figure 1.

[0015] In one embodiment, the collaborative management system 126 may generally be configured to provide one or more cloud computing services. These one or more cloud computing services may include, but are not limited to, Infrastructure as a Service (IaaS), Software as a Service (SaaS), Platform as a Service (PaaS), Storage as a Service (StaaS), Mobile "Backend" as a Service (MBaaS), Function as a Service (FaaS), and / or any other cloud computing services. In one embodiment, these one or more cloud computing services may also generally be implemented by one or more virtual machines running on one or more server devices.

[0016] In one embodiment, one or more cloud computing services of the collaboration management system 126 may be configured to execute one or more distributed applications that may generally include, but are not limited to, a collaboration management application 140. In one embodiment, the collaboration management application 140 may generally be configured to communicate with and operate with a desktop collaboration application 110 and a mobile collaboration application 112 to provide an interface with a record data store 134 for providing live database records in a chat session.

[0017] In one embodiment, the collaboration management application 140 may retrieve database records from the record data store 134, format the database records into unitary user interface elements, and transmit the unitary user interface elements to a collaboration communication environment.

[0018] In one embodiment, the collaboration management application 140 may also enable multiple users to collaborate together in real time or near real time to design, write, implement, edit, and complete various forms of collaborative content, such as, for example, one or more co-authored documents.

[0019] In one embodiment, the collaboration communication system 128 may generally be configured to provide one or more cloud computing services similar to those described with respect to the collaboration management system 128. In one embodiment, the one or more cloud computing services may also generally be implemented by one or more virtual machines running on one or more server devices.

[0020] In one embodiment, one or more cloud computing services of the collaborative communication system 128 can be configured to execute one or more distributed applications that can generally include, but are not limited to, the collaborative communication application 142. In one embodiment, the collaborative communication application 142 can be configured to communicate with and operate with the desktop collaborative application 110 and the mobile collaborative application 112 to provide real-time instant messaging, as further described herein.

[0021] Although the collaboration management system 126 and the collaborative communication system 128 are shown as separate systems, it can be understood that these two systems can be combined into a composite system. Further, the composite system can then be configured to provide one or more cloud computing services and execute one or more distributed applications that can include, but are not limited to, the collaboration management application 140 and the collaborative communication application 142.

[0022] In one embodiment, the record data store 134 can generally be configured to store database records. As a non-limiting example, the dataset records can be sales account records. The sales account records can include the name of the sales account, potential sales amount, past sales amount, target close date, current clients, past clients, potential clients, and the like.

[0023] In one embodiment, the account data store 136 may generally be configured to manage user account information associated with each user of the collaborative management system 126 and the collaborative communication system 142. Each user's user account information may include, but is not limited to, a user identifier (e.g., the user's email address, unique name, etc.), a full username (e.g., first name and last name, etc.), a user password (e.g., a hashed and salted version of an alphanumeric text), a user image (e.g., a reference to an image or time associated with the user), permission settings, and / or any other information associated with the user.

[0024] In one embodiment, the communication data store 138 may be configured to store chat history information relating to chat (or instant message) history between one or more users. In one embodiment, the chat history may include information relating to all chat sessions and / or conversations between a set of users. In one embodiment, the chat history information for each chat history between a set of users may include, but is not limited to, a chat user list identifying user identifiers of users involved in an instant message conversation, a chat history identifier uniquely identifying the chat history between the set of users, and / or a list of collaborative communication messages between the set of users. The chat history may include transmissions between the set of users. For example, transmissions may include alphanumeric text, images, emojis, stickers, GIFs, and database records.

[0025] Each of one or more transmissions may include, but is not limited to, a set of transmission attributes and transmission content. In one embodiment, the set of communication message attributes may include, but is not limited to, a transmission time attribute that identifies the time the transmission was sent, a sender attribute that identifies the user in a set of users who sent the transmission, and / or any other transmission attributes. In one embodiment, the transmission content may include, but is not limited to, alphanumeric text associated with the actual communication message stored in one or more text-encoded and / or interpreted languages ​​(e.g., hyper or a subset thereof).

[0026] In one embodiment, the management API gateway 122 may generally be configured to provide one or more APIs to enable one or more applications (e.g., a collaborative management application 140, a collaborative communication application 142, etc.) to communicate with the desktop collaborative application 110 and the mobile collaborative application 112. For example, the management API gateway 122 may be configured to manage any incoming requests according to one or more communication protocols and to provide corresponding responses between one or more applications and the collaborative management system 126 and / or the collaborative communication system 128.

[0027] Figure 2A is a block diagram of the data flow 200 of a system for displaying database records in a chat session using a mobile device. In a given embodiment, a mobile collaborative application 112 on a mobile device 102-1 may send a request 204-1 to a collaborative communication system 128 to start a chat session with one or more chat participants. For example, the mobile collaborative application 112 may launch the chat platform in response to input received from a user. As described above, the chat platform may be an application that enables two or more chat participants to start a chat with each other. Chat participants may be users of mobile device 102-1 or computing device 104-1. Two or more chat participants may use the chat platform to send messages, images, emojis, GIFs, database records, etc., to each other. Sending between two or more users may be sent and received in a chat session. A chat participant may have multiple chat sessions with different chat participants using the chat platform.

[0028] According to one embodiment, a user may log in to the chat platform using a username and password or other authentication method. Upon entering the chat platform, the user (e.g., a chat participant) may provide identifiers of one or more other users with whom the user wishes to initiate a chat. Identifiers may include usernames (such as the username used when logging in), handles, employee ID numbers, student ID numbers, randomly generated identifiers, etc. Request 204-1 may include the user identifier of the user and the identifier of each of the one or more other users.

[0029] In response to receiving request 204-1, the collaborative communication application 202 may send request 204-2 to the communication data store 138 to determine whether there is an existing chat session between the user and one or more other users. In response to determining that there is no chat session between the user and one or more other users, the communication data store 138 may send response 204-3 to the collaborative communication application 202. Response 204-3 may indicate that there is no chat session between the user and one or more other users.

[0030] In response to receiving response 204-3, the collaborative communication application 202 may initiate a new chat session between the user and one or more other users. The user and one or more other users may be chat participants in the chat session. Therefore, the chat session may contain two or more chat participants. The collaborative communication application 202 may generate a chat session identifier along with the chat session. The chat session identifier may be stored in the communication data store 138. The collaborative communication application 202 may send response 204-4 to the mobile collaborative application 112. Response 204-4 may include an instruction to the chat platform to initiate a new chat session.

[0031] The mobile collaborative application 112 may, in response to receiving response 204-4, initiate a new chat session on the chat platform between two or more chat participants. The chat platform may include a message composer and one or more input buttons. Each of the two or more chat participants may use the chat platform to send alphanumeric messages, images, GIFs, emojis, and database records in the chat session.

[0032] A given chat participant may send messages to each other in a chat session using the mobile collaborative application 112. Each alphanumeric message may be encoded using one or more writing languages ​​(e.g., HTML or a subset thereof). Messages between two or more chat participants may be stored in the communication data store 138. Messages may be stored in the communication data store 138 in (near) real time. Alternatively, messages may be stored periodically in the communication data store 138. Messages may be stored in the communication data store 138 as chat history and may be associated with each other using chat session identifiers.

[0033] The mobile collaborative application 112 can detect input from chat participants in a chat session. The input may be the selection of an input button to search for a database record. In response to receiving the input, the mobile collaborative application 112 may send a request 208-1 to the collaborative communication system 128 to retrieve the database record.

[0034] Request 208-1 may include the identifier of the chat participant who selected the input button. The collaborative communication application 202 may receive request 208-1 and send request 208-2 to retrieve a list of database records associated with the chat participant. For example, the database records may be sales records. If the chat participant was working on a client for the sales record, the sales record may be associated with the chat participant.

[0035] In response to receiving request 208-2, the collaborative management application 140 may send query 208-3 to the account data store 136 to retrieve information about the chat participant using the chat participant's identifier. This information may include their full name, title, permission settings, etc. The collaborative management application 140 may then send query 208-4 to retrieve a list of database records from the record data store 134 associated with the chat participant using the chat participant's information. This list of database records may include database records associated with the chat participant that are of interest to them, as well as database records that the chat participant is permitted to view.

[0036] For example, query 208-4 may return database records associated with a chat participant based on information about that chat participant, such as their title. For instance, the database record could be a sales record, and the sales record could be associated with the chat participant because of their title. Additionally, the sales record might be associated with the chat participant because they were working on a sale that corresponds to the sales record. Therefore, the sales record might include the chat participant's full name or identifier. Query 208-4 may return any sales record that includes the chat participant's full name or identifier. Furthermore, query 208-4 may use the chat participant's permission settings to return database records that the chat participant is permitted to view. Additionally, query 208-4 may also retrieve database records that might be of interest to the chat participant. For example, if the database record is a sales record that includes a field about a potential sales price above a threshold amount, the sales record might be of interest to the chat participant. Therefore, query 208-4 may return the sales record.

[0037] The collaborative management application 140 may generate response 208-5. The response may include a list of database records. The collaborative management application 140 may send response 208-5 to the collaborative communication application 202. In response to receiving response 208-5, the collaborative communication application 202 may generate response 208-6. Response 208-6 may include an instruction to launch a search window containing a list of database records. The collaborative management application 140 may send response 208-5 to the mobile collaborative application 112.

[0038] In response to receiving response 208-5, the mobile collaborative application 112 may launch a search window containing a list of database records, or display a list of database records below the message composer. The search window may include an input field. The input field may accept a string for searching for database records. The list of database records may include the names and icons of the database records.

[0039] The mobile collaborative application 112 may detect when a chat participant enters a string into the input field of a search window. The string may be linked to a request to search for database records that match the string. The string may contain alphanumeric characters. In response to detecting the input of the string, the mobile collaborative application 112 may generate request 209-1. For example, request 209-1 may be generated in response to receiving the first character of the string. Request 209-1 may be for searching and retrieving all database records that match the string. Request 209-1 may contain the chat participant's string and identifier.

[0040] The mobile collaborative application 112 may send request 209-1 to the collaborative communication application 202. The collaborative communication application 202 may send request 209-2 to the collaborative management application 140 to retrieve all database records that match the string. Request 209-2 may include the string and the identifier of the chat participant.

[0041] In response to receiving request 209-2, the collaborative management application 140 may send query 209-3 to the account data store 136 using an identifier to retrieve information about the chat participant. Query 209-3 may include information about the chat participant, including permission settings. The collaborative management application 140 may send query 209-4 to the record data store 134 to retrieve any database records that have a database name field matching a string. Query 209-4 may return all database records that have a name field matching a string and are permitted to be viewed by the chat participant based on permission settings. The collaborative management application 140 may generate response 209-5 and send response 209-5 to the collaborative communication application 202. Response 209-5 may include search results containing the database records retrieved by query 208-4.

[0042] The collaborative communication application 202 may receive response 209-5 and generate response 209-6. Response 209-5 may include an instruction to display the search results, including the database records contained in response 209-5, in the search window. The mobile collaborative application 112 may display the search results, including the database records, in the search window.

[0043] Database record searches can be live searches; that is, chat participants can continuously modify strings in input fields. In response to string modifications, requests 209-1 and 209-2 will have the modified strings. Furthermore, query 209-4 may return updated search results containing database records that match the modified strings. Responses 209-5 and 209-6 may be updated to include the updated search results. In response to receiving response 209-6, the mobile collaborative application 112 may display updated search results containing database records that match the modified strings. In view of the above, requests 209-1, 209-2, query 209-4, response 209-5, and response 209-6 can be updated in (near) real time in response to string modifications. String modifications may include the deletion or addition of characters.

[0044] The mobile collaborative application 112 may detect a selection of a database record in the search results. The selection may be linked to a request to include the selected database record in the chat session. The mobile collaborative application 112 may generate a request 210-1 to retrieve a subset of fields from the selected database record. The mobile collaborative application 112 may send the request 210-1 to the collaborative communication application 202. The request 210-1 may include a database record identifier (e.g., name, unique ID, etc.) and identifiers of two or more chat participants.

[0045] The collaborative communication application 202 may receive request 210-1 and send request 210-2 to the collaborative management system 126 to retrieve a database record. Request 210-2 may include a database record identifier and identifiers of two or more chat participants.

[0046] In response to the collaborative management application 126 receiving request 210-2, the collaborative management application 140 may send a query 210-3 to retrieve a database record from the record data store 134 using the database record identifier. The collaborative management application 140 may format the retrieved database record into a unitary user interface element containing a subset of the fields of the database record. For example, based on chat session settings or preferences, the collaborative management application 140 may determine that a subset of fields from a given amount of fields in the database record should be rendered in the chat session.

[0047] The collaborative management application 140 may encode unitary user interface elements with database record identifiers. The collaborative management application 140 may encode unitary user interface elements with links to screens for extended views of database records, as shown in Figure 5. The links may be URLs / URIs.

[0048] Unitary user interface elements may also include icons (e.g., small images). The collaborative management application 140 may retrieve icons for database records based on the values ​​of fields within those records. For example, a database record might be a sales record. A sales record could be for an existing client, a past client, or a potential client. In this context, the icon might represent the client type.

[0049] The collaborative management application 140 may also send a query 210-4 to retrieve permission settings for chat participants from the account data store 136 using identifiers of two or more chat participants. The permission settings may indicate which database record fields a given chat participant is allowed to view. For example, one chat participant in a chat session may be allowed to view all fields of a database record. Conversely, different chat participants in the chat may be allowed to view only some of the database fields. Based on the permission settings, the collaborative management application 140 may determine which fields from a subset of fields within a unitary user interface element a given chat participant is allowed to view. In this regard, if a given chat participant is not allowed to view a field, the collaborative management application 140 may remove that field from the subset of fields within the unitary user interface element. In this regard, the collaborative management application 140 may generate different unitary user interface elements for each chat participant in a chat session. These different unitary user interface elements may be included in response 210-5. The collaborative management application 140 may transmit response 210-5 to the collaborative communication system 128.

[0050] The collaborative management application 202 may receive response 210-5. Response 210-5 may contain different unitary user interface elements for chat participants in a chat session. The collaborative management application 202 may generate response 210-6. Response 210-6 may contain unitary user interface elements for a given chat participant. As described above, the unitary user interface elements may be specific to a given chat participant based on the chat participant's permission settings. Different responses 210-6, each containing a different unitary user interface element, may be generated for different chat participants. The collaborative management application 202 may send response 210-6 to the mobile collaborative application 112.

[0051] The mobile collaborative application 112 may display unitary user interface elements corresponding to database records in the chat platform's message composer. In response to receiving a selection of the submit button, the mobile collaborative application 112 may include unitary user interface elements in the chat session. The unitary user interface elements may include a subset of fields of a database record that a given chat participant is permitted to view.

[0052] As described above, unitary user interface elements can be encoded with a database record identifier and a link to an extended view of the database record. In response to a chat participant selecting a unitary user interface element, an extended view of the database record may be displayed. An extended view of the database record may be shown in Figure 5.

[0053] In some embodiments, a user may input a message into the message composer while unitary user interface elements are being submitted to the message composer. The message and unitary user interface elements may be sent together in response to the selection of a submit button.

[0054] In some embodiments, a user may wish to direct a message from a database record to a specific chat participant. The chat participant may or may not be included in the chat session. When a database record is submitted to the message composer, the message composer may receive input of a predetermined character (e.g., "@"). The mobile collaborative application 112 may detect the input of the predetermined character and generate a request 211-1 to retrieve a list of chat participants (e.g., users). The mobile collaborative application 112 may send the request 211-1 to the collaborative communication application 202. The request 211-1 may include identifiers of chat participants and other chat participants within the chat session.

[0055] The collaborative communication application 202 may send query 211-2 to the account data store to retrieve the usernames of other chat participants in the chat session. The collaborative communication application may encode the usernames of other chat participants in the chat session with a chat participant identifier and a link to the chat participant's information in the account data store 136. The collaborative communication application 202 may generate response 211-3 and send it to the mobile collaborative application 112. Response 211-3 may contain the encoded usernames of the other chat participants. Response 211-3 may also contain instructions for displaying the encoded usernames under the message composer.

[0056] The mobile collaborative application 112 may render the encoded username below the message composer. The mobile collaborative application 112 may detect the selection of one of the usernames. In response to detecting the selection of one of the usernames, the mobile collaborative application 112 may include the encoded username in the message composer. The message composer may include unitary user interface elements and the encoded username. In response to the selection of the submit button, the mobile collaborative application 112 may include the database record and the encoded username in the chat session.

[0057] In some embodiments, a chat participant may wish to send unitary user interface elements to another chat participant in a private chat session. In this case, in response to receiving a selection of the submit button, the mobile collaborative application 112 may generate a request 212-1 to start a new chat session, which includes the chat participant and another chat participant corresponding to an encoded username in the message composer. Request 212-1 may include identifiers for the chat participant and the other chat participant.

[0058] The collaborative communication application 202 may send a request 212-2 to the communication data store 138 to determine whether there is an existing chat session between a chat participant and another chat participant. In response to determining that there is no existing chat session between the chat participant and another chat participant, the communication data store 138 may send a response 212-3 to the collaborative communication application 202. Response 212-3 may indicate that there is no existing chat session between the chat participant and another chat participant.

[0059] In response to receiving response 212-3, the collaborative communication application 202 may initiate a new chat session between one chat participant and another chat participant. The collaborative communication application 202 may also generate a chat session identifier along with the chat session. The chat session identifier may be stored in the communication data store 138. The collaborative communication application 202 may send response 204-4 to the mobile collaborative application 112. Response 212-4 may include instructions to the chat platform to initiate a new chat session and include unitary user interface elements and an encoded username.

[0060] In response to receiving response 212-4, the mobile collaborative application 112 may initiate a new chat session between one chat participant and another chat participant on the chat platform. The chat session may include unitary user interface elements and encoded usernames.

[0061] Figure 2B is a block diagram of the data flow 220 of a system for displaying database records in a chat session using a computing device. The computing device 104-1 may include a desktop collaborative application 110. The desktop collaborative application 110 may provide an interface for accessing complete records from the record data store 134. Thus, users can use the desktop collaborative application 110 to access, add, modify, and delete records from the record data store 134. The desktop collaborative application 110 may also provide a chat platform for users to communicate with each other. Users can use the chat platform to share messages, images, GIFs, and emojis. Furthermore, users can use the chat platform to share database records directly from the record data store 134.

[0062] For example, a user may attempt to access a database record using the desktop collaborative application 110. The desktop collaborative application 110 may send a request 222-1 to the collaborative management application 140 to retrieve the database record. The request may include the user identifier and the database record identifier. The collaborative management application 140 may use the user identifier to send a query 222-2 to the account data store 136 to retrieve the user's permission settings. The collaborative management application 140 may use the database record identifier and the user's permission settings to send a query 222-3 to retrieve a data record from the record data store 134. Query 222-3 may return the database record to the desktop collaborative application based on the user's permission settings. For example, if the permission settings do not allow the user to view the database record, query 222-3 may not return the database record. Alternatively, if the permission settings allow the user to view a portion of the database record, query 222-3 may return a portion of the database record. Furthermore, if permission settings allow the user to view the complete database record, query 222-3 may return the complete database record.

[0063] The collaborative management application 130 may send response 222-4 to the desktop collaborative application 110. Response 222-4 may include the results of query 222-3. The results may include a message indicating that the user is not permitted to view a database record, a portion of a database record, or the complete database record. The desktop collaborative application 110 may display the message, the portion of the database record, or the complete database record for the user.

[0064] The desktop collaborative application 110 may receive a selection of the in-chat share button from the user. The desktop collaborative application 110 may generate a request 223-1 to retrieve a database record for sharing in the chat session. Request 223-1 may be a request to share a subset of fields in the entire database record or a subset of fields in the attributes of the database record. For example, attributes may include contacts in the database record. Request 223-1 may be linked to sending contact information about the contacts. The desktop collaborative application 110 may generate a request 223-1 based on the page being viewed by the user. Therefore, if the user is viewing the entire database record and has selected the in-chat share button, the desktop collaborative application 110 may generate a request 223-1 to retrieve a subset of fields in the database record. Alternatively, if the user is viewing contact information in the database record and has selected the in-chat share button, the desktop collaborative application 110 may generate a request 223-1 to retrieve a subset of fields in the contacts.

[0065] The desktop collaborative application 110 may send request 223-1 to the collaborative communication application 204. Request 223-1 may include a database record identifier.

[0066] The collaborative communication application 202 may receive request 223-1 and send request 223-2 to the collaborative management system 126 to retrieve a database record. Request 223-2 may include a database record identifier.

[0067] In response to the collaborative management application 126 receiving request 223-2, the collaborative management application 140 may send query 223-3 to retrieve a database record from the record data store 134 using the database record identifier. The collaborative management application 140 may format the retrieved database record into a unitary user interface element containing a subset of the fields of the database record. For example, based on chat session settings or preferences, the collaborative management application 140 may determine that a subset of fields from a given number of fields in the database record should be rendered in the chat session.

[0068] The collaborative management application 140 may encode unitary user interface elements with database record identifiers. The collaborative management application 140 may encode unitary user interface elements that have links to the complete database record.

[0069] Unitary user interface elements may also include icons (e.g., small images). The collaborative management application 140 may retrieve icons for database records based on the values ​​of fields within those records. For example, a database record might be a sales record. A sales record could be for an existing client, a past client, or a potential client. In this context, the icon might represent the client type.

[0070] The collaborative management application 140 may send response 223-4 to the collaborative communication application 202. Response 223-4 may include unitary user interface elements. The collaborative management application 140 may generate response 223-5 and send it to the desktop collaborative application 110. Response 223-5 may include unitary user interface elements and a command to open a chat window.

[0071] The desktop collaborative application 110 may generate a new chat window for the chat platform. Unitary user interface elements may be submitted to the message composer. The user may enter a string in the recipient field of the chat window that corresponds to the name of an existing chat session or one or more usernames of other users. The desktop collaborative application 110 may generate request 224-1 and send it to the collaborative communication application 202. Request 224-1 may include a string that corresponds to an existing chat session or the name of one or more other users.

[0072] The collaborative communication application 202 may send a request 224-2 to the communication data store 138 to determine whether a chat session with a name or one or more usernames matching the string exists in the communication data store 138. The communication data store 138 may send a list of all existing chat sessions that match the string in response 224-3. In response 224-4, the collaborative communication application 202 may send the list of existing chat sessions that match the string to the desktop collaborative application 110.

[0073] The desktop collaborative application 110 may display a list of existing chat sessions in the chat window with respect to the recipient field. The list of chat sessions may include the name of the chat session or the usernames of the chat participants in the existing chat session. Each chat session in the list may be encoded with a chat session identifier.

[0074] The search can be a live search. The search for existing chat sessions can be updated (almost) in real time as the user modifies the string corresponding to the name of an existing chat session or the username of one or more other users. Thus, requests 224-1 and 224-2 can be continuously updated in response to string modifications. Furthermore, the communication data store 138 can send an updated list of chat sessions based on the modified string in response 224-3. The collaborative communication application 202 can also send an updated list of chat sessions in response 224-4. As a result, the list of chat sessions displayed by the desktop collaborative application can be continuously updated as strings are modified.

[0075] The desktop collaborative application 110 may receive a selection of one existing chat session from a list. The desktop collaborative application 110 may send a request 225-1 to the collaborative communication application 202 to retrieve the selected chat session. The request 225-1 may include a chat session identifier. The collaborative communication application 202 may use the chat session identifier to send a query 138-2 to the communication data store 225 to retrieve the chat session. The communication data store 138 may return the chat session to the collaborative communication application 202. The chat session may include a chat history between a user and one or more other users. The user or one or more other users may be chat participants. The chat history may include transmissions between chat participants. Transmissions may include messages, images, emojis, GIFs, and database records.

[0076] The collaborative communication application 202 may send a response 225-3 to the desktop collaborative application 110. The response 225-3 may include a chat session. The desktop collaborative application 110 may display the chat session in a chat window.

[0077] As mentioned above, unitary user interface elements can be submitted to the message composer. Users can select the submit button to include unitary user interface elements in the chat session.

[0078] In some embodiments, a user can initiate a new chat session with one or more other users on the chat platform, as described with respect to Figure 2A.

[0079] The desktop collaborative application 110 can receive a chat button selection from the user. The desktop collaborative application 110 can generate a request 226-1 to retrieve all existing chat sessions including the user and send it to the collaborative communication application 202. Request 226-1 may include the user's identifier. The collaborative communication application 202 can use the user's identifier to send a query 226-2 to the communication data store 138 to retrieve all chat sessions including the user. The communication data store 138 may return a list of chat sessions including the user to the collaborative communication application 202.

[0080] The collaborative communication application 202 can generate a response 226-3 that includes a list of chat sessions containing users. The list of chat sessions may include the names of the chat sessions or the usernames of one or more users within the chat sessions. Each chat session in the list may be encoded with a chat session identifier. The collaborative communication application 202 may transmit the response 226-3.

[0081] The desktop collaborative application 110 may display a list of chat sessions with respect to the chat button. The desktop collaborative application 110 may receive a selection of a chat session from the list. The desktop collaborative application 110 may send a request 227-1 to the collaborative communication application 202 to retrieve the selected chat session. The request 227-1 may include a chat session identifier. The collaborative communication application 202 may use the chat session identifier to send a query 138-2 to the communication data store 227 to retrieve the chat session. The communication data store 138 may return the chat session to the collaborative communication application 202.

[0082] The collaborative communication application 202 may send a response 227-3 to the desktop collaborative application 110. The response 227-3 may include a chat session and an instruction to open a chat window containing the chat session. The chat session may include a chat history between two or more chat participants (e.g., a user and one or more other users). The chat history may include unitary user interface elements corresponding to database records.

[0083] The desktop collaborative application 110 can receive a user's selection of a unitary user interface element. As described above, the unitary user interface element may be encoded as a link to the complete database record. In response to the selection of the unitary user interface element, the desktop collaborative application 110 may display the complete database record.

[0084] Figure 3 shows a user interface for a chat platform, including a chat session and a search window, according to several embodiments. In a given embodiment, a mobile device 102-1 may render the user interface of a chat platform running on a mobile collaborative application. The chat platform may include a chat session 300. A chat session may be between a user of mobile device 102-1 and another chat participant. The name of the chat participant 302 may be displayed at the top of the chat session 300. If multiple chat participants are included in the chat session, the chat session may include a group name or the name of each chat participant. The name may be the actual name of the chat participant or a user identifier (e.g., a screen name).

[0085] The chat session 300 may include transmissions between chat participants, including a message 304. The chat session 300 may also include a date and time element 306 indicating the date and time the message was sent. Furthermore, the chat session 300 may also include a delivery confirmation element 308 indicating that the message was delivered.

[0086] The chat platform may include a message composer 310 and input buttons 312-318. The message composer 310 may be used to compose and send messages in the chat session 300. Button 312 may be selected to send an image in the chat session 300. Button 314 may be selected to send an emoji or GIF. Button 316 may be selected to search for and send a database record. Button 318 may be selected to initiate a search for a user or a database record. In response to selecting button 318, the "@" key may be entered into the message composer 310, and a list of chat participants may be displayed. Chat participants may search for a specific chat participant by entering an alphanumeric string after the "@" key. Chat participants may use the keyboard 320 to enter a message into the message composer 310 and send the message in the chat session 300.

[0087] In response to selecting button 316, a search window 322 may be launched. The search window 322 may be overlaid on the chat session. The search window 322 may be collapsed by pulling down tab 323. The search window 322 may include an input field 324 and a list of database records 326. As shown with reference to Figure 2, the database records included in the list of database records may include database records associated with chat participants or database records that may be of interest to chat participants.

[0088] A list of database records may include the name and icon of each database record. Both the name and icon may be selectable. In response to selecting any of the database records, a request may be sent to retrieve the unitary user interface element corresponding to that database record.

[0089] A user can search for database records by typing a string into input field 324 using keyboard 320. The search can be a live search. Therefore, the search can be updated in (near) real time as the user modifies the string. In this regard, in response to the user typing the character "a" into input field 324, a list of database records whose names begin with the character "a" may be displayed. If the user adds the character "bc" and the string becomes "abc", the list of database records is updated to include all database records whose names begin with the character "abc". If the user removes "b" from the string and the string becomes "ac", the list of database records is updated to include all database records whose names begin with "ac".

[0090] Figure 4 shows a user interface for a chat platform that includes a chat session containing database records, according to several embodiments. A chat session 400 may include transmissions between two or more chat participants. Transmissions may include images, text messages, and database records.

[0091] As shown in Figure 3, in response to a chat participant selecting a database record from a list of database records, the database record may be included as a unitary user interface element 402. The unitary user interface element 402 may include a status element 404 that indicates the status of the database record. For example, the database record may be a sales record. The status may indicate that the sale is ending this month. The unitary user interface element 402 may also include a subset of fields 406 and a message element 408. The message element 408 may indicate whether any of the fields have been updated.

[0092] Figure 5 shows a user interface for an extended view of a database record in several embodiments. A user may view an extended view 500 of a database record (for example, a database record corresponding to a unitary user interface element 402, as shown in Figure 4) in response to the user selecting a database record within a chat session. A mobile device 102-1 may render a user interface for a chat platform running on a mobile collaborative application. The user interface may include an extended view 500 of a database record. The extended view 500 may include additional fields not included in the unitary user interface element of the database record contained in the chat session. The extended view 50 may also include a button 502, which may be selected to view the database record in the backend system.

[0093] The user can edit a field in a database record by selecting Edit 504. In response to the selection of Edit 504, the mobile collaborative application may send a request to the collaborative communication system. This request may include the identifier of the user who selected Edit 504. The collaborative communication system may forward the request to the collaborative management system. The collaborative management application may use the identifier to retrieve the user's permission settings. The permission settings may indicate which fields in the database record the user can edit. The collaborative management application may send the permission settings to the collaborative communication system. The collaborative communication application may make the fields that the user is allowed to edit in the extended view 500 editable by the user. The user's edits may be stored in the record data store. In response to the user selecting Done 506, the user can return to the chat session.

[0094] Figure 6 shows a user interface for a chat platform that includes a chat session containing a list of chat participants, according to several embodiments. The chat session 400 may include a unitary user interface element 402 representing a database record. Furthermore, a chat participant may wish to direct a message to another chat participant. The message may include a unitary user interface element 402. The chat participant may select an input button 318. In response to selecting the input button 318, the "@" character 602 may be entered into the message composer 310. Furthermore, the list of chat participants 600 may be displayed to the message composer 310. The list of chat participants 600 may be part of the chat session 400. Alternatively, the list of chat participants 600 may include chat participants who are not part of the chat session 400.

[0095] Chat participants can type strings to search for other chat participants. The search can be a live search. Therefore, the search can be updated in (almost) real time as the user modifies the string. In this regard, in response to a user typing the letter "x" into the message composer, a list of chat participants whose names begin with the letter "a" may be displayed. If the chat participant adds the letter "yz" to make the string "xyz", the list of chat participants will be updated to include all chat participants whose names begin with the letters "xyz". If the chat participant removes the letter "y" from the string to make the string "xz", the list of chat participants will be updated to include all chat participants whose names begin with "xz".

[0096] A chat participant may select another chat participant from the list of chat participants 600. In response to the selection of a chat participant, the message composer 310 may contain the chat participant's encoded username. The username may be encoded with the chat participant's link and identifier. The link may be to a pre-generated request to navigate to any other mention of the username within the chat session 400.

[0097] A chat participant may submit a message directed to another chat participant by selecting the submit button 319. A message directed to a chat participant may include the message (e.g., text, image, GIF, emoji, or unitary user interface element representing a database record) and the encoded username of another chat participant preceded by the "@" character. The message and the encoded username of another chat participant may be included in chat session 400. Another chat participant may receive a warning that a message directed to them is included in chat session 400. A chat participant in chat session 400 may navigate to any mention of another chat participant by selecting an encoded username included in chat session 400.

[0098] In some embodiments, a private chat session may be generated involving the chat participant and the other chat participant in response to a chat participant sending a message directed to another chat participant. The private chat session may include the message and the encoded username of the other chat participant.

[0099] Figure 7 is a block diagram of an interface for a desktop collaborative application in several embodiments. The desktop collaborative application interface 700 may contain a complete database record containing all data fields of the database record that the desktop collaborative application user is permitted to view. The interface 700 can be used to view, create, modify, and delete database records based on the user's permission settings.

[0100] The desktop collaborative application may also implement a chat platform. Interface 700 may include a chat button 702. In response to selecting the chat button 702, a list of existing chat sessions 704 may be displayed for the chat button 702. The list 704 may include the names of existing chat sessions or the usernames of one or more participants in the chat session. The list 704 may also include a search field 708. The search field 708 may be used to search for existing chat sessions between the user of the desktop collaborative application and other users. The user of the desktop collaborative application may select a chat session 706 to open a chat session.

[0101] Figure 8 is a block diagram of an interface 700 for a desktop collaborative application in several embodiments. The interface 700 may further include a chat share button 800. The chat share button 800 may generate a request to share a database record displayed on the interface 700 in a chat session. The database record may be shared as a unitary user interface element in an existing or new chat session in response to selecting the chat share button 800.

[0102] Interface 700 may also include a chat window 802 containing a chat session between a user of the desktop collaborative application and one or more other users. The chat session may include a unitary user interface element 804 representing a database record. As described above, the unitary user interface element 804 may be encoded with a link to the complete database record. Thus, a user can select the unitary user interface element 804, and in response to the selection of the unitary user interface element 804, the desktop collaborative application may navigate to and display the complete database record corresponding to the unitary user interface element 804.

[0103] Figure 9 is a flowchart illustrating a process for retrieving and displaying database records in a chat session, according to several embodiments. Method 900 may be carried out by processing logic that may include hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executed on a processing device), or a combination thereof. It should be understood that not all steps are required to carry out the disclosures provided herein. Furthermore, as will be understood by those skilled in the art, some of the steps may be carried out simultaneously or in a different order than that shown in Figure 9.

[0104] Method 900 will be described with reference to Figures 1 and 2. However, Method 900 is not limited to its exemplary embodiments.

[0105] In operation 902, the collaborative communication system 128 detects a request to launch a search window containing an input field. The request occurs in a chat platform running a chat session between two or more chat participants. The chat platform may include a message composer and input buttons. The message composer may be configured to receive and send messages from chat participants. The input buttons may be configured to search for and send images, GIFs, emojis, and database records. One of the chat participants may select one of the input buttons on the chat platform that corresponds to searching for and sending database records. The selection of an input button may generate a request to launch a search window.

[0106] In operation 904, the collaborative communication system 128 may display a search window containing an input field in the chat platform. The search window may be displayed on the chat session within the chat platform. Alternatively, the search window may be displayed below the message composer. The collaborative communication system 128 may send a request to the collaborative management system 140 to retrieve a list of database records associated with the chat participant who requested the database record search window. The collaborative management system 140 may identify a set of database records associated with the chat participant who requested the search window based on the account data store and the database record data store. The collaborative management system 140 may send the set of database records to the collaborative communication system 128. The collaborative communication system 128 may display the set of database records in the search window before the user enters any characters into the input field.

[0107] In operation 906, the collaborative communication system 128 receives a string via an input field. The string may contain alphanumeric characters. The collaborative communication system 128 may receive each character as it is entered into the input field. Similarly, the collaborative communication system 128 may receive an instruction that a character has been removed from the string in the input field.

[0108] In operation 908, the collaborative communication system 128 sends a request to the collaborative management system 140 to query the record data store 134 for database records that match the string. The request may be updated in (near) real time as the string is modified. For example, if characters are added to or removed from the string, the request may be updated to include the updated string.

[0109] In operation 910, the collaborative management system 140 executes a query to retrieve database records that match the string. The query is automatically updated when the request is updated. Updating the query involves identifying a first database record based on the initially received string, and then identifying a second database record based on the modified string.

[0110] In operation 912, the collaborative communication system 128 may display database records in the search window. As described above, the collaborative management system 140 may update the query in response to the modified string. In response to identifying a first database record based on the initially received string, the collaborative management system may generate a response to the collaborative communication system 128. The response may include the first database record. The collaborative communication system 128 may display the first database record in the search window. Subsequently, in response to identifying a second database record based on the modified string, the collaborative management system may update the response to the collaborative communication system 128 to include the second database record. The collaborative communication system 128 may display the second database record instead of the first database record in the search window.

[0111] In operation 914, the collaborative communication system 128 receives a selection of database records from the search window. The selection may include a database record identifier. The collaborative communication system 128 may send a request to the collaborative management system for a subset of fields of the database record. The subset of fields that may be in the request may be determined by permission settings, chat preferences, or a combination of both.

[0112] In operation 916, the collaborative communication system 128 displays a subset of fields from the database record in the chat session. The collaborative management system may query the record data store 134 for a subset of fields from the database record. The collaborative management system may generate a unitary user interface element containing the subset of fields from the database record. The collaborative management system may send a response containing the unitary user interface element to the collaborative communication system 128. The collaborative communication system 128 displays the unitary user interface element containing the subset of fields from the database record.

[0113] Figure 10 is a flowchart showing a process for displaying an initial set of database records in a chat session, according to several embodiments. Method 1000 may be carried out by processing logic which may include hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executed on a processing device), or a combination thereof. It should be understood that not all steps are required to carry out the disclosures provided herein. Furthermore, as will be understood by those skilled in the art, some of the steps may be carried out simultaneously or in a different order than that shown in Figure 10.

[0114] Method 1000 will be described with reference to Figures 1 and 2. However, Method 1000 is not limited to its exemplary embodiments.

[0115] In operation 1002, the collaborative communication system 128 detects a request to launch a search window containing an input field. The request occurs on a chat platform that runs a chat session between two or more chat participants. The chat platform may include a message composer and input buttons. The message composer may be configured to receive and send messages from chat participants. The input buttons may be configured to search for and send images, GIFs, emojis, and database records. One of the chat participants may select one of the input buttons on the chat platform that corresponds to searching for and sending database records. The selection of an input button may generate a request to launch a search window.

[0116] In operation 1004, the collaborative communication system 128 may display a search window containing an input field in the chat platform. The search window may be displayed on the chat session within the chat platform. Alternatively, the search window may be displayed below the message composer.

[0117] In operation 1006, the collaborative communication system 128 sends a request to the collaborative management system 140 to retrieve a list of database records associated with the chat participant who requested the database record search window. The database records associated with the chat participant who requested the search window may include database records frequently retrieved by the chat participant, database records recently viewed or modified by the chat participant, or database records that may be of interest to the chat participant based on the attributes of the dataset record. For example, the database record may be a sales record. The attribute may be potential sales revenue. Thus, in response to the potential sales revenue exceeding a threshold amount, the collaborative management system 140 may determine that the sales record may be of interest to the chat participant.

[0118] In operation 1008, the collaborative management system 140 retrieves information about the chat participant from the account data store. This information may include database records that the chat participant frequently retrieves, database records that the chat participant has recently viewed or modified, or database records that may be of interest to the chat participant based on attributes of the dataset record.

[0119] In operation 1010, the collaborative management system 140 retrieves a set of database records from the database record data store based on the retrieved information about the chat participants. For example, the set of database records may include database records associated with or of interest to the chat participants, based on the retrieved information about the chat participants.

[0120] In operation 1012, the collaborative management system generates a response and sends it to the collaborative communication system 128. The response includes a set of database records. In particular, the response may include the names of the sets of database records. Each name may be encoded with a database record identifier.

[0121] In operation 1014, the collaborative communication system 128 displays a set of database records in the search window before the user enters any characters into the input field. The name and icon of each database record may be displayed in the search window.

[0122] Figure 11 shows an exemplary block diagram 1100 of an exemplary embodiment of a mobile device 102 running a mobile collaborative application 112. The mobile device 102 (e.g., a cell phone, tablet, laptop, etc.) may generally be configured to enable or allow a user to access various collaborative content and engage in real-time instant messaging with one or more target users. While Figure 11 shows one exemplary embodiment of the mobile device 102, it should be understood that exemplary embodiments are not limited to this context.

[0123] In one embodiment, the mobile device 102 may generally be configured to provide mobile computing and / or mobile communications and may include, but is not limited to, a memory 1170, a communications component 1174, a mobile processor component 1184, a touch-sensitive display component 1186, a location component 1188, an internal power component 1190, and an image acquisition component 1194, each of which may be operablely connected via an interconnect 1192.

[0124] In one embodiment, the memory 1170 may be configured to store information in volatile and / or non-volatile memory, which generally include, but are not limited to, read-only memory (ROM), random access memory (RAM), dynamic RAM (DRAM), double data rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) flash memory, polymer memory such as ferroelectric polymer memory, ovonic memory, phase-change or ferroelectric memory, SONOS (silicon-oxide-nitride-oxide-silicon) memory, solid-state memory devices (e.g., USB memory, solid-state drive SSD, etc.), and / or any other type of storage medium configured to store information.

[0125] In one embodiment, the memory 1170 may include instruction information arranged for execution by the mobile processor component 1184. In that embodiment, the instruction information may represent one or more applications, including but not limited to at least one operating system 1172 and a mobile collaborative application 112. In one embodiment, the memory 1170 may further include a device data store 1150 which can be configured to store information associated with the mobile collaborative application 112 (e.g., cached chat history).

[0126] In one embodiment, the mobile operating system 1172 may include, but is not limited to, a mobile operating system (e.g., Apple® iOS®, Google® Android®, Microsoft® Windows Phone®, Microsoft® Windows®, etc.) that is generally configured to manage hardware resources (e.g., one or more components of a mobile device 102) and / or software resources (e.g., one or more applications of a mobile device 102).

[0127] In one embodiment, the communication component 1174 may generally be configured to enable the mobile device 102 to communicate directly and / or indirectly with various devices and systems (e.g., a collaborative communication system 128). The communication component 1174 may include, among other elements, a radio frequency circuit (not shown) configured to encode and / or decode information and receive and / or transmit the encoded information as a radio signal at a frequency matching one or more wireless communication standards (e.g., Bluetooth®, Wireless IEEE 802.11, WiMAX IEEE 802.16, Global Systems for Mobile Communications (GSM®), Enhanced Data Rates for GSM® Evolution (EDGE), Long Term Evolution (LTE), Bluetooth standard, Near Field Communications (NFC) standard, etc.).

[0128] In one embodiment, the mobile processor component 1184 may be configured to execute instruction information which may generally include one or more executable and / or interpretable instructions. In one embodiment, the processor component 1184 may be a mobile processor component or a system-on-a-chip (SoC) processor component. Among other elements, the processor component 1184 may comprise a processor circuit, which may further include, but is not limited to, at least one set of electronic circuits configured to execute one or more instructions. Examples of the mobile processor component 1184 may include, but is not limited to, Qualcomm® Snapdragon®, NVidia® Tegra®, Intel® Atom®, Samsung® Exynos, Apple® A7®-A13®, or any other type of mobile processor(s) configured to execute instruction information which may include one or more instructions stored in memory 1170.

[0129] In one embodiment, the touch-sensitive display component 1186 may generally be configured to receive and present visual display information and to provide touch input information based on detected touch-based or contact-based input. Furthermore, the touch-sensitive display component 1186 may include, among other elements, a display device (e.g., liquid crystal display, light-emitting diode display, organic light-emitting diode display, etc.) for presenting visual display information and touch sensors (e.g., resistive touch sensors, capacitive touch sensors, etc.) associated with the display device 1168 for detecting and / or receiving touch or contact-based input information associated with the display device of the mobile device 102-1. Additionally, the touch sensors (or touch sensors) may be integrated with the surface of the display device so that user touch or contact input can substantially correspond to visual display information presented on the display device, such as one or more user interface (UI) views and elements discussed and illustrated herein.

[0130] In one embodiment, the location component 1188 may generally be configured to receive a positioning signal representing positioning information and to provide location information (e.g., the approximate physical location of the mobile device 102-1) determined at least partially based on the received positioning information. Furthermore, the location component 1188 may include, among other elements, a positioning circuit (e.g., a Global Positioning System (GPS) receiver) configured to determine the physical location of the mobile device 102. In some embodiments, the location component 1188 may be further configured to communicate and / or interface with a communication component 1174 to provide higher accuracy and / or faster determination of location information.

[0131] In one embodiment, the internal power component 1190 may generally be configured to power various components and memory of the mobile device 102. In one embodiment, the internal power component 1190 may include and / or operably coupled to an internal and / or external battery configured to power various components (e.g., a communication component 1174, a motion component 1176, a memory 1170, etc.). The internal power component 1190 may also be operably coupled to an external charger to charge the battery.

[0132] In one embodiment, the image acquisition component 1194 may generally be configured to generate digital image information using an image capture device such as a charge-coupled device (CCD) image sensor (not shown). Furthermore, the image acquisition component 1194 may be configured to provide the digital image information captured by the CCD image sensor to a touch-sensitive display component 1186 for visual presentation via the interconnect 1192, mobile operating system 1172, and mobile processor component 1184, or to stream it in other ways.

[0133] Figure 12 shows an exemplary computer system 1200 useful for implementing various embodiments. Furthermore, various embodiments can be implemented using, for example, one or more well-known computer systems, such as the computer system 1200 shown in Figure 12. One or more computer systems 1200 can be used to implement, for example, any of the embodiments described herein, as well as combinations and partial combinations thereof. For example, computer system 1200 may implement one or more computing devices 104-a. In another example, one or more computing systems 1200 may be coupled to communicate with one or more, each configured to run one or more virtual machines (not shown). One or more virtual machines may be managed by one or more virtual machine managers (not shown) configured to provision and / or configure one or more virtual machines on one or more computing systems 1200, or otherwise organized. One or more virtual machines may be further configured as Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), and / or Infrastructure-as-a-Service (IaaS) providers configured to host or otherwise run one or more applications associated with one or more gateways, systems, and / or datastores in Figure 1.

[0134] The computer system 1200 may include one or more processors (also called a central processing unit or CPU), such as processor 1204. Processor 1204 may be connected to a communication infrastructure or bus 1206.

[0135] The computer system 1200 may also include customer input / output devices 1203, such as monitors, keyboards, and pointing devices, which can communicate with the communication infrastructure 1206 through customer input / output interfaces 1202.

[0136] One or more of the processors 1204 may be graphics processing units (GPUs). In one embodiment, a GPU may be a processor that is a dedicated electronic circuit designed to handle mathematically intensive applications. A GPU may have a parallel structure that is efficient for parallel processing of large data blocks, such as mathematically intensive data, images, and videos, which are common in computer graphics applications.

[0137] The computer system 1200 may also include main or primary memory 1208, such as random access memory (RAM). The main memory 1208 may include one or more levels of cache. The main memory 1208 may store control logic (i.e., computer software) and / or data therein.

[0138] The computer system 1200 may also include one or more secondary storage devices or memories 1210. The secondary memory 1210 may include, for example, a hard disk drive 1212 and / or a removable storage device or drive 1214. The removable storage drive 1214 may be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, a tape backup device, and / or any other storage device / drive.

[0139] The removable storage drive 1214 may interact with the removable storage unit 1218. The removable storage unit 1218 may include a computer-accessible or readable storage device that stores computer software (control logic) and / or data. The removable storage unit 1218 may be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and / or any other computer data storage device. The removable storage drive 1214 may read from and / or write to the removable storage unit 1218.

[0140] The secondary memory 1210 may include other means, devices, components, instruments, or other techniques that enable computer programs and / or other instructions and / or data to be accessed by the computer system 1200. Such means, devices, components, instruments, or other techniques may include, for example, a removable storage unit 1222 and an interface 1220. Examples of the removable storage unit 1222 and interface 1220 may include a program cartridge and cartridge interface (such as those found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and / or any other removable storage unit and associated interface.

[0141] The computer system 1200 may further include a communication or network interface 1224. The communication interface 1224 may enable the computer system 1200 to communicate with and interact with any combination of external devices, external networks, external entities, etc. (referenced individually and collectively by reference number 1228). For example, the communication interface 1224 may enable the computer system 1200 to communicate with an external or remote device 1228 through a communication path 1226, which may be wired and / or wireless (or a combination thereof) and may include any combination of LAN, WAN, Internet, etc. Control logic and / or data may be sent to and from the computer system 1200 via the communication path 1226.

[0142] Computer system 1200 may also be, to give some non-limiting examples, a personal digital assistant (PDA), a desktop workstation, a laptop or notebook computer, a netbook, a tablet, a smartphone, a smartwatch or other wearable, an appliance, part of the Internet of Things, and / or an embedded system, or any combination thereof.

[0143] The computer system 1200 may be a client or server that accesses or hosts any application and / or data via any delivery paradigm, including, but is not limited to, remote or distributed cloud computing solutions, local or on-premises software ("on-premises" cloud-based solutions), "as-a-service" models (e.g., Content as-a-service (CaaS), Digital Content as-a-service (DCaaS), Software as-a-service (SaaS), Managed Software as-a-service (MSaaS), Platform as-a-service (PaaS), Desktop as-a-service (DaaS), Framework as-a-service (FaaS), Backend as-a-service (BaaS), Mobile Backend as-a-service (MBaaS), Infrastructure as-a-service (IaaS), etc.), and / or hybrid models that include any combination of the above examples or other service or delivery paradigms.

[0144] Any applicable data structures, file formats, and schemas in computer system 1200 may be derived from standards including, but not limited to, JavaScript® Object Notation (JSON), Extensible Markup Language (XML), Yet Another Markup Language (YAML), Extensible Hypertext Markup Language (XHTML), Wireless Markup Language (WML), MessagePack, XML User Interface Language (XUL), or any other functionally similar representations, either alone or in combination. Alternatively, proprietary data structures, formats, or schemas may be used exclusively or in combination with known or open standards.

[0145] In some embodiments, a tangible non-temporary device or product comprising a tangible non-temporary computer-usable or readable medium storing control logic (software) may also be referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system 1200, main memory 1208, secondary memory 1210, and removable storage units 1218 and 1222, and tangible products embodying any combination thereof. When such control logic is executed by one or more data processing devices (such as computer system 1200), such data processing devices may be made to operate as described herein.

[0146] Based on the teachings contained herein, methods for fabricating and using embodiments of the disclosure using data processing devices, computer systems, and / or computer architectures other than those shown in Figure 12 will be apparent to those skilled in the art. In particular, embodiments may operate with software, hardware, and / or operating system implementations other than those described herein.

[0147] Embodiments of the present disclosure are described above using functional building blocks that demonstrate the implementation of specified functions and their relationships. The boundaries of these functional building blocks are arbitrarily defined herein for the sake of explanation. Alternative boundaries may be defined, as long as the specified functions and their relationships are adequately performed.

[0148] The foregoing descriptions of specific embodiments sufficiently illustrate the general nature of this disclosure so that others can readily modify and / or adapt such specific embodiments for various uses without excessive experimentation and without departing from the general concepts of this disclosure, by applying knowledge in the art. Such adaptations and modifications are therefore intended to be within the meaning and scope of equivalent embodiments of the disclosed embodiments, based on the teachings and guidance presented herein. It should be understood that expressions or terms herein are for illustrative purposes only, and not limiting, so that they may be interpreted by those skilled in the art in light of the teachings and guidance herein.

[0149] The breadth and scope of this disclosure should not be limited by any of the exemplary embodiments described above, but should be defined solely in accordance with the following claims and their equivalents.

Claims

1. It is a method, The steps include: detecting a request by one or more computing devices to launch a search window containing an input field, wherein the request occurs in a chat platform that runs a chat session between two or more chat participants communicating in real time via an instant messaging interface; The steps include: causing one or more computing devices to display the search window based on the request to launch the search window; The steps include receiving a string via the input field by one or more computing devices, A step of sending a query containing the string to a database using one or more computing devices, wherein the query is automatically updated with the modified string based on the modification of the string; The steps include: using one or more computing devices to retrieve results containing database records that match the modified string based on the query, wherein the query is automatically updated for each character received in the modified string; The steps include: displaying the results, including the database records, in the search window using one or more computing devices; The steps include receiving the selection of the database record via the search window by one or more computing devices, The steps include: using one or more computing devices to retrieve permission settings for each of the two or more chat participants based on the selected database records; The steps include: causing one or more computing devices to display a subset of fields from the database record such that the content and scope change according to the permission settings for each of the two or more chat participants, and that it is displayed to each of the two or more chat participants in the chat session; A method that includes this.

2. The method according to claim 1, wherein the automatic update of the query includes the steps of identifying a first database record based on a first portion of the string and identifying a second database record based on the first portion of the string and a second portion of the string, the second portion of the string being received after the first portion of the string.

3. The method according to claim 1, wherein the chat platform includes a message composer configured to receive messages to be sent in the chat session.

4. The steps include detecting the input of a predetermined character in the message composer using one or more computing devices, In response to detecting the input of the predetermined characters, the one or more computing devices are made to display a list of chat participants. The method according to claim 3, further comprising:

5. The method according to claim 1, wherein the request to launch the search window is detected in response to the reception of a button selection.

6. The method according to claim 1, further comprising the step of retrieving a subset of the fields from the database by one or more computing devices in response to receiving the selection of the database records.

7. The method according to claim 1, wherein a subset of the fields of the database record is displayed in the chat session as unitary user interface elements.

8. The method according to claim 1, wherein the chat session includes sending messages between the two or more chat participants.

9. It is a system, Memory and The processor coupled to the aforementioned memory and The processor is equipped with, The detection of a request to launch a search window containing an input field, wherein the request occurs in a chat platform that is running a chat session between two or more chat participants communicating in real time via an instant messaging interface. Based on the request to launch the search window, the window is displayed, Receiving a string via the aforementioned input field, Sending a query containing the aforementioned string to a database, wherein the query is automatically updated with the modified string based on the modification of the string; Based on the aforementioned query, the retrieves results containing database records that match the modified string, wherein the query is automatically updated for each character received in the modified string. To display the results, including the aforementioned database records, in the search window, The selection of the database record is received via the search window, Based on the selected database records, the permission settings for each of the two or more chat participants are retrieved. Display a subset of the fields of the database record such that the content and scope change according to the permission settings for each of the two or more chat participants, and that it is displayed to each of the two or more chat participants in the chat session. A system configured to perform the following actions.

10. The system according to claim 9, wherein the automatic update of the query includes identifying a first database record based on a first portion of the string and identifying a second database record based on the first portion of the string and a second portion of the string, the second portion of the string being received after the first portion of the string.

11. The system according to claim 9, wherein the chat platform includes a message composer configured to receive messages to be sent in the chat session.

12. The aforementioned processor, The process involves detecting the input of a predetermined character in the message composer, In response to detecting the input of the aforementioned predetermined characters, a list of chat participants is generated. The system according to claim 11, further configured to perform the following:

13. The system according to claim 9, which detects the request to launch the search window in response to receiving a button selection.

14. The system according to claim 9, wherein the processor is further configured to retrieve a subset of the fields from the database in response to receiving the selection of the database records.

15. The system according to claim 9, wherein a subset of the fields of the database record is displayed in the chat session as unitary user interface elements.

16. The system according to claim 9, wherein the chat session includes transmissions between the two or more chat participants.

17. A non-temporary computer-readable medium storing instructions, wherein the execution of the instructions is performed by one or more processors of the device, to the one or more processors, The detection of a request to launch a search window containing an input field, wherein the request occurs in a chat platform that is running a chat session between two or more chat participants communicating in real time via an instant messaging interface. Based on the request to launch the search window, the window is displayed, Receiving a string via the aforementioned input field, Sending a query containing the aforementioned string to a database, wherein the query is automatically updated with the modified string based on the modification of the string; Based on the aforementioned query, the retrieves results containing database records that match the modified string, wherein the query is automatically updated for each character received in the modified string. To display the results, including the aforementioned database records, in the search window, The selection of the database record is received via the search window, Based on the selected database records, the permission settings for each of the two or more chat participants are retrieved. Display a subset of the fields of the database record such that the content and scope change according to the permission settings for each of the two or more chat participants, and that it is displayed to each of the two or more chat participants in the chat session. A non-temporary computer-readable medium that enables the execution of actions including [specific actions].

18. The non-temporary computer-readable medium according to claim 17, wherein the automatic update of the query includes identifying a first database record based on a first portion of the string and identifying a second database record based on the first portion of the string and a second portion of the string, the second portion of the string being received after the first portion of the string.

19. The chat platform includes a message composer, and the operation is as follows: The process involves detecting the input of a predetermined character in the message composer, In response to detecting the input of the aforementioned predetermined characters, a list of chat participants is displayed. The non-temporary computer-readable medium according to claim 17, further comprising:

20. The non-temporary computer-readable medium according to claim 17, further comprising retrieving a subset of the fields from the database in response to receiving the selection of the database records.