Systems and methods to program a computing system to process related events via workflows configured using a graphical user interface

Information

  • Patent Grant
  • 10419379
  • Patent Number
    10,419,379
  • Date Filed
    Monday, April 6, 2015
    9 years ago
  • Date Issued
    Tuesday, September 17, 2019
    5 years ago
Abstract
Systems and methods configured to program processing logic of related events via the use of autonomous components connected via a message board, a graphical user interface for specifying a workflow among selected autonomous components, where each of the autonomous components is configured to process a pre-determined type of events, and the autonomous components are configured to monitor a message board for relevant messages, retrieve respective messages from the message board, process the retrieved messages independent of other autonomous components, and provide processing results via posting messages on the message board. The messages posted on the message board identify the relevant workflows to cause the autonomous components to process data in accordance with the workflows.
Description
FIELD OF THE TECHNOLOGY

At least some embodiments of the present disclosure relate to programming a computing device to process data via a graphical user interface in general, and more particularly, but not limited to, programming via workflows identified using a graphical user interface.


BACKGROUND

A modern computing apparatus can be programmed to process complex operations in response to related events, such as transmitting a message in response to an event under certain conditions.


However, programming a computing device generally requires skills in computer programming; and designing a computer program requires domain knowledge in the area of the application of the computing device. It is a time consuming process to design a program, request programmers to code the program, and employ testers to test the coded program, before the coded program can be launched for services.


When the requirements of an application of the computing device change, or a different application is requested, the time and labor intensive operations need to be repeated to program the computing device.





BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.



FIG. 1 shows a system configured to program a computing device to process related events according to one embodiment.



FIG. 2 shows a system configured to allow the dynamic configuration of the processing of offers and loyalty programs having different structures according to one embodiment.



FIGS. 3-12 illustrate example of a graphical user interface to configure offers and their processing according to one embodiment.



FIG. 13 shows a system to provide information based on transaction data according to one embodiment.



FIG. 14 illustrates a transaction terminal according to one embodiment.



FIG. 15 illustrates an account identifying device according to one embodiment.



FIG. 16 illustrates a data processing system according to one embodiment.





DETAILED DESCRIPTION

At least one embodiment disclosed in the present application provides techniques to use a graphical user interface to configure workflows of preprogrammed autonomous components that can operate independently from each other and thus configure a computing device to process related events without a need for a programmer to write a code to implement the processing logic.



FIG. 1 shows a system configured to program a computing device to process related events according to one embodiment.


The system in FIG. 1 includes a portal (143) coupled with a workflow manager (201) to present a graphical user interface (229) configured to receive workflow input (123) from a user defining a workflow (221) of the event managers (231, . . . , 233).


After the workflow input (123) is received in the graphical user interface (229) presented via the workflow manager (201) and the portal (143), the data warehouse (149) stores the data defining the workflow (221) of the event managers (231, . . . , 233).


The system in FIG. 1 includes a plurality of event managers (231, . . . , 233) coupled with the message board (200) and/or the data warehouse (149). Each of the event managers (231, . . . , 233) is configured as an autonomous component that can detect a relevant message on the message board (200), process an event identified by the relevant message without interaction with other autonomous component, and post a message on the message board to provide the processing result.


Each of the event managers (231, . . . , 233) is configured as an autonomous component that processes a predetermined type of events independent of other event managers (231, . . . , 233). Different event managers (231, . . . , 233) processes different types of events.


Each of the event managers (231, . . . , 233) is generally configured to receive input from the message board (200) and provide processing results that may be used by other event managers on the message board (200) and/or the data warehouse (149) as the execution data (225).


In FIG. 1, the flow of operations among the event managers (231, . . . , 233) is defined by the workflow (221); and different users may define different workflows (221) of the event managers (231, . . . , 233) for their respective processing needs.


In FIG. 1, the data warehouse (149) and the message board (200) provide communication channels to allow processing results to flow from one manager to another, in accordance with the workflow (221).


In some embodiments, at least some of the event managers (231, . . . , 233) have other input/output channels different from the data warehouse (149) and the message board (200). The additional input/output channels are configured to meet the specific needs of the respective event managers (231, . . . , 233) and are generally not use for communications among the event managers (231, . . . , 233).


In FIG. 1, the event input (227) is processed by the workflow manager (201) to generate a message posted on the message board (200). The event managers (231, . . . , 233) independently monitor the message boards (200) for messages relevant to respective event managers (231, . . . , 233). After processing the relevant messages independent of other event managers (231, . . . , 233), the respective event managers (231, . . . , 233) provide the respective processing results as messages posted on the message board (200), which messages cause relevant event managers (231, . . . , 233) to further processing the results in accordance with the workflow (221). Certain processing results are stored in the data warehouse (149) as the persistent execution data (225) that can be looked up by the event managers when needed.


For example, in response to an event that has the event input (227), the workflow manager (201) identifies the relevant workflow (221), generates a message identifying the workflow (221) and the event input, and posts the message on the message board (200). The event managers (231, . . . , 233) are configured to periodically check the message board (200) for messages that are relevant to respective event managers (231, . . . , 233). One or more of the event managers (231, . . . , 233) determine that the message generated by the workflow manager (201) needs processing by the one or more of the event managers (231, . . . , 233), retrieve the message, process the message, generate one or more result messages in accordance with the workflow (221), and post the result messages on the message board. The result messages identifying the workflow (221), the processing stage of the workflow (221), and/or the results generated by the respective event managers (e.g., 231, . . . , 233). The result messages are retrieved by relevant event managers according to the workflow (221) for further processing, until the completion of the workflow (221).


Thus, in FIG. 1, the executions of the event managers (231, . . . , 233) are driven by the messages posted on the message board (200), in accordance with the workflow (221).


The arrangement in FIG. 1 greatly simplifies the programming of the processing of a campaign that involves different types of events interconnected via prerequisite conditions, where the prerequisite conditions and the flows of the events are generally different from campaigns to campaigns, based on the preferences and needs of the users.


Using the system of FIG. 1, the users may specify their preferences and needs via the graphical users interface (229) as the workflow input (123). The workflow manager (201) generates the workflows (221) according to the workflow input (123) from the users. Once the workflow (221) is activated, the system can process the related events according to the preferences and needs of the user, without the need to employ programmers to code the processing logic.


The techniques of FIG. 1 can be used in many areas, including the processing of an offer campaign involving different types of events, such as enrollment, payment transaction, rewards, statement credits, notifications, etc.


For example, transaction data, such as records of transactions made via credit accounts, debit accounts, prepaid accounts, bank accounts, stored value accounts and the like, can be processed to optionally provide information for various services, such as reporting, benchmarking, advertising, content or offer selection, customization, personalization, prioritization, offer redemption, loyalty benefit provisioning and/or redemption, etc.


To improve privacy protections, users may be required to enroll in a service program and provide consent to allow the system to use related transaction data and/or other data for the related services, and the system is configured to provide the services while protecting the privacy of the users in accordance with the enrollment agreement and user consent.


For example, based on the transaction data, an advertising network in one embodiment is provided to present personalized or targeted advertisements/offers on behalf of advertisers. A computing apparatus of, or associated with, the transaction handler uses the transaction data and/or other data, such as account data, merchant data, search data, social networking data, web data, etc., to develop intelligence information about individual customers, or certain types or groups of customers. The intelligence information can be used to select, identify, generate, adjust, prioritize, and/or personalize advertisements/offers to the customers. Some examples of targeted offer delivery are provided in U.S. Pat. No. 8,606,630, entitled “Systems and Methods to Deliver Targeted Advertisements to Audience”, the entire disclosure of which is hereby incorporated herein by reference.


For example, the computing apparatus can be configured to generate trigger records for a transaction handler to identify authorization requests that satisfy the conditions specified in the trigger records, identify communication references of the users associated with the identified authorization requests, and use the communication references to target real-time messages at the users in parallel with the transaction handler providing responses to the respective authorization requests. Details in one embodiment regarding the generation and delivery of messages in real-time with the processing of transactions are provided in the section entitled “REAL-TIME MESSAGES”, and U.S. Pat. Nos. 8,359,274 and 8,407,148, both entitled “Systems and Methods to Provide Messages in Real-Time with Transaction Processing”, the entire disclosures of which are hereby incorporated herein by reference.


For example, the computing apparatus can be programmable for real-time interaction with users to provide messages and/or offers, validate fulfillment conditions, and provide benefits to qualified users to fulfill the offers. In one embodiment, the computing apparatus is configured to be programmed via accepting definitions of independent events and linking the events via prerequisite requirements to specify qualification conditions. The linked events form a flow or network of events; and user progress in the flow or network of events is tracked. The operations for each event are performed in an atomic way to allow the user positions in the flow or network of events to be identified as being in between adjacent events in the network. As a result, the programming of the real-time interaction, including the offer rules and messages, can be easily modified during the execution of the programming. Details in one embodiment regarding the formulation and management of real-time interaction are provided in U.S. Pat. App. Pub. No. 2012/0078697, entitled “Systems and Methods to Program Operations for Interaction with Users”, the entire disclosure of which application is hereby incorporated herein by reference.


In one embodiment, the computing apparatus can be configured to include a set of autonomous components coupled together via a messaging system and a workflow for an offer or loyalty program. The processing of different offers or loyalty programs can be programmed via customizing the workflows of the autonomous components and their configuration parameters. When a transaction that may be relevant to an offer or loyalty program is detected, the data about the transaction and other relevant data, including the workflow of the offer or loyalty program and the processing results of relevant components, can be posted on the messaging system for further processing according to the workflow. Thus, the computing apparatus can support the rapid development and deployment of offers or loyalty programs having different structures and rules.


Using a system as illustrated in FIG. 1, a user-friendly graphical interface can be configured to accommodate changing requirements of loyalty/offer businesses. The friendly graphical user interface can accommodate the design, specification, and/or modifications of different loyalty programs of different structures. The graphical user interface receives user input for generating data to configure the processing of transactions relevant to the loyalty program, without the need to write computer codes. For example, the graphical user interface is configured to collect user input regarding parameters and options of the loyalty program, select a workflow template, modify the workflow to define the processing of the loyalty program within RTM, and specify parameters for the workflow. Details and examples are provided further below.


For example, different offers and loyalty programs may have different structures with different processing requirements in response to payment transactions.


For example, the processing of some offers and loyalty programs may involve the notification of transaction information to an offer provider for further processing.


For example, the processing of some offers and loyalty programs may involve the notification of transaction information to an offer provider for the determination of benefits and applying benefits to transactions in response to the response from the offer provider.


For example, the processing of some offers and loyalty programs may involve the provisioning of benefits of the programs, settling the cost of the benefits, and provide notifications to the users receiving the benefits.


For example, the processing of some offers and loyalty programs may involve delivering of offers and/or the management of the user enrollments, but others many not.


For example, the processing of some offers and loyalty programs may involve the inline application of benefits during the authorization of a payment transaction based on predetermined redemption requirements, but may or may not involve notifications to users.


