Email Marketing

Email Marketing is an integrated tool for creating and sending emails to users on your solution. In that respect it’s no different from other proprietary email campaign software – but because it is a native part of the Dynamicweb ecosystem there are several synergy effects where you can:

  • Select recipients based on dynamic criteria - like login timestamps or website behavior
  • Incorporate actual content/products from your solution in your campaigns
  • Register unsubscribes directly and instantly on your user accounts, no manual labour required
  • Etc.

So how do you create an email?

  1. First you create a page in the content tree – e.g. under an Emails folder – which supplies the content of the email
  2. Then you create an email inside the Email Marketing tool and send it to a list of recipients

As should be apparent, this means that you must create email templates like you create regular page templates, with the added note that you cannot rely on local styling or data which will not be available when the email is rendered in the email client of the user.

The Email Marketing tool is accessed from the Marketing tree (Figure 1.1).

Figure 1.1 Email Marketing tool tree

To create an email, you'll need a campaign folder. Below, these campaign folders are described in more detail and how a lot of time can be saved by configuring the folder e.g. by preconfiguring the settings that are inherited by all emails inside the folder.

If you already have a campaign folder and quickly want to create an email, you can skip to the Email section here.

Emails are created and organized in Campaign folders (Figure 2.1). Each campaign folder comes with a predefined set of email states what an email can belong to; drafts, scheduled, split tests, or sent.  

Campaign folders are mainly an organizational tool – you can create as many campaign folders as necessary, or you can use a single campaign folder with subfolders (right-click a campaign folder and click create new folder).

Figure 2.1 Campaign folders

Emails created in a campaign folder are created as drafts, and then move to sent (or scheduled then sent) when you pull the trigger on them. You can use the predefined email states (Drafts, Scheduled, Split tests, Sent) to see only the emails in a particular state, or click the campaign folder and see the full list of emails in it (Figure 2.2).

New campaign folders can be created by right-clicking on the Campaigns folder and clicking Create new folder.

Figure 2.2 Email list

Campaign folders are created with a number of settings, which are inherited by the emails created inside the folder – you can preconfigure the following:

  • The sender email, sender name, subject, and the domain used for links in the email
  • Whether email content should be rendered for each recipient or only once – if the email contains user-specific content, it must be rendered for each recipient. Please note that this naturally significantly impacts performance.
  • A text for the auto-generated unsubscribe link, and a page to redirect users to when they click the link
  • The tracking provider (optional) and delivery provider (mandatory)
  • The Recipient provider (see below)

Below Campaigns, you’ll find the Automation node (Figure 3.1). This node has two folders:

  • The Active folder contains the emails currently in the scheduled state from all campaigns
  • The Inactive folder contains the emails that has been sent using scheduling
Figure 3.1 The Automation node

In Dynamicweb, email content is created as pages in the content tree, and these pages are then sent out to a list of recipients using the Email Marketing tool you’re reading about here. In most cases the email pages will be placed in a folder, and created using email-specific item types – but all of this is up to the implementer and happens elsewhere on the solution.

When it’s time to create the email, right-click a campaign folder or subfolder and click Create new email.

This opens the email configuration view (Figure 4.1) – this is where you select recipients, specify senders, and so on.

Figure 4.1 Emails

From this view you have the following options:

  • Select recipients – your can add users, user groups, smart searches, and repository queries
  • Fill out the sender name and sender email – use the green plus-icon to personalize the subject using email placeholder tags
  • Provide a subject – use the green plus-icon to personalize the subject using email placeholder tags
  • (Optional) Enter a pre-header text
  • Select the email page or use the same page from a previous newsletter – this is the email content page created somewhere in the content tree
  • Select a domain to use for links in the email

Below the configuration, you can see a preview of the email (Figure 4.2). The Edit content button provides a shortcut to editing the page. It is also possible to create a split test version of your email.

Figure 4.2 Preview the email content

Once you’re happy with the setup, you can save the email, then send it or schedule it for future delivery.

To send the email immediately, click Send > Send now (Figure 4.3) – the email will be moved from the drafts folder to the sent folder. To schedule an email for future delivery instead, click Scheduled send and select a date/time and optionally a repetition interval – the email will be moved to the Scheduled folder, and then the Sent folder when it’s been sent.

Figure 4.3 Sending an email

For more advanced scenarios, you can use the tools on the Advanced ribbon bar tab (Figure 5.1) to further configure the email. Most of the settings there can also be preconfigured in the campaign folder settings, so this tab is typically used when you want to override the default settings.

Figure 5.1 Advanced email marketing tools

The Advanced tab tools let you:

  • Add Attachments to the email
  • Select a specific encoding to use (default is UTF-8)
  • Save the email as an email template – this saves a 1-to-1 copy of the email which you can select when creating a new email
  • Customize the unsubscribe settings:
    • Check Do not add unsubscribe link to disable the auto-created unsubscribe link for this email
    • Enter a text for the unsubscribe link, and specify a page to redirect users to when they click the link
  • Customize the Content settings:
    • Check Render content for each recipient to make sure user-specific content is rendered correctly – this significantly impacts performance
    • Activate sending a plain text version of the email alongside the html version, and choose between auto-generated plain text or custom text
  • Use the recipient settings to uncheck ensure unique recipients to allow you to deliver the same email to the same recipient more than once. This is typically done for scheduled emails like an abandoned shopping cart email, which may be sent to the same user many times but with different content. If unchecked, you must provide a quarantine period during which the user cannot receive the email again.

You can also customize more technical details such as the tracking provider, select a different recipient provider (see below) or delivery provider, or use the validate emails tool to check for invalid emails in the list of recipients.  

As described above, email recipients can be specified on an email in a number of ways; add users or user groups manually, or select a smart search or an index query which returns a dynamic set of users matching their criteria.

Once users have been added, you can see exactly how many of the recipients have given email permission/consent to receiving emails below the select box (Figure 6.1).

Figure 6.1 Selecting recipients

Of course, this behavior is only true for the Dynamicweb Users recipient provider – which is preselected by default. This recipient provider can be further configured by switching to the Advanced tab in the ribbon bar and clicking the Recipient provider button (Figure 6.2).

The following settings can be configured:

  • The Data Processing section allows you to select one or more consent activities which the user must have consented to in order to receive this email. If none are selected, only the Email permission user field will be taken into account, which may or may not be a violation of current GDPR laws depending on your country
  • The On unsubscribe section allows you to control what happens when a recipient clicks the unsubscribe link in the email. You can remove email permission from the user, remove a user from a particular group, uncheck one or more custom user fields, and withdraw consent from one or more consent activities.

A couple of alternative recipient providers are also available, albeit for very specific purposes:

  • The Abandoned cart recipients provider allows you to send emails to users who added products to cart but did not finish the checkout procedure. A set of parameters allow you to configure the provider further. Read about abandoned cart campaigns.
  • The Back in stock recipients provider allows you to send emails to users who signed up for back in stock notifications. A setting allows you to disregard the email allowed flag.
  • The Unresponsive recipients provider allows you to send emails to recipients who did not react to a specific previous email (e.g. a sign-up confirmation email). Recipients are counted as unresponsive if they don't open the email. Some email clients, like Outlook, won't render images by default which means we cannot render the tracking pixel and cannot register the email as opened. Instead we set the recipient as responsive if they click any link in the email.

Please note that the unresponsive recipients provider is primarily intended to be a backup plan for business-critical scheduled emails – to resend a campaign email to unresponsive recipients simply:

  • Open the Sent folder of a campaign folder
  • Right-click an email
  • Click Resend to unresponsive recipients (Figure 6.3)
Figure 6.3 Resend to unresponsive recipients

Dynamicweb ships with a default delivery provider - the Dynamicweb send provider - which is used to send out emails. However, it's also possible to use the following external providers:

  • Mandrill
  • Sendgrid

To configure an external provider:

  1. Go to Settings > Marketing > Email Marketing > Delivery providers
  2. Click New in the toolbar
  3. Fill in the required details - these vary depending on the provider you select
  4. Save

Once a delivery provider has been created it can be set as the default provider for any topfolder by editing the topfolder settings, or for a specific email from the Advanced tab.

The Dynamicweb save provider is a provider which saves all emails to disc instead of sending them - this is useful in debugging scenarios.

Dynamicweb collects statistical information about how your users interact with emails. This information can be accessed  from any Sent folder by clicking on an email – this opens the statistics view (Figure 8.1).

Figure 8.1 Email statistics

From the statistics view you can see a number of key performance indicators – opening ratios, click ratios, order ratios, and unsubscribes. You can also see which links were used to go to the solution, and key data on the browsers and email clients used by your users.

