Retargeting dashboard content as an interactive data snapshot for collaboration platforms

Philo addresses the challenges of sharing outdated dashboard snapshots by transforming and tracking interactive data snapshots on collaboration platforms, ensuring effective communication and engagement with diverse audiences.

JP7849568B2Active Publication Date: 2026-04-21SALESFORCE INC
View PDF 8 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
SALESFORCE INC
Filing Date
2023-08-31
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

Current methods for sharing dashboard snapshots on collaboration platforms are inadequate, as static screenshots become outdated, are device-unsuitable, and difficult to update, while reconstructing dashboards creates extra workload and fails to support meaningful conversations with non-analyst audiences.

Method used

A system and user interface (Philo) for retargeting dashboard content as interactive data snapshots, supporting authoring, configuring, and sharing on collaboration platforms, with features like template-based visualization design transformation, flexible time filtering, annotations, and snapshot status indicators.

Benefits of technology

Enables efficient communication of up-to-date dashboard content to diverse audiences across devices, facilitating data-centric conversations and tracking snapshot engagement.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007849568000001
    Figure 0007849568000001
  • Figure 0007849568000002
    Figure 0007849568000002
  • Figure 0007849568000003
    Figure 0007849568000003
Patent Text Reader

Abstract

The computing device receives a user selection of a first data element from a first data dashboard displayed on the computing device. The user selection designates the first data element as a first snapshot component of a first snapshot. In response to receiving the user selection, the computing device displays a plurality of component properties for the first snapshot component in a first user interface. The computing device receives, via the first user interface, a user designation of first values ​​for at least a first subset of the component properties of the plurality of component properties. In response to receiving the user designation, the computing device updates the first snapshot component according to the first value, generates a first snapshot including the first snapshot component, and displays the first snapshot as a message on a messaging application executed by the electronic device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] [Priority] This application is a continuation of U.S. Patent Application No. 18 / 240,322, filed on August 30, 2023; U.S. Patent Application No. 18 / 240,340, filed on August 30, 2023; and U.S. Patent Application No. 18 / 240,342, filed on August 30, 2023. Each claims priority to U.S. Provisional Patent Application No. 63 / 403,167, filed on September 1, 2022; U.S. Provisional Patent Application No. 63 / 404,518, filed on September 7, 2022; U.S. Provisional Patent Application No. 63 / 407,986, filed on September 19, 2022; and U.S. Provisional Patent Application No. 63 / 409,165, filed on September 22, 2022. The above applications are hereby incorporated by reference in their entirety.

[0002] [Technical Field] The disclosed implementations generally relate to data visualization, and more specifically, to systems, methods, and user interfaces that enable a user to share selections from a data dashboard as an interactive snapshot on a collaboration platform and track the use of snapshots on the collaboration platform.

Background Art

[0003] Across entire organizations, people use data to support conversations and inform decisions. "Data-driven, and data-centric" communication often involves stakeholders in roles other than data scientists or analysts. Data professionals tend to possess relatively strong data analysis skills, and their roles include sharing data artifacts with other team members through various communication channels (e.g., email or cloud storage). Business users, on the other hand, tend to consume data artifacts, ask follow-up questions, initiate discussions, and make decisions. Many business users hold management or communication-based roles, and their engagement with data artifacts tends to be shallow and brief.

[0004] While data dashboards are useful tools for analyzing and displaying data, they often contain large amounts of highly complex information, making them unsuitable for sharing with audiences such as business users.

[0005] In practice, when using data to communicate, especially when people discuss and make decisions based on valid and up-to-date evidence, temporality plays a crucial role. [Overview of the project]

[0006] Many organizations are undergoing a cultural transformation to foster a data-driven approach to communication and decision-making. More recently, this transformation has been accompanied by another shift in workplace culture: a move towards distributed and asynchronous work. Collaboration platforms like Slack® and Teams® are playing an increasingly important role within organizations for communication across groups in multiple time zones and locations. However, in organizations where business intelligence dashboards are used daily, data professionals often need to share dashboard snapshots via collaboration platforms to communicate with audiences such as business users who do not typically occupy the role of data analysts.

[0007] A data snapshot is a form of data report that refers to the state of data at a specific point in time, intended to convey the current state. In some cases, the term “data snapshot” is invoked when referring to large-scale data (e.g., cloud platforms or organizational data centers), and the snapshot may be represented as a set of graphs or spreadsheets. Given that business intelligence dashboards are still commonly used within organizations, the term “dashboard snapshot” as used herein refers to the state of a dashboard at a specific point in time.

[0008] Sharing data artifacts such as dashboard snapshots is a frequent and routine task, often involving some form of back-and-forth communication between the sharer and the audience. Data professionals need to constantly update reports when new data arrives, analytical objectives change, significant anomalies or deviations from the status quo are observed, or feedback is received from business users. In doing so, data professionals need to employ different techniques (e.g., filtering, summarizing, or formatting), which is often achieved by switching between different tools.

[0009] Current strategies for sharing dashboard snapshots on collaboration platforms include taking screenshots, reconstructing the dashboard to reduce complexity, and sending links to the dashboard with some filtering options. However, these techniques do not adequately and effectively support dashboard users in sharing dashboard snapshots. For example, static screenshots are limited because (i) they can become outdated whenever updated data becomes available, (ii) they do not support formatting changes and may not be suitable for the viewer's device or screen context (e.g., mobile, fullscreen, or windowed on a peripheral display), and (iii) once disseminated across collaboration platform channels, they are difficult to track and virtually impossible to update. Reconstructing a dashboard can create an extra workload not only for the dashboard creator but also for those who want to share insights from dashboards they did not create. Simply providing links to dashboards on collaboration platforms is unlikely to lead to meaningful conversations, as many viewers will find it difficult to access or adapt to complex dashboards.

[0010] To provide data professionals with an effective means of communicating dashboard content to their colleagues, improved methods, systems, and user interfaces are needed to facilitate retargeting of dashboard content.

[0011] Visualization retargeting generally refers to transforming graphs to adapt to different contexts, including audience, device size and screen type, and style guides.

[0012] This specification discloses a method, user interface, and system for retargeting dashboard content as interactive data snapshots for a collaboration platform. The disclosed system and user interface (also referred to herein as "Philo") support authoring and configuring dashboard snapshots, as well as sharing and monitoring them on a collaboration platform. Philo also supports template-based visualization design transformation, simple interactivity to support predictable questions, flexible time filtering, annotations and captions, snapshot status indicators, snapshot update management, and monitoring of snapshot telemetry.

[0013] This disclosure includes design guidelines for sharing dashboard snapshots on a collaboration platform, extracted from a joint design workshop. These guidelines outline support for data-centric conversations, flexible authoring, and the post-sharing lifecycle of snapshots.

[0014] This disclosure also presents a formalization of dashboard snapshots, defining components as building blocks and snapshots as configurations of components.

[0015] According to several implementations, a method for retargeting dashboard content as a data snapshot for a collaboration platform is performed on a computing device having a display, one or more processors, and memory for storing one or more programs configured for execution by one or more processors. The method includes receiving a user selection of a first data element from a first data dashboard displayed on the computing device. The user selection designates the first data element as a first snapshot component of the first snapshot. In response to receiving the user selection of the first data element from the first data dashboard, the method includes displaying a plurality of component properties for the first snapshot component on a first user interface. The method includes receiving, via the first user interface, a user specification of a first value for at least a first subset of component properties among the plurality of component properties. In accordance with receiving the user specification of a first value for at least a first subset of component properties, the method includes (i) updating the first snapshot component according to the respective first value, (ii) generating a first snapshot containing the first snapshot component, and (iii) displaying the first snapshot as a message on a messaging application run by an electronic device. Messaging applications are associated with collaboration platforms.

[0016] In some implementations, the first data element is one or more data cells from the first data dashboard, one or more data values ​​from data fields from the first data dashboard, one or more data marks from data visualizations from the first data dashboard, or one or more data visualizations from the first data dashboard.

[0017] In some implementations, the method further includes the step of generating a first component specification corresponding to a first snapshot component, in accordance with receiving a user selection designating a first data element as a first snapshot component. The first component specification includes multiple component properties. The method populates the first component specification with the respective first values ​​according to the user selection of the first values ​​for at least a subset of the properties.

[0018] In some implementations, the method includes receiving user selections of dimension data fields and sort order via a first user interface. The step of generating a first snapshot component includes (1) generating a bar chart having a plurality of data bars, each data bar representing a respective data value of a dimension field and having a length that represents a portion of a first data element corresponding to each data value, and (2) arranging the data bars in sort order according to the respective lengths of the data bars.

[0019] In some implementations, the first snapshot includes a second snapshot component distinct from the first snapshot component. The method further includes the step of receiving a user selection for a second data element after generating the first snapshot component and before generating the second snapshot component, wherein the user selection designates the second data element as the second snapshot component for the first snapshot. The method further includes the step of generating a second component specification corresponding to the second snapshot component in accordance with the receipt of the user selection. The second component specification includes several component properties.

[0020] In some implementations, a method for generating a data snapshot for a collaboration platform is performed on a computer system having one or more processors and memory for storing one or more programs configured for execution by one or more processors. The method includes receiving user specifications for the respective values ​​of several snapshot properties of a first snapshot. The first snapshot includes one or more snapshot components, including first snapshot components extracted from a first data dashboard. The first data dashboard is associated with a first data source. The user specifications include a first date / time on which the data in the first snapshot is valid and a first collaboration platform on which the first snapshot is exported. In response to receiving the user specifications, the method includes (i) generating a first snapshot specification of the first snapshot according to the respective values ​​of several snapshot properties, and (ii) generating the first snapshot according to the first snapshot specification. The method includes displaying the first snapshot as a message on a messaging application on an electronic device. The messaging application is associated with the first collaboration platform.

[0021] In some implementations, the method includes the step of receiving a first request from a first collaboration platform to update a first snapshot. In response to the first request, the method includes the step of determining that the current date / time of the first request exceeds the first date / time for which the data in the first snapshot is valid. In accordance with the determination, the method includes (i) retrieving one or more updated data values ​​for the first snapshot components from a first data source; (ii) generating an updated snapshot having one or more updated data values ​​for the first snapshot components; and (iii) displaying the updated snapshot on an electronic device.

[0022] In some implementations, the step of receiving user-specified values ​​for each of the multiple snapshot properties of the first snapshot includes the step of receiving user-specified first values ​​corresponding to the auto-repeat properties of the first snapshot, where the multiple first values ​​include at least two of the following: the repeat frequency, the repeat expiration date, and the time at which the repetition of the first snapshot appears on the messaging application.

[0023] In some implementations, the method includes, following a computer system determination that a plurality of first values ​​corresponding to an automatic repeating property are satisfied, (i) retrieving the current data values ​​for one or more snapshot components from one or more data sources corresponding to one or more snapshot components of the first snapshot; (ii) generating a first repeating version of the first snapshot; and (iii) displaying the first repeating version of the first snapshot on a messaging application of an electronic device.

[0024] According to several implementations, the method for interacting with data snapshots is performed on a computing device that includes a display, one or more processors, and memory for storing one or more programs configured for execution by one or more processors. The method includes the step of (i) displaying a user interface that includes multiple panes corresponding to multiple snapshots authored by a user of the computing device and displayed on a messaging application of a collaboration platform. Each pane of the multiple panes includes the respective view of the respective snapshot. The multiple snapshots include a first snapshot having one or more snapshot components. Each snapshot component is generated from the respective data element of the respective data dashboard. The method includes the step of displaying information about the first snapshot in an information panel adjacent to the first snapshot, the information including (i) metadata from one or more underlying dashboards corresponding to one or more snapshot components of the first snapshot, and (ii) identification information for the first channel of the collaboration platform to which the first snapshot is published. The method, in response to detecting a first user selection of a notification displayed in the user interface indicating that the first snapshot has expired, includes the steps of (i) sending one or more identifiers of one or more underlying dashboards to a computer system communicably connected to the computing device, and (ii) receiving updated data for one or more snapshot components of the first snapshot from the computing system. The method also includes generating an updated view of the first snapshot according to the received updated data, and displaying the updated view of the first snapshot in the user interface.

[0025] In some implementations, the first snapshot is generated based on a user-specified first date / time when the first snapshot component of the first snapshot expires. A notification is displayed on the user interface in response to a determination that the first date / time is expired.

[0026] According to some implementations, a computing device includes a display, one or more processors, and a memory coupled to the one or more processors. The memory stores one or more programs configured for execution by the one or more processors. The one or more programs include instructions for performing any of the methods disclosed herein.

[0027] According to some implementations, a computer system includes one or more processors and a memory coupled to the one or more processors. The memory stores one or more programs configured for execution by the one or more processors. The one or more programs include instructions for performing any of the methods disclosed herein.

[0028] According to some implementations, a non-transitory computer-readable storage medium stores one or more programs configured for execution by a computer system having one or more processors and a memory. The one or more programs include instructions for performing any of the methods disclosed herein.

[0029] According to some implementations, a non-transitory computer-readable storage medium stores one or more programs configured for execution by a computing device having a display, one or more processors, and a memory. The one or more programs include instructions for performing any of the methods disclosed herein.

[0030] Accordingly, a method, system, and graphical user interface are disclosed that enable users to efficiently retarget dashboard content as an interactive data snapshot for a collaboration platform.

[0031] It should be noted that the various implementations described above can be combined with any other implementations described herein. The features and advantages described herein are not exhaustive, and many additional features and advantages will be apparent to those skilled in the art, in particular, given the drawings, specification and claims. Furthermore, it should be noted that the language used herein has been selected primarily for readability and teaching purposes and may not be selected to delineate or limit the subject matter of the invention. [Brief explanation of the drawing]

[0032] To better understand the aforementioned systems, methods, and graphical user interfaces, as well as additional systems, methods, and graphical user interfaces that provide data visualization analysis, please refer to the following embodiments for carrying out the invention, in conjunction with the following drawings, where similar reference numbers indicate corresponding parts throughout the figures. [Figure 1A] This document presents exemplary pipelines for retargeting data dashboard content as a data snapshot for users on a collaboration platform, using several implementation methods. [Figure 1B] Several implementation configurations and exemplary operating environments are shown. [Figure 2A] This document provides block diagrams of computing devices in several implementation forms. [Figure 2B] This document provides block diagrams of computing devices in several implementation forms. [Figure 3A] This document provides block diagrams of data visualization servers in several implementation forms. [Figure 3B]This document provides block diagrams of data visualization servers in several implementation forms. [Figure 4] This is a block diagram of electronic devices in several implementation forms. [Figure 5] This block shows a collaboration platform server in several implementation forms. [Figure 6A] This document presents several implementations of the component creator user interface. [Figure 6B] This document presents several implementations of the component creator user interface. [Figure 6C] This document presents several implementations of the component creator user interface. [Figure 6D] This document presents the component creator user interface in several implementation forms. [Figure 7A] This section shows dashboard user interfaces in several implementation forms. [Figure 7B] This section shows dashboard user interfaces in several implementation forms. [Figure 7C] This section shows dashboard user interfaces in several implementation forms. [Figure 8] This document shows the snapshot creator user interface in several implementation forms. [Figure 9A] This section presents several example curation methods based on different implementations. [Figure 9B] This section presents several example curation methods based on different implementations. [Figure 9C] This section presents several example curation methods based on different implementations. [Figure 9D] This section presents several example curation methods based on different implementations. [Figure 10] This document shows the snapshot home user interface in several implementation forms. [Figure 11A]This provides a collective format for dashboard snapshots using several implementation methods. [Figure 11B] This provides a collective format for dashboard snapshots using several implementation methods. [Figure 11C] This provides a collective format for dashboard snapshots using several implementation methods. [Figure 12A] This provides a collective formalization of snapshot components in several implementation forms. [Figure 12B] This provides a collective formalization of snapshot components in several implementation forms. [Figure 12C] This provides a collective formalization of snapshot components in several implementation forms. [Figure 12D] This provides a collective formalization of snapshot components in several implementation forms. [Figure 13A] This provides a collective framework for formalizing templates using several implementation methods. [Figure 13B] This provides a collective framework for formalizing templates using several implementation methods. [Figure 14A] This provides a formalization of template specifications through several implementation forms. [Figure 14B] This document presents exemplary template design definitions and template specifications for the "Goal" template, based on several implementation configurations. [Figure 15A] This document provides example template designs for several implementation configurations. [Figure 15B] This document provides example template designs for several implementation configurations. [Figure 15B-1] This document provides example template designs for several implementation configurations. [Figure 15C] This document provides example template designs for several implementation configurations. [Figure 15C-1] This document provides example template designs for several implementation configurations. [Figure 15D] This document provides example template designs for several implementation configurations. [Figure 15D-1] This document provides example template designs for several implementation configurations. [Figure 15E] This document provides example template designs for several implementation configurations. [Figure 15E-1] This document provides example template designs for several implementation configurations. [Figure 15F] This document provides example template designs for several implementation configurations. [Figure 15F-1] This document provides example template designs for several implementation configurations. [Figure 15G] This document provides example template designs for several implementation configurations. [Figure 15G-1] This document provides example template designs for several implementation configurations. [Figure 15H] This document provides example template designs for several implementation configurations. [Figure 15H-1] This document provides example template designs for several implementation configurations. [Figure 15I] This document provides example template designs for several implementation configurations. [Figure 15I-1] This document provides example template designs for several implementation configurations. [Figure 15J] This document provides example template designs for several implementation configurations. [Figure 15J-1] This document provides example template designs for several implementation configurations. [Figure 15K] This document provides example template designs for several implementation configurations. [Figure 16] This document illustrates the relationships between snapshots, components, templates, template specifications, and dashboard selection across several implementation forms. [Figure 17A]This document collectively presents various usage scenarios for Philo across different implementations. [Figure 17B] This document collectively presents various usage scenarios for Philo across different implementations. [Figure 17C] This document collectively presents various usage scenarios for Philo across different implementations. [Figure 17D] This document collectively presents various usage scenarios for Philo across different implementations. [Figure 17D-1] This document collectively presents various usage scenarios for Philo across different implementations. [Figure 17E] This document collectively presents various usage scenarios for Philo across different implementations. [Figure 17F] This document collectively presents various usage scenarios for Philo across different implementations. [Figure 17G] This document collectively presents various usage scenarios for Philo across different implementations. [Figure 17H] This document collectively presents various usage scenarios for Philo across different implementations. [Figure 18A] This document provides flowcharts for retargeting dashboard content as a data snapshot for collaboration platforms, using several implementation methods. [Figure 18B] This document provides flowcharts for retargeting dashboard content as a data snapshot for collaboration platforms, using several implementation methods. [Figure 18C] This document provides flowcharts for retargeting dashboard content as a data snapshot for collaboration platforms, using several implementation methods. [Figure 18D] This document provides flowcharts for retargeting dashboard content as a data snapshot for collaboration platforms, using several implementation methods. [Figure 18E]This document provides flowcharts for retargeting dashboard content as a data snapshot for collaboration platforms, using several implementation methods. [Figure 18F] This document provides flowcharts for retargeting dashboard content as a data snapshot for collaboration platforms, using several implementation methods. [Figure 18G] This document provides flowcharts for retargeting dashboard content as a data snapshot for collaboration platforms, using several implementation methods. [Figure 18H] This document provides flowcharts for retargeting dashboard content as a data snapshot for collaboration platforms, using several implementation methods. [Figure 18I] This document provides flowcharts for retargeting dashboard content as a data snapshot for collaboration platforms, using several implementation methods. [Figure 19A] This document provides flowcharts for generating data snapshots for collaboration platforms using several implementation methods. [Figure 19B] This document provides flowcharts for generating data snapshots for collaboration platforms using several implementation methods. [Figure 19C] This document provides flowcharts for generating data snapshots for collaboration platforms using several implementation methods. [Figure 19D] This document provides flowcharts for generating data snapshots for collaboration platforms using several implementation methods. [Figure 19E] This document provides flowcharts for generating data snapshots for collaboration platforms using several implementation methods. [Figure 20A] This document provides flowcharts illustrating several implementation methods for performing data snapshots and interactions. [Figure 20B] This document provides flowcharts illustrating several implementation methods for performing data snapshots and interactions. [Figure 20C] This document provides flowcharts illustrating several implementation methods for performing data snapshots and interactions. [Figure 20D] This document provides flowcharts illustrating several implementation methods for performing data snapshots and interactions.