Using the techniques illustrated in FIG. 1, the different types of offers and/or loyalty programs can be configured via the graphical user interface (229) without the need to employ a programmer to write codes in conventional computer programming languages to program the processing logic.


As illustrated in FIG. 1, a messaging system (e.g., 200, implemented using an enterprise service bus) is used to interconnect a set of independent, autonomous components of event managers for implementing loyalty programs via workflows. The messages posted on the enterprise service bus drive the operations of the components according to a workflow that implements the loyalty program. When implementing a loyalty program or offer having a new processing structure, the graphical user interface (229) can be used to simply connect the functions of available components to define a new workflow and specify the configuration parameters of the components for the loyalty program of offer. Depositing the workflow in a repository (e.g., in a predetermined area of the data warehouse (149)) activates the implementation of the loyalty program. The system allows the rapid development and deployment of new loyalty programs or offers in days, instead of months to a year.



FIG. 2 shows a system configured to allow the dynamic configuration of the processing of offers and loyalty programs having different structures according to one embodiment.


In FIG. 2, the data warehouse (149) is configured to store transaction data (109) of payment transactions processed by the transaction handler (103) and trigger records (197) for identifying transactions that may be of interest for transaction-related services, such as offer/loyalty benefit processing.


In FIG. 2, the data warehouse (149) further stores account data (111) of users, including the account information (142) identifying the consumer account (146) of the user, and the communication reference (195) of the user that may be used for the transmission of notification and/or alert.


In FIG. 2, the data warehouse (149) further stores the offer (186), including the offer rules (193) and the workflow (221) for the processing of the offer (186). In one embodiment, the offer (186) may include a discount offer, an incentive offer, a reward offer, a loyalty benefit redemption offer, and/or a loyalty program offer, etc.


In FIG. 2, the data warehouse (149) further stores enrollment data (223) identifying the enrollment status of users, which associates the offer (186) with the account data (111) of the user who has accepted the offer (186) and/or enrolled in the program associated with the offer (186).


In FIG. 2, the transaction handler (103) is configured to process the payment transactions in a payment network illustrated in FIG. 13 and use the trigger records (197) to identify transactions that satisfy the conditions specified in the trigger records (197) for further actions specified in the respective trigger records (197).


In FIG. 2, the rule engine (199) is configured to evaluate the rules, such as offer rules (193), to determine whether certain conditions are satisfied.


In FIG. 2, the workflow manager (201) is configured to provide a user interface that allows a user to design, modify, generate, and configure the workflow (221). In one embodiment, at least part of the offer rules (193) are configurable via the workflow manager (201).


In one embodiment, the workflow (221) specifies the processing follow by a set of autonomous components configured in the system, such as an enrollment manager (205), a transaction manager (211), a clearing manager (213), a fulfillment manager (215), a discount manager (217), an event manager (207), a notification manager (209), a merchant manager (219), etc.


In one embodiment, each of the autonomous components is configured to process available data independent of other autonomous components and/or the operation sequences of the components.


