Alert Feed and Subscription Management

The system addresses the challenge of monitoring changes in cloud collaboration environments by generating alerts based on user subscriptions, enabling effective tracking of relevant data changes.

JP7735380B2Active Publication Date: 2025-09-08SALESFORCE INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023501038
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-07-10
Filing Date
2021-01-29
Publication Date
2025-09-08
Estimated Expiration
2041-01-29

AI Technical Summary

Technical Problem

In cloud collaboration environments, managing large numbers of users and records becomes challenging due to the difficulty in monitoring changes to database tables, records, and collaboration documents that interest individual users.

Method used

A system is implemented that generates modification notifications for database tables, records, and collaboration documents, compares these notifications to user subscriptions, and creates alerts in an alert feed when changes meet subscription criteria, allowing users to easily monitor relevant changes through an alert GUI.

Benefits of technology

Users can efficiently track changes to their interests within the vast data of cloud collaboration environments by receiving targeted alerts, facilitating better management of subscriptions and notifications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007735380000001
    Figure 0007735380000001
  • Figure 0007735380000002
    Figure 0007735380000002
  • Figure 0007735380000003
    Figure 0007735380000003
Patent Text Reader

Abstract

Described herein are embodiments and / or combinations and subcombinations of systems, apparatuses, devices, methods, and / or computer program products for managing alerts and subscriptions in a cloud collaboration system. In one embodiment, a modification notification identifying a change to a field of a record is obtained, and the change is compared to criteria specified in a subscription for the user. If the change meets the criteria, an alert is generated based on the modification notification. An alert GUI is sent to the user device to display the alert to the user. The user may access an expanded view of the record through the alert in the alert GUI. The user may also issue an alert to a chat session involving other users of the cloud collaboration system.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] In cloud collaboration environments, multiple users create and modify database records and collaboration documents (e.g., reports). As the number of users increases and as the volume of records and collaboration documents increases, it becomes increasingly difficult for users to monitor changes to the records and collaboration documents that interest them. Nevertheless, the use of cloud collaboration environments remains popular. [Brief explanation of the drawings]

[0002] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the embodiments and enable those skilled in the art to make and use the embodiments individually or in combination.

[0003] [Figure 1] FIG. 1 is a block diagram of a system for managing alert feeds and subscriptions, according to one or more embodiments.

[0004] [Figure 2] 1 is a flowchart illustrating a process for managing alert feeds and subscriptions, according to one or more embodiments.

[0005] [Figure 3A] 1 illustrates an exemplary alert graphic user interface (GUI) according to one or more embodiments. [Figure 3B] 1 illustrates an exemplary alert graphic user interface (GUI) according to one or more embodiments. [Figure 3C] 1 illustrates an exemplary alert graphic user interface (GUI) according to one or more embodiments. [Figure 3D]1 illustrates an exemplary alert graphic user interface (GUI) according to one or more embodiments. [Figure 3E] 1 illustrates an exemplary alert graphic user interface (GUI) according to one or more embodiments. [Figure 3F] 1 illustrates an exemplary alert graphic user interface (GUI) according to one or more embodiments.

[0006] [Figure 4] 1 illustrates an expanded view of a record in accordance with one or more embodiments.

[0007] [Figure 5] FIG. 1 is a block diagram of example components of a mobile device, according to one or more embodiments.

[0008] [Figure 6] FIG. 1 is a block diagram of exemplary components of a computing system in accordance with one or more embodiments.

[0009] In the drawings, like numbers generally indicate the same or similar elements. Additionally, the leftmost digit(s) of a number generally identifies the drawing in which the number first appears. DETAILED DESCRIPTION OF THE INVENTION

[0010] Provided herein are embodiments and / or combinations and subcombinations of systems, apparatuses, devices, methods, and / or computer program products for managing alert feeds and subscriptions in a cloud collaboration environment. Specifically, a modification notification is issued each time a database table, record, field, and / or collaboration document (e.g., report, list, etc.) is modified. The modification notification identifies changes to the database table, record, field, and / or collaboration document. Furthermore, each user has one or more subscriptions, each subscription specifying one or more criteria related to the database table, record, field, and / or collaboration document (e.g., report, list, etc.). The modification notification is compared to the user's subscriptions. If the changes identified in the modification notification meet one or more criteria of a subscription, an alert is generated and placed in the alert feed for the user. Thus, the alert feed may have multiple alerts triggered by the user's multiple subscriptions, and the alert feed may be viewed in an alert GUI. This allows users to easily monitor changes to the database tables, records, fields, and / or collaborative documents they are interested in, despite the vast amount of data and users associated with a cloud collaboration environment. Additional subscriptions may be suggested to users based on their custom views of documents.

[0011] 1 is a block diagram of a system 100 for managing alert feeds and subscriptions in a cloud environment, according to one or more embodiments. The system 100 may include one or more mobile devices 102B, one or more computing devices 102A, which may be operatively and / or communicatively coupled to a cloud collaboration system 170. For example, the one or more computing devices 102A, one or more mobile devices 102B, and / or the cloud collaboration system 170 of the system 100 may all be operatively and / or communicatively coupled to each other via wired connections, wireless connections, or a combination of wired and wireless connections as part of one or more communication networks.

