The present invention relates generally to relational database management systems and applications using such systems. In particular, it relates to a software system that collects segmentation data.
The ability to market a product or service to individuals who are accessible on the Internet is becoming increasingly important. Email systems exist today for sending email to a target set of email addresses for purposes such as marketing, information acquisition, and otherwise. A system for sending email to a number of email targets for such purposes is called an email campaign.
In addition, the Internet provides the capability to provide services to customers without requiring them to install additional software on their local computers. Specifically, by exploiting the customer's web browser, all functional logic and all data can reside at a remote server rather than at the customer's local computer (i.e., the client). As such, the customer, via instructions submitted through web pages that are displayed in the web browser, can remotely invoke the functional logic to view, create, update, delete or otherwise modify the data residing on the remote server.
Furthermore, computer databases or similar constructions are powerful tools for storage, organization, retrieval and other handling of various types of information. However, there are different database models, or formats, for data access that are incompatible with each other, and may also be incompatible with, or remarkably different from, an object programming application. In this respect, complex relationships between objects present in the object programming application may be entirely absent in a relational or object database being accessed or updated. Nonetheless, many of these database types have achieved a high level of popularity and proliferation.
A distributed database is a database in which portions of the database are stored on multiple computers within a network. Users have access to the portion of the database at their location so that they can access the data relevant to their tasks without interfering with the work of others. A centralized distributed database management system (DDBMS) manages the database as if it were all stored on the same computer. The DDBMS synchronizes all the data periodically and, in cases where multiple users must access the same data, ensures that updates and deletes performed on the data at one location will be automatically reflected in the data stored elsewhere.
Collections of data such as in a database can be distributed across multiple physical locations. A distributed database is distributed into separate partitions and fragments. Each partition and fragment of a distributed database may be replicated. Besides distributed database replication and fragmentation, there are many other distributed database design technologies. For example, there are local autonomy, synchronous and asynchronous distributed database technologies. These technologies' implementation depends on the needs of the business and the sensitivity and confidentiality of the data to be stored in the database, and hence the price the business is willing to spend on ensuring data security, consistency and integrity. Also, a database server is the software managing a database, and a client is an application that requests information from a server. Each computer in a system is a node. A node in a distributed database system acts as a client, a server, or both, depending on the situation.
Furthermore, there are advantages of distributed databases. This is reflected in organizational structure. Database fragments are located in the departments they relate to. A department can control the data about them, giving them local autonomy. There is improved availability; a fault in one database system will only affect one fragment, instead of the entire database. Additionally, there is improved performance because data is located near the site of greatest demand and the database systems themselves are parallelized, allowing load on the databases to be balanced among servers. A high load on one module of the database will not affect other modules of the database in a distributed database.
From an economic standpoint, it costs less to create a network of smaller computers with the power of a single large computer. Also, systems can be modified, added and removed from the distributed database without affecting other modules (systems). However, increased complexity and a more extensive infrastructure means extra labor costs. Furthermore, remote database fragments must be secured, and they are not centralized so the remote sites must be secured as well. The infrastructure must also be secured (e.g., by encrypting the network links between remote sites).
Email service providers face problems. The solution is to have database administrators and application developers retain control over their data warehouse and marketers have the flexibility to change variables in their segmentation without making an additional request to the information technology (IT) staff. Businesses often struggle to maintain a working relationship between transactional and marketing data. Often, the data required to make decisions lives in a custom data warehouse which can only be queried via custom requirements in an on-demand fashion. Making transaction level data available directly to a marketer can be cause for concern for IT staff and often requires some knowledge about relational databases and how to interact with them.
Accordingly, there is a strong need for more efficient and flexible data collection from a third party to be applied to an existing database. There is a need for an internal system to make segmentation calls to other non-email service provider data sources and those sources, combined with client requirements. The present invention provides a solution to these needs and other problems, and offers other advantages over the prior art.
The present invention is related to a software system that solves the above-mentioned problems. Some sort of behavior information about an individual may be located in a database in various areas. It will be understood by one of ordinary skill in the art that these areas may be disjointed or separated. The behavior information can include profiles of subscribers. The customer profiles have data such as demographics, preferences, and behaviors, but are not limited to this list.
Customers can also subscribe to an email list. Subscriber list profiles can be located in various e-commerce platforms. Furthermore, the database may be owned by a third party, including clients and vendors. In one embodiment of remote segmentation system and method, a request is sent to an owner of a database for a subset of information. The response includes a list of people that match the request. In a very simple example, the request asks for all people who did not purchase a Movado 24-carat gold plated watch. The response will then segment the database to contain all customers who purchased items excluding the specified watch, without saving the segment and overloading the current system. A user, marketer, or client can then send a message to the customers in the segment.
Also, in a preferred embodiment, remote segmentation provides the ability for a cast or bid party to define a user interface in an application that exposes or limits parameters to access the data (such as customer behavior). This allows a user to make categories, items, parameters, etc. available in the flexible user interface based on definitions entered by the third party customer.
In another embodiment, a user may receive fresh or updated data requests through the user interface for data segments. For example, the user may request “freshness” values for a data expiration window without making multiple requests for the entire data stores, thereby reducing strain on the third party. Also, in a further functional embodiment the format of the response and requests may be in extensible markup language (XML) or text format. Additionally, while utilizing remote segmentation as a whole, a user has the ability to approve peripheral actions such as email campaign functionality. Finally, in another preferred embodiment, the user has the ability to request a count or number of the specified data instead of the actual data itself.
Additional advantages and features of the invention will be set forth in part in the description which follows, and in part, will become apparent to those skilled in the art upon examination of the following or may be learned by practice of the invention.
Remote segmentation is a process by which segmentation data is collected from a third party and applied to an existing database. In a preferred embodiment of remote segmentation, a definition is added that makes the local system aware of all the possible segmentation dimensions in a way that is presentable to the user as well as transmittable to a third party (in house or other company) which processes the segment and returns the result.
Some e-commerce companies offer the ability to send a request for a segment and get a result, but it is up to the user to wrap a user interface around that. In a preferred embodiment, remote segmentation is a system that can consume the types of data a segmentation engine can crunch and giving the user an interface that changes based on the different types of data the third party holds.
For example, a user wishes to create an email campaign for an airline company that has a promotion for discounted tickets to Greece. Database A, located in a remote location from the company, contains a list of one hundred email addresses. The user logs into a system that has a user interface and specifies a list of parameters. The parameters create a query for people who speak the Greek language. A remote segmentation engine sends the query to database A with a request for how many people speak Greek. The database A sends back a reply with Bob Smith's name and email (or any other requested information) as a person who speaks Greek. The remote segmentation engine then utilizes Bob Smith in a segment. The user then can send a message to the segmented population with details about discounted tickets. Thus, the remote segmentation system does not store the segment or any information about the segment. Instead, the system sends requests to remote databases and matches the request to create an intersection of information. It will be understood by one of ordinary skill in the art that the remote database could be any external source of information. It will also be understood that a segment can also be an external group.
The customer profiles have data such as demographics, preferences, and behaviors, but are not limited to this list. Customers can also subscribe to an email list. Subscriber list profiles can be located in various e-commerce platforms. Furthermore, the database may be owned by a third party, including clients and vendors.
Definitions in Table 1 are intended to clarify terms and concepts used within this document.
Remote segmentation system and method provides a method for customers to populate groups in the system without having to make application programming interface (API) calls to the email service provider system. Remote segmentation has a remote control functionality that allows users to populate groups in the system from an external data source without logging into the system. A data source can be any file transfer protocol (FTP) site where customers post files of email addresses. The system has a checking mechanism in a message sending process that identifies when a message contains an external group and when it does not contain an external group. Furthermore, the system includes an end tag convention that customers use with external group files to ensure file retrieval.
In a preferred embodiment of remote segmentation system and method, the user interface allows the creation of external groups. Furthermore, it allows the user to define an external data source for the group and to include the definition of the path to the external group FTP location. The user can change the number of fields in the external group file in the remote location. Remote segmentation system also has approval process screens that include an approval process for the first few times the external group is utilized. The screen allows the user to view the message and have buttons that allow the user to approve the message for sending or send it back to drafts database. Failure state screens in the user interface identify failure messages when a file does not exist at the location specified for the external group. Additionally, in client accounts and subaccounts the remote segmentation feature may be activated or deactivated.
In another embodiment, a user may receive fresh or updated data requests through the user interface for data segments. For example, the user may request “freshness” values for a data expiration window without making multiple requests for the entire data stores, thereby reducing strain on the third party. The user can define the following properties for an external group: type of file, number of fields, define field names, order of fields, and minimum refresh time. Minimum refresh time defines whether the contents of the external group are to be updated each time a message is sent using the external group. This would be defined by a time parameter. For example: if update time=now (0) then the external group would be populated with data from the external source each time the group is used in a message send. If the update time=once per week (7) then the external group would update the contents of the group from the external source once per week. Also, the user has the ability to request a count or number of the specified data instead of the actual data itself.
It will be understood by one of ordinary skill in the art that the user interface is variable and defined as a part of remote segmentation. The resulting user interface changes based on what is required of the remote segmentation engine. Remote segmentation is a system that can consume the types of data a segmentation engine can crunch and giving the user an interface that changes based on the different types of data the third party holds.
Referring again to
Referring now to
In a preferred embodiment of remote segments, for successful implementation W3C Extensible Markup Language (XML) 1.0 standard (http://www.w3.org/XML/Core/) as well as the XML Schema 1.1 standard (http://www.w3.org/XML/Schema) can be utilized. Furthermore, remote segment system makes use of some industry standard encryption, authentication and filtering methods to maintain a high level of security when transmitting and receiving customer data. Using a combination of these technologies, customer data is secure and cannot be stolen while in transit between the client and email service provider. Some of the technologies employed by remote segments are Secure Sockets Layer (SSL), Secure FTP (FTP over SSL), HTTP Authentication and IP Filtering.
Moreover, an email service provider's remote segment functionality is comprised of three components which, when used together, create the usable remote segment. The first component is a remote segment type. The remote segment type template provides a set of parameters for the remote segment and at the very basic level gives the remote segment type a name and set of configuration options that can be manipulated by the user. The second component is the saved remote segment. The saved remote segment marries the defined remote segment type with the user defined parameters to create a logical request to the third component, a remote system. The remote system is a client implemented and maintained interface used by email service provider's remote segment functionality to request segment data from the client. The interface returns any modifications to the remote segment definition so the email service provider system knows where to locate the segment data.
Understanding an email service provider's interpretation of each user interaction with the XML configuration and how it affects the outcome of each remote segment is critical to successful implementation because it allows staff to define a flexible set of parameters a marketer can use to retrieve segmentation information, yet defines a box that allows the staff to protect its internal infrastructure from impossible queries.
The XML configuration cascades across the three different components of a remote segment and allows modification of previous definitions at each stage. The staff's role is to create an XML configuration for the remote segment type that defines a set of parameters the marketer can use to segment, (e.g., birth date, last purchase date, purchase categories). The request is made to the client's remote segment interface which responds with any changes to the original configuration.
In a preferred embodiment of remote segmentation system and method, the remote segment type defines a set of configuration options used by an email service provider to access the remote segmentation information as well as the options available to the marketer when defining which segment they want to mail. A basic remote segment type starts with the following XML document:
Furthermore, the XML document is expanded to define parameters surrounding the request communication protocol, request method, username and password. Note that if the request transport is defined as “none,” the request is skipped and the remote segment data file is requested immediately.
Next, data transport, location and access information is added to reflect a data location. The resulting XML configuration contains “name” plus ten core XML tags needed by the remote segments functionality to retrieve and process data from the client's system.
Because data files are expected to be generated dynamically by a marketer's segmentation request, the request response can be a subset of the configuration XML defining the data access parameters. It will be understood by one of ordinary skill in the art that the following example XML could be in response to a request made to the client's interface.
Furthermore, the ability to override previously specified parameters gives the client flexibility to manipulate data storage locations, usernames, passwords and file names without having to make the email service provider remote segment functionality aware of the changes ahead of time.
The XML configuration allows the client's staff to create a marketer friendly interface to interact with available segmentation parameters. The available user interface elements are:
The best way to determine what XML tags and attributes are supported is via the available XSD. There is also a tag reference in Table 4.
Additionally, the XML configuration supports a set of attributes on each form object. Two attributes are required for each form object: “container” and “name” (“d1_name” for a Decision). If any “name” or “d_name” attribute is named the same as one of the ten core xml tags covered in the previous section, the value of that form object will override the originally defined XML value. This functionality is designed to let staff to build in overrides to their own configuration when exposed to the marketer.
Expanding upon the previously defined XML, the following example offers the marketer the ability to enter a date range which will be transmitted to the client's interface as “date.”
In another preferred embodiment of remote segmentation system and method, containers allow staff to group logically similar form items together to create a user friendly interface for the marketer. For example, if the marketer is allowed to select multiple locales for a segment of transactions as well as a specific currency, but these two parameters must be specified together, the XML configuration could be modified to include a checkbox which toggles the visibility of these two fields. Using the “field” container followed by a collection of “display” containers, the checkbox toggles the entire “display” container referencing it by the name of the first form within that container. In this scenario, the checkbox is toggling the “locale” multibox which is in a “display” container with “currency.” In this example, an additional toggle checkbox was added to the dateframe tag.
There are eight form specific tag types that can be defined in the “form” section of the XML configuration. Below are attributes, example code and screen renderings for each of the eight available form tags.
An example of the tag: <decision> is shown below, resulting in a user interface 178, as shown in
An example of the tag: <textarea> is shown below, resulting in a user interface 180, as shown in
An example of the tag: <checkbox> is shown below, resulting in a user interface 182, as shown in
An example of the tag: <textbox> is shown below, resulting in a user interface 184, as shown in
An example of the tag: <passwordbox> is shown below, resulting in a user interface 186, as shown in
An example of the tag: <dateframe> is shown below, resulting in a user interface 188, as shown in
An example of a tag: <multibox> is shown below, resulting in a user interface 190, as shown in
An example of a tag: <dropdown> is shown below, resulting in a user interface 192, as shown in
An example of this tag: <option> is shown below.
Shown below is an example XML configuration specific to an internal commerce data structure. In a preferred embodiment of remote segmentation system and method, the final XML configuration is similar. This results in a complex interface 194, as illustrated in
Saved remote segments are simply a set of parameters defined by the marketer within the context of the “form” tag from the remote segment type. For example, the following XML configuration results in an interface 196 as shown in
If the marketer has defined a username, password and URL, the saved remote segment will store the values for each field presented to the marketer. Because the request_transport is “none,” the remote segment functionality skips directly to the data file. Using HTTP, the remote segment functionality connects to data_file using data_username and data_password as authentication credentials.
A more complex example including an initial request for data follows:
Resulting in a user interface 198, as shown in
Assuming the marketer entered “CA” for state, the request URL will URL encode all parameters and append them as a query string to the request_url:
The client-side remote segment interface can be implemented in a number of ways. At the basic level, a client's IT staff can expose a set of data files made available on an ongoing basis. These data files can be referenced using the default “HTTP” or “FTP” remote segment types and can be made available to the marketer via a URL or host and file name.
For more complex implementations, a series of dynamic queries can be created to abstract the underlying data structures and expose a set of pre-defined parameters to the marketer. When using this type of implementation, understanding the way each form object affects the request is extremely important.
Tags, such as “textbox” and “passwordbox” pass the value directly as if the data was entered on a form; however, form objects such as the “dateframe” and “decision” create slightly different request parameters on the request_url. The following list of tags work outside of the “name=value” model commonly referred to as key/value pairs or query string parameters.
The decision tag utilizes up to five attributes d1_name, d2_name, d3_name, d4_name and d5_name, to name each of the dropdowns available within the decision tag.
When “Apples” and “red” are selected, the following parameters will be added to the request:
The dateframe's name is used as a base for a set of parameters required to transmit the date matching type and the date itself. Additionally, when “within” is selected, an additional date is passed to complete the date range.
If “on” and the date “1 Apr. 2025” are selected, the following parameters will be added to the request:
If “within,” “1 Apr. 2025,” and “29 Feb. 2026” are selected, the following parameters will be added to the request:
The multibox allows the marketer to select more than one distinct option for a list of many. To support this, the name for the multibox is appended with [ ] to allow for some languages to accept this subset of the request as an array.
If only “CAD” is selected, the following parameter will be added to the request:
If both “CAD” and “USD” are selected, the following parameters will be added to the request:
Table 3 describes an example XML language for remote segmentation. Table 4 describes XML configuration tags for quick reference purposes.
-<remote_segment_type>
-<form>
-<multibox container=“display” name=“locale” label=“Locale”>
-<dropdown container=“display” name=“currency” label=“Currency”>
It is to be understood that even though numerous characteristics and advantages of various embodiments of the present invention have been set forth in the foregoing description, together with details of the structure and function of various embodiments of the invention, this disclosure is illustrative only, and changes may be made in detail, especially in matters of structure and arrangement of parts within the principles of the present invention to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed. For example, the particular elements may vary depending on the particular application for the web interface such that different dialog boxes are presented to a user that are organized or designed differently while maintaining substantially the same functionality without departing from the scope and spirit of the present invention.
This application claims the benefit of U.S. Provisional Application No. 60/916,685 filed 8 May 2007, entitled “Remote Segmentation,” which is incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5701461 | Dalal et al. | Dec 1997 | A |
5787274 | Agrawal et al. | Jul 1998 | A |
5970469 | Scroggie et al. | Oct 1999 | A |
6026397 | Sheppard | Feb 2000 | A |
6169992 | Beall et al. | Jan 2001 | B1 |
6202063 | Benedikt et al. | Mar 2001 | B1 |
6230156 | Hussey | May 2001 | B1 |
6334110 | Walter et al. | Dec 2001 | B1 |
6571279 | Herz et al. | May 2003 | B1 |
6954748 | Dettinger et al. | Oct 2005 | B2 |
6954758 | O'Flaherty | Oct 2005 | B1 |
6985962 | Phyllyyaw | Jan 2006 | B2 |
7050989 | Hurt et al. | May 2006 | B1 |
7167877 | Balogh et al. | Jan 2007 | B2 |
7231407 | Brodersen et al. | Jun 2007 | B2 |
7249048 | O'Flaherty | Jul 2007 | B1 |
7281206 | Schnelle et al. | Oct 2007 | B2 |
7315861 | Seibel et al. | Jan 2008 | B2 |
7337127 | Smith et al. | Feb 2008 | B1 |
7356533 | Schneiter et al. | Apr 2008 | B1 |
7359078 | Czyszczewski et al. | Apr 2008 | B2 |
7406434 | Chang et al. | Jul 2008 | B1 |
7424439 | Fayyad et al. | Sep 2008 | B1 |
7640322 | Wendkos et al. | Dec 2009 | B2 |
7761457 | Error et al. | Jul 2010 | B2 |
8224691 | Scroggie et al. | Jul 2012 | B1 |
20010052009 | Desai et al. | Dec 2001 | A1 |
20020004754 | Gardenswartz et al. | Jan 2002 | A1 |
20020032602 | Lanzillo, Jr. et al. | Mar 2002 | A1 |
20020057272 | Hamada et al. | May 2002 | A1 |
20020073399 | Golden | Jun 2002 | A1 |
20020174011 | Sanchez et al. | Nov 2002 | A1 |
20020191033 | Roberts | Dec 2002 | A1 |
20030018898 | Lection et al. | Jan 2003 | A1 |
20030046338 | Runkis | Mar 2003 | A1 |
20030144955 | Kim | Jul 2003 | A1 |
20030200137 | Drummond | Oct 2003 | A1 |
20030208458 | Dettinger et al. | Nov 2003 | A1 |
20030212676 | Bruce et al. | Nov 2003 | A1 |
20050075946 | Henning et al. | Apr 2005 | A1 |
20050187971 | Hassan et al. | Aug 2005 | A1 |
20070112614 | Maga et al. | May 2007 | A1 |
20070124399 | Gillespie et al. | May 2007 | A1 |
20070124401 | Gillespie et al. | May 2007 | A1 |
20070124404 | Gillespie | May 2007 | A1 |
20070130118 | Ganduri et al. | Jun 2007 | A1 |
20080010265 | Bangel et al. | Jan 2008 | A1 |
20080010351 | Wardhaugh et al. | Jan 2008 | A1 |
20110184793 | Bohannon et al. | Jul 2011 | A1 |
Entry |
---|
http://web.archive.org/web/20051228034011/http://www.bluehornet.com/site/technology/smart—lists.htm, Dec. 28, 2005. |
http://www.bluehornet.com/about/digital-river-companies, 2004. |
Bulk Email Marketing List Management. Silverpop, 2006. |
Ranchero Software Smartlist., Newsgator Technologies, Inc., 2006. |
Dataviz Smartlist to Go V3.0 CD-ROM, The Palm Store, 2006. |
Notice of Allowance, U.S. Appl. No. 11/565,618, Now US Patent# 851057. |
Number | Date | Country | |
---|---|---|---|
20090043747 A1 | Feb 2009 | US |
Number | Date | Country | |
---|---|---|---|
60916685 | May 2007 | US |