[0033] Refer to the implementation configurations illustrated in the attached drawings. The following description includes numerous specific details to provide a complete understanding of the invention. However, it will be apparent to those skilled in the art that the invention can be implemented without requiring these specific details. [Modes for carrying out the invention]

[0034] In corporate organizations, data-driven decision-making processes are currently divided between data dashboards (e.g., business intelligence dashboards) and communication platforms such as Slack® and Teams®. However, apart from those in data analyst roles, engagement with dashboard content is shallow due to insufficient context, poor choice of language, or lack of access and guidance. I. Communication with the dashboard

[0035] Dashboard Use CasesDashboards are a common medium for monitoring and communicating aspects of data, especially for data professionals with limited programming expertise. Dashboards range from static dashboards, magazine-style dashboards, and infographic dashboards to analytical dashboards, embedded dashboards, and repository dashboards. Data professionals tend to use analytical dashboards, which are often enabled by business intelligence tools (e.g., Tableau), and which often contain a relatively large number of interactive elements. To answer specific questions, selections must be made and parameters or filters adjusted.

[0036] Dashboard content retargeting case study Content from an analytics dashboard requires modification, or retargeting, before it can be shared on a collaboration platform. As used herein, retargeting involves transforming a visualization artifact originally designed for one context to fit a different context. This shift in context may result from different audiences and communication objectives, such as communicating content originally intended for researchers to a general audience. This shift may also result from different device sizes or capabilities, meaning that the term “retargeting” as used herein also encompasses responsive visualization design. Additionally, retargeting may also include imposing different design guidelines, such as mandating a new style guide or applying style migrations. Modifying dashboard content for sharing with reports and business users often involves changing the size and layout of the content, structuring elements in a consistent narrative, and adding annotations to provide context.

[0037] Business intelligence dashboards are often designed to be consumed as full-screen applications, so when retargeting dashboard content for collaboration platforms, especially when people interact with these platforms via mobile or peripheral desktop applications, lessons learned from previous research can be applied to responsive visualization design. For example, there may be trade-offs in dashboard design, resulting in reduced screen real estate and requiring simpler, more abstract representations, as well as additional affordances to reveal interactivity and hidden information. These findings are consistent with previous research on responsive visualization design. While some commercial business intelligence tools offer mobile app emulators, simulating how dashboard content might appear in embedded contexts, such as within collaboration platforms, remains challenging.

[0038] Sharing dashboard snapshots also implies the transmission of intent and context, while responsive design techniques typically assume continuity of intent and context across devices, particularly in the field of data journalism. This continuity cannot be assumed in enterprise environments where intent and context may differ from audience to audience. Furthermore, enterprise communication requires breaking down, narrating, and interpreting data content. When curating content for dashboard snapshots, data professionals should consider that typical business user audiences tend to be more passive towards such material. However, this passivity should not be interpreted as a reason to generate static content. While audiences may not directly interact with the content, they may discuss it and pass it on to secondary audiences, so it is crucial to keep the content constantly updated and monitor its visibility across the organization.

[0039] Authoring tool for communication-oriented data artifacts In both research and practice, previous studies have provided several alternative methods for authoring various forms of deliverables for communicating using data. Regardless of dashboard involvement, a common aspect of traditional methods is the lack of consideration for how these deliverables will be distributed after publication. Such considerations are crucial when authoring communication-oriented data deliverables, such as dashboard snapshots.

[0040] The disclosed systems, methods, and user interfaces extend the scope of retargeting to the positioning of content in communications by considering the post-sharing lifecycle of dashboard snapshots on the collaboration platform. II. Design Guidelines

[0041] As stated above, Philo refers to the disclosed system and user interface that supports creating dashboard snapshots and sharing them on a collaboration platform, as disclosed herein.

[0042] As disclosed, the inventors have identified three main design guidelines (DGs) for snapshot generation systems and interfaces (e.g., Philo), each having several essential requirements. These guidelines were developed based on collaborative design workshop sessions conducted by the inventors with several participants. Details of the workshop sessions are described in the priority documents, U.S. Provisional Patent Application No. 63 / 404,518 filed September 7, 2022, and U.S. Provisional Patent Application No. 63 / 407,986 filed September 19, 2022, which are incorporated herein by reference in their entirety. U.S. Provisional Patent Application No. 63 / 409,165, which is incorporated herein by reference in its entirety, describes the initial Jamboard setup and prototype assets used during the workshop sessions.

[0043] DG1: Support for designing data-centric conversations This includes using messages or takeaway statements for snapshots to support conversations with business user audiences. In addition to allowing creators to make selections from the dashboard, snapshot creation tools should also provide affordances to creators to (i) highlight where the audience should look first, (ii) describe data-driven calls to action, and / or (iii) encourage audience interaction to support simple question-answering. In short, dashboard snapshots must be part of the conversation about the data. They must communicate insights and calls to action, not just convey graphs.

