IP Library › Granted Patent US 12,730,694
Granted Patent B2
US 12,730,694 · App. 18/391,634 · Granted Sep 8, 2026

Visual components in a data-agnostic dashboard runtime environment

Inventors: Skip Sauls (San Francisco, CA); Medha Srivastava (San Francisco, CA); Edward Mengel (San Francisco, CA); Sameer Sethi (San Francisco, CA); James Diefenderfer (San Francisco, CA)
Assignee: Salesforce, Inc.
G06F9/545G06F8/34G06F9/542G06F16/2448G06F16/2452G06F16/26G06Q40/02G06F3/04817G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,730,694
App. No.
18/391,634
Granted
Sep 8, 2026
Kind
B2
Abstract

A dashboard runtime component includes (1) a visualization component configured to render a visual representation of data items retrieved from a data source and (2) a query execution component associated with at least the visualization component. The query execution component is configured to retrieve the data items from the data source. The dashboard runtime component also includes an application data interface configured to provide communication between the visualization component and the query execution component, including: (i) receiving notification of user interaction with the visualization component; (ii) passing a message to the query execution component, the message including instructions to execute an updated query according to the user interaction; (iii) receiving, from the query execution component, a dataset retrieved from the data source according to execution of the updated query; and (iv) passing the dataset to the visualization component, causing the visualization component to render an updated visual representation.

Claims (45)

1 . A dashboard runtime environment for a data visualization platform, implemented on a computing device having one or more processors and memory, the dashboard runtime environment comprising:

a visualization component implemented in a visualization layer of the dashboard runtime environment and configured to render, in a graphical user interface, a visual representation of data items retrieved from a data source;

a query component implemented in a data layer of the dashboard runtime environment and associated with at least the visualization component, wherein the query component is configured to retrieve the data items from the data source; and

an application programming interface (API) configured to provide communication between the visualization component and the query component during runtime, including:

receiving, at the API, notification of user interaction with the visualization component via a first message;

passing, by the API, a second message to the query component at the data layer, the second message including instructions to execute an updated query according to the user interaction;

receiving, at the API, a dataset retrieved from the data source according to execution of the updated query; and

passing the dataset, by the API via a third message, to the visualization component at the visualization layer, causing the visualization component to render an updated visual representation in the graphical user interface;

wherein the API is configured to convert messages from one layer into instructions readable by another layer of the visualization layer and the data layer and to route messages between the visualization layer and the data layer.

2 . The dashboard runtime environment of claim 1 , wherein the visualization component is configured to render, in the graphical user interface, one or more widgets corresponding to the data items, wherein the user interaction corresponds to an interaction with the one or more widgets.

3 . The dashboard runtime environment of claim 1 , wherein the API is further configured to:

in accordance with a determination that a user interaction with the visualization component requires updated data items from the data source, pass a message from the visualization layer to the query component at data layer for query execution based on the user interaction.

4 . The dashboard runtime environment of claim 1 , wherein the API is further configured to:

access a declarative file and apply to the dataset, facets, bindings or filters defined for the query component, prior to passing the dataset, via the third message, to the visualization component.

5 . The dashboard runtime environment of claim 4 , wherein the facets or bindings include information in a programmatic language that defines interactions among different components of one or more widgets.

6 . The dashboard runtime environment of claim 4 , wherein a facet is a type of automatic filter used to select a filtering operation for application within a widget.

7 . The dashboard runtime environment of claim 6 , wherein the selection of the filtering operation automatically filters all other linked widgets for the widget, using steps from a same or different datasets.

8 . The dashboard runtime environment of claim 7 , wherein the automatic filter includes application of a same or different filtering operations to the other linked widgets.

9 . The dashboard runtime environment of claim 8 , wherein the data layer is configured to identify a filtering operation and data to be filtered based on the user interaction, identify data linked to the data to be filtered, and automatically inject the filtering operation or other filtering operations into other steps associated with the other linked widgets.

10 . The dashboard runtime environment of claim 4 , wherein the bindings include a mapping of user interactions and/or data item selections to visualization parameters used for generating visual representations.

11 . The dashboard runtime environment of claim 4 , wherein the bindings bind one or more steps to one or more other steps, wherein a selection or results of one step triggers updates in other steps.

12 . The dashboard runtime environment of claim 4 , wherein the bindings include selection bindings that update a step based on a selection in another step.

13 . The dashboard runtime environment of claim 4 , wherein the bindings include selection bindings that specify: (i) interactions between widgets that use steps from different datasets; (ii) filters, measures, groupings, and other aspects of a step query; and (iii) widget display properties for various widget types.

