# US 2019/0171746 A1 · System and Method for Displaying Data From A Storage

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0171746 A1
- Document ID: US20190171746A1
- Status: Published application
- Kind: A1
- Application number: 15/832,604
- Filed: 2017-12-05
- Published: 2019-06-06
- Earliest claimed: 2017-12-05
- Assignees: Veeva Systems Inc.
- Applicants: Veeva Systems Inc.
- Inventors: Arno Sosna; Mark Fleischmann; Xuan Wang; Erta Muca; Xun Peng
- Web page: https://patentgrep.com/patent/US20190171746A1

## CPC

- G06F 16/248: Presentation of query results
- G06F 8/38: for implementing user interfaces
- G06F 9/547: {Remote procedure calls [RPC]; Web services}
- G06F 16/9577: {Optimising the visualization of content, e.g. distillation of HTML documents}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for presenting CRM data. Users may configure what to display on a custom report and how to arrange and display the content (e.g., size, color, theme), so that they can visualize the CRM data the way they want. A data visualization interface may be used to generate the custom report, and may use HTML to specify the CRM data to be displayed and their location on the custom report according to user configuration. The data visualization interface may use JavaScript for specifying the objects and fields users want to query to obtain the CRM data to fill up the custom report. An API may communicate with the JavaScript in the data visualization interface and then query data and objects in the CRM to get a result set. The API may also allow users to interact with the CRM to accomplish various CRM tasks via the custom report.

## Claims

### Claim 1

A computer-implemented method for displaying data from a data storage system, the method comprising:
enabling generation of a data visualization interface for rendering a first custom report according to previously received user configuration, wherein the user configuration comprises a first type of data to be displayed at a first location on the first custom report and a second type of data to be displayed at a second location on the first custom report; wherein the first type of data and the second type of data are obtained from the data storage system; wherein the data visualization interface comprises instructions in a markup language for specifying the first type of data, the first location, the second type of data, and the second location, and instructions in a second programing language for obtaining the first type of data and the second type of data from the data storage system;
receiving the instructions in the second programing language from the data visualization interface at an application programming interface (“API”);
sending an API call to the data storage system to obtain the first type of data and the second type of data;
receiving the first type of data and the second type of data at the data visualization interface;
rendering the first custom report, wherein the first custom report is based on the first type of data, the first location, the second type of data and the second location; and
displaying the first custom report, wherein the first custom report comprises a first area for receiving a first request to interact with the data storage system.

### Claim 2 (depends on 1)

The method of claim 1, further comprising: determining from the first request a first action requested, a first target account, and a first user submitting the first request.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first action requested is a native function of the data storage system.

### Claim 4 (depends on 2)

The method of claim 2, wherein the first action requested is to generate a new call report.

### Claim 5 (depends on 2)

The method of claim 2, further comprising: converting the first request via an interface to a first format that the data storage system supports.

### Claim 6 (depends on 5)

The method of claim 5, wherein the interface is the API.

### Claim 7 (depends on 2)

The method of claim 2, further comprising: converting the first request via a library in the API to a first format that the data storage system supports.

### Claim 8 (depends on 2)

The method of claim 2, further comprising: determining that the first user is authorized to take the first action requested on the first target account.

### Claim 9 (depends on 7)

The method of claim 7, further comprising: displaying a native user interface of the data storage system supporting the first action requested on the first target account.

### Claim 10 (depends on 2)

The method of claim 2, further comprising: performing the first action requested on the first target account.

### Claim 11 (depends on 9)

The method of claim 9, further comprising: storing data generated by the first action requested to the data storage system.

### Claim 12 (depends on 8)

The method of claim 8, further comprising: determining if the native user interface of the data storage system is closed.

### Claim 13 (depends on 10)

The method of claim 10, further comprising: returning to display the first customer report.

### Claim 14 (depends on 1)

The method of claim 1, wherein the makeup language is HyperText Markup Language (“HTML”).

### Claim 15 (depends on 1)

The method of claim 1, wherein the second programming language is JavaScript.

### Claim 16 (depends on 1)

The method of claim 1, wherein the API is a unified API which can access a first type of data storage system and a second type of data storage system.

### Claim 17 (depends on 16)

The method of claim 16, wherein the first type of data storage system is based on Salesforce™ customer relationship management (“CRM”).

### Claim 18 (depends on 16)

The method of claim 16, wherein the first type of data storage system is an online data source.

### Claim 19 (depends on 16)

The method of claim 16, wherein the second type of data storage system is a local data source.

### Claim 20

A customer relationship management (“CRM”) system, comprising:
a first data storage device;
a second data storage device; and
a data visualization controller for:
enabling generation of a data visualization interface for rendering a first custom report according to previously received user configuration, wherein the user configuration comprises a first type of data to be displayed at a first location on the first custom report and a second type of data to be displayed at a second location on the first custom report; wherein the first type of data and the second type of data is obtained from the first data storage device; wherein the data visualization interface comprises instructions in a markup language for specifying the first type of data, the first location, the second type of data, and the second location, and JavaScript code for obtaining the first type of data and the second type of data; wherein the JavaScript code is sent from the data visualization interface to an application programming interface (“API”); wherein a first API call is sent from the API to the first data storage device to obtain the first type of data and the second type of data; and
rendering the first custom report in response to the first type of data and the second type of data received at the data visualization interface, wherein the first custom report comprises a first area for receiving a first request to interact with the CRM.
