IP Library › Granted Patent US 12,229,099
Granted Patent B1
US 12,229,099 · App. 17/960,736 · Granted Feb 18, 2025

System, method, and computer program for extracting entity data from a plurality of related data objects from an external multi-tenant SaaS environment

Inventors: Sovane Bin (San Francisco, CA); Saddek Dekoum (Ris Orangis, FR); Raphaël Fonrouge (Chatenay Malabry, FR); Francois Lopitaux (San Carlos, CA); Sohil Sheth (Walpole, MA); Nicolas Roquebert (Villepreux, FR); Omar Albasaiteh (Colombes, FR)
Assignee: Odaseva Technologies SAS
G06F16/2246G06F16/2272
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,229,099
App. No.
17/960,736
Granted
Feb 18, 2025
Kind
B1
Abstract

The present invention extracts entity data from a plurality of related data objects from an external multi-tenant SaaS environment. The system extracts metadata related to an entity's data records and uses the metadata to identify a data schema associated with the entity's data. The system provides an interface for enabling a user to create an extraction tree that includes the data objects in the data schema from which data will be extracted. Enabling a user to create an extraction tree includes enabling a user to add a root node to the extraction tree, add any parent and child nodes of the root node in the data schema to a next level of the extraction tree, and add multiple additional levels of the extraction tree. The system creates an extraction plan based on the extraction tree and extracts data from the multi-tenant SaaS environment based on the extraction plan.

Claims (47)

1. A method, performed by a computer system, for extracting entity data from a plurality of related data objects from an external multi-tenant software-as-a-service (SaaS) environment, the method comprising:

extracting metadata related to an entity's data records in the external multi-tenant SaaS environment;

using the metadata to identify a data schema associated with the entity's data in the multi-tenant SaaS environment, wherein the data schema forms a hierarchy of at least three levels of the entity's data in the multi-tenant SaaS environment;

providing an interface for enabling a user to create an extraction tree;

creating the extraction tree in the interface by a user viewing data objects in the data schema and selecting a plurality of data objects in the data schema as nodes in the extraction tree, wherein the extraction tree is stored in memory;

building the extraction tree by the system automatically inserting any connecting data objects that are in between the selected plurality of data objects in the data schema as connecting nodes in the extraction tree;

enabling a user to add any parent and child data objects in the data schema of the selected plurality of data objects and the any connecting data objects that were added as nodes and connecting nodes to the extraction tree to a next level of the extraction tree;

enabling a user to add multiple additional levels to the extraction tree, wherein at each new level of the extraction tree the user is able to add both parent and child data objects in the data schema of data objects corresponding to nodes in a previous level of the extraction tree, enabling a user to traverse up and down the hierarchy of the data schema in adding child nodes to the extraction tree;

creating an extraction plan based on the extraction tree; and

extracting data from the multi-tenant SaaS environment based on the extraction plan.

2. The method of claim 1 , wherein, as the user is creating the extraction tree, the system enables the user to set extraction filter criteria for each data object inserted into the extraction tree by the user.

3. The method of claim 2 , wherein the extraction filter criteria comprises one or more of: limiting the rows in a data object from which data will be extracted, limiting the fields in the data object from which data will be extracted, and matching the fields and values in the data object.

4. The method of claim 2 , wherein the extraction filter criteria comprises skipping specified rows or fields.

5. The method of claim 1 , wherein the interface is a graphical user interface.

6. The method of claim 1 , wherein the interface is an application programming interface (API).

7. A non-transitory computer-readable medium comprising a computer program, that, when executed by a computer system, enables the computer system to perform the following steps for extracting entity data from a plurality of related data objects from an external multi-tenant software-as-a-service (SaaS) environment, the steps comprising:

extracting metadata related to an entity's data records in the external multi-tenant SaaS environment;

using the metadata to identify a data schema associated with the entity's data in the multi-tenant SaaS environment, wherein the data schema forms a hierarchy of at least three levels of the entity's data in the multi-tenant SaaS environment;

providing an interface for enabling a user to create an extraction tree;

creating the extraction tree in the interface by a user viewing data objects in the data schema and selecting a plurality of data objects in the data schema as nodes in the extraction tree, wherein the extraction tree is stored in memory;

building the extraction tree by the system automatically inserting any connecting data objects that are in between the selected plurality of data objects in the data schema as connecting nodes in the extraction tree;

enabling a user to add any parent and child data objects in the data schema of the selected plurality of data objects and the any connecting data objects that were added as nodes and connecting nodes to the extraction tree to a next level of the extraction tree;

enabling a user to add multiple additional levels to the extraction tree, wherein at each new level of the extraction tree the user is able to add both parent and child data objects in the data schema of data objects corresponding to nodes in a previous level of the extraction tree, enabling a user to traverse up and down the hierarchy of the data schema in adding child nodes to the extraction tree;

