IP Library Granted Patent US 10,303,675
Granted Patent B2
US 10,303,675 · App. 15/161,142 · Granted May 28, 2019

Custom lightning connect adapter for google sheets web-based spreadsheet program

Inventors: Andrew Fawcett (Harrogate, GB); Maria Agustina García Peralta (Munguia, ES)
Assignee: FinancialForce.com, Inc.
G06F16/23G06F16/245G06F16/258G06F17/2288G06F17/246
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 10,303,675
App. No.
15/161,142
Filed
May 20, 2016
Granted
May 28, 2019
Kind
B2
Examiner
HOANG, SON T
Art Unit
2169
USPC
707/609
Abstract

Various embodiments concern custom adapters for Salesforce platforms that enable synchronization with an external service, such as Google Sheets. More specifically, the custom adapters can be used to read external data from a database associated with the external service, and then continually reference the external data in order to provide a live view of the external data from a Salesforce interface. Thus, the custom adapters enable real-time, live data integration without data replication. The custom adapters also allow the external data to be dynamically mapped to data object(s) that are used to create the Salesforce interface. Therefore, a user may be able to modify the external data using the Salesforce interface and an interface associated with the external service.

Claims (51)

1. A computer-implemented method for implementing a Lightning Connect adapter for a Salesforce application development platform, the method comprising:

accessing a programming environment associated with an add-on application for a Salesforce application development platform;

calling an application programming interface (API) associated with a Google Sheets spreadsheet program from within the programming environment, wherein the calling of the API causes external data to be read from a Google Sheets database;

parsing the external data without copying the external data to an internal database of the Salesforce application development platform;

automatically formatting the external data based on the parsing, wherein the formatting ensures that the external data read from the Google Sheets database conforms to specifications of the Salesforce application development platform;

establishing a lookup relationship by dynamically mapping the external data to data objects used within the programming environment;

continually referencing the external data in the Google Sheets database and the data objects in the programming environment, wherein the continual referencing enables an external data record in the Google Sheets database to be updated in near real time when a change is made to a corresponding data object in the programming environment via a Salesforce interface, and a data object in the programming environment to be updated in near real time when a change is made to a corresponding external data record via a Google Sheets interface;

receiving input indicative of a command to modify a particular data object used in the programming environment; and

transmitting metadata indicative of the command to the Google Sheets spreadsheet program, wherein receipt of the metadata prompts the Google Sheets spreadsheet program to formulate an appropriate instruction, the execution of which implements the command on the external data in the Google Sheets database.

2. The method of claim 1 , wherein logic within the programming environment is implemented using an Apex programming language.

3. The method of claim 1 , wherein the parsing of the external data is performed by a Lightning Connect adapter that is responsible for interfacing with the API.

4. The method of claim 1 , wherein the parsing of the external data further comprises:

analyzing the external data to determine content of each cell of a spreadsheet that is represented by the external data.

5. The method of claim 4 , wherein the lookup relationship is based on the content determined to be in each cell of the spreadsheet that is represented by the external data.

6. The method of claim 1 , wherein the Salesforce interface and the Google Sheets interface are accessible via one or more of a web browser, a mobile application, a desktop program, or an over-the-top application.

7. The method of claim 1 , wherein the continually referencing enables the Salesforce interface to present a live view of the external data residing in the Google Sheets database.

8. The method of claim 1 , wherein the establishing of the lookup relationship is based at least in part on algorithmic logic that considers content of each cell of a spreadsheet that is represented by the external data, rather than column headers or row headers.

9. The method of claim 1 , wherein the change is one of:

creation of a new data record;

modification of an existing data record; or

deletion of the existing data record.

10. A non-transitory storage medium having instructions stored thereon, when executed by a processor, causing the processor to execute a method comprising:

accessing a programming environment associated with an add-on application for a Salesforce application development platform;

calling an application programming interface (API) associated with a Google Sheets spreadsheet program from within the programming environment, wherein the calling of the API causes external data to be read from a Google Sheets database;

parsing the external data without copying the external data to an internal database of the Salesforce application development platform;

automatically formatting the external data based on the parsing, wherein the formatting ensures that the external data read from the Google Sheets database conforms to specifications of the Salesforce application development platform;

establishing a lookup relationship by dynamically mapping the external data to data objects used within the programming environment;

continually referencing the external data in the Google Sheets database and the data objects in the programming environment, wherein the continual referencing enables an external data record in the Google Sheets database to be updated in near real time when a change is made to a corresponding data object in the programming environment via a Salesforce interface, and a data object in the programming environment to be updated in near real time when a change is made to a corresponding external data record via a Google Sheets interface;

receiving input indicative of a command to modify a particular data object used in the programming environment; and

transmitting metadata indicative of the command to the Google Sheets spreadsheet program, wherein receipt of the metadata prompts the Google Sheets spreadsheet program to formulate an appropriate instruction, the execution of which implements the command on the external data in the Google Sheets database.

