User Guides
Mailing List / Newsletter
Getting Started
Deployment
- Self-hosting Dittofeed
- Self-Hosting Options
- Using Dittofeed Cloud
Integrations
- Data Sources
- Data Source Types
- Message Channels
- Message Channel Types
- SDK's
- Available SDK's
- Data Destinations
- Data Destination Types
Workspace Resources
- Resources
- Journeys
- Journey Nodes
- Segments
- Segment Nodes
- Templates
- Template Types
- Workspaces
- Subscription Groups
- User Properties
- User Property Types
- Broadcasts
- Groups
User Guides
User Guides
Mailing List / Newsletter
How to add a mailing list or newsletter to your website.
The following example shows how to use the Web SDK to add a mailing list to your website. When a user subscribes to the mailing list, the SDK will send an identify event with the email address and a subscribe event with the configured subscription group ID.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Newsletter Signup</title>
<style>
.newsletter-container {
max-width: 500px;
margin: 0 auto;
padding: 20px;
border-radius: 8px;
background-color: #f8f9fa;
font-family: Arial, sans-serif;
}
.newsletter-form {
display: flex;
flex-direction: column;
gap: 15px;
}
.newsletter-title {
color: #333;
margin-bottom: 10px;
}
.newsletter-description {
color: #666;
margin-bottom: 20px;
}
.newsletter-input {
padding: 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 16px;
}
.newsletter-button {
padding: 12px 20px;
background-color: #4285f4;
color: white;
border: none;
border-radius: 4px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s;
}
.newsletter-button:hover {
background-color: #3367d6;
}
.success-message {
display: none;
color: #28a745;
margin-top: 10px;
}
</style>
<!-- Dittofeed SDK Snippet -->
<script type="text/javascript">
var _df = _df || [];
(function () {
var methods = ["track", "identify", "page", "flush", "subscribe", "unsubscribe", "getAnonymousId", "resetAnonymousId"];
methods.forEach(function (method) {
_df[method] = function () {
_df.push([method].concat(Array.prototype.slice.call(arguments)));
};
});
var script = document.createElement("script");
script.type = "module";
script.async = true;
script.src = "https://app.dittofeed.com/dashboard/public/dittofeed.umd.js";
script.id = "df-tracker";
// Replace with your own write key
script.setAttribute("data-write-key", "Basic your-write-key-here");
document.head.appendChild(script);
})();
</script>
</head>
<body>
<div class="newsletter-container">
<h2 class="newsletter-title">Subscribe to Our Newsletter</h2>
<p class="newsletter-description">Stay updated with our latest news and updates.</p>
<form id="newsletterForm" class="newsletter-form">
<input type="email" id="emailInput" class="newsletter-input" placeholder="[email protected]" required>
<button type="submit" class="newsletter-button">Subscribe</button>
</form>
<p id="successMessage" class="success-message">Thank you for subscribing!</p>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const form = document.getElementById('newsletterForm');
const emailInput = document.getElementById('emailInput');
const successMessage = document.getElementById('successMessage');
// Replace with your actual subscription group ID
const SUBSCRIPTION_GROUP_ID = "23b5757f-15a5-4477-858f-a96913b2a3f1";
form.addEventListener('submit', function(event) {
event.preventDefault();
const email = emailInput.value.trim();
if (email) {
// Send identify event with the email
_df.identify({
traits: {
email: email
}
});
// Send subscribe event with the subscription group ID
_df.subscribe({
subscriptionGroupId: SUBSCRIPTION_GROUP_ID
});
// Ensure events are sent immediately
_df.flush();
// Show success message and reset form
form.style.display = 'none';
successMessage.style.display = 'block';
}
});
});
</script>
</body>
</html>