In FIG. 2, the enrollment manager (205) is configured to manage user-related data, including data registered by other workflow components such as the transaction manager (211) and the notification manager (209)). It may provide a user interface for a customer or a partner to input and manage user-related data, ensure consistent cross-enrollment/registration in peer systems (e.g., as specified in offer settings or as registered by other workflow components such as the transaction manager (211).


In FIG. 2, the data manager (203) is configured to load data from the data warehouse (149) and/or other data sources for the processing of a transaction that is identified to satisfy the requirements of a trigger record (197) in relation with the action specified in the respective trigger record (197).


In one embodiment, after a payment transaction is identified by the transaction handler (103) in accordance with a trigger record (197), the data manager (203) identifies the action specified in the trigger record (197) as being related to the offer (186) and generates a data object that contains the data of payment transaction as being processed by the transaction handler, data identifying the offer (186) including the workflow (221), and relevant context data for the processing of offer (186) and/or the action identified in the trigger record (197).


In one embodiment, the data manager (203) is configured to make the data object available to the autonomous components, such as the transaction manager (211), the clearing manager (213), the fulfillment manager (215), the discount manager (217), the event manager (207), the notification manager (209), the merchant manager (219), etc., and post a message on the message board (200) to allow the autonomous components to further process the transaction using the data object and in accordance with the workflow (221) identified in the data object.


In one embodiment, each of the autonomous components is configured to watch the message board (200) to detect messages that require their services. When a message on the message board (200) requires the service of a respective autonomous component, the respective autonomous component retrieves the message, performs operations in view of the associated data object, updates the data object with results if there is any, and posts a resulting message on the message board (200), which may cause an autonomous component to render its service in accordance with the workflow (221).


In one embodiment, the event manager (207) is configured to store offer metadata, event rules and actions, location repository data, event history of the user in complex event processing, etc. The event manager (207) is further configured to validate, get/set offer metadata, event rules and actions (e.g., by calling downstream systems for action validation), location data, etc.


In one embodiment, the notification manager (209) is configured to store notification templates. User contact details (e.g., communication reference (195) may be stored in user enrollment record (e.g., 223). In one embodiment, the notification system defines what details are required and workflow manager (201) enforces the requirements. The notification manager (209) is configured to process realtime message requests, validate template including substitution of variables, and send messages via proper media channels.


For example, the notification manager (209) may be called by the event manager (207) to validate that a notification template can be assigned to an event based on the event data.


In one embodiment, the transaction manager (211) is configured to coordinate with the transaction handler (103) for the authorization of the payment transaction in view of the data object.


In one embodiment, the clearing manager (213) is configured to coordinate with the transaction handler (103) for the clearing of the payment transaction in view of the data object.


In one embodiment, the fulfillment manager (215) is configured to store/manage the credit balance and other fulfillment data, such as receipt message template, etc. For example, the fulfillment manager (215) may include an application programming interface (API) to manually issue statement credits, and/or an API to update credit balance.


In one embodiment, the discount manager (217) is configured to store discount templates, listen to enrollment and update discount records for the transaction handler (103) as appropriate, register discount trigger templates with the transaction handler (103), and/or maintain a discount timeout queue for discount timeouts.


In one embodiment, the merchant manager (219) is configured to communicate with an API and/or a user interface to manage merchants.


In FIG. 2, an advanced computing infrastructure is provided for implementing, modifying and/or experimenting with offers and/or loyalty programs. Processing of offers and loyalty programs having different structures can be dynamically configured through the customization of workflows.


In one embodiment, the computing apparatus is implemented using at least one data processing system, as illustrated in FIG. 16, having at least one microprocessor (173) and memory (167) storing instructions configured to instruct the at least one microprocessor (173) to perform the operations described herein. The computing apparatus includes at least one of: the data warehouse (149), the transaction handler (103), the data manager (203), the rule engine (199), the workflow manager (201), the enrollment manager (205), the transaction manager (211), the clearing manager (213), the fulfillment manager (215), the discount manager (217), the event manager (207), the notification manager (209), the merchant manager (219), each of which can be implemented using one or more data processing systems illustrated in FIG. 16.


For example, in one embodiment, each of the autonomous components (e.g., event managers (231, . . . , 233)) is implemented on one or more dedicated computers that are not shared with computers used to implement other autonomous components (e.g., event managers (231, . . . , 233)). In another embodiment, each of the autonomous components (e.g., event managers (231, . . . , 233)) is implemented as a virtual machine in a cluster of computers connected via a local area network, where the cluster of computers may be shared for the implementation of different autonomous components (e.g., event managers (231, . . . , 233)).



FIGS. 3-12 illustrate example of a graphical user interface (229) to configure offers and their processing according to one embodiment.


In one embodiment, the graphical user interface (229) is provided via the portal (143) coupled with the data warehouse (149) and implemented in a system illustrated in FIGS. 1 and/or 2.


The user interface (301) illustrated in FIG. 3 presents a plurality of workflow templates preconfigured for typical offer campaigns or loyalty programs. The user of the user interface (301) can use the cursor (305) to select one of icons (303) representing the preconfigured workflow templates, or the icon (307) to create a custom workflow.


In one embodiment, each of the predefined workflow templates has predefined processing flows and partner relationships. The user may choose to use the predefined processing flows and partner relationships, or modify the template to generate a custom workflow.


In one embodiment, each of the predefined community templates has a predetermined workflow for a selected set of autonomous components, such as the enrollment manager (205), the transaction manager (211), the clearing manager (213), the fulfillment manager (215), the discount manager (217), the event manager (207), the notification manager (209), etc. illustrated in FIG. 2.


In one embodiment, a custom workflow can be created via a design of the structure and processing flow of the autonomous components selected for the offer or loyalty component.


In one embodiment, different workflows correspond to different templates of offer communities of different structures. The structure differences are reflected in the differences in workflows, e.g., how the processing flow goes from one autonomous components to another.


Different offers or loyalty programs can also be configured using the same workflow template having the same processing flow but different configuration parameters for different offers or loyalty programs.


In one embodiment, after the user selects one of the icons (303, 307) in the user interface (301) shown in FIG. 3, a user interface (311) illustrated in FIG. 4 is presented to allow the user to select a set of components for an offer or loyalty program and define the flow of work among the selected set of components.


For example, if the user selects an icon (303) representing a pre-configured workflow, the user interface (311) initially presents the pre-selected set of component icons (317) in the panel (315) with the flow lines (319) illustrating the pre-configured flow directions. The icons of the components not selected in the pre-configured workflow are presented in a separate panel (313).


If the user selects the icon (307) representing a custom workflow, the user interface (311) initially presents no component icons (317) in the panel (315). The icons of all components available for selection into the panel (315) are presented in the panel (313).


In the user interface (311) illustrated in FIG. 4, the user may use the cursor (305) to drag an icon (317) from the icon panel (313) to the workflow panel (315) to add the component represented by the dragged icon (317) into the workflow of the offer or loyalty program. The user may also use the cursor (305) to drag an icon (317) from the workflow panel (315) to the icon panel (313) to remove the component represented by the dragged icon (317) from the workflow of the offer or loyalty program.


In the user interface (311) illustrated in FIG. 4, the user may provide inputs (e.g., drawing lines to connect the icons) to instruct the workflow manager (201) to create flow connections between components (231, . . . , 233) represented by respective icons (317). The flow lines (319) can be adjusted, changed, added, and/or deleted in the panel (315) to specify or customize the workflow.


In some embodiments, some of the components may not necessarily be connected to other components via flow lines. Such components may process relevant events without the prerequisite of the result of other components.


In one embodiment, each of the icons (317) presented in the panel (315) in FIG. 4 can be selected to request user interfaces (e.g., 321) as illustrated in FIG. 5 to configure the options of the component represented by the selected icon (317).


In some embodiments, a custom workflow having a unique flow structure as defined in the panel (315) can be saved as a template, represented in the user interface (303) as a template icon (303).


In some embodiments, when a template workflow (e.g., represented by the icon (303)) is selected in a configuration wizard, the wizard presents the configuration interfaces for the components used in the workflow, one after another, to configure the components.


In one embodiment, the cursor (305) can be used to select an icon (319) in the panel (315) to invoke a user interface (321) (e.g., via double-click, right-click, select to highlight and apply a menu option to configure options) in a way as illustrated in FIG. 6.


In FIG. 5 or 6, the user interface (321) includes a list (323) of available services that can be selected into the list (325) of exposed services. Each of the services represents one of a plurality of computing services offered by the component associated with the user interface (321). Exposing a service of the component represents the configuration of the component to actually provide the service; and the services not selected as exposed services are not actually provided by the component during the execution of the workflow.


For example, the user interface (311) illustrated in FIG. 4 can be used to edit a workflow of an offer involving a community of participants. In FIG. 4, the workflow panel (315) may show the arrangement/connection of autonomous components used in the processing of the offer community, such as the transaction manager (211), the clearing manager (213), the notification manager (209), the enrollment manager (205), the discount manager (217), the fulfillment manager (215), for a workflow of the offer campaign.


Some of the components selected in the workflow panel (315), such as the enrollment manager (205), the discount manager (217), the fulfillment manager (215), can be used in the workflow without connections with others. Such components are used when appropriate trigger conditions are satisfied, without requiring invoking other components to process the results these components.


Some of the components selected in the workflow panel (315), such as the transaction manager (219), the clearing manager (213), and the notification manager (209), are connected in the workflow via flow lines (319). In the connected part of the workflow, a subsequent component (e.g., the clearing manager (213), the notification manager (209)) is invoked to process the result of the prior component (e.g., the transaction manager (211)).


In some embodiments, the user interface (311) of FIG. 4 includes tools usable by the user to arrange the connectivity among the autonomous components, such as adding a flow line to represent a workflow connection between two components, deleting a flow line connection between two components, changing the components connected by a flow line, etc.


For example, the icon of the event manager (207) can be selected from the icon panel (313) into the workflow panel (315) in FIG. 4 and inserted after the icon of the transaction handler (211) in the processing flow to obtain a modified workflow.


The collection of autonomous components in a relationship represented by the workflow connections (and/or the lack of the workflow connections among some of them) represents the processing workflow (221) of the offer community. Data representing the processing workflow (221) is stored as the data warehouse (149) for the offer (186) corresponding to the offer community that may involve a participating merchant, a population of enrolled customers, one or more issuers, loyalty providers, etc.


In one embodiment, web services provided by the autonomous components can also be used via selecting and configuring the individual components displayed in the workflow panel (315) in FIG. 4. The configurations of the web services can be exported to a file in a Web Service Definition Language (WSDL) (e.g., via the selection of an “Export WSDL” button provide in some embodiments.)


In one embodiment, the exported WSDL file providing the configurations of the web services specifies the web communication protocols between the component and a web application of the user such that when the web application is implemented in accordance with the WSDL file, the component can communicate correctly with the web application of the user of the graphical user interface (229).


For example, the option configuration interface (311) for the event manager (207) can be configured to the selection of exposed services from a set (323) of available services, such as saveOffer, saveOfferMetadata, saveEvent, cancelEvent, updateEvent.


After the selection, creation, and/or customization of a workflow template and the global parameters for an offer or loyalty program, a configuration wizard can be used to lead the user to configure the options or settings of the individual components used in the workflow to create a workflow for the offer or loyalty program.


In one embodiment, a wizard is configured to walk the user though setting up a loyalty community and allows the user to customize settings for the community and enable advanced system features. In another embodiment, the user may customize the individual components via inspecting individual components selected in the workflow panel (315).



FIG. 7 shows an example of a user interface (331) to configure the global parameters of an offer or loyalty program. In FIG. 7, the user is provided with selectable options related to the type of the offer/loyalty program, the messaging model of the offer/loyalty program, the mode of reward processing, the stages of a transaction lifecycle involved in the offer/loyalty program, the processing priority of the offer/loyalty program, etc.



FIG. 8 illustrates a user interface (333) for the configuration of the default message template, such as the message format, and the substitution variables.


For example, FIG. 8 illustrates the configuration of a default message template. The message template may use one or more substitution variables, such as TransactionDateTime, TransactionAmount, ServiceKey, MerchantName, etc. The user may also create custom fields for variable substitution. The variables used in the message template will be substituted by the actual values of the variables for the corresponding transaction when generating the real time message by the rule engine (199), the data manager (203), and/or the respective event managers (231, . . . , 233).


In some embodiments, the user interface may provide a user interface element selected to present the source code for the configuration of the variables substitution, which provides a more flexible user interface for advanced configuration of the notification manager (209) that generates notification messages for the offer/loyalty program.



FIG. 9 illustrates a user interface (335) for the configuration of transaction processing options. For example, the user may indicate that during the processing of the transactions, whether certain data (e.g., merchant data, merchant group, payment card data, payment card product group) is required, optional, or never used. The processing options identify the data used and/or processed by the transaction manager (211) in the offer/loyalty program for improved efficiency and execution speed.



FIG. 10 illustrates a user interface (337) for the configuration of enrollment options, such as whether, during the enrollment, certain data (e.g., card data, card product group data) is required, optional, or never used. The user may select an option to support full enrollment, mobile enrollment and/or API based enrollment.



FIG. 11 illustrates a user interface (339) for further configuration of the enrollment manager (205). For example, the user enrollment for the community may require a number of exposed services, such as “Enroll/Unenroll”, “Update Enrollee”, “Add/Remove Card”, “Update Card”, etc. In some embodiments, the exposed services of different event managers (231, . . . , 233)/components (207, . . . 219) can be exported in to a single WSDL file at the end of the configurations of managers/components.


For example, the enrollment communication may require variable substitutions for fields, such as FirstName, LastName, BilllingZip, City, State of the enrollee.


In FIG. 11, the user interface (339) further allows the user to define custom fields used in enrollment communication, and indication of whether the custom fields are option or required.


In one embodiment, a user interface for the configuration of notification manager (209) allows the selection of options to export services via SMS, email, and/or service notification.


If the offer community is configured to provide offer benefits via statement credits, FIG. 12 illustrates a user interface (341) for the configuration of statement credit options for the discount manager (217), such as the use of sendStatementCredit service, the initial credit balance for use with the statement credits.


If the offer community is configured to provide benefit that can be redeemed while the transaction is being processed at the transaction terminal, a similar user interface is presented for the configuration of the use of services, such as saveDiscountTemplate, and activateDiscount.


If the offer community is configured to involve event manager (207), a user interface is presented for the configuration of the use of relevant services, such as saveOffer, saveOfferMetaData, saveEvent, cancel Event, and updateEvent.


In one embodiment, after the user finishes configuring the offer community, a user interface is presented to offer the user exporting the configured web services into a Web Service Definition Language (WSDL) file.


In one embodiment, the configuration of the community identifies a set of web services of the portal (143) and/or the media controller for communication with partners (e.g., issuers, merchants, benefit sponsors). The exported configuration of the web services in a Web Service Definition Language (WSDL) allows the partners to configure their computing systems for communication with the portal (143) and/or the media controller.


In one embodiment, the event managers (231, . . . , 233) include at least a transaction manager (211) configured to process the transaction data from a transaction handler of an electronic payment processing network, as illustrated in FIG. 13.


In one embodiment, a data warehouse (149) as illustrated in FIG. 13 is coupled with the transaction handler (103) to store the transaction data (109) and other data, such as account data (111), transaction profiles and correlation results. In FIG. 13, a portal (143) is coupled with the data warehouse (149) to provide data or information derived from the transaction data (109), in response to a query request from a third party or as an alert or notification message.


In FIG. 13, the transaction handler (103) is coupled between an issuer processor (145) in control of a consumer account (146) and an acquirer processor (147) in control of a merchant account (148). An account identification device (141) is configured to carry the account information (142) that identifies the consumer account (146) with the issuer processor (145) and provide the account information (142) to the transaction terminal (105) of a merchant to initiate a transaction between the user and the merchant.



FIGS. 14 and 15 illustrate examples of transaction terminals (105) and account identification devices (141). FIG. 16 illustrates the structure of a data processing system (170) that can be used to implement, with more or fewer elements, at least some of the components in the system. Some embodiments use more or fewer components than those illustrated, such as, in FIGS. 1, 2, 13-16, and other figures.


For example, the system as described above can be used to provide a user-friendly interface to accommodate changing requirements of offer campaigns and/or loyalty programs. The friendly user interface allows inputs to design, specify, and/or modify a loyalty program via a graphical user interface and generate data to configure processing of transactions relevant to the loyalty program, without the need for programmers to write computer codes. The graphical user interface is configured to collect user input regarding parameters and options of the loyalty program, select a workflow template, modify the workflow to define the processing of the loyalty program within RTM, and specify parameters for the workflow. As a result, new loyalty programs may be quickly implemented and/or modified for improvements.


Transaction Processing and Data



FIG. 13 shows a system to provide information and/or services based on transaction data (109) according to one embodiment.


In FIG. 13, the transaction handler (103) is coupled between an issuer processor (145) and an acquirer processor (147) to facilitate authorization and settlement of transactions between a consumer account (146) and a merchant account (148). The transaction handler (103) records the transactions in the data warehouse (149). The portal (143) is coupled to the data warehouse (149) to provide information based on the transaction records, such as the transaction profiles, aggregated spending profile, offer redemption notification, etc. The portal (143) may be implemented as a web portal, a telephone gateway, a file/data server, etc.


In FIG. 13, the transaction terminal (105) initiates the transaction for a user (e.g., a customer) for processing by a transaction handler (103). The transaction handler (103) processes the transaction and stores transaction data (109) about the transaction, in connection with account data (111), such as the account profile of an account of the user. The account data (111) may further include data about the user, collected from issuers or merchants, and/or other sources, such as social networks, credit bureaus, merchant provided information, address information, etc. In one embodiment, a transaction may be initiated by a server (e.g., based on a stored schedule for recurrent payments).


The accumulated transaction data (109) and the corresponding account data (111) are used to generate intelligence information about the purchase behavior, pattern, preference, tendency, frequency, trend, amount and/or propensity of the users, as individuals or as a member of a group. The intelligence information can then be used to generate, identify and/or select targeted advertisements for presentation to the user on the point of interaction, during a transaction, after a transaction, or when other opportunities arise.


In FIG. 13, the consumer account (146) is under the control of the issuer processor (145). The consumer account (146) may be owned by an individual, or an organization such as a business, a school, etc. The consumer account (146) may be a credit account, a debit account, or a stored value account. The issuer may provide the consumer (e.g., user) an account identification device (141) to identify the consumer account (146) using the account information (142). The respective consumer of the account (146) can be called an account holder or a cardholder, even when the consumer is not physically issued a card, or the account identification device (141), in one embodiment. The issuer processor (145) is to charge the consumer account (146) to pay for purchases.


The account identification device (141) of one embodiment is a plastic card having a magnetic strip storing account information (142) identifying the consumer account (146) and/or the issuer processor (145). Alternatively, the account identification device (141) is a smartcard having an integrated circuit chip storing at least the account information (142). The account identification device (141) may optionally include a mobile phone having an integrated smartcard.


The account information (142) may be printed or embossed on the account identification device (141). The account information (142) may be printed as a bar code to allow the transaction terminal (105) to read the information via an optical scanner. The account information (142) may be stored in a memory of the account identification device (141) and configured to be read via wireless, contactless communications, such as near field communications via magnetic field coupling, infrared communications, or radio frequency communications. Alternatively, the transaction terminal (105) may require contact with the account identification device (141) to read the account information (142) (e.g., by reading the magnetic strip of a card with a magnetic strip reader).


The transaction terminal (105) is configured to transmit an authorization request message to the acquirer processor (147). The authorization request includes the account information (142), an amount of payment, and information about the merchant (e.g., an indication of the merchant account (148)). The acquirer processor (147) requests the transaction handler (103) to process the authorization request, based on the account information (142) received in the transaction terminal (105). The transaction handler (103) routes the authorization request to the issuer processor (145) and may process and respond to the authorization request when the issuer processor (145) is not available. The issuer processor (145) determines whether to authorize the transaction based at least in part on a balance of the consumer account (146).


The transaction handler (103), the issuer processor (145), and the acquirer processor (147) may each include a subsystem to identify the risk in the transaction and may reject the transaction based on the risk assessment.


The account identification device (141) may include security features to prevent unauthorized uses of the consumer account (146), such as a logo to show the authenticity of the account identification device (141), encryption to protect the account information (142), etc.


The transaction terminal (105) of one embodiment is configured to interact with the account identification device (141) to obtain the account information (142) that identifies the consumer account (146) and/or the issuer processor (145). The transaction terminal (105) communicates with the acquirer processor (147) that controls the merchant account (148) of a merchant. The transaction terminal (105) may communicate with the acquirer processor (147) via a data communication connection, such as a telephone connection, an Internet connection, etc. The acquirer processor (147) is to collect payments into the merchant account (148) on behalf of the merchant.


In one embodiment, the transaction terminal (105) is a POS terminal at a traditional, offline, “brick and mortar” retail store. In another embodiment, the transaction terminal (105) is an online server that receives account information (142) of the consumer account (146) from the user through a web connection. In one embodiment, the user may provide account information (142) through a telephone call, via verbal communications with a representative of the merchant; and the representative enters the account information (142) into the transaction terminal (105) to initiate the transaction.


In one embodiment, the account information (142) can be entered directly into the transaction terminal (105) to make payment from the consumer account (146), without having to physically present the account identification device (141). When a transaction is initiated without physically presenting an account identification device (141), the transaction is classified as a “card-not-present” (CNP) transaction.


In general, the issuer processor (145) may control more than one consumer account (146); the acquirer processor (147) may control more than one merchant account (148); and the transaction handler (103) is connected between a plurality of issuer processors (e.g., 145) and a plurality of acquirer processors (e.g., 147). An entity (e.g., bank) may operate both an issuer processor (145) and an acquirer processor (147).


In one embodiment, the transaction handler (103), the issuer processor (145), the acquirer processor (147), the transaction terminal (105), the portal (143), and other devices and/or services accessing the portal (143) are connected via communications networks, such as local area networks, cellular telecommunications networks, wireless wide area networks, wireless local area networks, an intranet, and Internet. Dedicated communication channels may be used between the transaction handler (103) and the issuer processor (145), between the transaction handler (103) and the acquirer processor (147), and/or between the portal (143) and the transaction handler (103).


In FIG. 13, the transaction handler (103) uses the data warehouse (149) to store the records about the transactions, such as the transaction records or transaction data (109).


Typically, the transaction handler (103) is implemented using a powerful computer, or cluster of computers functioning as a unit, controlled by instructions stored on a computer readable medium. The transaction handler (103) is configured to support and deliver authorization services, exception file services, and clearing and settlement services. The transaction handler (103) has a subsystem to process authorization requests and another subsystem to perform clearing and settlement services. The transaction handler (103) is configured to process different types of transactions, such credit card transactions, debit card transactions, prepaid card transactions, and other types of commercial transactions. The transaction handler (103) interconnects the issuer processors (e.g., 145) and the acquirer processor (e.g., 147) to facilitate payment communications.


In FIG. 13, the transaction terminal (105) is configured to submit the authorized transactions to the acquirer processor (147) for settlement. The amount for the settlement may be different from the amount specified in the authorization request. The transaction handler (103) is coupled between the issuer processor (145) and the acquirer processor (147) to facilitate the clearing and settling of the transaction. Clearing includes the exchange of financial information between the issuer processor (145) and the acquirer processor (147); and settlement includes the exchange of funds.


In FIG. 13, the issuer processor (145) is configured to provide funds to make payments on behalf of the consumer account (146). The acquirer processor (147) is to receive the funds on behalf of the merchant account (148). The issuer processor (145) and the acquirer processor (147) communicate with the transaction handler (103) to coordinate the transfer of funds for the transaction. The funds can be transferred electronically.


The transaction terminal (105) may submit a transaction directly for settlement, without having to separately submit an authorization request.


In one embodiment, the portal (143) provides a user interface to allow the user to organize the transactions in one or more consumer accounts (146) of the user with one or more issuers. The user may organize the transactions using information and/or categories identified in the transaction records, such as merchant category, transaction date, amount, etc. Examples and techniques in one embodiment are provided in U.S. Pat. App. Pub. No. 2007/0055597, and entitled “Method and System for Manipulating Purchase Information,” the disclosure of which is hereby incorporated herein by reference.


In one embodiment, the portal (143) provides transaction based statistics, such as indicators for retail spending monitoring, indicators for merchant benchmarking, industry/market segmentation, indicators of spending patterns, etc. Further examples can be found in U.S. Pat. App. Pub. No. 2009/0048884, and entitled “Merchant Benchmarking Tool,” the disclosure of which application is hereby incorporated herein by reference.


Transaction Terminal



FIG. 14 illustrates a transaction terminal according to one embodiment. The transaction terminal (105) illustrated in FIG. 14 can be used in various systems discussed in connection with other figures of the present disclosure. In FIG. 14, the transaction terminal (105) is configured to interact with an account identification device (141) to obtain account information (142) about the consumer account (146).


In one embodiment, the transaction terminal (105) includes a memory (167) coupled to the processor (151), which controls the operations of a reader (163), an input device (153), an output device (165) and a network interface (161). The memory (167) may store instructions for the processor (151) and/or data, such as an identification that is associated with the merchant account (148).


In one embodiment, the reader (163) includes a magnetic strip reader. In another embodiment, the reader (163) includes a contactless reader, such as a radio frequency identification (RFID) reader, a near field communications (NFC) device configured to read data via magnetic field coupling (in accordance with ISO standard 14443/NFC), a Bluetooth transceiver, a WiFi transceiver, an infrared transceiver, a laser scanner, etc.


In one embodiment, the input device (153) includes key buttons that can be used to enter the account information (142) directly into the transaction terminal (105) without the physical presence of the account identification device (141). The input device (153) can be configured to provide further information to initiate a transaction, such as a personal identification number (PIN), password, zip code, etc. that may be used to access the account identification device (141), or in combination with the account information (142) obtained from the account identification device (141).


In one embodiment, the output device (165) may include a display, a speaker, and/or a printer to present information, such as the result of an authorization request, a receipt for the transaction, an advertisement, etc.


In one embodiment, the network interface (161) is configured to communicate with the acquirer processor (147) via a telephone connection, an Internet connection, or a dedicated data communication channel.


In one embodiment, the instructions stored in the memory (167) are configured at least to cause the transaction terminal (105) to send an authorization request message to the acquirer processor (147) to initiate a transaction. The transaction terminal (105) may or may not send a separate request for the clearing and settling of the transaction. The instructions stored in the memory (167) are also configured to cause the transaction terminal (105) to perform other types of functions discussed in this description.


In one embodiment, a transaction terminal (105) may have fewer components than those illustrated in FIG. 14. For example, in one embodiment, the transaction terminal (105) is configured for “card-not-present” transactions; and the transaction terminal (105) does not have a reader (163).


In one embodiment, a transaction terminal (105) may have more components than those illustrated in FIG. 14. For example, in one embodiment, the transaction terminal (105) is an ATM machine, which includes components to dispense cash under certain conditions.


Account Identification Device



FIG. 15 illustrates an account identifying device according to one embodiment. In FIG. 15, the account identification device (141) is configured to carry account information (142) that identifies the consumer account (146).


In one embodiment, the account identification device (141) includes a memory (167) coupled to the processor (151), which controls the operations of a communication device (159), an input device (153), an audio device (157) and a display device (155). The memory (167) may store instructions for the processor (151) and/or data, such as the account information (142) associated with the consumer account (146).


In one embodiment, the account information (142) includes an identifier identifying the issuer (and thus the issuer processor (145)) among a plurality of issuers, and an identifier identifying the consumer account among a plurality of consumer accounts controlled by the issuer processor (145). The account information (142) may include an expiration date of the account identification device (141), the name of the consumer holding the consumer account (146), and/or an identifier identifying the account identification device (141) among a plurality of account identification devices associated with the consumer account (146).


In one embodiment, the account information (142) may further include a loyalty program account number, accumulated rewards of the consumer in the loyalty program, an address of the consumer, a balance of the consumer account (146), transit information (e.g., a subway or train pass), access information (e.g., access badges), and/or consumer information (e.g., name, date of birth), etc.


In one embodiment, the memory includes a nonvolatile memory, such as magnetic strip, a memory chip, a flash memory, a Read Only Memory (ROM), etc. to store the account information (142).


In one embodiment, the information stored in the memory (167) of the account identification device (141) may also be in the form of data tracks that are traditionally associated with credits cards. Such tracks include Track 1 and Track 2. Track 1 (“International Air Transport Association”) stores more information than Track 2, and contains the cardholder's name as well as the account number and other discretionary data. Track 1 is sometimes used by airlines when securing reservations with a credit card. Track 2 (“American Banking Association”) is currently most commonly used and is read by ATMs and credit card checkers. The ABA (American Banking Association) designed the specifications of Track 1 and banks abide by it. It contains the cardholder's account number, encrypted PIN, and other discretionary data.


In one embodiment, the communication device (159) includes a semiconductor chip to implement a transceiver for communication with the reader (163) and an antenna to provide and/or receive wireless signals.


In one embodiment, the communication device (159) is configured to communicate with the reader (163). The communication device (159) may include a transmitter to transmit the account information (142) via wireless transmissions, such as radio frequency signals, magnetic coupling, or infrared, Bluetooth or WiFi signals, etc.


In one embodiment, the account identification device (141) is in the form of a mobile phone, personal digital assistant (PDA), etc. The input device (153) can be used to provide input to the processor (151) to control the operation of the account identification device (141); and the audio device (157) and the display device (155) may present status information and/or other information, such as advertisements or offers. The account identification device (141) may include further components that are not shown in FIG. 15, such as a cellular communications subsystem.


In one embodiment, the communication device (159) may access the account information (142) stored on the memory (167) without going through the processor (151).


In one embodiment, the account identification device (141) has fewer components than those illustrated in FIG. 15. For example, an account identification device (141) does not have the input device (153), the audio device (157) and the display device (155) in one embodiment; and in another embodiment, an account identification device (141) does not have components (151-159).


For example, in one embodiment, an account identification device (141) is in the form of a debit card, a credit card, a smartcard, or a consumer device that has optional features such as magnetic strips, or smartcards.


An example of an account identification device (141) is a magnetic strip attached to a plastic substrate in the form of a card. The magnetic strip is used as the memory (167) of the account identification device (141) to provide the account information (142). Consumer information, such as account number, expiration date, and consumer name may be printed or embossed on the card. A semiconductor chip implementing the memory (167) and the communication device (159) may also be embedded in the plastic card to provide account information (142) in one embodiment. In one embodiment, the account identification device (141) has the semiconductor chip but not the magnetic strip.


In one embodiment, the account identification device (141) is integrated with a security device, such as an access card, a radio frequency identification (RFID) tag, a security card, a transponder, etc.


In one embodiment, the account identification device (141) is a handheld and compact device. In one embodiment, the account identification device (141) has a size suitable to be placed in a wallet or pocket of the consumer.


Some examples of an account identification device (141) include a credit card, a debit card, a stored value device, a payment card, a gift card, a smartcard, a smart media card, a payroll card, a health care card, a wrist band, a keychain device, a supermarket discount card, a transponder, and a machine readable medium containing account information (142).


Hardware


In one embodiment, a computing apparatus is configured to include some of the components of systems illustrated in various figures, such as the transaction handler (103), the portal (143), the event managers (231, . . . , 233), and their associated storage devices, such as the data warehouse (149).


In one embodiment, at least some of the components illustrated in FIGS. 1, 2 and 13 can be implemented as a computer system, such as a data processing system (170) illustrated in FIG. 16. Some of the components may share hardware or be combined on a computer system. In one embodiment, a network of computers can be used to implement one or more of the components.


Further, the data illustrated in the figures, such as transaction data (109), account data (111), transaction profiles, and advertisement data, can be stored in storage devices of one or more computers accessible to the corresponding components. For example, the transaction data (109) can be stored in the data warehouse (149) that can be implemented as a data processing system illustrated in FIG. 16, with more or fewer components.


In one embodiment, the transaction handler (103) is a payment processing system, or a payment card processor, such as a card processor for credit cards, debit cards, etc.



FIG. 16 illustrates a data processing system according to one embodiment. While FIG. 16 illustrates various components of a computer system, it is not intended to represent any particular architecture or manner of interconnecting the components. One embodiment may use other systems that have fewer or more components than those shown in FIG. 16.


In FIG. 16, the data processing system (170) includes an inter-connect (171) (e.g., bus and system core logic), which interconnects a microprocessor(s) (173) and memory (167). The microprocessor (173) is coupled to cache memory (179) in the example of FIG. 16.


In one embodiment, the inter-connect (171) interconnects the microprocessor(s) (173) and the memory (167) together and also interconnects them to input/output (I/O) device(s) (175) via I/O controller(s) (177). I/O devices (175) may include a display device and/or peripheral devices, such as mice, keyboards, modems, network interfaces, printers, scanners, video cameras and other devices known in the art. In one embodiment, when the data processing system is a server system, some of the I/O devices (175), such as printers, scanners, mice, and/or keyboards, are optional.


In one embodiment, the inter-connect (171) includes one or more buses connected to one another through various bridges, controllers and/or adapters. In one embodiment the I/O controllers (177) include a USB (Universal Serial Bus) adapter for controlling USB peripherals, and/or an IEEE-1394 bus adapter for controlling IEEE-1394 peripherals.


In one embodiment, the memory (167) includes one or more of: ROM (Read Only Memory), volatile RAM (Random Access Memory), and non-volatile memory, such as hard drive, flash memory, etc.


Volatile RAM is typically implemented as dynamic RAM (DRAM) which requires power continually in order to refresh or maintain the data in the memory. Non-volatile memory is typically a magnetic hard drive, a magnetic optical drive, an optical drive (e.g., a DVD RAM), or other type of memory system which maintains data even after power is removed from the system. The non-volatile memory may also be a random access memory.


The non-volatile memory can be a local device coupled directly to the rest of the components in the data processing system. A non-volatile memory that is remote from the system, such as a network storage device coupled to the data processing system through a network interface such as a modem or Ethernet interface, can also be used.


In this description, some functions and operations are described as being performed by or caused by software code to simplify description. However, such expressions are also used to specify that the functions result from execution of the code/instructions by a processor, such as a microprocessor.


Alternatively, or in combination, the functions and operations as described here can be implemented using special purpose circuitry, with or without software instructions, such as using Application-Specific Integrated Circuit (ASIC) or Field-Programmable Gate Array (FPGA). Embodiments can be implemented using hardwired circuitry without software instructions, or in combination with software instructions. Thus, the techniques are limited neither to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the data processing system.


While one embodiment can be implemented in fully functioning computers and computer systems, various embodiments are capable of being distributed as a computing product in a variety of forms and are capable of being applied regardless of the particular type of machine or computer-readable media used to actually effect the distribution.


At least some aspects disclosed can be embodied, at least in part, in software. That is, the techniques may be carried out in a computer system or other data processing system in response to its processor, such as a microprocessor, executing sequences of instructions contained in a memory, such as ROM, volatile RAM, non-volatile memory, cache or a remote storage device.


Routines executed to implement the embodiments may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.” The computer programs typically include one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause the computer to perform operations necessary to execute elements involving the various aspects.


A machine readable medium can be used to store software and data which when executed by a data processing system causes the system to perform various methods. The executable software and data may be stored in various places including for example ROM, volatile RAM, non-volatile memory and/or cache. Portions of this software and/or data may be stored in any one of these storage devices. Further, the data and instructions can be obtained from centralized servers or peer to peer networks. Different portions of the data and instructions can be obtained from different centralized servers and/or peer to peer networks at different times and in different communication sessions or in a same communication session. The data and instructions can be obtained in entirety prior to the execution of the applications. Alternatively, portions of the data and instructions can be obtained dynamically, just in time, when needed for execution. Thus, it is not required that the data and instructions be on a machine readable medium in entirety at a particular instance of time.


Examples of computer-readable media include but are not limited to recordable and non-recordable type media such as volatile and non-volatile memory devices, read only memory (ROM), random access memory (RAM), flash memory devices, floppy and other removable disks, magnetic disk storage media, optical storage media (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks (DVDs), etc.), among others. The computer-readable media may store the instructions.


The instructions may also be embodied in digital and analog communication links for electrical, optical, acoustical or other forms of propagated signals, such as carrier waves, infrared signals, digital signals, etc. However, propagated signals, such as carrier waves, infrared signals, digital signals, etc. are not tangible machine readable medium and are not configured to store instructions.


In general, a machine readable medium includes any mechanism that provides (i.e., stores and/or transmits) information in a form accessible by a machine (e.g., a computer, network device, personal digital assistant, manufacturing tool, any device with a set of one or more processors, etc.).


In various embodiments, hardwired circuitry may be used in combination with software instructions to implement the techniques. Thus, the techniques are neither limited to any specific combination of hardware circuitry and software nor to any particular source for the instructions executed by the data processing system.


Other Aspects


The description and drawings are illustrative and are not to be construed as limiting. The present disclosure is illustrative of inventive features to enable a person skilled in the art to make and use the techniques. Various features, as described herein, should be used in compliance with all current and future rules, laws and regulations related to privacy, security, permission, consent, authorization, and others. Numerous specific details are described to provide a thorough understanding. However, in certain instances, well known or conventional details are not described in order to avoid obscuring the description. References to one or an embodiment in the present disclosure are not necessarily references to the same embodiment; and, such references mean at least one.


The use of headings herein is merely provided for ease of reference, and shall not be interpreted in any way to limit this disclosure or the following claims.


Reference to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, and are not necessarily all referring to separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by one embodiment and not by others. Similarly, various requirements are described which may be requirements for one embodiment but not other embodiments. Unless excluded by explicit description and/or apparent incompatibility, any combination of various features described in this description is also included here. For example, the features described above in connection with “in one embodiment” or “in some embodiments” can be all optionally included in one implementation, except where the dependency of certain features on other features, as apparent from the description, may limit the options of excluding selected features from the implementation, and incompatibility of certain features with other features, as apparent from the description, may limit the options of including selected features together in the implementation.


The disclosures of the above discussed patent documents are hereby incorporated herein by reference.


In the foregoing specification, the disclosure has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.

Claims
  • 1. A method, comprising: providing, in a computing apparatus, a plurality of autonomous components;providing, in the computing apparatus, a message board;wherein each of the autonomous components operates independently from each other to process a pre-determined type of events via: monitoring the message board to retrieve a message that the autonomous component is configured to detect;retrieving the message from the message board independent of the message board itself and other autonomous components;processing the message in the computing apparatus to generate processing results; andproviding the processing results via result messages posted on the message board;providing, via the computing apparatus, a graphical user interface;receiving, in the graphical user interface, a workflow input, the workflow input selecting a subset of the plurality of autonomous components, and specifying a flow among the subset of autonomous components;generating, by the computing apparatus, a workflow from the workflow input;storing, in the computing apparatus, the workflow;receiving, in the computing apparatus, event inputs associated with events of predetermined types corresponding to predetermined types of the autonomous components; andposting, in the message board, initial messages each identifying the workflow and a respective event input;wherein the plurality of autonomous components independently monitor check the message board to detect messages that require services associated with the plurality of autonomous components and, in response to detecting the messages, process initial messages in accordance with the workflow, generate result messages, and post the result messages on the message board for further processing in accordance with the workflow.
  • 2. The method of claim 1, wherein the graphical user interface includes a workflow panel configured to present icons representing the subset of autonomous components, and receive user input defining flow directions among the subset of autonomous components.
  • 3. The method of claim 2, wherein the graphical user interface further includes an icon panel showing icons of autonomous components that can be selected into the workflow panel as part of the workflow.
  • 4. The method of claim 3, wherein at least a portion of the icons of autonomous components are connected via flow lines in defining the workflow.
  • 5. The method of claim 4, wherein at least one autonomous component in the subset is not connected via a flow line to other autonomous components in the workflow panel.
  • 6. The method of claim 1, wherein the workflow input includes a user selection of configuration options for a first autonomous component in the subset.
  • 7. The method of claim 6, wherein the user selection of the configuration options includes one or more selections of exposed services of the first autonomous component.
  • 8. The method of claim 7, further comprising: presenting a user interface element selectable to export the exposed services into a web service definition language file.
  • 9. The method of claim 6, wherein the user selection of the configuration options includes one or more selections of substitute variables in an output of the first autonomous component.
  • 10. The method of claim 6, wherein the user selection of the configuration options includes one or more specifications of custom data fields in an output of the first autonomous component.
  • 11. The method of claim 6, wherein the user selection of the configuration options includes one or more selections of data objects provided by the first autonomous component.
  • 12. The method of claim 6, wherein the first autonomous component is a transaction manager configured to produce a data object containing data of a payment transaction processed by a transaction handler in an electronic processing network in which the transaction handler interconnects one or more issuers and one or more acquirers.
  • 13. The method of claim 6, wherein the first autonomous component is an enrollment manager configured to process enrollment of a customer in an offer or loyalty program defined by the workflow.
  • 14. The method of claim 6, wherein the first autonomous component is a notification manager configured to deliver a notification message to a customer in accordance with the workflow.
  • 15. The method of claim 6, wherein the first autonomous component is a discount manager configured to provide a discount to a payment transaction of a customer enrolled in an offer defined by the workflow.
  • 16. A non-transitory computer storage medium storing instructions configured to instruct a computing apparatus to perform a method, the method comprising: providing, in the computing apparatus, a plurality of autonomous components, wherein each of the autonomous components operates independently from each other to process a pre-determined type of events;providing, in the computing apparatus, a message board; monitoring the message board to retrieve a message that the autonomous component is configured to detect;retrieving the message from the message board independent of the message board itself and other autonomous components;processing the message in the computing apparatus to generate processing results; andproviding the processing results via result messages posted on the message board;providing, via the computing apparatus, a graphical user interface;receiving, in the graphical user interface a workflow input, the workflow input selecting a subset of the plurality of autonomous components, and specifying a flow among the subset of autonomous components;generating, by the computing apparatus, a workflow from the workflow input;storing, in the computing apparatus, the workflow;receiving, in the computing apparatus, event inputs associated with events of predetermined types corresponding to predetermined types of the autonomous components; andposting, in the message board, initial messages each identifying the workflow and a respective event input;wherein the plurality of autonomous components independently monitor chock the message board to detect messages that require their services associated with the plurality of autonomous components and, in response to detecting the messages, process initial messages in accordance with the workflow, generate result messages, and post the result messages on the message board for further processing in accordance with the workflow.
  • 17. A computing apparatus, comprising: one or more computers configured as a plurality of autonomous components;a message board coupled to the one or more computers;wherein each of the autonomous components operates independently from each other to process a pre-determined type of events via: monitoring the message board to retrieve a message that the autonomous component is configured to detect;retrieving the message from the message board;processing the message in the computing apparatus to generate processing results; andproviding the processing results via result messages posted on the message board;a portal configured to provide a graphical user interface and receive, in the graphical user interface a workflow input, the workflow input selecting a subset of the plurality of autonomous components, and specifying a flow among the subset of autonomous components; anda data warehouse configured to store a workflow generated from the workflow input;wherein in response to event inputs associated with events of predetermined types corresponding to predetermined types of the autonomous components, the message board hosts initial messages each identifying the workflow and a respective event input, and the plurality of autonomous components independently monitor the message board to detect messages that require their services, process initial messages in accordance with the workflow, generate result messages, and post the result messages on the message board for further processing in accordance with the workflow.
  • 18. The computing apparatus of claim 17, wherein the one or more computers includes a plurality of computers connected via a network; and each of the plurality of autonomous components is implemented on at least a separate one of the plurality of computers.
  • 19. The computing apparatus of claim 17, wherein the graphical user interface includes a first panel showing icons of autonomous components selectable to be part of the workflow; and a second panel showing icons of autonomous components selected as part of the workflow and flow lines identifying flow directions among the autonomous components.
  • 20. The computing apparatus of claim 17, wherein the subset of autonomous components includes a transaction manager configured to generate payment transaction data objects corresponding to payment transactions processed by a transaction handler of an electronic payment processing network, wherein the transaction manager is configured to receive transaction inputs from the transaction handler, generate the transaction data objects, and provide the transaction data objects for further processing by other autonomous components in the computing apparatus via posting messages in the message board.
RELATED APPLICATIONS

The present application claims priority to Prov. U.S. Pat. App. Ser. No. 61/976,418, filed Apr. 7, 2014, the entire disclosure of which is hereby incorporated herein by reference. The present application relates to Prov. U.S. Pat. App. Ser. No. 61/970,177, filed Mar. 25, 2014 and entitled “Systems and Methods to Dynamically Configure Message and Transaction Processing for Loyalty Programs”, U.S. Pat. No. 8,359,274, U.S. Pat. App. Pub. No. 2011/0087530, U.S. Pat. App. Pub. No. 2012/0078697, U.S. Pat. App. Pub. No. 2012/0072997, the disclosures of which are hereby incorporated herein by reference.

US Referenced Citations (408)
Number Name Date Kind
4613904 Lurie Sep 1986 A
5401946 Weinblatt Mar 1995 A
5592560 Deaton et al. Jan 1997 A
5604921 Alanara Feb 1997 A
5621812 Deaton et al. Apr 1997 A
5638457 Deaton et al. Jun 1997 A
5684990 Boothby Nov 1997 A
5687322 Deaton et al. Nov 1997 A
5710886 Christensen et al. Jan 1998 A
5745036 Clare Apr 1998 A
5870030 DeLuca et al. Feb 1999 A
5923016 Fredregill et al. Jul 1999 A
5924080 Johnson Jul 1999 A
5974396 Anderson et al. Oct 1999 A
6035280 Christensen Mar 2000 A
6067529 Ray et al. May 2000 A
6070147 Harms et al. May 2000 A
6119101 Peckover Sep 2000 A
6216129 Eldering Apr 2001 B1
6222914 McMullin Apr 2001 B1
6282522 Davis et al. Aug 2001 B1
6285983 Jenkins Sep 2001 B1
6292786 Deaton et al. Sep 2001 B1
6298330 Gardenswartz et al. Oct 2001 B1
6307958 Deaton et al. Oct 2001 B1
6313732 DeLuca et al. Nov 2001 B1
6318631 Halperin Nov 2001 B1
6318911 Kitahara Nov 2001 B1
6321201 Dahl Nov 2001 B1
6332126 Peirce et al. Dec 2001 B1
6334108 Deaton et al. Dec 2001 B1
6334110 Walter et al. Dec 2001 B1
6377935 Deaton et al. Apr 2002 B1
6505046 Baker Jan 2003 B1
6505168 Rothman et al. Jan 2003 B1
6519571 Guheen et al. Feb 2003 B1
6606745 Maggio Aug 2003 B2
6647257 Owensby Nov 2003 B2
6647269 Hendrey et al. Nov 2003 B2
6685093 Challa et al. Feb 2004 B2
6736322 Gobburu et al. May 2004 B2
6749120 Hung et al. Jun 2004 B2
6775539 Deshpande Aug 2004 B2
6856992 Britton et al. Feb 2005 B2
6877665 Challa et al. Apr 2005 B2
6901406 Nabe et al. May 2005 B2
6912398 Domnitz Jun 2005 B1
6922686 Okamoto et al. Jul 2005 B2
6938022 Singhal Aug 2005 B1
6941376 Mitchell et al. Sep 2005 B2
6996560 Choi et al. Feb 2006 B1
7003476 Samra et al. Feb 2006 B1
7013286 Aggarwal et al. Mar 2006 B1
7024374 Day et al. Apr 2006 B1
7024409 Iyengar Apr 2006 B2
7028906 Challa et al. Apr 2006 B2
7035855 Kilger et al. Apr 2006 B1
7039599 Merriman et al. May 2006 B2
7062510 Eldering Jun 2006 B1
7072847 Ulenas et al. Jul 2006 B2
7107249 Dively et al. Sep 2006 B2
7120590 Eisen et al. Oct 2006 B1
7158943 van der Riet Jan 2007 B2
7158955 Diveley et al. Jan 2007 B2
7165037 Lazarus et al. Jan 2007 B2
7177822 Mahmood et al. Feb 2007 B2
7181412 Fulgoni et al. Feb 2007 B1
7194422 Killick Mar 2007 B1
7225142 Apte et al. May 2007 B1
7231416 Busuioc Jun 2007 B1
7257545 Hung Aug 2007 B1
7260837 Abraham et al. Aug 2007 B2
7264152 Tsuei et al. Sep 2007 B2
7269578 Sweeney Sep 2007 B2
7299194 Manganaris et al. Nov 2007 B1
7308254 Rissanen Dec 2007 B1
7328169 Temares et al. Feb 2008 B2
7330110 Heintzman et al. Feb 2008 B1
7337127 Smith et al. Feb 2008 B1
7340438 Nordman et al. Mar 2008 B2
7360251 Spalink et al. Apr 2008 B2
7373311 Lambert et al. May 2008 B2
7424439 Fayyad et al. Sep 2008 B1
7424441 George et al. Sep 2008 B2
7444658 Matz et al. Oct 2008 B1
7467106 Levine et al. Dec 2008 B1
7490052 Kilger et al. Feb 2009 B2
7493655 Brown Feb 2009 B2
7526485 Hagan et al. Apr 2009 B2
7533038 Blume et al. May 2009 B2
7536360 Stolfo et al. May 2009 B2
7552069 Kepecs Jun 2009 B2
7562030 Shapira et al. Jul 2009 B1
7578435 Suk Aug 2009 B2
7613628 Ariff et al. Nov 2009 B2
7668785 Hammad Feb 2010 B1
7729977 Xiao et al. Jun 2010 B2
7792518 Trioano et al. Sep 2010 B2
7882209 Eslambolchi et al. Feb 2011 B1
7937291 Carlson et al. May 2011 B2
7970705 Patterson Jun 2011 B2
8019685 Patterson Sep 2011 B2
8099318 Moukas et al. Jan 2012 B2
8103588 Patterson Jan 2012 B2
8229819 Ransom et al. Jul 2012 B2
8311845 Vengroff et al. Nov 2012 B2
8341038 Rolf et al. Dec 2012 B1
8478692 Carlson et al. Jul 2013 B2
8682719 Laramy et al. Mar 2014 B2
20010027413 Bhutta Oct 2001 A1
20010049620 Blasko Dec 2001 A1
20010054003 Chien et al. Dec 2001 A1
20020002597 Morrell, Jr. Jan 2002 A1
20020004733 Addante Jan 2002 A1
20020004754 Gardenswartz et al. Jan 2002 A1
20020042738 Srinivasan et al. Apr 2002 A1
20020046187 Vargas et al. Apr 2002 A1
20020053076 Landesmann May 2002 A1
20020059100 Shore May 2002 A1
20020060246 Gobburu et al. May 2002 A1
20020065713 Awada et al. May 2002 A1
20020065723 Anderson et al. May 2002 A1
20020070278 Hung et al. Jun 2002 A1
20020077871 Udelhoven et al. Jun 2002 A1
20020082918 Warwick Jun 2002 A1
20020091569 Kitaura et al. Jul 2002 A1
20020099649 Lee et al. Jul 2002 A1
20020102993 Hendrey et al. Aug 2002 A1
20020103703 Spetalnick Aug 2002 A1
20020123928 Eldering et al. Sep 2002 A1
20020128916 Beinecke, III Sep 2002 A1
20020138346 Kodaka et al. Sep 2002 A1
20020174013 Freeman et al. Nov 2002 A1
20030046153 Robibero Mar 2003 A1
20030047602 Iida et al. Mar 2003 A1
20030058261 Challa et al. Mar 2003 A1
20030093314 Leung et al. May 2003 A1
20030191832 Satyavolu et al. Oct 2003 A1
20030212595 Antonucci Nov 2003 A1
20030225618 Hessburg et al. Dec 2003 A1
20030230630 Whipple et al. Dec 2003 A1
20040019518 Abraham et al. Jan 2004 A1
20040054575 Marshall Mar 2004 A1
20040054581 Redford et al. Mar 2004 A1
20040054591 Spaeth et al. Mar 2004 A1
20040093512 Sample May 2004 A1
20040122735 Meshkin Jun 2004 A1
20040144839 Warwick Jul 2004 A1
20040148224 Gauthier et al. Jul 2004 A1
20040167815 DeLaHunt Aug 2004 A1
20040193685 Proehl Sep 2004 A1
20040225509 Andre Nov 2004 A1
20040225603 Allen et al. Nov 2004 A1
20040267611 Hoerenz Dec 2004 A1
20050055275 Newman et al. Mar 2005 A1
20050066304 Tattrie Mar 2005 A1
20050071225 Bortolin et al. Mar 2005 A1
20050071227 Hammad et al. Mar 2005 A1
20050071235 Nguyen et al. Mar 2005 A1
20050125342 Schiff Jun 2005 A1
20050131761 Trika et al. Jun 2005 A1
20050133590 Rettenmyer et al. Jun 2005 A1
20050144074 Fredregill et al. Jun 2005 A1
20050160002 Roetter et al. Jul 2005 A1
20050210387 Alagappan et al. Sep 2005 A1
20050216334 Mehrabani-Farsi Sep 2005 A1
20050216823 Petersen et al. Sep 2005 A1
20050240474 Li Oct 2005 A1
20050242179 Warwick Nov 2005 A1
20050267812 Jensen et al. Dec 2005 A1
20060002189 Berkman Jan 2006 A1
20060004613 Roller et al. Jan 2006 A1
20060053056 Alspach-Goss et al. Mar 2006 A1
20060085260 Yamagishi Apr 2006 A1
20060085263 Greer et al. Apr 2006 A1
20060111967 Forbes May 2006 A1
20060122921 Comerford et al. Jun 2006 A1
20060143071 Hofmann Jun 2006 A1
20060143075 Carr et al. Jun 2006 A1
20060161527 Dwork et al. Jul 2006 A1
20060167730 Calderone Jul 2006 A1
20060167818 Wentker et al. Jul 2006 A1
20060178957 LeClaire Aug 2006 A1
20060190337 Ayers, Jr. et al. Aug 2006 A1
20060212900 Ismail et al. Sep 2006 A1
20060235746 Hammond et al. Oct 2006 A1
20060289631 Stretch et al. Dec 2006 A1
20060293948 Weinblatt Dec 2006 A1
20060293959 Hogan Dec 2006 A1
20070038516 Apple et al. Feb 2007 A1
20070045405 Rothschild Mar 2007 A1
20070055597 Patel et al. Mar 2007 A1
20070067267 Ives Mar 2007 A1
20070067297 Kublickis Mar 2007 A1
20070084917 Fajkowski Apr 2007 A1
20070100691 Patterson May 2007 A1
20070106556 Edwards et al. May 2007 A1
20070124201 Hu et al. May 2007 A1
20070136131 Mankoff Jun 2007 A1
20070156470 Granucci et al. Jul 2007 A1
20070162377 Williams Jul 2007 A1
20070174295 Abraham et al. Jul 2007 A1
20070192121 Routson Aug 2007 A1
20070192122 Routson et al. Aug 2007 A1
20070208671 Brown et al. Sep 2007 A1
20070219865 Leining Sep 2007 A1
20070219866 Wolf et al. Sep 2007 A1
20070226056 Belanger et al. Sep 2007 A1
20070226061 Chen et al. Sep 2007 A1
20070239521 Khadpe et al. Oct 2007 A1
20070239532 Benson et al. Oct 2007 A1
20070241189 Slavin et al. Oct 2007 A1
20070244741 Blume et al. Oct 2007 A1
20070260736 Miller Nov 2007 A1
20070265920 Bistriceanu et al. Nov 2007 A1
20070265921 Rempe et al. Nov 2007 A1
20070265923 Krassner et al. Nov 2007 A1
20070282681 Shubert et al. Dec 2007 A1
20080004884 Flake et al. Jan 2008 A1
20080016017 Biazetti Jan 2008 A1
20080021784 Hessburg et al. Jan 2008 A1
20080021785 Hessburg et al. Jan 2008 A1
20080027810 Lerner et al. Jan 2008 A1
20080040229 Gholston Feb 2008 A1
20080059302 Fordyce, III et al. Mar 2008 A1
20080059303 Fordyce Mar 2008 A1
20080059306 Fordyce et al. Mar 2008 A1
20080059307 Fordyce, III et al. Mar 2008 A1
20080071587 Granucci et al. Mar 2008 A1
20080071680 Sheets Mar 2008 A1
20080077487 Davis et al. Mar 2008 A1
20080082393 Ozzie et al. Apr 2008 A1
20080082418 Fordyce et al. Apr 2008 A1
20080103887 Oldham et al. May 2008 A1
20080103968 Bies et al. May 2008 A1
20080109467 Brookins et al. May 2008 A1
20080120182 Arnold et al. May 2008 A1
20080120218 Reid et al. May 2008 A1
20080133345 Cordery et al. Jun 2008 A1
20080133351 White et al. Jun 2008 A1
20080133366 Evans et al. Jun 2008 A1
20080134228 Dion et al. Jun 2008 A1
20080154654 Niessen et al. Jun 2008 A1
20080154703 Flake et al. Jun 2008 A1
20080154704 Flake et al. Jun 2008 A1
20080154727 Carlson Jun 2008 A1
20080162258 Kala et al. Jul 2008 A1
20080162269 Gilbert Jul 2008 A1
20080163257 Carlson et al. Jul 2008 A1
20080167000 Wentker et al. Jul 2008 A1
20080167961 Wentker et al. Jul 2008 A1
20080167991 Carlson et al. Jul 2008 A1
20080167992 Kokernak et al. Jul 2008 A1
20080177602 Sopher et al. Jul 2008 A1
20080183480 Carlson et al. Jul 2008 A1
20080184117 Alsbury et al. Jul 2008 A1
20080195465 Redmond et al. Aug 2008 A1
20080195473 Laramy et al. Aug 2008 A1
20080201226 Carlson et al. Aug 2008 A1
20080201472 Bistriceanu et al. Aug 2008 A1
20080215429 Ramer et al. Sep 2008 A1
20080215436 Roberts Sep 2008 A1
20080217397 Degliantoni et al. Sep 2008 A1
20080221972 Megdal et al. Sep 2008 A1
20080222038 Eden et al. Sep 2008 A1
20080228563 Zellner et al. Sep 2008 A1
20080228582 Fordyce et al. Sep 2008 A1
20080235091 Holliday Sep 2008 A1
20080235243 Lee et al. Sep 2008 A1
20080242317 Abhyanker Oct 2008 A1
20080248815 Busch Oct 2008 A1
20080262915 Gojkovic et al. Oct 2008 A1
20080300973 DeWitt et al. Dec 2008 A1
20080313011 Rose et al. Dec 2008 A1
20080318559 Porco Dec 2008 A1
20080319843 Moser et al. Dec 2008 A1
20080319847 Shepard Dec 2008 A1
20080319889 Hammad Dec 2008 A1
20080320512 Knight Dec 2008 A1
20090006183 Paintin et al. Jan 2009 A1
20090006203 Fordyce, III et al. Jan 2009 A1
20090006363 Canny et al. Jan 2009 A1
20090018895 Weinblatt et al. Jan 2009 A1
20090030793 Fordyce, III Jan 2009 A1
20090043593 Herbrich et al. Feb 2009 A1
20090070207 Engel et al. Mar 2009 A1
20090070219 D'Angelo et al. Mar 2009 A1
20090070225 Matz et al. Mar 2009 A1
20090076896 DeWitt et al. Mar 2009 A1
20090076925 DeWitt et al. Mar 2009 A1
20090081990 Granucci et al. Mar 2009 A1
20090112703 Brown Apr 2009 A1
20090112721 Hammad et al. Apr 2009 A1
20090119160 Woda et al. May 2009 A1
20090119167 Kendall et al. May 2009 A1
20090119170 Hammad et al. May 2009 A1
20090132347 Anderson et al. May 2009 A1
20090132365 Gruenhagen et al. May 2009 A1
20090132366 Lam et al. May 2009 A1
20090144201 Gierkink et al. Jun 2009 A1
20090150211 Bayne Jun 2009 A1
20090157511 Spinnell et al. Jun 2009 A1
20090171747 Lanning et al. Jul 2009 A1
20090172551 Kane et al. Jul 2009 A1
20090172728 Shkedi et al. Jul 2009 A1
20090182634 Park et al. Jul 2009 A1
20090192882 Narahashi et al. Jul 2009 A1
20090203387 Wold et al. Aug 2009 A1
20090216579 Zen et al. Aug 2009 A1
20090216616 Wang et al. Aug 2009 A1
20090222323 Kelly et al. Sep 2009 A1
20090222348 Ransom et al. Sep 2009 A1
20090234708 Heiser, II et al. Sep 2009 A1
20090234711 Ramer et al. Sep 2009 A1
20090234737 Sarelson et al. Sep 2009 A1
20090248496 Hueter et al. Oct 2009 A1
20090248497 Hueter Oct 2009 A1
20090248511 Mehta et al. Oct 2009 A1
20090249384 Fang et al. Oct 2009 A1
20090254414 Schwarz et al. Oct 2009 A1
20090259518 Harvey et al. Oct 2009 A1
20090271275 Regmi et al. Oct 2009 A1
20090271305 Lal et al. Oct 2009 A1
20090271327 Lal et al. Oct 2009 A1
20090276304 Dorr Nov 2009 A1
20090299941 McColgan et al. Dec 2009 A1
20090327151 Carlson et al. Dec 2009 A1
20100017275 Carlson et al. Jan 2010 A1
20100049588 Debow Feb 2010 A1
20100049620 Debow Feb 2010 A1
20100057549 Boal Mar 2010 A1
20100057553 Ameiss et al. Mar 2010 A1
20100082420 Trifiletti et al. Apr 2010 A1
20100106568 Grimes Apr 2010 A1
20100106569 Grimes Apr 2010 A1
20100106570 Radu et al. Apr 2010 A1
20100114677 Carlson et al. May 2010 A1
20100114683 Wessels et al. May 2010 A1
20100114686 Carlson et al. May 2010 A1
20100125490 Kiciman et al. May 2010 A1
20100138838 Lin et al. Jun 2010 A1
20100145786 Fordyce, III et al. Jun 2010 A1
20100174596 Gilman et al. Jul 2010 A1
20100174623 McPhie et al. Jul 2010 A1
20100211694 Razmov et al. Aug 2010 A1
20100274566 Carlson Oct 2010 A1
20100274625 Carlson Oct 2010 A1
20100274627 Carlson Oct 2010 A1
20100274653 Hammad Oct 2010 A1
20100280880 Faith et al. Nov 2010 A1
20100280881 Faith et al. Nov 2010 A1
20100280882 Faith et al. Nov 2010 A1
20100280914 Carlson Nov 2010 A1
20100280927 Faith et al. Nov 2010 A1
20100280950 Faith et al. Nov 2010 A1
20100306029 Jolley Dec 2010 A1
20100306032 Jolley Dec 2010 A1
20100325047 Carlson et al. Dec 2010 A1
20100325048 Carlson et al. Dec 2010 A1
20110022448 Strock et al. Jan 2011 A1
20110029363 Gillenson et al. Feb 2011 A1
20110054981 Faith et al. Mar 2011 A1
20110125509 Lidstrom et al. May 2011 A1
20110125565 Macllwaine et al. May 2011 A1
20110161150 Steffens et al. Jun 2011 A1
20110208575 Bansal et al. Aug 2011 A1
20110231235 Macllwaine et al. Sep 2011 A1
20110231258 Winters Sep 2011 A1
20110270719 Hollars et al. Nov 2011 A1
20110288906 Thomas et al. Nov 2011 A1
20110288918 Cervenka et al. Nov 2011 A1
20110288922 Thomas et al. Nov 2011 A1
20110288924 Thomas et al. Nov 2011 A1
20110288925 Thomas et al. Nov 2011 A1
20110295670 Thomas et al. Dec 2011 A1
20110295671 Thomas et al. Dec 2011 A1
20110302011 Yoder et al. Dec 2011 A1
20110307318 LaPorte et al. Dec 2011 A1
20120059702 Yoder et al. Mar 2012 A1
20120066062 Yoder et al. Mar 2012 A1
20120066064 Yoder et al. Mar 2012 A1
20120072997 Carlson et al. Mar 2012 A1
20120078697 Carlson et al. Mar 2012 A1
20120078699 Carlson et al. Mar 2012 A1
20120109730 Yoder et al. May 2012 A1
20120130859 Wolfe et al. May 2012 A1
20120136704 Carlson et al. May 2012 A1
20120150609 Walker et al. Jun 2012 A1
20120191525 Singh et al. Jul 2012 A1
20120215637 Hermann Aug 2012 A1
20120239498 Ramer et al. Sep 2012 A1
20120244948 Dhillon et al. Sep 2012 A1
20120259695 Glassman et al. Oct 2012 A1
20120259842 Oman et al. Oct 2012 A1
20120271689 Etheredge et al. Oct 2012 A1
20120271691 Hammad et al. Oct 2012 A1
20120271697 Gilman et al. Oct 2012 A1
20120271706 Ransom et al. Oct 2012 A1
20120278173 Vaidyanathan et al. Nov 2012 A1
20120290950 Rapaport et al. Nov 2012 A1
20120303425 Katzin et al. Nov 2012 A1
20120310831 Harris Dec 2012 A1
20120310838 Harris et al. Dec 2012 A1
20120323664 Klems Dec 2012 A1
20130006709 Kosta Jan 2013 A1
20130132205 Harris May 2013 A1
20130268342 Tune et al. Oct 2013 A1
20140074581 Johnson et al. Mar 2014 A1
Foreign Referenced Citations (44)
Number Date Country
2000357204 Dec 2000 JP
2001501328 Jan 2001 JP
2009501891 Jan 2009 JP
1020010096672 Nov 2001 KR
1020030008894 Jan 2003 KR
1020040045622 Jun 2004 KR
20040107715 Dec 2004 KR
1020050113156 Dec 2005 KR
20070030415 Mar 2007 KR
1020080002731 Jan 2008 KR
20080104398 Dec 2008 KR
1999022328 May 1999 WO
1999050775 Oct 1999 WO
2000003328 Jan 2000 WO
2000060435 Oct 2000 WO
2000062231 Oct 2000 WO
2001037183 May 2001 WO
2001039023 May 2001 WO
2001057758 Aug 2001 WO
2001093161 Dec 2001 WO
2002005116 Jan 2002 WO
2002014985 Feb 2002 WO
2002019229 Mar 2002 WO
2002042970 May 2002 WO
2002071187 Sep 2002 WO
2003025695 Mar 2003 WO
2003081376 Oct 2003 WO
2005001631 Jan 2005 WO
2005072382 Aug 2005 WO
2005076181 Aug 2005 WO
2006028739 Mar 2006 WO
2006126205 Nov 2006 WO
2007131258 Nov 2007 WO
2007136221 Nov 2007 WO
2008013945 Jan 2008 WO
2008023912 Feb 2008 WO
2008055217 May 2008 WO
2008064343 May 2008 WO
2008067543 Jun 2008 WO
2008144643 Nov 2008 WO
2009144010 Dec 2009 WO
2010036915 Apr 2010 WO
2010141270 Dec 2010 WO
2012040270 Mar 2012 WO
Non-Patent Literature Citations (36)
Entry
Cashmore, Pete, “YouTube Ads: You Hate Em,” available at http://mashable.com/2009/04/05/youtube-ads-youhate-em/#, Apr. 5, 2009.
Credit Card Finder: “Compare Cash Back Credit Cards and Credit Card Offers”; http://www.plasticrewards.com/, 2009, 1 page.
Credit Card Finder: “Cash Back Reward Credit Cards”; http://www.plasticrewards.com/creditcard/cash-back-reward/, 2009, 3 pages.
Credit Card Finder: “Airline Miles Reward Credit Cards”; http://www.plasticrewards.com/airline-miles-reward/, 2009, 2 pages.
Credit Card Finder: “Gas Reward Credit Cards”; http://www.plasticrewards.com/creditcard/gas-reward/, 2009, 3 pages.
Credit Card Finder: “Travel Reward Credit Cards”; http://www.plasticrewards.com/credit-card/travel-reward, 2009, 3 pages.
Credit Card Finder: “Reward Credit Cards”; http://www.plasticrewards.com/credit-card/reward/, 2009, 3 pages.
Credit Card Finder: “Hotel Reward Credit Cards”; http://www.plasticrewards.com/credit-card/hotel-reward/, 2009, 2 pages.
CreditCardGuide.com: “Use Cash Back Credit Cards”; http://www.creditcardguide.com/cashback.html/, 2009, 3 pages.
CreditCardGuide.com: “Cash Back Credit Cards”; http://www.creditcardguide.com/cashback2.htmll, 2009, 2 pages.
CreditCardGuide.com: “Use Reward Credit Cards”; http://www.creditcardguide.com/reward-point-credit-cards.html/, 2009, 3 pages.
CreditCardGuide.com: “Gas Rebate Credit Cards”; http://www.creditcardguide.com/gascards.html/, 2009, 2 pages.
CreditCardGuide.com: “With Airline Credit Cards, Frequent Flyer credit cards, and Travel Reward Credit Cards”; http://www.creditcardguide.com/airline-frequent-flyer-cards.html/, 2009,4 pages.
CreditCardGuide.com: “Use hotel reward credit cards and travel reward credit cards”; http://www.creditcardguide.com/hotel-reward-credit-cards.html/, 2009, 2 pages.
CreditCardGuide.com: “Dining and entertainment credit cards”; http://www.creditcardguide.com/dining-entertainment.html/, 2009, 3 pages.
CreditCardGuide.com: “Car rebate credit cards”; http://www.creditcardguide.com/car- rebate.html/, 2009, 2 pages.
CreditCardGuide.com: “Use retail reward credit cards and brand name reward credit cards”; http//www.creditcardguide.com/retail-brand-credit-cards.html/, 2009, 2 pages.
CreditCardGuide.com: “Use home improvement reward credit cards”; http://www.creditcardguide.com/home-improvement-credit-cards.html/, 2009, 2 pages.
CreditCardGuide.com: “Financial reward credit cards”; http://www.creditcardguide.com/financial-reward-credit-cards.html/, 2009, 2 pages.
CreditCardGuide.com: “Foundation and charity credit cards”; http://www.creditcardguide.com/foundations-charities.html/, 2009, 3 pages.
CreditCardGuide.com: “Sports and outdoor enthusiast credit cards”; http://www.creditcardguide.com/sports-outdoors.html/, 2009, 2 pages.
International Patent Application PCT/US2009/058412, International Search Report and Written Opinion, dated May 11, 2010.
International Patent Application PCT/US2009/052766, International Search Report and Written Opinion, dated Mar. 11, 2010.
International Patent Application PCT/US2010/036076, International Search Report & Written Opinion, dated Dec. 30, 2010.
International Patent Application PCT/US2011/029401, International Search Report and Written Opinion,dated Dec. 20, 2011.
International Patent Application PCT/US2011/039051, International Search Report and Written Opinion, dated Feb. 17, 2012.
International Patent Application PCT/US2011/046702, International Search Report and Written Opinion, dated Feb. 28, 2012.
International Patent Application PCT/US2011/052465, International Search Report and Written Opinion, dated Mar. 2, 2012.
International Patent Application PCT/US2012/029273, International Search Report and Written Opinion, dated Oct. 29, 2012.
International Patent Application PCT/US2011/059410 International Search Report and Written Opinion, dated Apr. 11, 2013.
International Patent Application PCT/US2013/022572 International Search Report and Written Opinion, dated Apr. 22, 2013.
International Patent Application PCT/US2013/024421 International Search Report and Written Opinion, dated May 8, 2013.
Li, Wen-Syan, “Knowledge Gathering and Matching in Heterogeneous Databases,” Working Notes of the AAAI Spring Symposium on Information Gathering, pp. 116-1216, Mar. 27, 1995.
Mielikäinen, Taneli, “Privacy Problems with Anonymized Transaction Databases,” 7th International Conference on Discovery Science, pp. 219-229, Oct. 2, 2004.
Punj, Girish et al. “ Cluster Analysis in Marketing Research: Review and Suggestions for Application,” Journal of Marketing Research, vol. 20, pp. 134-148, May 1983.
Van Grove, Jennifer, “Are Your Online Video Ads Driving Actual Offline Purchases?”, available at http://mashable.com/2009/05/18/video-impact/#, May 18, 2009.
Related Publications (1)
Number Date Country
20150288637 A1 Oct 2015 US
Provisional Applications (1)
Number Date Country
61976418 Apr 2014 US