Click the Recipients button in the toolbar to access in-depth information about the full list of recipients (Figure 8.2) – you can also see who unsubscribed. The Export button allows you to export email statistics in part or in full.

Figure 8.2 Recipient statistics
database

These are the database tables associated with the Email Marketing feature:

EmailDeliveryProvider

Contains setup data for email marketing delivery providers in the form of an XML document (DeliveryProviderConfiguration) as defined in Settings -> Marketing -> Email Marketing -> Delivery Providers.

Field name Data type Length
DeliveryProviderId int 4
DeliveryProviderName nvarchar 255
DeliveryProviderConfiguration nvarchar Max

EmailMarketingTopFolder

Contains setup data for a given email marketing top folder (TopFolderId) as defined in Marketing -> Email marketing. Default tracking- and recipient provider settings are stored as XML documents (TopFolderTrackingProviderConfiguration, TopFolderRecipientProviderConfiguration). Selected delivery provider is linked via TopFolderDeliveryProviderId.

Field name Data type Length
TopFolderId int 4
TopFolderName nvarchar 255
TopFolderSenderName nvarchar 255
TopFolderSenderEmail nvarchar 255
TopFolderSubject nvarchar 255
TopFolderDomainName nvarchar 255
TopFolderTrackingProviderConfiguration nvarchar Max
TopFolderUnsubscribePageId int 4
TopFolderDeliveryProviderId int 4
TopFolderUnsubscribeText nvarchar 255
TopFolderRecipientSpecificContent bit 1
TopFolderRecipientProviderConfiguration nvarchar Max
TopFolderQuarantinePeriod int 4
TopFolderDescription nvarchar Max

EmailMarketingFolder

Defines the folder structure (FolderId, FolderParentId) in email marketing for a given top folder (FolderTopFolderId).

Field name Data type Length
FolderId int 4
FolderParentId int 4
FolderName nvarchar 255
FolderTopFolderId int 4

EmailMarketingEmail

Contains email configuration data from email marketing. Email source page is stored in EmailPageId. Configurations for recipient- and tracking providers are stored as XML documents in EmailRecipientTrackingProviderConfiguration and EmailTrackingProviderConfiguration. Contents of an email are referenced via EmailMessageId and EmailPlainTextContent (the latter depending on state of EmailIncludePlainTextContent), If split testing is enabled for an email the various EmailVariation* columns are filled.

Field name Data type Length
EmailId int 4
EmailPageId int 4
EmailRecipientProviderConfiguration nvarchar Max
EmailTemplate nvarchar 255
EmailSenderName nvarchar 255
EmailSenderEmail nvarchar 255
EmailSubject nvarchar 255
EmailFileAttachmentPath nvarchar 255
EmailEncoding nvarchar 50
EmailTrackingProviderConfiguration nvarchar Max
EmailUnsubscribePageId int 4
EmailMessageId int 4
EmailDomainName nvarchar 255
EmailVariationName nvarchar 255
EmailVariationEmail nvarchar 255
EmailVariationSubject nvarchar 255
EmailVariationPageId int 4
EmailVariationMessageId int 4
EmailSplitTestIsSent bit 1
EmailFolderId int 4
EmailCreatedDate datetime 8
EmailTopFolderId int 4
EmailDeliveryProviderId int 4
OriginalMessageId int 4
EmailOriginalMessageId int 4
EmailIsTemplate bit 1
EmailTemplateName nvarchar 255
EmailTemplateDescription nvarchar Max
EmailUnsubscribeText nvarchar 255
EmailVariationUnsubscribeText nvarchar 255
EmailScheduledActive bit 1
EmailScheduledSendTime datetime 8
EmailOriginalPreHeader nvarchar Max
EmailVariantPreHeader nvarchar Max
EmailScheduledRepeatInterval int 4
EmailScheduledEndTime datetime 8
EmailRequireUniqueRecipients bit 1
EmailRecipientSpecificContent bit 1
EmailLastExportDate datetime 8
EmailQuarantinePeriod int 4
EmailIncludePlainTextContent bit 1
EmailPlainTextContent nvarchar Max
EmailName nvarchar 255
EmailDisableUnsubscribeTag bit 1

EmailMarketingEngagementIndex

Tracks engagement index scoring for a given email marketing email (EngagementIndexEmailId). Links within email are tracked via XML documents stored in EngagementIndexOriginalLinks and EngagementIndexVariantLinks.

