Blogs from Episerver teams2021-09-29T11:17:15.0000000Z/product-blogs/the-campaign-blog/Optimizely WorldSending automated order confirmations via Optimizely Campaign/blogs/philipp-gaska/dates/2021/9/sending-automated-order-confirmations/2021-09-29T11:17:15.0000000Z<p>In this blog post, I want to give you a basic example on how to automatically send an order confirmation via Optimizely Campaign. A transactional mail serves as template for the order confirmation which you can create either via the <a href="https://webhelp.optimizely.com/latest/en/campaign/omnichannel/xmails.htm">Optimizely Campaign user interface</a> or the <a href="/link/8693e50904d04f838570574aa64175e5.aspx">REST API</a>.</p>
<h2><a></a>Processing order data</h2>
<p>When a customer registers in your web shop and completes a purchase order, you collect the data (including information such as product item and price) and store it in JSON format: <code>{"item":"Boots","price":"49.99"}</code>.</p>
<p><code></code></p>
<p>You transmit this data together with other recipient data into a dedicated field of the transactional mail's recipient list. You can also store the whole HTML content and different language versions in the transaction recipient list to use only one transactional mail as template instead of creating multiple versions. </p>
<h2><a></a>Creating field functions</h2>
<p>To access the individual variables within the JSON object and directly insert them into the mailing text, create a field function that refers to the dedicated recipient list field.</p>
<p><a></a>The following sample velocity field function replaces the whole mailing content of the transactional mail and refers to the "order" recipient list field which contains the order data:</p>
<pre class="language-xml"><code>#set ($jsonContent = $json.readFromString($!{user.data.order}))
Dear customer,
<br/>
Thank you for your purchase! You successfully completed the order of <b>${jsonContent.item}</b> and already paid the full amount of <b>${jsonContent.price} Euro</b>. You will receive another confirmation email as soon as your order has been shipped.
<br/>
Best regards,
<br/>
Your web shop team
<br/></code></pre>
<h3>Converting prices</h3>
<p>If you store prices in cent amounts and want to convert them to decimal amounts (e.g., 4999 cents to 49.99 euros), you can use the following function:</p>
<pre class="language-java"><code>#macro(priceConverter $value)$!{null}#set($int=0)$!{null}#set($netto=$int.parseInt($value))$!{null}#set($netto=$StringHelper.percentage(10000, $netto, 2, $Common.locale("de", "", "")))$!{null}$netto$!{null}#end</code></pre>
<h3>Displaying JSON objects as HTML text</h3>
<p>If you have a JSON array with multiple items and prices, for example, <code>"order":[{"item":"Boots","price":4999},{"item":"Books","price":1299}]</code>, and want to display each of them as HTML text, you can use the following function:</p>
<pre class="language-java"><code>#foreach($data in $jsonContent.order)
<h2>$data.item</h2></br>
Price: #priceConverter($data.price) &Euro;</br></br>
#end</code></pre>
<div class="greenBox"><strong>Tip:</strong> For more information about field functions, see the <a href="https://webhelp.optimizely.com/latest/en/campaign/manage-content/field-functions.htm">Optimizely User Guide</a>.</div>
<h2>Sending the order confirmation</h2>
<p>To transmit the order data and send the order confirmation, use the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Transactional%20mails/sendTransactionalMailing">POST/{clientId}/transactionalmail/{transactionalMailId}/send</a> operation.</p>
<p>You need the following information:</p>
<ul>
<li><span><strong>Client ID</strong></span><span>. The ID of the client the REST API is </span><a href="/link/37288475a0884c6d9fe56a4717991432.aspx#client">set up</a><span> for. You can find the client ID in Optimizely Campaign under Administration > API Overview > REST API.</span></li>
<li><span> </span><span><strong>Transactional mail ID</strong></span><span>. The ID of the transactional mail that serves as template for the order confirmation. You can find the transactional mail ID in Optimizely Campaign under Campaigns > Transactional Mails.</span></li>
<li><span> </span><span><strong>Recipient list ID</strong></span><span>. The ID of the transaction recipient list. You can find the recipient list ID in Optimizely Campaign under Administration > API Overview > Recipient Lists.</span></li>
<li><span> </span><span><strong>Recipient ID</strong></span><span>. The customer’s email address.</span></li>
<li><span><strong>Data</strong></span>. The order data to be displayed in the order confirmation.</li>
</ul>
<p> The request in curl looks as follows:</p>
<pre class="language-xml"><code>curl -X POST "https://api.campaign.episerver.net/rest/123456789/transactionalmail/987654321/send"
-H "Authorization: BASIC k783r3fjn989dhnfjjdr83dgds1383NDfv="
-d "data.order=%7B%22item%22%3A%22Boots%22%2C%22price%22%3A%2249.99%22%7D&recipientListId=238312130812&recipientId=customer%40example.com"
</code></pre>
<p>The transactional mail contains only the field function and looks as follows when the order confirmation is sent:</p>
<pre>Dear customer,<br /><br />Thank you for your purchase! You successfully completed the order of <strong>Boots</strong> and already paid the full amount of <strong>49.99 Euro</strong>. You will receive another confirmation email as soon as your order has been shipped.<br /><br />Best regards,<br /><br />Your web shop team</pre>Working with the Optimizely Campaign webhooks/blogs/philipp-gaska/dates/2021/8/working-with-the-optimizely-campaign-webhooks/2021-08-23T11:00:50.0000000Z<p><span>Using webhooks, you can get real-time event data on sent mailings, opens, clicks, bounces, and unsubscribes. For example, instead of retrieving the data on a regular basis by using the response data export job, our REST API based webhooks provide you with the data within seconds. </span></p>
<p><span>You can immediately process the data and create, for example, in-app notifications or monitoring dashboards in third-party systems such as CRM software. So, you don´t have to open Optimizely Campaign to check which mailings were successfully delivered to the recipient. </span><span> </span></p>
<div class="greenBox"><span><strong>Tip:</strong> Regularly check our </span><a href="/link/bac2c19b2b2b4a6fb3eba23049cdc3d1.aspx"><span>Release Notes</span></a><span> for updates. We continuously improve and extend the webhook functionalities and will provide more event types in future.</span><span> </span></div>
<h2>Early adopter: METRO.digital</h2>
<p><span>METRO.digital, the company behind the digital solutions for the METRO global wholesale business, is one of the first implementers of our webhooks. METRO.digital uses the API client Postman and our </span><a href="https://api.campaign.episerver.net/apidoc/index.html"><span>Swagger documentation</span></a><span> to test the webhooks and build new solutions for processing customer data: </span><span> </span></p>
<ul>
<li><span><strong>Updating customer master data</strong></span><br /><span>Keeping the customer's subscription status up to date by using the bounce and unsubscribe events.</span><span> </span></li>
<li><span><strong>Real-time monitoring and analyses</strong></span><br /><span>Analyzing the mailing dispatch (uptime/downtime, queueing/delays) based on the sent event to provide a backup plan in case of delayed transactional mails.</span><span> </span></li>
<li><span><strong>Reporting and scoring</strong></span><br /><span>Enriching the data warehouse with internal campaign information and analyzing the customer's channel affinity, scoring and campaign performance for detailed campaign reports.</span><span> </span></li>
</ul>
<h2><span>Creating a webhook for the bounce event</span></h2>
<p><span>In the following example, I want to show you how to create a webhook for the bounce event using the </span><a href="/link/37288475a0884c6d9fe56a4717991432.aspx"><span>Optimizely Campaign REST API</span></a><span>.</span></p>
<p><span>A bounce occurs when a message could not be delivered. There are two types of bounces:</span><span> </span></p>
<ul>
<li><span><strong>Soft bounce</strong>. Possible reason: The mailbox is full, but the recipient may receive mailings again later.</span></li>
<li><span><strong>Hard bounce</strong>. Possible reason: The email address no longer exists.</span></li>
</ul>
<div class="orangeBox"><span><strong>Note:</strong> To enable the webhook feature, contact </span><a href="https://webhelp.optimizely.com/latest/en/campaign/support/customer-support.htm"><span>customer support</span></a><span>. See also: </span><a href="https://webhelp.optimizely.com/latest/en/campaign/integration/webhooks.htm"><span>Webhooks</span></a><span> in the Optimizely user guide.</span><span> </span></div>
<p><span>To create the webhook, use the </span><a href="https://api.campaign.episerver.net/apidoc/index.html#/Webhooks/createWebhook"><span>POST/{clientId}/webhooks</span></a><span> operation.</span><span> </span><span>You need the following information:</span><span> </span></p>
<ul>
<li><span><strong>Client ID</strong></span><span>. The ID of the client the REST API is </span><a href="/link/37288475a0884c6d9fe56a4717991432.aspx#client"><span>set up</span></a><span> for. You can find the client ID in Optimizely Campaign under Administration > API Overview > REST API.</span></li>
<li><span><strong>Format</strong></span><span>. Data format in which the event data is to be sent. Currently available: JSON.</span></li>
<li><span><strong>Type</strong></span><span>. Event type "bounce".</span></li>
<li><span><strong>Target URL</strong></span><span>. URL to which the event data is to be sent.</span><br />
<div class="orangeBox"><strong>Note:</strong> Make sure that the URL is accessible and able to receive data via HTTP POST requests from the IP address 193.169.180.1 at any time. Use the latest HTTPS version and standard port 443 for HTTPS connections.</div>
</li>
</ul>
<p><span>The request in curl looks as follows:</span></p>
<pre class="language-java"><code>curl -X POST "https://api.campaign.episerver.net/rest/123456789/webhooks"
-H "Authorization: BASIC k783r3fjn989dhnfjjdr83dgds1383NDfv="
-d "format=json&type=bounce&targetUrl=https%3A%2F%2Fwww.example.com"</code></pre>
<p><span>After creating the webhook, you can verify the webhook whether it is ready to use and can send event data to the specified target URL by using the </span><a href="https://api.campaign.episerver.net/apidoc/index.html#/Webhooks/verifyWebhook"><span>GET/{clientId}/webhooks/{webhookId}/verify</span></a><span> operation.</span><span> </span></p>
<h2><span>Activating the webhook und retrieving real-time event data</span></h2>
<p><span>To activate the created webhook, use the </span><a href="https://api.campaign.episerver.net/apidoc/index.html#/Webhooks/activateWebhook"><span>POST/{clientId}/webhooks/{webhookId}/activate</span></a><span> operation.</span><span> </span></p>
<p><span>Specify the client ID and the webhook ID which you get as response when creating the webhook. </span><span> </span></p>
<div class="greenBox"><span><strong>Tip:</strong> You can also use the </span><a href="https://api.campaign.episerver.net/apidoc/index.html#/Webhooks/selectWebhooks"><span>GET/{clientId}/webhooks</span></a><span> operation to retrieve the IDs of all created webhooks.</span><span> </span></div>
<p><span>The request in curl looks as follows:</span></p>
<pre class="language-java"><code>curl -X POST "https://api.campaign.episerver.net/rest/123456789/webhooks/987654321/activate"
-H "Authorization: BASIC k783r3fjn989dhnfjjdr83dgds1383NDfv="</code></pre>
<p><span>After activating, the event data is sent to the specified target URL whenever a bounce occurs. The payload consists of the following data, among other:</span></p>
<ul>
<li><span>Bounce category - "softbounce" or "hardbounce"</span></li>
<li><span>Bounce reason - "spam-related" or "other"</span></li>
<li><span>Media type of the bounced message, e.g., "EMAIL"</span></li>
<li><span>Mailing ID</span></li>
<li><span>Recipient ID </span></li>
</ul>
<p><span>Sample payload in JSON format:</span></p>
<pre class="language-json"><code>{
"type":"bounce",
"id":"0a673102-178d27b2c8c-178d2cac0e4-c7420699923845e",
"recipientId":"john.smith@example.com",
"userListId":10180860004,
"clientId":10180860001,
"created":1617108575391,
"subscriptionId":10227900201,
"mailId":"4P6W8B4-4P6W0LI-BSLXEC",
"mailingId":10230355206,
"mediaTypesToAddresses": {
"EMAIL":"john.smith@example.com"
},
"category":"softbounce",
"mediaType":"EMAIL",
"reason":"other",
"thresholdExceeded":false
}</code></pre>
<div class="greenBox"><span><strong>Tip:</strong> To update the webhook without deactivating it or creating a new one, for example, to change the target URL, you can use the </span><a href="https://api.campaign.episerver.net/apidoc/index.html#/Webhooks/updateWebhook"><span>PUT/{clientId}/webhooks/{webhookId}</span></a><span> operation.</span></div>Right to be forgotten: Deleting recipient data/blogs/philipp-gaska/dates/2021/7/right-to-be-forgotten-deleting-recipient-data/2021-07-08T09:18:42.0000000Z<p>Data security and protecting the privacy of your customers and newsletter recipients is vital important. With the introduction of the General Data Protection Regulation (GDPR) at the latest, you must provide the possibility of deleting personal data upon request. This is embodied in Article 17 of the GDPR – the so-called "Right to be forgotten".</p>
<p>To irrevocably delete all recipient data from Episerver Campaign (except blocklist entries which is anonymized data), you can use the <a href="https://webhelp.episerver.com/latest/en/campaign/recipients/recipient-history.htm#Righttobeforgotten">recipient history</a> in the Episerver Campaign user interface.</p>
<p>A more flexible way is using the <a href="/link/37288475a0884c6d9fe56a4717991432.aspx">Episerver Campaign REST API</a>. This lets you delete recipient data remotely – without logging in to Episerver Campaign. You can, for example, use the <a href="https://api.campaign.episerver.net/apidoc/index.html">Swagger Try it out</a> feature, enter the <a href="#curl">curl request</a> in the Windows command prompt, or implement a deletion option right into your system, such as a CRM software.</p>
<p>To delete recipient data via REST API, use the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Recipients/wipeRecipientHistory">DELETE /{clientId}/recipients</a> operation.</p>
<p>You need the following information:</p>
<ul>
<li><strong>Client ID</strong>. The ID of the client the REST API is <a href="/link/37288475a0884c6d9fe56a4717991432.aspx#client">set up</a> for. You can find the client ID in Episerver Campaign under Administration > API Overview > REST API.</li>
<li><strong>Reason</strong>. Reason for data deletion.</li>
<li><strong>Recipient key</strong>. Recipient ID, usually the email address.</li>
</ul>
<p><a id="curl"></a>The request in curl looks as follows:</p>
<pre class="language-java"><code>curl -X DELETE "https://api.campaign.episerver.net/rest/123456789/recipients?reason=customerrequest&recipientKey=recipient%40example.com" -H "Authorization: BASIC k783r3fjn989dhnfjjdr83dgds1383NDfv="</code></pre>
<p>The following example shows the request as PHP code.<strong></strong></p>
<div class="orangeBox"><strong>Note:</strong> The PHP code is a basic example and is not ready to use in your live system. Use it only as a template for testing and adapt the code to your company's internal requirements.</div>
<pre class="language-javascript"><code><?php
$user = 'user@example.com'; // API user name, usually your email address
$password = 'password'; // password of your API user
$clientId = 123456789; // ID of the client the REST API is set up for
$recipientId = 'recipient@example.com'; // ID of the recipient whose data is to be deleted
$reason = 'customerrequest'; // reason for data deletion (without blanks)
$URL = 'https://api.campaign.episerver.net/rest/'.$clientId.'/recipients?recipientKey='.$recipientId.'&reason='.$reason;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$URL);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "$user:$password");
$result = curl_exec ($curl);
$result = json_decode($result, true);
echo '<pre>';
var_dump ($result);
echo '</pre><br>';
curl_close ($curl);
?></code></pre>
<div class="greenBox"><strong>Tip:</strong> To delete the recipient's blocklist entry, you can use the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Blacklist%20entries/deleteBlacklistEntry">DELETE/{clientId}/blacklistentries/{entry}</a> operation.</div>Working with newsletter unsubscribes/blogs/philipp-gaska/dates/2021/2/working-with-newsletter-unsubscribes/2021-02-23T14:11:37.0000000Z<p>In the blog post <a href="/link/da5a040e7b404c05a85f44a23ac60968.aspx">Setting up a newsletter subscription via REST API</a>, I described how to use a double opt-in process to acquire new recipients in a legally secure way. Even if you do not want to lose the recipients you have acquired, it is essential to include an unsubscribe option in the newsletter and on your website. This is a basic requirement for serious email marketing because you should send your information only to those who are interested in it.</p>
<h2>Including an unsubscribe link in your newsletter</h2>
<p>In Episerver Campaign, you can easily implement the newsletter unsubscription via an <a href="https://webhelp.episerver.com/latest/en/campaign/recipients/unsubscribers.htm#Insertinganunsubscribelinkintoamailing">unsubscribe link</a>. Add the <em>{Unsubscribe Link}</em> field function in the newsletter footer after the greeting and contact information.</p>
<p>When the recipients click on the link, they are added to Episerver Campaign's system-internal unsubscribe list. The recipients are not removed from the recipient list but are matched against the unsubscribe list in the future and skipped when the newsletter is sent.</p>
<p>Also, the unsubscribe link redirects to a default confirmation page. If you want to use your own confirmation page, you can <a href="https://webhelp.episerver.com/latest/en/campaign/recipients/unsubscribers.htm#ChangingtheconfirmationpageURL">change it in Episerver Campaign</a>.</p>
<p><img src="/link/23cc2bd09c3e455b8b631d51dbe2cf81.aspx?1614089009223" width="775" alt="Image: Changing the confirmation page URL in Episerver Campaign" height="212" /></p>
<h2>Setting up an unsubscribe form on your website</h2>
<p>In addition to the unsubscribe link in the newsletter, you should also provide an unsubscribe form on your website. Like the newsletter subscription, you can do this by using the <a href="/link/8693e50904d04f838570574aa64175e5.aspx">Episerver Campaign REST API</a>. Create a form and set up the API request using the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Unsubscribes/createUnsubscribes">POST/{clientId}/unsubscribes</a> operation. </p>
<div class="orangeBox"><strong>Note:</strong> Set up the REST API in your client first, see <a href="/link/37288475a0884c6d9fe56a4717991432.aspx#client">Client setup</a>.</div>
<p>One advantage of an unsubscribe form is that you can ask for the unsubscribe reason and offer an opt-down. Since you do not want to lose your newsletter recipients completely, you can offer to receive an alternative newsletter with a lower sending frequency - for example, monthly instead of weekly. This way you create an unsubscribe form including a new subscription option and keep your unsubscribe rates low.</p>
<p>For further information and tips on how to create subscription and unsubscribe forms, see the <a href="https://webhelp.episerver.com/latest/en/campaign/recipients/opt-in/subscribe-unsubscribe.htm">Episerver User Guide</a>. </p>
<h2>Managing unsubscribes</h2>
<p>Monitor your newsletter unsubscribes and make sure that the unsubscribe process is working properly. </p>
<ul>
<li>Are all newsletter unsubscribes processed by the unsubscribe link in your database as scheduled? </li>
<li>Do you also fulfill individual unsubscribe requests that reach you through reply emails? </li>
</ul>
<p>Therefore, regularly check the correct handling of your unsubscribe processes to avoid legal or provider-related problems. To monitor and manage unsubscribes, you can use the Episerver Campaign REST API. </p>
<p>In order to view the system-internal unsubscribe list, use the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Unsubscribes/selectUnsubscribes">GET/{clientId}/unsubscribes</a> operation. The request in curl looks as follows:</p>
<pre class="language-java"><code>curl -X GET "https://api.campaign.episerver.net/rest/123456789/unsubscribes?sort=created" -H "Authorization: BASIC k783r3fjn989dhnfjjdr83dgds1383NDfv="</code></pre>
<p>The <em>Unsubscribes</em> REST API resource provides even more operations for managing unsubscribes:</p>
<p><img src="/link/890a3249f2f04b1ea140b5b713bfae3e.aspx?1614085978113" width="1450" alt="Image: Unsubscribes REST API resource" height="292" /></p>Creating a Smart Campaign and mailing via REST API/blogs/philipp-gaska/dates/2021/1/creating-a-smart-campaign-and-mailing-via-rest-api/2021-01-15T15:13:14.0000000Z<p>Instead of using the front end, you can use the features and functionalities in Episerver Campaign remotely via <a href="/link/37288475a0884c6d9fe56a4717991432.aspx" title="REST API documentation" target="_blank" rel="noopener">REST API</a>. For example, you can create a Smart Campaign including its mailings. In this blog post, I like to show you a basic example on how to do so.</p>
<p>To create and send a mailing campaign in Smart Campaigns (Episerver Campaign's <span>marketing tool for sending out one-shot-campaigns)</span>, perform the following steps:</p>
<ol>
<li><a href="#create">Create a Smart Campaign</a></li>
<li><a href="#nodes">Create a mailing and connect the nodes</a></li>
<li><a href="#start">Start the campaign</a></li>
</ol>
<h2><a id="create"></a>Creating a Smart Campaign</h2>
<p>To create a Smart Campaign, use the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Smart%20Campaigns/createOrCopySmartCampaign" title="Episerver Campaign REST API" target="_blank" rel="noopener">POST/{clientId}/smartcampaigns</a> operation. You need the following information:</p>
<ul>
<li><strong>Client ID</strong>. The ID of the client the REST API is <a href="/link/37288475a0884c6d9fe56a4717991432.aspx#client" target="_blank" title="REST API documentation" rel="noopener">set up</a> for. You can find the client ID in Episerver Campaign under Administration > API overview > REST API.</li>
<li><strong>Recipient list ID</strong>. The ID of the recipient list you want to use for your campaign. Use the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Recipient%20lists/selectRecipientLists" title="Episerver Campaign REST API" target="_blank" rel="noopener">GET/{clientId}/recipientlists</a> operation to retrieve all recipient list IDs of your client. You can also find the recipient list IDs in the Episerver Campaign start menu under Administration > API overview > Recipient lists.
<div class="greenBox"><strong>Tip:</strong> Use a test recipient list to send a test mailing before the actual dispatch. You can also use the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Smart%20Campaigns/startTestMailing_2" title="Episerver Campaign REST API" target="_blank" rel="noopener">POST/{clientId}/smartcampaigns/{campaignId}/messages/{mailingId}/test</a> operation after you have created the mailing and connected the nodes.</div>
</li>
<li><strong>Name</strong>. Specify a name for the campaign, such as <em>Test campaign</em>.</li>
</ul>
<p>The request in curl looks as follows:</p>
<pre class="language-java"><code>curl -X POST "https://api.campaign.episerver.net/rest/123456789/smartcampaigns" -H "Authorization: BASIC k783r3fjn989dhnfjjdr83dgds1383NDfv=" -d "recipientListIds=9876543210" -d "name=Test%20campaign"</code></pre>
<p>In the response body of the request, you can find information about the created campaign, such as campaign ID, name, status, and creation date.</p>
<h2><a id="nodes"></a>Creating a mailing and connecting the nodes</h2>
<p>The created campaign is incomplete and requires further editing. Use the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Smart%20Campaigns/createCampaignMessage" title="Episerver Campaign REST API" target="_blank" rel="noopener">POST/{clientId}/smartcampaigns/{campaignId}/messages</a> operation to create a new message node with the actual mailing and connect it with the recipients node that contains the recipient list.</p>
<p>You need the following information:</p>
<ul>
<li><strong>Client ID</strong></li>
<li><strong>Campaign ID</strong>. ID of the created Smart Campaign. To get the campaign ID, you can use the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Smart%20Campaigns/selectSmartCampaigns" title="Episerver Campaign REST API" target="_blank" rel="noopener">GET/{clientId}/smartcampaigns</a> operation or go to the Episerver Campaign start menu > Campaigns > Smart Campaigns.</li>
<li><strong>Media type</strong>. Media type of the mailing, for example <em>email</em>.</li>
<li><strong>Sender address</strong>. Email address of the mailing sender.</li>
<li><strong>Predecessor node ID</strong>. The ID of the recipients node. To retrieve the node ID, you can use the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Smart%20Campaigns/getSmartCampaign" title="Episerver Campaign REST API" target="_blank" rel="noopener">GET/{clientId}/smartcampaigns/{campaignId}</a> operation.</li>
</ul>
<p>You also need to specify further parameters, such as mailing name, mailing subject, media type, and set the "resetReplyToAddress" parameter to "true". When creating the mailing, you can only add plain text as mailing content. I will show you how to update the mailing with HTML or multipart content in a later blog post.</p>
<p>The request in curl looks as follows:</p>
<pre class="language-java"><code>curl -X POST "https://api.campaign.episerver.net/rest/123456789/smartcampaigns/12345654321/messages" -H "Authorization: BASIC k783r3fjn989dhnfjjdr83dgds1383NDfv=" -d "senderName=John%20Smith" -d "predecessorNodeId=2" -d "name=Test%20mail" -d "subject=Test%20newsletter" -d "replyToName=John%20Smith" -d "content=This%20is%20the%20mailing%20content." -d "resetReplyToAddress=true" -d "mediaType=email" -d "senderAddress=user%40example.com"</code></pre>
<p>You cannot divide the mailing content into individual content paragraphs via REST API. To do so, create the mailing in the Episerver Campaign front end by using the <a href="https://webhelp.episerver.com/latest/en/campaign/manage-content/template-kit/template-kit.htm" title="Episerver User Guide" target="_blank" rel="noopener">Template Kit</a>. This also lets you personalize each content paragraph via target groups.</p>
<h2><a id="start"></a>Starting the campaign</h2>
<p>To send out the mailing, activate and start the campaign. Use the following operations:</p>
<ul>
<li>Activating: <a href="https://api.campaign.episerver.net/apidoc/index.html#/Smart%20Campaigns/activateSmartCampaign" title="Episerver Campaign REST API" target="_blank" rel="noopener">POST/{clientId}/smartcampaigns/{campaignId}/activate</a><br /><br />The request in curl looks as follows: <br /><br />
<pre class="language-java"><code>curl -X POST "https://api.campaign.episerver.net/rest/123456789/smartcampaigns/12345654321/activate" -H "Authorization: BASIC k783r3fjn989dhnfjjdr83dgds1383NDfv="</code></pre>
</li>
<li>Starting: <a href="https://api.campaign.episerver.net/apidoc/index.html#/Smart%20Campaigns/startSmartCampaign" title="Episerver Campaign REST API" target="_blank" rel="noopener">POST/{clientId}/smartcampaigns/{campaignId}/start</a><br /><br />The request in curl looks as follows:<br /><br />
<pre class="language-java"><code>curl -X POST "https://api.campaign.episerver.net/rest/123456789/smartcampaigns/12345654321/start" -H "Authorization: BASIC k783r3fjn989dhnfjjdr83dgds1383NDfv="</code></pre>
</li>
</ul>
<div class="greenBox"><strong>Tip:</strong> After sending out the campaign, you can retrieve a report with information about opens, clicks, unsubscribes and bounces by using the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Smart%20Campaigns/getReport_1" title="Episerver Campaign REST API" target="_blank" rel="noopener">GET/{clientId}/smartcampaigns/{campaignId}/report</a> operation.</div>Setting up a newsletter subscription via REST API/blogs/philipp-gaska/dates/2020/12/setting-up-a-newsletter-subscription-via-rest-api/2020-12-15T13:46:45.0000000Z<p>To expand your database of email recipients and attract new potential customers, newsletter subscriptions are essential. I recommend the <a href="https://webhelp.episerver.com/latest/en/campaign/recipients/opt-in/opt-in.htm#Optinmethodtypes" title="Episerver User Guide" target="_blank" rel="noopener">double opt-in method</a>, which ensures that the recipient really wants to receive promotional emails.</p>
<p>This procedure works like this: When website visitors fill out the subscription form on your website and submit their contact information, they receive an email and are prompted to confirm the subscription by clicking the double opt-in link.</p>
<p>To set up the subscription using the <a href="/link/8693e50904d04f838570574aa64175e5.aspx" title="Episerver Campaign REST API" target="_blank" rel="noopener">Episerver Campaign REST API</a>, perform the following steps:</p>
<ol>
<li>Create an opt-in recipient list</li>
<li>Create an opt-in process</li>
<li>Set up the subscription form</li>
<li>Set up the REST API request</li>
</ol>
<h2>Creating an opt-in recipient list</h2>
<p>To create an opt-in recipient list, you can use the <a href="https://webhelp.episerver.com/latest/en/campaign/recipients/lists/recipient-lists-new.htm" title="Episerver User Guide" target="_blank" rel="noopener">recipient list management</a> feature in Episerver Campaign. If you do not have enabled this feature in your client, you can also request an opt-in recipient list from customer support.</p>
<p>For an opt-in recipient list, at least the recipient list field "Email" must be assigned. This field is used for the recipient ID. Also, set the list type to "Opt-in".</p>
<h2>Creating an opt-in process</h2>
<p>To create an opt-in process, you can use the <a href="https://webhelp.episerver.com/latest/en/campaign/omnichannel/confirmations.htm" title="Episerver User Guide" target="_blank" rel="noopener">opt-in process self-service</a> in Episerver Campaign. When creating, you specify the opt-in recipient list you created earlier, and add the double opt-in link to the opt-in email.</p>
<h2>Setting up the subscription form</h2>
<p>Set up a form on your website for collecting the website visitor’s contact data. Create at least an input field for the email address. The more recipient data you collect, the more precisely you can individualize and personalize newsletters. For example, you can add additional fields for the first name, last name, and salutation.</p>
<p>Each input field in the form must have a corresponding recipient list field into which the data is imported. For more information and tips on creating subscription forms, see the <a href="https://webhelp.episerver.com/latest/en/campaign/recipients/opt-in/subscribe-unsubscribe.htm#AnundAbmeldeformulareerstellen" title="Episerver User Guide" target="_blank" rel="noopener">Episerver User Guide</a>.</p>
<p>The following example shows a basic HTML subscription form:</p>
<pre class="language-xml"><code><html lang="en">
<head>
<title>Newsletter subscription</title>
</head>
<body>
<h1 style="font-family: Arial, sans-serif">Newsletter subscription</h1>
<p style="font-family: Arial, sans-serif">To stay up to date on special offers and promotions, subscribe now!</p>
<form action="" method="post">
<input style="font-family: Arial, sans-serif" type="text" name="email" placeholder="Enter your email address" size="30"/>
<input style="font-family: Arial, sans-serif" type="submit" name="subscribe" value="Subscribe"/>
</form>
</body>
</html></code></pre>
<h2>Setting up the REST API request</h2>
<p>To use the REST API, <a href="/link/37288475a0884c6d9fe56a4717991432.aspx#client" title="REST API documentation" target="_blank" rel="noopener">set up your client</a> first. Use the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Recipients/addRecipient" title="Episerver Campaign REST API" target="_blank" rel="noopener">POST/{clientId}/recipients/{recipientListId}</a> operation to add a new recipient to the opt-in recipient list. You can use the "Try it out" feature of our resource documentation to create and test the request.</p>
<p>You need the following information for the request:</p>
<ul>
<li><strong>Client ID</strong>. ID of the client the REST API is set up for.</li>
<li><strong>Recipient ID</strong>. Email address that the website visitor enters into the form.</li>
<li><strong>Recipient list ID</strong>. ID of the opt-in recipient list that is used for the double opt-in process.</li>
<li><strong>Opt-in process ID</strong>. ID of the double opt-in process.</li>
</ul>
<div class="greenBox">
<p><strong>Tip:</strong> You can find the IDs in Episerver Campaign under Administration > API overview. To retrieve the recipient list ID and the opt-in process ID, you can also use the <a href="https://api.campaign.episerver.net/apidoc/index.html#/Recipient%20lists/selectRecipientLists" title="Episerver Campaign REST API" target="_blank" rel="noopener">GET/{clientId}/recipientlists</a> and <a href="https://api.campaign.episerver.net/apidoc/index.html#/Opt-in%20processes/selectOptinProcesses" title="Episerver Campaign REST API" target="_blank" rel="noopener">GET/{clientId}/optinprocesses</a> operation.</p>
</div>
<p>If you have additional fields, such as last name or salutation, add the corresponding parameters to the request. The following curl request only uses the email address, and the <a href="/link/37288475a0884c6d9fe56a4717991432.aspx#auth" title="REST API documentation" target="_blank" rel="noopener">Base64-encoded User:Password</a> as authentication:</p>
<pre class="language-java"><code>curl -X POST "https://api.campaign.episerver.net/rest/123456789/recipients/987654321" -H "Authorization: BASIC k783r3fjn989dhnfjjdr83dgds1383NDfv=" -d "optinProcessId=12345654321" -d "recipientId={emailaddress}"</code></pre>
<p>Connect the API request with the subscription form, for example in a PHP file. Instead of using the Base64-encoded User:Password, add your API user and password directly into the PHP file.</p>
<p>The following PHP example only shows a basic implementation. Also, make sure your form is secured from misuse by using a CAPTCHA, IP blocking or similar measures according to your usage scenario.</p>
<pre class="language-javascript"><code><?php
if(isset($_REQUEST['subscribe'])){
$user = 'user@example.com'; // API user name, usually your email address
$password = 'password1234'; // password of your API user
$clientId = 123456789; // ID of the client the REST API is set up for
$recipientlistId = 987654321; // ID of the opt-in recipient list that is used for the double opt-in process
$optinProcessId = 12345654321; // ID of the double opt-in process
$URL='https://api.broadmail.de/rest/'.$clientId.'/recipients/'.$recipientlistId;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$URL);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_TIMEOUT, 30); //time out after 30 seconds
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "$user:$password");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,"optinProcessId=”.$optinProcessId.”&recipientId=".$_REQUEST['email']."");
$result = curl_exec ($curl);
print_r($result);
}
else
{
?>
<html lang="en">
<head>
<title>Newsletter subscription</title>
</head>
<body>
<h1 style="font-family: Arial, sans-serif">Newsletter subscription</h1>
<p style="font-family: Arial, sans-serif">To stay up to date on special offers and promotions, subscribe now!</p>
<form action="" method="post">
<input style="font-family: Arial, sans-serif" type="text" name="email" placeholder="Enter your email address" size="30"/>
<input style="font-family: Arial, sans-serif" type="submit" name="subscribe" value="Subscribe"/>
</form>
</body>
</html>
<?php
}
?></code></pre>
<p>Now, your newsletter subscription is complete. Publish the page with the subscription form on your website. When website visitors enter their email address and click on the "Subscribe" button, the double opt-in process is initiated and the visitors become mailing recipients.</p>What is the REST API and why should I use it?/blogs/eric-hubert/dates/2020/11/Introduction-to-REST/2020-11-19T15:27:20.0000000Z<p>In this blog post, I like to introduce you to Episerver Campaign's latest Application Programming Interface (API) following the modern architectural style of Representational State Transfer (REST). I will show you its advantages over our traditional HTTP mail/form and SOAP web services as well as give you some tips to quickly get started.</p>
<p>RESTful web services are based on the principles and behavior of the World Wide Web. They enable consumers to access and manipulate textual representations of web resources using a standardized set of stateless operations (HTTP methods). Responses contain status information about the outcome of request processing (e.g. they can confirm state modifications to a resource or indicate non-existing resources or processing errors) which also follow internet standards, see the <a href="https://www.ietf.org/about/" target="_blank" rel="noopener">Internet Engineering Task Force (IETF)</a> <a href="https://en.wikipedia.org/wiki/Request_for_Comments" target="_blank" rel="noopener">RFCs</a> <a href="https://tools.ietf.org/html/rfc7230" target="_blank" rel="noopener">7230</a>-<a href="https://tools.ietf.org/html/rfc7235" target="_blank" rel="noopener">7235</a>.</p>
<h2>Advantages of the REST API</h2>
<p>In addition to its simplicity, ease of use and great interoperability which increase the development and integration productivity, the REST API also brings the following advantages:</p>
<ul>
<li>Support of other data formats than XML; we use the more compact JSON by default</li>
<li>JSON results in faster parsing, less network bandwidth usage and offers better support of browser clients (e.g. JavaScript)</li>
<li>Superior performance, particularly through caching of information that is not altered and not dynamic</li>
<li>More scalable (e.g. no use of sessions)</li>
<li>Simple and dynamic documentation based on the <a href="https://swagger.io/specification/" target="_blank" rel="noopener">OpenAPI specification</a> supporting convenient features like "Try it out" (see below)</li>
</ul>
<p>Therefore, we focus our own development efforts on the REST API. Existing features of our HTTP and SOAP APIs are continuously integrated in our REST API. Newer features like Smart Campaigns are only available in the REST API. You can find a list of all currently available endpoints in our <a href="/link/69e99f26561345758a6cf8dc843e8177.aspx" target="_blank" rel="noopener">resource documentation</a>.</p>
<h2>Tips for working with the Episerver Campaign REST API</h2>
<p>To use the REST API, you need an Episerver Campaign client set up for this purpose, and an API user with credentials to authenticate. Once <a href="/link/37288475a0884c6d9fe56a4717991432.aspx#client" target="_blank" rel="noopener">set up</a>, you can test and use the REST API either directly from our resource documentation using the "Try it out" feature or using any HTTP/REST client of your choice like Postman, Insomnia, Paw or the command-line tool CURL.</p>
<p>Each REST API endpoint URL is built according to the following schema: <span class="classLib">https://api.campaign.episerver.net/rest/{clientId}/{component}/{path}?{parameters}</span>.</p>
<p>The "clientID" parameter is the ID of your client in which the REST API has been set up and represents the root element of each endpoint. You can find the client ID in Episerver Campaign under <strong>Administration</strong> > <strong>API overview</strong> > <strong>REST API</strong>.</p>
<p>When performing API calls, you receive response status codes for each request. In addition to the response status code, you should always process an existing response body to either retrieve the representation of the resource or additional information about business errors.</p>
<h2>Try it out and share your experience</h2>
<p>Please feel free to use the REST API and integrate Episerver Campaign's rich functionality into your system or develop your own solution!</p>
<p>You are also welcome to check the <a href="/link/bccc323fc15e45259d7a934d1efb5d52.aspx" target="_blank" rel="noopener">Episerver Campaign blog</a> from time to time - there will be more posts about the REST API, new features, and endpoints in the future.</p>
<p>If you like, you can also blog yourself or discuss APIs and integrations with other developers in the <a href="/link/1faa15de953641eda8ac05625f8320c6.aspx">Episerver Campaign forum</a>.</p>Episerver Campaign feature update/blogs/thomas-hoppe/dates/2020/8/episerver-campaign-feature-update/2020-08-14T10:44:57.0000000Z<p>We are continually developing Episerver Campaign, improving already existing functionalities, and releasing new features to make working with Episerver Campaign even more effective. In the first half of 2020, we released features and updates including the following:</p>
<ul>
<li><a href="#self">Self-services for opt-in and unsubscribe processes</a></li>
<li><a href="#SWYN">New SWYN buttons for WhatsApp and email</a></li>
<li><a href="#image">High resolution images in mailings</a></li>
<li><a href="#black">Increased number of custom blacklists</a></li>
<li><a href="#GDPR">Right to be forgotten</a></li>
<li><a href="#shopware">New Shopware versions for integration</a></li>
</ul>
<h2><a id="self"></a>Self-services for opt-in and unsubscribe processes</h2>
<p>We enhanced our self-service capabilities, allowing you to make changes to opt-in and unsubscribe processes yourself without contacting customer support.</p>
<h3>Opt-in processes</h3>
<p>The opt-in process feature lets you create a new opt-in process for new newsletters or temporary marketing campaigns. You can also change the confirmation page for existing opt-in processes, for example if you want to relaunch your website or create a new confirmation page.</p>
<p><img src="/link/429741c9320b4605b9280829fa306b2b.aspx" alt="Opt-in process" width="1500" height="620" /></p>
<p>Find out more in the <a href="https://webhelp.episerver.com/latest/en/campaign/omnichannel/confirmations.htm">Episerver User Guide</a>.</p>
<h3>Unsubscribe link</h3>
<p>Not only the confirmation page for the opt-in process needs to be updated after a website relaunch - also the unsubscription's confirmation page. You can now easily change the unsubscribe link yourself in the Episerver Campaign frontend.</p>
<p><img src="/link/ab5957da68cb4e91b54f43d3ff957dcb.aspx" alt="Unsubscribe link" width="800" height="265" /></p>
<p>For an instruction and tips, see the <a href="https://webhelp.episerver.com/latest/en/campaign/recipients/unsubscribers.htm#ChangingtheconfirmationpageURL">Episerver User Guide</a>.</p>
<h2><a id="SWYN"></a>New SWYN buttons for WhatsApp and email</h2>
<p>The SWYN (Share With Your Network) feature lets your mailing recipients share message content on social networks for greater reach. Besides Facebook, Twitter and Xing, you can now add SWYN buttons for WhatsApp and email to your mailings. As usual, you can individually turn the SWYN feature on and off for each content paragraph of your mailing or customize the content.</p>
<p><img src="/link/f76f34434741442ebeb8a7daae5d7745.aspx" alt="SWYN" width="1500" height="812" /></p>
<h2><a id="image"></a>High resolution images in mailings</h2>
<p>You can now adjust the image quality for mailings that you create based on the Template Kit. If you select "High-resolution", you make sure that images do not lose their sharpness when rendering the mailing. You can make this adjustment in the image bar paragraphs, text/image paragraphs, content interface paragraphs and in the general settings.</p>
<p><img src="/link/7544c59351a347a58a8dd639be767af3.aspx" alt="Image quality" width="1500" height="858" /></p>
<h2><a id="black"></a>Increased number of custom blacklists</h2>
<p>Depending on the client's structure, it might be useful to use several blacklists - for example, if you use one client for several trademarks or publications. Previously, you could define up to three custom blacklists for individual mailings, which were to be checked before sending. Now you can use up to 10 blacklists per mailing.</p>
<p>Find out more in the <a href="https://webhelp.episerver.com/latest/en/campaign/recipients/blacklist/custom-blacklist.htm">Episerver User Guide</a>.</p>
<h2><a id="GDPR"></a>Right to be forgotten</h2>
<p>According to Article 17 of the General Data Protection Regulation (GDPR), the right to be forgotten, every person has the right to have personal data deleted. In the recipient history, you can now irrevocably delete recipient data.</p>
<p><img src="/link/2db55af0f2de48ff8ec80f871a52acd4.aspx" alt="Right to be forgotten" width="1138" height="431" /></p>
<p>Find out more in the <a href="https://webhelp.episerver.com/latest/en/campaign/recipients/recipient-history.htm#Righttobeforgotten">Episerver User Guide</a>.</p>
<h2><a id="shopware"></a>New Shopware versions for integration</h2>
<p>You can now integrate Episerver Campaign with your Shopware solution up to Shopware version 5.6. You get the following features on Shopware Professional, Professional Plus and Enterprise 5.2–5.6:</p>
<ul>
<li>Newsletter subscription and unsubscriptions</li>
<li>Transactional mails via HTTP API</li>
<li>Export product catalogs into Episerver Campaign</li>
</ul>
<p class="informationBox"><strong>Tip:</strong> To stay up-to-date and get information on the latest releases, see the <a href="/link/bac2c19b2b2b4a6fb3eba23049cdc3d1.aspx">weekly updates</a> on Episerver World and <a href="https://webhelp.episerver.com/latest/en/getting-started/whats-new.htm">What's new</a> in the Episerver User Guide. </p>What is Intelligent Campaigns?/blogs/episerver-evangelist-forum/dates/2017/10/what-is-intelligent-campaign/2017-11-15T15:26:00.0000000Z<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h3><span>Introducing Intelligent </span><span>Campaigns</span><span> to the US - and to the world</span><span data-ccp-props="{"201341983":0,"335559738":40,"335559739":0,"335559740":259}"> </span></h3>
<p><span>Episerver</span> <span>is</span><span> </span><span>(</span><span>re)</span><span>introducing</span><span> our Campaign product to the US Market, this time </span><span>entit</span><span>led</span><strong> "Intelligent Campaigns</strong><span><strong>"</strong>.</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span></p>
<p><span>Your first question - what is </span><strong>Intelligent Campaigns</strong><span>? Is it a new product that the team has been developing in our labs specifically for the US?</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span></p>
<p><span>The answer is much </span><span>simpl</span><span>er</span><span> than that. </span><strong>Intelligent Campaigns</strong><span> is our </span><span>official</span><span> release of the same </span><span>Campaign</span><span> product that many of our customers are already </span><span>using around the world, but now with a focus on its combination with our existing Personalization product suite - </span><span>Perform, Advance (coming soon), Reach and Insight (coming soon).</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span></p>
<h3><span>Why Intelligent Campaign</span><span>s</span><span> - and what does it mean for our Customers?</span><span data-ccp-props="{"201341983":0,"335559738":40,"335559739":0,"335559740":259}"> </span></h3>
<p><strong>Intelligent Campaigns</strong><span> is a logical pairing of existing integrated technologies into the DXC platform to create an Omni-Channel Marketing Automation Service for our customers that </span><span>transforms</span><span> your existing CMS into a forward-thinking, innovative Customer Experience that engages at every step of the sales journey.</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span></p>
<p><span>This now allows Customers to harness an </span><span>intuitive</span><span>, easy to use Campaign Manager tool as they choose to move forward in their </span><span>digi</span><span>t</span><span>al</span><span> maturity toward customer engagement to </span><span>generate</span><span> increased AOV, Customer Retention Rates and Conversion Rates for </span><span>Co</span><span>mmerce</span><span>. Our Campaign tool becomes one of the main pillars of the </span><span>Episerver</span><span> offering, </span><span>complimenting</span><span> </span><span>our CMS & Commerce offerings. You can learn more about the product </span><a href="http://www.episerver.com/products/platform/campaign/"><span>here</span></a><span>.</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span></p>
<p><span>So how do we get to </span><strong>Intelligent Campaigns</strong><span>? Well, </span><span>Episerver</span><span> also includes best-in-class products around Product </span><span>Recommendation</span><span>, our </span><span>Perform, Advance and Reach</span><span> products.</span><span> Intelligent Campaign</span><span> is a product package that brings to Digital Content producers, Marketers and Merchandisers a pairing of extended customer engagement with </span><span>no-rules personalization</span><span> to make </span><span>your </span><span>customer </span><span>interactions</span><span> that much more impactful.</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span></p>
<p><span>While our Campaign product speaks for itself in the market, we feel this new aligned paring of </span><span>features </span><span>speaks directly to the market's need for:</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span></p>
<ul>
<li data-leveltext="" data-font="Symbol" data-listid="1" data-aria-posinset="1" data-aria-level="1"><strong>Easy-to-build Campaign Management<span> - </span></strong>as a marketer, you want your product suite housed under one roof. You don't want to manage multiple subscriptions to services, multiple login pages to combine technologies. Intelligent Campaign provides an integrated solution into the existing Episerver Digital Cloud Experience allowing you to build custom Landing Pages in your existing CMS, access your web assets when building your custom emails, and easy access to your previously created data points when creating your visual Campaigns.</li>
<li data-leveltext="" data-font="Symbol" data-listid="1" data-aria-posinset="1" data-aria-level="1"><strong>Product Recommendations</strong><span> - as you choose to begin extending your customer </span><span>engagement</span><span> to Email Marketing and Automation, </span><span>your marketing messages</span><span> must connect with your customers to create trust and brand loyalty. Take </span><span>advantage</span><span> of no-rule personalization to have these </span><span>emails</span><span> include </span><span>product and content </span><span>rec</span><span>om</span><span>mendations</span><span> catered to the user's on-site </span><span>be</span><span>ha</span><span>vior</span><span>.</span><span data-ccp-props="{"134233279":true,"201341983":0,"335559739":160,"335559740":259}"> </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="1" data-aria-posinset="2" data-aria-level="1"><strong>Trigger-based Activation</strong><span> - your email campaigns should not be limited to monthly blasts to your general customer list. Use the </span><span>Reach</span><span> product offering to send triggered emails to your customers based on on-site </span><span>activities </span><span>such as "Abandon Cart" or "Items you Might Like"</span><span data-ccp-props="{"134233279":true,"201341983":0,"335559739":160,"335559740":259}"> </span><span data-ccp-props="{"134233279":true,"201341983":0,"335559739":160,"335559740":259}"> </span></li>
</ul>
<h3><span>What does this mean for Developers?</span><span data-ccp-props="{"201341983":0,"335559738":40,"335559739":0,"335559740":259}"> </span></h3>
<p><span>Intelligent Campaign</span><span>s</span><span> gives the developers a </span><span>mo</span><span>re</span> <span>seamless</span><span> integration with </span><span>Episerver</span><span> Campaign, </span><span>Episerver</span><span> CMS and Commerce with </span><span>Episerver</span><span> Reach as </span><span>a</span><span> common personalization</span> <span>de</span><span>nomin</span><span>ator</span><span>. </span><span> <br /></span><span>Episerver</span><span> leverages the easy installation of </span><span>nuget</span><span> packages which </span><span>Episerver</span><span> products </span><span>are </span><span>always delivered with, accessible from their developer environment. </span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span></p>
<p><span>After </span><span>installing</span><span> the </span><span>nuget</span><span> package for Intelligent Campaign you are good to go to actually start using </span><span>Campaign</span><span> with</span> <span>Episerver</span><span> CMS and Commerce, </span><span>an example of</span> <span>that is posting data from </span><span>Episerver</span><span> Forms directly to </span><span>Episerver</span> <span>Campaign </span><span>after installing the package</span><span>.</span> <span>Further c</span><span>onfiguration for</span> <span>this installation is made through the onboarding phase which follows every purchase </span><span>of Intelligent Campaign</span><span>, both focused for marketing and developers.</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span></p>
<p><span>But, I didn't mention </span><span>Episerver</span> <span>Reach above,</span> <span>which is a huge part of sending these personalized emails on a 1:1 level</span><span>.</span> <span>Episerver</span><span> Reach is</span> <span>installed through another </span><span>nuget</span><span> package since this is a part of our AI Personalization suite.</span><span> T</span><span>he </span><span>nuget</span><span> package for </span><span>Episerver</span><span> Reach applies the tracking to your </span><span>Episerver</span><span> installation and from that you can test your first personalized campaign with the power of </span><span>Episerver</span><span> Campaign as a messenger with just a small snippet of code generated from the </span><span>Episerver</span><span> Reach UI.</span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span></p>
<h3><span>Que</span><span>s</span><span>tions</span><span>?</span><span data-ccp-props="{"201341983":0,"335559738":40,"335559739":0,"335559740":259}"> </span></h3>
<p><span>Want to learn more? See a demonstration of Intelligent Campaigns in action? Email your sales representative to set up a personalized session so our team can show you how to take advantage of this new offering for your marketing </span><span>orgnaization</span><span>.</span><span> </span><span data-ccp-props="{"201341983":0,"335559739":160,"335559740":259}"> </span></p>
</body>
</html>Episerver Campaign for developers/blogs/filip-gondek/dates/2017/10/episerver-campaign-for-developers/2017-10-31T13:35:21.0000000Z<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>When we at Episerver are presenting Episerver Campaign for customers and partners we some times get the question: “is that the campaigns and promotions in Episerver Commerce?” The answer is <strong>NO,</strong> and I know it can be very confusing. It’s not the promotions part in Episerver Commerce.</p>
<p>In this blog I will explain what Episerver Cmapaign is and how you as a developer can request a demo account to start get familiar with the product. Before we show what is possible to do I will explain marketing automation in general.</p>
<h2>Marketing Automation what is that?</h2>
<p>Marketing Automation is a subset of customer relationship management that focuses on the definition, segmentation, scheduling and tracking of marketing campaigns. The use of marketing automation makes processes that would otherwise have been performed manually much more efficient and makes new processes possible</p>
<h2>What is Episerver Campaign then?</h2>
<p><img src="/link/f8b8031432924b0db5a09b59826599ed.aspx" width="181" alt="Image devices-main1-marketing-900x700.png" height="141" /></p>
<p>Episerver Campaign is a Marketing Automation tool that enables you to easily manage campaigns across web, mobile, email and text messages etc. You can connect with customers wherever they are, with messages based on real-time behavior.</p>
<h2>What can Episerver Campaign help our customers with?</h2>
<ul>
<li>Large-scale campaigns across multiple channels. Coordinate, segment and personalize large volumes of messages.</li>
<li>Ecommerce campaigns that drives sales. Plan detailed campaigns, including personalized product recommendations.</li>
<li>Triggered individual communication. Create welcome campaigns, reactivate customers, and reduce abandoned shopping carts.</li>
<li>Public sector and healthcare messages. Send confirmation and reminder emails and texts with high data security.</li>
</ul>
<p>So, “Cut the sales crap and tell me what I can do as a developer!” :-). Easy, Easy I’ll explain it to you now.</p>
<p>First of all you may wonder why you should have to integrate to this product? Well, there are many “whys” but like Episerver CMS/Commerce Episerver Campaign has APIs to make it fit to the customers systems and needs. A simple use case can be if the customer has a CRM that is not known or has not been integrated to. Then you can connect the CRM that triggers different MA flows in Campaign depending on for example status in the CRM. Lets say that the people working with the CRM changes a status on a customer from “new customer” to “loyal customer”. This can trigger a specific MA Campaign that sends out a specific Campaign only for the status “loyal customer”.</p>
<p>There are a couple of different ways to use this product for you as a developer:</p>
<p><strong>Native NuGet integration: </strong>Out of the box the customers will get integration to CMS and Commerce (will arrive in near term, still work in progress) that you install in your customers solution through NuGet. If you create a Episerver Forms you can connect to the choosen recipient list in Episerver Campaign as shown in the picture.</p>
<p><img src="/link/7d56ac874fd2409bac6116667b354cc9.aspx" width="500" alt="Image Screen Shot 2017-10-30 at 22.58.22.png" height="423" /></p>
<p>Next you choose the corresponding fields to save the data to, for example the "first name" will be saved in the same column in Episerver Campaign:</p>
<p><img src="/link/92f90105d5b5468e8f633d1e90931093.aspx" width="505" alt="Image Screen Shot 2017-10-30 at 23.11.17.png" height="593" /></p>
<p>The data will be saved in the reciepient list as shown below:<br /><br /><img src="/link/0f167b411e414a29a8b4ffa624b04053.aspx" width="760" alt="Image Screen Shot 2017-10-30 at 23.16.49.png" height="285" /></p>
<p>And it will trigger a MA flow as shown in the picture:</p>
<p><img src="/link/a1fe8941d6c44df5a3bf2f951db8a1f1.aspx" width="750" alt="Image Screen Shot 2017-10-30 at 23.22.35.png" height="387" /></p>
<p><strong>HTTP API:</strong> Very limited functionality. What you can do is basically trigger a MA Campaign. These are the functions you can use it for:</p>
<ul>
<li>Create new recipients</li>
<li>Send triggered emails</li>
<li>Blacklist recipients</li>
<li>Unsubscribe recipients</li>
</ul>
<p><span class="Apple-tab-span"> </span>an example of this can be: "[UrlToService]/unsubscribe?<span class="s2">bmRecipientId=foo@bar.com"</span> for unsubscribing.</p>
<p><strong>SOAP API </strong>. This API contains all the functionality that Episerver Campaign uses so it’s the most flexible and secure way to integrate to. You can execute virtually any function of Episerver Campaign from a remote system without using the web browser and logging into your client manually. The interface is bi-directional, which means that you can send and receive data from/to Episerver Campaign. The following processes can be executed with the SOAP API:</p>
<ul>
<li>Create recipient lists and add new recipients</li>
<li>Edit recipient lists and recipients</li>
<li>Update and synchronize blacklists</li>
<li>Create temporary and permanent target groups</li>
<li>Create mailings, add content and dispatch mailings</li>
<li>Bounce management</li>
</ul>
<p><strong>Example</strong>: To query several recipients in the RecipientWebservice, the default method getAllFlat would return an array that has been flattened to the following pattern: [email1, firstName1, lastName1, email2, firstName2, lastName2, email3, firstName3, lastName3....] To process this array, the fields must be indexed to allocate the respective fields to one recipient.</p>
<p>Now you may think, that wasn't hard to undrstand! Is that all? Of course there is more to read. If you as a developer have a case and want to test Episerver Campaign then contact our support. For more information about the product or APIs see <span class="s2"><a href="/link/67cb85f93f1543da9b381de989f61118.aspx">https://world.episerver.com/campaign/</a><a href="/link/67cb85f93f1543da9b381de989f61118.aspx"></a></span></p>
<p><em><span class="s2">DISCLAIMER: Some of the functionality in the out of the box integration may be changed or added upon release!</span></em></p>
</body>
</html>