creating an extraction plan based on the extraction tree; and

extracting data from the multi-tenant SaaS environment based on the extraction plan.

8. The non-transitory computer-readable medium of claim 7 , wherein, as the user is creating the extraction tree, the system enables the user to set extraction filter criteria for each data object inserted into the extraction tree by the user.

9. The non-transitory computer-readable medium of claim 8 , wherein the extraction filter criteria comprises one or more of: limiting the rows in a data object from which data will be extracted, limiting the fields in the data object from which data will be extracted, and matching the fields and values in the data object.

10. The non-transitory computer-readable medium of claim 8 , wherein the extraction filter criteria comprises skipping specified rows or fields.

11. The non-transitory computer-readable medium of claim 7 , wherein the interface is a graphical user interface.

12. The non-transitory computer-readable medium of claim 7 , wherein the interface is an application programming interface (API).

13. A computer system for extracting entity data from a plurality of related data objects from an external multi-tenant software-as-a-service (SaaS) environment, the system comprising:

one or more processors;

one or more memory units coupled to the one or more processors, wherein the one or more memory units store instructions that, when executed by the one or more processors, cause the system to perform the operations of:

extracting metadata related to an entity's data records in the external multi-tenant SaaS environment;

using the metadata to identify a data schema associated with the entity's data in the multi-tenant SaaS environment, wherein the data schema forms a hierarchy of at least three levels of the entity's data in the multi-tenant SaaS environment;

providing an interface for enabling a user to create an extraction tree;

creating the extraction tree in the interface by a user viewing data objects in the data schema and selecting a plurality of data objects in the data schema as nodes in the extraction tree, wherein the extraction tree is stored in memory;

building the extraction tree by the system automatically inserting any connecting data objects that are in between the selected plurality of data objects in the data schema as connecting nodes in the extraction tree;

enabling a user to add any parent and child data objects in the data schema of the selected plurality of data objects and the any connecting data objects that were added as nodes and connecting nodes to the extraction tree to a next level of the extraction tree;

enabling a user to add multiple additional levels to the extraction tree, wherein at each new level of the extraction tree the user is able to add both parent and child data objects in the data schema of data objects corresponding to nodes in a previous level of the extraction tree, enabling a user to traverse up and down the hierarchy of the data schema in adding child nodes to the extraction tree;

creating an extraction plan based on the extraction tree; and

extracting data from the multi-tenant SaaS environment based on the extraction plan.

14. The computer system of claim 13 , wherein, as the user is creating the extraction tree, the system enables the user to set extraction filter criteria for each data object inserted into the extraction tree by the user.

15. The computer system of claim 14 , wherein the extraction filter criteria comprises one or more of: limiting the rows in a data object from which data will be extracted, limiting the fields in the data object from which data will be extracted, and matching the fields and values in the data object.

16. The computer system of claim 14 , wherein the extraction filter criteria comprises skipping specified rows or fields.

17. The computer system of claim 13 , wherein the interface is a graphical user interface.