Field name Data type Length
EngagementIndexId int 4
EngagementIndexEmailId int 4
EngagementIndexOpenMailIndex int 4
EngagementIndexOpenMailActive bit 1
EngagementIndexClickLinkIndex int 4
EngagementIndexClickLinkActive bit 1
EngagementIndexAddingProductsIndex int 4
EngagementIndexAddingProductsActive bit 1
EngagementIndexPlacingOrderIndex int 4
EngagementIndexPlacingOrderActive bit 1
EngagementIndexSigningEmailIndex int 4
EngagementIndexSigningEmailActive bit 1
EngagementIndexUnsubscribesEmailIndex int 4
EngagementIndexUnsubscribesEmailActive bit 1
EngagementIndexOriginalLinks nvarchar Max
EngagementIndexVariantLinks nvarchar Max
EngagementIndexTopFolderId int 4

EmailMarketingSplitTest

Contains setup data for email marketing split tests. Specific email is defined by SplitTestEmailId.

Field name Data type Length
SplitTestId int 4
SplitTestEmailId int 4
SplitTestName nvarchar 255
SplitTestIncludes int 4
SplitTestIncludesUnits int 4
SplitTestGoalType nvarchar 50
SplitTestActive bit 1
SplitTestStartDate datetime 8
SplitTestEndDate datetime 8
SplitTestEndType int 4
SplitTestOpenedEmails int 4
SplitTestOpenedEmailsUnits int 4
SplitTestHoursTillEnd int 4
SplitTestAfterEndSendBest bit 1
SplitTestAfterEndNotify bit 1
SplitTestAfterEndActionEmail nvarchar 255
SplitTestStartDateTimeZoneId nvarchar 256
SplitTestEndDateTimeZoneId nvarchar 256
SplitTestScheduledSendActive bit 1
SplitTestScheduledSendTime datetime 8
SplitTestScheduledPickWinnerActive bit 1
SplitTestScheduledPickWinnerTime datetime 8
SplitTestWinnerEndDate datetime 8

EmailMessage

Contains the contents of email marketing emails in the form of HTML blocks in MessageHtmlBody and MessagePreprocessedHtmlBody.

Field name Data type Length
MessageId int 4
MessageSubject nvarchar 255
MessageSenderName nvarchar 255
MessageSenderEmail nvarchar 255
MessageDomainUrl nvarchar 255
MessageRecipientsSource nvarchar 255
MessageHtmlBody nvarchar Max
MessagePreprocessedHtmlBody nvarchar Max
MessageFileAttachmentPaths nvarchar Max
MessageDeliveryProviderId int 4
MessageRequireUniqueRecipients bit 1
MessageRecipientSpecificContent bit 1
MessageRecipientContentProvider nvarchar Max
MessageQuarantinePeriod int 4
MessageIncludePlainTextBody bit 1
MessagePlainTextBody nvarchar Max

EmailMessageTag

Stores the values (MessageTagValue) of a given email marketing tag (MessageTagName) used in the content of an email marketing email (MessageTagMessageId).

Field name Data type Length
MessageTagId int 4
MessageTagMessageId int 4
MessageTagName nvarchar 255
MessageTagValue nvarchar Max
MessageTagDataType nvarchar 255

EmailAction

Tracks actions (ActionId, ActionType) performed by recipients (ActionRecipientId) on an email marketing email (ActionMessageId) at a specific time (ActionSessionId, ActionTimestamp).

Field name Data type Length
ActionId int 4
ActionSessionId nvarchar 50
ActionTimestamp datetime 8
ActionType nvarchar 255
ActionMessageId int 4
ActionMessageIdString nvarchar 50
ActionRecipientId int 4
ActionRecipientIdString nvarchar 50

EmailRecipient

Tracks when (RecipientSentTime) a specific email marketing email (RecipientMessageId) was sent to a specific recipient (RecipientKey, RecipientName, RecipientEmailAddress), the tag values for that email (RecipientTags), and a tracking key (RecipientSecret).

Field name Data type Length
RecipientId int 4
RecipientKey nvarchar 255
RecipientName nvarchar 255
RecipientEmailAddress nvarchar 255
RecipientMessageId int 4
RecipientSentTime datetime 8
RecipientErrorMessage nvarchar Max
RecipientErrorTime datetime 8
RecipientTags nvarchar Max
RecipientSecret nvarchar 50