Integration between messaging system and collaborative application

By providing an integration mechanism between the messaging system and the collaborative application, using fuzzy identifiers to protect user privacy, and implementing communication through APIs, the lack of integration in the prior art is solved, and automatic notification of document changes and private information exposure of collaborative application are achieved.

CN119678151APending Publication Date: 2025-03-21APPLE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380044294.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-05-30
Filing Date
2023-05-31
Publication Date
2025-03-21

AI Technical Summary

Technical Problem

In the prior art, there is a lack of effective integration between the messaging system and the collaborative application, resulting in the inability of the user to automatically notify the document changes to the messaging system when collaborating on the document in the collaborative application, and the inability to integrate with the collaborative application without exposing the messaging system identifier and content.

Method used

By providing a mechanism that allows users to send messages containing document links to friends or contacts through collaborative applications and automatically displays messages of document changes in the messaging system. This mechanism uses fuzzy identifiers to protect user privacy and enables communication between the messaging system and collaborative applications through APIs.

Benefits of technology

The integration between the messaging system and collaborative applications is realized, allowing users to automatically notify document changes and collaborate without exposing private information, improving user experience and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119678151A_ABST
    Figure CN119678151A_ABST
Patent Text Reader

Abstract

Aspects of the subject technology provide integration between a messaging system and a collaborative application. A messaging system may receive, via user input, instructions to create a message thread having a plurality of user accounts. The message thread may include a document link associated with the collaborative application. The messaging system may generate, for each of the user accounts, a fuzzy identifier associated with that user account and the document link. The messaging system may provide the fuzzy identifier to the collaborative application. An initial message exchanged between the plurality of user accounts with the document link in the message thread may establish the fuzzy identifier to be associated with the document link for the collaborative application.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of priority to U.S. Provisional Patent Application No. 63 / 349,033, filed on June 3, 2022, entitled “INTEGRATION BETWEEN MESSAGING SYSTEMS AND COLLABORATIVE APPLICATIONS,” the disclosure of which is hereby incorporated herein in its entirety. Technical Field

[0003] This specification generally relates to messaging systems, including, for example, integration between messaging systems and collaboration applications. Background Art

[0004] Messaging systems allow people in remote locations to send and receive messages to and from each other. Collaboration applications allow people in remote locations to collaborate on documents. There are several shortcomings in how messaging systems and collaboration applications interface with each other, integrate, and deliver a user experience. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] Certain features of the subject technology are set forth in the appended claims. However, for purposes of explanation, several embodiments of the subject technology are set forth in the following drawings.

[0006] Figure 1 An example network environment for messaging and collaboration is shown in accordance with one or more implementations.

[0007] Figure 2 A schematic diagram illustrating a first electronic device and a second electronic device exchanging messages including a link to a document associated with a collaboration application according to one or more implementations.

[0008] Figure 3 A schematic diagram illustrating a message populated by a messaging system, the message including a document link associated with a collaboration application, is shown in accordance with one or more implementations.

[0009] Figure 4 A schematic diagram of a received message including a document link associated with a collaboration application is shown according to one or more implementations.

[0010] Figure 5 A schematic diagram of a first electronic device and a second electronic device exchanging messages indicating that changes have been made to a linked document associated with a collaborating application in accordance with one or more implementations is shown.

[0011] Figure 6A diagram illustrating a message indicating that a change has been made to a linked document associated with a collaboration application according to one or more implementations.

[0012] Figure 7 A schematic diagram illustrating access to a document being modified when access to a message thread associated with the document has been modified by an electronic device according to one or more implementations.

[0013] Figure 8 A diagram illustrating a notification including a prompt indicating whether access to a document should be modified according to one or more implementations.

[0014] Fig. 9 A flow diagram of an example process for sending a message including a link to a document associated with a collaboration application is shown in accordance with one or more implementations.

[0015] Fig.10 A flow chart is shown of an example process for accessing a document associated with a collaborative application by selecting a document link included in a message received via a messaging system in accordance with one or more implementations.

[0016] Fig.11 A flow diagram of an example process for sending a message indicating that a change has been made to a linked document associated with a collaboration application in accordance with one or more implementations is shown.

[0017] Fig.12 A flow diagram is shown of an example process for facilitating modification of access to a document when access to a message thread has been modified in accordance with one or more implementations.

[0018] Fig.13 A flow diagram of an example process for accessing a message thread about a document from within the document is shown in accordance with one or more implementations.

[0019] Fig.14 An electronic system is shown that can be used to implement one or more implementations of the subject technology. DETAILED DESCRIPTION

[0020] The detailed description listed below is intended to be a description of various configurations of the subject technology and is not intended to represent the only configuration that the subject technology can be practiced. The accompanying drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details intended to provide a thorough understanding of the subject technology. However, the subject technology is not limited to the specific details listed herein, but can be practiced using one or more other specific implementations. In one or more specific implementations, structures and components are shown in block diagram form to avoid blurring the concept of the subject technology.

[0021] A collaboration module (e.g., a collaboration application) running on an electronic device may allow users of the electronic device to collaborate with each other, such as on a document (e.g., a text document, a spreadsheet, a slideshow, etc.). Some collaboration applications may restrict access to certain documents so that only a defined set of users can access the document. The defined set of users may include, for example, only those users who have been granted permission to collaborate on the document. In some cases, such permission may have been granted by the user who created the document and / or from other users who already have permission to collaborate on the document.

[0022] In some cases, a defined set of users may be able to modify (e.g., change) a document. For example, a defined set of users may each be able to add text, images, video, audio, charts, tables, comments, or reactions to a document. For another example, a defined set of users may each be able to delete text, images, video, audio, charts, tables, comments, or reactions from a document. For another example, a defined set of users may each be able to tag or mention other users from the defined set of users in a document.

[0023] In some cases, the defined set of users may change over time. For example, a new user may be granted permission to collaborate on a document. As another example, a user who previously had permission to collaborate on a document may have access to a revoked document. Such modifications to the defined set of users may be made, for example, by other users who have permission to collaborate on the document.

[0024] Electronic devices such as personal computers (e.g., desktop computers and laptop computers), portable electronic devices (e.g., tablet computers and smart phones), and wearable devices (e.g., smart watches, smart glasses, etc.) typically include applications that receive and process network data from another device and / or a server over a network. For example, a device may include an application associated with a messaging system that receives and processes electronic messages (e.g., including text, images, video content, audio content, and / or other objects).