[0012] In one exemplary embodiment, the one or more communications networks may include, but are not limited to, an ad-hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless wide area network (WWLAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, a wireless network, a WiFi network, a WiMax network, other types of networks, or a combination of two or more such networks.

[0013] In one embodiment, one or more computing devices 102A may generally be configured to run one or more applications, which may include, but are not limited to, desktop collaboration application 110. For example, one or more computing devices 102A may represent desktop computing devices, server devices, virtual machines running on desktop computing devices and / or server devices, and / or the like. An exemplary implementation of computing device 102A is further illustrated and described with respect to FIG. 6.

[0014] In one embodiment, one or more mobile devices 102B may generally be configured to run one or more mobile applications, which may include, but are not limited to, a mobile collaboration application 112. For example, one or more mobile devices 102B may represent a mobile phone, a personal digital assistant, a tablet computing device, a portable media player, and / or the like. An example implementation of a mobile device 102B is further illustrated and described with respect to FIG. 5.

[0015] In one embodiment, desktop collaboration application 110 (e.g., a web browser, a native application, etc.) may be configured to visually present (or otherwise display) one or more user interface (UI) views on a display device operatively coupled to each computing device 102A. The one or more UI views may generally be configured to allow a user of desktop collaboration application 110 to manage (e.g., create, modify, view, etc.) subscriptions and alerts.

[0016] In one embodiment, the mobile collaboration application 112 (e.g., a mobile web browser, a native mobile application, etc.) may be configured to visually present (or otherwise display) one or more user interface (UI) views on the screen of the mobile device 102B. The one or more UI views may generally be configured to allow a user of the mobile collaboration application 112 to manage (e.g., create, modify, view, etc.) subscriptions and alerts.

[0017] In one embodiment, cloud collaboration system 170 includes, but is not limited to, management application program interface (API) gateway 122, collaboration management system 126, alert and subscription system 128, record repository 134, account repository 136, and alert repository 138. All of these systems, gateways, and repositories may be communicatively and / or operatively coupled to one another via one or more wired, wireless, or combinations of wired and wireless connections as part of one or more communication networks, as illustrated in FIG.

[0018] In one embodiment, record repository 134 may be configured to generally store database records and collaboration documents (e.g., reports, lists). As a non-limiting example, the database records may be sales account records. The sales account records may include the name of the sales account, potential sale price, past sale prices, target close date, current clients, past clients, potential clients, etc.

[0019] In one embodiment, account repository 136 may generally be configured to manage user account information associated with each user of collaborative management system 126 and alert and subscription system 128. User account information for each user may include, but is not limited to, a user identifier (e.g., the user's email, unique name, etc.), the user's full name (e.g., first name and last name, etc.), a user password (e.g., a hashed and salted version of alphanumeric text, etc.), a user image (e.g., a reference to a time associated with the user), permission settings, and / or other information associated with the user.

[0020] In one or more embodiments, each user's user account information also includes the user's current and proposed subscriptions. A subscription specifies one or more criteria related to database tables, records, fields, and / or collaborative documents (e.g., reports, lists, etc.). When a condition is met, an alert is generated and inserted into the user's alert feed. Different users may have different subscriptions and different numbers of subscriptions. Additional details regarding subscriptions and alerts are described below.

[0021] In one embodiment, the alert repository 138 may generally be configured to store an alert feed for each user. The alert feed stores alerts that are generated when one or more criteria associated with the user's subscriptions are met. Each alert feed may be configured to store a finite number of alerts for the user. When the alert feed fills to capacity, alerts in the alert feed may be deleted. For example, older alerts in the alert feed may be deleted before newer alerts. Additional details regarding subscriptions and alerts are described below.

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

[0023] In one embodiment, one or more cloud computing services of the collaboration management system 126 may generally be configured to run one or more distributed applications, which may include, but are not limited to, a collaboration management application 140. The collaboration management application 140 may enable multiple users to collaborate in real time or near real time to design, write, implement, edit, and finalize various forms of collaboration content, such as, for example, one or more collaboration documents (e.g., reports, lists). One or more of these actions (e.g., design, write, implement, edit, finalize, etc.) may include modifying database tables, fields, and / or collaboration documents (e.g., reports, lists) stored in the records repository 134.

[0024] In one or more embodiments, collaboration management application 140 may generally be configured to communicate and operate with desktop collaboration application 110 and mobile collaboration application 112 to provide an interface with record repository 134 and account repository 136.

[0025] In one or more embodiments, the collaboration management application 140 may issue a modification notification whenever a field, record, database table, or collaboration document (e.g., report, list) is modified in the record repository 134. The modification notification identifies the change to the field, record, database table, or collaboration document.

[0026] For example, in the case of a change field, the amendment notice may include the name of the change field (e.g., "Closing Date"), the values ​​of the change field before and after the amendment (e.g., "July 1", "August 15"), the identity of the record containing the change field, other fields from the record, a link to an expanded view of the record, and / or a statement accompanying the change to the field (e.g., "Closing Date changed from July 1 to August 15").

[0027] As another example, in the case of a modified collaboration document (e.g., a report), the modification notification may include the name of the collaboration document, the modified portion of the document (e.g., a sentence, paragraph, image, chart, etc.), a link to the document, and / or a statement accompanying the modification (e.g., "Paragraph

[0025] of the report has been modified," "Figure 3 of the report has been modified").

[0028] As yet another example, in the case of a changing database table, the modification notification may include the identity of the table (e.g., "Sales Account Table"), a link to the table, a link to the newly added record in the table, and / or a statement accompanying the change (e.g., "A new record has been added to the Sales Account Table").

[0029] In one embodiment, one or more cloud computing services of alert and subscription system 128 may generally be configured to run one or more distributed applications, which may include, but are not limited to, alert and subscription management application 142. In one or more embodiments, alert and subscription management application 142 may generally be configured to communicate and operate with desktop collaboration application 110 and mobile collaboration application 112 to provide an interface with alert repository 138 and account repository 136.

[0030] In one or more embodiments, the alerts and system management application 142 is configured to compare the changes identified in each modification notification with one or more criteria of a subscription for the user. If one or more criteria of a subscription are met, the alerts and system management application 142 may generate an alert based on the modification notification and insert the alert into an alerts feed for the user. Exemplary criteria may include the total cost field of one or more records changing by at least 10%, the accounting date of one or more records changing by at least 30 days, a record or field being changed by user John Doe, a record being added to or deleted from a database table, a portion of a report (e.g., a sentence, paragraph, image, chart) being modified, etc.

[0031] In one or more embodiments, a portion of the content of the alert is extracted from the modified notification that triggered the alert. In one or more embodiments, the alert and subscription management application 142 is also configured to provide the mobile collection application 112 and / or desktop collaboration application with an alert GUI for displaying a user's alert feeds and subscriptions. An example of an alert GUI is illustrated in Figures 2A and 2B.

[0032] Although the collaboration management system 126 and the alert and subscription system 128 are illustrated as separate systems, it will be understood that these two systems may be combined into a combined system. Furthermore, the combined system may then be configured to provide one or more cloud computing services and run one or more distributed applications, including, but not limited to, a collaboration management application 140 and an alert and subscription management application 142.

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

[0034] 2 is a flowchart illustrating a process for managing alert feeds and subscriptions, according to some embodiments. Method 200 may be performed by processing logic, which may include hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executing on a processing device), or a combination thereof. It should be understood that not all steps are required to practice the disclosure provided herein (i.e., some steps are optional). Furthermore, as will be understood by one of ordinary skill in the art, some of the steps may be repeated or performed simultaneously or in a different order than that shown in FIG. 2.

[0035] The method 200 shall be described with reference to Figure 1. However, the method 200 is not limited to that exemplary embodiment.

[0036] In operation 205, one or more frequently viewed columns are determined for the user. The one or more frequently viewed columns may be determined by the collaboration management application 140. Typically, a user may access multiple documents (e.g., reports), and these documents contain multiple columns of data. A user may create a custom view of a document by specifying which columns should be displayed in the document and which columns should be hidden in the document. A column is considered a frequently viewed column if the user frequently requests that the column be displayed (e.g., if the number or percentage of times the user requests that the column be displayed exceeds a threshold). The number or percentage of times the user requests that the column be displayed may be stored and updated in the user's account in the account repository 136.

[0037] At operation 210, one or more suggested subscriptions are generated for the user based on one or more frequently viewed columns. The suggested subscriptions may be generated by the alert and subscription management application 142. The suggested subscriptions may be stored in the user's account in the account repository 136. As described above, a subscription specifies one or more criteria related to records, fields, records, and / or documents. If the conditions are met, an alert is generated and inserted into the user's alert feed.

[0038] Those skilled in the art, with the benefit of this disclosure, will understand that rows of a grid showing data may be considered records, while columns of the grid may correspond to fields of the record (and vice versa). Thus, frequently viewed columns are likely to correspond to a user's interest fields. The proposed subscription may identify the interest field and specify at least one criterion based on the type of data in the interest field. For example, if the interest field is populated with a dollar amount, the criterion for the proposed subscription may be a 10% change. If the interest field is populated with a date, the criterion may be a 30-day change. If the interest field is populated with a flag (e.g., a Boolean value), the criterion for the proposed subscription may be setting or clearing the flag. If the interest field is populated with a shipping address, the criterion for the proposed subscription may be any change to the interest field.

[0039] A proposed subscription is not limited to a field. For example, if a user frequently accesses a collaborative document (e.g., a report) or a database table, the proposed subscription may identify the document or table, and the criteria for the proposed subscription may be any changes to the document or table.

[0040] In operation 215, an alert feed for the user is retrieved from the alert repository 138. The alert feed may be retrieved by the alert and subscription management application 142. As described above, the alert feed stores alerts resulting from the user's subscriptions. The alerts may be stored and displayed in chronological order. Because each alert feed has a fixed size, older alerts in the alert feed may be discarded to make space for newer alerts.

[0041] When an alert is associated with a field, the alert may include, for example, the field that triggered the alert, one or more other fields in the same record as the field that triggered the alert, a statement about what caused the alert and the old and new values ​​of the field (e.g., "Price increased from $10 to $15," "Suspected fraudulent transaction flag set," "Settlement date changed from July 1st to August 15th," etc.), and / or a link to an expanded view of the record with the field that triggered the alert.

[0042] When an alert is associated with a report, the alert may include, for example, the portion of the report that triggered the alert (e.g., the sentence, paragraph, etc.), a statement about what caused the alert (e.g., "Paragraph

[0025] has been corrected"), and a link to the full report.

[0043] When the alert is related to a table, the alert may include, for example, the identity of the table (e.g., "Sales Accounts Table"), a link to the table, a link to the newly added record in the table, and / or a statement accompanying the change (e.g., "A new record has been added to the Sales Accounts Table").

[0044] In operation 220, the alerts GUI, the alerts feed for the user, and the current and / or proposed subscriptions for the user are sent to the user device 102. Both operations 215 and 220 may be triggered by the user logging into cloud collaboration system 170 or by the user explicitly requesting to view the alerts GUI. The alerts GUI, the alerts feed, and the proposed and / or current subscriptions may be sent by alert and subscription management application 142.

[0045] The alerts GUI may include a feed component and a subscription component. For example, the feed component and the subscription component may be GUI tabs. The feed component may be configured to display the alerts feed to the user. If the alerts feed is long, the feed component may allow vertical scrolling. An exemplary alerts GUI with a feed component is shown in FIG. 3A.

[0046] The subscription component allows a user to manage (create, view, modify, etc.) subscriptions. The subscription component may display suggested subscriptions to the user. The subscription component may display multiple GUI widgets (e.g., radio buttons, drop-down boxes, text boxes, etc.), and the user may create subscriptions or modify current or suggested subscriptions by manipulating the GUI widgets. This includes specifying one or more criteria for one or more fields, tables, and reports. An exemplary alert GUI with a subscription component is shown in FIG. 3B.

[0047] In one or more embodiments, if a user changes devices 102 (e.g., desktop PC vs. mobile device), the alerts GUI, alert feed, and / or suggestions and / or current subscriptions may be resent to the new device 102.

[0048] At operation 225, a subscription request is received. The subscription request may be received by the alerts and subscription management application 142 from an alerts GUI displayed on the user device 102. The subscription request is a new or modified subscription for the user. Thus, the subscription request specifies one or more criteria related to records, fields, tables, and / or collaboration documents (e.g., reports). If the criteria are met, an alert is generated and inserted into the user's alerts feed. The new or modified subscription may correspond to one of the proposed subscriptions from operation 210 (i.e., the user has accepted one of the proposed subscriptions). The user's account in the account repository 136 may be updated with the new or modified subscription.

[0049] At operation 230, a stream of modification notifications is received. Each modification notification may be published by collaboration management application 140 and received by alert and subscription management application 142. As described above, modification notifications are generated in response to changes to fields, records, tables, and / or collaboration documents (e.g., reports) in record repository 134.

[0050] When a modification notice relates to a field of a record, the modification notice may identify the change to that field. The modification notice may include the name of the field (e.g., "Total Cost"), the previous value of the field (e.g., $50,000), the revised value of the field (e.g., $45,000), and / or an identifier for the record or a link (e.g., a URL) to an expanded view of the record with the changed field. Additionally or alternatively, the modification notice may include a statement accompanying the change (e.g., "Total Cost decreased from $50,000 to $45,000"). Furthermore, the modification notice may include a subset of fields from the record with the changed field.

[0051] When an amendment notice is associated with a report, the amendment notice may identify a change to a portion of the report (e.g., a sentence, paragraph, chapter, etc.). The amendment notice may include the previous value of the portion (e.g., "The stock market crashed in 1930") and the new value of the portion (e.g., "The stock market crashed in 1929"), and / or an identifier for the report or a link (e.g., a URL) to the report with the changed portion. Additionally or alternatively, the amendment notice may include a statement accompanying the change (e.g., "Paragraph

[0025] has been amended").

[0052] When a modification notification relates to a database table, the modification notification may include an identity of the table (e.g., "Sales Account Table"), a link to the table, a link to the newly added record in the table, and / or a statement accompanying the change (e.g., "A new record has been added to the Sales Account Table").

[0053] In one or more embodiments, each modification notification is compared to subscriptions for the user. Specifically, the changes identified in each modification notification are compared to the criteria of each subscription for the user to determine whether the subscription criteria are met.

[0054] At operation 235, an alert is generated in response to a change identified in the modification notice satisfying one or more criteria of the subscription. As described above, the criteria may correspond to any change (e.g., any change to a shipping address field or a password field). Alternatively, the criteria may include a 10% value change (e.g., for a total cost field). Additionally or alternatively, the criteria may correspond to a 30-day or 6-month change (e.g., for a date field). When the modification notice relates to a field, generating the alert may include extracting from the modification notice the name of the field, the previous value of the field, the revised value of the field, a statement accompanying the change, other fields from the same record as the changed field, and / or an identifier for the record, or a link (e.g., a URL) to an expanded view of the record with the changed field. These extracted items may be included in the alert, which may be inserted into an alert feed for the user.

[0055] When a modification notification is associated with a report, generating the alert may include extracting from the modification notification the previous value of the portion, the new value of the portion, a statement accompanying the change, and / or an identifier for the report or a link (e.g., a URL) to the report. These extracted items may be included in the alert, which may be inserted into an alert feed for the user.

[0056] When a modification notification relates to a table, generating the alert may include, for example, extracting the identity of the table (e.g., "Sales Account Table"), a link to the table, a link to the newly added record in the table, and / or a statement accompanying the change (e.g., "A new record has been added to the Sales Account Table"). These extracted items may be included in the alert, which may be inserted into the alert feed for the user.

[0057] In one or more embodiments, if a user is viewing the alerts GUI when an alert is generated, only the newly generated alert is sent to the user's device for insertion into the alerts feed displayed in the alerts GUI. Additionally or alternatively, the entire alerts feed with the newly inserted alert is sent to the user's device to replace the currently expired alerts feed displayed in the alerts GUI. The alerts feed with the newly inserted alert may also be stored in the user's account in the account repository 136.

[0058] At operation 240, a request for an extended view of a record is received. The request for an extended view of a record may be received by the collaboration management application 140 from the alerts GUI. Additionally or alternatively, the request may be received by the alerts and subscription management application 142 and relayed to the collaboration management application 140. As described above, the alert may include a link (e.g., a URL) to the extended view of the record. The link may be visible in the alert displayed in the alerts GUI. The request for the extended view of the record may be triggered by a user invoking (e.g., selecting with a mouse) the link in the alert displayed in the alerts GUI. In response, the extended view of the record may be retrieved from the record repository 134 and transmitted to the user device 102. An example of an extended view of a record is shown in FIG. 4.

[0059] Additionally or alternatively, when an alert corresponds to a change report, the alert may include a link to the report. The link may be visible in the alert displayed in the alert GUI. A user may retrieve the report by invoking the link.

[0060] Additionally or alternatively, when an alert corresponds to a changed table, the alert may include a link to the table and / or to the newly added record in the table. The link may be visible in the alert displayed in the alert GUI. A user may retrieve the table or the newly added record by invoking the link.

[0061] At operation 245, a request to publish a message based on the alert is received from the alert GUI. This is effectively a request to share the alert with other users. Specifically, the alert GUI may have a share function that allows a user to generate a message including the alert itself and / or the content of the alert and publish the message in a new or existing chat session with one or more other users of system 100. The message may also include comments, images, and / or animations from the user (e.g., "What happened?! This price change is extreme!"). The request to publish a message may be triggered by a user invoking the share function within the alert GUI. In response to the request, cloud collaboration system 170 may publish the message in the requested chat session.

[0062] 3A and 3B illustrate an example alerts GUI 300 according to one or more embodiments. The alerts GUI 300 may correspond to the alerts GUI disclosed above with reference to FIG. 2. Accordingly, the alerts GUI 300 is displayed on the user device 102. As shown in FIG. 3A, the alerts GUI 300 includes a feed tab 305 and a subscriptions tab 310. In FIG. 3A, the contents of the feed tab 305 are shown while the contents of the subscriptions tab 310 are hidden. The feed tab 305 includes an alerts feed 315 for the user. The alerts feed includes multiple alerts (alert A 320A, alert B 320B) for the user. As described above, each alert 320 results from a comparison of a modification notification with subscriptions for the user, and the changes identified in the modification notification satisfy one or more criteria of the subscriptions.

[0063] Alert A 320A was generated because the accounting date was changed. The accounting date is a field of the record. Alert A 320A includes a statement accompanying the change (i.e., "Accounting date changed from July 7, 2030 to August 1, 2030"). Alert A 320A also includes other fields from the record, including a company field (i.e., "A LTD"), an amount field (i.e., "$32,000"), and a revised accounting date field ("August 1, 2030"). These fields and statements may have been extracted from the amendment notice identifying the change. Alert A 320A also includes a record link. Invoking (e.g., clicking) the record link may display an expanded view of the record to the user. This corresponds to operation 240 described above with reference to FIG. 2. An example of an expanded view of a record is shown in FIG. 4. The record link in Alert A 320A may also have been extracted from the amendment notice identifying the change.

[0064] Alert B 320B is generated because the price changed. Price is a field of the record. Alert B 320B includes a statement accompanying the change (i.e., "Price decreased from $50,000 to $45,000"). Alert B 320B also includes other fields from the record, including a company field (i.e., "B LTD"), a revised price field (i.e., "$45,000"), and a closing date field (i.e., "July 15, 2030"). These fields and statements may have been extracted from the amendment notice identifying the change. Alert B 320B also includes a record link. Invoking (e.g., clicking) the record link may display an expanded view of the record to the user. This corresponds to operation 240 described above with reference to FIG. 2. An example of an expanded view of a record is shown in FIG. 4. The record link in Alert B 320B may also have been extracted from the amendment notice identifying the change.

[0065] Still referring to FIG. 3A , each alert 320 includes an options button 330. Selecting an options button 330 displays an options panel 335. The options panel 335 includes one or more functions that can be performed on the alert 320. For example, the options panel 335 includes a share alert function 340. Invoking (e.g., clicking) the share alert function 340 allows a user to publish a message based on the alert in a chat session with new or other existing members. This corresponds to operation 245 described above with reference to FIG. 2.

[0066] 3B, the contents of the subscriptions tab 310 are shown while the contents of the feeds tab 305 are hidden. The subscriptions tab 310 shows the user's current subscriptions 355. The subscriptions tab 310 also includes suggested subscriptions 350 for the user. These suggested subscriptions 350 were generated in operation 210 described above with reference to FIG. 2. By selecting one or more of the suggested subscriptions 350, the selected suggested subscriptions become the current subscriptions for the user. In other words, when a modification notification identifies a change that meets the criteria of one or more of the suggested subscriptions, an alert is generated in the user's alerts feed.

[0067] The subscriptions tab 310 also includes a panel 360 for creating new subscriptions or modifying current subscriptions. As shown in FIG. 3B, the panel has multiple GUI widgets 365 (e.g., drop-down boxes, text boxes, radio buttons) that allow a user to specify one or more criteria for the new or revised subscription. This corresponds to operation 225 described above with reference to FIG. 2. For example, in FIG. 3B, widget 365 is used to specify a criterion of a 10% increase in field X, which becomes the basis for the subscription for the newly created user. Those skilled in the art will appreciate that the widget 365 in FIG. 3B is a non-limiting example. Any number of widgets may be used to create subscriptions of any level of granularity (e.g., changes to a database table versus a +2.358% change to one specific field in one record).

[0068] Figures 3C, 3D, 3E, and 3F illustrate additional examples of alert GUIs. Specifically, Figure 3C shows an example feed component 375, Figure 3D shows an example subscription component 380, Figure 3E shows an example subscription component 385, and Figure 3F shows an example subscription component 390. In one or more embodiments, the feed component and the subscription component are on different screens / windows. In one or more embodiments, the feed component or the subscription component are multiple screens / windows.

[0069] 4 illustrates an expanded view 400 of a record according to one or more embodiments. As described above with reference to operation 240, a user may request the expanded view 400 from a link in an alert associated with the record. The expanded view 400 may include additional fields of the record that are not included in the alert. The expanded view 400 may also include a button 402 that can be selected to view the database record in a backend system.

[0070] A user may edit fields of the database record by selecting edit 404. In response to selecting edit 404, the mobile collaboration application (or desktop collaboration application) may send a request to the alerts and subscription system. The request may include an identifier of the user who selected edit 404. The alerts and subscription system may forward the request to the collaboration management system. The collaboration management application may use the identifier to look up the user's permission settings. The permission settings indicate the fields of the database record that the user may edit. Fields that the user is allowed to edit may be made editable to the user in the extended view 400. The user's edits may be stored in the record repository. The user may return to the alerts GUI in response to selecting a "done" selection 406.

[0071] 5 illustrates an exemplary block diagram 500 of one example of a mobile device 102B executing a mobile collaboration application 112. A mobile device 102B (e.g., a mobile phone, a tablet, a laptop, etc.) may generally be configured to allow a user to access various collaboration content and engage in real-time instant messaging of one or more target users. While FIG. 5 illustrates one exemplary embodiment of a mobile device 102B, it should be understood that the exemplary embodiment is not limited in this context.

[0072] In one embodiment, mobile device 102B may be generally configured to provide mobile computing and / or mobile communications, including, but not limited to, memory 570, a communication component 574, a mobile processor component 584, a touch-sensitive display component 586, a position component 588, an internal power component 590, and an image acquisition component 594, each component and memory 570 may be operatively connected via interconnect 592.

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

[0074] In one embodiment, memory 570 may include instruction information configured to be executed by mobile processor component 584. In that embodiment, the instruction information may represent at least one operating system 572, one or more applications, which may include, but are not limited to, mobile collaboration application 112. In one embodiment, memory 570 may further include device data store 550, which may be configured to store information related to mobile collaboration application 112 (e.g., alerts, subscriptions, alert feeds, etc.).

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

[0076] In one embodiment, communications component 574 may be generally configured to enable mobile device 102B to communicate directly and / or indirectly with various devices and systems (e.g., alert and subscription system 128, etc.). Communications component 574 may include, among other elements, radio frequency circuitry (not shown) configured to encode and / or decode information and transmit the encoded information as radio signals at frequencies consistent with one or more wireless communications standards (e.g., Bluetooth, Wireless IEEE 802.11, WiMAX IEEE 802.16, Global Systems for Mobile Communications (GSM), Enhanced Data Rates for GSM Evolution (EDGE), Long Term Evolution (LTE), Bluetooth standards, Near Field Communications (NFC) standards, etc.).

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

[0078] In one embodiment, touch-sensitive display component 586 may generally be configured to receive and present visual display information and provide touch input information based on detected touch- or contact-based input. Further, touch-sensitive display component 586 may include, among other elements, a display device (e.g., a liquid crystal display, a light emitting diode display, an organic light emitting diode display, etc.) for presenting the visual display information and a touch sensor (e.g., a resistive touch sensor, a capacitive touch sensor, etc.) associated with display device 568, and may detect and / or receive touch- or contact-based input information associated with the display device of mobile device 102B. Additionally, the touch sensor may be integrated with the surface of the display device such that a user's touch or contact input may substantially correspond to visual display information presented on the display device, such as, for example, one or more user interface (UI) views and elements described and illustrated herein.

[0079] In one embodiment, location component 588 may generally be configured to receive positioning signals representing positioning information and to provide determined location information (e.g., an approximate physical location of mobile device 102B) based at least in part on the received positioning information. Additionally, location component 588 may include, among other elements, positioning circuitry (e.g., a Global Positioning System (GPS) receiver, etc.) configured to determine the physical location of mobile device 102B. In some embodiments, location component 588 may be further configured to communicate and / or interface with communication component 574 to provide greater accuracy and / or faster determination of location information.

[0080] In one embodiment, internal power component 590 may be configured generally to provide power to various components and memory of mobile device 102B. In one embodiment, internal power component 590 may include and / or be operatively coupled to internal and / or external batteries configured to provide power to various components (e.g., communications component 574, motion component 576, memory 570, etc.). Internal power component 590 may also be operatively coupled to an external charger to charge the batteries.

[0081] In one embodiment, image acquisition component 594 may generally be configured to generate digital image information using an image capture device such as, for example, a charge-coupled device (CCD) image sensor (not shown). Further, image acquisition component 594 may be configured to provide or stream the digital image information captured by the CCD image sensor to touch-sensitive display component 586 for visual presentation via interconnect 592, mobile operating system 572, and mobile processor component 584.

[0082] FIG. 6 illustrates an exemplary computer system 600 useful for implementing various embodiments. Furthermore, various embodiments may be implemented using one or more well-known computer systems, such as, for example, the computer system 600 depicted in FIG. 6 . One or more computer systems 600 may be used to implement, for example, any of the embodiments discussed herein, as well as combinations and subcombinations thereof. For example, computer system 600 may implement one or more computing devices 102A. In another example, one or more computer systems 600 may be communicatively coupled to one another and each configured to run one or more virtual machines (not shown). The one or more virtual machines may be managed or otherwise organized by one or more virtual machine managers (not shown) configured to provide and / or configure the one or more virtual machines on the one or more computer systems 600. The one or more virtual machines may further be configured as Software as a Service (SaaS), Platform as a Service (PaaS), and / or Infrastructure as a Service (IaaS) configured to host or otherwise run one or more applications associated with one or more gateways, systems, and / or repositories of FIG. 1 .

[0083] Computer system 600 may include one or more processors (also referred to as central processing units or CPUs), such as processor 604. Processor 604 may be connected to a communication infrastructure or bus 606.

[0084] The computer system 600 may also include user input / output devices 603 such as a monitor, keyboard, pointing device, etc., which may communicate with a communications infrastructure 606 via a user input / output interface 602 .

[0085] One or more of the processors 604 may be a graphics processing unit (GPU). In one embodiment, a GPU may be a processor that is a dedicated electronic circuit designed to process mathematically intensive applications. A GPU may have a parallel structure that is efficient for parallel processing of large blocks of data, such as the mathematically intensive data common in computer graphics applications, images, video, etc.

[0086] Computer system 600 may also include a main or primary memory 608, such as random access memory (RAM). Main memory 608 may include one or more levels of cache. Main memory 608 may store control logic (i.e., computer software) and / or data internally.

[0087] Computer system 600 may also include one or more secondary storage devices or memories 610. Secondary memory 610 may include, for example, a hard disk drive 612 and / or a removable storage device or drive 614. Removable storage drive 614 may be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, a tape backup device, and / or any other storage device / drive.

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

[0089] Secondary memory 610 may also include other means, devices, components, tools, or other approaches that allow computer programs and / or other instructions and / or data to be accessed by computer system 600. Such means, devices, components, tools, or other approaches may include, for example, removable storage unit 622 and interface 620. Examples of removable storage unit 622 and interface 620 may include program cartridges and cartridge interfaces (such as those found in video game devices), removable memory chips (EPROM, PROM, etc.) and associated sockets, memory sticks and USB ports, memory cards and associated memory card slots, and / or other removable storage units and associated interfaces.

[0090] Computer system 600 may further include a communications or network interface 624. Communications interface 624 may enable computer system 600 to communicate and interact with any combination of external devices, external networks, external entities, etc. (individually and collectively referred to by the numeral 628). For example, communications interface 624 enables computer system 600 to communicate with external or remote devices 628 via communications path 626, which may be wired and / or wireless (or a combination thereof) and may include any combination of a LAN, a WAN, the Internet, etc. Control logic and / or data may be transmitted to and from computer system 600 via communications path 626.

[0091] Computer system 600 may also be a personal digital assistant (PDA), a desktop workstation, a laptop or notebook computer, a netbook, a tablet, a smartphone, a smartwatch or other wearable, an appliance, part of the Internet of Things, and / or an embedded system, or any combination thereof, to name a few examples.

[0092] Computer system 600 may be a client or server that accesses or hosts any application and / or data via any delivery paradigm, including, but not limited to, remote or distributed cloud computing solutions, local or on-premise software ("on-premise" cloud-based solutions), "as a service" models (e.g., content as a service (CaaS), digital content as a service (DCaaS), software as a service (SaaS), managed software as a service (MSaaS), platform as a service (PaaS), desktop as a service (DaaS), framework as a service (FaaS), backend as a service (BaaS), mobile backend as a service (MBaaS), infrastructure as a service (IaaS), etc.), and / or hybrid models including any combination of the foregoing examples or other service or delivery paradigms.

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

[0094] In some embodiments, a tangible, non-transitory apparatus or article of manufacture comprising a tangible, non-transitory computer-usable or readable medium having control logic (software) stored thereon may also be referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system 600, main memory 608, secondary memory 610, and removable storage units 618 and 622, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system 600), may cause such data processing devices to operate as described herein.

[0095] Based on the teachings contained herein, it will be apparent to one skilled in the art how to make and use embodiments of the present disclosure using data processing devices, computer systems, and / or computer architectures other than those shown in Figure 6. In particular, embodiments may operate with software, hardware, and / or operating system implementations other than those described herein.

[0096] The embodiments of the present disclosure are described with the aid of functional building blocks illustrating implementation of certain functions and relationships thereof. These functional boundaries are arbitrarily defined herein for the convenience of description. Alternative boundaries may be defined so long as the certain functions and relationships thereof are appropriately performed.

[0097] The foregoing description of specific embodiments fully reveals the general nature of the disclosure such that others, by applying knowledge of the art, may readily modify and / or adapt such specific embodiments for various uses without undue experimentation, without departing from the general concepts of the disclosure. Such adaptations and modifications are therefore intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, and as such, should be interpreted by one of ordinary skill in the art in light of the teaching and guidance.

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

Claims

1. Generating, by one or more processors, a first subscription based on a frequently viewed field accessed by a first user in a collaboration document stored in a cloud collaboration environment, wherein the first subscription specifies criteria for changes to the frequently viewed field in the collaboration document, and wherein users of the cloud collaboration environment have permission to collaboratively change the frequently viewed field in the collaboration document from their respective devices; generating, by the one or more processors, an alert based on a first modification notification identifying a change to a first field of the collaboration document, wherein a second user of the cloud collaboration environment modifies the collaboration document and the change satisfies criteria specified in the first subscription for the first user of the cloud collaboration environment; and inserting, by the one or more processors, the alert into an alert feed displaying a plurality of alerts for the first user of the cloud collaborative environment configured in an alert graphical user interface (GUI).

2. the first modification notification includes a subset of fields of the collaboration document including the first field; the alert includes a subset of the fields extracted from the first modification notification; The method of claim 1 , wherein the subset of fields is visible in the alert in the alert feed.

3. The method of claim 2 , wherein the first modification notification further includes a statement accompanying the change, the statement being viewable in the alert within the alert feed.

4. receiving, by the one or more processors, a request for an extended view of the collaboration document from a first device; the first modification notification further includes a link to the expanded view of the collaboration document; the alert further includes the link to the expanded view of the collaboration document extracted from the first modification notice; The method of claim 2 , wherein the request for the expanded view is triggered by the first user invoking the link from within the alert GUI.

5. receiving, by the one or more processors, a request to issue a message based on the alert; The method of claim 2 , wherein the request to publish the message is triggered by the first user invoking a share function within the alerts GUI.

6. determining, by the one or more processors, frequently viewed columns within a plurality of collaborative documents; generating, by the one or more processors, suggested subscriptions for a second field corresponding to the frequently viewed column; The method of claim 1 , wherein the alert GUI includes a subscription component configured to display the suggested subscriptions to the first user.

7. receiving, by the one or more processors, a second modification notification identifying a change to the collaboration document; comparing, by the one or more processors, the changes to the collaboration document with criteria specified in a second subscription for the first user; 10. The method of claim 1, further comprising: in response to the changes to the collaboration document satisfying the criteria specified in the second subscription, generating, by the one or more processors, an additional alert based on the changes to the collaboration document for display in the alert feed comprising the plurality of alerts for the first user.

8. storing the alert feed in an alert repository; determining, by the one or more processors, that the first user is operating a second device; In response to determining that the first user is operating the second device, retrieving the alert feed from the alert repository; The method of claim 1 , further comprising: transmitting the alert GUI and the alert feed to the second device.

9. Memory and at least one processor coupled to the memory, the at least one processor: generating a first subscription based on a frequently viewed field accessed by a first user in a collaboration document stored in a cloud collaboration environment, the first subscription specifying criteria for changes to the frequently viewed field in the collaboration document, and users of the cloud collaboration environment having permission to collaboratively change the frequently viewed field in the collaboration document from their respective devices; generating an alert based on a first modification notification identifying a change to a first field of the collaboration document, wherein a second user of the cloud collaboration environment modifies the collaboration document and the change satisfies criteria specified in the first subscription for the first user of the cloud collaboration environment; and inserting the alert into an alert feed displaying a plurality of alerts for the first user of the cloud collaborative environment, the alert feed configured in an alert graphical user interface (GUI).

10. the first modification notification includes a subset of fields of the collaboration document including the first field; the alert includes a subset of the fields extracted from the first modification notification; The system of claim 9 , wherein the subset of fields is visible in the alert in the alert feed.

11. The system of claim 10 , wherein the first modification notification further includes a statement accompanying the change, the statement being viewable in the alert within the alert feed.

12. The at least one processor further configured to receive a request for an extended view of the collaboration document from the device; the first modification notification further includes a link to the expanded view of the collaboration document; the alert further includes the link to the expanded view of the collaboration document extracted from the first modification notice; The system of claim 10 , wherein the request for the expanded view is triggered by the first user invoking the link from within the alert GUI.

13. The at least one processor further configured to receive a request to issue a message based on the alert; The system of claim 10 , wherein the request to publish the message is triggered by the first user invoking a share function within the alerts GUI.

14. The at least one processor Determining frequently viewed columns within a plurality of collaborative documents; generating suggested subscriptions for a second field corresponding to the frequently viewed column; The system of claim 9 , wherein the alert GUI includes a subscription component configured to display the suggested subscriptions to the first user.

15. The at least one processor receiving a second modification notification identifying a change to the collaboration document; comparing the changes to the collaboration document with criteria specified in a second subscription for the first user; 10. The system of claim 9, further configured to: in response to the changes to the collaboration document satisfying the criteria specified in the second subscription, generate an additional alert based on the changes to the collaboration document for display in the alert feed comprising the plurality of alerts for the first user.

16. A non-transitory computer readable medium (CRM) having instructions stored thereon, the instructions, when executed by at least one computing device, causing the at least one computing device to: generating a first subscription based on a frequently viewed field accessed by a first user in a collaboration document stored in a cloud collaboration environment, the first subscription specifying criteria for changes to the frequently viewed field in the collaboration document, and users of the cloud collaboration environment having permission to collaboratively change the frequently viewed field in the collaboration document from their respective devices; generating an alert based on a first modification notification identifying a change to a first field of a collaboration document, wherein a second user of the cloud collaboration environment modifies the collaboration document and the change satisfies criteria specified in the first subscription for the first user of the cloud collaboration environment; and inserting the alert into an alert feed configured in an alert graphical user interface (GUI) that displays multiple alerts for the first user of the cloud collaborative environment.

17. the first modification notification includes a subset of fields of the collaboration document including the first field; the alert includes a subset of the fields extracted from the first modification notification; The non-transitory CRM of claim 16 , wherein the subset of fields is visible in the alert within the alert feed.

18. The operation is receiving a request for an extended view of the collaboration document from the device; the first modification notification further includes a link to the expanded view of the collaboration document; the alert further includes the link to the expanded view of the collaboration document extracted from the first modification notice; 20. The non-transient CRM of claim 17, wherein the request for the expanded view is triggered by the first user invoking the link from within the alert GUI.

19. The operation is receiving a request to issue a message based on the alert; 20. The non-transient CRM of claim 17, wherein the request to publish the message is triggered by the first user invoking a share function within the alerts GUI.

20. The operation is Determining frequently viewed columns within a plurality of collaborative documents; generating suggested subscriptions for a second field corresponding to the frequently viewed column; The non-transitory CRM of claim 16 , wherein the alert GUI includes a subscription component configured to display the suggested subscriptions to the first user.

Citation Information

Patent Citations

  • Server having information providing database update notification function and information providing database update notification method

    JP2002297438A

  • Information change reporting program, information change reporting method, and information change reporting system

    JP2008158869A

  • Work support device and program

    JP2018132927A

  • Computer implemented methods and apparatus for controlling the inclusion of edited information in an information feed

    US20130007148A1

  • Information processing device, information processing method, and information processing program

    WO2014050215A1