US20150358258A1 - Systems and methods for message personalization - Google Patents
Systems and methods for message personalization Download PDFInfo
- Publication number
- US20150358258A1 US20150358258A1 US14/595,000 US201514595000A US2015358258A1 US 20150358258 A1 US20150358258 A1 US 20150358258A1 US 201514595000 A US201514595000 A US 201514595000A US 2015358258 A1 US2015358258 A1 US 2015358258A1
- Authority
- US
- United States
- Prior art keywords
- global
- tokens
- local
- token
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- G06F17/248—
-
- G06F17/277—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- H04L51/32—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
-
- H04L67/2842—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Definitions
- Systems and methods for efficient message personalization are provided. More particularly, computer systems and methods for efficient processing and sending of personalized interactive digital messages are provided.
- Electronic mail is an essential network service.
- Most e-mail systems that send mail over the Internet use simple mail transfer protocol (SMTP) to send messages from one server to another. The messages can then be retrieved with an e-mail client using services such as post office protocol (POP) or Internet message access protocol (IMAP).
- POP post office protocol
- IMAP Internet message access protocol
- Other protocols for sending e-mail include POP3, X.400 International Telecommunication Union standard (X.400), and the Novell message handling service (MHS), and extended simple mail transfer protocol (ESMTP).
- POP3 post office protocol
- X.400 International Telecommunication Union standard
- MHS Novell message handling service
- ESMTP extended simple mail transfer protocol
- X.400 defines a transfer protocol for sending electronic mail between mail servers and is used in Europe as an alternative to SMTP.
- MHS which was developed by Novell, is used for electronic mail on Netware networks.
- SMTP transports electronic mail among different hosts within the transmission control protocol/Internet protocol (TCP/IP) suite.
- TCP/IP transmission control protocol/Internet protocol
- a client SMTP process opens a TCP connection to a server SMTP process on a remote host and attempts to send mail across the connection.
- the server SMTP listens for a TCP connection on a specific port (25), and the client SMTP process initiates a connection on that port.
- the two processes execute a simple request-response dialogue, defined by the SMTP protocol (see RFC 821 STD 10, Simple mail transfer protocol, August 1982, for details), in which the client process transmits the mail addresses of the originator and the recipient(s) for a message.
- the client process When the server process accepts these mail addresses, the client process transmits the e-mail instant message.
- the e-mail message contains a message header and message text (“body”) formatted in accordance with RFC 822 (RFC822 STD 11, Standard for the format of ARPA—Internet Text Messages, August 1982).
- Mail that arrives via SMTP is forwarded to a remote server or it is delivered to mailboxes on the local server.
- Sendmail is the most widely used SMTP server for e-mail.
- Sendmail includes a POP3 server and also comes in a version for Windows NT.
- Microsoft Outlook is the most popular mail-agent program on Window-based systems.
- the SMTP model (RFC 821) supports both end-to-end (no intermediate message transfer agents “MTAs”) and store-and-forward mail delivery methods.
- the end-to-end method is used between organizations, and the store-and-forward method is chosen for operating within organizations that have TCP/IP and SMTP-based networks.
- a SMTP client will contact the destination host's SMTP server directly to deliver the mail. It will keep the mail item from being transmitted until it has been successfully copied to the recipient's SMTP. This is different from the store-and-forward principle that is common in many other electronic mailing systems, where the mail item may pass through a number of intermediate hosts in the same network on its way to the destination and where successful transmission from the sender only indicates that the mail item has reached the first intermediate hop.
- the RFC 821 standard defines a client-server protocol.
- the client SMTP is the one which initiates the session (that is, the sending SMTP) and the server is the one that responds (the receiving SMTP) to the session request. Because the client SMTP frequently acts as a server for a user-mailing program, however, it is often simpler to refer to the client as the sender-SMTP and to the server as the receiver-SMTP.
- An SMTP-based process can transfer electronic mail to another process on the same network or to another network via a relay or gateway process accessible to both networks.
- An e-mail message may pass through a number of intermediate relay or gateway hosts on its path from a sender to a recipient.
- FIG. 1 A simple model of the components of the SMTP system is shown in FIG. 1 .
- Users deal with a user agent (UA).
- Popular user agents for UNIX include Berkeley Mail, Elm, MH, Pine, and Mutt.
- the user agents for Windows include Microsoft Outlook/Outlook Express and Netscape/Mozilla Communicator.
- the exchange of e-mail using TCP is performed by an MTA.
- the most common MTA for UNIX systems is Sendmail, and a conventional MTA for Windows is Microsoft Exchange 2000/2003. Users normally do not deal with the MTA. It is the responsibility of the system administrator to set up the local MTA. Users often have a choice, however, for their user agent.
- the local MTA maintains a mail queue so that it can schedule repeat delivery attempts in case a remote server is unable.
- the local MTA delivers mail to mailboxes, and the information can be downloaded by the UA (see FIG. 1 ).
- the RFC 821 standard specifies the SMTP protocol, which is a mechanism of communication between two MTAs across a single TCP connection.
- the RFC 822 standard specifies the format of the electronic mail message that is transmitted using the SMTP protocol (RFC 821) between the two MTAs.
- RFC 821 SMTP protocol
- the sender-SMTP establishes a two-way connection with a receiver-SMTP.
- the receiver-SMTP can be either the ultimate destination or an intermediate one (known as a mail gateway).
- the sender-SMTP will generate commands, which are replied to by the receiver-SMTP (see FIG. 1 ).
- Both the SMTP client and server have two basic components: UA and local MTA.
- the sender's UA prepares the message, creates the envelope, and puts message in the envelope.
- the MTA transfers the mail across the network to the TCP-port 25 of the receiver's MTA.
- relaying could be involved (see FIG. 2 ).
- other MTAs acting as client or server, can relay the electronic mail across the network.
- This third scenario of communication between the sender and the receiver can be accomplished through the use of an e-mail gateway, which is a relay MTA that can receive electronic mail prepared by a protocol other than SMTP and transform it to the SMTP format before sending it.
- the e-mail gateway can also receive electronic mail in the SMTP format, change it to another format, and then send it to the MTA of the client that does not use the TCP/IP protocol suite.
- Sending mail through a mail gateway may alter the end-to-end delivery specification, because SMTP will only guarantee delivery to the mail-gateway host, not to the real destination host, which is located beyond the TCP/IP network.
- the SMTP end-to-end transmission is host-to-gateway, gateway-to-host or gateway-to-gateway; the behavior beyond the gateway is not defined by SMTP.
- E-mail across SMTP is used extensively today to communicate relevant personalized information.
- a company needs to frequently communicate to each of its numerous consumers with relevant personalized e-mail.
- CRM customer relationship management
- One approach for communicating with all of these customers is to send personalized individual, batch, or bulk e-mail through an e-mail distributor or high-throughput mail transfer agent (MTA) system.
- MTA mail transfer agent
- a mail transfer agent or MTA (also called a mail server, or a mail exchange server in the context of the Domain Name System) is a computer program or software agent that transfers electronic mail messages from one computer to another.
- Webster's New World Computer Dictionary tenth edition, Wiley Publishing Inc., Indianapolis, Ind., defines an MTA as an e-mail program that sends e-mail messages to another message transfer agent.
- An MTA can handle large amounts of mail, can interact with databases in many formats, and has extensive knowledge of the many SMTP variants in use. Examples of high-throughput MTA systems are disclosed in U.S. patent application Ser. No. 10/857,601, entitled “Email Delivery System Using Metadata,” filed May 27, 2004 as well as U.S. patent application Ser. No.
- MTA Mobile Telecommunications Network
- Conventional MTA programs include, but are not limited to, sendmail, qmail, Exim, and Postfix.
- High-throughput MTA systems such as those described above are more powerful than conventional MTA programs. Both high-throughput and conventional MTA products can send out messages to a plurality of recipients. However, while functional, existing MTA systems are unsatisfactory. To illustrate why, consider the case in which company A wishes to communicate with existing or past customers. The company maintains a record of each of these customers in a company database. Such records may contain personalized information about each of the customers. Company A wishes to use this information in order to customize each of the e-mails. To accomplish this, a method for accessing the customer information in the database needs to be arranged. Separately, the design of the e-mail that will be sent to each customer in the distribution list needs to be created. Therefore, at a minimum, what is needed is coordination between an information technology (IT) specialist and a business development professional in order to configure data from one or more sources to create messages to be delivered using the MTA distribution.
- IT information technology
- An IT specialist is consulted in order to provide a secure method for querying the database containing customer information.
- the IT specialist might set up an account with limited database privileges as well as construct scripts with customized database queries in order to obtain the information for each customer.
- information will include an e-mail address for each customer.
- the names of the customers are identified, as well as other information such as the types of products the customer has bought in the past, geographic information, information about the customer payment history, how often the customer buys products, how much product the customer buys, and so forth.
- the role of the business development professional is to optimize the persuasiveness and effectiveness of the customized MTA distribution.
- the work of the business development professional involves choosing fonts, color schemes and art that will be used in the customized e-mail sent to a plurality of recipients.
- the work of the business development professional further involves making decisions about which customers will receive a customized e-mail.
- the business development professional can, for example, select customers as a function of geographic region, amount of product bought from the company during a predetermined time period, etc.
- close coordination between the business development professional and the IT specialist is needed for each business development project that involves the distribution of customized electronic messages using an MTA.
- the business development example provided above is just one example of the many applications that can be implemented using e-mail.
- Other applications include providing secure custom statements (e.g., banking statements), person-to-person customized e-mail, traceable e-mails, e-mails from customer service to existing customers, e-mails from an employer to an employee, etc.
- secure custom statements e.g., banking statements
- person-to-person customized e-mail e.g., banking statements
- traceable e-mails e.g., e-mails from customer service to existing customers
- e-mails from an employer to an employee etc.
- conventional user agents do not provide satisfactory methods for supporting such features.
- complex steps are necessary in order to support such applications. Accordingly, given the above background, what are needed in the art are improved systems and methods for generating and sending personalized e-mail messages for distribution.
- one or more personalized messages are created from a mailing comprising one or more templates and one or more token lists.
- the templates include global tokens and local tokens.
- the token lists contain the tokens in the templates and corresponding token values.
- a personalized message is generated by identifying and storing global tokens and corresponding global token values in a global cache, and identifying and storing local tokens and corresponding local token values in a local cache.
- the personalized messages are then created using the templates and substituting tokens with token values stored in the global and local cache.
- the personalized messages are then distributed to the corresponding target recipients.
- a computing device for building a plurality of personalized messages from a mailing without human intervention.
- the mailing uses one or more templates and one or more token lists.
- Each template comprises a set of global tokens, and each template comprises a set of local tokens.
- the computing device comprises a processor and a memory.
- the memory stores a global cache and a local cache and, for each respective target recipient in a plurality of target recipients, the memory comprises instructions for execution by a processor.
- the instructions include:
- a computer system for building a plurality of personalized messages from a mailing without human intervention.
- the mailing uses one or more templates and one or more token lists.
- Each template in the one or more templates comprises a set of global tokens, and each template in the one or more templates comprises a set of local tokens.
- the computer system comprises one or more processors and one or more memory, wherein, the one or more memory storing a global cache and a local cache, wherein, for each respective target recipient in the plurality of target recipients, the one or more memory comprise instructions, executable by the one or more processors, for: (a) identifying, in a template designated for the respective target recipient, one or more global tokens not found in the global cache; (b) obtaining, for each global token in the one or more global tokens identified in (a), a corresponding global token value from the one or more token lists, each token list in the one or more token lists including one or more global tokens in the plurality of global tokens and corresponding global token values; (c) storing in the global cache, the one or more global tokens identified in (a) and their corresponding global token values obtained in (b); (d) storing in the local cache one or more local tokens in the one or more templates and corresponding local token values when the one or more local tokens are not present in the local cache; and (e) building
- a non-transitory computer readable medium comprising instructions to perform a method for building a plurality of personalized messages from a mailing without human intervention.
- the mailing uses one or more templates and one or more token lists, wherein each template in the one or more templates comprises a subset of global tokens in a plurality of global tokens, and each template in the one or more templates comprises a subset of local tokens in a plurality of local tokens.
- the method is performed by one more processors and one or more memory, the one or more memory storing a global cache and a local cache wherein, for each respective target recipient in the plurality of target recipients, the method comprises:
- the present disclosure comprises flushing the local cache after building a first personalized message in a plurality of personalized messages and before building a second personalized message in the plurality of personalized messages.
- the method occurs during load time.
- the method further comprises sending each respective personalized message in a plurality of personalized messages to a corresponding target recipient.
- the steps of the method are performed on a server.
- the local token values stored in local cache are retrieved from a data repository of target recipient records and information.
- the local token values stored in local cache are retrieved from a local token list received from a client computer.
- the one or more templates are received from a client computer.
- the one or more token lists in are received from a client computer.
- global token values or local token values are themselves tokens or subtokens.
- the personalized messages can be e-mail, SMS, FAX, IM, social network posts, voice, or any other digital communication process.
- FIG. 1 is the basic simple mail transfer protocol (SMTP) model in accordance with the prior art.
- SMTP simple mail transfer protocol
- FIG. 2 is the simple mail transfer protocol (SMTP) model with relay mail transfer agents in accordance with the prior art.
- SMTP simple mail transfer protocol
- FIG. 3 is a schematic diagram of a client computer system for sending template messages and lists for a mailing in accordance with an embodiment of the present disclosure.
- FIG. 4 is a schematic diagram of a system according to the present disclosure for generating personalized messages for a mailing.
- FIG. 5 is a flowchart depicting a method of creating and sending personalized messages to one or more intended recipients using templates and token lists in accordance with an embodiment of the present disclosure.
- the present disclosure encompasses systems and methods for efficient message personalization for mailings.
- a client sends a set of template messages (templates), along with a set of token lists, to a processing module.
- the processing module then generates a customized or personalized message using data from a data repository or any other data source.
- the personalization process is optimized using a global cache and a local cache to store token definitions and values.
- the personalized message is sent to corresponding target recipients using a standard email protocol.
- e-mail protocols see Hughes, 1998, Internet E - mail: Protocols, Standards, and Implementation , Artech House Publishers, which is hereby incorporated herein by reference in its entirety.
- FIG. 3 details an exemplary system that supports the functionality described above.
- the system is preferably a computer system 10 having:
- Operating system 40 can be stored in system memory 36 .
- system memory 36 can include one or more of the following:
- computer 10 comprises software program modules and data structures.
- the data structures stored in computer 10 include, for example, target recipient data repository 44 and one or more other databases 56 (e.g., an enterprise resource planning database, a human resource database, a supply chain database, etc.).
- target recipient data repository 44 is replaced and/or supplemented with other forms of customization data such a site-specific maps, weather, specific forms on news, market data, conference room availability, etc.
- customization data is in addition to target recipient data repository 44 .
- target recipient data repository 44 can comprise any form of data storage including, but not limited to, a flat ASCII or binary file, an Excel spreadsheet, a relational database (SQL), or an on-line analytical processing (OLAP) database (MDX and/or variants thereof).
- target recipient data repository 44 optional databases 56 , and target recipient relationship management module 70 are not housed on client 10 , but rather are housed on a separate server and/or are located on computers that are in electronic communication with such a server.
- each of the aforementioned data structures that are stored on or are accessible to system 10 is a single data structure.
- such data structures in fact, comprise a plurality of data structures (e.g., databases, files, archives) that may or may not all be hosted by computer 10 .
- repository 44 comprises a plurality of structured and/or unstructured data records that are stored either on computer 10 and/or on computers that are addressable by computer 10 across network/Internet 34 .
- data repository 44 and/or database 56 comprises a database that is either stored on computer 10 or is distributed across one or more computers that are addressable by computer 10 by network/Internet 34 .
- one or more of such data structures is hosted by one or more remote computers (not shown).
- Such remote computers can be located in a remote location or in the same room or the same building as computer 10 .
- any arrangement of the data structures and software modules illustrated in FIG. 3 on one or more computers is within the scope of the disclosure so long as these data structures and software modules are addressable by computer 10 across network/Internet 34 or by other electronic means.
- other systems, application modules and databases not shown in FIG. 3 can be stored in system memory 36 .
- the present disclosure fully encompasses a broad array of computer systems.
- client computer 10 is used to store target recipient data 46 , 56 or other forms of customization data, to create templates 72 and token lists 74 for target mailings, and to send the templates and the token lists to a personalization module on a remote computer.
- templates 72 are skeletons for generating personalized messages containing text common to all generated personal messages per mailing and fields called tokens. Templates contain two types of tokens; global and local.
- Global tokens are fields in the template that are non-target-specific. In other words, global tokens are fields that do not pertain to a particular target. For example, a global token “##Holiday##” may correspond to the value “Happy Holidays,” which is non-target-specific because “Happy Holidays” can apply to multiple target recipients.
- local tokens also known as record level tokens, are fields that are specific to a particular target of a mailing. For example, the local token “##name##” may correspond to the value “Jeff,” which is specific to the particular target recipient, Jeff.
- global tokens in general correspond to the same values for different target recipients, whereas local tokens correspond to different values for different target recipients.
- a mailing contains data for a single digital message for a single recipient.
- a mailing comprises data for a plurality of personalized messages each intended for a different recipient.
- a mailing comprises data for a plurality of personalized messages each intended for the same or different recipient.
- Such personalized messages can be distributed by e-mail, SMS, FAX, IM, voice, or any other digital communication process.
- the personalized messages are e-mail messages.
- e-mail client module 60 is used to send the mailing.
- the mailing is constructed using text editing functionality directly provided by client 60 .
- optional message tools 62 are provided to assist in the creation of the mailing.
- Such message tools can include, for example, a graphical user interface (GUI) driven XML and/or HTML editor for designing the appearance of customized e-mails for distribution.
- GUI graphical user interface
- HTML editor for designing the appearance of customized e-mails for distribution.
- message tools reducing the image produced using the GUI to a set of commands for inclusion in the mailing.
- ESMTP extended simple mail transfer protocol
- POP3, X.400 or MHS protocols or logical variants thereof (e.g., e-mail messages sent using programs similar to or derived from POP3, X.400, or MHS).
- the mailing is compliant with one of the aforementioned e-mail protocols and is encoded in the XML language.
- XML is described in, for example, Ray, Learning XML , second edition, O'Reilly Associates; Harold and Means, XML in a Nutshell , third edition, O'Reilly Associates; and Hunter et al., Beginning XML , third edition, Wrox, each of which is hereby incorporated herein by reference in its entirety.
- FIGS. 4 and 5 various advantageous methods that can be used in accordance with the present disclosure will now be disclosed in conjunction with FIGS. 4 and 5 .
- FIG. 4 shows an embodiment of a system 200 in accordance with the present disclosure.
- user computer 10 is used to generate a mailing comprising templates and token lists.
- User computer 10 further sends the mailing to message assembly server 202 .
- server 202 includes conventional MTA functionalities in addition to the functionalities of the present disclosure.
- server 202 includes functionality for distributing other forms of digital communication such as SMS, FAX, IM, or voice mail.
- the server 202 illustrated in FIG. 4 comprises:
- system memory 236 further comprises:
- information stored in both global cache 248 and local cache 252 is in efficient structured form.
- objects in cache contain memory references to tokens pending for complete personalization.
- objects in cache know where values of tokens need to be replaced.
- Mailings of the present disclosure can be sent, for example, by e-mail from client 10 to message assembly server 202 when a user desires to have server 202 generate and send one or more personalized messages, such as personalized e-mails, to one or more intended target recipients 206 , e.g., clients, customers, potential customers, and/or any other desired target recipients for whom the user has access to personalized data in a data repository 204 .
- intended target recipients 206 e.g., clients, customers, potential customers, and/or any other desired target recipients for whom the user has access to personalized data in a data repository 204 .
- message personalization module 244 processes the mailing from client 10 and creates personalized messages specific to each target recipient 206 .
- Mail transfer agent module 246 then sends the personalized messages to target recipients 206 .
- server 202 is external with respect to client 10 (e.g., FIG. 4 ). In some embodiments in accordance with the present disclosure, the personalized messages are sent from server 202 . Alternatively, in other embodiments in accordance with the present disclosure, server 202 is an integral part of recipient 206 . In still other embodiments in accordance with the present disclosure, client 10 is an integral part of server 202 .
- FIG. 5 provides a general overview of a method 500 for sending personalized messages to intended recipients in accordance with an embodiment of the present disclosure.
- a user creates a mailing at client 10 .
- This mailing comprises one or more templates 72 and one or more token lists 74 .
- a template 72 is a skeleton message including general text to be included in all personalized messages and fields called tokens. The tokens and their values are listed in the token lists 74 .
- Both templates 72 and token lists 74 can include text, markup language (e.g., HTML, WML, BHTML, RDF/XML, RSS, MathML, XHTML, SVG, cXML or XML), or other scripts or objects.
- the mailing is created directly using e-mail client 60 module ( FIG. 3 ).
- the mailing is created using optional message tools 62 ( FIG. 3 ). From here, the present disclosure provides different possibilities (use cases).
- the user sends the mailing directly to message assembly server 202 as noted in step 504 of FIG. 5 using E-mail client module 60 ( FIG. 3 ).
- the mailings can be specified using standard email protocols, UI Wizard, and Web Service APIs.
- the mailings can also be sent using standard content upload mechanisms, such as FTP and HTTP file upload.
- FTP and HTTP file upload For illustrate this use case, consider a situation in which marketing manager John creates a single mailing in the form of an e-mail using computer 10 of FIG. 3 that contains a template using tokens and a list of tokens and their values. John sends the mailing using standard OUTLOOK/Exchange (an example of client module 60 ) to exml@XYZ.com, the electronic address of message personalization module 244 .
- the message personalization module 244 interprets the mailing and data in the mailing and creates fully personalized messages, in the form of e-mail, to all the final recipients.
- the user sends a mailing to target relationship management module (TRRM) 70 before the mailing is sent to message assembly server 202 in accordance with step 504 of FIG. 5 .
- TRRM target relationship management module
- the TRRM system already does some limited personalization. Debbie creates a new mailing template that contains more extensive personalization than the first use case (e.g., by using XML/XSLT).
- the mailing that Debbie wishes to make can be created in at least two different ways. In one approach, the mailing is created by message tools 62 (e.g., Outlook/Exchange) and sent to TRRM 70 where static TRRM tokens in the mailing are populated.
- message tools 62 e.g., Outlook/Exchange
- the mailing is sent from TRRM 70 of computer 10 to message personalization module 244 of computer 202 .
- the mailing is created directly in TRRM module 70 .
- the personalized message is sent to a specific address, e.g., exml@XYZ.com, in this example, message personalization module 244 .
- the user sends the mailing directly to message assembly server 202 as noted in step 504 of FIG. 5 using e-mail client module 60 ( FIG. 1 ).
- the mailing contains multiple levels of information from multiple templates 72 and multiple token lists 74 .
- sales manager Mark creates multiple EXML templates 72 using computer 10 of FIG. 3 and multiple token lists 74 .
- Mark then sends the mailing using standard Outlook/Exchange (an example of E-mail client 60 ) to exml@XYZ.com, the address of message personalization module 244 .
- a personalized message is created using some or all of the templates and token lists.
- Message personalization module 244 pre-processes the templates 72 , substitutes the tokens with token values, and sends fully personalized messages (e.g. personalized e-mails) to one or more final recipients.
- message personalization module 244 on server 202 pre-processes the templates 72 sent by client 10 in order to create personalized messages.
- message personalization module 244 creates a new message and copies text over from the templates 72 .
- message personalization module 244 simply merges and modifies the original templates 72 .
- message personalization module 244 identifies and stores global tokens 250 and corresponding global token values 252 in global cache 248 .
- Global tokens 250 are tokens which can be resolved using the token lists 74 . In this case, resolving a token means determining the value of the token and replacing the token with the determined token value. If the token is in token list 74 , the value of the token is also in token list 74 and thus is known. For example, a token “##MailingID##” in a template 72 can be resolved by looking up “##MailingID##” in a token list 72 - 1 .
- message personalization module 244 on server 202 also identifies and stores local tokens 256 and their corresponding values in local cache 254 .
- Local tokens 256 are tokens that can be resolved only by retrieving record level information from target recipient data repository 44 or other databases 56 .
- Record level information is any information pertaining to target recipients. For example, if token “##name##” can only be resolved by retrieving target recipient record 46 - 1 in target recipient data repository 44 , then “##name##” is a local token and it and its corresponding value are stored in local cache 254 .
- local cache 254 can be part of memory 236 or completely separate.
- new personalized messages are created by substituting tokens in the template with token values found in either global 248 or local cache 254 .
- steps 508 and 510 are processed concurrently or nearly concurrently and step 512 is processed subsequently.
- all three steps occur concurrently or nearly concurrently.
- the steps can occur in succession with any order, as long as step 512 does not occur before steps 508 or 510 have been initiated.
- server 202 forwards the personalized message to the intended target recipient for which the record level data was retrieved from target recipient data repository 44 .
- Server 202 can send the message through either message personalization module 244 or mail transfer agent 246 .
- message personalization module 244 and mail transfer agent 246 are contained in the same software program. As such, the description of message personalization module 244 and mail transfer agent module as separate modules is merely provided herein to best illustrate the functionality of the MTAs of some embodiments of the present disclosure.
- server 202 After sending the personalized message to the target recipient, server 202 repeats the process for a different target recipient until no more target recipients remain. In some embodiments, server 202 repeats the process after sending the personalized message in step 516 . In other embodiments, server 202 repeats the process after creating the new personalized message in step 512 and then sends all the personalized messages to their respective target recipients at once. Still in other embodiments, server 202 sends the personalized messages when the process has repeated for a predefined number of cycles.
- step 514 after a particular personalized message has been created, the local cache 254 is flushed. Flushing the local cache 254 frees up memory space to store local tokens and corresponding values for the personalized message that is to be sent to a different target recipient. In some embodiments, step 514 is optional. In other embodiments of the present disclosure, local cache 254 is not flushed, but rather new local token values 258 that are retrieved with respect to a different target recipient simply replace the old token values 258 for corresponding local tokens 256 that are already stored in local cache 254 from the previous cycle.
- One advantage of the message personalization methods of the present disclosure is that there is no absolute requirement for a specialized user interface in order to create a mailing. For example, one can simply use an application such as Microsoft Outlook, and add lists from a spreadsheet, if desired. In fact, the mailing can be constructed in a simple ASCII editor. In some embodiments, if a user has data in a customer relationship management database (e.g., Siebel or Oracle), enhanced functionality such as tracking, dynamic content, and the like can be utilized and/or incorporated to generate and send personalized messages such as personalized e-mail messages.
- a customer relationship management database e.g., Siebel or Oracle
- the systems and methods of the present disclosure provide a user with the ability to encode instructions in the mailing that instruct message personalization module 244 to access data from, or provide data to, data repositories stored in external systems (e.g., customer data repository 44 and/or other database 56 or flat file stored by or addressable by computer 202 ).
- server 202 itself contains instructions for retrieval from such data repositories.
- data repositories can include, for example, one or more hierarchical databases, and/or one or more relational databases, and/or one or more other data structures or flat files.
- data can be retrieved or submitted, for example, over network connection 34 or from storage media provided to the message personalization module 244 .
- FIG. 4 data can be retrieved or submitted, for example, over network connection 34 or from storage media provided to the message personalization module 244 .
- message personalization module 244 can communicate with one or more external databases 402 , HTTP web services 404 , or TCP/IP web services 406 using network connection 34 .
- network connection 34 may be wired or wireless and client 10 is, in some embodiments a portable computer or a tablet computer.
- one or more files containing only the data required to generate the desired messages is made available to message personalization module 244 and/or mail transfer agent module 246 .
- the mailing includes limited or full access rights to a users' data repository.
- a mailing can include a command that defines limited or full login rights, limited or full query rights, access to only certain records, fields or files or certain portions of a database or data repository, access for a limited period of time, and the like.
- certain destinations associated with message personalization module 244 and/or mail transfer agent module 246 can be designed to be ⁇ EXML> enabled.
- a particular mailbox called exml@strongmailsystems.com (or exml@mtacompany.com) can be set up so that, when a user sends a mailing to such an address, the request is parsed by message personalization module 244 and personalized messages are distributed by mail transfer agent module 246 based on the product of message personalization module 244 after parsing the EXML message.
- a target recipient relationship management module 70 of user computer 10 has the ability to personalize messages (e.g. personalized e-mails) based on database tokens.
- user computer 10 can originate a template 72 that contains EXML formatting and data pointer information.
- the First_Name and Account_ID of each customer in a customer list can be represented, for example, as EXML tokens in the body of template 72 .
- Template 72 containing these tokens is then sent to server 202 , which then uses advanced parsing techniques to personalize the message (e.g., process as “Dear ##First_Name##, . . . ”) for each target recipient 206 .
- the personalized messages are then sent to each recipient 206 specified by the original mailing.
- client 10 creates a mailing consisting of a single message (e.g., e-mail).
- the message contains a template 72 , the full list of recipients 206 , and a token list 74 for formatting within the message itself.
- the receiving system 202 receives this single message mailing, then generates one or more outgoing personalized messages (e.g., e-mail, FAXes, IM, voice, etc.) based upon the data contained within the single message mailing itself.
- Sample message template 72
- the exemplary template 72 above contains both general text that will remain unaltered during the personalization process and tokens, denoted by ##[token]##.
- line 5 consists of general text “Dear” and “:” and token “##name##”.
- tokens such as ##name## are replaced by the corresponding value contained in a token list 74 .
- a finished personalized message would essentially resemble the sample template above, except all tokens are replaced with respective token values.
- tokens can be either global or local. In the instant example, global tokens are not represented differently from local tokens 256 . Thus, the status of a token in the instant example cannot be ascertained simply by reading the template.
- the status of a token is ascertained by resolving the token.
- the token “##name##” can be either global or local.
- global tokens 250 and local tokens 256 cannot be differentiated without resolving token values.
- global tokens 250 and local tokens 256 are labeled differently in the template 72 itself.
- global tokens 250 and local tokens 256 are represented in the same format, as in the above example, but marked by some signal indicating whether the token is global or local.
- a template 72 can also contain recursive tokens.
- An example of a recursive token is a token that references a subtoken, e.g. a token referenced by another token.
- the subtoken itself can be another recursive token that references yet another subtoken.
- the token “## ⁇ id.Offer##” on line 8 of the instant example represents a recursive token that implies the value of the subtoken “Offer” within the value of the “id” token.
- recursive global tokens can only reference other global tokens and recursive local tokens can only reference other local tokens. In other embodiments, recursive global tokens can reference local tokens and recursive local tokens can reference global tokens.
- the header of a template 72 is specified in the beginning of the message.
- the header information can go into the header or text of the personalized messages or can be left out of the personalized messages completely (e.g. used only for processing purposes).
- the message header starts at line 1 of the template message and ends with blank line 4 following the phrase “Content-type: text/html” on line 3. It is important to note that the end of the message headers can be denoted in a variety of ways, such as a specific ASCII character or sequence of characters, or at a fixed number of bits or bytes from the beginning of the file storing the message.
- the template 72 represented above represents only one example of a template in accordance with an embodiment of the present disclosure. Content, organization, and format of the template can vary and still be within the scope of the present disclosure.
- the exemplary token list 74 above contains tokens and corresponding token values.
- the token values can be numbers, text, or tokens themselves. For example, tokens—“MailingID,” “1 Offer,” “2 Offer,” and “3 Offer”—correspond to token values—“1235,” “This is a car offer for ##Name## based on id: ##id##.,” “This is a motorbike offer for ##Name## based on id: ##id##.,” and “This is a Toy offer for ##Name## based on id: ##id##.”—respectively.
- a database or data repository 44 contains target recipient information in, for example, record-level form.
- each record in database 44 contains information about a target recipient.
- Each record contains values for local tokens in a pre-defined format.
- each record 46 uses the format “email::id::Name,” with “::” as delimiters, to represent values for the tokens “email,” “id,” and “Name.”
- the first record in the above sample database contains the value “a@a.com” for the token “email.”
- Database or data repository records 46 can take any number of forms using a variety of formats in accordance with embodiments of the present disclosure.
- sample template 72 sample token list 74
- sample database 44 sample database 44
- step 2 Pre-process message template at the global level:
- step 3 Pick first record a@a.com::2::A and start personalization.
- step 4. Flush the Local cache.
- step 5 Pick the second record t@t.com::1::T and start personalization.
- step 6 Flush the Local cache.
- the exemplary algorithm above utilizes two levels of cache, a global cache 248 and a local cache 254 , in accordance with an embodiment of the present disclosure.
- the global cache stores tokens that can be resolved in the deepest form using the token list 74 .
- the local cache stores tokens that can only be fully resolved using record level information from the database 44 .
- step one of the exemplary algorithm the initial state, both global and local caches are empty.
- step two of the exemplary algorithm the template 72 is tokenized at the global level. This means that any global tokens identified in the template are stored in the global cache 248 along with the corresponding values listed in the token list.
- the token “##MailingID##” is a global token. From the sample token list, “##MailingID##” has a token value of “1235.” Thus, the global token “##MailingID##” and its corresponding value “1235” is stored in global cache 248 as “[MailingID]:[1235].” Token/value pairs can be stored in a variety of formats. The format shown above in step two of the sample algorithm represents just one example of a stored entry in global cache 248 . After step two of the sample algorithm, the tokenized template 72 looks like the following:
- a record a@a.com::2::A is chosen for personalization.
- Local tokens “email,” “Name,” “id,” “2Offer,” and “ ⁇ id.Offer” and corresponding values are added to local cache 254 .
- the tokens “2Offer” and “ ⁇ id.Offer” have the same corresponding value. In some embodiments, two tokens can have the same value. It is important to note that the token “2Offer” is also added to global cache 248 .
- “2Offer” is a global token (the value was resolved using the token list and is not necessarily specific to a particular record), it is also a local token because it could not have been resolved without reference to a record.
- “2Offer” could not have been resolved in step 2 because “2Offer” is a global subtoken of recursive token “ ⁇ id.Offer,” which is dependent upon local token “id.” It is worth noting that “2Offer” has a corresponding value that is non-target specific in global cache 248 and a corresponding value that is target specific in local cache 254 .
- global cache entries can be added in step 2 and in step 3.
- global cache entries can be added any in any step or can be limited to be added only in certain steps. It is worth noting that the order or time of entry is not important.
- step three the message is fully personalized with respect to record a@a.com::2::A.
- the personalized message is then sent to a@a.com or saved into memory for sending later.
- the fully personalized message after step 3 is presented below.
- step four the local cache 254 is flushed.
- step five a second record t@t.com::1::T is chosen and the personalization process is repeated with respect to the second record.
- the global cache 248 is not flushed and additional global tokens, e.g. “1Offer,” are added in addition to tokens added from previous steps.
- step six the local cache 254 is once again flushed. Since the sample database 44 only contains two records, the process ends after step 6. Otherwise, another record is chosen and the personalization process is repeated for any additional record remaining. As a secondary example, the personalized message for record t@t.com::1::T is reproduced below.
- the example above represents an example of a finished personalized message product in accordance with embodiments of the present disclosure.
- the exemplary personalized message no longer contains any tokens. All global and local tokens have been replaced with token values and hence the message is personalized and complete.
- the message personalization process can be optimized using two levels of cache, e.g. a global cache 248 and a local cache 254 .
- One advantage of having two levels of cache is more efficient use of smaller cache sizes. Because each target recipient has personalization information that only pertains to that particular recipient, e.g. a name or email address, the personalization information is no longer useful once a message has been personalized for that target recipient. Therefore, an exemplary local cache 254 stores the personalization information for a particular target recipient until the message personalization process is completed and then flushes its contents to free up memory space for personalization information of the next target recipient. Without a second, e.g.
- target recipient data repository 44 consists of external files and databases. Such external files or databases can, for example, be at one or more locations that are addressable by message personalization module 244 via network/Internet 34 .
- a mailing can refer message personalization module 244 to a specific URL address in order to obtain all or a portion of the data belonging to any of the aforementioned information elements.
- the mailing there is no requirement that the mailing have more than one final recipient. In fact, in some instances there is only one final recipient. For example, in the exemplary mailing above, rather than having steps four through six, the algorithm stops after step three. In some other embodiments, the mailing necessitates more than one final recipient. In those cases, the algorithm would proceed as disclosed in the example above.
- a user may utilize embedded tokens in a template 72 to obtain customized data from different resources.
- a menu choice such as those observed for a typical My Yahoo interface, is provided so that the user may choose to include relevant information by selecting to turn on one or more of the token features, which are then incorporated into the template.
- a graphical user interface that includes menu choices may be employed by a user in order to construct a mailing.
- the mailing may be sent from one computer to one or more other computers.
- client 10 may be a part of the built-in computer system associated with a refrigeration unit that sends out mailings in response to certain events, e.g., the quantity of milk supply in the refrigerator. When the milk supply drops below a predetermined level, client 10 originates and sends out a mailing.
- the mailing is sent to, for example, exml@xyz.com, the address of module 244 .
- Module 244 processes the mailing and sends personalized messages to the target recipients 206 .
- Module 244 is hosted by server 202 .
- server 202 hosts a website of a grocery store and has access to one or more grocery databases.
- Module 244 processes the mailing and extracts relevant information out of the grocery databases to generate a personalized message to be posted on the web site or a separate grocery store database (e.g., recipient 206 ). Product delivery may be arranged accordingly. Alternatively, module 244 processes the mailing and extracts the relevant information out of the grocery database to generate a personalized message that gets sent back to client 10 to compile a grocery list.
- the personalized message contains, for example, price and product information for milk products that are available at the grocery store. In some embodiments, the personalized message also contains additional produce or food or non-food product information that is relevant to the product inquiry (e.g., information on cheese or yogurt products may accompany a milk shortage warning message).
- mailings may be sent from a person for use by a recipient that is a computer itself, as opposed to a person that has access to the computer.
- the originator of a mailing in some embodiments of the present disclosure is a computer, as in the refrigerator example above, not a person, and, in such embodiments, the intended recipient is one or people or one or more computers.
- a blog owner may program a client 10 so that it automatically sends out mailings of the present disclosure to the computer system that hosts the blog (e.g., recipient 206 ).
- the mailing may contain tokens that correspond to, for example, the account ID of the blog owner and topic and general interest information of the blog.
- the mailing is processed by module 244 of recipient system 206 to generate personalized messages that will be posted accordingly on the blog site.
- mailings may be sent from the computer system that maintains the blog site to one or more blog owners.
- Such mailings contain tokens that correspond to, for example, the account ID of the blog owner and topic and general interest information of the blog. Appropriate information may be retrieved from the Internet and composed into personalized messages to each blog user.
- additional modules may be added to the message personalization module (e.g., component 244 ) such that the personalized messages may be converted to voice mails.
- Exemplary text-voice conversion tools include the voice extensible markup language (VoiceXML).
- VoiceXML is designed for creating audio dialogs that feature synthesized speech, digitized audio, recognition of spoken and dual-tone-multi-frequency (DTMF) key input, recording of spoken input, telephony, and mixed initiative conversations.
- DTMF dual-tone-multi-frequency
- a goal of VoiceXML is to bring the advantages of web-based development and content delivery to interactive voice response applications.
- the exemplary mailing illustrated above illustrates the advantages of the present disclosure.
- the language used in the exemplary mailing is used to define a data structure that is delivered to batch e-mail personalization server 202 .
- the mailings contain all the data necessary to obtain personalized messages including both the templates and the token lists. Once constructed, the need to have an IT specialist involved in future communication is obviated. A business development professional simply alters the templates or token lists for new mailings.
- the present invention can be implemented as a computer program product that comprises a computer program mechanism embedded in a computer readable storage medium.
- the computer program product could contain the program modules shown in FIG. 3 and/or FIG. 4 .
- These program modules can be stored on a CD-ROM, DVD, magnetic disk storage product, or any other computer readable data or program storage product.
- the program modules can also be embedded in permanent storage, such as ROM, one or more programmable chip, or one or more application specific integrated circuits (ASICs).
- ASICs application specific integrated circuits
- Such permanent storage can be localized in a server, 802.11 access point, 802.11 wireless bridge/station, repeater, router, mobile phone, or other electronic devices.
- the software modules in the computer program product can also be distributed electronically, via the Internet or otherwise, by transmission of a computer data signal (in which the software modules are embedded) either digitally or on a carrier wave.
Abstract
Description
- Systems and methods for efficient message personalization are provided. More particularly, computer systems and methods for efficient processing and sending of personalized interactive digital messages are provided.
- Electronic mail (e-mail) is an essential network service. Most e-mail systems that send mail over the Internet use simple mail transfer protocol (SMTP) to send messages from one server to another. The messages can then be retrieved with an e-mail client using services such as post office protocol (POP) or Internet message access protocol (IMAP). Other protocols for sending e-mail include POP3, X.400 International Telecommunication Union standard (X.400), and the Novell message handling service (MHS), and extended simple mail transfer protocol (ESMTP). Specifically, X.400 defines a transfer protocol for sending electronic mail between mail servers and is used in Europe as an alternative to SMTP. MHS, which was developed by Novell, is used for electronic mail on Netware networks.
- SMTP transports electronic mail among different hosts within the transmission control protocol/Internet protocol (TCP/IP) suite. Under SMTP, a client SMTP process opens a TCP connection to a server SMTP process on a remote host and attempts to send mail across the connection. The server SMTP listens for a TCP connection on a specific port (25), and the client SMTP process initiates a connection on that port. When the TCP connection is successful, the two processes execute a simple request-response dialogue, defined by the SMTP protocol (see RFC 821 STD 10, Simple mail transfer protocol, August 1982, for details), in which the client process transmits the mail addresses of the originator and the recipient(s) for a message. When the server process accepts these mail addresses, the client process transmits the e-mail instant message. The e-mail message contains a message header and message text (“body”) formatted in accordance with RFC 822 (RFC822 STD 11, Standard for the format of ARPA—Internet Text Messages, August 1982). Mail that arrives via SMTP is forwarded to a remote server or it is delivered to mailboxes on the local server. On UNIX-based systems, Sendmail is the most widely used SMTP server for e-mail. Sendmail includes a POP3 server and also comes in a version for Windows NT. Microsoft Outlook is the most popular mail-agent program on Window-based systems.
- The SMTP model (RFC 821) supports both end-to-end (no intermediate message transfer agents “MTAs”) and store-and-forward mail delivery methods. The end-to-end method is used between organizations, and the store-and-forward method is chosen for operating within organizations that have TCP/IP and SMTP-based networks. A SMTP client will contact the destination host's SMTP server directly to deliver the mail. It will keep the mail item from being transmitted until it has been successfully copied to the recipient's SMTP. This is different from the store-and-forward principle that is common in many other electronic mailing systems, where the mail item may pass through a number of intermediate hosts in the same network on its way to the destination and where successful transmission from the sender only indicates that the mail item has reached the first intermediate hop. The RFC 821 standard defines a client-server protocol. The client SMTP is the one which initiates the session (that is, the sending SMTP) and the server is the one that responds (the receiving SMTP) to the session request. Because the client SMTP frequently acts as a server for a user-mailing program, however, it is often simpler to refer to the client as the sender-SMTP and to the server as the receiver-SMTP. An SMTP-based process can transfer electronic mail to another process on the same network or to another network via a relay or gateway process accessible to both networks. An e-mail message may pass through a number of intermediate relay or gateway hosts on its path from a sender to a recipient.
- A simple model of the components of the SMTP system is shown in
FIG. 1 . Users deal with a user agent (UA). Popular user agents for UNIX include Berkeley Mail, Elm, MH, Pine, and Mutt. The user agents for Windows include Microsoft Outlook/Outlook Express and Netscape/Mozilla Communicator. The exchange of e-mail using TCP is performed by an MTA. The most common MTA for UNIX systems is Sendmail, and a conventional MTA for Windows is Microsoft Exchange 2000/2003. Users normally do not deal with the MTA. It is the responsibility of the system administrator to set up the local MTA. Users often have a choice, however, for their user agent. The local MTA maintains a mail queue so that it can schedule repeat delivery attempts in case a remote server is unable. Also the local MTA delivers mail to mailboxes, and the information can be downloaded by the UA (seeFIG. 1 ). The RFC 821 standard specifies the SMTP protocol, which is a mechanism of communication between two MTAs across a single TCP connection. The RFC 822 standard specifies the format of the electronic mail message that is transmitted using the SMTP protocol (RFC 821) between the two MTAs. As a result of a user mail request, the sender-SMTP establishes a two-way connection with a receiver-SMTP. The receiver-SMTP can be either the ultimate destination or an intermediate one (known as a mail gateway). The sender-SMTP will generate commands, which are replied to by the receiver-SMTP (seeFIG. 1 ). - Both the SMTP client and server have two basic components: UA and local MTA. There are few cases of sending electronic-mail messages across networks. In the first case of communication between the sender and the receiver across the network (see
FIG. 1 ), the sender's UA prepares the message, creates the envelope, and puts message in the envelope. The MTA transfers the mail across the network to the TCP-port 25 of the receiver's MTA. In the second case of communication between the sending host (client) and the receiving host (server), relaying could be involved (seeFIG. 2 ). In addition to one MTA at the sender site and one at the receiving site, other MTAs, acting as client or server, can relay the electronic mail across the network. This third scenario of communication between the sender and the receiver can be accomplished through the use of an e-mail gateway, which is a relay MTA that can receive electronic mail prepared by a protocol other than SMTP and transform it to the SMTP format before sending it. The e-mail gateway can also receive electronic mail in the SMTP format, change it to another format, and then send it to the MTA of the client that does not use the TCP/IP protocol suite. In various implementations, there is the capability to exchange mail between the TCP/IP SMTP mailing system and the locally used mailing systems. These applications are called mail gateways or mail bridges. Sending mail through a mail gateway may alter the end-to-end delivery specification, because SMTP will only guarantee delivery to the mail-gateway host, not to the real destination host, which is located beyond the TCP/IP network. When a mail gateway is used, the SMTP end-to-end transmission is host-to-gateway, gateway-to-host or gateway-to-gateway; the behavior beyond the gateway is not defined by SMTP. - E-mail across SMTP, or the other protocols referenced above, is used extensively today to communicate relevant personalized information. For example, a company needs to frequently communicate to each of its numerous consumers with relevant personalized e-mail. In such a situation, companies often maintain information specific to each of its customers or clients in a data repository, such as customer databases, data files, customer relationship management (CRM) systems, and the like. One approach for communicating with all of these customers is to send personalized individual, batch, or bulk e-mail through an e-mail distributor or high-throughput mail transfer agent (MTA) system.
- A mail transfer agent or MTA (also called a mail server, or a mail exchange server in the context of the Domain Name System) is a computer program or software agent that transfers electronic mail messages from one computer to another. Webster's New World Computer Dictionary, tenth edition, Wiley Publishing Inc., Indianapolis, Ind., defines an MTA as an e-mail program that sends e-mail messages to another message transfer agent. An MTA can handle large amounts of mail, can interact with databases in many formats, and has extensive knowledge of the many SMTP variants in use. Examples of high-throughput MTA systems are disclosed in U.S. patent application Ser. No. 10/857,601, entitled “Email Delivery System Using Metadata,” filed May 27, 2004 as well as U.S. patent application Ser. No. 10/777,336, entitled “Email Using Queues in Non-persistent memory,” filed Feb. 11, 2004, each of which is hereby incorporated by reference in its entirety. One example of an MTA system is the StrongMail MTA (Redwood Shores, Calif.). Conventional MTA programs include, but are not limited to, sendmail, qmail, Exim, and Postfix.
- High-throughput MTA systems such as those described above are more powerful than conventional MTA programs. Both high-throughput and conventional MTA products can send out messages to a plurality of recipients. However, while functional, existing MTA systems are unsatisfactory. To illustrate why, consider the case in which company A wishes to communicate with existing or past customers. The company maintains a record of each of these customers in a company database. Such records may contain personalized information about each of the customers. Company A wishes to use this information in order to customize each of the e-mails. To accomplish this, a method for accessing the customer information in the database needs to be arranged. Separately, the design of the e-mail that will be sent to each customer in the distribution list needs to be created. Therefore, at a minimum, what is needed is coordination between an information technology (IT) specialist and a business development professional in order to configure data from one or more sources to create messages to be delivered using the MTA distribution.
- An IT specialist is consulted in order to provide a secure method for querying the database containing customer information. For instance, the IT specialist might set up an account with limited database privileges as well as construct scripts with customized database queries in order to obtain the information for each customer. At a minimum, such information will include an e-mail address for each customer. In more powerful examples, the names of the customers are identified, as well as other information such as the types of products the customer has bought in the past, geographic information, information about the customer payment history, how often the customer buys products, how much product the customer buys, and so forth. Thus, it is clear that an IT specialist is needed in conventional MTA based distribution efforts each time a business development professional designs a new e-mail for distribution using an MTA. The role of the business development professional is to optimize the persuasiveness and effectiveness of the customized MTA distribution. The work of the business development professional involves choosing fonts, color schemes and art that will be used in the customized e-mail sent to a plurality of recipients. The work of the business development professional further involves making decisions about which customers will receive a customized e-mail. The business development professional can, for example, select customers as a function of geographic region, amount of product bought from the company during a predetermined time period, etc. Thus, close coordination between the business development professional and the IT specialist is needed for each business development project that involves the distribution of customized electronic messages using an MTA.
- The business development example provided above is just one example of the many applications that can be implemented using e-mail. Other applications include providing secure custom statements (e.g., banking statements), person-to-person customized e-mail, traceable e-mails, e-mails from customer service to existing customers, e-mails from an employer to an employee, etc. However, conventional user agents do not provide satisfactory methods for supporting such features. As the example above shows, complex steps are necessary in order to support such applications. Accordingly, given the above background, what are needed in the art are improved systems and methods for generating and sending personalized e-mail messages for distribution.
- Discussion or citation of a reference herein will not be construed as an admission that such reference is prior art to the present disclosure.
- The present disclosure addresses many of the shortcomings and drawbacks found in the prior art. In the present disclosure, systems and methods are provided for building personalized messages to one or more recipients. In one aspect, one or more personalized messages are created from a mailing comprising one or more templates and one or more token lists. The templates include global tokens and local tokens. The token lists contain the tokens in the templates and corresponding token values. For each respective target recipient, a personalized message is generated by identifying and storing global tokens and corresponding global token values in a global cache, and identifying and storing local tokens and corresponding local token values in a local cache. The personalized messages are then created using the templates and substituting tokens with token values stored in the global and local cache. The personalized messages are then distributed to the corresponding target recipients.
- In one aspect of the present disclosure, a computing device is provided for building a plurality of personalized messages from a mailing without human intervention. The mailing uses one or more templates and one or more token lists. Each template comprises a set of global tokens, and each template comprises a set of local tokens. The computing device comprises a processor and a memory. The memory stores a global cache and a local cache and, for each respective target recipient in a plurality of target recipients, the memory comprises instructions for execution by a processor. The instructions include:
- (a) identifying, in a template designated for the respective target recipient in the one or more templates, one or more global tokens not found in the global cache; (b) obtaining, for each global token in the one or more global tokens identified in (a), a corresponding global token value from the one or more token lists, each token list in the one or more token lists including one or more global tokens in the plurality of global tokens and corresponding global token values; (c) storing in the global cache, the one or more global tokens identified in (a) and their corresponding global token values obtained in (b); (d) storing in the local cache one or more local tokens in the template designated for the respective target recipient and corresponding local token values when the one or more local tokens are not present in the local cache; and (e) building a personalized message from the template designated for the respective target recipient by substituting global tokens in the template designated for the respective recipient with global token values stored in the global cache and substituting local tokens in the template designated for the respective recipient with local token values associated with the respective target recipient that are stored in the local cache, thereby building the plurality of personalized messages, wherein each personalized message in the plurality of personalized messages corresponds to a target recipient in a plurality of target recipients.
- Yet in another aspect of the present disclosure, a computer system is disclosed for building a plurality of personalized messages from a mailing without human intervention. The mailing uses one or more templates and one or more token lists. Each template in the one or more templates comprises a set of global tokens, and each template in the one or more templates comprises a set of local tokens. The computer system comprises one or more processors and one or more memory, wherein, the one or more memory storing a global cache and a local cache, wherein, for each respective target recipient in the plurality of target recipients, the one or more memory comprise instructions, executable by the one or more processors, for: (a) identifying, in a template designated for the respective target recipient, one or more global tokens not found in the global cache; (b) obtaining, for each global token in the one or more global tokens identified in (a), a corresponding global token value from the one or more token lists, each token list in the one or more token lists including one or more global tokens in the plurality of global tokens and corresponding global token values; (c) storing in the global cache, the one or more global tokens identified in (a) and their corresponding global token values obtained in (b); (d) storing in the local cache one or more local tokens in the one or more templates and corresponding local token values when the one or more local tokens are not present in the local cache; and (e) building a personalized message from the template designated for the respective target recipient by substituting global tokens in the template designated for the respective target recipient with global token values stored in the global cache and substituting local tokens in the template designated for the respective target recipient with local token values associated with the respective target recipient that are stored in the local cache, thereby building the plurality of personalized messages, wherein each personalized message in the plurality of personalized messages corresponds to a target recipient in the plurality of target recipients.
- Yet in another aspect of the present disclosure, a non-transitory computer readable medium comprising instructions to perform a method for building a plurality of personalized messages from a mailing without human intervention is disclosed. The mailing uses one or more templates and one or more token lists, wherein each template in the one or more templates comprises a subset of global tokens in a plurality of global tokens, and each template in the one or more templates comprises a subset of local tokens in a plurality of local tokens. The method is performed by one more processors and one or more memory, the one or more memory storing a global cache and a local cache wherein, for each respective target recipient in the plurality of target recipients, the method comprises:
- (a) identifying, in a template designated for the respective target recipient in the one or more templates, one or more global tokens not found in a global cache; (b) obtaining, for each global token in the one or more global tokens identified in (a), a corresponding global token value from the one or more token lists, each token list in the one or more token lists including one or more global tokens in the plurality of global tokens and corresponding global token values; (c) storing in the global cache, the one or more global tokens identified in (a) and their corresponding global token values obtained in (b); (d) storing in the local cache one or more local tokens in the template designated for the target recipient and corresponding local token values when the one or more local tokens are not present in the local cache; and (e) building a personalized message from the one or more templates for the respective target recipient by substituting global tokens in the template designated for the target recipient with global token values stored in the global cache and substituting local tokens in the template designated for the target recipient with local token values associated with the respective target recipient that are stored in the local cache, thereby building the plurality of personalized messages, wherein each personalized message in the plurality of personalized messages corresponds to a target recipient in the plurality of target recipients.
- In some embodiments, the present disclosure comprises flushing the local cache after building a first personalized message in a plurality of personalized messages and before building a second personalized message in the plurality of personalized messages. In some embodiments, the method occurs during load time. In some embodiments, the method further comprises sending each respective personalized message in a plurality of personalized messages to a corresponding target recipient. In some embodiments, the steps of the method are performed on a server. In some embodiments, the local token values stored in local cache are retrieved from a data repository of target recipient records and information. In some embodiments, the local token values stored in local cache are retrieved from a local token list received from a client computer. In some embodiments, the one or more templates are received from a client computer. In some embodiments, the one or more token lists in are received from a client computer. In some embodiments, global token values or local token values are themselves tokens or subtokens. In some embodiments, the personalized messages can be e-mail, SMS, FAX, IM, social network posts, voice, or any other digital communication process.
-
FIG. 1 is the basic simple mail transfer protocol (SMTP) model in accordance with the prior art. -
FIG. 2 is the simple mail transfer protocol (SMTP) model with relay mail transfer agents in accordance with the prior art. -
FIG. 3 is a schematic diagram of a client computer system for sending template messages and lists for a mailing in accordance with an embodiment of the present disclosure. -
FIG. 4 is a schematic diagram of a system according to the present disclosure for generating personalized messages for a mailing. -
FIG. 5 is a flowchart depicting a method of creating and sending personalized messages to one or more intended recipients using templates and token lists in accordance with an embodiment of the present disclosure. - Like reference numerals refer to corresponding parts throughout the several views of the drawings.
- The present disclosure encompasses systems and methods for efficient message personalization for mailings. In a mailing, a client sends a set of template messages (templates), along with a set of token lists, to a processing module. The processing module then generates a customized or personalized message using data from a data repository or any other data source. The personalization process is optimized using a global cache and a local cache to store token definitions and values. Once the personalized message is generated, the personalized message is sent to corresponding target recipients using a standard email protocol. For a general reference regarding e-mail protocols, see Hughes, 1998, Internet E-mail: Protocols, Standards, and Implementation, Artech House Publishers, which is hereby incorporated herein by reference in its entirety.
-
FIG. 3 details an exemplary system that supports the functionality described above. The system is preferably acomputer system 10 having: -
- a
central processing unit 22; - a main
non-volatile storage unit 14, for example, a hard disk drive, for storing software and data, thestorage unit 14 controlled bycontroller 12; - a
system memory 36, preferably high speed random-access memory (RAM), for storing system control programs, data, and application programs, comprising programs and data loaded fromnon-volatile storage unit 14;system memory 36 may also include read-only memory (ROM); - a
user interface 32, comprising one or more input devices (e.g., keyboard 28) and adisplay 26 or other output device; - a
network interface card 20 or other communication circuitry for connecting to any wired or wireless communication network 34 (e.g., the Internet or any other wide area network); - an
internal bus 30 for interconnecting the aforementioned elements of the system; and - a
power source 24 to power the aforementioned elements.
- a
- Operation of
computer 10 is controlled primarily by operatingsystem 40, which is executed bycentral processing unit 22.Operating system 40 can be stored insystem memory 36. In addition tooperating system 40, in a typical implementation,system memory 36 can include one or more of the following: -
-
file system 42 for controlling access to the various files and data structures used by the present disclosure; - a target
recipient data repository 44 including a plurality of target recipient records 46, eachtarget recipient record 46 corresponding to a particular target recipient, for example, data related to target recipient name 48, account information 50, financial records 52, and other target recipient data 54; - other data repositories, databases or
data structures 56, includingrecords 58 which may be resident inmemory 36 or addressable bysystem 10 through a network connection, storage media interface, or the like; - an
e-mail client 60 for sending templates or token lists to a personalization module on a remote computer (server) using a data network and/or Internet; -
optional message tools 62 to aid in generatingtemplates 72 or token lists 74; - an optional target recipient
relationship management module 70; and -
templates 72 and token lists 74 to be sent to server 202 for message personalization.
-
- As illustrated in
FIG. 3 ,computer 10 comprises software program modules and data structures. The data structures stored incomputer 10 include, for example, targetrecipient data repository 44 and one or more other databases 56 (e.g., an enterprise resource planning database, a human resource database, a supply chain database, etc.). In some embodiments, targetrecipient data repository 44 is replaced and/or supplemented with other forms of customization data such a site-specific maps, weather, specific forms on news, market data, conference room availability, etc. In some embodiments, such customization data is in addition to targetrecipient data repository 44. Each of these data structures can comprise any form of data storage including, but not limited to, a flat ASCII or binary file, an Excel spreadsheet, a relational database (SQL), or an on-line analytical processing (OLAP) database (MDX and/or variants thereof). In some embodiments, targetrecipient data repository 44,optional databases 56, and target recipientrelationship management module 70 are not housed onclient 10, but rather are housed on a separate server and/or are located on computers that are in electronic communication with such a server. - In some embodiments, each of the aforementioned data structures that are stored on or are accessible to
system 10 is a single data structure. In other embodiments, such data structures, in fact, comprise a plurality of data structures (e.g., databases, files, archives) that may or may not all be hosted bycomputer 10. For example, in some embodiments,repository 44 comprises a plurality of structured and/or unstructured data records that are stored either oncomputer 10 and/or on computers that are addressable bycomputer 10 across network/Internet 34. - In some embodiments,
data repository 44 and/ordatabase 56 comprises a database that is either stored oncomputer 10 or is distributed across one or more computers that are addressable bycomputer 10 by network/Internet 34. Thus, in some embodiments, one or more of such data structures is hosted by one or more remote computers (not shown). Such remote computers can be located in a remote location or in the same room or the same building ascomputer 10. As such, any arrangement of the data structures and software modules illustrated inFIG. 3 on one or more computers is within the scope of the disclosure so long as these data structures and software modules are addressable bycomputer 10 across network/Internet 34 or by other electronic means. Moreover, other systems, application modules and databases not shown inFIG. 3 can be stored insystem memory 36. Thus, the present disclosure fully encompasses a broad array of computer systems. - In some embodiments,
client computer 10 is used to storetarget recipient data templates 72 and token lists 74 for target mailings, and to send the templates and the token lists to a personalization module on a remote computer. In some embodiments,templates 72 are skeletons for generating personalized messages containing text common to all generated personal messages per mailing and fields called tokens. Templates contain two types of tokens; global and local. - Global tokens are fields in the template that are non-target-specific. In other words, global tokens are fields that do not pertain to a particular target. For example, a global token “##Holiday##” may correspond to the value “Happy Holidays,” which is non-target-specific because “Happy Holidays” can apply to multiple target recipients. By contrast, local tokens, also known as record level tokens, are fields that are specific to a particular target of a mailing. For example, the local token “##name##” may correspond to the value “Jeff,” which is specific to the particular target recipient, Jeff. Thus, global tokens in general correspond to the same values for different target recipients, whereas local tokens correspond to different values for different target recipients.
- Global tokens and their corresponding values are listed in token lists 74. Local tokens and their corresponding values are stored in target
recipient data repository 44 and/ordatabase 56 and/orCRM 70 and/or other sources of customization data (e.g., maps, weather). In addition, in some embodiments, local tokens are not stored in data repositories or databases, but rather on the same token list as global tokens or on a separate token list for local tokens. In some embodiments, a mailing contains data for a single digital message for a single recipient. In other embodiments, a mailing comprises data for a plurality of personalized messages each intended for a different recipient. In still other embodiments, a mailing comprises data for a plurality of personalized messages each intended for the same or different recipient. Such personalized messages can be distributed by e-mail, SMS, FAX, IM, voice, or any other digital communication process. However, in preferred embodiments, the personalized messages are e-mail messages. - In some embodiments,
e-mail client module 60 is used to send the mailing. In some embodiments, the mailing is constructed using text editing functionality directly provided byclient 60. In other embodiments,optional message tools 62 are provided to assist in the creation of the mailing. Such message tools can include, for example, a graphical user interface (GUI) driven XML and/or HTML editor for designing the appearance of customized e-mails for distribution. In such embodiments, message tools reducing the image produced using the GUI to a set of commands for inclusion in the mailing. Although SMTP is used to introduce and illustrate the concepts of the present disclosure, the scope of the disclosure is not limited to SMTP. For example, extended simple mail transfer protocol (ESMTP) has been developed to meet the increasing demands of attaching various types of files to e-mails. ESMTP specifies additional extensions to the original protocol for sending e-mail that supports graphics, audio and video files, and text in various national languages. Other examples of mail protocols that can be used to send a mailing to a server include, but are not limited to, POP3, X.400, or MHS protocols or logical variants thereof (e.g., e-mail messages sent using programs similar to or derived from POP3, X.400, or MHS). - In some embodiments the mailing is compliant with one of the aforementioned e-mail protocols and is encoded in the XML language. XML is described in, for example, Ray, Learning XML, second edition, O'Reilly Associates; Harold and Means, XML in a Nutshell, third edition, O'Reilly Associates; and Hunter et al., Beginning XML, third edition, Wrox, each of which is hereby incorporated herein by reference in its entirety.
- Now that an overview of a client system in accordance with one embodiment of the present disclosure has been described, various advantageous methods that can be used in accordance with the present disclosure will now be disclosed in conjunction with
FIGS. 4 and 5 . -
FIG. 4 shows an embodiment of asystem 200 in accordance with the present disclosure. Referring toFIG. 4 , in an embodiment in accordance with the present disclosure,user computer 10 is used to generate a mailing comprising templates and token lists.User computer 10 further sends the mailing to message assembly server 202. In the embodiment illustrated inFIG. 4 , server 202 includes conventional MTA functionalities in addition to the functionalities of the present disclosure. In other embodiments, server 202 includes functionality for distributing other forms of digital communication such as SMS, FAX, IM, or voice mail. The server 202 illustrated inFIG. 4 comprises: -
- a
CPU 222; - a main
non-volatile storage unit 214 controlled bycontroller 212; - a
system memory 236, preferably high speed random-access memory (RAM), for storing system control programs such asoperating system 240 andfile system 242, data and application programs loaded fromnon-volatile storage unit 214;system memory 236 may also include read-only memory (ROM); - an
optional user interface 232, comprising one or more input devices (e.g., keyboard 228) and adisplay 226 or other output device; - a
network interface card 220 or other communication circuitry for connecting to any wired or wireless communication network and/orInternet 34; - an
internal bus 230 for interconnecting the aforementioned elements of the system; and - a
power source 224 to power the aforementioned elements.
- a
- In some
embodiments system memory 236 further comprises: -
- a
message personalization module 244 for processing a mailing from aclient 10 and creating personalized messages specific to each of a plurality of target recipients; - a mail
transfer agent module 246 for sending personalized messages to target recipients; - a
global cache 248 that storesglobal tokens 250 and corresponding global token values 252, and - a
local cache 254 that storeslocal tokens 256 and corresponding local token values 258.
- a
- In some embodiments, information stored in both
global cache 248 andlocal cache 252 is in efficient structured form. In some embodiments, objects in cache contain memory references to tokens pending for complete personalization. In some embodiments, objects in cache know where values of tokens need to be replaced. - Mailings of the present disclosure can be sent, for example, by e-mail from
client 10 to message assembly server 202 when a user desires to have server 202 generate and send one or more personalized messages, such as personalized e-mails, to one or more intended target recipients 206, e.g., clients, customers, potential customers, and/or any other desired target recipients for whom the user has access to personalized data in a data repository 204. - In some embodiments,
message personalization module 244 processes the mailing fromclient 10 and creates personalized messages specific to each target recipient 206. Mailtransfer agent module 246 then sends the personalized messages to target recipients 206. - In some embodiments in accordance with the present disclosure, server 202 is external with respect to client 10 (e.g.,
FIG. 4 ). In some embodiments in accordance with the present disclosure, the personalized messages are sent from server 202. Alternatively, in other embodiments in accordance with the present disclosure, server 202 is an integral part of recipient 206. In still other embodiments in accordance with the present disclosure,client 10 is an integral part of server 202. -
FIG. 5 provides a general overview of amethod 500 for sending personalized messages to intended recipients in accordance with an embodiment of the present disclosure. Instep 502, a user creates a mailing atclient 10. This mailing comprises one ormore templates 72 and one or more token lists 74. In some embodiments, atemplate 72 is a skeleton message including general text to be included in all personalized messages and fields called tokens. The tokens and their values are listed in the token lists 74. Bothtemplates 72 and token lists 74 can include text, markup language (e.g., HTML, WML, BHTML, RDF/XML, RSS, MathML, XHTML, SVG, cXML or XML), or other scripts or objects. In some embodiments, the mailing is created directly usinge-mail client 60 module (FIG. 3 ). In some embodiments, the mailing is created using optional message tools 62 (FIG. 3 ). From here, the present disclosure provides different possibilities (use cases). - In the first use case, the user sends the mailing directly to message assembly server 202 as noted in
step 504 ofFIG. 5 using E-mail client module 60 (FIG. 3 ). The mailings can be specified using standard email protocols, UI Wizard, and Web Service APIs. The mailings can also be sent using standard content upload mechanisms, such as FTP and HTTP file upload. To illustrate this use case, consider a situation in which marketing manager John creates a single mailing in the form of ane-mail using computer 10 ofFIG. 3 that contains a template using tokens and a list of tokens and their values. John sends the mailing using standard OUTLOOK/Exchange (an example of client module 60) to exml@XYZ.com, the electronic address ofmessage personalization module 244. Themessage personalization module 244 interprets the mailing and data in the mailing and creates fully personalized messages, in the form of e-mail, to all the final recipients. - In the second use case, the user sends a mailing to target relationship management module (TRRM) 70 before the mailing is sent to message assembly server 202 in accordance with
step 504 ofFIG. 5 . To illustrate this use case, consider the situation in which marketing manager Debbie decides to make use ofTRRM system 70 ofFIG. 3 . The TRRM system already does some limited personalization. Debbie creates a new mailing template that contains more extensive personalization than the first use case (e.g., by using XML/XSLT). The mailing that Debbie wishes to make can be created in at least two different ways. In one approach, the mailing is created by message tools 62 (e.g., Outlook/Exchange) and sent to TRRM 70 where static TRRM tokens in the mailing are populated. Then, the mailing is sent fromTRRM 70 ofcomputer 10 tomessage personalization module 244 of computer 202. In another approach, the mailing is created directly inTRRM module 70. Regardless of how the mailing is originated, rather than sending the messages encoded by Debbie's mailing directly fromTRRM 70 to one or more recipients, the personalized message is sent to a specific address, e.g., exml@XYZ.com, in this example,message personalization module 244. - In the third use case, the user sends the mailing directly to message assembly server 202 as noted in
step 504 ofFIG. 5 using e-mail client module 60 (FIG. 1 ). The mailing contains multiple levels of information frommultiple templates 72 and multiple token lists 74. To illustrate this use case, consider a situation in which sales manager Mark createsmultiple EXML templates 72 usingcomputer 10 ofFIG. 3 and multiple token lists 74. Mark then sends the mailing using standard Outlook/Exchange (an example of E-mail client 60) to exml@XYZ.com, the address ofmessage personalization module 244. For each target recipient, a personalized message is created using some or all of the templates and token lists.Message personalization module 244 pre-processes thetemplates 72, substitutes the tokens with token values, and sends fully personalized messages (e.g. personalized e-mails) to one or more final recipients. - Referring to step 506, regardless of which use case is employed in preceding steps,
message personalization module 244 on server 202 pre-processes thetemplates 72 sent byclient 10 in order to create personalized messages. In one embodiment,message personalization module 244 creates a new message and copies text over from thetemplates 72. In another embodiment,message personalization module 244 simply merges and modifies theoriginal templates 72. - Referring to step 508,
message personalization module 244 identifies and storesglobal tokens 250 and corresponding global token values 252 inglobal cache 248.Global tokens 250 are tokens which can be resolved using the token lists 74. In this case, resolving a token means determining the value of the token and replacing the token with the determined token value. If the token is intoken list 74, the value of the token is also intoken list 74 and thus is known. For example, a token “##MailingID##” in atemplate 72 can be resolved by looking up “##MailingID##” in a token list 72-1. If “##MailingID##” can be found in token list 72-1, then the value of token “##MailingID##,” can also be found in token list 72-1 and is thus known. Since the value of “##MailingID##” is known from token list 72-1, “##MailingID##” is a global token. Once identified, global tokens and their values are stored inglobal cache 248. In some embodiments,global cache 248 is a part ofmemory 236. In other embodiments,global cache 248 is separate frommemory 236. Storing global tokens and their corresponding values inglobal cache 248 allows for quick access to the token values when personalizing the messages. - Referring to step 510,
message personalization module 244 on server 202 also identifies and storeslocal tokens 256 and their corresponding values inlocal cache 254.Local tokens 256 are tokens that can be resolved only by retrieving record level information from targetrecipient data repository 44 orother databases 56. Record level information is any information pertaining to target recipients. For example, if token “##name##” can only be resolved by retrieving target recipient record 46-1 in targetrecipient data repository 44, then “##name##” is a local token and it and its corresponding value are stored inlocal cache 254. Likeglobal cache 248,local cache 254 can be part ofmemory 236 or completely separate. - Referring to step 512, new personalized messages are created by substituting tokens in the template with token values found in either global 248 or
local cache 254. In someembodiments steps step 512 does not occur beforesteps - After a new personalized message has been created, server 202 forwards the personalized message to the intended target recipient for which the record level data was retrieved from target
recipient data repository 44. Server 202 can send the message through eithermessage personalization module 244 ormail transfer agent 246. The delineation of a separatemessage personalization module 244 andmail transfer agent 246 as two separate modules is for illustrative purposes only. In some embodiments,message personalization module 244 and mailtransfer agent module 246 are contained in the same software program. As such, the description ofmessage personalization module 244 and mail transfer agent module as separate modules is merely provided herein to best illustrate the functionality of the MTAs of some embodiments of the present disclosure. - After sending the personalized message to the target recipient, server 202 repeats the process for a different target recipient until no more target recipients remain. In some embodiments, server 202 repeats the process after sending the personalized message in
step 516. In other embodiments, server 202 repeats the process after creating the new personalized message instep 512 and then sends all the personalized messages to their respective target recipients at once. Still in other embodiments, server 202 sends the personalized messages when the process has repeated for a predefined number of cycles. - Referring to step 514, after a particular personalized message has been created, the
local cache 254 is flushed. Flushing thelocal cache 254 frees up memory space to store local tokens and corresponding values for the personalized message that is to be sent to a different target recipient. In some embodiments,step 514 is optional. In other embodiments of the present disclosure,local cache 254 is not flushed, but rather new local token values 258 that are retrieved with respect to a different target recipient simply replace the old token values 258 for correspondinglocal tokens 256 that are already stored inlocal cache 254 from the previous cycle. - One advantage of the message personalization methods of the present disclosure is that there is no absolute requirement for a specialized user interface in order to create a mailing. For example, one can simply use an application such as Microsoft Outlook, and add lists from a spreadsheet, if desired. In fact, the mailing can be constructed in a simple ASCII editor. In some embodiments, if a user has data in a customer relationship management database (e.g., Siebel or Oracle), enhanced functionality such as tracking, dynamic content, and the like can be utilized and/or incorporated to generate and send personalized messages such as personalized e-mail messages.
- In some embodiments, the systems and methods of the present disclosure provide a user with the ability to encode instructions in the mailing that instruct
message personalization module 244 to access data from, or provide data to, data repositories stored in external systems (e.g.,customer data repository 44 and/orother database 56 or flat file stored by or addressable by computer 202). In other embodiments, server 202 itself contains instructions for retrieval from such data repositories. Such data repositories can include, for example, one or more hierarchical databases, and/or one or more relational databases, and/or one or more other data structures or flat files. As illustrated inFIG. 4 , data can be retrieved or submitted, for example, overnetwork connection 34 or from storage media provided to themessage personalization module 244. InFIG. 4 ,message personalization module 244 can communicate with one or moreexternal databases 402,HTTP web services 404, or TCP/IP web services 406 usingnetwork connection 34. Using the systems and methods of the present disclosure, such resources can be accessed in order to provide secure custom statements (e.g., banking statements), person-to-person customized e-mail, traceable e-mails, e-mails from customer service to existing customers, e-mails from an employer to an employee and the like.Network connection 34 may be wired or wireless andclient 10 is, in some embodiments a portable computer or a tablet computer. - In some embodiments, for data security reasons, access to an entire customer database may be denied. In such embodiments, one or more files containing only the data required to generate the desired messages is made available to
message personalization module 244 and/or mailtransfer agent module 246. - In some embodiments, the mailing includes limited or full access rights to a users' data repository. For example, a mailing can include a command that defines limited or full login rights, limited or full query rights, access to only certain records, fields or files or certain portions of a database or data repository, access for a limited period of time, and the like.
- In some embodiments, certain destinations associated with
message personalization module 244 and/or mailtransfer agent module 246 can be designed to be <EXML> enabled. For example, a particular mailbox called exml@strongmailsystems.com (or exml@mtacompany.com) can be set up so that, when a user sends a mailing to such an address, the request is parsed bymessage personalization module 244 and personalized messages are distributed by mailtransfer agent module 246 based on the product ofmessage personalization module 244 after parsing the EXML message. - In some embodiments, a target recipient
relationship management module 70 ofuser computer 10 has the ability to personalize messages (e.g. personalized e-mails) based on database tokens. In such embodiments,user computer 10 can originate atemplate 72 that contains EXML formatting and data pointer information. In one example, for each digital message (e.g., e-mail) specified bytemplate 72, the First_Name and Account_ID of each customer in a customer list can be represented, for example, as EXML tokens in the body oftemplate 72.Template 72 containing these tokens is then sent to server 202, which then uses advanced parsing techniques to personalize the message (e.g., process as “Dear ##First_Name##, . . . ”) for each target recipient 206. The personalized messages are then sent to each recipient 206 specified by the original mailing. - In another embodiment,
client 10 creates a mailing consisting of a single message (e.g., e-mail). The message contains atemplate 72, the full list of recipients 206, and atoken list 74 for formatting within the message itself. The receiving system 202 receives this single message mailing, then generates one or more outgoing personalized messages (e.g., e-mail, FAXes, IM, voice, etc.) based upon the data contained within the single message mailing itself. - A more detailed example of a
template 72 used in a mailing in accordance with an embodiment of the present disclosure is reproduced below. - Sample message template 72:
-
- 1 X-MailingID: ##MailingID##
- 2 Subject: Hi ##email##
- 3 Content-type: text/html
- 4
- 5 Dear ##name##:
- 6
- 7 This is a sample message. Your offer is:
- 8 ##\id.Offer##
- 9
- 10 Thank You
- The
exemplary template 72 above contains both general text that will remain unaltered during the personalization process and tokens, denoted by ##[token]##. For example, line 5 consists of general text “Dear” and “:” and token “##name##”. As will be discussed later in the present disclosure, during the personalization process, tokens such as ##name## are replaced by the corresponding value contained in atoken list 74. Thus, a finished personalized message would essentially resemble the sample template above, except all tokens are replaced with respective token values. As discussed above, tokens can be either global or local. In the instant example, global tokens are not represented differently fromlocal tokens 256. Thus, the status of a token in the instant example cannot be ascertained simply by reading the template. Rather, the status of a token is ascertained by resolving the token. For example, without a global or local token designation, the token “##name##” can be either global or local. In some embodiments, as in the instant example,global tokens 250 andlocal tokens 256 cannot be differentiated without resolving token values. In other embodiments,global tokens 250 andlocal tokens 256 are labeled differently in thetemplate 72 itself. In still other embodiments,global tokens 250 andlocal tokens 256 are represented in the same format, as in the above example, but marked by some signal indicating whether the token is global or local. - In some embodiments, a
template 72 can also contain recursive tokens. An example of a recursive token is a token that references a subtoken, e.g. a token referenced by another token. The subtoken itself can be another recursive token that references yet another subtoken. For instance the token “##\id.Offer##” on line 8 of the instant example represents a recursive token that implies the value of the subtoken “Offer” within the value of the “id” token. For example, if token “Offer” represents value “This is an offer for ##Name##,” and token “id” represents value “John,” then the recursive token “\id.Offer” represents the value “This is an offer for John.” In some embodiments, recursive global tokens can only reference other global tokens and recursive local tokens can only reference other local tokens. In other embodiments, recursive global tokens can reference local tokens and recursive local tokens can reference global tokens. - In some embodiments, the header of a
template 72 is specified in the beginning of the message. The header information can go into the header or text of the personalized messages or can be left out of the personalized messages completely (e.g. used only for processing purposes). In the instant example, the message header starts atline 1 of the template message and ends with blank line 4 following the phrase “Content-type: text/html” on line 3. It is important to note that the end of the message headers can be denoted in a variety of ways, such as a specific ASCII character or sequence of characters, or at a fixed number of bits or bytes from the beginning of the file storing the message. - The
template 72 represented above represents only one example of a template in accordance with an embodiment of the present disclosure. Content, organization, and format of the template can vary and still be within the scope of the present disclosure. - A more detailed example of a
token list 74 used in a mailing in accordance with an embodiment of the present disclosure is reproduced below. - Sample Token List 74:
-
MailingID=1235 1 { Offer { This is a car offer for ##Name## based on id: ##id##. } } 2 { Offer { This is a motorbike offer for ##Name## based on id: ##id##. } } 3 { Offer { This is a Toy offer for ##Name## based on id: ##id##. } } - The exemplary
token list 74 above contains tokens and corresponding token values. The token values can be numbers, text, or tokens themselves. For example, tokens—“MailingID,” “1 Offer,” “2 Offer,” and “3 Offer”—correspond to token values—“1235,” “This is a car offer for ##Name## based on id: ##id##.,” “This is a motorbike offer for ##Name## based on id: ##id##.,” and “This is a Toy offer for ##Name## based on id: ##id##.”—respectively. - A more detailed example of a
database 56 that can be utilized by a message personalization system in accordance with an embodiment of the present disclosure is reproduced below. - Sample Database 44:
- a@a.com::2::A
- t@t.com::1::T
- As discussed above, a database or
data repository 44 contains target recipient information in, for example, record-level form. In other words, each record indatabase 44 contains information about a target recipient. Each record contains values for local tokens in a pre-defined format. In the above example, each record 46 uses the format “email::id::Name,” with “::” as delimiters, to represent values for the tokens “email,” “id,” and “Name.” For example, the first record in the above sample database contains the value “a@a.com” for the token “email.” Database or data repository records 46 can take any number of forms using a variety of formats in accordance with embodiments of the present disclosure. - Using the
sample template 72, sampletoken list 74, andsample database 44 above, a more detailed example of an algorithm for message personalization that can be utilized by a message personalization system in accordance with an embodiment of the present disclosure is reproduced below. - Sample Algorithm:
-
step 1. Initial state: -
- Global Cache: <empty>
- Local Cache: <empty>
-
step 2. Pre-process message template at the global level: -
- Global Cache: [MailingID]:[1235]
- Local Cache: <empty>
- Template takes following shape
- step 3. Pick first record a@a.com::2::A and start personalization.
-
- Global Cache: [MailingID]:[1235], [2Offer]:[This is a motorbike offer for ##Name## based on id: ##id##.],
- Local Cache: [email]:[a@a.com], [Name]:[A], [id]:[2], [2Offer]:[This is a motorbike offer for A based on id: 2.], [\id.Offer]:[This is a motorbike offer for A based on id: 2.]
- (Message is fully personalized using local cache for repeated tokens in the message.)
- step 4. Flush the Local cache.
-
- Global Cache: [MailingID]:[1235], [2Offer]:[This is a motorbike offer for ##Name## based on id: ##id##.]
- Local Cache: <empty>
- step 5. Pick the second record t@t.com::1::T and start personalization.
-
- Global Cache: [MailingID]:[1235], [2Offer]:[This is a motorbike offer for ##Name## based on id: ##id##.], [1Offer]:[This is a car offer for ##Name## based on id: ##id##.]
- Local Cache: [email]:[t@t.com], [Name]:[T], [id]:[1], [1Offer]:[This is a car offer for T based on id: 1.], [\id.Offer]:[This is a car offer for T based on id: 1.]
- (Message is fully personalized using local cache for repeated tokens in the message.)
- step 6. Flush the Local cache.
-
- Global Cache: [MailingID]:[1235], [2Offer]:[This is a motorbike offer for ##Name## based on id: ##id##.], [1Offer]:[This is a car offer for ##Name## based on id: ##id##.]
- Local Cache: <empty>
- The exemplary algorithm above utilizes two levels of cache, a
global cache 248 and alocal cache 254, in accordance with an embodiment of the present disclosure. The global cache stores tokens that can be resolved in the deepest form using thetoken list 74. The local cache stores tokens that can only be fully resolved using record level information from thedatabase 44. - In step one of the exemplary algorithm, the initial state, both global and local caches are empty.
- In step two of the exemplary algorithm, the
template 72 is tokenized at the global level. This means that any global tokens identified in the template are stored in theglobal cache 248 along with the corresponding values listed in the token list. In the example above, the token “##MailingID##” is a global token. From the sample token list, “##MailingID##” has a token value of “1235.” Thus, the global token “##MailingID##” and its corresponding value “1235” is stored inglobal cache 248 as “[MailingID]:[1235].” Token/value pairs can be stored in a variety of formats. The format shown above in step two of the sample algorithm represents just one example of a stored entry inglobal cache 248. After step two of the sample algorithm, thetokenized template 72 looks like the following: -
- X-MailingID: 1235
- Subject: Hi ##email##
- Content-type: text/html
- Dear ##name##:
- This is a sample message. Your offer is:
- ##\id.Offer##
- Thank You
- In step 3 of the algorithm, a record a@a.com::2::A is chosen for personalization. Local tokens “email,” “Name,” “id,” “2Offer,” and “\id.Offer” and corresponding values are added to
local cache 254. In the above example, the tokens “2Offer” and “\id.Offer” have the same corresponding value. In some embodiments, two tokens can have the same value. It is important to note that the token “2Offer” is also added toglobal cache 248. Although “2Offer” is a global token (the value was resolved using the token list and is not necessarily specific to a particular record), it is also a local token because it could not have been resolved without reference to a record. “2Offer” could not have been resolved instep 2 because “2Offer” is a global subtoken of recursive token “\id.Offer,” which is dependent upon local token “id.” It is worth noting that “2Offer” has a corresponding value that is non-target specific inglobal cache 248 and a corresponding value that is target specific inlocal cache 254. - In the present example, global cache entries can be added in
step 2 and in step 3. In alternative embodiments, global cache entries can be added any in any step or can be limited to be added only in certain steps. It is worth noting that the order or time of entry is not important. - After step three, the message is fully personalized with respect to record a@a.com::2::A. The personalized message is then sent to a@a.com or saved into memory for sending later. The fully personalized message after step 3 is presented below.
- X-MailingID: 1235
- Subject: Hi a@a.com
- Content-type: text/html
- Dear A:
- This is a sample message. Your offer is:
-
- This is a motorbike offer for A based on id: 2.
- Thank You
- In step four, the
local cache 254 is flushed. - In step five, a second record t@t.com::1::T is chosen and the personalization process is repeated with respect to the second record. Note that the
global cache 248 is not flushed and additional global tokens, e.g. “1Offer,” are added in addition to tokens added from previous steps. - In step six, the
local cache 254 is once again flushed. Since thesample database 44 only contains two records, the process ends after step 6. Otherwise, another record is chosen and the personalization process is repeated for any additional record remaining. As a secondary example, the personalized message for record t@t.com::1::T is reproduced below. - X-MailingID: 1235
- Subject: Hi t@t.com
- Content-type: text/html
- Dear T:
- This is a sample message. Your offer is:
-
- This is a car offer for T based on id: 1.
- Thank You
- The example above represents an example of a finished personalized message product in accordance with embodiments of the present disclosure. The exemplary personalized message no longer contains any tokens. All global and local tokens have been replaced with token values and hence the message is personalized and complete.
- As mentioned above, the message personalization process can be optimized using two levels of cache, e.g. a
global cache 248 and alocal cache 254. One advantage of having two levels of cache is more efficient use of smaller cache sizes. Because each target recipient has personalization information that only pertains to that particular recipient, e.g. a name or email address, the personalization information is no longer useful once a message has been personalized for that target recipient. Therefore, an exemplarylocal cache 254 stores the personalization information for a particular target recipient until the message personalization process is completed and then flushes its contents to free up memory space for personalization information of the next target recipient. Without a second, e.g. local, level of cache, either much more memory space would be needed to continually store added personalization information or no cache is used, in which case the processing would be much slower as discussed further below. Another advantage of using two levels of cache is faster processing speed. Without two levels of cache the personalization process would have to be completed with only one cache or no cache at all. With no cache, each token encountered triggers a new look-up of the token value, even if the same token as already been encountered. This leads to repetitive, wasteful, and inefficient processing. With only one cache, as discussed above, the memory space needed would need to be much larger. This would lead to slower reads and writes to the cache and would ultimately reduce processing speed significantly. - The present disclosure places no restrictions on the order that each of the aforementioned steps appear within the algorithm. However, generally speaking, the steps of the algorithm occur in sequence from steps one through six. In other embodiments, other intermediary steps occur at the beginning, middle, or end of the algorithm. There is no requirement that any of the tokens appear in a token list. For example, in some embodiments, the token list can be a null set. There is no requirement for the location of target recipient data repository. For example, in some embodiments, target
recipient data repository 44 consists of external files and databases. Such external files or databases can, for example, be at one or more locations that are addressable bymessage personalization module 244 via network/Internet 34. For instance, in some embodiments, a mailing can refermessage personalization module 244 to a specific URL address in order to obtain all or a portion of the data belonging to any of the aforementioned information elements. - There is no requirement that the mailing have more than one final recipient. In fact, in some instances there is only one final recipient. For example, in the exemplary mailing above, rather than having steps four through six, the algorithm stops after step three. In some other embodiments, the mailing necessitates more than one final recipient. In those cases, the algorithm would proceed as disclosed in the example above.
- In some embodiments in accordance with the present disclosure, a user may utilize embedded tokens in a
template 72 to obtain customized data from different resources. In some embodiments, a menu choice, such as those observed for a typical My Yahoo interface, is provided so that the user may choose to include relevant information by selecting to turn on one or more of the token features, which are then incorporated into the template. In other words, in some embodiments of the present disclosure, a graphical user interface that includes menu choices may be employed by a user in order to construct a mailing. - In some embodiments in accordance with the present disclosure, the mailing may be sent from one computer to one or more other computers. For example,
client 10 may be a part of the built-in computer system associated with a refrigeration unit that sends out mailings in response to certain events, e.g., the quantity of milk supply in the refrigerator. When the milk supply drops below a predetermined level,client 10 originates and sends out a mailing. The mailing is sent to, for example, exml@xyz.com, the address ofmodule 244.Module 244 processes the mailing and sends personalized messages to the target recipients 206.Module 244 is hosted by server 202. In some embodiments, server 202 hosts a website of a grocery store and has access to one or more grocery databases.Module 244 processes the mailing and extracts relevant information out of the grocery databases to generate a personalized message to be posted on the web site or a separate grocery store database (e.g., recipient 206). Product delivery may be arranged accordingly. Alternatively,module 244 processes the mailing and extracts the relevant information out of the grocery database to generate a personalized message that gets sent back toclient 10 to compile a grocery list. The personalized message contains, for example, price and product information for milk products that are available at the grocery store. In some embodiments, the personalized message also contains additional produce or food or non-food product information that is relevant to the product inquiry (e.g., information on cheese or yogurt products may accompany a milk shortage warning message). - In some embodiments in accordance with the present disclosure, mailings may be sent from a person for use by a recipient that is a computer itself, as opposed to a person that has access to the computer. Correspondingly, in some embodiments, the originator of a mailing in some embodiments of the present disclosure is a computer, as in the refrigerator example above, not a person, and, in such embodiments, the intended recipient is one or people or one or more computers. To illustrate one such embodiment, a blog owner may program a
client 10 so that it automatically sends out mailings of the present disclosure to the computer system that hosts the blog (e.g., recipient 206). The mailing may contain tokens that correspond to, for example, the account ID of the blog owner and topic and general interest information of the blog. In some embodiments, the mailing is processed bymodule 244 of recipient system 206 to generate personalized messages that will be posted accordingly on the blog site. Alternatively, mailings may be sent from the computer system that maintains the blog site to one or more blog owners. Such mailings contain tokens that correspond to, for example, the account ID of the blog owner and topic and general interest information of the blog. Appropriate information may be retrieved from the Internet and composed into personalized messages to each blog user. - In some embodiments in accordance with the present disclosure, additional modules may be added to the message personalization module (e.g., component 244) such that the personalized messages may be converted to voice mails. Exemplary text-voice conversion tools include the voice extensible markup language (VoiceXML). VoiceXML is designed for creating audio dialogs that feature synthesized speech, digitized audio, recognition of spoken and dual-tone-multi-frequency (DTMF) key input, recording of spoken input, telephony, and mixed initiative conversations. A goal of VoiceXML is to bring the advantages of web-based development and content delivery to interactive voice response applications.
- The exemplary mailing provided above illustrates the advantages of the present disclosure. The language used in the exemplary mailing is used to define a data structure that is delivered to batch e-mail personalization server 202. The mailings contain all the data necessary to obtain personalized messages including both the templates and the token lists. Once constructed, the need to have an IT specialist involved in future communication is obviated. A business development professional simply alters the templates or token lists for new mailings.
- The present invention can be implemented as a computer program product that comprises a computer program mechanism embedded in a computer readable storage medium. For instance, the computer program product could contain the program modules shown in
FIG. 3 and/orFIG. 4 . These program modules can be stored on a CD-ROM, DVD, magnetic disk storage product, or any other computer readable data or program storage product. The program modules can also be embedded in permanent storage, such as ROM, one or more programmable chip, or one or more application specific integrated circuits (ASICs). Such permanent storage can be localized in a server, 802.11 access point, 802.11 wireless bridge/station, repeater, router, mobile phone, or other electronic devices. The software modules in the computer program product can also be distributed electronically, via the Internet or otherwise, by transmission of a computer data signal (in which the software modules are embedded) either digitally or on a carrier wave. - Many modifications and variations of this invention can be made without departing from its spirit and scope, as will be apparent to those skilled in the art. The specific embodiments described herein are offered by way of example only, and the invention is to be limited only by the terms of the appended claims, along with the full scope of equivalents to which such claims are entitled.
Claims (22)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/595,000 US20150358258A1 (en) | 2012-04-19 | 2015-01-12 | Systems and methods for message personalization |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/451,458 US8935344B2 (en) | 2012-04-19 | 2012-04-19 | Systems and methods for message personalization |
US14/595,000 US20150358258A1 (en) | 2012-04-19 | 2015-01-12 | Systems and methods for message personalization |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/451,458 Continuation US8935344B2 (en) | 2012-04-19 | 2012-04-19 | Systems and methods for message personalization |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150358258A1 true US20150358258A1 (en) | 2015-12-10 |
Family
ID=49381165
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/451,458 Active 2033-07-13 US8935344B2 (en) | 2012-04-19 | 2012-04-19 | Systems and methods for message personalization |
US14/595,000 Abandoned US20150358258A1 (en) | 2012-04-19 | 2015-01-12 | Systems and methods for message personalization |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/451,458 Active 2033-07-13 US8935344B2 (en) | 2012-04-19 | 2012-04-19 | Systems and methods for message personalization |
Country Status (1)
Country | Link |
---|---|
US (2) | US8935344B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160012031A1 (en) * | 2014-07-08 | 2016-01-14 | Bank Of America Corporation | Template-based message generation tool |
US9892420B2 (en) | 2013-10-09 | 2018-02-13 | Selligent, Inc. | System and method for managing message campaign data |
US9998421B2 (en) | 2012-04-19 | 2018-06-12 | Selligent, Inc. | Open channel application programming interface |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8775448B2 (en) * | 2012-04-24 | 2014-07-08 | Responsys, Inc. | High-throughput message generation |
US20140280453A1 (en) * | 2013-03-15 | 2014-09-18 | Southern California Permanente Medical Group | Message Distribution |
US10389671B2 (en) * | 2013-09-12 | 2019-08-20 | W.W. Frainger, Inc. | System and method for providing personalized messaging |
US9430775B2 (en) | 2013-09-17 | 2016-08-30 | Responsys, Inc. | System and method for analyzing and tuning a marketing program |
CN107077691B (en) | 2014-07-14 | 2021-07-13 | 甲骨文国际公司 | Age-based policy for determining database cache hits |
US10277414B2 (en) | 2014-07-18 | 2019-04-30 | Oracle International Corporation | Communication gateway services in a networked message distribution system |
US10565611B2 (en) * | 2014-07-18 | 2020-02-18 | Oracle International Corporation | Controlling real-time execution of internet communication campaigns with parameterizable flow control structures |
US10263927B2 (en) | 2015-12-08 | 2019-04-16 | International Business Machines Corporation | Decluttering general communication message for specific audience |
US9578122B1 (en) * | 2015-12-08 | 2017-02-21 | International Business Machines Corporation | Communicating an E-mail from a sender to a plurality of recipients |
CN114640956B (en) * | 2020-12-15 | 2024-01-19 | 北京金山云网络技术有限公司 | Short message issuing method, device, system and electronic equipment |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835712A (en) * | 1996-05-03 | 1998-11-10 | Webmate Technologies, Inc. | Client-server system using embedded hypertext tags for application and database development |
US20020120697A1 (en) * | 2000-08-14 | 2002-08-29 | Curtis Generous | Multi-channel messaging system and method |
US20070083425A1 (en) * | 2003-01-09 | 2007-04-12 | Cousineau John G | Distributed system enabling integration and automation of marketing, sales and service |
US20070089053A1 (en) * | 2005-10-14 | 2007-04-19 | Uhlig Mark A | Dynamic variable-content publishing |
US20070174398A1 (en) * | 2006-01-25 | 2007-07-26 | Frank Addante | Systems and methods for communicating logic in e-mail messages |
US20090089664A1 (en) * | 2007-09-27 | 2009-04-02 | Sap Ag | Document personalizer |
US20110296391A1 (en) * | 2010-05-28 | 2011-12-01 | Albrecht Gass | Systems and Methods for Dynamically Replacing Code Objects Via Conditional Pattern Templates |
US20130080911A1 (en) * | 2011-09-27 | 2013-03-28 | Avaya Inc. | Personalizing web applications according to social network user profiles |
US8886735B1 (en) * | 2012-02-09 | 2014-11-11 | Google Inc. | Electronic messages using predefined templates |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130046781A1 (en) * | 2011-08-19 | 2013-02-21 | Stargreetz, Inc. | Design, creation, and delivery of personalized message/audio-video content |
-
2012
- 2012-04-19 US US13/451,458 patent/US8935344B2/en active Active
-
2015
- 2015-01-12 US US14/595,000 patent/US20150358258A1/en not_active Abandoned
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835712A (en) * | 1996-05-03 | 1998-11-10 | Webmate Technologies, Inc. | Client-server system using embedded hypertext tags for application and database development |
US20020120697A1 (en) * | 2000-08-14 | 2002-08-29 | Curtis Generous | Multi-channel messaging system and method |
US20070083425A1 (en) * | 2003-01-09 | 2007-04-12 | Cousineau John G | Distributed system enabling integration and automation of marketing, sales and service |
US20070089053A1 (en) * | 2005-10-14 | 2007-04-19 | Uhlig Mark A | Dynamic variable-content publishing |
US8438476B2 (en) * | 2005-10-14 | 2013-05-07 | Uhlig Llc | Dynamic variable-content publishing |
US20070174398A1 (en) * | 2006-01-25 | 2007-07-26 | Frank Addante | Systems and methods for communicating logic in e-mail messages |
US20090089664A1 (en) * | 2007-09-27 | 2009-04-02 | Sap Ag | Document personalizer |
US20110296391A1 (en) * | 2010-05-28 | 2011-12-01 | Albrecht Gass | Systems and Methods for Dynamically Replacing Code Objects Via Conditional Pattern Templates |
US20130080911A1 (en) * | 2011-09-27 | 2013-03-28 | Avaya Inc. | Personalizing web applications according to social network user profiles |
US8886735B1 (en) * | 2012-02-09 | 2014-11-11 | Google Inc. | Electronic messages using predefined templates |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9998421B2 (en) | 2012-04-19 | 2018-06-12 | Selligent, Inc. | Open channel application programming interface |
US9892420B2 (en) | 2013-10-09 | 2018-02-13 | Selligent, Inc. | System and method for managing message campaign data |
US20160012031A1 (en) * | 2014-07-08 | 2016-01-14 | Bank Of America Corporation | Template-based message generation tool |
Also Published As
Publication number | Publication date |
---|---|
US20130282837A1 (en) | 2013-10-24 |
US8935344B2 (en) | 2015-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8935344B2 (en) | Systems and methods for message personalization | |
US8316090B2 (en) | Systems and methods for communicating logic in e-mail messages | |
CN104782094B (en) | The method and apparatus of the associated supplemental information of data for providing with transmitting | |
US9615221B1 (en) | Device message management system | |
US8161125B2 (en) | Message data management | |
US6505233B1 (en) | Method for communicating information among a group of participants | |
US6963904B2 (en) | Method for correlating an electronic mail message with related messages | |
US20020035607A1 (en) | E-mail gateway system | |
US20020156871A1 (en) | Messaging protocol | |
US20010034769A1 (en) | System and method of communicating temporally displaced electronic messages | |
US20030233420A1 (en) | Method and system for content driven electronic messaging | |
US20060116138A1 (en) | Value added services creation (vasc) platform | |
US11729124B2 (en) | Actionable data embedded into emails for automating actions of an email client | |
US10171409B2 (en) | Systems and methods for path optimization in a message campaign | |
US20060095476A1 (en) | Method and system for providing one-to-one email collaboration | |
US20050055413A1 (en) | Method and apparatus for automatically sending away notifications in an email messaging system | |
US8626840B2 (en) | Method and system for generating a referencing secondary electronic mail message from a primary electronic mail message | |
US11470031B2 (en) | Electronic mail format protocol for instructing automatic behavior of electronic devices executing an electronic mail client application | |
Nagel et al. | E-mail Protocols | |
WO2001052081A1 (en) | Methods and systems to manage and track the states of electronic media | |
KR20060022105A (en) | System and method for holding e-mail in common by mail identification information, recording medium | |
JP2003178010A (en) | E-mail system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: STRONGVIEW SYSTEMS, INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:STRONGMAIL SYSTEMS, INC.;REEL/FRAME:036572/0670 Effective date: 20130702 Owner name: STRONGMAIL SYSTEMS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MAYALA, TULSI RAM;VISHWANATHAN, SHRIRAM;REEL/FRAME:036512/0408 Effective date: 20130325 |
|
AS | Assignment |
Owner name: SELLIGENT, INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:STRONGVIEW SYSTEMS, INC.;REEL/FRAME:043999/0754 Effective date: 20160229 |
|
AS | Assignment |
Owner name: AB PRIVATE CREDIT INVESTORS LLC, AS COLLATERAL AGENT, TEXAS Free format text: SECURITY INTEREST;ASSIGNOR:SELLIGENT, INC.;REEL/FRAME:047408/0396 Effective date: 20181105 Owner name: AB PRIVATE CREDIT INVESTORS LLC, AS COLLATERAL AGE Free format text: SECURITY INTEREST;ASSIGNOR:SELLIGENT, INC.;REEL/FRAME:047408/0396 Effective date: 20181105 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |