Integrated workspace supporting shared folders
Through the content management system, it provides an integrated and collaborative environment, supports shared folders and integrated emails and work space communication, solves the problem of complex communication and content management failed by modern company employees in work, and achieves higher work efficiency and simplified work efficiency and simplified work efficiency and simplification. Working process.
Patent Information
- Application Number
- CN202110775690.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2015-05-29
- Filing Date
- 2016-02-23
- Publication Date
- 2025-01-24
- Estimated Expiration
- 2036-02-23
AI Technical Summary
Modern company employees face problems such as complex communication and inconvenient content management at work, resulting in inefficiency and increased complexity.
Provide an integrated collaborative environment through the content management system, support sharing folders, integrated email and work space communication, and provide graphic user interface to uniform management communication and content management.
The employees need to communicate, manage work products, and access to the required applications in a single user interface, reducing complexity and improving work efficiency.
Smart Images

Figure CN113360775B_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with the international application date of February 23, 2016, application number 201680013779.8, and invention name “Integrated workspace supporting shared folders”.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application claims the benefit of U.S. Patent Application No. 14 / 725,981, filed on May 29, 2015, entitled “SHARED FOLDER BACKED INTEGRATED WORK SPACES,” which claims the benefit of and priority to U.S. Provisional Patent Application No. 62 / 136,871, filed on March 23, 2015, entitled “SHARED FOLDER BACKED INTEGRATED WORK SPACES,” both of which are hereby expressly incorporated herein by reference in their entireties. Technical Field
[0004] The present technology relates to content management systems, and more particularly to integrated collaborative environments. Background Art
[0005] Employees in modern companies use many different software tools to perform various job functions. Email, instant messaging, chat, and text (SMS) communications are all used to communicate with colleagues and project team members. Different file systems (e.g., local machine drives, network drives, cloud storage, etc.) are used to record documents, media items, and other content items necessary for or as a result of work. Different applications are used to view, create, and edit the various content items that employees use during the workday. While this communication mechanism, digital storage location, and productivity application adds flexibility to the work environment, it also adds complexity and inefficiency when employees need to figure out how to communicate with colleagues, where work-related content items are located, and which applications are needed to view, create, and edit the various content items (documents, files, images, media, etc.) necessary to perform the employee's job functions. Summary of the invention
[0006] Additional features and advantages of the present disclosure will be set forth in the following description, and will be apparent in part from the description, or may be learned by implementing the principles disclosed herein. Features and advantages of the present disclosure may be realized and obtained by means of the means and combinations specifically indicated in the appended claims. These and other features of the present disclosure may become more fully understood from the following description and the appended claims, or may be learned by implementing the principles set forth herein.
[0007] Disclosed are systems, methods, and non-transitory computer-readable storage media for supporting an integrated workspace for shared folders. In some implementations, a content management system may provide a graphical user interface (GUI) that integrates communications and content management into a single user interface. The user interface may include a mechanism that allows a user to provide input to create a new workspace. The user interface may provide a mechanism that allows a user to view sessions related to a workspace and / or content items associated with a workspace. The user interface may present representations of content items associated with a workspace and allow a user to provide input to create, view, edit, and share content items associated with a workspace.
[0008] In some implementations, the online shared folders of a content management system can be used as a repository of content items and messages associated with the workspace represented by a graphical user interface. For example, messages, notes or other communications presented on the workspace GUI can be stored in an online shared folder and synchronized with a local shared folder on the user's client device. Content items discussed, shared, created and / or edited by the workspace GUI can be stored in a shared folder. A shared folder can be shared with members of the workspace (e.g., users, employees, project team members, etc.). For example, messages, content items and other objects in the local copy of the user of an online shared folder stored on a user's device can be synchronized with the local shared folders of these other users on other users' devices. In some implementations, a workspace GUI can be generated based on the content of an online and / or local shared folder. For example, a workspace GUI can represent the content (e.g., messages, content items, etc.) of an online and / or local shared folder.
[0009] In some implementations, a user can create a new content item using a browser interface of an online content management system. The user can specify the type of content item to be created (e.g., a document) and the name of the content item. The content item type and name can be sent to the content management system. The content management system can store templates corresponding to each type of document that can be created. When a request to create a new content item is received, the content management system can copy the template corresponding to the requested content item type, rename the template copy to the specified name, and save the new content item to a user folder on the content management system. The online folder can then be synchronized with the corresponding folder on the user device. The user can access the new content item from a local folder to view and edit the new content item.
[0010] In some implementations, when an authorized user is accessing a content item in a workspace through a web browser on a client device, the web browser can recognize that the user has a local version of the content item in a local folder on the client device (e.g., which corresponds to an online shared folder), and present the user with an option to select a preview (e.g., web-delivered image) version of the content item or to select to open the local version of the content item in a native application on the client device. When the user chooses to open the local version of the content item in the native application, the user can edit the content item, and all changes will be automatically synchronized back to the online shared folder.
[0011] In some implementations, a workspace may integrate email and workspace communication (e.g., chat) features so that workspace members may use email and workspace communication interchangeably. A workspace email address (email mailing list) may be assigned to the workspace. Emails addressed to / from the workspace email address may be obtained (e.g., from a user's email account, from an email server, etc.), and workspace chat messages may be generated for each email address, and added to the workspace message stream. When an authorized user generates a workspace chat message, an email corresponding to the workspace chat message (e.g., including message content) may be generated and sent to subscribers to the workspace email mailing list (e.g., authorized users of a shared folder).
[0012] In some implementations, an email message sent to a mailing list associated with a shared folder can be transformed into a workspace (e.g., chat stream) message. When the email message contains attachments, the attachments can be stripped from the email message, stored in the shared folder, and the message can be presented in the message stream on the workspace user interface along with a link to the attachments stored in the online shared folder.
[0013] In some implementations, an email associated with a content item can be inserted as a comment into the content item. For example, if the email includes a content item attachment, the body (text) of the email message can be inserted into the content item as a comment. If the email is related to content time, or in an email thread associated with the content item, the email can be inserted into the content item as a comment. The comment inserted into the content item can be presented on the user interface when the user views the content item.
[0014] In some implementations, a user may select a content item, and upon selection, an options user interface may be displayed on which the user may select a "Discuss" option. When the user selects the Discuss option, the content item may be presented in a new message in the message stream, and the user may enter a message that begins a conversation (e.g., a message thread) about the selected content item.
[0015] In some implementations, annotations (e.g., word document annotations) or previews (e.g., metadata) in the native document are added to the workspace message stream as a conversation about the content item. When the content item is edited, a new message indicating what changes have been made can be generated and added to the message stream or message thread corresponding to the content item.
[0016] In some implementations, when a user adds a content item to a workspace message (e.g., a chat post), the content item is automatically added to a shared folder of the workspace and synchronized with client devices of authorized users of the shared folder. In some implementations, adding a content item to a chat message or post can trigger (e.g., initiate) synchronization of the content item with client devices of workspace members.
[0017] In some implementations, conversations specific to a content item can be aggregated across different conversation modes (e.g., email, workspace communication, chat, text messaging, etc.) and can be associated with the content item. The user can then view all conversations specific to the content item in a single location. For example, the user can click on a content item to trigger a conversation view for the content item. In the conversation view, the user will see all conversations specific to the content item (e.g., from email, chat, comments in a document, etc.).
[0018] In some implementations, the workspace user interface can present a message stream (e.g., messages from various users arranged in chronological order). The message stream can include single messages and threaded messages. Threaded messages can be, for example, multiple related messages in a conversation (e.g., original messages, reply messages, replies to replies). When a single message is received, the default behavior of the message stream can be to scroll the existing messages and add new messages. However, when the user is interacting with an existing message or message thread (e.g., hovering the cursor over an existing message, entering a reply to an existing message), the scrolling behavior is stopped (e.g., the message stream is frozen) while the user is interacting with the existing message or message thread. Once the user stops interacting with the existing message, the scrolling behavior of the message stream can be restarted.
[0019] In some implementations, a workspace member can mention an external user in a workspace message. The online content management system can determine that the external user has been mentioned, obtain contact information about the external user, and send a chat message to the external user using a communication mechanism identified in the external user's contact information (e.g., email, text message, SMS message, etc.). The external user can reply to the chat message using the same communication mechanism. When the content management system receives the external user's reply, the content management system can generate a chat message that includes the content of the external user's reply. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] The above-recited advantages and features and other advantages and features of the present disclosure will become apparent by referring to the specific embodiments of the present disclosure illustrated in the accompanying drawings. Understanding that these drawings depict only example embodiments of the present disclosure and are therefore not to be considered limiting of the scope of the present disclosure, the principles herein are more particularly and in more detail described and explained through the use of the accompanying drawings, in which:
[0021] Figure 1 is a block diagram of an example system configuration for implementing an integrated workspace supporting shared folders;
[0022] Figure 2 is a block diagram of an example system for providing an integrated workspace supporting shared folders;
[0023] Figure 3 illustrating a sample workspace graphical user interface;
[0024] Figure 4 is a block diagram of an example system for creating a new content item in a workspace;
[0025] Figure 5 is a flow chart of an example client process for producing a new content item in a workspace;
[0026] Figure 6 is a flow chart of an example server process for generating a new content item in a workspace;
[0027] Figure 7 A block diagram illustrating a system for integrating email into an integrated workspace supporting shared folders;
[0028] Figure 8 is a flow chart of an example server process for converting an email message into a workspace message;
[0029] Fig. 9 is a flow chart of an example client process for converting a workspace message into an email message;
[0030] Fig.10 is a flow chart of an example server process for converting a workspace message into an email;
[0031] Fig.11 illustrating an example workspace graphical user interface for generating a discussion about a content item;
[0032] Fig.12 illustrating an example workspace graphical user interface for viewing annotations associated with content items in a workspace;
[0033] Fig.13 is a flow chart of an example process for generating and displaying annotations for a content item;
[0034] Fig.14 is a flow chart of an example process 1400 for creating a conversation around a content item;
[0035] Fig.15 is a flow chart of an example process 1500 for sending a workspace message to an external user;
[0036] Fig.16 is a flow chart of an example process 1600 for presenting a chat and a threaded conversation in the same graphical user interface;
[0037] Fig.17A illustrates possible example system embodiments for implementing various embodiments of the present technology; and
[0038] Fig. 17B Possible example system embodiments for implementing various embodiments of the present technology are shown. DETAILED DESCRIPTION
[0039] Various embodiments of the present disclosure are discussed in detail below. Although specific implementations are discussed, it should be understood that this is only done for the purpose of illustration. Those skilled in the relevant art will recognize that other components and configurations may be used without departing from the spirit and scope of the present disclosure.
[0040] The disclosed technology addresses the need in the art for an integrated collaborative workspace that provides a single user interface to communicate with colleagues, produce and access work products (e.g., files, media, documents, digital content items, etc.), and access software applications necessary to conduct business in the modern world.
[0041] Figure 1is a block diagram of an example system configuration 100 for implementing an integrated workspace supporting shared folders, wherein electronic devices communicate over a network for the purpose of exchanging content and other data. The system can be configured to communicate over a wide area network (e.g., Figure 1 However, the present principles are applicable to a wide variety of network configurations that facilitate communication between electronic devices. For example, Figure 1 Each component of the system 100 may be implemented in a localized or distributed manner in the network.
[0042] In the system 100, a user may use client devices 1021, 1022, ..., 102 n The content management system 106 may include client devices 102 (collectively referred to as "102") that are connected to the network 104 through direct and / or indirect communication. The content management system 106 may support connections from a variety of different client devices, such as desktop computers; mobile computers; mobile communication devices, such as mobile phones, smart phones, tablets; smart televisions; set-top boxes; and / or any other network-enabled computing devices. The client devices 102 may be of different types, capabilities, operating systems, etc. In addition, the content management system 106 may receive connections from multiple client devices 102 concurrently and interact with these client devices 102.
[0043] The user can interact with the content management system 106 through a client-side application installed on the client device 102. In some embodiments, the client-side application may include a component specific to the content management system. For example, the component may be a stand-alone application, one or more application plug-ins, and / or a browser extension. However, the user may also interact with the content management system 106 through a client-side application that resides on the client device 102. i The client-side application may interact with the content management system 106 through a third-party application (such as a web browser) on the client-side application and is configured to communicate with the content management system 106. In either case, the client-side application may present a user interface (UI) to the user for interacting with the content management system 106. For example, the user may interact with the content management system 106 through a client-side application integrated with the file system or through a web page displayed using a web browser application.
[0044] The content management system 106 may allow a user to store content and also perform various content management tasks, such as retrieving, modifying, browsing, and / or sharing content. In addition, the content management system 106 may allow a user to access content from multiple client devices 102. For example, the client device 102 i The content can be uploaded to the content management system 106 via the network 104. The content can later be used by the same client device 102 ior some other client device 102 j Retrieved from content management system 106 .
[0045] To facilitate various content management services, users can create accounts with the content management system 106. Account information can be maintained in a user account database 150. The user account database 150 can store profile information about registered users. In some cases, the only personal information in a user profile may be a username and / or an email address. However, the content management system 106 can also be configured to receive additional user information.
[0046] The user account database 150 may also include account management information, such as account type, e.g., free or paid; usage information, e.g., file editing history; maximum storage space authorized; storage space used; content storage location; security settings; personal configuration settings; content sharing data; etc. The account management module 124 may be configured to update and / or obtain user account details in the user account database 150. The account management module 124 may be configured to interact with any number of other modules in the content management system 106.
[0047] An account can be used to store content (such as digital data, documents, text files, audio files, video files, etc.) from one or more authorized client devices 102 on the account. The content can also include folders or other mechanisms for grouping content items, together with different behaviors, such as collections, playlists, albums, etc. For example, an account can include public folders accessible to any user. Public folders can be assigned web-accessible addresses. Links to web-accessible addresses can be used to access the contents of public folders. In another example, an account can include: a photo folder, which is intended for photos and provides specific properties and actions customized for photos; an audio folder, which provides the ability to play back audio files and perform other audio-related actions; or other special purpose folders. An account can also include shared folders, or group folders that are linked to multiple user accounts and available to these user accounts. Permissions for multiple users can be different for shared folders. For example, permission settings associated with a shared folder can indicate that only certain users (e.g., users associated with a business, a project team, a workspace, etc.) can access the shared folder.
[0048] The content may be stored in content storage 160. Content storage 160 may be a storage device, multiple storage devices, or a server. Alternatively, content storage 160 may be a cloud storage provider or a network storage accessible via one or more communication networks. Content management system 106 may hide the complexity and details from client device 102 so that client device 102 does not need to know exactly where content items are being stored by content management system 106. In one variation, content management system 106 may store content items in the order in which they appear on client device 102. i The content storage 160 may be stored in a folder hierarchy that is the same as the folder hierarchy on the disk. However, the content management system 106 may store the content items in its own order, arrangement, or hierarchy. The content management system 106 may store the content items in a network accessible storage (SAN) device, a redundant array of inexpensive disks (RAID), or the like. The content storage 160 may use one or more partition types to store the content items, such as FAT, FAT32, NTFS, EXT2, EXT3, EXT4, ReiserFS, BTRFS, etc.
[0049] The content memory 160 can also store metadata, which describes content items, content item types, and the relationship between content items and various accounts, folders, or groups. The metadata of a content item can be stored as a part of the content item, or can be stored separately. In a variation, each content item stored in the content memory 160 can be assigned a system-wide unique identifier.
[0050] Content storage 160 can reduce the amount of storage space required to identify duplicated files or duplicated segments of files. Instead of storing multiple copies, content storage 160 can store a single copy and then use pointers or other mechanisms to link the replicas to the single copy. Similarly, by using file versioning that tracks changes to files, different versions of files (including forked version trees), and change histories, content storage 160 can store files more efficiently and can also provide the ability to undo operations. The change history can include a set of changes to the file version that generates a change when applied to the original file version.
[0051] The content management system 106 may be configured to support automatic synchronization of content from one or more client devices 102. The synchronization may be platform agnostic. That is, content may be synchronized across multiple client devices 102 of different types, capabilities, operating systems, etc. For example, the client devices 102 i The client software may include the synchronization module 132 at the content management system 106 to enable the client device 102 to i's file system with the content in the associated user account. In some cases, the client software can synchronize any changes to the content in a specified folder and its subfolders (such as new, deleted, modified, copied, or moved files or folders). The client software can be a stand-alone software application, can be integrated with an existing content management application in the operating system, or some combination of the above. In one example of client software integrated with an existing content management application, a user can manipulate content directly in a local folder while a background process monitors changes to the local folder and synchronizes those changes to the content management system 106. Conversely, the background process can identify content that has been updated at the content management system 106 and synchronize those changes to the local folder. The client software can provide notifications of synchronization operations and can provide indications of content status directly within the content management application. Sometimes the client device 102 i There may not be an available network connection. In this case, the client software can monitor the linked folder for file changes and queue these changes for later synchronization to the content management system 106 when a network connection is available. Similarly, the user can manually stop or pause synchronization with the content management system 106.
[0052] The user may also view or manipulate the content through a web interface generated and served by the user interface module 122. For example, the user may navigate in a web browser to a web address provided by the content management system 106. Changes or updates made to the content in the content storage 160 through the web interface (such as uploading a new version of a file) may be communicated back to other client devices 102 associated with the user's account. For example, multiple client devices 102 (each with their own client software) may be associated with a single account, and the files in the account may be synchronized between each of the multiple client devices 102.
[0053] The content management system 106 may include a communication interface 120 for interfacing with various client devices 102 and may communicate with other content and / or service providers 1091, 1092, ..., 1093 through an application programming interface (API). n (collectively referred to as "109"). Certain software applications can access content storage 160 on behalf of users through APIs. For example, when a user provides credentials, a software package (such as an app on a smart phone or tablet computing device) can programmatically call content management system 106 directly to read, write, create, delete, share, or otherwise manipulate content. Similarly, an API can allow a user to access all or part of content storage 160 through a website.
[0054] The content management system 106 may also include an authenticator module 126 that can verify user credentials, security tokens, API calls, specific client devices, etc. to ensure that only authorized clients and users can access files. In addition, the content management system 106 may include an analytics module 134 that can track and report aggregate file operations, user actions, network usage, total storage space used, and other technical, usage, or business metrics. Privacy and / or security policies may prevent unauthorized access to user data stored by the content management system 106.
[0055] The content management system 106 may include a sharing module 130 for managing sharing content publicly or privately. Sharing content publicly may include making a content item accessible from any computing device in network communication with the content management system 106. Sharing content privately may include linking a content item in a content storage 160 with two or more user accounts so that each user account can access the content item. Sharing may be performed in a platform-agnostic manner. That is, content may be shared across multiple client devices 102 of different types, capabilities, operating systems, etc. Content may also be shared across different types of user accounts.
[0056] In some embodiments, content management system 106 may be configured to maintain a content directory that identifies the location of each content item in content storage 160. The content directory may include a unique content entry for each content item stored in content storage.
[0057] The content item may include a content path that can be used to identify the location of the content item in the content management system. For example, the content path may include the name of the content item and a folder hierarchy associated with the content item. For example, the content path may include a folder or folder path in which the content item is placed and the name of the content item. The content management system 106 may use the content path to present the content item in an appropriate folder hierarchy.
[0058] The content entry may also include a content pointer identifying the location of the content item in the content memory 160. For example, the content pointer may include the exact storage address of the content item in the memory. In some embodiments, the content pointer may point to multiple locations, each of which contains a portion of the content item.
[0059] In addition to the content path and content pointer, the content item may also include a user account identifier that identifies a user account that can access the content item. In some embodiments, multiple user account identifiers may be associated with a single content item indicating that the content item is shared access by multiple user accounts.
[0060] To privately share a content item, the sharing module 130 may be configured to add a user account identifier to a content entry associated with the content item, thereby granting the added user account access to the content item. The sharing module 130 may also be configured to remove the user account identifier from the content entry to restrict access to the content item by the user account.
[0061] In order to share content publicly, sharing module 130 can be configured to generate a custom network address, such as a uniform resource locator (URL), which allows any web browser to access the content in content management system 106 without any authentication. To achieve this, sharing module 130 can be configured to include content identification data in the generated URL, which can be used to properly identify and return the content item of the request later. For example, sharing module 130 can be configured to include a user account identifier and a content path in the generated URL. When the URL is selected, the content identification data included in the URL can be sent to content management system 106, which can use the received content identification data to identify appropriate content items, and return the content items associated with the content items.
[0062] Except generating URL, sharing module 130 can also be configured to record that the URL of content item has been created.In certain embodiments, the content item associated with content item can include the URL mark indicating whether the URL of content item has been created.For example, this URL mark can be Boolean value, and it is set to 0 or false to indicate that the URL of content item has not been created at the beginning.Sharing module 130 can be configured to change the value of this mark to 1 or true after being generated to the URL of content item.
[0063] In some embodiments, sharing module 130 can also be configured to deactivate the URL generated. For example, each content item can also include a URL activation flag, which indicates whether the content should be returned in response to a request from the URL generated. For example, sharing module 130 can be configured to return the content item of the link request generated only when the URL activation flag is set to 1 or true. Therefore, the access to the content item whose URL has been generated can be easily restricted by changing the value of the URL activation flag. This allows the user to restrict the access to the content item without having to move the shared content item or delete the generated URL. Similarly, sharing module 130 can reactivate the URL by changing the value of the URL activation flag to 1 or true again. Therefore, the user can easily recover the access to the content item without having to generate a new URL.
[0064] The content management system 106 may include a workspace server 136. The workspace server 136 may be configured to manage a workspace that supports shared folders. For example, the workspace server 136 may receive workspace-related messages and content items and store these messages and content items in a shared folder associated with the workspace. The workspace server 136 may monitor the workspace shared folder and send state information (e.g., messages, content, etc.) describing the current state of the shared folder to the client device 102 so that the client device 102 can generate and display a graphical user interface that allows the user to interact with the workspace. For example, the workspace server 136 may be a web server that can provide a browser-based workspace graphical user interface (e.g., web page, web application, etc.) to a browser running on the user client device 102. The workspace server 136 may be a server that delivers shared folder state information to a workspace client application (e.g., in addition to a browser) so that the workspace client application can generate a graphical user interface representing the state of the workspace and / or the content in the shared folder associated with the workspace. The various functions of the workspace server 136 are described in more detail below.
[0065] Although content management system 106 is presented with specific components, those skilled in the art will appreciate that the architectural configuration of system 106 is only one possible configuration and that other configurations having more or fewer components are possible.
[0066] Figure 2 2 is a block diagram of an example system 200 for providing an integrated workspace supporting shared folders. For example, the system 200 may correspond to the system 100 described above. A client device 210 (eg, 102 i ) can create an account with the content management system 106. The user can create a shared folder 214 associated with the content management system 106 on the client device 210. When the shared folder 214 is created on the client device 210, a corresponding shared folder 234 can be created on the server device 230 of the content management system 106. The user of the client device 210 can communicate with the client device 240 (e.g., 102 j) to share the shared folder 214 with the user of the client device 240. Once the shared folder 214 is shared with the user of the client device 240, a corresponding shared folder 244 can be created on the client device 240. As described above, the content management system 106 can synchronize the shared folders 214, 234, and 244 so that content items added, modified, or deleted on one of the shared folders (e.g., shared folder 244) are correspondingly added, modified, or deleted in the corresponding shared folders (e.g., shared folders 214, 234) on the other devices.
[0067] In some implementations, the workspace server 136 may generate a workspace based on the shared folder 234. For example, as described above, a user of the client device 240 may view the contents of the shared folder 234 through a web browser interface to the content management system 106. While viewing the contents of the shared folder 234 in the browser interface displayed on the client device 240, the user may provide input (e.g., select a graphical element, such as a button or link) that causes the workspace server 136 to generate a workspace based on the shared folder 234 currently displayed on the web browser interface. For example, the web browser on the client device 240 may send a message requesting the generation of a workspace based on the shared folder 234 to the workspace server 136 through the network 104. The workspace server 136 may generate a workspace based on the shared folder 234 and send workspace state information to the client device 240 so that the client device 240 may generate and display a workspace graphical user interface 242 (e.g., WS GUI 242). For example, the WS GUI 242 may be a web page generated by the workspace server 136 and provided to a web browser running on the client device 240. WS GUI 242 may be a graphical user interface of a native workspace client application running on client device 240. Similarly, a user of client device 210 may request a workspace based on shared folder 234, and workspace server 136 may send workspace state information to client device 210 so that client device 210 may generate and display workspace graphical user interface 212 on client device 210.
[0068] In some implementations, the WS GUI 212 (or WS GUI 242) can view and interact with the shared folders 234 through the workspace server 136. For example, a user can provide input to the WS GUI 212 that causes the WS GUI 212 to request a preview image (e.g., a representation of the content) of a content item stored in the shared folder 234 from the workspace server 136. The workspace server 136 can deliver the preview image to the WS GUI 212 so that the WS GUI 212 can display the preview image of the content item on a display of the client device 102. In some implementations, the WS GUI 212 can interact with the shared folder 234 by directly accessing the corresponding shared folder 214 residing on the client device 210. For example, because the shared folder 214 is synchronized with the shared folder 234, the user of the WS GUI 212 can view or manipulate the shared folder 214 as if the shared folder 214 were the shared folder 234. For example, instead of requesting preview images of content items in the shared folder 234 from the workspace server 136, the WS GUI 212 may access locally stored copies of the content items in the shared folder 214. Thus, sometimes the WS GUI 212 will access the local shared folder 214 when interacting with the workspace, and sometimes the WS GUI 212 will request content or status information associated with the workspace (e.g., associated with the shared folder 234) from the workspace server 136.
[0069] Figure 3 An example workspace graphical user interface 300 is illustrated. For example, the workspace graphical user interface 300 (eg, WS GUI 300) may correspond to Figure 2 WS GUI 212 and / or WS GUI 242 of the client device 102. WS GUI 300 may be a i WS GUI 300 may be a web page presented in a browser application of the client device 102. i A graphical user interface generated by a native software application running on the computer.
[0070] In some implementations, the WS GUI 300 may include an optional graphical element 202 for creating a new workspace. For example, a user may select the graphical element 302 (e.g., a button, a link, etc.) to cause the WS GUI 300 (e.g., a browser or a native application) to send a message requesting the creation of a new workspace to the workspace server 136. The user may specify (e.g., through a graphical user interface not shown) the name of the new workspace and the email address of the workspace (e.g., a mailing list, a group email address, etc.). The message sent to the workspace server 136 may include the specified name and email address. Upon receiving the message, the workspace server 136 may generate a shared folder (e.g., a shared folder 234) of the workspace and an email account (e.g., a mailing list) of the workspace. The workspace server 136 may send workspace (e.g., shared folder) status information to the WS GUI 300 for presentation to the user. For example, the workspace status information may include, among other things, information about members of the workspace (e.g., member profiles, online status, etc.), content items in the shared folder, and / or messages generated by members of the workspace.
[0071] In some implementations, WS GUI 300 may include a list of workspaces 304 to which a user belongs. For example, a user of WS GUI 300 may be a member of multiple workspaces 304 (e.g., engineering, marketing, social, etc.). A user may select one of the workspaces 304 to view status information about the selected workspace. In the example WS GUI 300, the user has selected the "engineering" workspace. Therefore, WS GUI 300 currently presents status information about the engineering workspace. The workspaces 304 listed on WS GUI 300 may include indicators that notify the user when the state of the workspace has changed. For example, the "marketing" workspace has a point on the left side of the workspace name indicating that something has changed in the workspace. For example, a change may be that a content item associated with the workspace (e.g., in a corresponding workspace shared folder) has been added, modified, or deleted. A change may be that, for example, a new message has been received in the workspace.
[0072] In some implementations, WS GUI 300 can identify members of the displayed workspace. For example, WS GUI 300 may include graphical elements 306, which represent and / or identify members of the workspace and / or users who can access the shared folder associated with the workspace. For example, each graphical element 306 can present an image representing the corresponding member of the workspace. The user of WS GUI 300 can select graphical elements 306 to view information about the corresponding member of the workspace. For example, a graphical user interface can be presented in response to a graphical element 306 displaying a user profile (e.g., name, contact information, online status, etc.) corresponding to the member associated with the selected graphical element 306 being selected. Graphical element 306 may include an online status indicator (e.g., green dot, highlight, etc.) indicating that the member corresponding to graphical element 306 is online. For example, when the member is online, graphical element 306 will display an online status indicator. When the member is offline, graphical element 306 will not display an online status indicator.
[0073] In some implementations, the WS GUI 300 may include a graphical element 308 for adding a member to a workspace. For example, a user may select the graphical element 308 to cause the WS GUI 300 to present a graphical user interface for adding a new member to a workspace and / or a shared folder associated with the workspace. The user may enter the name, email address, phone number, and / or other data (e.g., company, department, project, etc.) of the new member associated with the new member. The WS GUI 300 may send the new member's information to the workspace server 136. The workspace server 136 may add the new member to the workspace and share the shared folder associated with the workspace with the new member. The workspace server 136 may add the new member to the email mailing list of the workspace.
[0074] In some implementations, WS GUI 300 can present content items stored in a shared folder of the displayed workspace. For example, WS GUI 300 can present a graphical element 310, which represents the content items stored in the shared folder 234 corresponding to the "engineering" workspace. As further described below, a user can select a graphical element 310 to view content items and / or messages corresponding to the graphical element 310 selected. In some implementations, the graphical element 310 presented can represent all content items in a shared folder. In some implementations, the graphical element 310 can represent content items selected based on usage statistics associated with the corresponding content items. For example, the graphical element 310 presented can represent the first five most recently accessed content items. The graphical element 310 presented can represent the first ten most frequently accessed content items. The graphical element 310 presented can represent the first six content items accessed by most members of the workspace members.
[0075] In some implementations, the graphical element 310 may include representations of one or more bookmarked content items in a shared folder corresponding to the workspace. For example, some content items may be more important than other content items (e.g., documents that are most frequently accessed, that workspace members must read, etc.). A user may designate a content item as an important content item so that the content item is marked, bookmarked, or fixed at the top of a list of graphical elements 310 presented on the WS GUI 300. The workspace server 136 may automatically designate a content item as an important content item based on various factors. For example, the workspace server 136 may determine which content items are most frequently accessed or accessed by most members of the workspace, and automatically designate these content items as important content items. Important content items may be fixed at the top of a list of graphical elements 310 so that important content items are always easily accessible through the WS GUI 300. The bookmarked content items may be the same for each member of the workspace. For example, when each member starts the WS GUI 300, each workspace member will see the same bookmarked content items. Important content items may be associated with a graphical indicator 314 (eg, a flag, pin, bookmark, etc.).
[0076] In some implementations, the WS GUI 300 may include a graphical element 312 for adding a new content item to the workspace. For example, a user may select the graphical element 312 to add a new folder to the shared folder 234 corresponding to the displayed workspace. A user may select the graphical element 312 to add a new content item (e.g., a file, a media item, etc.) to the workspace. When the graphical element 312 is selected, a graphical user interface may be presented that prompts the user to select an existing content item in the file system of the user's client device 210 to be included in the workspace. The user may select an existing content item on the user's client device 210 so that the content item is stored in a local shared folder 214 corresponding to the workspace. The WS GUI 300 may send a message indicating that the new content item has been added to the shared folder 214 to the workspace server 136 to synchronize the new content item in the shared folder 214 with the corresponding shared folders 234 and 244. Therefore, the WS GUI 242 on the client device 240 may be updated to display the new content item in the workspace.
[0077] When the graphical element 312 is selected, a graphical user interface may be presented that prompts the user to create a new content item in the workspace. The user may select the type of content item and provide a name for the content item. The WS GUI 300 may send the content item type and name to the workspace server 136. As further described below, the workspace server 136 may generate a content item of the specified type and with the specified name and store the new content item in a shared folder 234 associated with the workspace.
[0078] In some implementations, the WS GUI 300 may include a message stream 316. For example, the message stream 316 may include messages generated from various sources such as emails, chats, text messages, annotations to content items, annotations in content items, and workspace status updates. For example, when a user adds a content item to a workspace, as described above, a message indicating that the content item was added may be added to the message stream 316. Each message in the message stream may identify the workspace member that generated the message, indicate when the message was generated, and who has seen the message. For example, a workspace message may indicate how many workspace members have seen the message. A workspace message may identify which members have seen the message.
[0079] In some implementations, a user of the WS GUI 300 can generate a new message by entering (e.g., typing into, posting into, dictating into, etc.) a message into the graphical element 318. When input is provided indicating that the user has finished composing the message (e.g., selecting a back button, selecting a send button, etc.), the message can be added to the message stream 316. In some implementations, new messages are added to the bottom of the message stream 316 so that the messages become older as the user reads toward the top of the message stream 316. For example, the message stream 316 can behave like a typical chat user interface, where new messages are posted at the bottom and older messages scroll up as new messages are added.
[0080] In some implementations, the user of WS GUI 300 can add content items to message stream 316 by selecting graphic element 320. For example, the user can use graphic element 318 to compose a message, and add content items to the message by selecting graphic element 320. When graphic element 320 is selected, a file browser interface can be presented, which allows the user to select content items from the local file system of the client device, from a shared folder associated with the workspace, and / or from a network source (e.g., the Internet). When the composed message is displayed in message stream 316, a link to the selected content item and a representation 317 of the selected content item can be displayed in the message. For example, representation 317 can be a preview image of the linked content item. The preview image can be live. For example, when the content of the link changes or is updated, the preview image can be updated. If the content of the link is a content item in a shared folder, the preview image can be updated to reflect the changes in the content item. If the content of the link is a web page or other web content, the preview image can be updated to reflect the current state of the web page or web content. If the content item is not already in a shared folder associated with the workspace, the selected content item may be copied to a local shared folder (e.g., shared folder 214 on client device 210), and WS GUI 300 may trigger (e.g., almost immediately) synchronization of the newly added content item with shared folders 234 and 244 as described above, so that each member of the workspace can access the content item referenced in the new message displayed in message stream 316. If the link is associated with web content (e.g., an Internet web page), the link may be stored in a "Links" folder of the workspace shared folder.
[0081] In some implementations, message stream 316 may include a single message. For example, message 324 is a single message from member "Bob". Message 324 may indicate the member that generated the message, the time when the message was generated, how many other members have viewed the message, and the content of the message (e.g., "Wise things about engineering").
[0082] In some implementations, the message stream 316 may include a message thread 326. For example, a message thread is a group of related messages within a message stream. A message thread is typically created when a member replies to a message generated by another user. For example, in message thread 326, Fred posts a message including a content item "media.mp4" in the message stream 316. Bob replies to Fred's message, thereby creating message thread 326. For example, like Bob, member Dave replies to Fred's message by selecting a "reply" graphic element 330 associated with Fred's message and entering the reply message into a graphic element 332 in the message thread 326 to add the message to the message thread 326. A message thread can be identified in the message stream 316 by, for example, a row 328 connecting the messages in the message thread.
[0083] In some implementations, the message stream 316 can combine chat and threaded message behaviors in the same graphical user interface. For example, when a member generates a single message (e.g., using graphical element 318), the message stream 316 can behave like a typical chat user interface, in which new messages are presented at the bottom of the message stream 316 and older messages are scrolled up. However, when a user interacts with an existing message or an existing message thread (e.g., message thread 326) (e.g., hovering a cursor or pointer over an existing message or an existing message thread, composing a reply to an existing message or an existing message thread, providing some active or passive input to an existing message or an existing message thread, etc.), the message stream 316 will stop scrolling up when the user is interacting with the existing message or message thread. Therefore, when the user is composing a reply to a message or a message thread, the messages in the message stream 316 will remain (e.g., frozen) motionless. Once the user no longer interacts with the message or message thread, the message stream 316 can restart scrolling messages when new messages are generated in a chat-like manner.
[0084] In some implementations, a user can like a message displayed in the message stream 316. For example, a user can select a "like" graphical element 334 to express approval of a message generated by another member of the workspace presented on the WS GUI 300. The member who has liked the message can be indicated using a graphical element 336.
[0085] In some implementations, the WS GUI 300 may include a search graphical element 338. For example, a user may enter a search term into the graphical element 338 to cause the WS GUI 300 to perform a search based on the entered search term. The search may be a workspace search that searches for content items and messages that match the search term within the current workspace. The search may include content items, messages, emails, and other data on the user's local device. The search may be a global search that searches for content that matches the search term entered by the user in the workspace, the user's local device, the content management system 136, and network resources (e.g., the Internet). The search results may be displayed on a graphical user interface (not shown), and the user may select items in the search results to preview the items or add the items to the current workspace.
[0086] Figure 44 is a block diagram of an example system 400 for creating a new content item in a workspace. For example, a new content item may be generated in response to a user selecting a graphical element 312 on a WS GUI 300 (e.g., WS GUI 242). In some implementations, a user of the WS GUI 242 may provide an input to the GUI 242 to generate a new content item. For example, among other things, the content item may be a productivity item, such as a word processor document, a spreadsheet, or a presentation document. In response to receiving the input, the WS GUI 242 may display a prompt requiring the user to select the type of content item to be generated and to provide a name for the new content item. Once the user selects the content item type and specifies a name for the content item, the WS GUI 242 may send the content item type and the specified name to the workspace server 136. When the content item type and the specified name are received, the workspace server 136 may select a content template 402 corresponding to the content item type (e.g., if the content item type is a word processing document, a word processing template may be selected). The workspace server 136 may copy the selected content template 402 and rename the content template according to the specified name to generate a new content item 404. The workspace server 136 may store the new content item 404 in the shared folder 234. Once the new content item 404 is stored in the shared folder 234, the workspace server 136 may trigger synchronization of the shared folder 234 with the shared folder 244 on the client device 240 so that the new content item 404 may be immediately (e.g., almost immediately) synchronized with the corresponding shared folder 244 on the client device 240. The synchronization will cause the new content item 404 to be sent to the client device 240 (as well as the client devices of other workspace members) and stored in the shared folder 244. Once the new content item 404 is stored in the shared folder 234 and / or the shared folder 244, the workspace server 136 may notify the WS GUI 242 that the new content item 404 is available for viewing and / or editing.
[0087] In some implementations, the user can view the new content item 404 through a web browser. For example, once the WS GUI 242 is notified that the new content item 404 is available in the shared folder 234 on the server device 230, the WS GUI 242 can present the new content item 404 in a browser interface.
[0088] In some implementations, the user can view the new content item 404 in a native application on the client device 240. For example, once the WS GUI 242 is notified that the new content item 404 is available in the shared folder 244 on the server device 240, the WS GUI 242 can prompt the user for input that specifies how the new content item 404 should be displayed (e.g., in a browser or in a native application 406). In some implementations, the user can specify a native application 406 for displaying the new content item 404. For example, if the new content item 404 is a word processing document, the native application 406 can be a word processing application installed on the client device 240 and suitable for presenting and editing word processing documents on the client device 240. Thus, the user can view and edit the new content item 404 using a native application that is executed locally on the client device 240. Similarly, when the user selects a content item represented by a graphical element 310 on the WS GUI 300, the user can be given the option of opening the selected content item in a web browser or in a native application.
[0089] Figure 5 is a flow diagram of an example client process 500 for generating a new content item in a workspace. At step 520, client device 240 may display workspace graphical user interface 300. For example, WS GUI 300 (ie, WS GUI 242) may present graphical element 312 for generating a new content item in a workspace.
[0090] At step 504, client device 240 may receive user input to generate a new content item. For example, WS GUI 300 may receive user input to select graphical element 312. In response to the user selecting graphical element 321, WS GUI 300 may present a prompt requesting the user to select a content item type and specify a name for the new content item. WS GUI 300 may receive user input specifying the content item type and the name of the new content item.
[0091] At step 506, the client device 240 may send a new content item request to the workspace server 136. For example, the client device 240 may send the content item type and name specified by the user to the workspace server 136.
[0092] At step 508, client device 240 may receive the new content item in a local shared folder 244 on client device 240. For example, content management system 106 may synchronize shared folder 244 on client device 240 with shared folder 234 on server device 230 to deliver the new content item from server device 230 to client device 240, as described above.
[0093] At step 510, the client device 240 may receive a notification indicating that a new content item is available for viewing in the workspace. For example, the WS GUI 300 may receive a notification from the workspace server 136 that a new content item is available in the workspace shared folder 234. The WS GUI 300 may receive a notification from the workspace server 136 that the new content item has been synchronized with the shared folder 244 on the client device 240. Alternatively, the WS GUI 300 may detect the presence of the new content item in the local shared folder 244. For example, the WS GUI 300 may monitor the shared folder 244 for changes, such as the addition of a new content item.
[0094] In step 512, the client device 240 may receive user input for selecting a preview image of a new content item or a native application presentation. For example, once the WS GUI 300 receives a notification that a new content item is available in the workspace, the WS GUI 300 may present a prompt asking the user how he wants to view the new content item. The prompt may present an option to view a preview image of the new content item or to open and view the new content item in a native application on the client device 240.
[0095] At step 514, the client device 240 may present the new content item according to the user's selection. For example, if the user selects to view a preview image, the workspace server 136 may deliver a preview image of the new content item stored in the shared folder 234 to the WS GUI 300 for presentation to the user on the client device 240. If the user selects to view the content item in a native application, the WS GUI 300 may invoke a native application appropriate for the type of the new content item on the client device 240. For example, if the new content item type is a spreadsheet, the WS GUI 300 may invoke a spreadsheet application on the client device 240 for displaying the new content item stored in the shared folder 244 on the client device 240. For example, the WS GUI 300 may present a preview image and a native application viewing option to the user any time the user selects to open or view a content item within a workspace.
[0096] Figure 6 6 is a flow diagram of an example server process 600 for generating a new content item in a workspace. At step 602, the server device 230 may receive a request for a new content item. For example, the workspace server 136 may receive a request to create a new content item from the WS GUI 300. The request may identify the type of content item to be generated and the name of the new content item.
[0097] At step 604, server device 230 may generate a copy of an existing content item template. For example, server device 230 may store a template for each type of content item that workspace server 136 may generate. Workspace server 136 may determine which template to generate a new content item from based on the content item type in the request received at step 602. Workspace server 136 may select a content item template based on the requested content item type and copy the content item template to generate the new content item.
[0098] At step 606, server device 230 may rename the copy of the content item template according to the name specified in the request received at step 602. For example, workspace server 136 may assign the content item name specified in the request received at step 602 to the new content item.
[0099] At step 608, the server device 230 may store a copy of the template in a shared folder 234 on the server device 230. For example, the workspace server 136 may store the new content item in the shared folder 234.
[0100] At step 610, the server device 230 may trigger synchronization of the shared folder 234 on the server device 230 and the shared folder 244 on the client device 240. For example, when a new content item is stored in the shared folder 234, the workspace server 136 may instruct the content management system 106 to synchronize the shared folder 244 with the shared folder 234 so that the client devices associated with the workspace may be updated with the new content item. By triggering synchronization when a new content item is created and stored, the client device (e.g., user) may have near immediate access to the newly generated content item.
[0101] At step 612, the server device 230 may notify the client device 240 that a new content item is available. For example, the workspace server 136 may notify the WS GUI 300 that a new content item is available in a shared folder 234 on the server 230. When synchronizing the shared folder 244 on the client device 240 with the shared folder 234 on the server device 230, the workspace server 136 may notify the WS GUI 300 that the new content item is available locally on the client device 240. Accordingly, the client device 240 may open and display the new content item to the user in a native application associated with the new content item type.
[0102] Figure 7The block diagram of the system 700 for integrating email into the integrated workspace supporting shared folders is illustrated. For example, the system 700 allows the user to integrate the existing email system into the integrated workspace supporting shared folders and present the email as a workspace message in the message flow of the WS GUI 300.
[0103] In some implementations, the workspace server 136 may convert the email message into a workspace message. For example, a user (e.g., a workspace member) may grant the workspace server 136 access to the user's email account 712 on the email server 710, for example, via the WS GUI 300. The user may provide an account identifier (e.g., email address) and credentials (e.g., user name, password) to the workspace server 136. The workspace server 136 may use the account identifier and credentials to access the user's email account.
[0104] In some implementations, the workspace server 136 may analyze the emails in the user's email account 712 to determine which emails are workspace related. For example, as described above, a workspace may be associated with an email mailing list (e.g., an email address that can be used to send emails to / receive emails from group members). The workspace server 136 may determine which emails in the user's email account 712 are associated with a mailing list (e.g., an email address that is addressed to or is addressed from an email address of a mailing list). The workspace server 136 may convert the emails associated with the mailing list into workspace messages and add the workspace messages to the workspace (e.g., a shared folder 234) so that the messages are displayed on the WS GUI 300. For example, the workspace server 136 may extract the content of the email and insert the content of the email into a workspace message object for display on the WS GUI 300.
[0105] In some implementations, the workspace server 136 may store the email attachments in the shared folder 234. For example, the user email account 712 may receive an email including an attachment (e.g., a content item, a media file, etc.) from a workspace mailing list. The email server 710 may send the email with the attachment 702 to the email client 720 for presentation to the user of the client device 210. The workspace server 136 may obtain the email with the attachment 702 from the user email account 712. For example, because the email 702 is associated with the workspace mailing list (e.g., the email 702 was received from the mailing list), the workspace server 136 may obtain the email 702 from the user email account 712.
[0106] Once the workspace server 136 obtains the email 702, the workspace server 136 stores the email attachment 704 in the shared folder 234 and generates a workspace message 706, which includes the content of the email 702 and a link to the email attachment 704 in the shared folder 234. The workspace server 136 can then trigger synchronization of the shared folders 234 and 214 so that the shared folder 214 can obtain a copy of the email attachment 704. The workspace server 136 can send the workspace message 706 to the WS GUI 212 so that the message and the link to the attachment 704 can be displayed in the message stream 316. For example, the workspace message 706 displayed in the workspace stream 316 can include the content of the email 702, the link to the attachment 704 stored in the shared folder 234, and an embedded preview image of the attachment. In some implementations, the content (e.g., body, text message portion) of the email 702 can be tracked as an annotation to the attachment 704 or associated with the attachment 704 (e.g., content item). When attachment 704 is later opened and viewed by a user, as described further below, the annotation (e.g., email message) may be presented to the user.
[0107] In some implementations, the workspace server 136 can convert the workspace message into an email message. For example, as described above, the user can use the graphical element 318 of the WS GUI 300 to generate a new workspace message, and use the graphical element 320 to add a content item to the message. The workspace message may include, for example, a link to the content item. The new workspace message 708 may be sent from the WS GUI 300 (i.e., the WS GUI 212) to the workspace server 136. The workspace server 136 may generate a new email including the content of the workspace message (which includes a link to the content item in the shared folder 214), and send the new email to the email mailing list associated with the workspace. Because the user is associated with the mailing list, the new email with the link to the content item will be delivered to the user email account 712, and ultimately delivered to the email client 720.
[0108] For example, by sending a link in an email, rather than attaching the content item to the email, the amount of storage required to store the email can be reduced. In addition, when using a link to the content item in a shared folder, rather than attaching a large file, the user no longer needs to worry about attachment size limitations. Furthermore, the user can use the link in the email to obtain the latest version of the content item, rather than only being able to access a static, out-of-date version of the content item.
[0109] In some implementations, links allow the workspace owner / administrator / user to have more control over access to the content item. For example, a user can disable a link when the user no longer wants others to have access to the content item. A user can specify an expiration date for the link. A user can restrict access to the link to specified users or specified client devices.
[0110] In some implementations, a user can specify options regarding when emails are generated from workspace messages. For example, a user (e.g., a workspace member) can specify that the user should only receive emails regarding initial workspace messages (e.g., a single message or the first few messages in a message thread). A user can specify that the user should only receive emails regarding messages in which the user is mentioned (e.g., @mentioned, @Bob, @Steve, etc.). A user can specify that the user should only receive emails regarding messages when another workspace member "likes" a workspace message authored by the user. Thus, a user can avoid being inundated with workspace emails generated for every new workspace message in the workspace.
[0111] Figure 88 is a flow diagram of an example server process 800 for converting an email into a workspace message. At step 802, the server device 230 may receive authorization to access a user's email account. For example, a user (e.g., a workspace member) may provide input to the WS GUI 300 authorizing the workspace server 136 to access an email account associated with the user. The user may provide input to the WS GUI 300 identifying an email account (e.g., an email address) and credentials (e.g., a user name and password) for the email account. The WS GUI 300 may send the email account identifier and the credentials to the workspace server 136.
[0112] At step 804, server device 230 may obtain emails associated with the workspace from the user's email account. For example, the workspace may have an email address. The email address may be a mailing list address for sending emails and receiving emails from members of the workspace. The workspace server 136 may access the user's email account using the email account identifier and credentials supplied by the user. The workspace server 136 may analyze the emails in the user's email account to determine which emails are associated with the workspace email address. The workspace server 136 may obtain a copy of each email associated with the workspace email address.
[0113] At step 806, server device 230 may store the email attachment in a workspace shared folder. For example, workspace server 136 may determine which emails obtained from the user's email account have attachments. If the email does not have an attachment, the method may proceed to step 808. If the email has an attachment, the attachment may be stored in a shared folder associated with the workspace.
[0114] At step 808, the server device 230 may generate a workspace message including a link to the attachment stored in the shared folder of the workspace. For example, the workspace server 136 may extract the body of the email (e.g., text content) from the email and generate a new workspace message based on the content of the email. If the email has an attachment, a link to the attachment stored in the shared folder of the workspace may be generated and inserted into the new workspace message.
[0115] At step 810, the server device 230 may trigger synchronization of the server shared folder with the corresponding shared folder on the client device. For example, the workspace server 136 may send a command to synchronize the contents in the shared folders 234, 244, and 214 of the workspace to the content management system 106. Thus, each shared folder 234, 244, and 214 in the workspace may be updated to include the email attachments stored in the workspace shared folders.
[0116] At step 812, server device 230 may send the new workspace message to client devices 210 and 240. For example, workspace server 136 may send the new workspace message (e.g., along with a link to the stored attachment) to WS GUI 300 on each client device. WS GUI 300 may display the workspace message and / or the link to the stored attachment, for example, in message stream 316. As described above, the workspace message may include an instant preview image of the linked content.
[0117] Fig. 9 is a flow diagram of an example client process 900 for converting a workspace message to an email message. At step 902, the client device 210 may present the WS GUI 300 (ie, WS GUI 212) to the user.
[0118] At step 904, the client device 210 may receive user input that generates a new workspace message with a link to the content. Figure 3 As described, the WS GUI 300 may receive user input to generate a new workspace message and link a content item to the workspace message.
[0119] In step 906, the client device 210 may copy the linked content or link to a shared folder of the client device 210. For example, the WS GUI 300 may copy the linked content or link to a workspace shared folder on the client device 210.
[0120] At step 908, the client device 210 may trigger synchronization of the shared folder 214 of the client device 210 with the shared folder 234 of the server device 230. For example, the WS GUI 300 may send a message to the workspace server 136 to trigger synchronization of the shared folder 214 and the shared folder 234. Upon receiving the synchronization request, the workspace server 136 may send a command to the content management system 106 to synchronize the shared folders. By triggering synchronization of the shared folders, the WS GUI 300 may ensure that the linked content items will be available to the recipients of the email generated at step 912 below.
[0121] At step 910 , the client device 210 may send a workspace message to the workspace server 136 . For example, the WS GUI 300 may send the workspace message to the workspace server 136 .
[0122] At step 912 , the client device 210 may present the workspace messages and links on the WS GUI 300 as described above.
[0123] Fig.10 1 is a flow diagram of an example server process 1000 for converting a workspace message into an email. At step 1002, the server device 230 may receive a workspace message including a link to content from the client device 210. For example, as described above, the WS GUI 300 may generate the workspace message in response to user input. The WS GUI 300 may send the workspace message to the workspace server 136. The link may be a link to a content item in a shared folder associated with a workspace in the content management system 106. The link may be a link to external content, such as an Internet web page.
[0124] At step 1004, server device 230 may trigger synchronization of shared folder 234 of server device 230 and shared folder 210 of client device 210. For example, if the workspace message includes a link to a content item in shared folder 214, the workspace server may determine whether the linked content item exists in shared folder 234. If the linked content item does not exist in shared folder 234 on server device 230, workspace server 136 may trigger synchronization of shared folder 234 and shared folder 214 so that shared folder 234 will include the linked content item that has been stored in shared folder 214 of client device 210. In some implementations, either step 908 of process 900 or step 1004 of process 1000 will be performed. Both steps 908 and 1004 provide for synchronizing shared folders when a workspace message of linked content is to be converted into an email. However, only one of steps 908 or 1004 is necessary to ensure that the linked content is available in the shared folder 234 on the server device 230 (and other shared folders on other client devices).
[0125] At step 1006, the server device 230 may generate an email including the workspace message content and the link. For example, the workspace server 136 may generate an email including the content of the workspace message and a link to the linked content.
[0126] At step 1008, the server device 230 may send the generated email to the workspace mailing list. For example, the workspace server 136 may send the email generated based on the workspace message to the workspace mailing list so that members of the workspace can receive the workspace message as an email. As described above, the email may be delivered to members of the workspace mailing list according to the preferences of each member.
[0127] In some implementations, the workspace server 136 may send a workspace message to an external user who is not a member of the workspace. For example, a workspace member may generate a workspace message as described above and mention an external user. For example, an external user may be mentioned in a workspace message (e.g., @Sue). If the mentioned external user is not one of the members of the workspace, the workspace server 136 may access the email account of the member of the workspace to obtain contact information (e.g., email address, phone number, etc.) about the mentioned external user. If the workspace server 136 cannot find out the contact information about the mentioned external user, the workspace server 136 may send a message to the WS GUI 300 that prompts the workspace member for the contact information of the external user mentioned in the workspace message. The workspace member may enter the contact information (e.g., email address, phone number, etc.) into the WS GUI 300. The WS GUI 300 may send the contact information to the workspace server 136. The workspace server 136 may use the contact information provided by the workspace member to send the workspace message in which the external user is mentioned to the external user. For example, the workspace server may send an email or text message (e.g., SMS) to the external user that includes the content of a workspace message in which the external user is mentioned. If the workspace message includes a link to the content, the external user may access the content (e.g., through a web browser) even if the external user is not a member of the workspace.
[0128] In some implementations, an external user can add a workspace message to the message stream 316. For example, an external user can reply to an email or text message generated by the workspace server 136. The workspace server 136 can convert the email or text message reply to a workspace message and publish the workspace message in the message stream 316.
[0129] Fig.11An example workspace graphical user interface (WSGUI) 1100 for generating a discussion about a content item is illustrated. For example, the WS GUI 1100 may present a graphical element 1102 representing a content item stored in a shared folder of a displayed workspace. In some implementations, a user may select the graphical element 1102 to cause a graphical element 1104 (e.g., an options menu) to appear on the WS GUI 1100. The graphical element 1104 may present options for the content item corresponding to the selected graphical element 1102. For example, the graphical element 1104 may present a discussion option 1106 that allows a user to initiate a discussion of the content item corresponding to the graphical element 1102.
[0130] In some implementations, a new message thread may be generated to discuss the selected content item. For example, in response to the user selecting the discussion option 1106, a message thread 1108 may be created in the message stream displayed on the WS GUI 1100. Fig.11 As can be seen in , workspace member Dave starts a discussion thread for "content item". A preview image 1110 corresponding to the content item is displayed in message thread 1108 adjacent to Dave's initial message. Subsequently, Bob and Dave add workspace messages to message thread 1108 discussing the content item. While the above example discussion occurs inline with other messages in the message stream, a separate user interface may be presented to discuss the content item. For example, the following Fig.12 The user interface 1200 is used to facilitate discussion of a selected content item.
[0131] In some implementations, graphical element 1104 may include an option to open a content item corresponding to graphical element 1102. For example, as described above, the option to open a content item may include selectable option 1114 for opening a preview image of the content item. As described above, the option to open a content item may include selectable option 1112 for opening the content item in a native application running on a user's client device. When a user selection of option 1112 or option 1114 is received, as described above, WS GUI 300 will cause the corresponding content item to be displayed in the native application or the preview image.
[0132] Fig.12An example workspace graphical user interface (WS GUI) 1200 for viewing annotations related to content items in a workspace is illustrated. For example, when a user selects a discussion option 1106 or an open preview option 1114 of the WS GUI 1100, the WS GUI 1200 can be invoked. In some implementations, the WS GUI 1200 can include a graphical element 1202 (e.g., a window) for viewing a preview image 1204 of a selected content item and annotations 1206 associated with the selected content item. In some implementations, the user can edit the preview image 1204. In some implementations, the preview image 1204 is a read-only image.
[0133] In some implementations, the annotations 1206 may present annotations associated with the selected content item collected from various sources. For example, the workspace server 136 may collect annotations related to the selected content item from all available sources, and send the collected annotations to the WS GUI 1200 for display in the annotation area 1206. For example, the annotations 1206 may include annotations made on the selected content item in the message stream 316. The annotations 1206 may include annotations made on the selected content item in the workspace member email. The annotations 1206 may include annotations obtained from within the selected content item. For example, some word processing applications allow users to generate annotations and track changes within the document. These internal annotations and modifications can be extracted from the document and presented in the annotations 1206. In some implementations, the annotations 1206 may include change information, such as change information identifying when the content item was created, modified, etc. The annotations 1206 may identify what changes were made to the selected content item.
[0134] In some implementations, graphical element 1202 may include graphical element 1208 for facilitating a conversation about a currently displayed content item. For example, a user may enter a comment into graphical element 1208 and submit the comment so that the comment appears in comment area 1206. Each user may use graphical element 1208 and comment area 1206 to annotate and discuss the currently displayed content item.
[0135] In some implementations, the comments collected by the workspace server 136 can be added to the corresponding content item. For example, if the content item is a word processing document that supports internal comments, the comments collected from various sources supported by the workspace server 136 can be added to the word processing document as internal comments.
[0136] Fig.131300 is a flow chart of an example process 1300 for generating and displaying annotations for content items. At step 1302, the workspace server 136 may receive a message associated with a content item. For example, when a content item is attached to a message (e.g., an email attachment), the workspace server 136 may determine that the message is associated (or related) with the content item. When a content item is linked to a message (e.g., a link to a content item in an email, a link to a content item in a workspace message, a link to a content item in a chat message, etc.), the workspace server 136 may determine that the message is associated with the content item. When the message is a reply to a previous message that has a content item as an attachment or has a link to the content item, the workspace server 136 may determine that the message is associated with the content item. When the message is in a message thread (e.g., a series of related messages, a series of replies to an original message, etc.) that contains a previous message that has a content item as an attachment or has a link to the content item, the workspace server 136 may determine that the message is associated with the content item.
[0137] At step 1304, the workspace server 136 may store the message as an annotation to the content item. For example, when the workspace server 136 determines that the message is associated with the content item, the workspace server 136 may store the message in the annotation metadata corresponding to the content item. Thus, messages from various sources (e.g., emails, chats, workspace messages, instant messages, text messages, etc.) may be aggregated into annotation metadata about the content item. For example, the annotation metadata may be stored within the content item. The annotation metadata may be stored separately from the content item (e.g., in a separate file). Regardless of the source, all annotations obtained for the content item (e.g., emails, chat messages, workspace messages, text messages, instant messages, annotations from within the content item, etc.) may be stored in the annotation metadata about the content item.
[0138] At step 1306, the workspace server 136 may receive a selection of a content item. i A user of the workspace graphical user interface can view representations of content items (e.g., icons, graphics, text, etc. representing content items) on the workspace graphical user interface. For example, the workspace graphical user interface can be a web interface displayed in a browser application. The workspace graphical user interface can be a user interface of a native application specific to the workspace. The user can select a content item by selecting a representation of a content item displayed on the workspace graphical user interface. The workspace graphical user interface can send the content item selection to the workspace server 136.
[0139] At step 1308, the workspace server 136 may cause the client device 102 to iPresent the selected content item and the annotation for the content item. For example, the workspace server 136 may send a web page showing the content item (or a preview image of the content item) and the annotation for the content item to the client device 102. i The workspace server 136 can send content items and content item annotations to the client device 102. i For example, as described above, the workspace server 136 can synchronize content items and content item annotation metadata with client devices. Content items and annotations can be displayed in separate user interfaces (e.g., WS GUI 1200). Content items and annotations can be displayed in content item-specific message threads (e.g., Fig.11 's message thread 1108).
[0140] Fig.14 1400 is a flow chart of an example process 1400 for creating a conversation around a content item. At step 1402, a client device may present a workspace GUI including a content item and a message stream. For example, the client device 102 i Can present Fig.11 WS GUI 1100.
[0141] At step 1404, the client device may receive a selection of a content item displayed on the workspace GUI. i The user can provide the WS GUI 1100 with a selection Fig.11 Input of content item 1102.
[0142] At step 1406 , the client device may present content item discussion options. For example, the WS GUI 1100 may present an options menu 1104 including a discussion option 1106 in response to the user input received at step 1404 .
[0143] At step 1408, the client device may receive a selection of a discussion option. i The user can send a i Input is provided regarding discussion options 1106 to select discussion options.
[0144] At step 1410, the client device may generate a new message including the selected content item in the message stream. For example, in response to receiving the selection of the discussion option 1106, the client device 102 i A new message may be generated regarding the message stream including the selected content item. Client device 102 iThe new message can be sent to the workspace server 136, and the new message and the selected content item are presented in the message stream. Once the new message is presented to other workspace members, the workspace members can reply to the message to continue the discussion of the selected content item and generate a new message. Fig.11 Message thread 1108.
[0145] Fig.15 is a flow chart of an example process 1500 for sending a workspace message to an external user. In step 1502, a server device may generate a message stream for a workspace member. For example, server device 230 may generate Figure 3 Message stream 316. As described above, message stream 316 may be a (eg, time-ordered) collection of workspace messages (eg, real-time or near real-time chat messages) generated by members of the workspace.
[0146] At step 1504, the server device may receive a message on the message stream. For example, the server device 230 may receive a new workspace message generated by a member of the workspace.
[0147] In step 1506, the server device can determine that the message mentions an external user. For example, an external user is any user who is not a member of the workspace (for example, not an authorized user of the workspace shared folder). The server device can determine that the external user is mentioned in the message by analyzing the text in the message for a prefix that identifies the mentioned user. For example, the prefix can be a single character or symbol (for example, @). The prefix can be multiple characters or symbols (for example, "at:", "for:", etc.). Once the server device finds the prefix, the server device can compare the string following the prefix with the identifier of the workspace member. If the string does not match any workspace member, the server device can determine that the mentioned user is an external user.
[0148] At step 1508, the server device may obtain contact information about the external user. For example, the server device may request contact information from a client device of a workspace member that generates a workspace message that includes a mention of the external user. The client device may prompt the workspace member for contact information (e.g., a phone number, an email address, etc.) of the external user. The client device may search a contact database stored on the client device to obtain contact information about the external user. In some implementations, the server device may store the contact database in the workspace member's account and search the contact database to determine contact information about the external user.
[0149] In step 1510, the server device may send a message mentioning the external user to the external user according to a communication mechanism corresponding to the contact information obtained about the external user. For example, if the contact information about the external user is a phone number, the server device may use text communication (e.g., short message service communication) to send the workspace message (e.g., a text portion of the message) to the external user. If the contact information about the external user is an email address, the server device may use an email to send the workspace message to the external user.
[0150] In some implementations, the external user can respond to the workspace message using the same communication mechanism that the external user used to receive the workspace message. For example, if the external user received an email message, the external user can reply using an email. If the external user received a text message, the external user can reply using a text message. When the server device receives the email or text message reply, the server device can generate a new workspace message containing the reply and publish the new workspace message to the message stream as a reply to the message in which the external user was mentioned.
[0151] Fig.16 16 is a flow chart of an example process 1600 for presenting a chat and threaded conversation in the same graphical user interface. At step 1602, the client device can generate a workspace graphical user interface including a message stream. For example, the client device can generate WS GUI 300 including message stream 316.
[0152] At step 1604, the client device may receive a new message about the message stream. For example, a workspace member may generate a message as described above with reference to Figure 3 At this point, the new message may be received by the client device, but has not yet been displayed or inserted into the message stream.
[0153] At step 1606, the client device may determine whether the user is interacting with an existing message in the message stream. i The position of the input cursor or pointer on the WS GUI 300 may be determined. When the cursor is located on one of the messages displayed on the WS GUI 300, the client device 102 i It can be determined that the user is interacting with an existing message. When the user is providing text input in response to the existing message (e.g., providing input to the text input element 332), the client device 102 iIt can be determined that the user is interacting with an existing message. When the user is providing any other input (e.g., clicking, touching, swiping, etc.) about an existing message in the message stream 316 (e.g., selecting the like element 334, selecting the reply element 330), the client device 102 i It can be determined that the user is interacting with an existing message in the message stream 316. When the user does not provide input to one of the messages displayed in the message stream 316, the client device 102 i It may be determined that the user has not interacted with the existing messages in the message stream 316 .
[0154] At step 1608, when the user does not interact with an existing message in the message stream, the client device may scroll the message stream. i When it is determined that the user has not interacted with the existing message, as described above, the client device 102 i The message stream can be scrolled to make room for new messages on the WS GUI 300 and insert new messages into the message stream. For example, if the client device 102 i Scrolling the message stream in an upward direction, a new message may be inserted at the bottom of the message stream. i Scrolling the message stream in a downward direction, the new message may be inserted at the top of the message stream. The scrolling behavior may be the default behavior for adding a new message to the message stream when a new message is received.
[0155] At step 1610, when the user is interacting with an existing message in the message stream, the client device may freeze the message stream. i The message stream can be frozen by stopping the scrolling behavior in response to receiving a new message. When the user is interacting with existing messages, the client device 102 i The message stream will not scroll to make room for new messages.
[0156] At step 1612, the client device may insert a new message into the message stream. For example, once the user stops interacting with the existing message, the client device 102 i The scrolling behavior can be restarted, new messages can be inserted into the message stream, and the new messages can be displayed on the WS GUI 300.
[0157] Fig.17A and Fig. 17B Possible example system embodiments are shown. When implementing the present technology, more suitable embodiments will be obvious to those of ordinary skill in the art. Those of ordinary skill in the art will also easily realize that other system embodiments are possible.
[0158] Fig.17A A conventional system bus computing system architecture 1700 is illustrated, wherein the components of the system are in electrical communication with each other component using a bus 1705. The example system 1700 includes a processing unit (CPU or processor) 1710 and a system bus 1705, which couples various system components (including system memory 1715, such as read-only memory (ROM) 1720 and random access memory (RAM) 1725) to the processor 1710. The system 1700 may include a cache of high-speed memory directly connected to, adjacent to, or integrated as part of the processor 1710. The system 1700 may copy data from the memory 1715 and / or storage device 1730 to the cache 1712 for quick access by the processor 1710. In this way, the cache may provide a performance improvement that avoids delays in the processor 1710 when waiting for data. These modules and other modules may control or be configured to control the processor 1710 to perform various actions. Other system memory 1715 may also be available for use. Memory 1715 may include multiple different types of memory with different performance characteristics. Processor 1710 may include any general purpose processor and hardware modules or software modules configured to control processor 1710 (such as module 1 1732, module 2 1734, and module 3 1736 stored in storage device 1730) and a dedicated processor in which software instructions are incorporated into the actual processor design. Processor 1710 may essentially be a completely self-contained computing system that includes multiple cores or processors, buses, memory controllers, caches, etc. Multi-core processors may be symmetric or asymmetric.
[0159] To enable a user to interact with the computing device 1700, the input device 1745 may represent any number of input mechanisms, such as a microphone for voice, a touch-sensitive screen for gesture or graphic input, a keyboard, a mouse, motion input, voice, etc. The output device 1735 may also be one or more of several output mechanisms known to those skilled in the art. In some cases, a multimodal system may enable a user to provide multiple types of input for communicating with the computing device 1700. The communication interface 1740 may generally govern and manage user input and system output. There is no restriction on operating on any particular hardware arrangement, so the basic features herein may be easily replaced for improved hardware or firmware arrangements as they are developed.
[0160] The storage device 1730 is a non-volatile memory and can be a hard disk or other type of computer-readable medium that can store data accessible by a computer, such as a magnetic cassette, a flash memory card, a solid-state memory device, a digital versatile disk, a magnetic film cartridge, a random access memory (RAM) 1725, a read-only memory (ROM) 1720, and mixtures thereof.
[0161] The storage device 1730 may include software modules 1732, 1734, and 1736 for controlling the processor 1710. Other hardware or software modules are contemplated. The storage device 1730 may be connected to the system bus 1705. In one aspect, a hardware module that performs a particular function may include a software component that performs the function that is stored in a computer-readable medium and connected to the necessary hardware components (such as the processor 1710, the bus 1705, the display 1735, etc.).
[0162] Fig. 17B The computer system 1750 is illustrated with a chipset architecture that can be used to perform the described methods and generate and display a graphical user interface (GUI). The computer system 1750 is an example of computer hardware, software, and firmware that can be used to implement the disclosed technology. The system 1750 may include a processor 1755, which represents any number of physically and / or logically different resources that can execute software, firmware, and hardware configured to perform the identified calculations. The processor 1755 can communicate with a chipset 1760, which can control the input and output of the processor 1755. In this example, the chipset 1760 outputs information to an output 1765, such as a display, and can read and write information to a storage device 1770, which can include, for example, magnetic media and solid-state media. The chipset 1760 can also read and write data to a RAM 1775. A bridge 1780 for interfacing with various user interface components 1785 can be provided to interface with the chipset 1760. Such user interface components 1785 may include a keyboard, a microphone, touch detection and processing circuits, a pointing device (such as a mouse), etc. In general, input to the system 1750 may come from a variety of sources, both machine-generated and / or human-generated.
[0163] Chipset 1760 may also interface with one or more communication interfaces 1790 which may have different physical interfaces. Such communication interfaces may include interfaces for wired and wireless local area networks, broadband wireless networks, and personal area networks. Some applications of the methods for generating, displaying, and using GUIs disclosed herein may include receiving an ordered data set on a physical interface or generated by the machine itself analyzing data stored in memory 1770 or 1775 through processor 1755. In addition, the machine may receive input from a user through user interface component 1785 and perform appropriate functions, such as browsing functions, by interpreting these inputs using processor 1755.
[0164] It will be appreciated that example systems 1700 and 1750 may have more than one processor 1710, or may be part of a group or cluster of computing devices networked together to provide greater processing capability.
[0165] For clarity of explanation, in some cases, the present technology may be presented as including individual functional blocks including functional blocks comprising devices, device components, steps or routines in a method implemented in software, or a combination of hardware and software.
[0166] In some embodiments, computer readable storage devices, media, and memories may include cables or wireless signals containing bit streams, etc. However, when referred to, non-transitory computer readable storage media explicitly excludes media such as energy, carrier signals, electromagnetic waves, and signals per se.
[0167] The method according to the above example can be implemented using computer executable instructions stored or otherwise obtainable from a computer readable medium. Such instructions may include, for example, instructions and data that cause a general-purpose computer, a special-purpose computer, or a special-purpose processing device to perform a certain function or a group of functions or otherwise configure a general-purpose computer, a special-purpose computer, or a special-purpose processing device to perform a certain function or a group of functions. The part of the computer resources used can be accessed through a network. Computer executable instructions can, for example, be binary, intermediate format instructions, such as assembly language, firmware, or source code. Examples of computer readable media that can be used to store instructions, information used, and / or information created during the method according to the described example include disks or optical disks, flash memory, USB devices provided with non-volatile memory, networked storage devices, etc.
[0168] The apparatus for implementing the methods according to these disclosures may include hardware, firmware and / or software, and may adopt any of a variety of rules. Typical examples of such specifications include laptop computers, smart phones, small-format personal computers, personal digital assistants, etc. The functions described herein may also be implemented in peripherals or plug-in cards. By way of further example, such functions may also be implemented on a circuit board between different chips or different processes executed in a single device.
[0169] The instructions, the media for transmitting such instructions, the computing resources for executing them, and other structures for supporting such computing resources are the means for providing the functionality described in these disclosures.
[0170] Although various examples and other information are used to illustrate various aspects within the scope of the appended claims, no limitation should be implied to the claims based on the specific features or arrangements in such examples, as a person of ordinary skill will be able to derive a variety of implementations using these examples. Further, although a subject matter may have been described in language specific to examples of structural features and / or method steps, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to these described features or actions. For example, such functionality may be distributed differently or performed in components other than those identified herein. Instead, the described features and steps are disclosed as examples of components of systems and methods within the scope of the appended claims.
Claims
1. A method comprising: Receiving, by the content management system, a request to view a workspace associated with an account of a user; parsing, by the content management system, a first set of content items associated with a workspace associated with the account; identifying, by the content management system, a first set of annotations associated with a first set of content items; generating, by the content management system, a first set of workspace messages, each workspace message corresponding to an annotation in the first set of annotations; aggregating, by the content management system, a first plurality of workspace messages for a first content item; generating, by the content management system, a first graphical user interface corresponding to the account, wherein the first graphical user interface includes a representation of the first set of workspace messages and the first set of content items; configuring the first plurality of workspace messages and the first content item in a first workspace for display in the first graphical user interface; receiving, via the first graphical user interface, input corresponding to a first workspace associated with the account, the first workspace being accessible to the user and other authorized users of the first workspace; identifying, by the content management system, a second set of annotations associated with a second set of content items, the second set of content items being associated with the first workspace; generating, by the content management system, a second set of workspace messages, each workspace message in the second set of workspace messages corresponding to an annotation associated with the second set of annotations; as well as A second graphical user interface corresponding to the first workspace is generated by the content management system, the second graphical user interface including a second set of workspace messages available to the user and each authorized user of the first workspace and representations of the second set of content items.
2. The method according to claim 1, wherein: Identifying a first set of annotations associated with the first set of content items includes: parsing documents associated with the account; and Annotations within the document are identified.
3. The method according to claim 1, wherein: Identifying a second set of annotations associated with the second set of content items includes: Messages addressed to a workspace associated with the account are identified, and wherein generating, by the content management system, a second set of workspace messages includes generating workspace messages based on the messages addressed to the workspace.
4. The method according to claim 3, wherein: The message comprises an email message.
5. The method according to claim 1, further comprising: receiving, by the content management system via the second graphical user interface, a second input, wherein the second input is a new workspace message; updating, by the content management system, the second graphical user interface to include the new workspace message; as well as The new workspace message is associated with the first workspace by the content management system.
6. The method according to claim 5, further comprising: identifying, by the content management system, a content item associated with the new workspace message; as well as The new workspace message is added by the content management system as an internal annotation to the content item.
7. The method according to claim 1, further comprising: receiving, by the content management system via the second graphical user interface, a second input, wherein the second input is a new workspace message; In response to receiving the new workspace message, generating, by the content management system, an email message containing at least a portion of the new workspace message; as well as The email message is sent by the content management system to one or more authorized users in the first workspace.
8. A non-transitory computer readable medium comprising one or more sequences of instructions which, when executed by one or more processors, cause: The content management system generates a first graphical user interface corresponding to a first workspace by the following operations, wherein the first workspace is associated with the user's account and a first authorized account of a first authorized user: identifying a first set of annotations associated with the first workspace; generating a first set of workspace messages, each workspace message corresponding to an annotation in the first set of annotations; as well as aggregating a first plurality of workspace messages for a first content item; providing the first set of workspace messages and the first plurality of workspace messages for display via the first graphical user interface, the first set of workspace messages and the first plurality of workspace messages being accessible to the user and each first authorized user; as well as The content management system generates a second graphical user interface corresponding to a second workspace by the following operations, wherein the second workspace is associated with the user's account and a second authorized account of a second authorized user: identifying a second set of annotations associated with the second workspace; generating a second set of workspace messages, each workspace message in the second set of workspace messages corresponding to an annotation in the second set of annotations; as well as The second set of workspace messages is provided for display via the second graphical user interface, the second set of workspace messages being accessible to the user and each second authorized user.
9. The non-transitory computer readable medium of claim 8, wherein: Identifying a first set of annotations associated with a first workspace includes: parsing documents associated with the account; and Annotations within the document are identified.
10. The non-transitory computer readable medium of claim 8, wherein: Identifying a first set of annotations associated with a first workspace includes: Messages addressed to the first workspace are identified, and wherein generating a first set of workspace messages includes generating workspace messages based on the messages addressed to the first workspace.
11. The non-transitory computer readable medium of claim 10, wherein: The message comprises an email message.
12. The non-transitory computer-readable medium of claim 8, further comprising: receiving, by the content management system via the first graphical user interface, input, wherein the input is a new workspace message; updating, by the content management system, the first graphical user interface to include the new workspace message; as well as The new workspace message is associated with the first workspace by the content management system.
13. The non-transitory computer readable medium of claim 12, further comprising: identifying, by the content management system, a content item associated with the new workspace message; as well as The new workspace message is added by the content management system as an internal annotation to the content item.
14. The non-transitory computer-readable medium of claim 8, further comprising: receiving, by the content management system via the first graphical user interface, input, wherein the input is a new workspace message; In response to receiving the new workspace message, generating, by the content management system, an email message containing at least a portion of the new workspace message; as well as The email message is sent by the content management system to one or more authorized users of the first workspace.
15. A system comprising: one or more processors; as well as a memory having programming instructions stored thereon, the programming instructions, when executed by the one or more processors, performing one or more operations comprising: receiving a request to view a workspace associated with an account of a user; parsing a first set of content items associated with a workspace associated with the account; identifying a first set of annotations associated with a first set of content items; generating a first set of workspace messages, each workspace message corresponding to an annotation in the first set of annotations; aggregating a first plurality of workspace messages for a first content item; generating a first graphical user interface corresponding to the account, wherein the first graphical user interface includes a representation of the first plurality of workspace messages and the first plurality of content items; configuring the first plurality of workspace messages and the first content items in a first workspace for display in the first graphical user interface; receiving, via the first graphical user interface, input corresponding to a first workspace associated with the account, the first workspace being accessible to the user and other authorized users of the first workspace; identifying a second set of annotations associated with a second set of content items, the second set of content items being associated with the first workspace; generating a second set of workspace messages, each workspace message in the second set of workspace messages corresponding to an annotation associated with the second set of annotations; and A second graphical user interface corresponding to the first workspace is generated, the second graphical user interface including a second set of workspace messages available to the user and each authorized user of the first workspace and a representation of the second set of content items.
16. The system according to claim 15, wherein: Identifying a first set of annotations associated with the first set of content items includes: parsing documents associated with the account; and Annotations within the document are identified.
17. The system of claim 15, wherein: Identifying a second set of annotations associated with the second set of content items includes: Messages addressed to a workspace associated with the account are identified, and wherein generating a second set of workspace messages includes generating the workspace messages based on the messages addressed to the workspace.
18. The system of claim 17, wherein: The workspace message is an email message.
19. The system of claim 15, wherein the one or more operations further comprise: receiving, via the second graphical user interface, a second input, wherein the second input is a new workspace message; updating the second graphical user interface to include the new workspace message; as well as The new workspace message is associated with the first workspace.
20. The system of claim 19, further comprising: identifying a content item associated with the new workspace message; as well as The new workspace message is added as an internal annotation to the content item.
Citation Information
Patent Citations
Integrated sharing of electronic documents
CN101689188A