IP Library Granted Patent US 12682374
Granted Patent B2
US 12682374 · App. 18/622,889 · Granted Jul 14, 2026

Computing system for generating standardized aggregated data reports arising from multiple sources

Inventors: Travis Hansen (Southborough, MA); Jordan Gold (Somerville, MA); Alexander Brigham (Lowell, MA); Conor Dowling (Boston, MA)
Assignee: Klaviyo, Inc.
G06Q30/0246G06F16/258G06F16/285
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 12682374
App. No.
18/622,889
Granted
Jul 14, 2026
Kind
B2
Abstract

A system for assisting a user compute aggregated data arising from multiple sources is programmed and operable to generate a collection of base objects by fetching base objects from the base object databases based on the classification type of the initial request; filter the collection of base objects into a filtered set of base objects by applying at least one attribute filter if present in the initial request; prepare the filtered set of base objects into a processed query for submitting to the raw data database holding the raw data; submit the processed query to the raw data database for aggregation and to obtain an aggregated result set from the raw data database; map, using a transformation matrix, each attributable ID in the aggregated result set to the corresponding attribute value; and return the updated aggregated result set to the input computing device. Related computer-implemented methods are also described.

Claims (60)

1 . A computer-implemented method for assisting a user compute aggregated data arising from multiple heterogenous sources, the method comprising the steps of:

providing a plurality of heterogenous object databases in a server environment, each of which having one of a plurality of classification types, and distinct and incompatible schemas and domains;

receiving a first request from an input computing device, wherein the first request comprises one of a plurality of classification types, data inclusion timeframe, a metric, and an attribute type for grouping;

generating a collection of base objects by fetching base objects from the heterogenous object databases based on the classification type in the request, wherein each base object comprises a base object id, an attributable ID, and at least one attribute value;

filtering the collection of base objects into a filtered set of base objects based on at least one attribute filter if present in the first request;

translating the filtered set of base objects into a first processed query having a common query format for submitting to a raw data database holding raw data corresponding to recorded events, wherein the translating comprises converting the base object id to an attributable ID associated with each recorded event in the raw data database where the object id and attributable ID differ;

submitting the first processed query to the raw data database;

computing an aggregated result set for the at least one metric based on:

generating an aggregated result set by querying the raw data based on the first processed query, and

applying, if the first request includes an attribute type for grouping that is not available in the raw data database, an attribute-based conversion to the aggregated result set, and re-aggregating the aggregated result set to group the aggregated result set in accordance with the first request and the attribute type for grouping; and

returning the aggregated result set to the input computing device;

wherein the computing step is automatically performed regardless of the user's lack of domain-specific knowledge of the heterogeneous databases having incompatible schemas and domains.

2 . The method of claim 1 , wherein the attribute type for grouping is selected from the following: message ID, message name, message subject, message format, message type, message status, send channel, send day of the week, tag names, and audience or segment ID.

3 . The method of claim 1 , wherein the attribute-based conversion is based on a stored transformation matrix to relate/map each attributable ID to an attribute value for the attribute type used for grouping.

4 . The method of claim 1 , wherein the translating is performed by forming a message send-cohort filter based on the data inclusion timeframe.

5 . The method of claim 4 , wherein the message send-cohort filter further comprises flow message creation date.

6 . The method of claim 4 , wherein the translating further comprises forming a sub-grouping based on a sub-attribute type, and optionally, wherein the sub-attribute type is time interval.

7 . The method of claim 1 , wherein the generating a collection of base objects is performed by generating, based on the classification type, a collection of first type of base objects by fetching base objects from a first object database and generating a collection of second type of base objects by fetching base objects from a second object database, for a first pipeline and a second pipeline, respectively.

8 . The method of claim 7 , wherein the translating is performed separately in each of the first pipeline and the second pipeline by (a) converting an ID associated with each first type of base object to an attributable ID associated with each recorded event in the raw data database for the first pipeline; and (b) forming a message send-cohort filter based on the data inclusion timeframe, and optionally forming a sub-grouping based on a sub-attribute type for the second pipeline.

9 . The method of claim 8 , wherein the querying the raw data based on the first processed query comprises querying the raw data for each of the first pipeline and the second pipeline.

10 . The method of claim 9 , further comprising, prior to the returning step, combining the aggregated result set from each of the first pipeline and the second pipeline to create an updated aggregated result set to be returned.