[0025] In some cases, it may be desirable for a collaborative application to be integrated or communicated with a messaging system. For example, in some cases, a user collaborating on a document via a collaborative application may want to invite a friend or other contact to collaborate on the document, such as by sending a message including a link to the document to the friend or other contact's device via a messaging system. However, if the friend or other contact receives the message and selects the link, the collaborative application may not allow the friend or other contact to access the document (e.g., unless the user has separately added the friend or other contact directly to the collaborative application as a collaborative user, the friend logs into the collaborative application under the same ID that it was added by the user, and / or other various conditions). For example, the collaborative application may not identify a friend or other contact as a user from a defined set of users. In addition, because the messaging system and the collaborative application may be provided by different parties, it may be desirable for the user and / or friend or other contact to be able to communicate with each other about the document using the messaging system in an integrated manner with the collaborative application without disclosing the messaging system identifier and / or messaging content (such as to protect the user's privacy) to the collaborative application and / or without disclosing the collaborative application identifier and / or collaborative content (such as to protect the user's privacy) to the messaging system.

[0026] In some cases, users collaborating on a document via a collaboration application may want to automatically send a message to a message thread associated with the document via a messaging system whenever a change is made to the document. For example, if a user from a defined set of users makes a change to a document (i.e., a modification to the content of the document), it may be desirable for a message indicating the change to be automatically displayed in the message thread. The participants in the message thread may, for example, include all or a subset of the defined set of users. However, if the messaging system and the collaboration application are not integrated or in communication with each other, the messaging system may not be aware of when changes are made to the document. Therefore, the messaging system may not be able to automatically display a message indicating the change in the message thread.

[0027] In some cases, access to a message thread associated with a messaging system may be modified. For example, one or more participants may be added to or removed from a message thread. A message thread may be associated with a document on which users are collaborating via a collaboration application. It may be desirable to modify the defined set of users that have access to the document via the collaboration application in a similar manner. For example, if a participant is added to a message thread, it may be desirable that the participant also be granted access to the document within the collaboration application. Conversely, if a participant is removed from a message thread, it may be desirable that the participant's access to the document within the collaboration application is also removed. However, if the messaging system and the collaboration application are not integrated or in communication with each other, the messaging system may not be able to prompt modifications to the defined set of users.

[0028] In some cases, a message thread associated with a document may include information that a user needs or desires in order to work or update the document within a collaborative application. However, it may be undesirable or inefficient if the user must continuously switch back and forth between the message thread and the collaborative application. Therefore, it may be desirable for users collaborating on a document via a collaborative application to be able to view the message thread associated with the document while also viewing the document. However, if the messaging system and the collaborative application are not integrated or in communication with each other, it may not be possible for the message thread and the document to be displayed simultaneously. In addition, it may also be desirable for users to communicate via a messaging system without exposing the contents of the messaging conversation / thread to the collaborative application.

[0029] According to one or more implementations of the subject technology, integration between a messaging system and a collaboration application can be provided, particularly integration between a messaging system and a collaboration application provided by different parties.

[0030] For example, aspects of the subject technology disclosed herein can be helpful by providing a mechanism for a user collaborating on a document via a collaboration application to send a message including a link to the document to a friend or other contact's device via a messaging system. When the friend or other contact receives the message and selects the link, the collaboration application can allow the friend or other contact to access the document.

[0031] Aspects of the subject technology also provide a mechanism by which messages indicating changes made to a document within a collaborative application are automatically displayed in a message thread associated with a messaging system.

[0032] Aspects of the subject technology also provide a mechanism by which access to documents associated with a collaborative application can be easily modified in a manner that aligns with modifications made to participants of a message thread.

[0033] Aspects of the subject technology also provide a mechanism by which a document and a message thread associated with the document can be displayed simultaneously. The document can be associated with a collaborative application, and the message thread can be associated with a messaging system.

[0034] Figure 1 An example network environment 100 is shown in which integration between a messaging system and a collaboration application can be implemented according to one or more implementations. However, not all of the depicted components can be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Changes in the arrangement and types of these components may be made without departing from the spirit or scope of the claims listed herein. Additional components, different components, or fewer components may be provided.

[0035] The network environment 100 includes an electronic device 110, an electronic device 115, an electronic device 117, an electronic device 119, one or more messaging servers 120, and one or more collaboration servers 130. The network 106 may communicatively (directly or indirectly) couple the electronic device 110, the electronic device 115, the electronic device 117, the electronic device 119, the messaging server 120, and / or the collaboration server 130. In one or more specific implementations, the network 106 may be an interconnected network of devices that may include the Internet or be communicatively coupled to the Internet. For purposes of explanation, the network environment 100 is described in detail in FIG. Figure 1 106. The network environment 100 is shown as including electronic device 110, electronic device 115, electronic device 117, electronic device 119, messaging server 120, and collaboration server 130; however, the network environment 100 may include any number of electronic devices and / or any number of servers that are communicatively coupled to each other directly or via network 106.

[0036] The electronic device 110 may be, for example, a desktop computer; a portable computing device such as a laptop, a smart phone, a peripheral device (e.g., a digital camera, a headset), a tablet device, standalone video conferencing hardware, a wearable device (such as a watch, a wristband, glasses, etc.); or any other suitable device including, for example, one or more wireless interfaces, such as a WLAN radio, a cellular radio, a Bluetooth radio, a Zigbee radio, a near field communication (NFC) radio, and / or other radios. In one or more specific implementations, the electronic device 110 may include a messaging application and a collaboration application. Figure 1 In the embodiment, the electronic device 110 is depicted as a desktop computer by way of example. The electronic device 110 may be and / or may include the following with respect to Fig.14 All or part of the electronic system in question.

[0037] In one or more specific implementations, the electronic device 110 may provide a messaging application for obtaining user communication data such as electronic messages (e.g., including text, images, video content, audio content, and / or other objects) through the network 106 and / or such as exchanging the user communication data with a corresponding messaging application installed and accessible at, for example, the electronic device 115, the electronic device 117, and / or the electronic device 119. In one or more specific implementations, the electronic device 110 may provide a collaboration application for obtaining collaborative document data through the network 106 and / or such as exchanging the collaborative document data with a corresponding collaboration application installed and accessible at, for example, the electronic device 115, the electronic device 117, and / or the electronic device 119. The collaborative document data may include, for example, data associated with a document on which multiple parties are collaborating.

[0038] The electronic device 115 may be, for example, a portable computing device such as a laptop computer, a smart phone, a peripheral device (e.g., a digital camera, a headset), a tablet device, a wearable device (e.g., a watch, a wristband, etc.); any other suitable device including, for example, one or more wireless interfaces, such as a WLAN radio device, a cellular radio device, a Bluetooth radio device, a Zigbee radio device, a near field communication (NFC) radio device, and / or other radio devices. In one or more specific implementations, the electronic device 115 may include a messaging application and a collaboration application. Figure 1 In the embodiment, the electronic device 115 is depicted as a tablet computer by way of example. The electronic device 115 may be and / or may include the following with respect to Fig.14 All or part of the electronic system in question.

[0039] In one or more specific implementations, electronic device 115 may provide or support a messaging application for obtaining user communication data such as electronic messages (e.g., including text, images, video content, audio content, and / or other objects) through network 106 and / or exchanging the user communication data with a corresponding messaging application installed and accessible at, for example, electronic device 110, electronic device 117, and / or electronic device 119. The messaging application may be any type of communication application. In some variations, the messaging application may be an email client for communicating via a group email thread.

[0040] In one or more specific implementations, electronic device 115 may provide a collaboration application for obtaining collaborative document data through network 106 and / or exchanging the collaborative document data, such as with a corresponding collaboration application installed and accessible at, for example, electronic device 110, electronic device 117, and / or electronic device 119. The collaborative document data may include, for example, data associated with a document on which multiple parties are collaborating.

[0041] The electronic device 117 may be, for example, a portable computing device such as a laptop computer, a smart phone, a peripheral device (e.g., a digital camera, a headset), a tablet device, a wearable device (e.g., a watch, a wristband, etc.); any other suitable device including, for example, one or more wireless interfaces, such as a WLAN radio device, a cellular radio device, a Bluetooth radio device, a Zigbee radio device, a near field communication (NFC) radio device, and / or other radio devices. In one or more specific implementations, the electronic device 117 may include a messaging application and a collaboration application. Figure 1 In the embodiment, the electronic device 117 is depicted as a tablet computer by way of example. The electronic device 117 may be and / or may include the following with respect to Fig.14 All or part of the electronic system in question.

[0042] In one or more specific implementations, the electronic device 117 may provide a messaging application for obtaining user communication data such as electronic messages (e.g., including text, images, video content, audio content, and / or other objects) through the network 106 and / or such as exchanging the user communication data with a corresponding messaging application installed and accessible at, for example, the electronic device 115, the electronic device 110, and / or the electronic device 119 (such as with a corresponding conference module installed and accessible thereat). In one or more specific implementations, the electronic device 117 may provide a collaboration application for obtaining collaborative document data through the network 106 and / or such as exchanging the collaborative document data with a corresponding collaboration application installed and accessible at, for example, the electronic device 115, the electronic device 110, and / or the electronic device 119. The collaborative document data may include, for example, data associated with a document on which multiple parties are collaborating.

[0043] The electronic device 119 may be, for example, a portable computing device such as a laptop computer, a smart phone, a peripheral device (e.g., a digital camera, a headset), a tablet device, a wearable device (e.g., a watch, a wristband, etc.); any other suitable device including, for example, one or more wireless interfaces, such as a WLAN radio device, a cellular radio device, a Bluetooth radio device, a Zigbee radio device, a near field communication (NFC) radio device, and / or other radio devices. In one or more specific implementations, the electronic device 119 may include a messaging application and a collaboration application. Figure 1 In the embodiment, by way of example, the electronic device 119 is depicted as a smart phone. The electronic device 119 may be and / or may include the following with respect to Fig.14 All or part of the electronic system in question.

[0044] In one or more specific implementations, the electronic device 119 may provide a messaging application for obtaining user communication data such as electronic messages (e.g., including text, images, video content, audio content, and / or other objects) through the network 106 and / or such as exchanging the user communication data with a corresponding messaging application installed and accessible at, for example, the electronic device 115, the electronic device 117, and / or the electronic device 110. In one or more specific implementations, the electronic device 119 may provide a collaboration application for obtaining collaborative document data through the network 106 and / or such as exchanging the collaborative document data with a corresponding collaboration application installed and accessible at, for example, the electronic device 115, the electronic device 117, and / or the electronic device 110. The collaborative document data may include, for example, data associated with a document on which multiple parties are collaborating.

[0045] In one or more specific implementations, the messaging server 120 may be located remotely from the electronic device 110, the electronic device 115, the electronic device 117, and / or the electronic device 119. The messaging server 120 may perform operations for managing the secure exchange of user communication data, such as electronic messages, between various electronic devices, such as the electronic device 110, the electronic device 115, the electronic device 117, and / or the electronic device 119. In one or more specific implementations, the messaging server 120 may provide a method for transmitting a message to a participant device (e.g., the electronic device 110, the electronic device 115, the electronic device 117, the electronic device 119) by a messaging application (e.g., Figure 2 208) (eg, user communication data, media content, application content, or any other suitable data). Collectively, messaging server 120 and messaging applications may be referred to herein as a "messaging system."

[0046] In one or more specific implementations, the collaboration server 130 may be located remotely from the electronic device 110, the electronic device 115, the electronic device 117, and / or the electronic device 119. The collaboration server 130 may perform operations for managing collaborative document data associated with the document. For example, the collaboration server 130 may store data associated with the document that is accessible to multiple parties (e.g., users of the electronic device 110, the electronic device 115, the electronic device 117, and / or the electronic device 119) via the network 106. In one or more specific implementations, the collaboration server 130 may provide a collaboration application (e.g., Figure 2 206 ) (eg, collaborative document data, media content, application content, or any other suitable data). Collectively, the collaboration server 130 and the collaboration application may be referred to herein as a “collaboration system”.

[0047] Figure 2 Schematically illustrates various software features of two participant devices exchanging messages including document links associated with a collaborative application via a messaging system. Figure 2 In the example of FIG. 1 , the two participating devices are electronic device 117 and electronic device 119. Figure 2 As shown, electronic device 117 and electronic device 119 may each include collaboration application 206 and messaging application 208. Collaboration application 206 and / or messaging application 208 may each be an application that executes code on electronic device 117 and / or electronic device 119, for example.

[0048] In one or more specific implementations, the collaboration application 206 and the messaging application 208 are supported and provided by the same party or entity (e.g., by the provider of the operating system of the electronic devices 117 and 119). In one or more specific implementations, the collaboration application 206 and the messaging application 208 are supported and provided by different parties or entities (e.g., the messaging application may be provided by the provider of the operating system of the electronic devices 117 and 119, and the collaboration application may be provided by an application provider different from the provider of the operating system, or the collaboration application may be provided by the provider of the operating system of the electronic devices 117 and 119, and the messaging application may be provided by an application provider different from the provider of the operating system). The collaboration application 206 and the messaging application 208 may be configured to communicate with each other via one or more APIs (application programming interfaces).

[0049] In one or more specific implementations, a user associated with the electronic device 117 may have access to a document associated with the collaboration application 206. For example, the user associated with the electronic device 117 may be a user in a defined set of users with permission to view and / or change the document. Users outside of the defined set of users may not be able to view and / or change the document. The collaboration application 206 may be, for example, a document collaboration application for collaborating on text documents, spreadsheets, and / or slides.

[0050] For various reasons, a user associated with the electronic device 117 may want to share access to a document via the messaging application 208, such as with a user associated with the electronic device 119. To share access to the document, the user associated with the electronic device 117 may provide a user input indicating a request to share access to the document. For example, the user associated with the electronic device 117 may provide a request to share access to the document to the collaboration application 206 at the electronic device 117. In one or more specific implementations, the user associated with the electronic device 117 may provide a request to share access to the document to the collaboration application 206 by opening the collaboration application 206 on the electronic device 117, accessing the document, and then selecting one or more buttons on an interface (e.g., a user interface) of the collaboration application 206.

[0051] In one or more specific implementations, at numeral 1, the collaboration application 206 at the electronic device 117 may provide (e.g., send, forward, etc.) a document identifier associated with a document to the messaging application 208 at the electronic device 117 in response to receiving a request to share access to the document from a user associated with the electronic device 117. The messaging application 208 at the electronic device 117 may receive the document identifier from the collaboration application 206 at the electronic device 117.

[0052] In one or more specific implementations, a user associated with electronic device 117 may be able to indicate one or more individuals or entities with whom he, she, or they want to share access to a document. The user associated with electronic device 117 may be able to do so by indicating one or more user accounts with which the user associated with electronic device 117 wants to share access to the document. For example, if the user associated with electronic device 117 wants to share access to a document with a user associated with electronic device 119, the user associated with electronic device 117 may indicate a user account associated with electronic device 119. The user account may be, for example, a user account associated with a messaging system (e.g., messaging application 208 and messaging server 120).

[0053] In one or more specific implementations, after a user associated with electronic device 117 indicates one or more user accounts with which the user wants to share access to a document (e.g., by entering a messaging system identifier for the one or more user accounts into a messaging application, such as by entering a phone number or email address for the one or more user accounts into the messaging application), messaging application 208 may generate an obfuscated identifier associated with a document identifier and contact information for each of the user accounts. If the user accounts are user accounts associated with a messaging system (e.g., messaging application 208 and messaging server 120), each of the user accounts may be associated with contact information (e.g., a messaging system identifier and / or a device identifier associated with the user account) that is accessible by the messaging system but not accessible by collaboration application 206. The obfuscated identifier may obfuscate the contact information from collaboration application 206 such that collaboration application 206 is unable to access some or all of the contact information.

[0054] In some variations, the fuzzy identifier associated with each user account may be based on a Merkle tree associated with at least one device associated with each user account and a document identifier. A Merkle tree is a tree in which each leaf node is marked with a cryptographic hash of a block of data, and each non-leaf node is marked with a cryptographic hash of the mark of its child nodes. In some variations, the fuzzy identifier associated with each user account may be based on a public key associated with at least one device associated with each user account. As an example, the fuzzy identifier may be a public key, a hash of a public key, a Merkle tree generated using a public key, or a hash of a Merkle tree. In some variations, the public key may be a general public key associated with the device, or may be a public key generated specifically for the document ID based on a combination of the general public key of the device and the document ID.

[0055] In some variations, a particular user account may be associated with multiple devices. For example, this may occur if a user associated with the user account utilizes more than one device to access the messaging service. For example, a user associated with a single user account may utilize one or more of a mobile phone, a tablet computer, a laptop computer, a smart watch, etc. to send and receive electronic messages via the messaging service. If a particular user account is associated with multiple devices, the messaging application 208 may generate an obfuscated identifier associated with the user account by combining the corresponding public keys associated with each of the multiple devices. The messaging application 208 may generate a Merkle tree based on the combination. The messaging application 208 may then generate a hash of the Merkle tree as the obfuscated identifier.

[0056] like Figure 2 As shown, at number 2, the messaging application 208 at the electronic device 117 may provide the collaboration application 206 at the electronic device 117 with an obfuscated identifier associated with each user account (e.g., for each user account whose messaging system identifier is added to the messaging application and the user account corresponding to the electronic device 117). In one or more specific implementations, the messaging application 208 may also provide the collaboration application 206 with a session identifier and / or a message thread identifier that identifies the messaging session and / or message thread via which the document link is to be shared. The collaboration application 206 at the electronic device 117 may receive the obfuscated identifier associated with each user account from the messaging application 208 at the electronic device 117. In some variations, at number 3, the collaboration application 206 at the electronic device 117 may provide the obfuscated identifier associated with each user account to the collaboration server 130 for storage. The collaboration server 130 may receive and / or store the obfuscated identifier associated with each user account.

[0057] In one or more specific implementations, after receiving the obfuscated identifier associated with each user account from the messaging application 208 at the electronic device 117, the collaboration application 206 at the electronic device 117 can create a document link associated with the document. The collaboration application 206 can create the document link to enable shared access to the document. The document link can, for example, be a reference to the document that a user can follow by clicking or tapping on the document link. In some variations, when selected at a device associated with a particular user account, the document link can be configured so that the device determines that the particular user account is authorized to access the document link based on the obfuscated identifier and a signature provided by the device's private key.

[0058] like Figure 2 As shown, at numeral 4, the collaboration application 206 at the electronic device 117 may provide a document link (e.g., together with a document identifier) ​​to the messaging application 208 at the electronic device 117. The messaging application 208 at the electronic device 117 may receive the document link and the document identifier from the collaboration application 206 at the electronic device 117.

[0059] In one or more specific implementations, the messaging application 208 at the electronic device 117 can populate the initial message. The initial message can include an object associated with the document identifier. The object can be, for example, a data object created by the collaboration application 206 or the messaging application 208 at the electronic device 117. The object can include one or more of an image or UI icon associated with the document, a short description of the document, a title of the document, and / or any other attributes associated with the document.

[0060] In some variations, the object may include one or more user-selectable preferences for the document. For example, a user associated with electronic device 117 may be presented with one or more collaborative sharing options that manage information shared between the messaging system and collaboration application 206. As non-limiting examples, the collaborative sharing options may indicate whether the user associated with electronic device 117 wants users associated with electronic device 119 to be able to view but not modify the document, whether the user associated with electronic device 117 wants users associated with electronic device 119 to be able to view and modify the document, or whether the user associated with electronic device 117 wants users associated with electronic device 119 to have re-sharing privileges to add / remove other collaborators.

[0061] In some variations, each of the users with permission to access documents associated with the collaboration application 206 may be associated with a user account that is associated with the collaboration application 206. For example, a user associated with the electronic device 117 and / or a user associated with the electronic device 119 may be associated with a user account that is associated with the collaboration application 206. If the user account is a user account associated with the collaboration application 206, each of the user accounts may be associated with contact information (e.g., a collaboration application identifier and / or a device identifier associated with the user account) that is accessible by the collaboration application 206 but not by the messaging system. By utilizing obfuscated identifiers, such as with Figure 2 In the manner shown, the messaging system may not be able to access some or all of the contact information.

[0062] Figure 3 An example initial message 300 is shown that is populated by the messaging application 208. Figure 3As shown, the initial message 300 includes an object 302. Object 302 includes one or more user selectable preferences for the document. One or more user accounts with which the user associated with the electronic device 117 wants to share access to the document are indicated in a header 304 corresponding to the initial message 300 (e.g., by entering a phone number or email address into the header 304). In some variations, the user associated with the electronic device 117 may add additional information to the initial message 300. For example, the user associated with the electronic device 117 may be able to add additional message data (e.g., including text, images, video content, audio content, and / or other objects) to the initial message 300 in a footer 306 of the initial message. In order to add additional information to the initial message 300, the user may, for example, utilize a keyboard, voice control, or any other suitable means of entering message data in the footer 306. In some variations, in response to receiving a document identifier before generating an obfuscated identifier and / or before generating a link, the initial message 300 is filled. In these variations, an obfuscated identifier may be generated and provided to the collaboration application, and in response to a user input requesting the initial message to be populated, a link may be returned to the messaging application 208 for inclusion in the initial message. In other variations, the initial message is populated in response to receiving a document link and a document identifier, and the object may include a document link for accessing a document associated with the document identifier. In still other variations, the aforementioned steps for sharing a document may occur after a messaging thread has been established between a user associated with the electronic device 117 and another user, in which case the historical message text exchanged will be near or around the object 302.

[0063] Return to reference Figure 2 , at numeral 5, the messaging application 208 at the electronic device 117 may provide a document link having a document identifier and information indicating an obfuscated identifier to the messaging server 120. The information indicating the obfuscated identifier may include information for recreating the obfuscated identifier and / or the obfuscated identifier. For example, the messaging application 208 at the electronic device 117 may (e.g., in response to receiving a send instruction from a user of the electronic device 117) provide the initial message and the information indicating the obfuscated identifier to the messaging server 120. The messaging server 120 may receive the initial message and the information indicating the obfuscated identifier, such as in an encrypted form for transmission to one or more other electronic devices.

[0064] In one or more specific implementations, messaging server 120 may be configured to send the initial message and information indicating the obfuscated identifier to a user account specified by a user associated with electronic device 117. Figure 2As shown, at numeral 6, the messaging server 120 may send a document link with a document identifier and information indicating the obfuscated identifier to the messaging application 208 at the electronic device 119. The messaging application 208 at the electronic device 119 may receive the initial message and the information indicating the obfuscated identifier.

[0065] Figure 4 An example initial message 400 received by the messaging application 208 at the electronic device 119 is shown. The initial message 400 may be displayed on the UI of the messaging application 208 at the electronic device 119. Figure 4 As shown, the initial message 400 includes a document link 402. The document link 402 may be configured, when selected by a user associated with the electronic device 119, to cause the electronic device 119 to perform an operation for determining that a user account associated with the user is authorized to access the document link. If the user associated with the electronic device 117 adds additional information to the initial message before sending the initial message, such additional information may appear as message text 404. The message text 404 may include text, images, video content, audio content, and / or other objects. In a scenario in which a user associated with the electronic device 119 and a user associated with the electronic device 117 have a messaging thread established prior to sharing the document link 402, the history text of this messaging thread will be displayed near or around the document link 402 and the messaging text 404.

[0066] Return to reference Figure 2 In some variations, a user associated with electronic device 119 may select the document link via a UI of messaging application 208 at electronic device 119. For example, the user may click on the document link, such as with a finger, a stylus, or any other suitable means of selecting a document link on a UI. If the user associated with electronic device 119 selects the document link, messaging application 208 at electronic device 119 may obtain information indicating the obfuscated identifier from the initial message.

[0067] like Figure 2As shown, at number 7, the electronic device 119 may sign the information indicating the obfuscated identifier and / or the information derived therefrom using the private key of the electronic device 119. At number 8, the messaging application 208 at the electronic device 119 may send the document identifier and password information (e.g., the obfuscated identifier, the information derived from the obfuscated identifier, the signed obfuscated identifier, the signed information derived from the obfuscated identifier, and / or the signed information indicating the obfuscated identifier) ​​to the collaboration application 206 at the electronic device 119. The signed information indicating the obfuscated identifier may, for example, be a device-specific (e.g., specific to the electronic device 119) portion of the information indicating the obfuscated identifier. In some embodiments, in response to verifying that the user associated with the electronic device 119 should be given access to the document link based on the private key of the electronic device 119, the messaging application 208 may only provide the obfuscated identifier to the collaboration application 206. The collaboration application 206 may receive the document identifier and password information, such as from the messaging application 208 at the electronic device 119.

[0068] In one or more specific implementations, the obfuscated identifier may be recreated by the collaboration server 130 using the cryptographic information. At numeral 9, the collaboration application 206 at the electronic device 119 may provide the document identifier and the cryptographic information to the collaboration server 130. The collaboration application 206 at the electronic device 119 may additionally provide the collaboration server 130 with a public key of the electronic device 119, which may be the obfuscated identifier and / or the public key may be part of the cryptographic information. The collaboration server 130 may receive the document identifier and the signed information indicating the obfuscated identifier. The collaboration server 130 may additionally receive the public key of the electronic device 119.

[0069] In some variations, collaboration server 130 may use the signed information indicating the obfuscated identifier and the public key of electronic device 119, which may be included in the signed information indicating the obfuscated identifier in one or more implementations, to recreate the obfuscated identifier associated with the user account associated with electronic device 119. For example, the public key of electronic device 119 may be used for the re-creation of the obfuscated identifier, rather than just for verifying the signature associated with the signed information indicating the obfuscated identifier. Collaboration server 130 may compare the re-created obfuscated identifier with the obfuscated identifier received at number 3.

[0070] In some variations, the collaboration server 130 may compare the recreated obfuscated identifier with the stored obfuscated identifier to determine whether the electronic device 119 is authorized to access the document associated with the document identifier. The stored obfuscated identifier may, for example, include the obfuscated identifier provided to the collaboration server 130 by the collaboration application 206 at the electronic device 117 for storage at number 3. If the collaboration server 130 determines that the recreated obfuscated identifier corresponds to (e.g., matches, is the same as) the stored obfuscated identifier, the collaboration server 130 may determine that the electronic device 119 is authorized to access the document. At number 10, the collaboration server 130 may provide a confirmation to the collaboration application 206 at the electronic device 119. The confirmation may indicate to the electronic device 119 that the electronic device 119 is authorized to access the document. The collaboration application 206 at the electronic device 119 may receive the confirmation.

[0071] In one or more specific implementations, in response to receiving the confirmation from the collaboration server 130, the collaboration application 206 at the electronic device 119 may cause the document to be displayed on an interface (e.g., a user interface) of the collaboration application 206. For example, in response to determining that the electronic device 119 is authorized to access the document, the electronic device 119 may present the interface (e.g., a user interface) of the collaboration application 206 for displaying the document. In one or more specific implementations, a user associated with the electronic device 119 may be requested to separately authenticate a collaboration account with the collaboration application 206 before or after the collaboration server 130 confirms that the user is authorized to access the document. The user associated with the electronic device 119 may view and / or modify the document via the interface (e.g., a user interface). In one or more specific implementations, the collaboration server 130 and / or the collaboration application 206 may store an association between the obfuscated identifier and the collaboration account with which the user authenticates.

[0072] Conversely, if the collaboration server 130 determines that the recreated obfuscated identifier does not correspond to (e.g., does not match, is not the same as) the stored obfuscated identifier, the collaboration server 130 may determine that the electronic device 119 is not authorized to access the document. The collaboration server 130 may not send a confirmation to the collaboration application 206 at the electronic device 119. The document may not be displayed on an interface (e.g., user interface) of the collaboration application 206. In some variations, the collaboration server 130 may send a message to the collaboration application 206 indicating that the electronic device 119 is not authorized to access the document of the collaboration application 206 at the electronic device 119.

[0073] Figure 5Schematically illustrates various software features of two participant devices exchanging messages indicating changes have been made to a linked document associated with a collaboration application via a messaging system. As described above, in the event that a change is made to a document, users collaborating on the document via the collaboration application may want to automatically send a message to a message thread associated with the document via the messaging system.

[0074] exist Figure 5 In the example of FIG. 1 , the two participating devices are electronic device 117 and electronic device 119. Figure 5 As shown, electronic device 117 and electronic device 119 may each include collaboration application 206 and messaging application 208. Collaboration application 206 and / or messaging application 208 may each be an application that executes code on electronic device 117 and / or electronic device 119, for example.

[0075] In one or more implementations, the collaboration application 206 and the messaging application 208 are supported and provided by different parties or entities. The collaboration application 206 and the messaging application 208 can be configured to communicate with each other via one or more APIs (application programming interfaces).

[0076] In one or more specific implementations, the user associated with the electronic device 117 and the user associated with the electronic device 119 can each have access to a document associated with the collaboration application 206. For example, the user associated with the electronic device 117 and the user associated with the electronic device 119 can be users in a defined set of users with permission to view and / or change the document. Users outside of the defined set of users may not be able to view and / or change the document.

[0077] In one or more specific implementations, the user associated with electronic device 117 and the user associated with electronic device 119 can each be associated with a specific corresponding user account within a messaging system (e.g., messaging application 208 and messaging server 120). The user associated with electronic device 117 and the user associated with electronic device 119 can each exchange electronic messages with other user accounts via the messaging system using their corresponding user accounts.

[0078] In some variations, a user account associated with electronic device 117 and a user account associated with electronic device 119 can both be participants in a message thread associated with a messaging system. A message thread can be associated with a document. A message thread can include one or more electronic messages associated with a document (e.g., including text, images, video content, audio content, and / or other objects). For example, a user account associated with electronic device 117 and a user account associated with electronic device 119 can exchange messages associated with a document in a message thread. A message thread can optionally include other participant user accounts. If a message thread includes other participant user accounts, these other participant user accounts can be associated with users who also have access to documents associated with collaboration application 206.

[0079] In other variations, a user account associated with electronic device 119 may be a participant in a message thread associated with a document. However, a user account associated with electronic device 117 may not be a participant in the message thread. For example, a user associated with electronic device 117 may have access to a document in collaboration application 206, but may not have access to a message thread associated with a document in a messaging system.

[0080] In one or more specific implementations, multiple user accounts can be participants in a message thread. Figure 2 As described, each of the plurality of user accounts may have an obfuscated identifier generated by the messaging system for use by the collaboration application 206. In some variations, the initial messages exchanged between the plurality of user accounts and the document link in the message thread may establish the obfuscated identifier to be associated with the document link for the collaboration application 206. In some variations, the collaboration application 206 may verify that the device accessing the document link corresponds to at least one of the obfuscated identifiers based on a cryptographic hash associated with the obfuscated identifier generated by the messaging system.

[0081] For a variety of reasons, a user associated with electronic device 117 may make changes to a document (e.g., modify the document). Figure 5 As shown, at numeral 1, a user associated with electronic device 117 may make changes to a document. To make changes to a document, a user associated with electronic device 117 may add at least one of text, images, video, audio, charts, tables, comments, or reactions to the document. Additionally or alternatively, to make changes to a document, a user associated with electronic device 117 may delete at least one of text, images, video, audio, charts, tables, comments, or reactions from the document. Additionally or alternatively, to make changes to a document, a user associated with electronic device 117 may mention or tag another user from a defined group of users in the document (such as at a specific location in the document).

[0082] In one or more specific implementations, at number 2, the collaboration application 206 at the electronic device 117 may provide information or data associated with the changes to the document to the collaboration server 130. The collaboration server 130 may receive the information or data associated with the changes to the document. The collaboration server 130 may utilize the information or data associated with the changes to the document to cause the changes to the document to be implemented so that other users in a defined set of users can view the document, including the changes, from their respective electronic devices. For example, at number 3, the collaboration server 130 may provide information or data associated with the changes to the document to the collaboration application 206 at the electronic device 119 so that if the user associated with the electronic device 119 has access to the document, the user associated with the electronic device 119 can view the document, including the changes.

[0083] exist Figure 5 In the example of FIG. 4 , at number 4 , the collaboration application 206 at the electronic device 117 can provide information or data associated with the changes to the document to the messaging application 208 at the electronic device 117 (e.g., without a user interaction requesting that the information or data be provided to the messaging application). In one or more specific implementations, the collaboration application 206 can provide the information or data associated with the changes to the messaging application 208 in conjunction with a document identifier, a session identifier and / or a thread identifier previously received from the messaging application 208, and / or any other identifier that the messaging application 208 can use to identify the corresponding message thread.

[0084] The messaging application 208 at the electronic device 117 may receive the information or data associated with the change to the document. In some variations, the messaging application 208 at the electronic device 117 may receive the information or data associated with the change to the document after providing the collaboration application 206 with an obfuscated identifier generated by the messaging system and associated with at least one user account and the document link, as described above with respect to Figure 2 As described.

[0085] In some variations, the information or data associated with the changes to the document indicates that the user associated with the electronic device 117 is responsible for making the changes to the document. For example, if the user account of the user associated with the electronic device 117 is a participant in a message thread associated with the document, the information or data associated with the changes to the document may indicate that the user associated with the electronic device 117 is responsible for making the changes to the document, such as by including an obfuscated identifier (e.g., a public key) associated with this user account. In some variations, the information or data associated with the changes to the document may not indicate that the user associated with the electronic device 117 is responsible for making the changes to the document. For example, if the user account of the user associated with the electronic device 117 is not a participant in a message thread associated with the document, the information or data associated with the changes to the document may not indicate that the user associated with the electronic device 117 is responsible for making the changes to the document.

[0086] At number 5, the messaging application 208 at the electronic device 117 may provide information or data associated with the change to the document to the messaging server 120 (e.g., in a message indicating the change to the document). The messaging server 120 may receive the message indicating the change to the document and / or update the message thread associated with the document by pushing the message indicating the change to the message thread. For example, at number 6, the messaging server 120 may update the message thread associated with the document via the messaging application 208 at the electronic device 117 and the electronic device 119. The user associated with the electronic device 119 may be able to view the messages in the message thread via the UI of the messaging application 208 at the electronic device 119. If the user account of the user associated with the electronic device 117 is also a participant in the message thread, the user associated with the electronic device 117 may also be able to view the messages in the message thread via the UI of the messaging application 208 at the electronic device 117.

[0087] Figure 6 An example update message 600 is shown indicating changes made to a document. Message 600 may be displayed on a UI of a messaging application 208 (such as at electronic device 117 and / or electronic device 119) in a message thread associated with the document. Figure 6As shown, update message 600 includes update 602. Update 602 may indicate changes made to the document. As a non-limiting example, update 602 may indicate whether text, images, video, audio, charts, tables, comments, or reactions are added to or deleted from the document. As another non-limiting example, update 602 may indicate whether a user is mentioned or tagged in the document. Update message 600 may optionally include message text 604. Message text 604 may indicate additional information, including text, images, video content, audio content, and / or other objects.

[0088] Return to reference Figure 5 In some variations, the message indicating the change to the document may indicate that the user associated with the electronic device 117 is responsible for making the change to the document. For example, if at number 4, the information or data associated with the change to the document provided to the messaging application 208 at the electronic device 117 indicates that the user associated with the electronic device 117 is responsible for making the change to the document, then the message indicating the change to the document may indicate that the user associated with the electronic device 117 is responsible for making the change to the document.

[0089] In other variations, the message indicating a change to a document may not indicate that a user associated with electronic device 117 is responsible for making the change to the document. For example, if at number 4, the information or data associated with the change to the document provided to messaging application 208 at electronic device 117 does not indicate that a user associated with electronic device 117 is responsible for making the change to the document, then the message indicating a change to the document may not indicate that a user associated with electronic device 117 is responsible for making the change to the document. Instead, the message indicating a change to the document may indicate that an anonymous user is responsible for making the change to the document.

[0090] In some variations, a specific user account associated with a message thread may be associated with multiple devices. For example, this may occur if a user associated with a user account utilizes more than one device to access a messaging service. For example, a user associated with a single user account may utilize both electronic device 119 and electronic device 115 to send and receive electronic messages via a messaging service. If a specific user account associated with a message thread is associated with multiple devices, the messaging server 120 may update the message thread associated with a document by distributing updates to the message thread to each of the multiple devices. The messaging service may display updates to the message thread at the earliest of the multiple devices to display the message thread (and / or be viewed by the user) after receiving updates to the message thread. The messaging service may abandon displaying updates to the message thread at a subsequent one of the multiple devices to display the message thread after receiving updates to the message thread. In this way, the same user may not need to view the same message indicating changes to the document on all of its different devices. On the contrary, the same user may only need to view messages indicating changes to the document on one device.

[0091] In one or more specific implementations, updates to a message thread may be selectable. For example, updates to a message thread may be selectable links. As discussed above, a user associated with electronic device 119 may be able to view messages including updates in a message thread via a UI of messaging application 208 at electronic device 119. A user associated with electronic device 119 may be able to select an update (e.g., Figure 6 If the user associated with electronic device 119 selects the update 602, the messaging system may be configured to present an interface (e.g., a user interface) of collaboration application 206 for displaying the document associated with the message thread. In this manner, the user associated with electronic device 119 may be able to effectively view the document, including changes made to the document by the user associated with electronic device 117.

[0092] Figure 7 A schematic diagram is shown in which access to a document is modified when access to a message thread associated with the document has been modified by an electronic device according to one or more specific implementations. As described above, access to a message thread may be modified. For example, one or more participant user accounts may be added to or removed from a message thread. A message thread may be associated with a document on which users collaborate via a collaboration application. It may be desirable to modify a defined set of users who have access to a document via a collaboration application in a similar manner.

[0093] exist Figure 7In the example of , the electronic device 115 may include a collaboration application 206 and a messaging application 208. The collaboration application 206 and / or the messaging application 208 may each be an application that executes code on the electronic device 115, for example.

[0094] In one or more implementations, the collaboration application 206 and the messaging application 208 are supported and provided by different parties or entities. The collaboration application 206 and the messaging application 208 can be configured to communicate with each other via one or more APIs (application programming interfaces).

[0095] In one or more specific implementations, a user associated with the electronic device 115 may have access to a document associated with the collaboration application 206. For example, the user associated with the electronic device 115 may be a user in a defined set of users with permission to view and / or change the document. Users outside of the defined set of users may not be able to view and / or change the document.

[0096] In one or more specific implementations, a user associated with electronic device 115 can be associated with a particular user account within a messaging system (e.g., messaging application 208 and messaging server 120). The user associated with electronic device 115 can utilize the user account to exchange electronic messages with other user accounts via the messaging system.

[0097] In some variations, a user account associated with electronic device 115 can be a participant in a message thread associated with a messaging system. A message thread can be associated with a document. For example, a message thread can include a link to a document sent within the message thread. A message thread can include one or more electronic messages associated with a document (e.g., including text, images, video content, audio content, and / or other objects). For example, a user account associated with electronic device 115 can exchange messages associated with a document in a message thread with other user accounts. These other user accounts can be associated with users who also have access to documents associated with collaborative application 206.

[0098] For various reasons, a user account associated with electronic device 115 may modify access to a message thread associated with a document. Figure 7As shown, at numeral 1, a user account associated with electronic device 115 may send a request to modify access to a message thread to messaging application 208. The user account may send the request via an interface (e.g., a user interface) of messaging application 208. Messaging application 208 may receive the request. By way of non-limiting example, the request to modify access to a message thread may be a request to add at least one participant user account to the message thread, or may be a request to remove at least one participant user account from the message thread.

[0099] exist Figure 7 In the example of , at number 2, the messaging application 208 may send information indicating the request to the messaging server 120. The information indicating the request may include, for example, a user account associated with the electronic device 115 that the user account wants to add to the message thread or delete from the message thread. The messaging server 120 may receive the information indicating the request and use the information indicating the request to implement a change in access to the message thread. For example, the messaging server 120 may use information indicating a request to add an appropriate user account to the message thread or delete an appropriate user account from the message thread. If the messaging server 120 implements a change in access to the message thread, such a change may be reflected on all devices associated with all user accounts that still have access to the message thread. At number 3, the messaging server 120 may provide a confirmation that the request has been satisfied to the messaging application 208 at the electronic device 115 and / or to the messaging application at the electronic device associated with other user accounts in the message thread. The messaging application 208 at the electronic device 115 may receive a confirmation that the request has been satisfied.

[0100] exist Figure 7In the example of FIG. 1 , at number 4, the messaging application 208 may display a notification, such as in response to receiving a request from a user account associated with the electronic device 115. The notification may be displayed on an interface (e.g., a user interface) of the messaging application 208 at the electronic device 115. The notification may include a prompt asking whether access to the document should be similarly modified. As a non-limiting example, if the user account associated with the electronic device 115 requests that "user account A" be added as a participant to the message thread, the prompt may ask whether the user associated with "user account A" should also be given access to the document in the collaboration application 206. As another non-limiting example, if the user account associated with the electronic device 115 requests that "user account B" be removed as a participant in the message thread, the prompt may ask whether access to the document in the collaboration application 206 should be revoked from the user associated with "user account B". In one or more specific implementations, the messaging application 208 may forgo displaying the notification, and may automatically command and / or request the collaboration application 206 to modify the access based on the modification to the message thread.

[0101] Figure 8 An example notification 800 including a prompt indicating whether access to a document should be modified is shown. Notification 800 includes prompt 802. Prompt 802 may ask whether access to a document should be modified. Notification 800 includes a "yes" option 804a and a "no" option 804b. Options 804a-b may be selectable so that a user may indicate whether access to a document should be modified. For example, if a user associated with electronic device 115 wants to modify access to a document, the user associated with electronic device 115 may select option 804a by clicking on option 804a, such as by using a finger, stylus, or any other suitable means of selecting a UI element. For another example, if a user associated with electronic device 115 does not want to modify access to a document, the user associated with electronic device 115 may select option 804b by clicking on option 804b, such as by using a finger, stylus, or any other suitable means of selecting a UI element.

[0102] Return to reference Figure 7 In some variations, the messaging application 208 may respond to the notification and receive from the user account a user indication that access to the document should be modified. At numeral 5, the messaging application 208 may receive a confirmation that the user associated with the electronic device 115 wants to modify access to the document (e.g., the user associated with the electronic device 115 selects Figure 8 Option 804a). Figure 7In the example of FIG. 1 , at numeral 6, the messaging application 208 can provide a confirmation to the collaboration application 206. In response to receiving a confirmation that the user indication that access to the document should be modified, at numeral 7, the collaboration application 206 at the electronic device 115 can present an interface (e.g., a user interface) of the collaboration application for displaying the document.

[0103] In one or more specific implementations, a user associated with the electronic device 115 can modify access to the document via the displayed interface. At numeral 8, a user associated with the electronic device 115 can send a request to modify access to the document via the displayed interface of the collaboration application 206 and to the collaboration application 206. The request may include, for example, a document identifier and / or an obfuscated identifier associated with the requesting user and / or the user for whom access is being modified, such as the document identifiers described above with respect to Figure 2 The collaboration application 206 can receive a request to modify access to a document.

[0104] In some variations, the request to modify access to the document may be similar to an earlier request to modify access to the message thread. As a non-limiting example, if the user account associated with the electronic device 115 adds "User Account A" as a participant to the message thread, the request to modify access to the document may be a request to grant the user associated with "User Account A" access to the document in the collaboration application 206. As another non-limiting example, if the user account associated with the electronic device 115 removes "User Account B" from the message thread, the request to modify access to the document may be a request to revoke access to the document for the user associated with "User Account B".

[0105] In one or more specific implementations, the messaging application 208 can identify a user account to be added to or removed from access to a document in the collaboration application 206 by using an obfuscated identifier corresponding to the user account. The collaboration application 206 can then identify the user account associated with the obfuscated identifier when the user is being removed, or can remove the user account from the collaboration application 206 according to the above. Figure 2 An obfuscated identifier is used to authenticate the user being added.

[0106] In one or more specific implementations, the messaging application 208 may also provide the collaboration application 206 with an obfuscated identifier of the user of the electronic device 115 requesting the change so that the collaboration application 206 can confirm that the user is authorized to make the change. For example, if the obfuscated identifier is or includes or is derived from a public key of the electronic device 115, the electronic device 115 may sign the obfuscated identifier using the corresponding private key. In this way, the collaboration application 206 may obtain and / or derive the public key via the obfuscated identifier and use the public key to verify the signature, thereby confirming that the user of the electronic device 115 is requesting the change.

[0107] exist Figure 7 In the example of FIG. 1 , at numeral 9, the collaboration application 206 can provide information or data associated with the request to modify access to the document to the collaboration server 130. The collaboration server 130 can receive information or data associated with the request to modify access to the document. The collaboration server 130 can utilize the information or data to cause the modification of the document access to be implemented so that other users in a defined set of users can view the modified document access from their respective electronic devices. At numeral 10, the collaboration server 130 can provide a confirmation to the collaboration application 206. The confirmation can indicate that the modification of the document access was successfully implemented. The collaboration application 206 can receive the confirmation.

[0108] In some variations, messaging application 208 may respond to the notification and receive from the user account a user indication that access to the document should not be modified. For example, messaging application 208 may receive an indication that a user associated with electronic device 115 does not want to modify access to the document (e.g., the user associated with electronic device 115 selected Figure 8 If the messaging application 208 responds to the notification and receives a user indication from the user account that access to the document should not be modified, the electronic device 115 may determine not to present an interface (e.g., a user interface) of the collaboration application 206 for displaying the document.

[0109] Although Figure 7The example of describes modifying access to a document when access to a message thread associated with the document has been modified, but it should be understood that in some variations, access to a message thread associated with a document may be modified when access to the document is modified. Users collaborating on a document via a collaboration application (e.g., collaboration application 206) may want to modify access to the document. Collaboration application 206 may receive a request to modify access to a document, such as from an interface (e.g., a user interface) of collaboration application 206. By way of non-limiting example, the request to modify access to a document may be a request to add at least one user account as a collaborator on the document, or may be a request to remove at least one user account as a collaborator on the document.

[0110] In some variations, the collaboration application 206 may send information indicating a request to modify access to the document to the collaboration server 130. The information indicating the request may include, for example, a user account that is added as a collaborator or removed as a collaborator. The collaboration server 130 may receive the information indicating the request and utilize the information indicating the request to implement a change in access to the document. For example, the collaboration server 130 may utilize the information indicating the request to provide and / or revoke access to appropriate user accounts. If the collaboration server 130 implements a change in access to the document, such a change may be reflected on all devices associated with all user accounts that still have access to the document. The collaboration server 130 may provide confirmation that the request has been satisfied to the collaboration application 206 at one or more electronic devices, such as at the electronic device that issued the request.

[0111] In one or more specific implementations, the collaboration application 206 may display a notification, such as in response to receiving a request to modify access to a document. The notification may be displayed on an interface (e.g., a user interface) of the collaboration application 206 at the electronic device that issued the request. The notification may include a prompt asking whether access to the message thread should be similarly modified.

[0112] In some variations, the collaboration application 206 may respond to the notification and receive a user indication from the user account that access to the message thread should be modified. In response to receiving confirmation of the user indication that access to the message thread should be modified, the collaboration application 206 may send an instruction and / or request to the messaging system to modify access to the message thread in accordance with the modification to document access, such as by referencing a document identifier and / or obfuscated identifier corresponding to the user being removed. In one or more specific implementations, the collaboration application 206 may forgo displaying the notification and may automatically command and / or request the messaging system to modify access to the message thread in accordance with the modification to document access.

[0113] In one or more specific implementations, the messaging system may receive the instruction and / or request. In response to receiving the instruction and / or request, the messaging system may present an interface (e.g., a user interface) of the messaging application 208 for displaying the message thread, thereby facilitating the modification of access to the message thread. In some variations, the messaging system may forgo presenting an interface (e.g., a user interface) of the messaging application 208 for displaying the message thread, and may automatically modify access to the message thread based on the modification of document access. Fig. 9 A flowchart of an example process 900 for sending a message including a document link associated with a collaborative application according to one or more specific implementations is shown. Figure 1 and Figure 2 Components (particularly with reference to the messaging system) are used to describe process 900, which may be performed by one or more processors of electronic device 117 and / or by messaging server 120. However, process 900 is not limited to electronic device 117 and messaging server 120, and one or more blocks (or operations) of process 900 may be performed by other suitable devices (such as electronic device 110, electronic device 115, electronic device 119, one or more of collaborative applications 206) and / or one or more other components of one or more servers (such as collaborative server 130). Further for the purpose of explanation, the blocks of process 900 are described herein as occurring sequentially or linearly. However, multiple blocks of process 900 may occur in parallel. In addition, the blocks of process 900 do not have to be performed in the order shown, and / or one or more blocks of process 900 do not have to be performed and / or may be replaced by other operations.

[0114] In example process 900, at box 902, a messaging system may receive instructions via user input to create a message thread corresponding to multiple user accounts (e.g., user accounts of the messaging system). For example, the instructions may include instructions to create a message thread including a document link associated with a collaboration application (e.g., collaboration application 206). The collaboration application may be associated with a first entity, and the messaging system may be associated with a different second entity. The collaboration application and the messaging system may communicate via one or more APIs. The messaging system may include an application (e.g., messaging application 208) that executes code instantiated on a first participant device and / or a server remote from the first participant device.

[0115] In some variations, the collaboration application may be a document collaboration application for collaborating on text documents, spreadsheets, and / or slides. At least one user associated with the user account may have access to documents in the collaboration application. In some variations, all multiple participants in the message thread may have access to documents displayed in the collaboration application.

[0116] In some variations, before the messaging system receives the instruction to create a message thread with the plurality of user accounts, the device may receive, at the collaboration application, a request to share access to a linked document associated with the document link.

[0117] In some variations, before the messaging system receives an instruction to create a message thread with multiple user accounts, the messaging system may, in response to receiving a request to share access to a document link, populate an initial message including an object associated with the document link. In one or more specific implementations, the object includes one or more selectable preferences for the document link. In some variations, one or more collaborative sharing options may be presented to the user that manage information shared between the messaging system and the collaborative application.

[0118] At box 904, the messaging system may generate a fuzzy identifier associated with each of the user accounts and the document link. In some variations, the fuzzy identifier associated with each user account and the document link may be based on a Merkle tree associated with at least one device associated with each user account and a document identifier associated with the document link, such as the root of the Merkle tree. In some variations, the at least one device may include multiple devices, and generating the fuzzy identifier associated with each user account and the document link may include generating a Merkle tree by combining corresponding public keys associated with each of the multiple devices (such as public keys derived from documents and / or document identifiers and / or specific to documents and / or document identifiers), and generating a hash of the Merkle tree. In some variations, the fuzzy identifier for the user account may be a public key of the device associated with the user account. In some variations, the fuzzy identifier for the user account may be a public key specific to the device associated with the user account and specific to the document identifier. In some variations, the fuzzy identifier for the user account may be a hash of the public key.

[0119] In one or more specific implementations, each of the plurality of user accounts can be associated with contact information that is accessible by the messaging system but not accessible by the collaboration application.The obfuscated identifier can obfuscate the contact information from the collaboration application.

[0120] At block 906, the messaging system may provide the obfuscated identifier to the collaboration application. In some variations, the collaboration application may then provide the obfuscated identifier to a server associated with the collaboration application (eg, collaboration server 130), such as for storage.

[0121] In one or more specific implementations, an initial message exchanged between multiple user accounts with a document link in a message thread may establish a fuzzy identifier to be associated with the document link for a collaborative application. For example, in one or more specific implementations, when a request to send an initial message is received by a messaging system, the messaging system may (in response to the request to send the initial message) generate a fuzzy identifier, provide the fuzzy identifier to a collaborative application, and receive a document link to be included in the initial message sent to the multiple user accounts in the message thread. In this manner, a fuzzy identifier to be associated with a document link may be established for a collaborative application via the initial message. For example, a collaborative application on a receiving device may verify that a user device accessing the document link corresponds to at least one of the fuzzy identifiers based at least in part on a cryptographic hash associated with one of the fuzzy identifiers generated by the messaging system and included in the initial message.

[0122] In some variations, when selected at a device associated with a particular user account, the document link may be configured to cause the device to perform operations for determining that the particular user account is authorized to access the document link based on the obfuscated identifier and the device's private key.

[0123] Fig.10 A flowchart of an example process 1000 for receiving a message including a document link associated with a collaboration application according to one or more implementations is shown. Figure 1 and Figure 2 1000 is described with reference to the components of the electronic device 119 (particularly with reference to the messaging system), which may be performed by one or more processors of the electronic device 119 and / or by the messaging server 120. However, the process 1000 is not limited to the electronic device 119 and the messaging server 120, and one or more blocks (or operations) of the process 1000 may be performed by other suitable devices (such as one or more of the electronic device 110, the electronic device 115, the electronic device 117, the collaborative application 206) and / or one or more other components of one or more servers (such as the collaborative server 130). Further for the purpose of explanation, the blocks of the process 1000 are described herein as occurring sequentially or linearly. However, multiple blocks of the process 1000 may occur in parallel. In addition, the blocks of the process 1000 do not have to be performed in the order shown, and / or one or more blocks of the process 1000 do not have to be performed and / or may be replaced by other operations.

[0124] In example process 1000, at block 1002, a messaging system at a device associated with a user account may receive a message including a document link. For example, the document link may be associated with a collaboration application (e.g., collaboration application 206). The collaboration application may be associated with a first entity, and the messaging system may be associated with a different second entity. The collaboration application and the messaging system may communicate via one or more APIs. The messaging system may include an application (e.g., messaging application 208) that executes code instantiated on a device and / or a server remote from the first device.

[0125] At block 1004, the messaging system may receive a selection of a document link. For example, the messaging system may receive an indication that a user account has clicked on a document link.

[0126] At block 1006, the device may obtain an obfuscated identifier of a user account associated with the document link. For example, the obfuscated identifier may be included in the message. In some variations, the device may obtain the obfuscated identifier of the user account by obtaining the obfuscated identifier from the message.

[0127] In some variations, an obfuscated identifier may be associated with a user account and a document link. The obfuscated identifier may be based on a Merkle tree associated with the device and a document identifier associated with the linked document. For example, the Merkle tree may be generated based on a combination of a public key associated with the device and a plurality of corresponding public keys of a plurality of attached devices. In one or more specific implementations, the Merkle tree may include a plurality of random identifiers (e.g., random public keys) to ensure that the Merkle tree includes a minimum number of public keys.

[0128] In one or more specific implementations, the device can sign the obfuscated identifier of the user account using the private key of the device. In response to selection of the document link, the messaging system can send the signed obfuscated identifier of the user account to the collaboration application.

[0129] At block 1008 , the device may determine that the user account is authorized to access the document link based on the obfuscated identifier of the user account and the device's private key.

[0130] In one or more specific implementations, the device may determine that the user account is authorized to access the document link by comparing information derived from the signed fuzzy identifier of the user account with a stored fuzzy identifier associated with the user account and the document link to determine that the user account has access to the document link. In one or more specific implementations, the stored fuzzy identifier is stored in a server associated with the collaborative application. In one or more specific implementations, the device may determine that the user account is authorized to access the document link by providing cryptographic information (e.g., a fuzzy identifier, a signed fuzzy identifier, information for deriving the fuzzy identifier, a public key, or information derived from the signed fuzzy identifier of the user account) to a server associated with the collaborative application for comparison at the server with a stored fuzzy identifier associated with the user account and the document link to determine that the user account has access to the document link. In these embodiments, the device may determine that the user account is authorized by receiving a confirmation from the server that the device is authorized (based on a comparison performed at the server). In one or more specific implementations, the cryptographic information may include a public key of the device (and / or the public key may be derived from the cryptographic information) and may be signed by the device using a corresponding private key. In this manner, the server can verify the signature using a public key obtained and / or derived from the signed cryptographic information.

[0131] At block 1010 , the device may, in response to determining that the user account is authorized to access the document link, present an interface (eg, a user interface) of the collaboration application for displaying a linked document associated with the document link.

[0132] In some variations, the collaboration application may provide access to the linked document by a user account.

[0133] Fig.11 A flowchart of an example process 1100 for sending a message indicating that a change has been made to a linked document associated with a collaborative application is shown in accordance with one or more implementations. Figure 51100 is described with reference to the components of the electronic device 117 (particularly with reference to the messaging system), which may be performed by one or more processors of the electronic device 117 and / or by the messaging server 120. However, the process 1100 is not limited to the electronic device 117 and the messaging server 120, and one or more blocks (or operations) of the process 1100 may be performed by other suitable devices (such as one or more of the electronic device 110, the electronic device 115, the electronic device 117, the collaborative application 206) and / or one or more other components of one or more servers (such as the collaborative server 130). Further for the purpose of explanation, the blocks of the process 1100 are described herein as occurring sequentially or linearly. However, multiple blocks of the process 1100 may occur in parallel. In addition, the blocks of the process 1100 do not have to be performed in the order shown, and / or one or more blocks of the process 1100 do not have to be performed and / or may be replaced by other operations.

[0134] In the example process 1100, at block 1102, a messaging system may receive information associated with a change to a linked document associated with a document link in a message thread having at least one user account from a collaboration application (e.g., collaboration application 206). The collaboration application may be associated with a first entity, and the messaging system may be associated with a different second entity. The collaboration application and the messaging system may communicate via one or more APIs. The messaging system may include an application (e.g., messaging application 208) that executes code instantiated on a participant device and / or a server remote from the participant device.

[0135] In some variations, the collaboration application may be a document collaboration application for collaborating on text documents, spreadsheets, and / or slides.

[0136] In one or more specific implementations, multiple users who are associated with at least one user account and are participants in a message thread can have access to a linked document in a collaborative application.

[0137] In some variations, receiving information associated with changes to the linked document includes receiving an indication that a user associated with at least one user account has made modifications to the linked document. In other variations, receiving information associated with changes to the linked document includes receiving an indication that a user not associated with at least one user account has made modifications to the linked document.

[0138] In some variations, the information associated with the change to the linked document includes an indication that at least one of text, images, video, audio, charts, tables, comments, or reactions has been added to or deleted from the linked document. In some variations, the information associated with the change to the linked document includes an indication that one or more users associated with at least one user account have been tagged or mentioned in the document.

[0139] In some variations, the at least one user account may include a plurality of user accounts. Each of the plurality of user accounts may have an obfuscated identifier generated by the messaging system for use by the collaboration application.

[0140] In one or more specific implementations, receiving information associated with the change may include receiving information associated with the change after providing, from the messaging system to the collaboration application, an obfuscated identifier generated by the messaging system and associated with at least one user account and a document link. In some variations, an initial message with a document link in a message thread exchanged between the plurality of user accounts establishes, for the collaboration application, an obfuscated identifier to be associated with the document link. In some variations, the collaboration application may verify that a device accessing the document link corresponds to at least one of the obfuscated identifiers based on a cryptographic hash associated with the obfuscated identifier generated by the messaging system.

[0141] At block 1104, the messaging system may provide an update to a message thread having at least one user account in response to receiving information associated with a change to a linked document. For example, the messaging system may send a message in the message thread indicating a change to a linked document.

[0142] In some variations, providing updates to a message thread having at least one user account may include distributing updates to the message thread to a first user device and a second user device that are both associated with a single user account of the at least one user account. The updates to the message thread may be displayed at the earliest of the first user device and the second user device to display the message thread after receiving the updates to the message thread. Display of the updates to the message thread may be abandoned at a subsequent one of the first user device and the second user device to display the message thread after receiving the updates to the message thread.

[0143] If receiving information associated with changes to the linked document includes receiving an indication that a user associated with the at least one user account has made a modification to the linked document, providing an update to the message thread with the at least one user account may include displaying the information indicating the user along with the update. If receiving information associated with changes to the linked document includes receiving an indication that a user not associated with the at least one user account has made a modification to the linked document, providing an update to the message thread with the at least one user account may include displaying the update without displaying the information indicating the user.

[0144] In some variations, selection of an update to a message thread may be configured to surface an interface (eg, a user interface) of the collaboration application for displaying the linked document.

[0145] Fig.12 A flowchart of an example process 1200 for facilitating modification of access to a document when access to a message thread has been modified is shown according to one or more specific implementations. Figure 7 110, and / or the like. The process 1200 is described with reference to the components of the electronic device 115 (particularly with reference to the messaging system), which may be performed by one or more processors of the electronic device 115 and / or by the messaging server 120. However, the process 1200 is not limited to the electronic device 115 and the messaging server 120, and one or more blocks (or operations) of the process 1200 may be performed by other suitable devices (such as one or more of the electronic device 110, the electronic device 115, the electronic device 117, the collaborative application 206) and / or one or more other components of one or more servers (such as the collaborative server 130). Further for the purpose of explanation, the blocks of the process 1200 are described herein as occurring sequentially or linearly. However, multiple blocks of the process 1200 may occur in parallel. In addition, the blocks of the process 1200 do not have to be performed in the order shown, and / or one or more blocks of the process 1200 do not have to be performed and / or may be replaced by other operations.

[0146] In example process 1200, at block 1202, a messaging system at a device may receive from a user account a first request to modify access to a messaging thread conducted via the messaging system. The messaging thread may be associated with a document. The document may be associated with a collaboration application. The collaboration application may be associated with a first entity, and the messaging system may be associated with a different second entity. The collaboration application and the messaging system may communicate via one or more APIs. The messaging system may include an application (e.g., messaging application 208) that executes code instantiated on a participant device and / or a server remote from the participant device.

[0147] In some variations, the collaboration application may be a document collaboration application for collaborating on text documents, spreadsheets, and / or slides. At least one user associated with the user account may have access to documents in the collaboration application.

[0148] In some variations, the request to modify access to the message thread may include a request to add at least one participant to the message thread. In some variations, the request to modify access to the message thread may include a request to remove at least one participant from the message thread.

[0149] At block 1204, the messaging system may cause a first notification to be displayed in response to receiving the first request. The first notification may include a prompt indicating whether access to the document should be modified (e.g., as described herein in conjunction with Figure 8 described).

[0150] If the request to modify access to the message thread includes a request to add at least one participant to the message thread, the first notification may inquire whether access to the document should be given to the at least one participant. If the request to modify access to the message thread includes a request to remove at least one participant from the message thread, the first notification may inquire whether access to the document should be revoked for the at least one participant.

[0151] At block 1206, the messaging system may respond to the first notification and receive from the user account a user indication that access to the document should be modified. For example, the user indication may be a user selection of a "yes" button in a prompt.

[0152] At block 1208 , the device may, in response to receiving the user indication, present an interface (eg, user interface) of the collaboration application for displaying the document.

[0153] In some variations, the collaboration application may receive instructions to modify access to the document. For example, the collaboration application may receive instructions to modify access to the document via an interface (e.g., a user interface) of the collaboration application. The collaboration application may cause access to the document to be modified.

[0154] In one or more specific implementations, the messaging system may receive a second request from the user account to modify access to the message thread. In response to receiving the second request, the messaging system may cause a second notification to be displayed. The second notification may include a prompt indicating whether access to the document should be modified. In response to the second notification, the messaging system may receive an indication from the user account that access to the document should not be modified. In response to receiving the indication that access to the document should not be modified, the device may determine not to present an interface (e.g., a user interface) of the collaboration application for displaying the document.

[0155] Fig.13 A flowchart of an example process 1300 for accessing a message thread about a document from within a document according to one or more specific implementations is shown. Figure 1 and Figure 2 119 and messaging server 120. However, process 1300 is not limited to electronic device 119 and messaging server 120, and one or more blocks (or operations) of process 1300 may be performed by other suitable devices (such as electronic device 110, electronic device 115, electronic device 117, one or more of collaborative applications 206) and / or one or more other components of one or more servers (such as collaborative server 130). Further for the purpose of explanation, the blocks of process 1300 are described herein as occurring sequentially or linearly. However, multiple blocks of process 1300 may occur in parallel. In addition, the blocks of process 1300 do not have to be performed in the order shown, and / or one or more blocks of process 1300 do not have to be performed and / or may be replaced by other operations.

[0156] In the example process 1300, at block 1302, a messaging system at a device may receive a request from a collaboration application to display a message thread within an interface (e.g., a user interface) of the collaboration application. The collaboration application may be associated with a first entity, and the messaging system may be associated with a different second entity. The collaboration application and the messaging system may communicate via one or more APIs. The messaging system may include an application (e.g., the messaging application 208) that executes code instantiated on a participant device and / or a server remote from the participant device.

[0157] In some variations, the collaboration application may be a document collaboration application for collaborating on text documents, spreadsheets, and / or slides. At least one user associated with the user account may have access to documents in the collaboration application. In some variations, all multiple participants in the message thread may have access to documents displayed in the collaboration application.

[0158] In some embodiments, receiving a request to display a message thread within an interface (e.g., a user interface) of a collaborative application may include receiving an indication from a user associated with the collaborative application commanding the collaborative application to display the message thread within the interface (e.g., a user interface) of the collaborative application.

[0159] In one or more implementations, the messaging system can determine that a user associated with the collaboration application is a participant in a message thread.

[0160] At 1304, display of the message thread may be caused within an interface (e.g., a user interface) of a collaborating application by providing the message thread for display within a predefined area of ​​the user interface of the collaborating application without providing the message thread to the collaborating application. For example, the collaborating application may provide a user interface (e.g., a user interface) including a placeholder area that may be populated with the message thread by the messaging system and without providing the collaborating application with access to the content of the message thread.

[0161] In some variations, display of a message thread within an interface (e.g., a user interface) may be caused by displaying the message thread within a first portion of the interface and displaying the document within a second portion of the interface. The second portion may be different from the first portion. The first portion and the second portion may not overlap.

[0162] In some variations, after causing display of the message thread and document, the messaging system may receive additional messages in the message thread. Display of the message thread including the additional messages may be caused by the messaging system and within the interface of the collaboration application without exposing the additional messages to the collaboration application.

[0163] In one or more specific implementations, after display of a message thread is induced within an interface (e.g., a user interface) of a collaboration application, the device can receive, via the message thread displayed within the interface of the collaboration application, a user request to send a message in the message thread. The message can be sent via the messaging system without providing the user request or the message to the collaboration application.

[0164] As described herein, aspects of the subject technology may include the collection and delivery of data from applications to other users' computing devices. The present disclosure contemplates that, in some instances, the collected data may include personal information data that uniquely identifies or can be used to identify a specific person. Such personal information data may include demographic data, location-based data, online identifiers, phone numbers, email addresses, voice data, audio data, video data, home addresses, images, data or records related to a user's health or fitness level (e.g., vital signs measurements, medication information, exercise information), date of birth, or any other personal information.

[0165] The present disclosure recognizes that the use of such personal information data in the present technology can be used to benefit users. For example, the personal information data can be used to provide integration between a messaging system and a collaborative application. In addition, the present disclosure also anticipates other uses of personal information data that benefit users. For example, health and fitness data can be used according to the user's preferences to provide insights into their overall health, or can be used as positive feedback to individuals who use technology to pursue health goals.

[0166] The present disclosure envisions that entities responsible for collecting, analyzing, disclosing, transmitting, storing or otherwise using such personal information data will comply with established privacy policies and / or privacy practices. Specifically, it is expected that such entities will implement and consistently apply privacy practices that are generally recognized as meeting or exceeding the industry or government requirements for maintaining user privacy. Such information about the use of personal data should be prominently accessible to users and should be updated as the collection and / or use of data changes. The user's personal information should be collected only for legal use. In addition, such collection / sharing should only occur after receiving user consent or other legal basis specified in applicable law. In addition, such entities should consider taking any necessary steps to protect and safeguard access to such personal information data and ensure that other entities with access to personal information data comply with their privacy policies and procedures. In addition, such entities can subject themselves to third-party assessments to prove that they comply with widely accepted privacy policies and practices. In addition, policies and practices should be adjusted for specific types of personal information data collected and / or accessed, and applied to applicable laws and standards, including specific considerations that are exclusive to jurisdictions that can be used to impose higher standards. For example, in the United States, collection or access to certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA); while health data in other countries may be subject to other regulations and policies and should be handled accordingly.

[0167] Regardless of the foregoing, the present disclosure also contemplates specific implementations in which users selectively block the use or access of personal information data. That is, the present disclosure contemplates hardware elements and / or software elements to prevent or block access to such personal information data. For example, in the case of providing integration between a messaging system and a collaborative application, the technology of the present invention may be configured to allow a user to choose to "opt in" or "opt out" to participate in the collection of personal information data during registration for a service or at any time thereafter. In addition to providing "opt-in" and "opt-out" options, the present disclosure also contemplates providing notifications related to access or use of personal information. For example, a user may be notified that the user's personal information data will be accessed when downloading an application, and then be reminded again just before the personal information data is accessed by the application.

[0168] In addition, it is the intention of the present disclosure that personal information data should be managed and processed in a manner that minimizes the risk of unintentional or unauthorized access or use. Once the data is no longer needed, the risk can be minimized by limiting data collection and data deletion. In addition, and when applicable, including in certain health-related applications, data de-identification can be used to protect the privacy of users. De-identification can be promoted when appropriate by removing identifiers, controlling the amount or specificity of stored data (e.g., collecting location data at the city level rather than at the address level), controlling how data is stored (e.g., aggregating data among users), and / or other methods such as differential privacy.

[0169] Therefore, while the present disclosure broadly covers the use of personal information data to implement one or more of the various disclosed embodiments, the present disclosure also contemplates that various embodiments may be implemented without access to such personal information data. That is, various embodiments of the present technology will not fail to function properly due to the lack of all or part of such personal information data.

[0170] Fig.14 An electronic system 1400 is shown that can be used to implement one or more implementations of the subject technology. The electronic system 1400 can be Figure 1 The electronic device 114, electronic device 115, electronic device 117, electronic device 119 and / or server 120 and / or collaborative server 130 shown and / or can be part thereof. The electronic system 1400 may include various types of computer-readable media and interfaces for various other types of computer-readable media. The electronic system 1400 includes a bus 1408, one or more processing units 1412, a system memory 1404 (and / or buffer), a ROM 1410, a permanent storage device 1402, an input device interface 1414, an output device interface 1406, and one or more network interfaces 1416, or a subset and variant thereof.

[0171] The bus 1408 generally represents all system, peripheral, and chipset buses that communicatively connect the many internal devices of the electronic system 1400. In one or more implementations, the bus 1408 communicatively connects the one or more processing units 1412 with the ROM 1410, the system memory 1404, and the permanent storage device 1402. The one or more processing units 1412 retrieve instructions to be executed and data to be processed from these various memory units in order to perform the processes disclosed in the present subject matter. In different implementations, the one or more processing units 1412 can be a single processor or a multi-core processor.

[0172] ROM 1410 stores static data and instructions needed by one or more processing units 1412 and other modules of electronic system 1400. In other aspects, permanent storage device 1402 can be a read-write memory device. Permanent storage device 1402 can be a non-volatile memory unit that stores instructions and data even when electronic system 1400 is turned off. In one or more specific implementations, a mass storage device (such as a magnetic or optical disk and its corresponding disk drive) can be used as permanent storage device 1402.

[0173] In one or more implementations, a removable storage device (such as a floppy disk, a flash drive, and its corresponding disk drive) may be used as the permanent storage device 1402. Like the permanent storage device 1402, the system memory 1404 may be a read-write memory device. However, unlike the permanent storage device 1402, the system memory 1404 may be a volatile read-write memory, such as a random access memory. The system memory 1404 may store any of the instructions and data that may be required by one or more processing units 1412 at runtime. In one or more implementations, the processes disclosed in the subject matter are stored in the system memory 1404, the permanent storage device 1402, and / or the ROM 1410. The one or more processing units 1412 retrieve instructions to be executed and data to be processed from these various memory units in order to perform the processes of one or more implementations.

[0174] The bus 1408 is also connected to an input device interface 1414 and an output device interface 1406. The input device interface 1414 enables a user to transmit information and select commands to the electronic system 1400. Input devices that can be used with the input device interface 1414 may include, for example, an alphanumeric keyboard and a pointing device (also referred to as a "cursor control device"). The output device interface 1406 may enable, for example, an image generated by the electronic system 1400 to be displayed. Output devices that can be used with the output device interface 1406 may include, for example, a printer and a display device, such as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a flexible display, a flat panel display, a solid-state display, a projector, or any other device for outputting information. One or more specific implementations may include a device that acts as both an input device and an output device, such as a touch screen. In these specific implementations, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, voice, or tactile input.

[0175] Finally, if Fig.14As shown, bus 1408 also couples electronic system 1400 to one or more networks and / or to one or more network nodes, such as via one or more network interfaces 1416. Figure 1 Electronic device 145 is shown. In this manner, electronic system 1400 can be part of a computer network, such as a LAN, a wide area network ("WAN"), or an intranet, or can be part of a network of networks, such as the Internet. Any or all components of electronic system 1400 can be used with the subject disclosure.

[0176] Implementations within the scope of the present disclosure may be implemented in part or in whole using a tangible computer-readable storage medium (or multiple tangible computer-readable storage media of one or more types) programmed with one or more instructions. Tangible computer-readable storage media may also be non-transitory in nature.

[0177] Computer-readable storage media can be any storage media that can be read, written, or otherwise accessed by a general or special computing device, including any processing electronics and / or processing circuitry capable of executing instructions. For example, without limitation, computer-readable media can include any volatile semiconductor memory, such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. Computer-readable media can also include any non-volatile semiconductor memory, such as ROM, PROM, EPROM, EEPROM, NVRAM, flash memory, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack memory, FJG, and Millipede memory.

[0178] In addition, the computer-readable storage medium may include any non-semiconductor memory, such as optical disk storage, magnetic disk storage, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more specific implementations, the tangible computer-readable storage medium may be directly coupled to the computing device, while in other specific implementations, the tangible computer-readable storage medium may be indirectly coupled to the computing device, for example, via one or more wired connections, one or more wireless connections, or any combination thereof.

[0179] Instructions can be directly executable, or can be used to develop executable instructions. For example, instructions can be implemented as executable or non-executable machine code, or can be implemented as high-level language instructions that can be compiled to produce executable or non-executable machine code. In addition, instructions can also be implemented as data, or can include data. Computer executable instructions can also be organized in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As recognized by those skilled in the art, the details including but not limited to the number, structure, sequence and organization of instructions can be significantly different without changing the underlying logic, function, processing and output.

[0180] Although the above discussion mainly involves microprocessors or multi-core processors that execute software, one or more implementations are performed by one or more integrated circuits such as ASICs or FPGAs. In one or more implementations, such integrated circuits execute instructions stored on the circuits themselves.

[0181] Those skilled in the art will recognize that the various illustrative frames, modules, elements, parts, methods and algorithms described herein can be implemented as electronic hardware, computer software or a combination of the two. In order to illustrate this interchangeability of hardware and software, various illustrative frames, modules, elements, parts, methods and algorithms have been generally described above according to functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the entire system. The technician can implement the described functionality in different ways for each specific application. Various parts and frames can be arranged differently (e.g., arranged in different orders, or divided in different ways) without departing from the scope of the subject technology.

[0182] It should be understood that the specific order or hierarchy of the frames in the process disclosed by the present invention is an illustration of an example method. Based on design preference requirements, it should be understood that the specific order or hierarchy of the frames in the process can be rearranged or all the illustrated frames are executed. Any frame in these frames can be executed simultaneously. In one or more specific implementations, multitasking and parallel processing may be advantageous. In addition, the division of each system component in the above-mentioned embodiment should not be understood as requiring such division in all embodiments, and it should be understood that program components and systems can be generally integrated together in a single software product or encapsulated in multiple software products.

[0183] As used in this specification and any claims of this patent application, the terms "base station", "receiver", "computer", "server", "processor" and "memory" all refer to electronic devices or other technical devices. These terms exclude people or groups of people. For the purpose of this specification, the term "display" or "displaying" means displaying on an electronic device.

[0184] As used herein, the phrase "at least one of" following a list of items, any of which is separated by the terms "and" or "or", modifies the list as a whole, rather than each member (i.e., each item) of the list. The phrase "at least one of" does not require selection of at least one of each item listed; rather, the phrase allows for a meaning that includes at least one of any one item and / or at least one of any combination of items and / or at least one of each item. By way of example, the phrases "at least one of A, B, and C" or "at least one of A, B, or C" each refer to only A, only B, or only C; any combination of A, B, and C; and / or at least one of each of A, B, and C.

[0185] The predicate words "configured to," "operable to," and "programmed to" do not imply any specific tangible or intangible modification of a subject matter but are intended to be used interchangeably. In one or more specific implementations, a processor configured to monitor and control an operation or component may also mean that the processor is programmed to monitor and control the operation or that the processor is operable to monitor and control the operation. Similarly, a processor configured to execute code may be interpreted as a processor programmed to execute code or operable to execute code.

[0186] Phrases such as aspect, this aspect, on the other hand, some aspects, one or more aspects, a specific implementation, this specific implementation, another specific implementation, some specific implementations, one or more specific implementations, an embodiment, this embodiment, another embodiment, some embodiments, one or more embodiments, configuration, this configuration, other configurations, some configurations, one or more configurations, subject technology, disclosure, the present disclosure, other variations thereof, etc. are for convenience and do not mean that the disclosure involving such one or more phrases is essential to the subject technology, nor does it mean that such disclosure applies to all configurations of the subject technology. Disclosures involving such one or more phrases may apply to all configurations or one or more configurations. Disclosures involving such one or more phrases may provide one or more examples. Phrases such as aspect or some aspects may refer to one or more aspects and vice versa, and this applies similarly to the other aforementioned phrases.

[0187] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any implementation described herein as "exemplary" or as an "example" is not necessarily to be construed as preferred or advantageous over other implementations. In addition, to the extent that the terms "including," "having," and the like are used in the specification or claims, such terms are intended to be inclusive in a manner similar to how the term "comprising" is interpreted when used as a transitional word in a claim.

[0188] All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later become known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be covered by the claims. In addition, nothing disclosed herein is intended to be made available to the public regardless of whether the disclosure is explicitly stated in the claims. No claim element shall be interpreted under the provisions of 35 U.S.C. §112(f) unless the element is explicitly stated using the phrase “means for…” or, in the case of a method claim, the element is stated using the phrase “step for…”

[0189] The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects are apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein, but are intended to make the full scope consistent with the language claims, wherein the reference to the singular element is not intended to mean "only one", but to refer to "one or more", unless specifically noted. Unless otherwise specifically stated, the term "some" refers to one or more. Male pronouns (e.g., his) include female and neutral (e.g., her and its), and vice versa. Titles and subtitles (if any) are used only for convenience and do not limit the subject disclosure.

Claims

1. A method to be performed by a messaging system, the method comprising: receiving, via user input, instructions to create a message thread with a plurality of user accounts, the message thread including a document link associated with a collaboration application; generating, for each of the user accounts, an obfuscated identifier associated with the user account and the document link; and providing the obfuscated identifier to the collaborating application, Wherein the instructions to transmit an initial message having the document link in the message thread between the plurality of user accounts result in sending the obfuscated identifier to be associated with the document link to the collaboration application. 2 . The method of claim 1 , wherein the messaging system is configured to communicate with the collaboration application via one or more APIs (application programming interfaces).

3. The method of claim 1, wherein the messaging system comprises at least one of an application executing code instantiated on a user device and / or a server remote from the user device.

4. The method of claim 1, wherein the collaboration application is associated with a first entity and the messaging system is associated with a second entity.

5. The method of claim 1, wherein one or more collaborative sharing options are presented to a user, the one or more collaborative sharing options managing information shared between the messaging system and the collaborative application.

6. The method of claim 1, further comprising, before receiving the instruction to create the message thread with the plurality of user accounts: A request is sent to the collaboration application to share access to a linked document associated with the document link.

7. The method of claim 1, further comprising, before receiving the instruction to create the message thread with the plurality of user accounts: The initial message including the object associated with the document link is populated by the messaging system in response to receiving a request to share access to a linked document associated with the document link. The method of claim 7 , wherein the object comprises one or more selectable preferences for the document link.

9. The method of claim 1, wherein the obfuscated identifier associated with each user account and the document link is based on a Merkle tree associated with at least one device associated with each user account and a document identifier associated with the document link.

10. The method of claim 9, wherein the at least one device comprises a plurality of devices, and wherein generating the obfuscated identifier associated with each user account and the document link comprises: generating the Merkle tree by combining respective public keys associated with each of the plurality of devices; and Generate a hash of the Merkle tree.

11. The method of claim 1 , wherein each of the plurality of user accounts is associated with contact information accessible by the messaging system and not accessible by the collaboration application, and wherein the obfuscation identifier obfuscates the contact information from the collaboration application.

12. The method of claim 1, further comprising providing, by the collaboration application, the obfuscated identifier to a server associated with the collaboration application.

13. The method of claim 1, wherein the document link, when selected at a device associated with a particular user account, is configured such that the device determines, based on the obfuscated identifier and a private key of the device, that the particular user account is authorized to access the document link.

14. A method comprising: receiving, via a messaging system at a device associated with a user account, a message including a document link associated with a collaboration application; receiving, by the messaging system, a selection of the document link; obtaining, by the device, an obfuscated identifier of the user account relative to the document link; determining, by the device and based on the obfuscated identifier of the user account and a private key of the device, that the user account is authorized to access the document link; and An interface of the collaboration application is presented, by the device and in response to the determination, for displaying a linked document associated with the document link.

15. The method of claim 14, wherein a public key of the device is included in the obfuscated identifier and / or is derivable from the obfuscated identifier, obtaining the obfuscated identifier of the user account by the device comprises obtaining the obfuscated identifier from the message, and the method further comprises: signing the obfuscated identifier of the user account using the private key of the device corresponding to the public key; and A signed obfuscated identifier of the user account is sent by the messaging system to the collaboration application and in response to the selection of the document link. The method of claim 14 , wherein the obfuscated identifier is included in the message.

17. The method of claim 14, wherein the obfuscated identifier is associated with the user account and the document link, and wherein the obfuscated identifier is based on a Merkle tree associated with the device and a document identifier associated with the linked document.

18. The method of claim 17, wherein the Merkle tree is generated based on a combination of a public key associated with the device and a plurality of corresponding public keys of a plurality of additional devices.

19. A method comprising: receiving, by a messaging system from a collaboration application, information associated with a change to a linked document associated with a document link in an existing messaging thread associated with at least one user account associated with the messaging system, the change associated with at least one different user account associated with the collaboration application; and In response to receiving the information associated with the change to the linked document, providing an update to the existing message thread with the at least one user account.

20. A method according to claim 19, wherein receiving the information associated with the change includes receiving the information associated with the change after providing an obfuscated identifier generated by the messaging system and associated with the at least one user account and the document link from the messaging system to the collaboration application.

21. The method of claim 19, wherein the messaging system communicates with the collaboration application via one or more APIs (application programming interfaces).

22. The method of claim 19, wherein the messaging system comprises at least one of an application executing code instantiated on a user device and / or a server remote from the user device.

23. The method of claim 19, wherein the collaboration application is associated with a first entity and the messaging system is associated with a second entity.

24. The method of claim 19, wherein the at least one user account is a plurality of user accounts, each of the plurality of user accounts having an obfuscated identifier generated by the messaging system for use by the collaboration application.

25. The method of claim 24, wherein an initial message exchanged between the plurality of user accounts with the document link in the message thread establishes the obfuscated identifier to be associated with the document link for the collaborative application.

26. The method of claim 24, wherein the collaboration application verifies that a device accessing the document link corresponds to at least one of the obfuscated identifiers based on a cryptographic hash associated with the obfuscated identifiers generated by the messaging system.

27. The method of claim 19, wherein in response to receiving the information associated with the change to the linked document, providing an update to the message thread with the at least one user account comprises: distributing the update to the message thread to a first user device and a second user device each associated with a single user account of the at least one user account; displaying the update to the message thread at an earliest one of the first user device and another of the second user devices to display the message thread after receiving the update to the message thread; and Displaying the update to the message thread is abandoned at a subsequent one of the first user device and the second user device to display a message thread after receiving the update to the message thread.

28. A method according to claim 19, wherein the information associated with the change to the linked document includes an indication that at least one of text, images, video, audio, charts, tables, comments, or reactions has been added to or deleted from the linked document.

29. The method of claim 19, wherein the information associated with the change to the linked document includes an indication that one or more users associated with the at least one user account have been tagged or mentioned in the document.

30. The method of claim 19, wherein receiving the information associated with the change to the linked document comprises receiving an indication that a user associated with the at least one user account has made modifications to the linked document.

31. The method of claim 30, wherein providing the update to the message thread with the at least one user account comprises displaying information indicative of the user along with the update.

32. The method of claim 19, wherein receiving the information associated with the change to the linked document comprises receiving an indication that a user not associated with the at least one user account has made modifications to the linked document.

33. The method of claim 32, wherein providing the update to the message thread having the at least one user account comprises displaying the update without displaying information indicative of the user.

34. The method of claim 19, wherein selection of the update to the message thread is configured to present an interface of the collaboration application for displaying the linked document.

35. The method of claim 19, wherein the collaboration application is a document collaboration application for collaborating on at least one of a text document, a spreadsheet, and a slide show.

36. The method of claim 19, wherein a plurality of users associated with the at least one user account and who are participants in the message thread have access to the linked document in the collaborative application.

37. The method of claim 19, wherein the existing message thread existed prior to the updating.

38. A method comprising: receiving, via a messaging system at a device and from a user account, a first request to modify access to a message thread conducted via the messaging system, wherein the message thread is associated with a document, the document being associated with a collaboration application; causing, by the messaging system in response to receiving the first request, display of a first notification including a prompt indicating whether access to the document should be modified; receiving, by the messaging system and from the user account, a user indication that access to the document should be modified, in response to the first notification; and A collaboration application is requested, by the messaging system and in response to receiving the user indication, to render a display of the document.

39. The method of claim 38, wherein the request to modify access to a messaging thread comprises a request to add at least one participant to the messaging thread, the first notification inquiring whether the at least one participant should be given access to the document.

40. The method of claim 38, wherein the request to modify access to a messaging thread comprises a request to remove at least one participant from the messaging thread, the first notification inquiring whether access to the document should be revoked for the at least one participant.

41. The method of claim 38, further comprising: An instruction is sent to the collaboration application to modify access to the document.

42. The method of claim 38, further comprising: receiving, by the messaging system, from the user account a second request to modify access to the message thread; causing display of a second notification in response to receiving the second request, the second notification including a prompt indicating whether access to the document should be modified; receiving, by the messaging system and from the user account, an indication that access to the document should not be modified, in response to the second notification; and A determination is made, by the device and in response to receiving the indication that access to the document should not be modified, not to present the interface of the collaboration application for displaying the document.

43. The method of claim 38, wherein the collaboration application is a document collaboration application for collaborating on at least one of a text document, a spreadsheet, and a slide show.

44. The method of claim 38, wherein at least one user associated with the user account has access to the document in the collaborative application.

45. A method comprising: receiving, via a messaging system at a device and from a collaboration application, a request to display a message thread within a user interface of the collaboration application; and Causing display of the message thread within the user interface of the collaboration application by: The message thread is provided for display within a predefined area of ​​the user interface of the collaborating application without providing the message thread to the collaborating application.

46. ​​A method according to claim 45, wherein receiving the request to display the message thread within the user interface of the collaborative application includes receiving an indication from a user associated with the collaborative application commanding the collaborative application to display the message thread within the user interface of the collaborative application.

47. The method of claim 45, further comprising: A determination is made by the messaging system that a user associated with the collaboration application is a participant in the message thread.

48. The method of claim 45, wherein causing the message thread to be displayed within the user interface comprises: displaying the message thread within a first portion of the user interface; and A document is caused to be displayed in a second portion of the user interface, the second portion being different from the first portion, wherein the first portion and the second portion do not overlap.

49. The method of claim 45, further comprising, after causing the message thread to be displayed within the user interface: receiving, by the messaging system, additional messages in the message thread; and The message thread including the additional message is caused to be displayed within the user interface of the collaboration application.

50. The method of claim 45, wherein all of the plurality of participants in the message thread have access to a document displayed in the collaborative application.

51. The method of claim 45, wherein the collaboration application is a document collaboration application for collaborating on at least one of a text document, a spreadsheet, and a slide show.

52. The method of claim 45, further comprising, after causing the message thread to be displayed within the user interface: receiving, at the device via the message thread displayed within the user interface of the collaboration application, a user request to send a message in the message thread; and The message is sent via the messaging system without providing the user request or the message to the collaboration application.