IP Library Granted Patent US 11,048,682
Granted Patent B2
US 11,048,682 · App. 16/418,928 · Granted Jun 29, 2021

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

Inventors: Andrew Fawcett (Harrogate, GB); Maria Augustina García Peralta (Munguia, ES)
Assignee: FinancialForce.com, Inc.
G06F16/23G06F16/245G06F16/258G06F40/18G06F40/197
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 11,048,682
App. No.
16/418,928
Granted
Jun 29, 2021
Kind
B2
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 (43)

1. A computer-implemented method comprising:

receiving input indicative of a command to alter a data object used in a programming environment;

examining a data structure that maps data objects used in the programming environment to external data records of an external database, wherein the external database is a Google Sheets database;

formatting the external data records to conform to one or more data formats associated with a platform associated with the programming environment, wherein the platform is a Salesforce application development platform;

parsing the external data records to identify one or more specifications associated with the platform, the external data records are parsed by calling an application program interface (API) associated with the external database within the programming environment, wherein the external data records are parsed without copying the external data records to an internal database of the platform;

mapping the external data records according to the one or more specifications after the formatting and the parsing are performed, the external data records being mapped to the data object in the one or more data formats and according to the one or more specifications associated with the platform;

identifying, based on the examining, a record of the external data records corresponding to the data object;

transmitting metadata indicative of the command to the API, wherein receipt of the metadata causes the external database to formulate an instruction, the execution of which causes the identified data record to be altered; and

synchronizing the external data records based on changes made to the data objects in real time without requiring an explicit synchronization request.

2. The computer-implemented method of claim 1 , wherein the calling causes the external data records to be read from the Google Sheets database.

3. The computer-implemented method of claim 2 , further comprising:

formatting, based on the parsing, the external data records to ensure that the external data records read from the Google Sheets database conforms to a specification of the programming environment.

4. The computer-implemented method of claim 3 , further comprising:

creating the data structure by mapping the external data records to the data objects used in the programming environment.

5. The computer-implemented method of claim 1 , further comprising:

referencing the external data records of the external, database and the data objects in the programming environment on a continual basis, wherein the referencing enables a given record of the external data records in the Google Sheets database to be updated in near real time when a change is made to a corresponding data object of the one or more data objects via a Salesforce interface, and a given data object of the one or more data objects in the programming environment to be updated in near real time when a change is made to a corresponding external record of the external data records via a Google Sheets interface.

6. A non-transitory computer-readable medium with instructions stored thereon that, when executed by a processor, cause the processor to perform operations comprising:

accessing a programming environment associated with a Salesforce application development platform;

examining a data structure that maps external data records from a Google Sheets database to data objects used in the programming environment;

formatting the external data records to ensure that the external data records conforms to one or more formats associated with the Salesforce application development platform;

parsing the external records to identify a specification associated with the Salesforce application development platform, the external data records are parsed by calling an application program interface (API) associated with the Google Sheets database within the programming environment, wherein the external data records are parsed without copying the external data records to an internal database of the platform;

establishing a lookup relationship by mapping the external data records to one or more data objects in the programming environment after the formatting and the parsing are performed, the external data records being mapped to the one or more data objects in the one or more data formats and according to the specification associated with the Salesforce application development platform; and

referencing the external data records in the Google Sheets database and the one or more data objects in the programming environment on a continual basis, wherein the referencing enables a given record of the external data records in the Google Sheets database to be updated in near real time when a change is made to a corresponding data object of the one or more data objects via a Salesforce interface, and a given data object of one or more data objects in the programming environment to be updated in near real time when a change is made to a corresponding external record of the external data records via a Google Sheets interface, wherein metadata indicative of a command associated with the change is transmitted to the API to cause the Google Sheets database to update the given record without an explicit synchronization request.

7. The non-transitory computer-readable medium of claim 6 , wherein logic in the programming environment is implemented using an Apex programming language.

8. The non-transitory computer-readable medium of claim 6 , wherein the reading is performed by a Lightning Connect adapter that is responsible for interfacing with the API.

9. The non-transitory computer-readable medium of claim 6 , wherein the reading comprises:

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

10. The non-transitory computer-readable medium of claim 9 , wherein the lookup relationship is dynamically updated based on the content determined to be in each cell of the spreadsheet.

11. The non-transitory computer-readable medium of claim 6 , wherein the referencing enables the Salesforce interface to present a live view of the external data records residing in the Google Sheets database.

12. The non-transitory computer-readable medium of claim 6 , wherein the establishing is based on algorithmic logic that considers content of each cell of a spreadsheet that is represented by the external data records, rather than column headers or row headers.

13. The non-transitory computer-readable medium of claim 6 , wherein the change associated with the external data records is the creation of a new data record, modification of an existing data record, or deletion of an existing data record.

14. An electronic device comprising:

a memory that includes instructions for synchronizing information across a customer relationship management (CRM) platform and an external service, wherein the instructions, when executed by a processor, cause the processor to:

access a programming environment associated with the CRM platform, wherein the CRM platform is a Salesforce application development platform;

connect an adapter associated with the CRM platform to an application programming interface (API) associated with the external service;

examine a data structure that maps external data records from an external database maintained by the external service to one or more data objects used in the programming environment, wherein the external database is a Google Sheets database;

format the external data records to conform to one or more data formats associated with the CRM platform;

parse the external data records to identify one or more specifications associated with the CRM platform, the external data records are parsed by the API within the programming environment, wherein the external data records are parsed without copying the external data records to an internal database of platform;

map the external data records to the one or more data objects, the external data records being mapped to the one or more data objects in the one or more data formats and according to the one or more specifications associated with the platform after the external data records being formatted and parsed; and

continually reference the external data records and the one or more data objects, wherein the continual referencing causes the external data records and the one or more data objects to be synchronized in near real time when a change is made to the one or more data objects or at least one of the external data records, wherein metadata indicative of a command associated with the change is transmitted to the API causing the external database to update the external data records without an explicit synchronization request.

15. The electronic device of claim 14 , wherein the adapter is configured to produce a mapping that establishes a lookup relationship between the external data records and the one or more data objects.

16. The electronic device of claim 15 , wherein the mapping includes a unique identifier value for each of the one or more data objects and each of the external data records.

17. The electronic device of claim 16 , wherein each of the external data records represents content of a cell within a spreadsheet maintained by the external service.

Assignments (8)
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 →
SECURITY INTEREST Recorded Jul 15, 2021
From: FINANCIALFORCE.COM, INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 056872/0236 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2019
From: FAWCETT, ANDREW; GARCÍA PERALTA, MARIA AUGUSTINA
To: FINANCIALFORCE.COM, INC.
Reel/Frame 049248/0881 →
Continuity (2)
Continuation 15161142 · May 20, 2016
Related Publication 20190272266A1 · Sep 5, 2019