18. The computer system of claim 13 , wherein the interface is an application programming interface (API).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2023
From: BIN, SOVANE; DEKOUM, SADDEK; FONROUGE, RAPHAËL; LOPITAUX, FRANCOIS; SHETH, SOHIL; ROQUEBERT, NICOLAS; ALBASAITEH, OMAR
To: ODASEVA TECHNOLOGIES SAS
Reel/Frame 062951/0557 →
References Cited (78)
US 6642946B1 · Janes · 2003 [cited by examiner]
US 8078645B2 · Singh · 2011 [cited by examiner]
US 8255320B1 · Seal · 2012 [cited by examiner]
US 9268587B2 · Kruglick · 2016 [cited by applicant]
US 9330301B1 · Ozog · 2016 [cited by applicant]
US 9769131B1 · Hartley et al. · 2017 [cited by applicant]
US 10664494B2 · Ding et al. · 2020 [cited by applicant]
US 11055123B1 · Bin et al. · 2021 [cited by applicant]
US 11609774B2 · Bin et al. · 2023 [cited by applicant]
US 12032718B1 · Bin et al. · 2024 [cited by applicant]
US 12056723B1 · Bin et al. · 2024 [cited by applicant]
US 20060150169A1 · Cook · 2006 [cited by examiner]
US 20080049942A1 · Sprunk et al. · 2008 [cited by applicant]
US 20080162532A1 · Daga · 2008 [cited by examiner]
US 20080270444A1 · Brodie · 2008 [cited by examiner]
US 20090031230A1 · Kesler · 2009 [cited by examiner]
US 20100079460A1 · Breeds · 2010 [cited by examiner]
US 20120059857A1 · Jackson, Jr. · 2012 [cited by examiner]
US 20120110566A1 · Park · 2012 [cited by examiner]
US 20120117558A1 · Futty et al. · 2012 [cited by applicant]
US 20120254197A1 · Kuzmin · 2012 [cited by examiner]
US 20120324242A1 · Kirsch · 2012 [cited by applicant]
US 20130191780A1 · Holmes · 2013 [cited by examiner]
US 20130227703A1 · Sotos et al. · 2013 [cited by applicant]
US 20130246451A1 · Kaiser · 2013 [cited by examiner]
US 20130283060A1 · Kulkarni et al. · 2013 [cited by applicant]
US 20130297769A1 · Chang et al. · 2013 [cited by applicant]
US 20140040182A1 · Gilder · 2014 [cited by examiner]
US 20140040196A1 · Wijayaratne et al. · 2014 [cited by applicant]
US 20140040197A1 · Wijayaratne et al. · 2014 [cited by applicant]
US 20140101438A1 · Elovici et al. · 2014 [cited by applicant]
US 20140143661A1 · Carreno-Fuentes · 2014 [cited by examiner]
US 20140278534A1 · Romeo · 2014 [cited by applicant]
US 20140344778A1 · Lau · 2014 [cited by examiner]
US 20160019233A1 · Wijayaratne et al. · 2016 [cited by applicant]
US 20160147999A1 · Fontanetta et al. · 2016 [cited by applicant]
US 20160308855A1 · Lacey et al. · 2016 [cited by applicant]
US 20170025040A1 · Maturana et al. · 2017 [cited by applicant]
US 20170048252A1 · Straub et al. · 2017 [cited by applicant]
US 20170091293A1 · Cummings · 2017 [cited by examiner]
US 20170249656A1 · Gantner et al. · 2017 [cited by applicant]
US 20180081905A1 · Kamath · 2018 [cited by examiner]
US 20180089270A1 · Qiu · 2018 [cited by examiner]
US 20180150476A1 · Koos et al. · 2018 [cited by applicant]
US 20180176117A1 · Gudetee et al. · 2018 [cited by applicant]
US 20180181613A1 · Acharya · 2018 [cited by examiner]
US 20180232402A1 · Bhatti · 2018 [cited by examiner]
US 20190007206A1 · Surla et al. · 2019 [cited by applicant]
US 20190034509A1 · Ding et al. · 2019 [cited by applicant]
US 20190042988A1 · Brown et al. · 2019 [cited by applicant]
US 20190050925A1 · Hodge · 2019 [cited by examiner]
US 20190303270A1 · Hoermann · 2019 [cited by examiner]
US 20200026532A1 · Bill · 2020 [cited by examiner]
US 20200067772A1 · Tomkins et al. · 2020 [cited by applicant]
US 20200073854A1 · Wijayaratne et al. · 2020 [cited by applicant]
US 20200082890A1 · Karr et al. · 2020 [cited by applicant]
US 20200127937A1 · Busick et al. · 2020 [cited by applicant]
US 20200159700A1 · Wijayaratne et al. · 2020 [cited by applicant]
US 20200183906A1 · Spillane · 2020 [cited by examiner]
US 20210049029A1 · Kumble et al. · 2021 [cited by applicant]
US 20210067324A1 · Valente et al. · 2021 [cited by applicant]
US 20210255991A1 · Koos et al. · 2021 [cited by applicant]
US 20210255992A1 · Wijayaratne et al. · 2021 [cited by applicant]
US 20210349580A1 · Dentzer · 2021 [cited by examiner]
US 20220067115A1 · Zheng et al. · 2022 [cited by applicant]
US 20220107826A1 · Bin et al. · 2022 [cited by applicant]
US 20220129804A1 · Dooley et al. · 2022 [cited by applicant]
US 20220148084A1 · Baker · 2022 [cited by examiner]
US 20220188334A1 · Chen · 2022 [cited by examiner]
US 20220207489A1 · Gupta et al. · 2022 [cited by applicant]
US 20220317831A1 · Karis · 2022 [cited by examiner]
US 20230010219A1 · Howley · 2023 [cited by examiner]
US 20230082010A1 · Clifford · 2023 [cited by examiner]
US 20230145349A1 · Watari · 2023 [cited by examiner]
US 20230237034A1 · Garg · 2023 [cited by examiner]
US 20230315694A1 · Koos et al. · 2023 [cited by applicant]
US 20230325360A1 · Wijayaratne et al. · 2023 [cited by applicant]
WO 2022081408 · 2022 [cited by applicant]
Cited By (3)
US 12,547,758 US 12,717,823 US 12,744,660