This invention relates generally to a multi-tenant SaaS environment and, more specifically, to a system and method for extracting entity data from a plurality of related data objects from an external multi-tenant SaaS environment.
Companies need to be able to handle a multitude of complex, interrelated data. In one exemplary scenario, a customer service contact center that uses software, such as SALESFORCE, needs to manage customer cases. Every time a customer calls in, the system would create a ticket to track the issue and include information such as conversations, emails, chats, text, SMS, etc. Since the customer service contact center has so many customers, which leads to numerous customer calls and created tickets, the customer service contact center may soon face the dilemma of their SALESFORCE system slowing down or paying expensive storage fees. They may instead choose to archive the data (i.e., extract, but not delete the data) for easy accessibility while not storing it directly in the system. SALESFORCE is a huge database with multiple tables such that every table is linked to each other (e.g., case table, case comment table, email table, SMS table, etc.). Therefore, there is a need for a system and method that would enable a user to more easily select a plurality of interrelated tables and specify which data within the interrelated tables to extract.
The present disclosure describes a system, method, and computer program for extracting entity data from a plurality of related data objects from an external multi-tenant SaaS environment. The method is performed by a computer system that includes servers, storage systems, networks, operating systems, and databases.
The present invention provides a graphical user interface, and, in an alternate embodiment, an API, to create an extraction tree for extracting data objects stored in an external multi-tenant SaaS environment. The present invention also provides a novel data schema for organizing the data objects in the graphical user interface such that a user is able to traverse up and down the hierarchy of the data schema from any node (not just the root node) in adding descending nodes to the extraction tree. The present invention also enables the user to set extraction filter criteria for each data object added to the extraction tree. The benefit is that when the user sets extraction filter criteria for a data object, the child nodes of the data object are consistently filtered based on the extraction filter criteria, resulting in a targeted data extraction using the data schema. The present invention also provides a “quick start” algorithm that enables the user to select a plurality of data objects for the “quick start” algorithm to try to connect together and automatically create an extraction tree (rather than graphically adding a root node and graphically adding and connecting a plurality of parent and child nodes within the extraction tree).
In one embodiment, a method for extracting entity data from a plurality of related data objects from an external multi-tenant SaaS environment comprises the following steps:
The present disclosure describes a system, method, and computer program for extracting entity data from a plurality of related data objects from an external multi-tenant SaaS environment. The method is performed by a computer system that includes servers, storage systems, networks, operating systems, and databases (“the system”).
Example implementations of the method are described in more detail with respect to
In certain embodiments, instead of the system providing a graphical user interface for enabling a user to create a graphical extraction tree, the system provides an API that enables the user to use a different user interface (e.g., created by a third-party) to interface with the system to create an extraction tree. Similar to the system-provided graphical user interface, the different user interface would enable the user to view the extraction tree and select nodes for the extraction tree.
In certain embodiments, the system also performs a “quick start” algorithm in which, in response to a user selecting a plurality of starting nodes to create the extraction tree, the system automatically adds any connecting nodes between the plurality of starting nodes in creating the extraction tree. In certain embodiments, the system also automatically adds one or more child nodes of each of the selected starting nodes in the data schema to a next level of the extraction tree.
In certain embodiments, the method further includes identifying chunks of data in a data object for purposes of data extraction, and, after extracting the data object by extracting the chunks of data, reconciling the chunks of data in the data object. For further details regarding such extraction techniques, please see U.S. patent application Ser. No. 17/496,543, entitled “System Method, and Computer Program for Extracting Large Customer Data Volumes at High Speed from an External Multi-tenant SaaS Environment,” filed on Oct. 7, 2021, which is incorporated by reference as if fully disclosed herein.
In certain embodiments, the system and method described herein are used for the purpose of archiving, sandboxing seeding, consumer rights, etc.
As seen in
As seen in
As seen in
As seen in
As seen in
As seen in
The backup platform 435 hosts a backup for each entity 430a, 430b, 430c. Each backup 430a, 430b, 430c includes the metadata and extracted data records that corresponds to the metadata and data records for each entity in the multi-tenant SaaS environment 450a, 450b, 450c. Both the multi-tenant SaaS environment 470 and the backup platform 435 do not provide a separate database for each entity. Hence, while the data records are illustrated separately using database symbols with respect to each entity in both the multi-tenant SaaS environment 470 and the backup platform 435, the database(s) is (are) often shared between entities on their respective servers. A customer can make API calls to the backup 430a, 430b, 430c via API interface 480.
The methods described with respect to
As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Accordingly, the above disclosure is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.
| Number | Name | Date | Kind |
|---|---|---|---|
| 6642946 | Janes | Nov 2003 | B1 |
| 8078645 | Singh | Dec 2011 | B2 |
| 8255320 | Seal | Aug 2012 | B1 |
| 9268587 | Kruglick | Feb 2016 | B2 |
| 9330301 | Ozog | May 2016 | B1 |
| 9769131 | Hartley et al. | Sep 2017 | B1 |
| 10664494 | Ding et al. | May 2020 | B2 |
| 11055123 | Bin et al. | Jul 2021 | B1 |
| 11609774 | Bin et al. | Mar 2023 | B2 |
| 12032718 | Bin et al. | Jul 2024 | B1 |
| 12056723 | Bin et al. | Aug 2024 | B1 |
| 20060150169 | Cook | Jul 2006 | A1 |
| 20080049942 | Sprunk et al. | Feb 2008 | A1 |
| 20080162532 | Daga | Jul 2008 | A1 |
| 20080270444 | Brodie | Oct 2008 | A1 |
| 20090031230 | Kesler | Jan 2009 | A1 |
| 20100079460 | Breeds | Apr 2010 | A1 |
| 20120059857 | Jackson, Jr. | Mar 2012 | A1 |
| 20120110566 | Park | May 2012 | A1 |
| 20120117558 | Futty et al. | May 2012 | A1 |
| 20120254197 | Kuzmin | Oct 2012 | A1 |
| 20120324242 | Kirsch | Dec 2012 | A1 |
| 20130191780 | Holmes | Jul 2013 | A1 |
| 20130227703 | Sotos et al. | Aug 2013 | A1 |
| 20130246451 | Kaiser | Sep 2013 | A1 |
| 20130283060 | Kulkarni et al. | Oct 2013 | A1 |
| 20130297769 | Chang et al. | Nov 2013 | A1 |
| 20140040182 | Gilder | Feb 2014 | A1 |
| 20140040196 | Wijayaratne et al. | Feb 2014 | A1 |
| 20140040197 | Wijayaratne et al. | Feb 2014 | A1 |
| 20140101438 | Elovici et al. | Apr 2014 | A1 |
| 20140143661 | Carreno-Fuentes | May 2014 | A1 |
| 20140278534 | Romeo | Sep 2014 | A1 |
| 20140344778 | Lau | Nov 2014 | A1 |
| 20160019233 | Wijayaratne et al. | Jan 2016 | A1 |
| 20160147999 | Fontanetta et al. | May 2016 | A1 |
| 20160308855 | Lacey et al. | Oct 2016 | A1 |
| 20170025040 | Maturana et al. | Jan 2017 | A1 |
| 20170048252 | Straub et al. | Feb 2017 | A1 |
| 20170091293 | Cummings | Mar 2017 | A1 |
| 20170249656 | Gantner et al. | Aug 2017 | A1 |
| 20180081905 | Kamath | Mar 2018 | A1 |
| 20180089270 | Qiu | Mar 2018 | A1 |
| 20180150476 | Koos et al. | May 2018 | A1 |
| 20180176117 | Gudetee et al. | Jun 2018 | A1 |
| 20180181613 | Acharya | Jun 2018 | A1 |
| 20180232402 | Bhatti | Aug 2018 | A1 |
| 20190007206 | Surla et al. | Jan 2019 | A1 |
| 20190034509 | Ding et al. | Jan 2019 | A1 |
| 20190042988 | Brown et al. | Feb 2019 | A1 |
| 20190050925 | Hodge | Feb 2019 | A1 |
| 20190303270 | Hoermann | Oct 2019 | A1 |
| 20200026532 | Bill | Jan 2020 | A1 |
| 20200067772 | Tomkins et al. | Feb 2020 | A1 |
| 20200073854 | Wijayaratne et al. | Mar 2020 | A1 |
| 20200082890 | Karr et al. | Mar 2020 | A1 |
| 20200127937 | Busick et al. | Apr 2020 | A1 |
| 20200159700 | Wijayaratne et al. | May 2020 | A1 |
| 20200183906 | Spillane | Jun 2020 | A1 |
| 20210049029 | Kumble et al. | Feb 2021 | A1 |
| 20210067324 | Valente et al. | Mar 2021 | A1 |
| 20210255991 | Koos et al. | Aug 2021 | A1 |
| 20210255992 | Wijayaratne et al. | Aug 2021 | A1 |
| 20210349580 | Dentzer | Nov 2021 | A1 |
| 20220067115 | Zheng et al. | Mar 2022 | A1 |
| 20220107826 | Bin et al. | Apr 2022 | A1 |
| 20220129804 | Dooley et al. | Apr 2022 | A1 |
| 20220148084 | Baker | May 2022 | A1 |
| 20220188334 | Chen | Jun 2022 | A1 |
| 20220207489 | Gupta et al. | Jun 2022 | A1 |
| 20220317831 | Karis | Oct 2022 | A1 |
| 20230010219 | Howley | Jan 2023 | A1 |
| 20230082010 | Clifford | Mar 2023 | A1 |
| 20230145349 | Watari | May 2023 | A1 |
| 20230237034 | Garg | Jul 2023 | A1 |
| 20230315694 | Koos et al. | Oct 2023 | A1 |
| 20230325360 | Wijayaratne et al. | Oct 2023 | A1 |
| Number | Date | Country |
|---|---|---|
| 2022081408 | Apr 2022 | WO |