Integration between messaging systems and collaborative applications
Aspects of the subject technology provide for integration between a messaging system and a collaborative application. A messaging system may receive, via user input, an instruction to create a message thread with a plurality of user accounts. The message thread may include a document link associated with a collaborative application. The messaging system may generate, for each of the user accounts, an obfuscated identifier associated with that user account and a document link. The messaging system may provide the obfuscated identifiers to the collaborative application. An initial message exchanged between the plurality of user accounts with the document link in the message thread may establish, for the collaborative application, the obfuscated identifiers that will be associated with the document link.
1 . A method, comprising:
receiving, via a user input to a messaging system, a plurality of identifiers, respectively, for a plurality of user accounts with the messaging system along with an instruction to create a message thread with the plurality of user accounts, the message thread including a document identifier associated with a document that is viewable using a collaborative application separate from the messaging system;
generating, for each of the plurality of user accounts, an obfuscated identifier that is based on a corresponding one of the plurality of identifiers for that user account and the document identifier; and
wherein an instruction, received by the messaging system, to transmit an initial message via the messaging system between the plurality of user accounts with a document link for the document in the message thread results in:
transmitting the initial message via the messaging system between the plurality of user accounts, and
sending, by the messaging system to the collaborative application, the obfuscated identifiers that will be associated with the document link for the document.
2 . The method of claim 1 , wherein the messaging system is configured to communicate with the collaborative application via one or more APIs (Application Program Interfaces).
3 . The method of claim 1 , wherein the messaging system includes at least one of an application executing code instantiated on a user device and/or a server remote to the user device.
4 . The method of claim 1 , wherein the collaborative application is associated with a first entity and the messaging system is associated with a second entity.
5 . The method of claim 1 , wherein, responsive to the instruction to create the message thread, a user corresponding to one of the plurality of user accounts is presented with one or more collaboration sharing options that govern 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:
sending, by the messaging system to the collaborative application, a request to share access to the document.
7 . The method of claim 1 , further comprising, before receiving the instruction to create the message thread with the plurality of user accounts:
populating, in response to receiving a request to share access to the document and by the messaging system, the initial message including an object associated with the document link.
8 . 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, for each of the plurality of user accounts, the obfuscated identifier that is based on the corresponding one of the plurality of identifiers and the document link is based on a Merkle tree associated with at least one device associated with that user account and the document identifier.
10 . The method of claim 9 , wherein the at least one device comprises multiple devices and wherein generating the obfuscated identifier that is based on the corresponding one of the plurality of identifiers for each user account and the document link comprises:
generating the Merkle tree by combining a respective public key associated with each of the multiple devices; and
generating a hash of the Merkle tree.
11 . The method of claim 1 , wherein the plurality of identifiers for the plurality of user accounts with the messaging system each comprise contact information that is accessible by the messaging system and inaccessible by the collaborative application, and wherein the obfuscated identifiers obfuscate the contact information from the collaborative application.
12 . The method of claim 1 , further comprising providing, by the collaborative application, the obfuscated identifier for each of the plurality of user accounts to a server associated with the collaborative application.
13 . The method of claim 1 , wherein the document link, when selected at a device associated with a particular user account of the plurality of user accounts, is configured to cause the device to determine that the particular user account is authorized to access the document link based on the obfuscated identifier for the particular user account and a private key of the device.
14 . A messaging system configured to:
receive, via a user input to the messaging system, a plurality of identifiers, respectively, for a plurality of user accounts with the messaging system along with an instruction to create a message thread with the plurality of user accounts, the message thread including a document identifier associated with a document that is viewable using a collaborative application separate from the messaging system;
generate, for each of the plurality of user accounts, an obfuscated identifier that is based on a corresponding one of the plurality of identifiers for that user account and the document identifier; and
wherein an instruction, received by the messaging system, to transmit an initial message via the messaging system between the plurality of user accounts with a document link for the document in the message thread results in:
transmitting the initial message via the messaging system between the plurality of user accounts, and
sending, by the messaging system to the collaborative application, the obfuscated identifiers that will be associated with the document link for the document.
15 . The messaging system of claim 14 , wherein the messaging system is further configured to communicate with the collaborative application via one or more APIs (Application Program Interfaces).
16 . The messaging system of claim 14 , wherein the messaging system includes at least one of an application executing code instantiated on a user device and/or a server remote to the user device.
17 . The messaging system of claim 14 , wherein the collaborative application is associated with a first entity and the messaging system is associated with a second entity.
18 . The messaging system of claim 14 , wherein, responsive to the instruction to create the message thread, a user corresponding to one of the plurality of user accounts is presented with one or more collaboration sharing options that govern information shared between the messaging system and the collaborative application.
19 . The messaging system of claim 14 , wherein the messaging system is further configured to, before receiving the instruction to create the message thread with the plurality of user accounts:
send, by the messaging system to the collaborative application, a request to share access to the document.
20 . The messaging system of claim 14 , wherein the messaging system is further configured to, before receiving the instruction to create the message thread with the plurality of user accounts:
populate, in response to receiving a request to share access to the document and by the messaging system, the initial message including an object associated with the document link.
21 . The messaging system of claim 20 , wherein the object comprises one or more selectable preferences for the document link.
22 . The messaging system of claim 14 , wherein the obfuscated identifier that is based on the corresponding one of the plurality of identifiers for each user account and the document link is based on a Merkle tree associated with at least one device associated with that user account and the document identifier.
23 . The messaging system of claim 22 , wherein the at least one device comprises multiple devices and wherein generating the obfuscated identifier that is based on the corresponding one of the plurality of identifiers for each user account and the document link comprises:
generating the Merkle tree by combining a respective public key associated with each of the multiple devices; and
generating a hash of the Merkle tree.
24 . The messaging system of claim 14 , wherein the plurality of identifiers for the plurality of user accounts with the messaging system each comprise contact information accessible by the messaging system and inaccessible by the collaborative application, and wherein the obfuscated identifiers obfuscate the contact information from the collaborative application.
25 . The messaging system of claim 14 , wherein the document link, when selected at a device associated with a particular user account of the plurality of user accounts, is configured to cause the device to determine that the particular user account is authorized to access the document link based on the obfuscated identifier for the particular user account and a private key of the device.
26 . A non-transitory computer-readable medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving, via a user input to a messaging system, a plurality of identifiers, respectively, for a plurality of user accounts with the messaging system along with an instruction to create a message thread with the plurality of user accounts, the message thread including a document identifier associated with a document that is viewable using a collaborative application separate from the messaging system;
generating, for each of the plurality of user accounts, an obfuscated identifier that is based on a corresponding one of the plurality of identifiers for that user account and the document identifier; and
wherein an instruction, received by the messaging system, to transmit an initial message via the messaging system between the plurality of user accounts with a document link for the document in the message thread results in:
transmitting the initial message via the messaging system between the plurality of user accounts, and
sending, by the messaging system to the collaborative application, the obfuscated identifiers that will be associated with the document link for the document.
27 . The non-transitory computer-readable medium of claim 26 , wherein the messaging system is configured to communicate with the collaborative application via one or more APIs (Application Program Interfaces).
28 . The non-transitory computer-readable medium of claim 26 , wherein the messaging system includes at least one of an application executing code instantiated on a user device and/or a server remote to the user device.
29 . The non-transitory computer-readable medium of claim 26 , wherein the collaborative application is associated with a first entity and the messaging system is associated with a second entity.
30 . The non-transitory computer-readable medium of claim 26 , wherein, responsive to the instruction to create the message thread, a user corresponding to one of the plurality of user accounts is presented with one or more collaboration sharing options that govern information shared between the messaging system and the collaborative application.
31 . The non-transitory computer-readable medium of claim 26 , the operations further comprising, before receiving the instruction to create the message thread with the plurality of user accounts:
sending, by the messaging system to the collaborative application, a request to share access to the document.
32 . The non-transitory computer-readable medium of claim 26 , the operations further comprising, before receiving the instruction to create the message thread with the plurality of user accounts:
populating, in response to receiving a request to share access to the document and by the messaging system, the initial message including an object associated with the document link.
33 . The non-transitory computer-readable medium of claim 32 , wherein the object comprises one or more selectable preferences for the document link.
34 . The non-transitory computer-readable medium of claim 26 , wherein the obfuscated identifier that is based on the corresponding one of the plurality of identifiers for each user account and the document link is based on a Merkle tree associated with at least one device associated with that user account and a document identifier.
35 . The non-transitory computer-readable medium of claim 34 , wherein the at least one device comprises multiple devices and wherein generating the obfuscated identifier that is based on the corresponding one of the plurality of identifiers for each user account and the document link comprises:
generating the Merkle tree by combining a respective public key associated with each of the multiple devices; and
generating a hash of the Merkle tree.
36 . The non-transitory computer-readable medium of claim 26 , wherein the plurality of identifiers for the plurality of user accounts with the messaging system each comprise contact information that is accessible by the messaging system and inaccessible by the collaborative application, and wherein the obfuscated identifiers obfuscate the contact information from the collaborative application.
37 . The non-transitory computer-readable medium of claim 26 , wherein the document link, when selected at a device associated with a particular user account of the plurality of user accounts, is configured to cause the device to determine that the particular user account is authorized to access the document link based on the obfuscated identifier for the particular user account and a private key of the device.