The present subject matter relates to systems and methods for data integration, compilation, and update of an electronic mail template. More specifically, the present subject matter relates to efficiently repeat grouped components in an email template.
Digital marketing has become a powerful way to promote a business's products and services to its customers. Among digital marketing's various tools, computer-compiled marketing emails can directly deliver the most relevant content to a customer. Such emails can be customized based on the customer's preference and other information. Sometimes, it is necessary to selectively repeat a portion of the content in an email, which can be time consuming to create.
As such, there are a lot of areas for improving the email customization process and optimizing the computer system performance.
The present subject matter describes improved methods for email template compilation via a computer network. The system can enable repeating the content of grouped components, such as a section or a block, for each entry in a designated data array from an event or profile database, or from a data feed. Each of the iterated components can share the same design style but contain individually different content based on the custom variables in the array. Furthermore, the number of the iterated components dynamically corresponds to the number of entries in the designated array as the components are repeated once per item in the array.
Compared with prior approaches, the present subject matter can improve computer and network efficiency by eliminating duplicating and modifying each grouped componentS individually. As the system can dynamically populate iterated sections based on the designated data, it can also improve efficiency in creating the customized email template.
In addition, by relying on multiple custom databases, the system can streamline and optimize the email customization process to create personalized emails, which can match the customer or recipient's interests and the business's goals.
A computer implementation of the present subject matter comprises a method of iterating a section, the method comprises: receiving, at an email customization server, a template comprising a section, a block or grouped components, wherein the section comprises one or more components in a relational database, assigning a plurality of dynamic data entries to be associated with a dynamic component of the one or more components, retrieving the plurality of dynamic data entries from one or more databases for populating the dynamic component, and generating iterated sections based on the plurality of dynamic data entries within the template, wherein each dynamic data entry corresponds to a respective iterated section, and wherein each dynamic data entry is configured to populate one dynamic component in one respective iterated section. The method can further comprise receiving a request to repeat the section within the template based on the plurality of dynamic data entries. According to some embodiments, the plurality of dynamic data entries is an array, i.e., list, of data that stores multiple pieces of data that are structured in the same way. Furthermore, the number of iterated sections corresponds to the quantity of the dynamic data entries in the array.
According to some embodiments, the custom databases comprise a recipient's event database, a customer profile database, a business's product database, or other data feed. According to some embodiments, the one or more components of the sections are multi-level hierarchical components, e.g., rows, columns, and blocks.
Another computer implementation of the present subject matter comprises a method of iterating a section, the method comprises: receiving, at a client device, a template comprising a section, a block or grouped components, wherein the section comprises one or more components in a relational database, assigning a plurality of dynamic data entries to be associated with a dynamic component of the one or more components, retrieving the plurality of dynamic data entries from one or more databases for populating the dynamic component, and generating iterated sections based on the plurality of dynamic data entries within the template, wherein each dynamic data entry corresponds to a respective iterated section, and wherein each dynamic data entry is configured to populate one dynamic component in one respective iterated section. The method can further comprise receiving a request to repeat the section within the template based on the plurality of dynamic data entries. Furthermore, the number of iterated sections corresponds to the quantity of the dynamic data entries in the array.
Other aspects and advantages of the present subject matter will become apparent from the following detailed description taken in conjunction with the accompanying drawings, which illustrate, by way of example, the principles of the present subject matter.
The present subject matter is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which:
The present subject matter pertains to improved approaches for dynamically repeating a portion of a template. Embodiments of the present subject matter are discussed below with reference to
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present subject matter. It will be apparent, however, to one skilled in the art that the present subject matter may be practiced without some of these specific details. In addition, the following description provides examples, and the accompanying drawings show various examples for the purposes of illustration. Moreover, these examples should not be construed in a limiting sense as they are merely intended to provide examples of embodiments of the subject matter rather than to provide an exhaustive list of all possible implementations. In other instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the details of the disclosed features of various described embodiments.
The following sections describe systems of process steps and systems of machine components for efficiently creating a customized template. These can be implemented with computers that execute software instructions stored on non-transitory computer-readable media. An improved template management system can have one or more of the features described below.
According to some embodiments, a template can comprise a body with sections. Sections can be grouped components or content blocks, and can be used to organize the template. According to some embodiments, the grouped components of the sections are multi-level hierarchical components, e.g., rows, columns, and blocks. According to some embodiments, a template comprises at least one section. A block or component is a pre-defined structure that can be represented in both a database and in the email editor. A block can comprise a sub-block. For example, a table block can be a sub-block of a section block, and a table image or table text block can be sub-blocks of a table block. For example, a section can be responsible for the layout and general configuration and the blocks can display the specific products.
According to some embodiments, a section can have a section style, such as background color and image, that span through multiple content blocks. Sometimes, it is needed to generate iterated sections with the same section style. However, the content of the iterated sections varies according to the designated dynamic variables, for example, a list of products a customer has purchased.
For example, the template can be an email template with structures and components that can be modified by a computing device or a client device. The template can comprise nested relational database tables comprising components/blocks, settings, content, and position information for the template. According to some embodiments, the email template can be marketing emails that can directly deliver relevant content to a customer. These marketing emails can be generated by modifying a template email according to various factors such as the specific offering or the customer's previous behavior data.
As shown in
Network 114 can comprise a single network or a combination of multiple networks, such as the Internet or intranets, wireless cellular networks, local area network (LAN), wide area network (WAN), WiFi, Bluetooth, near-field communication (NFC), etc. Network 114 can comprise a mixture of private and public networks or one or more local area networks (LANs) and wide-area networks (WANs) that may be implemented by various technologies and standards.
Email customization server 101 can comprise a number of modules or units to implement functions of the present subject matter. According to some embodiments, Email customization server 101 can implement functions related to network interface 118, section management 120, data population 122, dynamic component 124, and data retrieving 126.
The email customization server 101 can enable repeating the content of a section or a block, for each entry in a dynamic data entries, i.e., array, from a custom database. The system user 106 can compile an Email template that is stored and retrieved from relational database 113. The template can comprise a section that needs to repeat its style. To achieve that, section management 120 can assign an array or a list of data to a dynamic component of the section. An array can store multiple pieces of data that are structured the same way in a custom database. The custom databases can comprise a recipient's event database, a customer profile database, a business's product database, or a business's web data feed.
According to some embodiments, a customer event includes an action the recipient has taken to engage with a business. For at least some embodiments, actions the recipient has taken include one or more of product viewed by the recipient, products purchased by the recipient, onsite action of the recipient, and emails received by the recipient. Such event data can include date/time email was sent and received, the specific email that was received, whether the recipient engaged with the email, etc.
For example, a customer's purchased products can be stored as an array within a Placed Order event in an event database. The items array can contain one entry per item ordered, and each entry contains the details for one item, e.g., item name, image URL, quantity, size, color, etc. The iterated sections, as generated, can share the same design style but each contains different product details, such as item name and image URL. For example, these iterated sections can be included in an order confirmation email to display a customer's purchased item, including a product's image, price, title and variant information.
Other exemplary dynamic iteration of a section can show a customer a list of their active subscriptions in a campaign, which can be generated based on the array of existing subscriptions. Also, it can provide an up-to-date list of a business's most recent blog posts based on the array of recent blog entries from a custom web feed. The dynamic section iteration can be based on any data array stored in a custom database such as a customer's profile database, an event database, or one of the business's web feeds.
To assign a specific data array, the system can prompt the system user 106 to identify the designated data array as dynamic component 124. For example, once the system user 106 selected a section for repeat, the system can prompt the user to identify the data array for iteration via a “Repeat For” filed. In this example of listing a customer's purchased item, the appropriate setting for the Repeat For field can be “event.extra.line_items”.
In addition, the system user 106 can further add dynamic variables to the content block for iteration. For example, “item.variant_price” and “item.title” can be added to enable repeating the block once per item in the array, wherein each repetition can show the title and price of each purchased product.
Upon receiving a request to repeat the sections, the system can retrieve the data entries via data retrieving 126 according to the identified data path and generate corresponding iterated sections via data population 122. As such, everything in the block or section with the iterated sections shall be repeated once per item in the designated array.
As shown in
As such, the system can improve computer and network efficiency by eliminating duplicating and modifying each section individually. By dynamically populating iterated sections based on the designated data, the system can improve the efficiency in creating customized template 301. Furthermore, the system can optimize the email customization process to create personalized emails that match the customer's interests as well as the business's goals
When being rendered as an email, relevant data of the template can be converted into a computer-compiled HTML web page showing the embedded components, such as sections and blocks. According to some embodiments, a component is a pre-defined structure that can be represented in both the relational database and in the email editor, and which can be rendered into HTML and configured by its display settings and sub-components as well as its content. According to some embodiments, the template data can be rendered as an email template in the JSON data structure that can be configured or modified by a computing device or a client device.
As illustrated in
According to some embodiments, the relational database can be a MySQL database or any relational database. Each component of the template can correspond to one or more related tables, which define the structure and content of the component, as well as its relationship with other components.
According to some embodiments, the iterated grouped components can be sections or blocks. According to some embodiments, the iterated grouped components can also be bodies, rows and columns.
The following described embodiments include systems, methods, and apparatuses for email customization. Generally, email recipients receive many emails a day. Therefore, businesses that send email need to capture the attention of the email recipients. A recipient is more likely to engage with the content of received emails if the content is relevant to the recipient. Relevant content can be generated by understanding and tracking how the email recipient engages with branding of the businesses, including determining interests of the email recipient, and determining what specific content the email recipient has engaged with in the past, such as, through a marketing message or through interaction with a website of the business.
For an embodiment, the user modifies the base template by adding or removing blocks in order to create the layout and content of the email message the user wants to send to their recipients (wherein the recipient may be customers of the user). For an embodiment, the layout and content of the email of the customized template may be tailored to the individual recipient using dynamic data. The email sent and received by the customer is rendered according to the blocks and content as designed in the editor by the user.
For an embodiment, the recipient-specific information includes profile properties of the recipient including at least one of name, address. organization name, organization address, age, and/or language.
Dynamic Data
As previously stated, for an embodiment, the customized template is a customer specific template that includes dynamic data that corresponds to recipient-specific information at send-time of the customized email. For an embodiment, using a templating language, e.g., Django, or other methods, the user can specify tags, variables, or other programmatic tools or user interfaces which point to profile properties or event data (actions the recipient took in relation to a previous email message or actions the recipient took on the user's website which has been linked to the email customization system, e.g., Klaviyo, via a Javascript snippet that is embedded on their website) attached to recipient's record within the email customization system. This allows the user to inject this data into their customized template such that when the recipient (customer) receives the email, the message will include data that is individualized and customized to the recipient's experience with the user's brand or company.
For at least some embodiments, the template editor is further configured to receive one or more customer events, and customize the customer specific template, and the customized email based on data obtained from the customer events.
For an embodiment, a customer event includes an action the recipient has taken to engage with a brand/organization of the user. For at least some embodiments, actions the recipient has taken includes one or more of product viewed by the recipient (product information such as pricing, instock status, etc.), product purchased by the recipient (includes product information such as pricing, in-stock status, etc.), onsite action of the recipient (recipient has visited the user's website), emails received by the recipient (recipient has received a previous email from the user; data includes date/time email was sent and received, the specific email that was received, whether the recipient engaged with the email, etc.), and/or engagement by the recipient with an email (email opened, or link within the email clicked).
For an embodiment, the customer event includes a full event (imagine a piece of data that occurs at a certain point in time, for example, when someone (recipient or customer) looks at a product or purchases something) details in the customized email of the customized template.
For at least some embodiments, a customer event includes one or more of the customer active on a website, a bounced email, a cancelled order, a clicked email, a clicked SMS, a consented to receive SMS, a created work order, a dropped email, a failed to deliver SMS, a fulfilled order, a marked email as spam, an opened email, an ordered product, a placed order, a received email, a received SMS, a refunded order, a sent SMS, a started checkout, a subscribed to back in stock, a subscriber list, the customer unsubscribed, the customer unsubscribed from SMS, an updated email preference, and/or a viewed product.
For an embodiment, a customer event is determined through customer tracking. For an embodiment, the customer tracking includes injecting a tracking pixel on an email that is sent to a customer, and detecting by the tracking pixel when the email is opened.
For an embodiment, the customer tracking includes the system operating to append additional parameters onto a URL in an email sent to the customer, and operating to identify and “cookie” the customer when the customer clicks on a link within the email, thereby allowing tracking of the customer selecting the link.
HTTP cookies (also called web cookies, Internet cookies, browser cookies, or simply cookies) are small blocks of data created by a web server while a user is browsing a website and placed on the user's computer or other device by the user's web browser. Cookies are placed on the device used to access a website, and more than one cookie may be placed on a user's device during a session.
In parallel, a fourth step 840 includes establishing a database that includes a library of base templates. A fifth step 850 includes the user selecting templates from the library of templates for generating the customized template. A sixth step 860 includes the user customizing selected base templates to create the customized template using the template editor canvas.
A seventh step 870 further includes the user selecting to add dynamic data to the customized template. If dynamic data is to be used or added to the customize template, then steps 890, 892, 896 all include recipient actions that are identified and collected for generating the dynamic data. The step 890 includes the recipient receiving the email generated by the customized template. For an embodiment, the action of the recipient receiving the email is fed back to step 830 as dynamic data that can be utilized in the generation of the customized emails. The step 892 includes the recipient opening the received email. For an embodiment, the action of the recipient opening the email is fed back to step 830 as dynamic data that can be utilized in the generation of the customized emails. The step 896 includes the recipient clicking or selecting a link included within the email. For an embodiment, the action of the recipient clicking or selecting the link included within the email is fed back to step 830 as dynamic data that can be utilized in the generation of the customized emails.
Step 880 includes the user not utilizing the dynamic data for the customized template. Steps 894, 898 include the recipient not opening the email or selecting the link included within the email.
Although specific embodiments have been described and illustrated, the embodiments are not to be limited to the specific forms or arrangements of parts so described and illustrated. The embodiments are limited only by the appended claims.
Examples shown and described use certain spoken languages. Various embodiments work, similarly, for other languages or combinations of languages. Examples shown and described use certain domains of knowledge and capabilities. Various systems work similarly for other domains or combinations of domains.
Some systems are screenless, such as an earpiece, which has no display screen. Some systems are stationary, such as a vending machine. Some systems are mobile, such as an automobile. Some systems are portable, such as a mobile phone. Some systems are for implanting in a human body. Some systems comprise manual interfaces such as keyboards or touchscreens.
Some systems function by running software on general-purpose programmable processors (CPUs) such as ones with ARM or x86 architectures. Some power-sensitive systems and some systems that require especially high performance, such as ones for neural network algorithms, use hardware optimizations. Some systems use dedicated hardware blocks burned into field-programmable gate arrays (FPGAs). Some systems use arrays of graphics processing units (GPUs). Some systems use application-specific-integrated circuits (ASICs) with customized logic to give higher performance.
Some physical machines described and claimed herein are programmable in many variables, combinations of which provide essentially an infinite variety of operating behaviors. Some systems herein are configured by software tools that offer many parameters, combinations of which support essentially an infinite variety of machine embodiments.
Several aspects of implementations and their applications are described. However, various implementations of the present subject matter provide numerous features including, complementing, supplementing, and/or replacing the features described above. In addition, the foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the embodiments of the invention. However, it will be apparent to one skilled in the art that the specific details are not required in order to practice the embodiments of the invention.
It is to be understood that even though numerous characteristics and advantages of various embodiments of the present invention have been set forth in the foregoing description, together with details of the structure and function of various embodiments of the invention, this disclosure is illustrative only. In some cases, certain subassemblies are only described in detail with one such embodiment. Nevertheless, it is recognized and intended that such subassemblies may be used in other embodiments of the invention. Practitioners skilled in the art will recognize many modifications and variations. Changes may be made in detail, especially matters of structure and management of parts within the principles of the embodiments of the present invention to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed.
Having disclosed exemplary embodiments and the best mode, modifications and variations may be made to the disclosed embodiments while remaining within the scope of the embodiments of the invention as defined by the following claims.
This application claims the benefit of U.S. Provisional Patent Application No. 63/217,337, entitled “Email Customization,” filed Jul. 1, 2021, which is incorporated herein by reference for all purposes.
Number | Date | Country | |
---|---|---|---|
63217337 | Jul 2021 | US |