14 . The dashboard runtime environment of claim 13 , wherein the widget display properties include at least one of: a selection of data or data type to display from one or more datasets; a particular graph, chart, or map in which to view the selected data; color schemes for graphs, charts or maps; and a position or orientation of the graphs, charts, or maps within a widget.

15 . The dashboard runtime environment of claim 4 , wherein the bindings include result bindings that update a step based on results of another step.

16 . The dashboard runtime environment of claim 4 , wherein the bindings include result bindings that define intermediate results for a complex calculation and/or dynamically change display of a widget based on results of a step.

17 . The dashboard runtime environment of claim 4 , further comprising a parser generator configured to parse a context free grammar or context-free language into an abstract syntax tree (AST), JavaScript code, or a script or syntax for execution.

18 . The dashboard runtime environment of claim 1 , wherein the API is further configured to display a dashboard state graphical user interface for displaying one or more user attributes of a dashboard state as well as static and dynamic attributes of one or more widgets and one or more queries including current user selections, applied filters, and user navigation.

19 . A method comprising:

at a computer system having one or more processors and memory storing one or more programs:

detecting a user interaction with a portion of visualization component implemented in a visualization layer of a dashboard runtime environment, wherein the visualization component is configured to render, in a graphical user interface, a visual representation of data items retrieved from a data source in response to execution of a query associated with the visualization component;

receiving, at an application programming interface (API), notification of the user interaction via a first message, wherein the API is configured to route messages between the visualization layer and a data layer and to convert messages from one layer into instructions readable by another layer of the visualization layer and the data layer;

converting, by the API, the first message into a second message with instructions executable by the data layer;

passing, by the API, the second message to a query component at the data layer, wherein the second message includes instructions that when executed send an updated query to the data source and the updated query corresponds to the query associated with the visual component that is updated according to the user interaction;

receiving, by the API via a third message, a dataset retrieved from the data source according to execution of the updated query;

converting, by the API, the third message into a fourth message with instructions executable by the visualization layer; and

passing the retrieved dataset, by the API via a fourth message, to the visualization component, causing the visualization component to render an updated visual representation in the graphical user interface.

20 . A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions that, when executed by a computer system, cause the computer system to:

detect a user interaction with a portion of visualization component implemented in a visualization layer of a dashboard runtime environment, wherein the visualization component is configured to render, in a graphical user interface, a visual representation of data items retrieved from a data source in response to execution of a query associated with the visualization component;

receive, at an application programming interface (API), notification of the user interaction via a first message, wherein the API is configured to route messages between the visualization layer and a data layer and to convert messages from one layer into instructions readable by another layer of the visualization layer and the data layer;

convert, by the API, the first message into a second message with instructions executable by the data layer;

pass, by the API, the second message to a query component at the data layer, wherein the second message includes instructions that when executed send an updated query to the data source and the updated query corresponds to the query associated with the visual component that is updated according to the user interaction;

receive, by the API via a third message, a dataset retrieved from the data source according to execution of the updated query;

convert, by the API, the third message into a fourth message with instructions executable by the visualization layer; and

pass the retrieved dataset, by the API via a fourth message, to the visualization component, causing the visualization component to render an updated visual representation in the graphical user interface.