[0044] DG1a: Adding context and framing In some cases, takeaway statements and snapshot content may be framed as status reports (e.g., "We have

[0500] people in [New York]") and as calls to action. For example, a snapshot might include an informal qualitative interpretation of the status report, such as "Our [server health] is getting hit in the environment [us-west]," along with a heatmap showing different server health values ​​in the environment over time (e.g., throughput and latency). An example of a call to action is: "Please enter your activities on time so leadership understands the impact that we are having," with a table attached showing different activity measures for each team member, highlighting members whose values ​​are missing.

[0045] DG1b: Specifying the time range To avoid misleading the audience, a temporal reference frame can be used to restrict which data is shared. For example, a snapshot created in mid-June 2022 might exclude data points from June 2022 to avoid giving the false impression that the values ​​are lower than typical monthly values. Another example is that weekend data values ​​tend to be lower than typical weekday values, so data points might be limited to Monday through Friday only to ensure that only representative values ​​are shared.

[0046] DG1c: Guide the viewer's attentionVisual emphasis, such as highlighting or using different fonts or colors, can be used to indicate important data points, specify a viewing order, or aid interpretation. For example, arrows can be drawn from one component to another to specify a viewing order. Confidence intervals can be added to the normal range of a measure to “raise eyebrows” large deviations. Footnotes can be included to refer to missing data points. In some cases, macro-based or shortcut-based interactions can be used to guide the viewer to specific observations. For example, a snapshot creator can add a “See what [author] saw” button on the snapshot to reveal a view of the dashboard with a specific combination of filter settings.

[0047] DG1d: Supports predictable questions with limited interactivity. In some cases, interactions can be curated to allow the audience to see more details and prompt further action. For example, a snapshot of "scores broken down by business unit" could include a dropdown filter for selecting different business units. In some cases, a breakdown option for selecting business categories could be added, and the snapshot could also include follow-up questions for the audience.

[0048] DG1e: Controls who sees what.Since data is often a sensitive asset in a business context, data governance rules and processes may apply to resharing dashboard content as snapshots. Governance over dashboards is often achieved through permission settings (e.g., who can read, write, and delete). For example, a snapshot creator may not be able to share a dashboard screenshot on a particular collaboration platform channel if people within that channel do not have the same permission level. Therefore, dashboard snapshots should go beyond static screenshots and include live visualization content that can enforce existing data governance policies.

[0049] DG2: Flexible authoring support In some cases, snapshot creators may not necessarily want their content to be displayed in the same form as it is in the source dashboard. Therefore, snapshot tools should support this transformation of content appearance in a flexible way. This could include supplementing information with additional values ​​to best support the intended message, and filtering or disaggregating existing values. However, if the system makes such editing difficult by requiring manual specification of content, it may place an additional burden on creators, as they may not have the time and / or skills to access and modify the content in a particular way.

[0050] DG2a: Selecting Dashboard Content at Various Levels of SpecificityIn some cases, the snapshot creator may want to allow users to select specific parts of a dashboard to share a focused message. For example, widgets irrelevant to the message in a snapshot may confuse someone who has rarely or never visited the dashboard. The snapshot creator should be provided with an option to exclude such widgets. Some snapshots may reference content from several different dashboards. For example, the snapshot creator may add total sales from one dashboard and then add a time-based breakdown informed by another dashboard to provide further context. Given these varying levels of specificity, the term “dashboard selection” as used herein refers to the dashboard content that the snapshot creator selects to include in a dashboard snapshot. In some cases, the dashboard selection is a single number. In some cases, the dashboard selection can be a set of charts from one or more dashboards.

[0051] DG2b: Conversion of data representation methods Some snapshot messages benefit from a transformation in how dashboard content is presented. In some cases, the snapshot creator may want to adjust the granularity of the data to simplify the content or provide additional context to business users. For example, since business users are unlikely to visit the dashboard and apply category filters themselves, the creator may want to include a breakdown by category to help them understand what the creator is talking about. Another creator may want to disaggregate fields into a ranked list of top or bottom performers (e.g., employees or products) to make it "more specific." Still others may want to add information that is not present in the original dashboard. For example, to show progress toward a team's goals, the snapshot creator may add values ​​that are not present on the data dashboard.

[0052] DG2c: Selective propagation of design selection from the dashboard While some dashboard content is best communicated when its representation is translated, in other cases, it is equally important to maintain aspects of the dashboard design. For example, a custom color legend can be included for an audience that "may not be familiar with this scale." Color legends / scales may be specifically chosen for other reasons, such as "there is a person with color blindness on the team, and the colors have been chosen so that they have different [meanings] and cannot be changed."

[0053] DG2d: Enabling Multi-Component Snapshots Snapshot creators may want to design multi-component snapshots, including choosing how to present multiple components. This could include arranging components in a vertical stack or as an interactive carousel of components, using animation to show changes over time in a layout that mirrors the original dashboard. In some cases, the snapshot creator might decide whether to use animation after evaluating the viewer's impression.

[0054] DG3: Snapshot lifecycle support After sharing a snapshot, the creator needs to track and monitor engagement with their snapshot to adjust the scope and design of future snapshots and assess how their snapshot circulates within the organization. Furthermore, as dashboard snapshots become outdated over time, the creator needs to manage the older snapshots and retrieve updated versions.

[0055] DG3a: Browsing past snapshotsDashboard snapshots on collaboration platform channels become outdated over time because the data source can be updated at any time. A dedicated channel or tab can be used to browse past dashboard snapshots from different collaboration platform channels. For example, past and current snapshots can be displayed side-by-side. This display shows the baseline dashboard snapshot on one side and all other dashboard snapshots on the other. Preferably, the snapshot creator should not apply changes to past snapshots, for example, because making changes to past snapshots could make it difficult to understand their history. Visual indicators, such as grayscale indicators or visual de-emphasis, can be applied to past snapshots to show that the data in past snapshots is old or expired without restricting people from looking back at the past data.

[0056] DG3b: Tracking Snapshot Telemetry Types of snapshot telemetry that may be useful to snapshot creators include (unique) view counts, viewer names, up / down votes, interaction logs, and comments. In some cases, snapshot creators may be interested in knowing the spread of snapshots across their organization. For example, if audience viewers make decisions based on information provided by the creator, telemetry information can be useful to the snapshot creator. The ability to track telemetry information allows creators to tailor content based on its level of popularity. In some cases, a distinction can be made between active and passive telemetry. Active telemetry refers to logs of specific actions that the creator wants viewers to achieve, while passive telemetry refers to all kinds of logs that the system automatically records. A "homepage" summarizing engagement with shared snapshots may be a suitable means of viewing telemetry information.

[0057] DG3c: Automating Snapshot Updates Some dashboard snapshots are intended to be shared repeatedly as status reports. Once initially specified, options should be provided so that these snapshots can be automatically reshared. For example, automated readouts of key values ​​(e.g., top 10 customers) could be provided to the audience periodically. In some cases, dashboard snapshots can be combined with automated alerting systems that send messages when certain predetermined conditions are met (e.g., when server health falls below a certain threshold). II. Philo

[0058] Philo is a system that supports retargeting dashboard content as interactive snapshots (e.g., data snapshots) for sharing on a collaboration platform. These snapshots are intended for a business user audience, also known as “viewers.” In this disclosure, the dashboard user who creates the snapshot is also referred to as the “creator” or “snapshot creator.” According to several implementations, Philo is built using Express, Svelte, DynamoDB (NoSQL), d3.js, Vega, Vega-Lite, and Arquero.

[0059] Figure 1A shows an exemplary pipeline 100 for retargeting data dashboard content as a data snapshot (e.g., a snapshot or dashboard snapshot) for users on a collaboration platform, in several implementation forms. A snapshot creator selects dashboard content (e.g., data elements) from a data dashboard 258 (e.g., displayed in a dashboard user interface 232) (102) and uses a component creator user interface 244 to create a snapshot component based on this selection (104). The dashboard creator can repeat the component creation process (106) by selecting other dashboard content from either the same data dashboard or a different data dashboard to create one or more other snapshot components to be included in the (same) data snapshot. In some implementation forms, after creating multiple snapshot components, the creator consolidates the snapshot components into a single snapshot via the snapshot creator user interface 248 (108) and exports it to a collaboration platform channel (e.g., a messaging application 270). In some cases, a snapshot contains two or more snapshot components. In some cases, a snapshot consists of a single snapshot component. Within the channel, viewers can react to and comment on snapshots (110). Creators can also view dashboard snapshots and associated telemetry information (e.g., views, comments) via the "My Snapshot Home" user interface 274 (112). A. Exemplary operating environment

[0060] Figure 1B shows an exemplary operating environment 130 in several implementation forms. The operating environment 130 includes one or more computing devices 200, such as a first computing device 200-1, a second computing device 200-2, and a third computing device 200-3. In some implementation forms, each of the computing devices 200 is associated with the respective creator of the data snapshot. The computing devices include and can run one or more applications, including a data visualization application 230, a content retargeting application 240, and a messaging application 270.

[0061] In some implementations, the data visualization application 230, the content retargeting application 240, and the messaging application 270 are three separate applications. This is shown with respect to the first computing device 200-1.

[0062] In some implementations, the content retargeting application 240 (and its associated capabilities) is part of the data visualization application 230, while the messaging application 270 is separate from the data visualization application 230. This is illustrated with respect to the second computing device 200-2.

[0063] In some implementations, the content retargeting application 240 (and its associated capabilities) is part of the messaging application 270, while the data visualization application 230 is separate from the messaging application 270. This is illustrated with respect to the third computing device 200-3.

[0064] The operating environment 130 includes an electronic device 400 associated with the audience (e.g., a viewer) of the data snapshot. The electronic device 400 includes a messaging application 270.

[0065] In some implementations, the data visualization application 230 is connected to the data visualization server 300 via the communication network 132. The messaging application 270 is connected to the collaboration platform server 500 (e.g., a messaging server) via the communication network 132.

[0066] Depending on whether it exists as a standalone application (Scenario A), is part of a data visualization application 230 (Scenario B), or is part of a messaging application 270 (Scenario C), the content retargeting application 240 may be connected via the communication network 132 to communicate with (A) a content retargeting server 380, (B) a data visualization server 300, or (C) a collaboration platform server 500. B. Block Diagram

[0067] Figures 2A and 2B provide block diagrams of the computing device 200 in several implementation forms. In some implementation forms, the computing device 200 is associated with a snapshot creator. The computing device 200 can run a data visualization application 230 or a data visualization web application to display a dashboard(s) 258. In some implementation forms, the computing device 200 can run a content retargeting application 240 or a content retargeting web application to generate a snapshot component(s) 252 and a data snapshot(s) 256 for a collaboration platform. In some implementation forms, the computing device 200 can run a messaging application 270 that includes a user interface (e.g., snapshot home UI 274) for viewing dashboard snapshots and associated telemetry information created by the snapshot creator.

[0068] The computing device 200 may be a desktop computer, laptop computer, tablet computer, or other computing device having a display and a processor capable of running a data visualization application 230, a content retargeting application 240, and / or a messaging application 270. The data visualization application 230 may include not only a data source generator for database organization (e.g., for generating an object model for a database), but also generating a new data source using an existing database.

[0069] The computing device 200 typically includes one or more processing units / cores (CPUs) 202 for executing modules, programs, and / or instructions stored in memory 206 and thereby performing processing operations, one or more network or other communication interfaces 204, memory 206, and one or more communication buses 208 for interconnecting these components. The communication buses 208 may include circuits for interconnecting and controlling communication between system components.

[0070] In some implementations, the computing device 200 includes a user interface 210 comprising a display 212 and one or more input devices or mechanisms 214. In some implementations, the input devices / mechanisms include a keyboard. In some implementations, the input devices / mechanisms include a “soft” keyboard that is optionally displayed on the display 212, allowing the user to “press keys” displayed on the display 212. In some implementations, the display 212 and the input devices / mechanisms 214 comprise a touchscreen display (also called a touch-sensitive display). In some implementations, the display is an integrated part of the computing device 200. In some implementations, the display is a separate display device. In some implementations, an audio input device 216 (e.g., a microphone) and / or an audio output device 218 (e.g., a speaker) are included.

[0071] In some implementations, memory 206 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices. In some implementations, memory 206 includes non-volatile memory such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. In some implementations, memory 206 includes one or more storage devices located remotely from the CPU 202. Memory 206, or alternatively, the non-volatile memory devices within memory 206, comprises a non-temporary computer-readable storage medium. In some implementations, memory 206, or the computer-readable storage medium of memory 206, stores the following programs, modules, and data structures, or subsets thereof: • An operating system that handles various basic system services and includes procedures for performing hardware-dependent tasks.222 • One or more communication network interfaces 204 (wired or wireless), and a communication module 224 used to connect the computing device 200 to other computers and devices via one or more communication networks such as the Internet, other wide area networks, local area networks, and metropolitan area networks; • A web browser (or other client application) that allows a user to communicate with a remote computer or device over a network; • An audio input module 228 (e.g., a microphone module) for processing audio captured by the audio input device 216. The captured audio can be sent to a remote server and / or processed by an application running on the computing device 200 (e.g., by a data visualization application 230, a content retargeting application 240, or a messaging application 270); A data visualization application 230 provides a dashboard user interface 232 (e.g., a graphical user interface) and a dashboard generator 234 for users to perform data analysis, including building databases, object models, and visual graphics (e.g., individual data visualizations or dashboards with one or more related data visualizations). In some implementations, the data visualization application 230 runs as a standalone application (e.g., a desktop application). In some implementations, the data visualization application 230 runs within a web browser 220 (e.g., as a web application). The data visualization application 230 includes: - A dashboard user interface 232 that allows users to access or build object models and data sources, and provides a graphical view for building data dashboards (e.g., data visualizations) by visually specifying elements, and - Dashboard generator 234 for generating data visualizations and / or data dashboards; • A content retargeting application 240 (e.g., Philo) for retargeting dashboard content as an interactive snapshot for the collaboration platform (e.g., messaging application 270 and collaboration platform server 500). The content retargeting application 240 includes: - A component generator 242 enables a user (e.g., a snapshot creator) to create snapshot components from selected data elements of a data dashboard via a component creator user interface 244. In some implementations, the snapshot creator can specify the respective values ​​for each component property, such as measures, filters, timeframes, breakdowns, and optional parameters, via the component creator user interface 244. In some implementations, the creator can modify the respective values ​​as needed (e.g., via the component creator user interface 244 or the data visualization server 300) without modifying the source dashboard; and - A snapshot generator 246 enables the snapshot creator to configure the snapshot via the snapshot creator user interface 270 (for example, by integrating one or more snapshot components). In addition to enabling multi-component snapshots, the snapshot generator 246 uses the snapshot generator user interface 248 to accommodate selections across multiple dashboards; A messaging application 270 for communicating with other users via direct messaging, file sharing, snapshot sharing, live streaming, and / or participation in chat rooms (e.g., channels) organized by topics and / or groups. In some implementations, the messaging application 270 runs as a standalone application (e.g., as an application designed to run on computing device 200 or other mobile devices). In some implementations, the messaging application 270 runs within a web browser 226 or another application using web pages provided by a web server. In some implementations, the messaging application 270 includes a messaging user interface 272. In some implementations, the messaging application 270 includes a snapshot home user interface 274 that allows the user to view dashboard snapshots authored by the user and telemetry information associated with the dashboard snapshots; API 280 for receiving API calls from one or more applications (e.g., a web browser 222, a data visualization application 230, a content retargeting application 240, and / or a messaging application 270), translating the API calls into appropriate actions, and performing one or more actions; A component specification 250 (or snapshot component specification) for snapshot component 252, including a first component specification 250-1 corresponding to the first snapshot component 252-1 and a second component specification 250-2 corresponding to the second snapshot component 252-2. The component specification 250 is used to define the characteristics of the desired snapshot component. In some implementations, information provided by the computing device 200 or electronic device 400 (e.g., via user input) is stored as a component specification; • Snapshot component 252, including a first snapshot component 252-1 and a second snapshot component 252-2. In some implementations, the snapshot component 252 is generated and stored in the memory of the computing device 200. In some implementations, the snapshot component 252 is generated on the fly by the computing device 200 according to the component specification 250. In some implementations, the computing device 200 creates placeholders for the snapshot component (e.g., based on the coordinates of data elements in a data dashboard selected by the user), creates a component specification corresponding to the snapshot component, and populates the component specification with values ​​for each property according to the data provided by the computing device 200 or electronic device 400 (e.g., via user input); Snapshot specification 254 (or data snapshot specification) for data snapshot 256 (or simply “Snapshot”), including first snapshot specification 254-1 corresponding to first data snapshot 256-1 and second snapshot specification 254-6 corresponding to second data snapshot 256-2; • A data snapshot 256 including a first data snapshot 256-1 and a second data snapshot 256-2. In some implementations, the data snapshot 256 is generated and stored in the memory of the computing device 200. In some implementations, the data snapshot 256 is generated on the fly by the computing device 200 in accordance with the snapshot specification 254; A data dashboard 258 comprising a first data dashboard 258-1 having one or more dashboard elements 260-1, and a second data dashboard 258-2 having one or more dashboard elements 260-2; • Template 262 (or template design). Philo allows authors to apply design transformations to snapshot components via templates. Collectively, template 262 corresponds to a set of communicative intents (e.g., decomposition of values ​​by categorical data fields or discretized bins, derivation of comparisons between values ​​and goals, support for calls to action, or communication of trends referencing thresholds). The template inherits several properties, such as worksheet properties that hold scale mappings of data and measures from components as well as dashboard selections, thereby allowing authors to selectively save several dashboard design options after applying template-based transformations to the content; • Template specification 264; and • One or more databases / data sources 266, including a first data source 266-1 and a second data source 266-2. In some implementations, the data sources are stored as spreadsheet files, CSV files, XML files, flat files, or JSON files, or in relational databases. For example, a user selects one or more databases or data sources 266 (which may be stored on the computing device 200 or remotely), selects data fields from the data sources 266, and uses the selected fields to define a visual graphic.

[0072] Each of the sets of executable modules, applications, or procedures identified above may be stored in one or more of the aforementioned memory devices and correspond to a set of instructions for performing the functions described above. The modules or programs (i.e., sets of instructions) identified above do not need to be implemented as separate software programs, procedures, or modules; therefore, various subsets of these modules may be combined or otherwise reconfigured in various implementations. In some implementations, memory 206 stores a subset of the modules and data structures identified above. In some implementations, memory 206 stores additional modules or data structures not described above. For example, in some implementations, computing device 200 includes a natural language processing interface that receives and parses queries, including natural language input capabilities. In some implementations, some of the modules or applications shown in Figure 2 may be implemented on other devices and / or systems, such as a data visualization server 300, an electronic device 400, or a collaboration platform server 500.

[0073] Figure 2 shows a computing device 200, but it is intended to provide a functional description of various possible features rather than a structural overview of the implementation described herein. In practice, as will be recognized by those skilled in the art, the items shown separately may be combined, and some items may be separated.

[0074] Figures 3A and 3B show block diagrams of a data visualization server 300 in several implementation configurations. The server system 300 may host one or more databases 360 or provide various executable applications or modules. Typically, the data visualization server 300 includes one or more processing units / cores (CPUs) 302, one or more network interfaces 304, memory 314, and one or more communication buses 312 for interconnecting these components. In some implementation configurations, the server 300 includes a user interface 306, which includes a display 308 and one or more input devices 310, such as a keyboard and mouse. In some implementation configurations, the communication bus 312 includes circuitry (sometimes called a chipset) that interconnects and controls communication between system components.

[0075] In some implementations, memory 314 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices. In some implementations, memory includes non-volatile memory such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. In some implementations, memory 314 includes one or more storage devices located remotely from the CPU(s) 302. Memory 314, or alternatively, non-volatile memory devices within memory 314, comprises a non-temporary computer-readable storage medium.

[0076] In some implementations, memory 314, or the computer-readable storage medium of memory 314, stores the following programs, modules, and data structures, or subsets thereof: • Operating systems that handle various basic system services and include procedures for performing hardware-dependent tasks; 316 • One or more communication network interfaces 304 (wired or wireless), and a network communication module 318 used to connect the server 300 to other computers via one or more communication networks such as the Internet, other wide area networks, local area networks, metropolitan area networks, etc. A web server (such as an HTTP server) that receives web requests from users and responds by providing responsive web pages or other resources. A data visualization web application 330 can be downloaded and executed by a web browser 220 on the user's computing device 200. Generally, the data visualization web application 330 has the same functionality as the desktop data visualization application 230, but offers the flexibility of access from any device in any location with network connectivity and requires no installation or maintenance. In some implementations, the data visualization web application 330 includes various software modules for performing specific tasks. In some implementations, the data visualization web application 330 includes a dashboard user interface module 332 that provides a user interface to all aspects of the data visualization web application 330. In some implementations, the data visualization web application 330 includes a dashboard generator module 340 for data analysis, such as building databases, building object models, and building visual graphics (e.g., individual data visualizations, or dashboards, each having one or more related data visualizations); A data retrieval module 336 constructs and executes queries to retrieve data from one or more databases 360. The databases 360 are stored locally on the server 300 or in an external database system. For example, the data retrieval module 336 may retrieve a database 360 ​​that stores one or more data sources 266, using data tables and data fields from the data sources 266 to construct a data visualization or a data dashboard having one or more data visualizations; 340 content retargeting web applications, including the following: - A component generator module 342 receives and processes a selection of data elements from a dashboard (provided by a computer system or computer device 200) and generates a snapshot component for each. In some implementations, the component generator module 342 includes a component generator user interface module 344 that provides a user interface to all aspects of the content retargeting web application 340 associated with the generation of the snapshot component; - Snapshot generator module 346 that generates data snapshots by integrating one or more snapshot components from one or more separate data dashboards; API 350 for receiving API calls, translating API calls into appropriate actions, and performing one or more actions; One or more databases 260 that store data used or created by the data visualization web application 330, data visualization application 230, content retargeting web application 340, content retargeting application 240, or messaging application 270, including: - Component specification 250; - Snapshot component 252; - Snapshot specification 254; - Data snapshot 256; - Data dashboard 258 and data dashboard element 260; - Template 262; Template specification 264; - Data source 266; and - User preference 362.

[0077] Each of the sets of executable modules, applications, or procedures identified above may be stored in one or more of the aforementioned memory devices and correspond to a set of instructions for performing the functions described above. The modules or programs (i.e., sets of instructions) identified above do not need to be implemented as separate software programs, procedures, or modules; therefore, various subsets of these modules can be combined or otherwise reconfigured in various implementations. In some implementations, memory 314 stores a subset of the modules and data structures identified above. In some implementations, memory 314 stores additional modules or data structures not described above.

[0078] Figure 3 shows a server system 300, but it is intended to provide a functional description of various possible features rather than a structural schematic of the implementations described herein. In practice, as will be recognized by those skilled in the art, items shown separately may be combined, and some items may be separated. In addition, some of the programs, functions, procedures, or data shown above with respect to server 300 may be stored or executed on computing device 200, or electronic device 400, or collaboration platform server 500. In some implementations, functions and / or data may be allocated between computing device 200 and one or more servers 300. Furthermore, those skilled in the art will recognize that Figure 3 does not necessarily represent a single physical device. In some implementations, server functions are allocated across multiple physical devices comprising the server system. As used herein, references to “server” or “data visualization server” include various groups, collections, or arrays of servers that provide the functions described, and the physical servers do not need to be physically co-located (for example, individual physical devices may be scattered across the United States or around the world).

[0079] Figure 4 is a block diagram of the electronic device 400 in several implementation forms. In some implementation forms, the electronic device 400 is also known as a computing device. Various examples of the electronic device 400 include desktop computers, laptop computers, tablet computers, display assistant devices, mobile phones, voice assistant devices, or other computing devices having a display and a processor capable of running messaging applications 270.

[0080] The electronic device 400 typically includes one or more processing units / cores (CPUs) 402 for executing modules, programs, and / or instructions stored in memory 406 and thereby performing processing operations, one or more network or other communication interfaces 404, memory 406, and one or more communication buses 408 for interconnecting these components. The communication buses 408 may include circuits for interconnecting and controlling communication between system components.

[0081] In some implementations, the electronic device 400 includes a user interface 410 comprising a display 412 and one or more input devices or mechanisms 414. In some implementations, the input device / mechanism includes a keyboard. In some implementations, the input device / mechanism includes a “soft” keyboard displayed on the display 412 as needed, allowing the user to “press keys” displayed on the display 412. In some implementations, the display 412 and the input device / mechanism 414 comprise a touchscreen display (also called a touch-sensitive display). In some implementations, the display is an integrated part of the electronic device 400. In some implementations, the display is a separate display device.

[0082] In some implementations, memory 406 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices. In some implementations, memory 406 includes non-volatile memory such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. In some implementations, memory 406 includes one or more storage devices located remotely from the CPU 402. Memory 406, or alternatively, the non-volatile memory devices within memory 406, comprises a non-temporary computer-readable storage medium. In some implementations, memory 406, or the computer-readable storage medium of memory 406, stores the following programs, modules, and data structures, or subsets thereof: • An operating system that handles various basic system services and includes procedures for performing hardware-dependent tasks.422 • One or more communication network interfaces 404 (wired or wireless), and a communication module 424 used to connect the electronic device 400 to other computers and devices via one or more communication networks such as the Internet, other wide area networks, local area networks, and metropolitan area networks; • A web browser (or other client application) that allows a user to communicate with a remote computer or device over a network; • An audio input module 428 (e.g., a microphone module) for processing audio captured by the audio input device 416. The captured audio can be sent to a remote server and / or processed by an application (e.g., a messaging application 270) running on the electronic device 400. A messaging application 270 for communicating with other users via direct messaging, file sharing, snapshot sharing, live streaming, and / or participation in chat rooms (e.g., channels) organized by topics and / or groups. In some implementations, the messaging application 270 runs as a standalone application (e.g., as an application designed to run on an electronic device 400 or other mobile devices). In some implementations, the messaging application 270 runs within a web browser 226 or another application using web pages provided by a web server. In some implementations, the messaging application 270 includes a messaging user interface 272. In some implementations, the messaging application 270 includes a snapshot home user interface 274; and API 430 for receiving API calls from one or more applications (e.g., a web browser 222 and a messaging application 270), translating API calls into appropriate actions, and performing one or more actions.

[0083] Each of the sets of executable modules, applications, or procedures identified above may be stored in one or more of the aforementioned memory devices and correspond to a set of instructions for performing the functions described above. The modules or programs (i.e., sets of instructions) identified above do not need to be implemented as separate software programs, procedures, or modules; therefore, various subsets of these modules can be combined or otherwise reconfigured in various implementations. In some implementations, memory 406 stores a subset of the modules and data structures identified above. In some implementations, memory 406 stores additional modules or data structures not described above. In some implementations, some of the modules or applications shown in Figure 4 may be implemented on other devices and / or systems, such as computing device 200 or collaboration platform server 500.

[0084] Figure 4 shows the electronic device 400, but it is intended more as a functional description of various possible features than as a structural schematic of the implementation described herein. In practice, as will be recognized by those skilled in the art, items shown separately may be combined, and some items may be separated.

[0085] Figure 4 is a block diagram showing exemplary collaboration platform server 500 in several implementation configurations.

[0086] The server 500 typically includes one or more processing units (processors or cores, CPUs) 502, one or more network or other communication interfaces 504, memory 514, and one or more communication buses 512 for interconnecting these components (sometimes called chipsets). The server 500 may optionally include a user interface 506. The user interface 506 may include a display 508 and one or more input devices 510 such as a keyboard, mouse, and / or other input buttons.

[0087] Memory 514 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices, and optionally includes non-volatile memory such as one or more magnetic disk storage devices, one or more optical disk storage devices, one or more flash memory devices, or one or more other non-volatile solid-state storage devices. Memory 514 optionally includes one or more storage devices located remotely from one or more processing units. Memory 314, or alternatively the non-volatile memory within Memory 514, includes a non-temporary computer-readable storage medium. In some implementations, Memory 514, or the non-temporary computer-readable storage medium of Memory 514, stores the following programs, modules, and data structures, or subsets or supersets thereof: • Operating systems that handle various basic system services and include procedures for performing hardware-dependent tasks; 516 A network communication module 518 for connecting the server 500 to other devices and systems (e.g., computing device 200, data visualization server 300, and electronic device 400) via one or more network interfaces 504 (wired or wireless) and a communication network 132 such as the Internet, other wide area networks, local area networks, or metropolitan area networks; API 520 for receiving API calls, translating API calls into appropriate actions, and performing one or more actions; • A messaging interface 522 for communication (e.g., interactions or events) between the server 500 and the messaging service; • A snapshot home web interface 524 that has the same functionality as the snapshot home user interface 272, but provides the flexibility of access from any device at any location with network connectivity, and does not require installation or maintenance; and • A conversation store 530 for storing interaction state and data between the collaboration platform server 500 and the messaging service. In some implementations, the data is grouped by the messaging application's user identifier (e.g., user account), and within each user identifier, the data is further organized by interaction state 534, snapshots 536 (e.g., a first snapshot 536-1-1 corresponding to a first user identifier 532-1, and a second snapshot 536-2-2 corresponding to a second user identifier 532-2), and user queries 538. In some implementations, each 536 further contains identification information for one or more snapshot components of each snapshot, which can be traced back to the data source(s), data field(s) within the data source(s), and data value(s) of the data field(s).

[0088] Each of the sets of executable modules, applications, or procedures identified above may be stored in one or more of the aforementioned memory devices and correspond to a set of instructions for performing the functions described above. The modules or programs (i.e., sets of instructions) identified above do not need to be implemented as separate software programs, procedures, or modules; therefore, various subsets of these modules can be combined or otherwise reconfigured in various implementations. In some implementations, memory 514 stores a subset of the modules and data structures identified above. In some implementations, memory 514 stores additional modules or data structures not described above.

[0089] Figure 5 shows a server system 500, but it is intended to provide a functional description of various possible features rather than a structural overview of the implementations described herein. In practice, as will be recognized by those skilled in the art, items shown separately may be combined, and some items may be separated. In addition, some of the programs, functions, procedures, or data shown above with respect to the server 500 may be stored or executed on the computing device 200, or the electronic device 400, or the data visualization server 300. In some implementations, functions and / or data may be allocated between the computing device 200, the electronic device 400, and one or more servers 500. Furthermore, those skilled in the art will recognize that Figure 5 does not necessarily have to represent a single physical device. In some implementations, server functions are allocated across multiple physical devices comprising the server system. Where used herein, references to “server” or “collaboration platform server” include various groups, collections, or arrays of servers that provide the described functionality, and the physical servers do not need to be physically co-located (for example, individual physical devices may be scattered across the United States or around the world). C.Philo interface

[0090] Component Creator

[0091] Figure 6A shows the component creator user interface 244 in several implementation forms. According to some implementation forms of this disclosure, the component creator user interface 244 allows the snapshot creator to specify the scope and format of selected dashboard content to be displayed in the snapshot component.

[0092] In some implementations, the component creator user interface 244 includes a data column 602, a preview column 604, and a content column 606. Figures 6B–6D are higher-magnification diagrams of the data column 602, preview column 604, and content column 606, respectively. Some of the controls within the component creator user interface 244 and their associated concepts are inherited from the business intelligence dashboard application, including quantitative measures, filters, and breakdowns by category dimension, rank, or discretized bin. Other controls, including those related to template-based transformations and timeframes, are new to this interface.

[0093] In some implementations, a computing device (e.g., computing device 200) displays a component creator user interface 244 in accordance with (e.g., in response to) a user selection of a data element from a data dashboard. This is shown in Figures 7A and 7B. Figure 7A shows a data dashboard 702 displayed (e.g., as a tab) within the computing device's dashboard user interface 232. A data dashboard can include one or more data visualizations. For example, the data dashboard 702 in Figure 7A includes data visualizations 704-1 to 704-10. In Figure 7B, the user selects a data element 704-1 (e.g., the measure data field "Sales", or the data value corresponding to the measure data field "Sales" (e.g., "$652,989.00"), or data visualization 704-1) within the data dashboard 702 and selects an affordance 706 (e.g., a user-selectable icon) that designates the data element "Sales" as a snapshot component of the data snapshot.

[0094] In some implementations, a data element can be one or more data cells in a data dashboard. In some implementations, a data element can be one or more data values ​​in a data field from a data dashboard. In some implementations, a data element can be one or more data marks in a data visualization within a data dashboard. In some implementations, a data element can be one or more data visualizations from a data dashboard.

[0095] Referring to Figure 6B, in some implementations, the data column 602 includes a measures panel 612, a filter panel 614 (e.g., a filter and selection panel) (e.g., a static filter), a time frame panel 616, a breakdown panel 618, and a template parameter panel 620. The measures panel 612 includes a measure data field 622 (e.g., a quantitative data field). In some implementations, the measure data field 622 is a metric for the snapshot component and is linked to a data source 1. In some implementations, the measures panel 612 includes a numeric format 624 (e.g., currency or percentage) corresponding to the measure data field 622 and an aggregation method 626 (e.g., sum or average) applied to the data value of the measure data field 622.

[0096] In some implementations, Philo retrieves an initial configuration from the data dashboard, including data values, measure data fields, filters, and / or breakdowns (e.g., categorical data fields that break down the data values ​​of the measure data fields), and propagates this initial configuration onto the measure panel 612, filter panel 614, and breakdown panel 616 of the component creator user interface 244. Referring again to the example in Figure 7B where the user selects the metric "Sales" (e.g., measure data field) (e.g., data element 704-1) from the data dashboard 702, Figure 6B shows that, in accordance with the user selection of the metric, the component creator user interface 244 pre-populates the measure data field "Sales" into the measure panel 612 and identifies the format 624 (e.g., USD currency) and aggregation type (e.g., Sum) corresponding to "Sales". In situations where the user does not want to be bound to the content when it is displayed on the source dashboard, the user can modify the pre-populated fields on the component creator user interface 244 as needed without modifying the source dashboard. Therefore, the disclosed system and user interface make user-device operation more efficient by pre-entering dashboard selections on the component creator user interface 244 while simultaneously supporting flexible authoring (DG2).

[0097] Figure 6B shows that in some implementations, data column 602 includes an affordance 613 (e.g., a user-selectable icon) (e.g., the "Add a measure" affordance) that, when selected by the user, allows the user to add one or more measure data fields and create one or more snapshot components based on the added measure data fields (e.g., without having to select the measure data fields from the data dashboard). Continuing with the example of the measure data field "Sales" (e.g., and its corresponding data value) from the previous paragraph, suppose the user wants to compare the "Sales" value with the "Profit" value. In this scenario, the user can return to data dashboard 702 in Figure 7A and select data element 704-2 corresponding to the measure data field "Profit" (e.g., and its corresponding data value), or the user can select affordance 613 to add the measure data field "Profit" and generate a comparison using the appropriate template.

[0098] In some implementations, Philo also loads filters from the original dashboard onto the Filters and Selects 614 panel. Users can convert sets of filters into macro-type interactive filters.

[0099] Figure 6B also shows that in some implementations, the data column 602 includes a timeframe panel 616 that reflects the temporality of the component. The timeframe panel 616 includes optional attributes such as a semantic time interval filter 630 with a start date 632 (e.g., one week from May 1), a time unit 634 (e.g., monthly, weekly, or daily), and a periodicity filter 636 (e.g., every Monday), in addition to an option to specify the component's time dimension data field 628 (e.g., a base data field such as "Order Date"). The input fields specified by the timeframe panel 616 determine both the snapshot update behavior (DG3: post-shared lifecycle and DG3c: automatic update) and precise time filtering (DG1b: time range). In some implementations, when a filter or timeframe is applied to a snapshot component (e.g., via the specification of fields 628, 630, 632, 634, or 636), a filter note 652 appears above the main content in the preview column 604, as shown in Figure 6C.

[0100] In some implementations, the component creator user interface 244 includes a breakdown panel 618 that allows the user to specify one or more breakdown fields 638 (e.g., a category data field, a dimension data field, or nominal and ordinal fields). Each breakdown field 638 allows the measure to be disaggregated by sorting. For example, the user may specify measure data fields as a ranking field 640, a number of top items 641, a number of bottom items 642, and an ordering 643 (e.g., a sort order such as descending or ascending).

[0101] Figure 6B shows that in some implementations, data column 602 includes an affordance 645 (e.g., a user-selectable icon) (e.g., the "Add a breakdown" affordance) that, when selected by the user, allows the user to add one or more dimension data fields and create one or more snapshot components based on the added dimension data fields (e.g., without having to select the dimension data fields from the data dashboard). Suppose the user wants to add another breakdown "Region" as an example of a dimension data field "Category" (and, e.g., its corresponding disaggregation). In this scenario, the user can return to data dashboard 702 in Figure 7A and select data elements 704-9 corresponding to the dimension data field "Region" (and, e.g., its corresponding disaggregation), or the user can select affordance 645 to add the dimension data field "Region" and generate a comparison using the appropriate template.

[0102] In some implementations, data column 603 includes affordance 644 (e.g., a user-selectable icon) (e.g., the "Delete this breakdown" affordance) which, when selected by the user, allows the user to delete the corresponding dimension data field and create one or more snapshot components based on the deleted dimension data field (e.g., without having to return to the data dashboard). Continuing with the examples of the dimension data field "Category" (and, e.g., its corresponding disaggregation) and the measure data field "Sales" (and, e.g., its corresponding data value) from the previous paragraph, let's assume the user wants to aggregate the "Sales" value into a single value. In this scenario, the user can select affordance 644 to delete the dimension data field "Category".

[0103] In some implementations, data column 602 also includes a template parameter field panel 620, which allows the snapshot creator to set parameter values ​​such as threshold preset values ​​and minimum and / or maximum values ​​for threshold ranges, as required by the template-based component, as described in more detail below. Parameter values ​​are values ​​that are not displayed in the original dashboard selection. In some implementations, for the template-based component, the user can choose to rank the disaggregated items in terms of sort order and the number of top and bottom items.

[0104] Figure 6C shows views of the preview column 604 in several implementations. In some implementations, the preview column 604 renders a preview 650 (e.g., a view) of the snapshot component. In some implementations, the snapshot component may include a filter note 652, main content 653, and interactive filters 654.

[0105] Figure 6D shows views of content column 606 in several implementation forms. In content column, the creator can annotate snapshot components (672), format snapshot components (674), optionally apply template transformations (e.g., via the selection of template icons 676), edit captions (678, 680, and 682), and add interactive filters (684).

[0106] In some implementations, with respect to annotations (672), creators can free-draw (for example, on the snapshot component preview 650) to visually highlight content or indicate the viewing order. The ability to annotate on snapshots improves user communication about the data and guides the viewer to parts of the component that require their attention.

[0107] In some implementations, users can choose to retain the existing appearance of the dashboard selection or apply a template-based transformation (674 and 676) (DG2c: Save Design, DG2b: Transform Design). Philo suggests templates using heuristic-based applicability, taking into account the number of measures and dimensions associated with the dashboard selection (see the description below and Figures 15A-15L). As described above, some templates require the author to specify parameter values ​​in the input field of template parameter 620. For component captions, the author can edit the provided text representation associated with the template (680) or add their own text (682). Users can add one or more interactive filters (684) that allow the viewer to answer simple given questions (DG1d: Interactivity to Predictable Questions), and any added filters are appended below the main component content (e.g., as interactive filter(s) 654), as shown in Figure 6C.

[0108] In some implementations, the snapshot creator user interface 244 includes an option 686 for saving a component. In some implementations, once a component is saved, the dashboard user interface 244 displays a representation 712 of the component in the dashboard user interface 244 (for example, within the filter and snapshot panel 714), as shown in Figure 7C.

[0109] In some implementations, the snapshot creator user interface 244 includes an option 688 for deleting a component.

[0110] Snapshot Composer

[0111] Figure 8 shows several implementations of the snapshot creator user interface 248 (e.g., snapshot composer).

[0112] In some implementations, to combine multiple snapshot components into a single snapshot, the snapshot creator can invoke Philo's snapshot composer from the dashboard user interface 232 (e.g., the data visualization application 230). For example, Figure 7C shows that in some implementations, the dashboard user interface 232 includes an affordance 708 (e.g., a user-selectable icon) that, when selected by the user, allows the user to export a snapshot. User selection of affordance 708 displays the snapshot creator user interface 248 on the computing device 200. Figure 7C also shows that in some implementations, the dashboard user interface 232 includes an affordance 710 (e.g., a user-selectable icon) that, when selected by the user, allows the user to create a snapshot component from scratch. In some implementations, after user selection of affordance 710, when a data element is selected on the data dashboard, an option to create a snapshot component of the selected data element is displayed on the dashboard.

[0113] In addition to enabling multi-component snapshots (DG2d), the snapshot composer now supports selections across multiple dashboards (DG2a).

[0114] In some implementations, the snapshot creator user interface 248 includes a settings column 802, a preview column 804, and a component column 806.

[0115] The settings column 802 allows the creator to select a curation method 808 (e.g., curation options) and / or a layout type 810. In some implementations, the curation method 810 is one of the following: single view, vertical stack (e.g., vertical view stack), interactive carousel, auto slideshow, mini dashboard, or GIF animation. Figures 9A to 9D show exemplary vertical stack curation methods, exemplary carousel curation methods, exemplary mini dashboard curation methods, and exemplary auto slideshow curation methods, respectively, in several implementations. For each curation method, it is possible to adjust the placement or order of components in the component column 806 (e.g., by dragging and / or arranging snapshot components in a preferred order).

[0116] The export panel 812 allows the creator to select a collaboration platform channel to which the snapshot will be posted. The creator can also choose to give viewers the ability to reshare the snapshot to other channels (for example, by checking box 814), and can control whether the snapshot is automatically repeated (for example, by checking box 816) according to a specified time interval 818 (e.g., recurrence frequency such as every month, week, or every 20 days), recurrence expiration date 820, and time 822 when the snapshot recurrence appears on the collaboration platform channel (DG3: Auto-renewal).

[0117] In some implementations, snapshot creators can author dashboard snapshots directly from the collaboration platform. For example, instead of configuring a channel to export a snapshot (e.g., via the export panel 812), in some implementations, the snapshot creator can copy the snapshot URL and paste it into the draft channel, which may then prompt an in-situ authoring option presented within the collaboration platform, leveraging tools such as Microsoft Teams' Graph Toolkit or Slack's Block Kit. For this purpose, the collaboration platform can further integrate Philo's component creator user interface 244 and snapshot creator user interface 248 as embedded applications invoked from within the channel.

[0118] The freshness panel 824 allows the creator to specify the "fresh-until" (e.g., "best before", expiration period, validity period) of a snapshot (DG3a: Past Snapshots). Philo can also infer the freshness expiration from the time frame of its components. In some implementations, by checking box 826, the creator can allow the snapshot viewer to retrieve or request an updated snapshot when the snapshot becomes old. For old snapshots, Philo adds a freshness indicator 828 (e.g., a text box) to the snapshot. In some implementations, as shown in Figure 8, the freshness indicator 8218 informs the audience that some parts of the snapshot may not be up-to-date. In some implementations, the freshness indicator 828 shows a recurring schedule and, if enabled (e.g., when box 826 is selected by the creator), presents the viewer with an option to retrieve or request an updated snapshot. Overall, the freshness indicator 828 improves user confidence in the data (for example, by informing viewers about the validity or timeliness of the data) and minimizes the possibility of miscommunication with viewers.

[0119] Furthermore, alternative snapshot update options, such as the option to allow others to share snapshots (e.g., Option 814), the automatic repetition option (e.g., Option 816 (e.g., Automatic Repetition)), and the option to allow others to refresh snapshots (e.g., Option 826), ensure the creator's agency, support data conversations, and minimize the possibility of miscommunication between the creator and their viewers. For example, in some cases, the automatic repetition feature can be useful when there are targets against specific key performance indicators (KPIs), such as monthly sales targets that are tracked regularly (e.g., monthly). In this example, the audience may want to see sales trends, so it would be useful to set up the automatic repetition feature so that sales snapshots are generated and delivered monthly. In another example, automatic repetition The functionality may be useful in short-term emergencies where snapshots need to be updated quickly (e.g., every 5 minutes), such as cloud service outages or logistical accidents. In this case, it may be useful to enable option 826, which allows viewers to refresh the snapshot, thus enabling viewers to obtain updated information themselves without having to rely on the creator for updates. In some cases, some snapshots require a series of checks before updates are made public (e.g., with a large audience or an audience of important executives), so the creator should retain control over updates to prevent any miscommunication (e.g., by deselecting option 826, which allows others to refresh, or by deselecting option 814, which allows others to share).

[0120] In some implementations, the snapshot creator user interface 248 displays an integrity panel 830 containing an option 832 (e.g., a checkbox). The user's selection of option 832 displays the snapshot along with an indicator 834 (e.g., a text box) indicating that the underlying snapshot may contain missing and / or incomplete data. The presence of the indicator 834 improves communication with the viewer by warning them of the presence of missing data, which leads to increased user confidence in the data, as the vast majority of users typically do not spend time searching for missing data.

[0121] In some implementations, the preview column 804 includes a preview panel 836 that displays a rendering 838 of a snapshot simulating the collaboration platform interface.

[0122] In some implementations, in the component column 806, the creator can change the order of each component (for example, by selecting the respective "move up" button 842 or the respective "move down" button 844 adjacent to each component). In some implementations, in the component column 806, the creator can delete each component (for example, by selecting the respective "remove" button 846 adjacent to each component). In some implementations, the creator can also choose to edit components within the component creator (for example, the component creator user interface 244) (840).

[0123] In some implementations, the snapshot creator user interface 248 includes one or more options (e.g., buttons, affordances, or selectable icons) for the creator to save (848), export (850), or delete (852) the snapshot.

[0124] In some implementations, the snapshot creator user interface 248 can be invoked from the dashboard user interface (e.g., the dashboard user interface 232) (e.g., via user selection of affordance 708).

[0125] My Snapshot Home

[0126] Figure 10 shows several implementations of the snapshot home user interface 274 (e.g., telemetry monitoring interface).

[0127] In some implementations of this disclosure, the collaboration platform interface emulates the basic functionality of platforms such as Slack® and Microsoft Teams®. This means that snapshots can be posted and shared across multiple channels, generate comment threads, and receive emoji-based reactions. These interactions can give the snapshot creator an impression of the impact of the snapshot after it has been shared.

[0128] In some implementations, the snapshot home user interface 274 is a dedicated channel within the collaboration platform for collecting the creator's dashboard snapshot(s)(1002) and relevant telemetry information(1004) for each snapshot(s), thereby eliminating the need for the creator to search for snapshots and estimate the visibility and impact of snapshots across the platform (DG3b: telemetry).

[0129] In some implementations, the snapshot home user interface 274 is part of a messaging application (e.g., messaging application 270) associated with the collaboration platform server 500. In some implementations, the collaboration platform server 500 dynamically (e.g., in real time, automatically, without user intervention) collects corresponding telemetry information for each snapshot configured by the snapshot creator and presents it on the creator's snapshot home user interface 274 (e.g., in real time or near real time).

[0130] In some implementations, the snapshot home user interface 274 is part of a data visualization application (e.g., data visualization application 230) associated with the data visualization server 300. For example, the dashboard user interface 232 may contain one or more tabs, each corresponding to a different data dashboard, and the snapshot home user interface may be implemented as a separate tab within the dashboard user interface 232. In some implementations, the data visualization server 300 dynamically collects (e.g., in real time, automatically, without user intervention) telemetry information associated with each snapshot configured by the snapshot creator from the collaboration platform server 500 and presents it (e.g., in real time or near real time) on the creator's snapshot home user interface 274, which is part of the data visualization application.

[0131] In some implementations, the snapshot home user interface 274 displays, for each snapshot, which channel(s) the snapshot was shared on, the number of unique views (1006), comments (1008), reaction count (1010), and interactive view (1012), as well as identification information (1014) of the viewer who interacted with the snapshot, with more details provided in hover tooltips (B1, B2). As used herein, an interactive view occurs when the snapshot includes an interactive filter 654 that the viewer interacts with (for example, while browsing the snapshot). In some implementations, the snapshot home user interface 274 also lists any comments received by the snapshot.

[0132] In some implementations, the snapshot home user interface 274 indicates whether an interactive filter(s) was used for each snapshot.

[0133] In some implementations, the snapshot home user interface 274 displays common metadata properties for each snapshot, such as the snapshot name (e.g., identifier), the snapshot owner, the date the snapshot was first published (or the date(s) the snapshot was republished), and metadata information for the original (e.g., original) dashboard(s) corresponding to the snapshot's components(s).

[0134] In some implementations, if a snapshot is indicated to be outdated, the snapshot home user interface 274 lists the ability to request and retrieve an update (B3), as well as to directly resubmit the updated snapshot without returning to Philo's snapshot composer (e.g., the snapshot creator user interface 248). D. Formalization

[0135] The inventors took a systematic approach to designing Philo, formalizing how snapshots, snapshot components, and templates are constructed and related, and considering how each is extensible or interoperable with existing dashboard applications and collaboration platforms.

[0136] Snapshot specifications

[0137] Figures 11A to 11C collectively provide several implementation forms of dashboard snapshot formatting. A dashboard snapshot consists of one or more components in a specific curation method.

[0138] A snapshot (or dashboard snapshot) is formally declared as a tuple of metadata, components, text message, curation, export, auto-repeat, freshness, and completeness (see Figures 11A, 11B, 11C, and 16). Metadata properties include the snapshot's name, identifier (e.g., unique ID), and owner, as well as a pointer to the actual chat message for this snapshot. A snapshot requires a list of one or more components and an optional text message containing those components. Curation properties specify the curation method and details (e.g., slideshow timing, mini dashboard layout). Export properties include the publication date and time, the supplemental material channel where it was first shared, sharing permissions, and any additional channels to which it was shared. Auto-repeat properties specify whether it should automatically repeat, the interval for retrieving updates, and the time to publish the updated snapshot. Philo uses interval expressions consisting of length and units (e.g., one month, two weeks, or five days). The freshness property includes the date (or interval from the publication date) by which the snapshot is considered fresh, and permission for non-owners to retrieve the updated version. Integrity indicates whether the snapshot's underlying data has any missing data points.

[0139] Component specifications (or snapshot component specifications)

[0140] Figures 12A to 12D collectively provide a formalization of snapshot components according to several implementation forms. The components are building blocks for dashboard snapshots.

[0141] A component (or snapshot component) is formatted as a tuple of metadata, data, measures, timeframes, breakdowns, filters, content types, worksheets, text messages, templates, template specs, annotations, and interactive filters (see Figures 12A, 12B, 12C, 12D, and 16). Metadata properties include a name, identifier, and a pointer to the original dashboard cell. Data properties store the entire data at creation time to enable interactive snapshots. Each measure item consists of a measure field, a format representation (e.g., $2 for US dollars), and an aggregation method.

[0142] The time frame properties include a base time field (e.g., time field), a time range, a time unit (e.g., week, month), and a periodicity filter. The time range can be specified using (i) a start date or end date only, (ii) a start date and an end date, or (iii) a start date and an interval. The periodicity filter represents the point in time to filter within the time range, and consists of an index and a unit (e.g., 1-5 days for weekdays).

[0143] A breakdown item consists of a dimension data field, a measure data field for ranking the items (e.g., a ranking field), the top and bottom N items (topN, bottomN), and an order (e.g., sort order such as descending or ascending). For example, a breakdown item with a Category dimension and a Sales measure would sort the Category items by their Sales. If topN and bottomN are provided, the specified number of top and bottom ranked items will be shown. Each filter item represents a filter expression such as a field and data values / ranges. Philo loads data, measures, breakdowns, and filters from the original dashboard cell when the component is first created.

[0144] The Content Type property defines whether the dashboard cell's content (worksheet) or a template is used. The Worksheet property remembers the original dashboard cell's design specifications. If the Content Type is Worksheet, this Worksheet property and the text message (string) are rendered.

[0145] Annotation items are defined by their shape type (e.g., circle, square, ellipse, or rectangle), size, position, stroke (e.g., color, width, and / or opacity), and fill (e.g., color and opacity).

[0146] Interactive filters include a name, type, and corresponding options. For the "Auto" filter type, the user only needs to specify the filtering data field. For the "dropdown" or "slider" filter types, the user can provide selectable values ​​or limit ranges, respectively. For the "macro" filter type, the user must provide a filter expression written in a supported format. For example, when a viewer interacts with a snapshot, that interaction is counted and reflected in the snapshot home user interface 274. The purpose is to help snapshot creators understand how their snapshots are used and how they can modify future snapshots to improve data communication with the viewer.

[0147] template

[0148] Figures 13A and 13B collectively provide formalizations of templates (e.g., template designs) in several implementation forms.

[0149] Philo allows creators to apply design transformations to snapshot components via templates (DG2: Flexible and Easy Creation). Broadly speaking, template designs for Philo components are defined by supported tasks (task keywords), reactive designs (written in Svelte), applicability, text templates, and parameter definitions (params) (see Figures 13B and 16).

[0150] Figure 14A provides a formalization of the template specification in several implementation forms.

[0151] Template specifications are distinguished from template designs to ensure the reusability of templates. Components use template specifications to supply data to template designs.

[0152] Figure 14B shows exemplary template design definitions and template specifications for the "goal" template in several implementation forms.

[0153] As outlined in Figure 14B, the template specification is supplied to the template. As shown in Figure 14B(iii), the template specification consists of appearance, parameters (params), custom text, data, measures, timeframes, breakdowns, filters, and scales (see also Figure 16). The appearance property declares the design details of the template, such as the use of text, graphics, and captions (Figure 14B(iii), line 9). The params property contains the actual parameter values ​​provided by the user (Figure 14B(ii), lines 6-8). If provided, custom text overrides the text template provided by the template design, which can be either static text or an expression string. Data, measures, timeframes, breakdowns, filters, and scales are imported from the current component (see Figure 16).

[0154] Figures 15A–15K illustrate exemplary template designs in several implementation forms. Figure 15A shows the corresponding task keywords, applicability, and parameters for each template design (identified by its name). Figures 15B–15K each show the original dashboard selection (left) and the corresponding template design (right) in several implementation forms. Collectively, the template designs correspond to a small set of communication intents (DG1: Supporting Data Conversations) derived by the inventors from discoveries in a collaborative design workshop. For example, Figure 15B is intended to communicate a simple breakdown by dimension or discretized bins, Figure 15H is designed to elicit a comparison between values ​​and targets to support a call to action, and Figure 15K is designed to communicate trends by referencing thresholds. For some templates, the creator can supply targets or thresholds via parameters (DG2a: Transformation).

[0155] Figure 16 shows the relationship between snapshots (A), components (B), templates (C), template specifications (D), and dashboard selection in several implementation forms.

[0156] Referring to Figure 16, a snapshot component includes properties such as content type (which determines whether to inherit the original representation from the dashboard selection or use a template) and interactive filters, as outlined in column B of Figure 16. Philo initiates the component by propagating data, measures, breakdowns, and filters from the original dashboard selection (E→B), and the worksheet property stores the design specifications of the original dashboard selection to enable interactivity (DG1d) and selective design propagation (DG2c). The template property includes a pointer to the template design selection (C→B), and the template spec property includes the data required by the selected template (D→B). Using properties such as component and curation, the snapshot specification combines multiple components into a single snapshot shared on the collaboration platform (B→A). Components include content such as data and formatting selections, and the snapshot manages how those components are configured and exported. For example, the export property declares the channel through which the snapshot is shared, and freshness and integrity indicate the status of the snapshot. The template inherits several properties from the component, such as data and measures (B→D). This includes a worksheet property that holds the scale mapping of dashboard selections (Figure 7B→D), thereby allowing the author to selectively save several dashboard design options after applying a template-based transformation to the content (DG2c: Selective Design Propagation).

[0157] Snapshot update

[0158] When a snapshot is updated, either manually or automatically, it references the timeframe property of that component. Philo first retrieves the most recent date associated with the data source for each snapshot component. Then, to filter the data, Philo infers the new timeframe for the component at the time of the update. For example, suppose the original timeframe is a quarter starting on January 1st. If today is May 1st, this timeframe remains unchanged because the next timeframe (the quarter from April 1st to June 30th) is not yet complete. However, if today is July 10th, the timeframe is updated to reflect the quarter starting on April 1st. When Philo updates the component timeframe, it applies the corresponding data filter and posts the updated snapshot to the collaboration platform channel where the snapshot was first shared, along with visual instructions to relate it to the previous snapshot. In some implementations, to reduce the possibility of miscommunication, Philo does not propagate annotations from previous versions of the snapshot (for example, Philo removes annotations by default).

[0159] In some implementations, if the snapshot creator chooses to manually update the snapshot, Philo allows them to edit the annotations and captions before sharing the update. III. Usage Scenarios

[0160] Figures 17A–17H collectively illustrate several implementations of Philo usage scenarios. Further details are also provided in priority application No. 63 / 404,518, filed on September 7, 2022, which is incorporated herein by reference in its entirety.

[0161] In this example, Jamie is a domestic sales analyst for a large retail company. Jamie's manager, Chris, uses a collaboration platform (e.g., a chat application) to send Jamie a message asking him to share dashboard snapshots for the past month (e.g., March 2022) with regional sales representatives in each U.S. region (Figure 17A). Chris's message shows the sales targets for the past month and the respective sales targets for each region.

[0162] In Figure 17B, Jamie opens his dashboard (for example, data visualization application 230, user interface 232), selects a dashboard element showing total sales, and uses it to create an initial snapshot component (Figures 17B(i) and 17B(ii)).

[0163] In the component creator shown in Figure 17B(ii), the major data field (e.g., sales revenue) is already loaded. Jamie sets the time frame to one month starting from March 2, 2022. Since Jamie's original dashboard selection does not specify any region, Jamie sets up the breakdown according to region (e.g., breakdown field 638). Chris also communicates the team's sales target for that month, so Jamie selects a template that includes both the breakdown and target values ​​(e.g., via the selection of template icon 676; see also template design in Figures 15A-15L). Jamie enters the sales target as a template parameter.

[0164] Similarly, Jamie creates another component for profit measures, as shown in Figures 17B(i) and 17B(iii). For the third snapshot component, Jamie selects the profit margin map (Figures 17B(i) and 17B(iv)). Instead of selecting a template, Jamie chooses to maintain this map representation within the snapshot. In the example in Figure 17, the snapshot components are selected from the same data dashboard. In some implementations, the snapshot components can be selected from separate data dashboards.

[0165] Returning to the example in Figure 17B(iv), when specifying the March 2022 timeframe for the third component, Jamie notices that there are missing data points in the western region and therefore adds annotation 1702 and a custom component caption 1704 to highlight this region. Recalling that representatives from the regional sales team often ask about specific product categories, Jamie adds an interactive filter 1706 for the category dimension field.

[0166] Referring to Figure 17C, Jamie uses these three snapshot components to invoke the snapshot composer (e.g., snapshot generator 246, snapshot creator user interface 248) from a dashboard application (e.g., data visualization application 230). For example, in some implementations, Jamie can select affordance 708 to invoke the snapshot composer. In Figure 17C, Jamie selects interactive carousel as the component curation option (e.g., curation method 808). Jamie then configures the export control (e.g., export panel 812) to point the snapshot to the #sales-regional-reps channel (1708), which all regional sales representatives subscribe to. Jamie allows viewers to share this snapshot across other channels so that regional representatives can communicate with their regional teams (1710). Jamie recognizes that the snapshot will no longer be fresh by the end of April (for example, the snapshot will become invalid or the snapshot data will expire) and customizes the inferred date (1712). Jamie also allows others to retrieve updated versions after the snapshot has become old (1714). Recalling missing data points, Jamie toggles completeness to indicate to the viewer that the underlying data is incomplete (1716). After adding caption 1718, Jamie posts the snapshot to the #sales-regional-reps channel, as shown in Figure 17D.

[0167] Figure 17D shows how Manager Chris, in response to noticing the snapshot annotations and integrity indicators, determines that the West region representative is responsible for those missing data points. Chris points this out to Alice, the West region sales representative, in a comment on the collaboration platform. Alice then shares the snapshot so her regional team can investigate and explain it.

[0168] Figure 17E shows Chris, one month later, noticing that the March snapshot is outdated and therefore retrieving and sharing an updated version. Meanwhile, Jamie can view the telemetry for this updated snapshot via his "My Snapshots Home" interface (e.g., Snapshots Home user interface 274), as shown in Figure 17F. In some implementations, the "My Snapshots Home" interface includes a pane 1720 (e.g., panel) corresponding to each snapshot authored by Jamie. In some implementations, each pane 1720 includes a corresponding information panel 1722 that displays telemetry information about the respective snapshot. In this usage scenario, Jamie notices that Paul (the East region sales representative) has not yet seen the updated snapshot, and therefore Jamie mentions Paul in a component comment, as shown in Figure 17G. Upon notification, Paul checks the updated snapshot via his mobile phone, as shown in Figure 17H. flowchart

[0169] Figures 18A to 18I provide flowcharts of Method 1800 for retargeting dashboard content as a data snapshot (e.g., dashboard snapshot) for a collaboration platform, in several implementation forms. Method 1800 is also called a process.

[0170] Method 1800 is performed in a computing device (e.g., computing device 200) having a display (e.g., display 212), one or more processors (e.g., CPU(s) 202), and memory (e.g., memory 206) (1802). The memory stores one or more programs configured for execution by one or more processors (1804). In some implementations, the operations shown in Figures 1A, 1B, 6A-6D, 7A-7C, 9, 9A-9D, 10, 11A-11C, 12A-12D, 13A, 13B, 14A, 14B, 15A-15L, 16, and 17A-17H correspond to instructions stored in memory or other non-temporary computer-readable storage media. Computer-readable storage media may include magnetic or optical disk storage devices, solid-state storage devices such as flash memory, or other non-volatile memory devices. In some implementations, instructions stored on the computer-readable storage media may include one or more of source code, assembly language code, object code, or other instruction formats interpreted by one or more processors. Some operations in Method 1800 may be combined, and / or the order of some operations may be changed.

[0171] Method 1800 relates to creating snapshot components (or more) from dashboard content and creating data snapshots containing one or more snapshot components for display on a messaging application associated with a collaboration platform. While data dashboards are useful tools for analyzing and displaying data, they often contain large amounts of information of higher complexity, making them unsuitable for sharing with audiences such as business users. Method 1800 improves the user experience by introducing a streamlined process that enables dashboard creators to effectively retarget dashboard content as data snapshots. For example, snapshot creators can select relevant dashboard content in relation to the purpose of their communications, configure specific conditions for insights, and link different parts of the dashboard for consistency. In some implementations, data snapshots have a form factor compatible with the viewer's device or screen context. As a result, the user experience regarding data communication is improved.

[0172] Referring to Figure 18A, the computing device receives a user selection of a first data element from a first data dashboard (e.g., data dashboard 258, data dashboard 702) displayed on the computing device (e.g., via the dashboard user interface 232) (1806). The user selection designates the first data element as the first snapshot component of the first snapshot (e.g., the data snapshot component). In some implementations, designating the first data element as the first data snapshot causes the computing device to create a placeholder for the snapshot component based on the coordinates of the first data element on the first data dashboard. In some implementations, designating the first data element as the first data snapshot causes the computing device to create a data structure for the snapshot component (e.g., a data structure with the properties shown in Figure 12C).

[0173] In some implementations, upon receiving a user selection designating a first data element as the first snapshot component, the computing device generates a first component specification corresponding to the first snapshot component, the first component specification containing multiple component properties (1808). The computing device then populates the first component specification with the respective first values ​​according to the user selection of the first values ​​for at least a subset of the properties (1810).

[0174] In some implementations, as described in Section II.D and Figures 12A–12D, the (snapshot) component is formatted as a tuple of metadata, data, measures, timeframes, breakdowns, filters, content types, worksheets, text messages, templates, template specifications, annotations, and interactive filters. Metadata properties include a name, identifier, and a pointer to the original dashboard cell. Data properties store the entire data at creation time to enable interactive snapshots. Each measure item consists of a measure field, a format expression (e.g., $2 for US dollars), and an aggregation method. Timeframe properties include a time field, a time range, a time unit (e.g., week, month), and a periodicity filter. The time range can be specified using only a start date or end date, a start date and an end date, or a start date and an interval. The periodicity filter represents the point in time to filter within the time range, and consists of an index and a unit (e.g., 1–5 days for weekdays). Each breakdown item includes a dimension field, a ranking field (measure), the number of top-ranked and bottom-ranked items (topN, bottomN), and a sort order (descending / ascending). For example, a breakdown item with a Category dimension and a Sales measure would sort the Category items by their Sales. If topN and bottomN are provided, the specified number of top-ranked and bottom-ranked items are indicated. Each filter item represents a filter expression, such as a field and data values / ranges. In some implementations, Philo loads data, measures, breakdowns, and filters from the original dashboard cell when the component is first created.

[0175] In some implementations, the first data element is the data value of a measure data field, and the data value is determined via the first aggregation type (1812). In some implementations, the first data element contains the data marker of a data visualization on the first dashboard (1814). In some implementations, the first data element is the data visualization on the first dashboard (1816).

[0176] Referring to Figure 18B, in response to receiving a user selection of a first data element from the first data dashboard, the computing device displays, for example, multiple component properties for the first snapshot component on the first user interface (e.g., component creator user interface 244) (1818). This is shown in Figures 6A, 6B, and 6C. In some implementations, displaying the first user interface involves replacing the display of a view of the first data dashboard (e.g., on the dashboard user interface 232) with the first user interface.

[0177] In some implementations, the disclosed system and user interface support data experts in creating interactive snapshots in a flexible manner through template-based design transformations. In some implementations, the computing device displays multiple template icons (e.g., template icon 676) corresponding to multiple templates (e.g., template designs) via a first user interface (1820). In some implementations, a component template design is defined by supported tasks (e.g., task keywords) such as “breakdown,” “ranking,” “percentage,” “proportion,” “time difference,” “time comparison,” “goal,” “trend,” and “correlation,” as well as applicability (e.g., text template and parameter definitions (params)). This is shown in Figures 15A to 15L. Each template design serves or achieves a business-oriented “message,” or goal such as breaking down a value, comparing a value to a goal, or observing a trend.

[0178] In some implementations, in response to receiving a user selection of a first data element from the first data dashboard, the computing device replaces the display of the first data dashboard with a view of the first user interface (1822). For example, in Figure 7B, the computing device receives a user selection of data element 704-1 in data dashboard 702 and a user selection of affordance 706 that designates the data element "Sales" as a snapshot component of a data snapshot. In response to receiving the user selections, the computing device replaces the display of data dashboard 702 (and, for example, dashboard user interface 232) with a view of snapshot creator user interface 244.

[0179] In some implementations, the first data dashboard is displayed in a data visualization application (e.g., data visualization application 230), and the first user interface is the user interface of the data visualization application (1824).

[0180] In some implementations, the first data dashboard is displayed in a data visualization application, and the first user interface is the user interface of the collaboration platform (e.g., messaging application 270) (e.g., associated with the collaboration platform server 500) (1826).

[0181] In some implementations, the first data dashboard is displayed in the data visualization application, while the first user interface is a user interface for an application that is distinct from both the data visualization application and the collaboration platform (1828).

[0182] Referring to Figure 18C, the computing device receives user-specified first values ​​for at least a first subset of component properties among multiple component properties via the first user interface (1830).

[0183] In some implementations, the computing device receives, via a first user interface, a user selection of one or more major data fields (e.g., major data field(s) 622), a numerical format for each data field (e.g., format 624), and an aggregation method for each data field (e.g., aggregation 626) (e.g., sum, average or mean, maximum, count, or variance) (1831). In some implementations, instead of receiving a user selection of data fields, the computing device pre-populates the major data fields in the first user interface (e.g., the major panel 612 of the first user interface) and identifies the format and aggregation type.

[0184] In some implementations, the computing device receives user selections of dimension data fields (e.g., one or more dimension data fields) (e.g., breakdown fields 638) and sort order (e.g., ordering 643) (e.g., ascending or descending) via a first user interface (1832).

[0185] In some implementations, the computing device receives user-specified time data fields (e.g., time dimension data field 628) (e.g., base time field such as shipping date or order date) and date / time ranges for filtering the first data elements, as shown by the time interval filter 630, start date 632, time unit 634, and / or periodicity filter 636 in Figure 6B (1834). In some implementations, the date / time range is specified by (i) a time interval (e.g., time interval filter 630) and a start date (e.g., start date 632), or (ii) a start date and an end date.

[0186] In some implementations, the computing device receives a user selection of a first template icon from among several template icons (1836), the first template icon corresponds to the first template from among several templates (see, for example, Figures 15A to 15L for template design), and receives user specifications for one or more parameters for the first template (for example, via the template parameter panel 620) (1838).

[0187] The computing device updates the first snapshot component according to the respective first values ​​(1840) (e.g., formalize) upon receiving user-specified first values ​​for at least a first subset of component properties.

[0188] In some implementations, the computing device generates a first snapshot component (for example, according to each first value) (1842).

[0189] In some implementations, generating a first snapshot component involves generating a bar graph having multiple data bars, where each data bar has a length that (i) represents a data value of a measure data field decomposed by a dimension data field, and (ii) represents a portion of the first data element corresponding to each data value, and arranging the data bars in sort order according to the respective lengths of the data bars (1846).

[0190] In some implementations, generating the first snapshot component involves filtering the first data element to a date / time range in the date / time field (1850).

[0191] In some implementations, generating the first snapshot involves formatting the first snapshot components according to a first template and one or more parameters (1852).

[0192] In some implementations, the computing device automatically generates a preview (e.g., a rendering) of the first snapshot component according to user-specified first values ​​for at least a first subset of component properties (1854). The preview shows how the first snapshot component will look when the data snapshot is generated.

[0193] In some implementations, the computing device displays a preview of the first snapshot component in the first user interface (for example, in the preview column 604 of the component creator user interface 244) (1856). In some implementations, the computing device is configured to automatically update the preview of the first snapshot component in response to updates / modifications to the value(s) of the component property.

[0194] In some implementations, while displaying a preview of the first snapshot component, the computing device receives user input on the preview of the first snapshot component for annotating the first snapshot at a first position in the first snapshot (e.g., using the annotation panel 672) (1858). For example, the user can click or draw a shape (e.g., a circle, rectangle, arrow, and / or line) on the preview of the first snapshot component. In response to receiving user input, the computing device updates the display of the snapshot component preview to include the shape and / or color at the first position (1860). In some implementations, the user input further includes text input explaining the reason for the annotation.

[0195] In some implementations, after generating the first snapshot component, the computing device displays a visual representation of the first snapshot component on the first data dashboard (1862). This is shown in Figure 7C (e.g., representation 712).

[0196] Continuing to refer to Figure 18F, the computing device generates a first snapshot containing the first snapshot components (1864).

[0197] In some implementations, the first data snapshot includes a second snapshot component distinct from the first snapshot component (1866). In some implementations, after generating the first snapshot component, the computing device receives a user selection for the second data element (e.g., via the dashboard user interface 232). The user selection designates the second data element as the second snapshot component for the first snapshot.

[0198] In some implementations, the user selection designating a second data element as a second snapshot component is received via the first data dashboard displayed on the computing device (1868).

[0199] In some implementations, a user selection designating a second data element as a second snapshot component is received via a second data dashboard that is different from the first data dashboard displayed on the computing device (1870) (for example, the first and second snapshot components originate from different dashboards).

[0200] In some implementations, the first data element is derived from the first data source, and the second data element is derived from a second data source different from the first data source (1872).

[0201] In some implementations, upon receiving user selections, the computing device generates a second component specification corresponding to the second snapshot component (1874). The second component specification includes several component properties.

[0202] In some implementations, the first snapshot is specified by multiple snapshot properties (1876). For example, as described in Section II.D and Figures 11A–11C, a single snapshot is formally declared as a tuple of metadata, components, text messages, curation, export, auto-repeat, freshness, and completeness. Generating the first snapshot involves receiving user-specified second values ​​corresponding to multiple snapshot properties, including the first date / time when the data in the first snapshot is valid (e.g., the first snapshot contains first snapshot components that expire on the first date / time) and the collaboration platform identifier to which the first snapshot should be exported (e.g., messaging group, Slack channel).

[0203] In some implementations, multiple snapshot properties include metadata properties that include a first metadata property specifying the identifier of the first snapshot, a second metadata property specifying the owner of the first snapshot, and a third metadata property specifying a pointer to the first chat message that displays the first snapshot (1878).

[0204] In some implementations, generating a first snapshot involves displaying a second user interface (e.g., a snapshot creator user interface 248) containing multiple panes (e.g., panels), where each pane corresponds to a snapshot property among the multiple snapshot properties of the first snapshot. User selections in each field within each pane specify the corresponding value for the respective snapshot property.

[0205] In some implementations, method 1800 includes updating the first snapshot component according to its respective first value, and then replacing the display of the first user interface with a view of the first data dashboard (1881). The second user interface is displayed in response to a user selection of an affordance (e.g., a user-selectable icon) (e.g., "compose and export snapshot") from the view of the first data dashboard.

[0206] In some implementations, the first data dashboard is displayed in the data visualization application, and the second user interface is the user interface of the data visualization application (1882).

[0207] In some implementations, the first data dashboard is displayed in a data visualization application, and the second user interface is the user interface of the collaboration platform (1883).

[0208] In some implementations, the first data dashboard is displayed in the data visualization application, while the second user interface is a user interface for an application that is different from the data visualization application and also different from the collaboration platform (1884).

[0209] In some implementations, the first and second user interfaces are both interfaces for the same application (1885).

[0210] In some implementations, the computing device displays a rendering of the first snapshot in the simulated chat interface in a second user interface (e.g., in the preview pane / column 804) (1886). This is shown in Figure 8.

[0211] In some implementations, while displaying a rendering of the first snapshot within the second user interface, the computing device receives a user selection via the second user interface for the first user-selectable icon in the first pane of multiple panes (e.g., box 826 “Allow others to refresh”).(1888) In response to the user selection, the computing device displays the updated rendering of the first snapshot (e.g., in preview column 806) (1889) including an affordance (e.g., a user-selectable element) (e.g., a freshness indicator 828) that enables the viewer of the first snapshot to request the updated first snapshot on the collaboration platform. Displaying the updated rendering of the first snapshot along with an affordance that enables the viewer of the first snapshot to request the updated first snapshot improves the user experience by informing the viewer about the validity or timeliness of the data, and ultimately leads to increased user confidence in the data.

[0212] In some implementations, while displaying the rendering of the first snapshot on the second user interface, the computing device receives (1890) a user selection of a second user-selectable icon (e.g., option 832) within a second pane of a plurality of panes via the second user interface. In response to the user selection, the computing device displays (1891) an updated rendering of the first snapshot that includes a text box warning the viewer of the first snapshot that the data of the first snapshot is incomplete. Displaying the updated rendering of the first snapshot together with a text box warning the viewer of the first snapshot that the data of the first snapshot is incomplete improves the user experience by warning the viewer of the presence of missing data. This leads to an improvement in the user's trust in the data since most users typically do not spend time looking for missing data.

[0213] In some implementations, the computing device receives (1892) a user selection of a layout type (e.g., curation method) of the first snapshot. In some implementations, the layout type is one of a single view, a view stack, a carousel layout, a slide show, a mini dashboard, or an animation layout (e.g., GIF animation) (1893). This is shown in FIGS. 9A-9D.

[0214] The computing device causes the first snapshot to be displayed as a message on a messaging application (e.g., messaging application 270) executed by an electronic device (e.g., electronic device 400) that is different from the computing device (e.g.,). The messaging application is associated with a collaboration platform.

[0215] In some implementations, displaying the first snapshot on the electronic device includes displaying the first snapshot on the electronic device in a selected layout type (1895).

[0216] It should be understood that the particular order in which the operations of FIGS. 18A-18I are described is merely an example and is not intended to indicate that the described order is the only order in which the operations may be performed. One of ordinary skill in the art will recognize various ways to reorder the operations described herein. Additionally, note that the details of other processes described herein with respect to other methods (e.g., methods 1900 and 2000) described herein are also applicable in a similar manner to method 1800 described above with respect to FIGS. 18A-18I.

[0217] FIGS. 19A-19F provide a flowchart of a method 1900 for generating a data snapshot for a collaboration platform, according to some implementations. Method 1900 is also referred to as a process.

[0218] Method 1900 is performed in a computer system (e.g., a data visualization server 300 or a collaboration platform server 500) comprising one or more processors (e.g., CPU(s) 302) and memory (e.g., memory 314) (1902). The memory stores one or more programs configured for execution by one or more processors (1904). In some implementations, the operations shown in Figures 1A, 1B, 6A-6D, 7A-7C, 9, 9A-9D, 10, 11A-11C, 12A-12D, 13A, 13B, 14A, 14B, 15A-15L, 16, and 17A-17H correspond to instructions stored in memory or other non-temporary computer-readable storage media. Computer-readable storage media may include magnetic or optical disk storage devices, solid-state storage devices such as flash memory, or other non-volatile memory devices. In some implementations, instructions stored on the computer-readable storage media may include one or more of source code, assembly language code, object code, or other instruction formats interpreted by one or more processors. Some operations in Method 1900 may be combined, and / or the order of some operations may be changed.

[0219] Method 1900 relates to creating a first data snapshot containing one or more snapshot components for display on a messaging application associated with a collaboration platform. Specifically, the first data snapshot includes the date / time when the data in the first snapshot is valid (e.g., fresh or up-to-date). If the computer system determines that the data in the snapshot components of the first snapshot is no longer up-to-date, the computer system automatically retrieves one or more updated data values ​​from the data source corresponding to the snapshot component and uses the updated data values ​​to generate an updated snapshot. As a result, instead of relying on data experts to constantly update reports as new data arrives, the disclosed system improves user confidence in the data and minimizes miscommunication with viewers (e.g., by presenting invalid data).

[0220] The computer system receives user-specified values ​​for each of the multiple snapshot properties of the first snapshot (1906). For example, in some implementations, as described with respect to Section II.D. and Figures 11A-11C and 16, the multiple snapshot properties include metadata properties, component properties, text message properties, curation properties, export properties, auto-repeat properties, freshness properties, and integrity properties.

[0221] The first snapshot includes one or more (e.g., at least one, at least two) snapshot components (e.g., snapshot component 252) that contain first snapshot components extracted from the first data dashboard (e.g., data dashboard 258) (1908). The first data dashboard is associated with the first data source (e.g., data source 266). User-specified includes the first date / time when the data in the first snapshot is valid (e.g., the first snapshot includes first snapshot components that expire or whose values ​​are no longer current at the first date / time). User-specified also includes the first collaboration platform (or first channel of the collaboration platform) (e.g., messaging group, Slack channel) to which the first snapshot is exported.

[0222] In some implementations, the first snapshot component is generated according to the first snapshot component specification (e.g., component specification 250) (1912). The first snapshot component specification includes multiple component properties, each having multiple corresponding property values, as described in Section II.D, Figures 12A–12D, and step 1810 of Method 1800.

[0223] In some implementations, the first snapshot component specification is stored in a computer system (see, for example, Figure 3B) (1912).

[0224] In some implementations, one or more snapshot components include multiple snapshot components (1914). Each snapshot component in the multiple snapshot components corresponds to a respective data element from its respective data dashboard.

[0225] In some implementations, each data element is one or more data cells from each data dashboard, one or more data values ​​from each data dashboard, one or more data fields from each dashboard, one or more data marks from each dashboard data visualization, or one or more data visualizations from each dashboard (1916).

[0226] Referring to Figure 19B, in some implementations, one or more snapshot components include a second snapshot component extracted from a second data dashboard (1918).

[0227] In some implementations, the second data dashboard is associated with the first data source (1920).

[0228] In some implementations, the second data dashboard is associated with a second data source that is different from the first data source (1922).

[0229] In some implementations, receiving user-specified values ​​for each of the multiple snapshot properties of the first snapshot includes receiving user-specified first values ​​corresponding to the auto-repeat properties of the first snapshot (1924). In some implementations, the multiple first values ​​include at least two of the following: the repetition frequency (e.g., weekly, bi-weekly, or monthly) (e.g., repetition time interval 818), the repetition expiration date (e.g., repetition expiration date 820), and the time (e.g., time 822) at which the repetition of the first snapshot appears on the messaging application (e.g., messaging application 270).

[0230] In some implementations, receiving user-specified values ​​for multiple snapshot properties of the first snapshot includes receiving user-specified layout type (e.g., curation method) of the first snapshot (1926). An example of a curation method is shown in Figure 9A. For example, (claim 46) in some implementations, the layout type (e.g., curation method) is one of a single view, a view stack, a carousel layout, a slideshow, a mini dashboard, or an animated layout (e.g., a GIF animation) (1928).

[0231] In some implementations, user-specified values ​​for multiple snapshot properties of the first snapshot are received via a computer system (e.g., data visualization server 300) that is communicatively connected to and separate from it (e.g., computing device 200) (1930).

[0232] In some implementations, upon receiving user-specified values ​​for multiple snapshot properties of the first snapshot, the computer system displays a rendering of the first snapshot (e.g., rendering 838) within a simulated chat interface in the computing device (e.g., within the preview panel 836) (e.g., within the snapshot creator user interface 248) (1932).

[0233] Referring to Figure 19C, the computer system generates a first snapshot specification (e.g., snapshot specification 254) for the first snapshot according to the respective values ​​for several snapshot properties, in accordance with the user specifications received (1938). For example, in some implementations, a snapshot is formally declared as a tuple of metadata, components, text message, curation, export, auto-repeat, freshness, and completeness. The metadata property includes the name of the snapshot, an identifier (e.g., unique ID), and owner, as well as a pointer to the actual chat message for this snapshot. The snapshot also requires a list of one or more components and an optional text message containing those components. The curation property specifies the curation method and details (e.g., slideshow timing, mini dashboard layout). The export property includes the publication date and time, the channel in which it was first shared, the sharing permissions, and any additional channels to which it was shared. The auto-repeat property specifies whether it should automatically repeat, the interval for retrieving updates, and the time to publish the updated snapshot.

[0234] The computer system generates the first snapshot according to the first snapshot specification (1940).

[0235] The computer system displays the first snapshot as a message on a messaging application (e.g., messaging application 270) on an electronic device (e.g., an electronic device 400 different from the computer system) (1942). The messaging application is associated with a first collaboration platform (e.g., having a collaboration platform server 500).

[0236] In some implementations, displaying the first snapshot on an electronic device includes displaying the first snapshot on the electronic device in a selected layout type (1944).

[0237] In some implementations, displaying the first snapshot as a message on a messaging application includes transmitting, by a computer system, the first snapshot to a first collaboration platform (1946).

[0238] Referring to FIG. 19D, in some implementations, a computer system receives, from a first collaboration platform, a first request to update the first snapshot (1948).

[0239] In some instances, the first request is initiated by a user of the electronic device (1950).

[0240] In some instances, the first request is initiated by the creator of the first snapshot (1952).

[0241] In some implementations, in response to the first request, the computer system determines (e.g., by analyzing the first snapshot specification, such as a “freshness” value corresponding to the “freshness” property of the first snapshot specification) that the current date / time of the first request exceeds a first date / time at which the data in the first snapshot is valid (1954).

[0242] In some implementations, upon determination that the current date / time of the first request exceeds the first date / time for which the data in the first snapshot is valid, the computer system retrieves one or more updated data values ​​for the first snapshot components from the first data source (e.g., automatically, without user intervention) (1956). The first snapshot specification lists one or more components of the first snapshot (e.g., component properties), and the metadata properties of each snapshot include a pointer to the underlying dashboard cell, and the computer system determines the respective data source (or data source) for each snapshot component and can retrieve the updated data directly and automatically from the data source without requiring user intervention.

[0243] In some implementations, after retrieving one or more updated data values ​​for the first snapshot component from the first data source, the computer system updates the first snapshot component specification according to the one or more updated data values ​​(1958).

[0244] In some implementations, the computer system generates an updated snapshot with one or more updated data values ​​for the first snapshot component (1962).

[0245] In some implementations, computer systems display updated snapshots on electronic devices (1964).

[0246] Continuing to refer to Figure 19E, in some implementations, following the display of the first snapshot as a message on the messaging application, the computer system retrieves (e.g., automatically, without user intervention) the respective current data values ​​for one or more snapshot components from one or more data sources corresponding to one or more snapshot components of the first snapshot, according to the determination that several first values ​​corresponding to the automatic repeating properties have been met (1966). For example, several first values ​​are met when the repeating frequency is met, or when the repeating expiration is met, and / or when the time has elapsed for the repetition of the first snapshot to be displayed on the messaging application.

[0247] In some implementations, the computer system generates the first iterative version of the first snapshot (1968).

[0248] In some implementations, the computer system displays the first iterative version of the first snapshot on the messaging application of the electronic device (for example, as a new message on the same channel) (1970).

[0249] In some implementations, multiple values ​​include the time at which the first snapshot repetition is displayed on the messaging application (1972). Displaying the first repeating version of the first snapshot on the messaging application of an electronic device includes displaying the first repeating version of the first snapshot at the time specified in the automatic repetition property.

[0250] In some implementations, the computer system updates the first snapshot specification according to the current data values ​​for one or more snapshot components (1974).

[0251] It should be understood that the specific order in which the operations in Figures 19A to 19E are described is merely an example and is not intended to indicate that the described order is the only order in which the operations can be performed. Those skilled in the art will recognize various ways of rearranging the operations described herein. In addition, it should be noted that details of other processes described herein with respect to other methods described herein (e.g., methods 1800 and 2000) are also applicable in a similar manner to method 1900 described above with respect to Figures 19A to 19E.

[0252] Figures 20A to 20D provide flowcharts of Method 2000 for performing data snapshots and interactions in several implementation forms. Method 2000 is also called a process.

[0253] Method 2000 is executed in a computing device (e.g., computing device 200 or electronic device 400) which includes one or more processors (e.g., CPU(s) 202 or CPU(s) 402) and memory (e.g., memory 206 or memory 406) (2002). The memory stores one or more programs configured for execution by one or more processors (2004). In some implementations, the operations shown in Figures 1A, 1B, 6A-6D, 7A-7C, 9, 9A-9D, 10, 11A-11C, 12A-12D, 13A, 13B, 14A, 14B, 15A-15L, 16, and 17A-17H correspond to instructions stored in memory or other non-temporary computer-readable storage media. Computer-readable storage media may include magnetic or optical disk storage devices, solid-state storage devices such as flash memory, or other non-volatile memory devices. In some implementations, instructions stored on the computer-readable storage media may include one or more of source code, assembly language code, object code, or other instruction formats interpreted by one or more processors. Some operations in Method 1900 may be combined, and / or the order of some operations may be changed.

[0254] Method 2000 relates to a user interface (e.g., a snapshot home user interface 274) for supporting and monitoring the post-sharing lifecycle of dashboard snapshots (e.g., data snapshots). Along with the conversation, the viewer interacts with the dashboard snapshots that record the data. In some cases, a dashboard snapshot creator may want to review such telemetry information to understand the prevalence and popularity of the snapshots they have authored. Furthermore, given that users actively share dashboard snapshots on a collaboration platform, finding or discovering past dashboard snapshots is often difficult. The disclosed user interface displays a user's collection of past dashboard snapshots and the telemetry information for each dashboard snapshot in a centralized location within the collaboration platform application, thereby facilitating better organization and transmission of data. This also enhances the user experience (e.g., by enabling snapshot creators to find snapshots quickly and efficiently rather than searching through multiple messages or threads).

[0255] The disclosed user interface (e.g., the snapshot home user interface 274) is also an improvement over traditional approaches such as “pinning” snapshots on the creator’s own direct message channel (i.e., bookmarking important content within a conversation channel), as the number of snapshots can increase very rapidly over time (e.g., especially if snapshots are configured to automatically repeat). Snapshot telemetry is useful for monitoring audience reactions, especially when it is difficult for the creator to connect with individual viewers (e.g., when the audience is large). In some cases, snapshot telemetry / engagement data (e.g., views, emoji reactions, identification of viewers who viewed or engaged with the snapshot) can provide the snapshot creator with a better understanding of the forms of content that attract more attention from their audience. The snapshot creator can use this understanding to adjust subsequent snapshot design, level of detail, and publication rhythm accordingly. As a result, the disclosed methods, systems, and user interfaces improve data communication and make the user-device interface more efficient.

[0256] The computing device is (i) authored by the user of the computing device (e.g., the first user account) and (ii) displays a user interface (e.g., Snapshot Home User Interface 274) that includes multiple panes (e.g., Pane 1720; Figure 10) corresponding to multiple snapshots displayed on the messaging application of the collaboration platform. Each pane of the multiple panes contains its respective view (e.g., a visual rendering) of its respective snapshot (e.g., as shown in Figures 10 and 17F) (2008). The multiple snapshots include a first snapshot having one or more snapshot components (2010). Each snapshot component is generated from its respective data element in its respective data dashboard.

[0257] In some implementations, the user interface is the interface of the collaboration platform (2012).

[0258] In some implementations, the user interface is part of the same application that displays each data dashboard (2014).

[0259] In some implementations, each data element is one or more data cells from each data dashboard, one or more data values ​​from each data dashboard, one or more data marks from each dashboard data visualization, or one or more data visualizations from each dashboard (2016).

[0260] Referring to Figure 20B, in some implementations, the first snapshot includes a first snapshot component generated from the first data element of the first data dashboard and a second snapshot component generated from the second data element of a second data dashboard that is different from the first data dashboard (2020).

[0261] In some implementations, the first and second data elements are associated with the same data source (2022).

[0262] In some implementations, the first and second data elements are associated with separate data sources (2024).

[0263] The computing device displays information about the first snapshot (e.g., telemetry information) in an information panel adjacent to the first snapshot (e.g., information 1004, information panel 1722), including (i) metadata of one or more underlying dashboards (or underlying dashboard cells) corresponding to one or more snapshot components of the first snapshot, and (ii) identification information of the first channel (e.g., messaging group, Slack channel) of the collaboration platform to which the first snapshot is published (2026).

[0264] For example, in some implementations, the types of telemetry information provided may include views, unique views, comments on the first snapshot, reaction counts for the first snapshot, a list of people who viewed, commented on, and / or reacted to the first snapshot, comment content for comments received on the first snapshot, use of interactive filters by viewers, and general metadata (e.g., name, publication date, and original dashboard).

[0265] In some implementations, information about the first snapshot further includes the identification information (2028) of one or more users of the collaboration platform who viewed the first snapshot.

[0266] In some implementations, information about the first snapshot further includes information (e.g., metadata) about when the first snapshot was published on (e.g., to the messaging application) or published to the collaboration platform (2030).

[0267] Referring to Figure 20C, in response to detecting a first user selection of a notification displayed in the user interface (e.g., in an information panel) indicating that the first snapshot has expired (e.g., is no longer valid or fresh), the computing device sends one or more identifiers of one or more source dashboards (or source dashboard cells) to a computer system (e.g., a data visualization server 300) that is communicably connected to the computing device (2032).

[0268] In some implementations, the first snapshot is generated based on the user-specified date / time of the first component's expiration (2034). A notification is displayed in the user interface in response to the determination that the first date / time is the expiration date.

[0269] The computing device receives updated data (or metadata) from the computing system for one or more snapshot components of the first snapshot (e.g., data or metadata valid for the current period) (2036).

[0270] The computing device generates an updated view of the first snapshot (2038) according to the received updated data.

[0271] The computing device displays an updated view of the first snapshot in the user interface (2040).

[0272] In some implementations, the computing device receives user input to send a first snapshot to a first user of the collaboration platform, the first user being one of the identified one or more users (2042). In response to the user input, the computing device sends the first snapshot to the first user via a messaging application (2044).

[0273] In some implementations, the computing device receives user input to send a text message (different from, for example, the first snapshot) to a first user of the collaboration platform (2046), the first user being one of the identified one or more users. In response to the user input, the computing device sends the first snapshot to the first user via a messaging application (2048).

[0274] It should be understood that the specific order in which the operations in Figures 20A to 20D are described is merely an example and is not intended to indicate that the described order is the only order in which the operations can be performed. Those skilled in the art will recognize various ways of rearranging the operations described herein. In addition, it should be noted that details of other processes described herein with respect to other methods described herein (e.g., methods 1800 and 1900) are also applicable in a similar manner to method 2000 described above with respect to Figures 20A to 20D.

[0275] Each of the sets of executable modules, applications, or procedures identified above may be stored in one or more of the aforementioned memory devices and correspond to a set of instructions for performing the functions described above. The modules or programs (i.e., sets of instructions) identified above do not need to be implemented as separate software programs, procedures, or modules; therefore, various subsets of these modules can be combined or otherwise reconfigured in various implementations. In some implementations, memory stores a subset of the modules and data structures identified above. Furthermore, memory may store additional modules or data structures not described above.

[0276] The terms used herein in the description of the invention are for the purpose of describing specific implementations and are not intended to limit the invention. Where used in the description of the invention and in the appended claims, the singular forms "a," "an," and "the" are intended to include the plural form unless the context explicitly indicates otherwise. Where used herein, the terms "and / or" refer to any possible combination of one or more of the related enumerated items and shall be understood to encompass them. Where used herein, the terms "comprises" and / or "comprising" specify the presence of the described features, steps, actions, elements, and / or components, but shall not exclude the presence or addition of one or more other features, steps, actions, elements, components, and / or groups thereof.

[0277] As used herein, the phrase "based on" does not mean "based only on" unless otherwise specified. In other words, the phrase "based on" describes both "based only on" and "based at least on."

[0278] As used herein, the term “exemplary” means “acting as an example, case, or illustration,” and does not necessarily imply a preference or superiority of the example over other configurations or implementations.

[0279] As used herein, the term "and / or" encompasses any combination of the enumerated elements. For example, "A, B, and / or C" includes the following sets of elements: A only, B only, C only, A and B without C, A and C without B, B and C without A, and all combinations of A, B, and C of the three elements.

[0280] The above description is provided with reference to specific implementations for illustrative purposes. However, the above illustrative description is not intended to be exhaustive or to limit the invention to the exact form disclosed. Many modifications and variations are possible in light of the above teachings. The implementations have been selected and described to best illustrate the principles of the present invention and its practical application, thereby enabling those skilled in the art to best utilize the various implementations with various modifications suitable for the invention and the specific use intended. Examples of subject matter as clauses

[0281] Several implementation forms are described with respect to the following clauses.

[0282] <Clause 1> A method for retargeting dashboard content as a data snapshot for a collaboration platform, A computing device having a display, one or more processors, and memory for storing one or more programs configured for execution by one or more processors, A step of receiving a user selection of a first data element from a first data dashboard displayed on a computing device, wherein the user selection designates the first data element as a first snapshot component of a first snapshot. In response to receiving a user selection of a first data element from the first data dashboard, the first user interface displays multiple component properties for the first snapshot component. The steps include receiving user-specified first values ​​for at least a first subset of component properties among multiple component properties via a first user interface, Having received user-specified first values ​​for at least a first subset of component properties, The steps include updating the first snapshot component according to each first value, A step of generating a first snapshot that includes the first snapshot component, A step of displaying a first snapshot as a message on a messaging application run on an electronic device, wherein the messaging application is associated with a collaboration platform, and the step of displaying the snapshot. A method that includes this.

[0283] <Clause 2> Upon receiving a user selection designating the first data element as the first snapshot component, A step of generating a first component specification corresponding to a first snapshot component, wherein the first component specification includes multiple component properties, The steps include: inputting each first value into the first component specification according to the user-specified first value for at least a subset of properties; The method described in Clause 1, further including the method described in Clause 1.

[0284] <Clause 3> The step of receiving user selections of dimension data fields and sort order via the first user interface. It further includes, The step of generating the first snapshot component is: A step of generating a bar chart having multiple data bars, wherein each data bar represents a data value of a measure data field decomposed by a dimension field, and each data bar has a length that represents a portion of the first data element corresponding to each data value, The steps include: arranging the data bars in sort order according to the length of each data bar; The method described in Clause 1 or 2, including the method described in Clause 1 or 2.

[0285] <Clause 4> The step of receiving a user-specified time data field and date / time range for filtering the first data element via the first user interface. It further includes, The step of generating the first snapshot component includes the step of filtering the first data element to the date / time range of the time field. The method described in any of clauses 1 through 3.

[0286] <Clause 5> The first step of displaying multiple template icons corresponding to multiple templates via the user interface, A step of receiving a user selection of a first template icon from among multiple template icons, wherein the first template icon corresponds to the first template among multiple templates, and The steps include receiving user-specified parameters for one or more parameters for the first template, and It further includes, The step of generating the first snapshot includes the step of formatting the first snapshot components according to a first template and one or more parameters. The method described in any of clauses 1 through 4.

[0287] <Clause 6> A step of automatically generating a preview of the first snapshot component according to the user-specified first value for at least a first subset of component properties, The steps include displaying a preview of the first snapshot component in the first user interface and The method described in any of clauses 1 to 5, further including the method described in any of clauses 1 to 5.

[0288] <Clause 7> While displaying a preview of the first snapshot component, the step of receiving user input on the preview of the first snapshot component for annotating the first snapshot at a first position of the first snapshot, Steps include updating the preview display to include the shape and / or color of the first snapshot component at a first position in response to receiving user input. The method described in Clause 6, further including the method described in Clause 6.

[0289] <Clause 8> After generating the first snapshot component, the step of displaying a visual representation of the first snapshot component on the first data dashboard. The method described in any of clauses 1 through 7, further including the method described in any of clauses 1 through 7.

[0290] <Clause 9> A step to replace the display of the first data dashboard with a view of the first user interface in response to a user selection of a first data element from the first data dashboard. The method described in any of clauses 1 to 8, further including the method described in any of clauses 1 to 8.

[0291] <Clause 10> The first data element is the data value of the measure data field, The data value is determined via the first aggregation type. The method described in any of clauses 1 through 9.

[0292] <Clause 11> The first data element is the method described in any of Clauses 1 through 10, including the data marks of the data visualization on the first dashboard.

[0293] <Clause 12> The first data element is a data visualization on the first dashboard, as described in any of Clauses 1 through 11.

[0294] <Clause 13> The first snapshot includes a second snapshot component that is different from the first snapshot component. This method generates the first snapshot component but before generating the second snapshot component. A step of receiving a user selection for a second data element, wherein the user selection designates the second data element as a second snapshot component for a first snapshot. A step of generating a second component specification corresponding to a second snapshot component in accordance with the received user selection, wherein the second component specification includes multiple component properties, and The method described in any of the clauses 1 to 12, further including the method described in any of the clauses 1 to 12.

[0295] <Clause 14> The method of Clause 13, wherein the step of receiving a user selection designating a second data element as a second snapshot component includes the step of receiving a user selection of the second data element from a first data dashboard displayed on a computing device.

[0296] <Clause 15> The method of Clause 13 or 14, wherein the step of receiving a user selection designating a second data element as a second snapshot component includes the step of receiving a user selection of a second data element from a second data dashboard that is different from the first data dashboard and is displayed on a computing device.

[0297] <Clause 16> The method according to any one of Clauses 13 to 15, wherein the first data element is derived from a first data source, and the second data element is derived from a second data source different from the first data source.

[0298] <Clause 17> Before displaying the first snapshot on the electronic device, the step of receiving the user's selection of the layout type of the first snapshot. It further includes, The step of displaying the first snapshot on an electronic device includes the step of displaying the first snapshot on the electronic device with the selected layout type. The method described in any of clauses 1 through 16.

[0299] <Clause 18> The layout type is one of the following: single view, view stack, carousel layout, slideshow, mini dashboard, or animated layout, as described in Clause 17.

[0300] <Clause 19> The first snapshot is specified by multiple snapshot properties, The step of generating the first snapshot includes receiving user-specified second values ​​for each of the multiple snapshot properties, where the user-specified values ​​are: The first date / time when the data in the first snapshot is valid, The first snapshot should include the identification information of the collaboration platform to which it should be exported. The method described in any of the clauses 1 through 18, including the method described in any of these clauses.

[0301] <Clause 20> Multiple snapshot properties include metadata properties, and multiple snapshot properties include The first metadata property specifies the identifier of the first snapshot, A second metadata property that specifies the owner of the first snapshot, A third metadata property that specifies a pointer to the first chat message that displays the first snapshot, and The method described in Article 19, including the method described in Article 19.

[0302] <Clause 21> The first data dashboard is displayed in the data visualization application. The first user interface is the user interface for the data visualization application. The method described in any of clauses 1 through 20.

[0303] <Clause 22> The first data dashboard is displayed in the data visualization application. The first user interface is the user interface of the collaboration platform. The method described in any of clauses 1 through 21.

[0304] <Clause 23> The first data dashboard is displayed in the data visualization application. The first user interface is a user interface for an application that is different from both a data visualization application and a collaboration platform. The method described in any of clauses 1 through 22.

[0305] <Clause 24> The step of generating the first snapshot is: Step to display a second user interface that includes multiple panes. Includes, Each of the multiple panes corresponds to one of the snapshot properties of the first snapshot. The user selection for each field within each of the multiple panes specifies the respective value for the corresponding snapshot property. The method described in any of clauses 1 through 23.

[0306] <Clause 25> After updating the first snapshot component according to each first value, replace the display of the first user interface with the view of the first data dashboard. It further includes, The second user interface is displayed in response to the user's selection of affordances from the view of the first data dashboard. The method described in Article 24.

[0307] <Clause 26> The first data dashboard is displayed in the data visualization application. The second user interface is the user interface for the data visualization application. The method described in Article 24 or 25.

[0308] <Clause 27> The first data dashboard is displayed in the data visualization application. The second user interface is the user interface for the collaboration platform. The method described in Article 24 or 25.

[0309] <Clause 28> The first data dashboard is displayed in the data visualization application. The second user interface is a user interface for an application that is different from both data visualization applications and collaboration platforms. The method described in Article 24 or 25.

[0310] <Clause 29> The first user interface and the second user interface are both interfaces for the same application. The method described in Article 24 or 25.

[0311] <Clause 30> The second user interface includes a step of displaying a rendering of the first snapshot in the simulated chat interface. The method described in any of the clauses 24 to 29, further including the method described in any of the clauses 24 to 29.

[0312] <Clause 31> While displaying a rendering of the first snapshot in the second user interface, the second user interface receives a user selection of the first user-selectable icon in the first pane of a plurality of panes, A step of displaying an updated rendering of the first snapshot, including an affordance that allows the viewer of the first snapshot to request the updated first snapshot on the collaboration platform in response to a user selection. The method described in Clause 30, further including the method described in Clause 30.

[0313] <Clause 32> While displaying a rendering of the first snapshot in the second user interface, the second user interface receives a user selection of a second user-selectable icon in the second pane of a plurality of panes, A step of displaying an updated rendering of the first snapshot, including a text box that warns the viewer of the first snapshot that the data of the first snapshot is incomplete, in response to a user selection. The method described in clause 30 or 31, further including the method described in clause 30 or 31.

[0314] <Clause 33> Computing device, The display and One or more processors, Memory coupled to one or more processors and The memory includes one or more programs configured for execution by one or more processors, and the one or more programs include instructions for performing the method described in any of the clauses 1 to 32. Computing device.

[0315] <Clause 34> A non-temporary computer-readable medium for storing one or more programs for execution by one or more processors of a computing device, wherein one or more programs include instructions for performing the method described in any of Clauses 1 to 32.

[0316] <Clause 35> A method for generating a data snapshot for a collaboration platform, In a computer system having one or more processors and memory for storing one or more programs configured for execution by one or more processors, A step of receiving user-specified values ​​for each of the multiple snapshot properties of the first snapshot, The first snapshot includes one or more snapshot components, which include first snapshot components extracted from the first data dashboard, and the first data dashboard is associated with the first data source. User specification is, The first date / time when the data in the first snapshot is valid, The first snapshot is exported to the first collaboration platform and Steps including, Upon receiving user specifications, A step of generating a first snapshot specification for the first snapshot according to the respective values ​​for multiple snapshot properties, A step of generating a first snapshot according to the first snapshot specification, A step of displaying a first snapshot as a message on a messaging application of an electronic device, wherein the messaging application is associated with a first collaboration platform, and A method that includes this.

[0317] <Clause 36> The step of receiving a first request from the first collaboration platform to update the first snapshot, In response to the first request, the step of determining that the current date / time of the first request exceeds the first date / time for which the data in the first snapshot is valid, In accordance with the decision, A step of retrieving one or more updated data values ​​for a first snapshot component from a first data source, A step of generating an updated snapshot having one or more updated data values ​​for the first snapshot component, The steps include displaying the updated snapshot on an electronic device and The method described in Clause 35, further including the method described in Clause 35.

[0318] <Clause 37> The first snapshot component is generated in accordance with the first snapshot component specification, and the first snapshot component specification includes multiple component properties having multiple corresponding property values. This method, Steps include: retrieving one or more updated data values ​​for the first snapshot component from the first data source, and then updating the first snapshot component specification according to the one or more updated data values. The method described in Clause 36, further including the method described in Clause 36.

[0319] <Clause 38> The first snapshot component specification is stored on a computer system as described in Clause 37.

[0320] <Clause 39> The first request is initiated by the user of an electronic device, in any way described in any of Clauses 36 through 38.

[0321] <Clause 40> The first request is initiated by the creator of the first snapshot, as described in any of Clauses 36 through 38.

[0322] <Clause 41> The step of receiving user-specified values ​​for each of the multiple snapshot properties of the first snapshot includes the step of receiving user-specified first values ​​corresponding to the auto-repeat properties of the first snapshot, where the multiple first values ​​are: Frequency of repetition, Repeat expiration date, and The time when the first snapshot repeats and appears in the messaging application. The method described in any of the provisions 35 to 40, including at least two of the following.

[0323] <Clause 42> Following the display of the first snapshot as a message on the messaging application, According to a computer system's determination that multiple first values ​​corresponding to the automatic repeating property are satisfied, The steps include: retrieving the current data values ​​for one or more snapshot components from one or more data sources corresponding to one or more snapshot components of the first snapshot; The steps include generating the first iterative version of the first snapshot, The steps include displaying the first iterative version of the first snapshot on the messaging application of the electronic device, and The method described in Clause 41, further including the method described in Clause 41.

[0324] <Clause 43> Multiple first values ​​corresponding to the auto-repeat property of the first snapshot include the time at which the repetition of the first snapshot appears on the messaging application. The step of displaying the first repeating version of the first snapshot on the messaging application of the electronic device includes the step of displaying the first repeating version of the first snapshot at the time specified in the automatic repeating property. The method described in Article 42.

[0325] <Clause 44> The method of Clause 42 or 43, further comprising the step of updating the first snapshot specification according to the respective current data values ​​for one or more snapshot components.

[0326] <Clause 45> The step of receiving user-specified values ​​for each of the multiple snapshot properties of the first snapshot includes the step of receiving user-specified layout type of the first snapshot, The step of displaying the first snapshot on an electronic device includes the step of displaying the first snapshot on the electronic device with the selected layout type. The method described in any of clauses 35 to 44.

[0327] <Clause 46> The layout type is one of the following: single view, view stack, carousel layout, slideshow, mini dashboard, or animated layout, as described in Clause 44.

[0328] <Clause 47> One or more snapshot components include multiple snapshot components, Each snapshot component in the multiple snapshot components corresponds to the respective data element from the respective data dashboard. The method described in any of clauses 35 to 46.

[0329] <Clause 48> Each data element is: One or more data cells from each data dashboard, One or more data values ​​from the data fields in each data dashboard, One or more data fields from each dashboard, One or more data markers from the data visualizations in each dashboard, or One or more data visualizations from each dashboard One of them is the method described in Article 47.

[0330] <Clause 49> User designations are received via a computing device that is communicably connected to a computer system and is separate from the computer system, as described in any of Clauses 35 to 48.

[0331] <Clause 50> The step of displaying a rendering of the first snapshot within a simulated chat interface on a computing device, in accordance with receiving user-specified values ​​for each of the multiple snapshot properties of the first snapshot. The method described in Clause 49, further including the method described in Clause 49.

[0332] <Clause 51> The step of displaying the first snapshot as a message on a messaging application includes the step of sending the first snapshot to the first collaboration platform by a computer system, as described in any of Clauses 35 to 50.

[0333] <Clause 52> One or more snapshot components include a second snapshot component extracted from a second data dashboard, as described in any of Clauses 35 to 51.

[0334] <Clause 53> The second data dashboard is associated with the first data source as described in Clause 52.

[0335] <Clause 54> The method described in Clause 52, wherein the second data dashboard is associated with a second data source different from the first data source.

[0336] <Clause 55> A computer system, One or more processors, Memory coupled to one or more processors and The memory includes one or more programs configured for execution by one or more processors, and the one or more programs include instructions for performing the method described in any of the clauses 35 to 54. Computer system.

[0337] <Clause 56> A non-temporary computer-readable medium storing one or more programs configured for execution by one or more processors of a computer system, wherein one or more programs include instructions for performing the method described in any of Clauses 35 to 54.

[0338] <Clause 57> A method for performing data snapshots and interactions, A computing device including a display, one or more processors, and memory for storing one or more programs configured for execution by one or more processors, (i) a user interface that is authored by a user of a computing device and (ii) displays a user interface that includes multiple panes corresponding to multiple snapshots displayed on a messaging application of a collaboration platform, Each pane in the multiple panes contains its respective view of its respective snapshot. Multiple snapshots include a first snapshot having one or more snapshot components, each of which is generated from the respective data elements of the respective data dashboard. Steps and The step of displaying information about the first snapshot in an information panel adjacent to the first snapshot, wherein the information is: Metadata from one or more underlying dashboards corresponding to one or more snapshot components of the first snapshot, Identification information for the first channel of the collaboration platform where the first snapshot will be published, Steps including, In response to detecting the first user selection in the notification displayed in the user interface indicating that the first snapshot has expired, The steps include sending one or more identifiers of one or more source dashboards to a computer system that is communicably connected to a computing device, A step of receiving updated data for one or more snapshot components of the first snapshot from a computing system, The steps include generating an updated view of the first snapshot according to the received updated data, The steps include displaying the updated view of the first snapshot in the user interface and A method that includes this.

[0339] <Clause 58> The first snapshot is generated based on the user-specified date / time on the first day when the first snapshot component of the first snapshot expires. The notification will appear in the user interface in response to the determination that the expiration date / time is 1. The method described in Article 57.

[0340] <Clause 59> The information relating to the first snapshot is the method described in Clause 57 or 58, further including information relating to the date and time the first snapshot was published on the messaging application.

[0341] <Clause 60> Information regarding the first snapshot is, Identification information of one or more users on the collaboration platform who viewed the first snapshot. The method described in any of the clauses 57 to 59, further including the method described in any of the clauses 57 to 59.

[0342] <Clause 61> A step of receiving user input for sending a first snapshot to a first user of the collaboration platform, wherein the first user is not one of the identified one or more users, The steps include sending a first snapshot to the first user via a messaging application in response to user input, and The method described in Clause 60, further including the method described in Clause 60.

[0343] <Clause 62> A step of receiving user input for sending a text message to a first user of a collaboration platform, wherein the first user is not one of the identified one or more users, The steps include sending a text message to a first user via a messaging application in response to user input, and The method described in Clause 60 or 61, further including the method described in Clause 60 or 61.

[0344] <Clause 63> The user interface is the interface of the collaboration platform, as described in any of Clauses 57 to 62.

[0345] <Clause 64> The user interface is part of the same application that displays each data dashboard, as described in any of Clauses 57 through 63.

[0346] <Clause 65> Each data element is: One or more data cells from each data dashboard, One or more data values ​​from the data fields in each data dashboard, One or more data fields from each dashboard, One or more data markers from the data visualizations in each dashboard, or One or more data visualizations from each dashboard The method described in any of the provisions 57 to 64, which is one of the methods described herein.

[0347] <Clause 66> The first snapshot is, The first snapshot component generated from the first data element of the first data dashboard, The second snapshot component is generated from the second data element of the second data dashboard, which is different from the first data dashboard. The method described in any of the clauses 57 to 65, including the method described in any of the clauses 57 to 65.

[0348] <Clause 67> The method described in Clause 66, wherein the first and second data elements are associated with the same data source.

[0349] <Clause 68> The method according to Clause 66, wherein the first and second data elements are associated with separate data sources.

[0350] <Clause 69> A computer system, One or more processors, Memory coupled to one or more processors and The memory includes one or more programs configured for execution by one or more processors, and the one or more programs include instructions for performing the method described in any of the clauses 57 to 682. Computer system.

[0351] <Clause 70> A non-temporary computer-readable medium storing one or more programs configured for execution by one or more processors of a computer system, wherein one or more programs include instructions for performing the method described in any of Clauses 57 to 68.

Claims

1. A method for retargeting dashboard content as a data snapshot for a collaboration platform, A computing device having a display, one or more processors, and memory for storing one or more programs configured for execution by the one or more processors, A step of receiving a user selection of a first data element from a first data dashboard displayed on the computing device, wherein the user selection designates the first data element as a first snapshot component of a first snapshot. In response to receiving the user selection of the first data element from the first data dashboard, the first user interface displays a plurality of component properties for the first snapshot component; The steps include receiving a user specification of a first value for at least a first subset of component properties among the plurality of component properties via the first user interface, Upon receiving the user-specified first values ​​for at least the first subset of component properties, A step of updating the first snapshot component according to the first value, The steps include generating a first snapshot that includes the first snapshot component, A step of displaying the first snapshot as a message on a messaging application run by an electronic device, wherein the messaging application is associated with a collaboration platform, and A method that includes this.

2. Upon receiving the user selection that designates the first data element as the first snapshot component, A step of generating a first component specification corresponding to the first snapshot component, wherein the first component specification includes the plurality of component properties, The steps include: inputting the first values ​​into the first component specification in accordance with the user specification of the first values ​​for at least the first subset of component properties; The method according to claim 1, further comprising:

3. The first step of receiving user selections for dimension data fields and sort order via the first user interface. It further includes, The step of generating the first snapshot component is: A step of generating a bar graph having multiple data bars, wherein each of the data bars represents a data value of a measure data field decomposed by the dimension data field, and each has a length that represents a portion of the first data element corresponding to each of the data values, The steps include: arranging the data bars in the sort order according to the length of each of the data bars; The method according to claim 1, including the method described in claim 1.

4. The first user interface receives user-specified time data fields and date / time ranges for filtering the first data elements. It further includes, The step of generating the first snapshot component includes the step of filtering the first data element to the date / time range of the time data field, The method according to claim 1.

5. The steps include displaying multiple template icons corresponding to multiple templates via the first user interface, A step of receiving a user selection of a first template icon from among the plurality of template icons, wherein the first template icon corresponds to the first template from among the plurality of templates, The steps include receiving user-specified parameters for the first template and It further includes, The step of generating the first snapshot includes the step of formatting the first snapshot components according to the first template and the one or more parameters, The method according to claim 1.

6. A step of automatically generating a preview of the first snapshot component according to the user-specified first values ​​for at least the first subset of component properties, The steps include displaying the preview of the first snapshot component on the first user interface and The method according to claim 1, further comprising:

7. The steps include: while displaying the preview of the first snapshot component, receiving user input on the preview of the first snapshot component for annotating the first snapshot at a first position of the first snapshot; In response to receiving the user input, the step of updating the preview display to include the shape and / or color of the first snapshot component at the first position. The method according to claim 6, further comprising:

8. The step of generating the first snapshot component and then displaying a visual representation of the first snapshot component on the first data dashboard. The method according to claim 1, further comprising:

9. The first data element is, One or more data cells from the first data dashboard, One or more data values ​​from the data fields of the first data dashboard, One or more data markers from the data visualizations from the first data dashboard, or One or more data visualizations from the first data dashboard The method according to claim 1, wherein the method is any one of the following.

10. The first snapshot is specified by multiple snapshot properties, The step of generating the first snapshot includes receiving a user specification of a second value corresponding to the plurality of snapshot properties, the user specification being: The first date / time when the data in the first snapshot is valid, The identification information of the collaboration platform to which the first snapshot should be exported and The method according to claim 1, including the method described in claim 1.

11. The first snapshot includes a second snapshot component that is different from the first snapshot component, The method described above is performed after generating the first snapshot component and before generating the second snapshot component. A step of receiving a user selection for a second data element, wherein the user selection designates the second data element as the second snapshot component for the first snapshot. A step of generating a second component specification corresponding to the second snapshot component in accordance with the receipt of the user selection, wherein the second component specification includes the plurality of component properties The method according to claim 1, further comprising:

12. The method according to claim 11, wherein the step of receiving the user selection that designates the second data element as the second snapshot component includes the step of receiving the user selection of the second data element from the first data dashboard displayed on the computing device.

13. The method according to claim 11, wherein the step of receiving the user selection that designates the second data element as the second snapshot component includes the step of receiving the user selection of the second data element from a second data dashboard, which is displayed on the computing device and is different from the first data dashboard.

14. The method according to claim 11, wherein the first data element is derived from a first data source, and the second data element is derived from a second data source different from the first data source.

15. Before displaying the first snapshot on the electronic device, the step of receiving a user selection for the layout type of the first snapshot. It further includes, The step of displaying the first snapshot on the electronic device includes the step of displaying the first snapshot on the electronic device in a selected layout type. The method according to claim 1.

16. The method according to claim 15, wherein the layout type is one of a single view, a view stack, a carousel layout, a slideshow, a mini dashboard, or an animated layout.

17. A computing device, The display and One or more processors, The memory coupled to one or more processors The memory stores one or more programs configured for execution by the one or more processors, and the one or more programs are Receiving a user selection of a first data element from a first data dashboard displayed on the computing device, wherein the user selection designates the first data element as a first snapshot component of a first snapshot; In response to receiving the user selection of the first data element from the first data dashboard, the first user interface displays a plurality of component properties for the first snapshot component, The first user interface receives user-specified first values ​​for at least a first subset of component properties among the plurality of component properties, Upon receiving the user-specified first values ​​for at least the first subset of component properties, Updating the first snapshot component according to the first value, To generate a first snapshot including the first snapshot component, Displaying the first snapshot as a message on a messaging application run by an electronic device, wherein the messaging application is associated with a collaboration platform. A computing device that includes instructions for performing a task.

18. The computing device according to claim 17, wherein the one or more programs further include instructions for performing the method according to any one of claims 2 to 16.

19. A program including instructions, wherein when the instructions are executed by a computing device, the computing device: Receiving a user selection of a first data element from a first data dashboard displayed on the computing device, wherein the user selection designates the first data element as a first snapshot component of a first snapshot; In response to receiving the user selection of the first data element from the first data dashboard, the first user interface displays a plurality of component properties for the first snapshot component, The first user interface receives user-specified first values ​​for at least a first subset of component properties among the plurality of component properties, Upon receiving the user-specified first values ​​for at least the first subset of component properties, Updating the first snapshot component according to the first value, To generate a first snapshot including the first snapshot component, Displaying the first snapshot as a message on a messaging application run by an electronic device, wherein the messaging application is associated with a collaboration platform. A program configured to perform a certain action.

20. The program according to claim 19, which, when executed by the computing device, further includes an instruction causing the computing device to perform the method according to any one of claims 2 to 16.

Citation Information

Patent Citations

  • Data management storage system

    JP2012256144A

  • Assignment of data elements to visualization edges based on semantic distance

    JP2017537367A

  • Display control device and computer program

    JP2021060750A

  • Systems and methods for managing tasks

    US20160224939A1

  • Generating dashboards using a mobile computing device

    US20170097742A1