11. The non-transitory storage medium of claim 10 , wherein the establishing of the lookup relationship is based at least in part on algorithmic logic that considers content of each cell of a spreadsheet that is represented by the external data, rather than column headers or row headers.

12. The method of claim 10 , wherein the Salesforce interface and the Google Sheets interface are accessible via one or more of a web browser, a mobile application, a desktop program, or an over-the-top application.

13. The non-transitory storage medium of claim 10 , wherein each external data record corresponds to one or more cells within a spreadsheet.

14. The method of claim 10 , wherein continually referencing enables the Salesforce interface to present a live view of the external data residing in the Google Sheets database.

15. An apparatus for synchronizing a Salesforce platform and a Google Sheets database in real time, the apparatus comprising:

a processor; and

a memory that includes instructions that, when executed by the processor, cause the processor to:

access a programming environment associated with an add-on application for a Salesforce application development platform;

call an application programming interface (API) associated with a Google Sheets spreadsheet program from within the programming environment, wherein the calling of the API causes external data to be read from a Google Sheets database;

parse the external data without copying the external data to an internal database of the Salesforce application development platform;

automatically format the external data based on the parsing, wherein the formatting ensures that the external data read from the Google Sheets database conforms to specifications of the Salesforce application development platform;

establish a lookup relationship by dynamically mapping the external data to data objects used within the programming environment;

continually reference the external data in the Google Sheets database and the data objects in the programming environment, wherein the continual referencing enables an external data record in the Google Sheets database to be updated in near real time when a change is made to a corresponding data object in the programming environment via a Salesforce interface, and a data object in the programming environment to be updated in near real time when a change is made to a corresponding external data record via a Google Sheets interface;

receive input indicative of a command to modify a particular data object used in the programming environment; and

transmit metadata indicative of the command to the Google Sheets spreadsheet program, wherein receipt of the metadata prompts the Google Sheets spreadsheet program to formulate an appropriate instruction, the execution of which implements the command on the external data in the Google Sheets database.

16. The apparatus of claim 15 , wherein the parsing of the external data is performed by a Lightning Connect adapter that is responsible for interfacing with the API.

17. The apparatus of claim 15 , wherein logic within the programming environment is implemented using an Apex programming language.

18. The apparatus of claim 15 , wherein the parsing of the external data further comprises:

analyzing the external data to determine content of each cell of a spreadsheet that is represented by the external data.

19. The apparatus of claim 18 , wherein the lookup relationship is based on the content determined to be in each cell of the spreadsheet that is represented by the external data.

20. The apparatus of claim 15 , wherein the continually referencing enables the Salesforce interface to present a live view of the external data residing in the Google Sheets database.

Assignments (12)
CHANGE OF ADDRESS Recorded Sep 12, 2024
From: CERTINIA INC.
To: CERTINIA INC.
Reel/Frame 068948/0361 →
SECURITY INTEREST Recorded Aug 7, 2023
From: CERTINIA INC.
To: BLUE OWL CREDIT INCOME CORP., AS COLLATERAL AGENT
Reel/Frame 064510/0495 →
RELEASE OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Aug 4, 2023
From: KEYBANK NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: CERTINIA, INC.
Reel/Frame 064502/0117 →
CHANGE OF NAME Recorded Jun 20, 2023
From: FINANCIALFORCE.COM, INC.
To: CERTINIA INC.
Reel/Frame 064042/0206 →
RELEASE OF SECURITY INTEREST Recorded Mar 24, 2022
From: OBSIDIAN AGENCY SERVICES, INC.
To: FINANCIALFORCE.COM, INC.
Reel/Frame 059389/0501 →
SECURITY INTEREST Recorded Feb 21, 2022
From: FINANCIALFORCE.COM, INC.
To: KEYBANK NATIONAL ASSOCIATION
Reel/Frame 059204/0323 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUS APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 048416 FRAME: 0266. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 23, 2019
From: FINANCIALFORCE.COM, INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 050836/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUS APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 049535 FRAME: 0815. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Oct 23, 2019
From: TRIPLEPOINT VENTURE GROWTH BDC CORP.
To: FINANCIALFORCE.COM, INC.
Reel/Frame 050835/0594 →
RELEASE OF SECURITY INTEREST Recorded Feb 22, 2019
From: TRIPLEPOINT VENTURE GROWTH BDC CORP.
To: FINANCIALFORCE.COM, INC.
Reel/Frame 049535/0815 →
SECURITY INTEREST Recorded Feb 22, 2019
From: FINANCIALFORCE.COM, INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 048416/0266 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2016
From: FAWCETT, ANDREW; GARCIA PERALTA, MARIA AGUSTINA
To: FINANCIALFORCE.COM, INC.
Reel/Frame 039288/0008 →
SECURITY INTEREST Recorded Jun 23, 2016
From: FINANCIALFORCE.COM, INC.
To: TRIPLEPOINT VENTURE GROWTH BDC CORP.
Reel/Frame 039131/0070 →
Continuity (1)
Related Publication 20170337233A1 · Nov 23, 2017
Cited By (1)
US 12,399,877