Continuity (2)
Continuation 17400062 · Aug 11, 2021
Related Publication 20240126621A1 · Apr 18, 2024
References Cited (198)
US 5577188A · Zhu · 1996 [cited by applicant]
US 5608872A · Schwartz et al. · 1997 [cited by applicant]
US 5649104A · Carleton et al. · 1997 [cited by applicant]
US 5715450A · Ambrose et al. · 1998 [cited by applicant]
US 5761419A · Schwartz et al. · 1998 [cited by applicant]
US 5819038A · Carleton et al. · 1998 [cited by applicant]
US 5821937A · Tonelli et al. · 1998 [cited by applicant]
US 5831610A · Tonelli et al. · 1998 [cited by applicant]
US 5873096A · Lim et al. · 1999 [cited by applicant]
US 5918159A · Fomukong et al. · 1999 [cited by applicant]
US 5963953A · Cram et al. · 1999 [cited by applicant]
US 5983227A · Nazem et al. · 1999 [cited by applicant]
US 6092083A · Brodersen et al. · 2000 [cited by applicant]
US 6161149A · Achacoso et al. · 2000 [cited by applicant]
US 6169534B1 · Raffel et al. · 2001 [cited by applicant]
US 6178425B1 · Brodersen et al. · 2001 [cited by applicant]
US 6189011B1 · Lim et al. · 2001 [cited by applicant]
US 6216133B1 · Masthoff · 2001 [cited by applicant]
US 6216135B1 · Brodersen et al. · 2001 [cited by applicant]
US 6233617B1 · Rothwein et al. · 2001 [cited by applicant]
US 6236978B1 · Tuzhilin · 2001 [cited by applicant]
US 6266669B1 · Brodersen et al. · 2001 [cited by applicant]
US 6288717B1 · Dunkle · 2001 [cited by applicant]
US 6295530B1 · Ritchie et al. · 2001 [cited by applicant]
US 6324568B1 · Diec et al. · 2001 [cited by applicant]
US 6324693B1 · Brodersen et al. · 2001 [cited by applicant]
US 6336137B1 · Lee et al. · 2002 [cited by applicant]
US D454139S · Feldcamp et al. · 2002 [cited by applicant]
US 6367077B1 · Brodersen et al. · 2002 [cited by applicant]
US 6393605B1 · Loomans · 2002 [cited by applicant]
US 6405220B1 · Brodersen et al. · 2002 [cited by applicant]
US 6411949B1 · Schaffer · 2002 [cited by applicant]
US 6434550B1 · Warner et al. · 2002 [cited by applicant]
US 6446089B1 · Brodersen et al. · 2002 [cited by applicant]
US 6535909B1 · Rust · 2003 [cited by applicant]
US 6549908B1 · Loomans · 2003 [cited by applicant]
US 6553563B2 · Ambrose et al. · 2003 [cited by applicant]
US 6560461B1 · Fomukong et al. · 2003 [cited by applicant]
US 6574635B2 · Stauber et al. · 2003 [cited by applicant]
US 6577726B1 · Huang et al. · 2003 [cited by applicant]
US 6601087B1 · Zhu et al. · 2003 [cited by applicant]
US 6604117B2 · Lim et al. · 2003 [cited by applicant]
US 6604128B2 · Diec et al. · 2003 [cited by applicant]
US 6609150B2 · Lee et al. · 2003 [cited by applicant]
US 6621834B1 · Scherpbier et al. · 2003 [cited by applicant]
US 6654032B1 · Zhu et al. · 2003 [cited by applicant]
US 6665648B2 · Brodersen et al. · 2003 [cited by applicant]
US 6665655B1 · Warner et al. · 2003 [cited by applicant]
US 6684438B2 · Brodersen et al. · 2004 [cited by applicant]
US 6711565B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6724399B1 · Katchour et al. · 2004 [cited by applicant]
US 6728702B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6728960B1 · Loomans et al. · 2004 [cited by applicant]
US 6732095B1 · Warshaysky et al. · 2004 [cited by applicant]
US 6732100B1 · Brodersen et al. · 2004 [cited by applicant]
US 6732111B2 · Brodersen et al. · 2004 [cited by applicant]
US 6754681B2 · Brodersen et al. · 2004 [cited by applicant]
US 6763351B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6763501B1 · Zhu et al. · 2004 [cited by applicant]
US 6768904B2 · Kim · 2004 [cited by applicant]
US 6772229B1 · Achacoso et al. · 2004 [cited by applicant]
US 6782383B2 · Subramaniam et al. · 2004 [cited by applicant]
US 6804330B1 · Jones et al. · 2004 [cited by applicant]
US 6826565B2 · Ritchie et al. · 2004 [cited by applicant]
US 6826582B1 · Chatterjee et al. · 2004 [cited by applicant]
US 6826745B2 · Coker · 2004 [cited by applicant]
US 6829655B1 · Huang et al. · 2004 [cited by applicant]
US 6842748B1 · Warner et al. · 2005 [cited by applicant]
US 6850895B2 · Brodersen et al. · 2005 [cited by applicant]
US 6850949B2 · Warner et al. · 2005 [cited by applicant]
US 6907566B1 · McElfresh et al. · 2005 [cited by applicant]
US 7062502B1 · Kesler · 2006 [cited by applicant]
US 7069231B1 · Cinarkaya · 2006 [cited by applicant]
US 7069497B1 · Desai · 2006 [cited by applicant]
US 7100111B2 · McElfresh et al. · 2006 [cited by applicant]
US 7181758B1 · Chan · 2007 [cited by applicant]
US 7269590B2 · Hull et al. · 2007 [cited by applicant]
US 7289976B2 · Kihneman et al. · 2007 [cited by applicant]
US 7340411B2 · Cook · 2008 [cited by applicant]
US 7356482B2 · Frankland et al. · 2008 [cited by applicant]
US 7373599B2 · McElfresh et al. · 2008 [cited by applicant]
US 7401094B1 · Kesler · 2008 [cited by applicant]
US 7406501B2 · Szeto et al. · 2008 [cited by applicant]
US 7412455B2 · Dillon · 2008 [cited by applicant]
US 7454509B2 · Boulter et al. · 2008 [cited by applicant]
US 7508789B2 · Chan · 2009 [cited by applicant]
US 7599935B2 · La Rotonda et al. · 2009 [cited by applicant]
US 7603331B2 · Tuzhilin et al. · 2009 [cited by applicant]
US 7603483B2 · Psounis et al. · 2009 [cited by applicant]
US 7620655B2 · Larsson et al. · 2009 [cited by applicant]
US 7644122B2 · Weyer et al. · 2010 [cited by applicant]
US 7668861B2 · Steven · 2010 [cited by applicant]
US 7698160B2 · Beaven et al. · 2010 [cited by applicant]
US 7730478B2 · Weissman · 2010 [cited by applicant]
US 7747648B1 · Kraft et al. · 2010 [cited by applicant]
US 7779039B2 · Weissman et al. · 2010 [cited by applicant]
US 7779475B2 · Jakobson et al. · 2010 [cited by applicant]
US 7827208B2 · Bosworth et al. · 2010 [cited by applicant]
US 7853881B1 · Aly Assal et al. · 2010 [cited by applicant]
US 7945653B2 · Zukerberg et al. · 2011 [cited by applicant]
US 8005896B2 · Cheah · 2011 [cited by applicant]
US 8014943B2 · Jakobson · 2011 [cited by applicant]
US 8015495B2 · Achacoso et al. · 2011 [cited by applicant]
US 8032297B2 · Jakobson · 2011 [cited by applicant]
US 8073850B1 · Hubbard et al. · 2011 [cited by applicant]
US 8082301B2 · Ahlgren et al. · 2011 [cited by applicant]
US 8095413B1 · Beaven · 2012 [cited by applicant]
US 8095531B2 · Weissman et al. · 2012 [cited by applicant]
US 8095594B2 · Beaven et al. · 2012 [cited by applicant]
US 8103611B2 · Tuzhilin et al. · 2012 [cited by applicant]
US 8150913B2 · Cheah · 2012 [cited by applicant]
US 8209308B2 · Rueben et al. · 2012 [cited by applicant]
US 8209333B2 · Hubbard et al. · 2012 [cited by applicant]
US 8275836B2 · Beaven et al. · 2012 [cited by applicant]
US 8457545B2 · Chan · 2013 [cited by applicant]
US 8484111B2 · Frankland et al. · 2013 [cited by applicant]
US 8490025B2 · Jakobson et al. · 2013 [cited by applicant]
US 8504945B2 · Jakobson et al. · 2013 [cited by applicant]
US 8510045B2 · Rueben et al. · 2013 [cited by applicant]
US 8510664B2 · Rueben et al. · 2013 [cited by applicant]
US 8566301B2 · Rueben et al. · 2013 [cited by applicant]
US 8646103B2 · Jakobson et al. · 2014 [cited by applicant]
US D782506S · Mengel, III · 2017 [cited by applicant]
US D784409S · Mengel, III · 2017 [cited by applicant]
US D798326S · Kim · 2017 [cited by applicant]
US D809556S · Mengel, III · 2018 [cited by applicant]
US 10360136B2 · Zheng · 2019 [cited by applicant]
US 10802673B2 · Mengel, III · 2020 [cited by applicant]
US 10852926B2 · Zheng · 2020 [cited by applicant]
US 11054971B2 · Zheng · 2021 [cited by applicant]
US 20010044791A1 · Richter et al. · 2001 [cited by applicant]
US 20020072951A1 · Lee et al. · 2002 [cited by applicant]
US 20020082892A1 · Raffel et al. · 2002 [cited by applicant]
US 20020129352A1 · Brodersen et al. · 2002 [cited by applicant]
US 20020140731A1 · Subramaniam et al. · 2002 [cited by applicant]
US 20020143997A1 · Huang et al. · 2002 [cited by applicant]
US 20020162090A1 · Parnell et al. · 2002 [cited by applicant]
US 20020165742A1 · Robbins · 2002 [cited by applicant]
US 20030004971A1 · Gong · 2003 [cited by applicant]
US 20030018705A1 · Chen et al. · 2003 [cited by applicant]
US 20030018830A1 · Chen et al. · 2003 [cited by applicant]
US 20030066031A1 · Laane et al. · 2003 [cited by applicant]
US 20030066032A1 · Ramachandran et al. · 2003 [cited by applicant]
US 20030069936A1 · Warner et al. · 2003 [cited by applicant]
US 20030070000A1 · Coker et al. · 2003 [cited by applicant]
US 20030070004A1 · Mukundan et al. · 2003 [cited by applicant]
US 20030070005A1 · Mukundan et al. · 2003 [cited by applicant]
US 20030074418A1 · Coker et al. · 2003 [cited by applicant]
US 20030120675A1 · Stauber et al. · 2003 [cited by applicant]
US 20030151633A1 · George et al. · 2003 [cited by applicant]
US 20030159136A1 · Huang et al. · 2003 [cited by applicant]
US 20030187921A1 · Diec et al. · 2003 [cited by applicant]
US 20030189600A1 · Gune et al. · 2003 [cited by applicant]
US 20030204427A1 · Gune et al. · 2003 [cited by applicant]
US 20030206192A1 · Chen et al. · 2003 [cited by applicant]
US 20030225730A1 · Warner et al. · 2003 [cited by applicant]
US 20040001092A1 · Rothwein et al. · 2004 [cited by applicant]
US 20040010489A1 · Rio et al. · 2004 [cited by applicant]
US 20040015981A1 · Coker et al. · 2004 [cited by applicant]
US 20040027388A1 · Berg et al. · 2004 [cited by applicant]
US 20040128001A1 · Levin et al. · 2004 [cited by applicant]
US 20040186860A1 · Lee et al. · 2004 [cited by applicant]
US 20040193510A1 · Catahan et al. · 2004 [cited by applicant]
US 20040199489A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040199536A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040199543A1 · Braud et al. · 2004 [cited by applicant]
US 20040249854A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040260534A1 · Pak et al. · 2004 [cited by applicant]
US 20040260659A1 · Chan et al. · 2004 [cited by applicant]
US 20040268299A1 · Lei et al. · 2004 [cited by applicant]
US 20050050555A1 · Exley et al. · 2005 [cited by applicant]
US 20050091098A1 · Brodersen et al. · 2005 [cited by applicant]
US 20080249972A1 · Dillon · 2008 [cited by applicant]
US 20090063415A1 · Chatfield et al. · 2009 [cited by applicant]
US 20090100342A1 · Jakobson · 2009 [cited by applicant]
US 20090177744A1 · Marlow et al. · 2009 [cited by applicant]
US 20100272105A1 · Li · 2010 [cited by examiner]
US 20110218958A1 · Warshaysky · 2011 [cited by applicant]
US 20110247051A1 · Bulumulla · 2011 [cited by applicant]
US 20120042218A1 · Cinarkaya · 2012 [cited by applicant]
US 20120233137A1 · Jakobson et al. · 2012 [cited by applicant]
US 20120290407A1 · Hubbard et al. · 2012 [cited by applicant]
US 20130212497A1 · Zelenko et al. · 2013 [cited by applicant]
US 20130218948A1 · Jakobson · 2013 [cited by applicant]
US 20130218949A1 · Jakobson · 2013 [cited by applicant]
US 20130218966A1 · Jakobson · 2013 [cited by applicant]
US 20130246627A1 · Taylor · 2013 [cited by examiner]
US 20130247216A1 · Cinarkaya · 2013 [cited by applicant]
US 20140359537A1 · Jackobson et al. · 2014 [cited by applicant]
US 20160103592A1 · Prophete · 2016 [cited by examiner]
US 20160103886A1 · Prophete · 2016 [cited by examiner]
US 20170097742A1 · Mengel, III · 2017 [cited by applicant]
US 20170097956A1 · Mengel, III · 2017 [cited by applicant]
US 20200045375A1 · Sethi · 2020 [cited by applicant]
US 20210149695A1 · Tran · 2021 [cited by applicant]
Lim Ju Ho, KR 20170124187 (translation), Nov. 10, 2017, 7pgs <KR_20170124187.pdf>. [cited by examiner]
Sauls, Office Action, U.S. Appl. No. 17/400,062, May 19, 2023, 18 pgs. [cited by applicant]
Sauls, Notice of Allowance, U.S. Appl. No. 17/400,062, Sep. 20, 2023, 8 pgs. [cited by applicant]