11 . The method of claim 1 , further comprising reducing the raw data to query in the raw data database based on characteristics of the filtered set of base objects and data inclusion timeframe.

12 . The method of claim 1 , further comprising receiving a second request different from the first request, and repeating the generating, filtering, translating, submitting, computing, and returning steps based on the classification type, attributes, data inclusion timeframe, and metrics of the second request to obtain a second aggregated result set.

13 . The method of claim 1 , further comprising:

providing a plurality of datasources in a server environment;

selecting a first datasource from the plurality of datasources based on the classification type of the first initial request; and

routing the first initial request to the first datasource wherein the first datasource is operable to perform the generating, filtering, translating and submitting steps.

14 . The method of claim 3 , further comprising building the transformation matrix prior to the submitting step, and wherein the attributable values for building the transformation matrix are fetched from the filtered set of base objects in bulk from the base object database.

15 . A system for assisting a user compute aggregated data arising from multiple heterogenous sources comprises:

a user input computing device for generating an initial request comprising: a data inclusion timeframe, a metric, and a classification type, and optionally, an attribute type for grouping;

a plurality of heterogenous base object databases, each base object database holding a plurality of base objects, and having distinct and incompatible schemas and domains;

a raw data database comprising a plurality of raw data representing recorded events, each of which has an attributable ID;

a backend processor framework programmed and operable to:

receive the initial request;

generate a collection of base objects by fetching base objects from the base object databases based on the classification type of the initial request, wherein each base object comprises a base object ID, the attributable ID, and an attribute value for the attribute type used for grouping;

filter the collection of base objects into a filtered set of base objects by applying at least one attribute filter if present in the initial request;

prepare the filtered set of base objects into a processed query for submitting to the raw data database holding the raw data;

build a transformation matrix by corresponding each attributable ID with the base object ID, and an attribute value for the attribute type used for grouping;

submit the processed query to the raw data database for aggregation and to obtain an aggregated result set from the raw data database;

map, using the transformation matrix, each attributable ID in the aggregated result set to the base object ID, and corresponding attribute value;

updating the aggregated result set by re-aggregating the mapped aggregated result set to group the aggregated result set in accordance with the first request and the attribute type for grouping; and

return the aggregated result set to the input computing device; and

wherein the processor framework is programmed and operable to automatically generate and return the aggregated result set to the user regardless of the user's lack of domain-specific knowledge of the heterogeneous databases having incompatible schemas and domains.

16 . A system for assisting a user compute aggregated data arising from multiple heterogenous sources comprises:

a plurality of different types of base object databases, each holding a plurality of base objects, and wherein organization of the data in each of the base object databases is different, having distinct and incompatible schemas and domains;

at least one processor; and

a tangible computer-readable medium storing instructions thereon that, when processed by the processor, cause the processor to perform operations comprising executing:

a fetcher module to generate a collection of base objects from the base object databases;

a translation module to prepare the collection of base objects into a processed query comprising a consistent format for querying a raw data database holding raw data of recorded events;

a resolver module programmed and operable to build a transformation matrix for corresponding each attributable ID with an attribute value for the attribute type used for grouping;

a service layer configured to enhance data retrieval efficiency with the raw data database by applying control parameters including load balancing, partitioning, and rate limiting; and

an orchestration module to orchestrate processing an initial request with the fetcher, translation, and resolver modules according to a classification type, data inclusion timeframe, attribute type, and metrics of the initial request; and

wherein the aggregated result set is automatically generated and returned to the user regardless of the user's lack of domain-specific knowledge of the heterogeneous databases having incompatible schemas and domains.

17 . The system of claim 16 , further comprising:

a plurality of types of orchestration modules, each of which is programmed and operable to orchestrate processing the initial request with the fetcher, translation, and aggregator modules according to the classification type, data inclusion timeframe, attributes and metrics of the initial request; and

wherein the tangible computer-readable medium further comprises instructions that, when executed by the processor, cause the processor to perform operations comprising:

executing a selector module to receive the initial request and select the type of orchestration module based on the classification type of the initial request.

18 . The system of claim 17 , wherein the plurality of heterogenous object databases comprises separate databases for email, SMS, and push notifications.

19 . The method of claim 1 , further comprising applying control parameters including load balancing, partitioning, and rate limiting for improving data retrieval efficiency.

20 . The method of claim 1 , wherein the plurality of heterogenous object databases comprises separate databases for email, SMS, and push notifications.