Post on 25-Jan-2015
description
E-mailMarketingFramework
Davy Van Den Bremthttp://www.drupalcoder.com
Who am I?
• Krimson
• EMF, Administration theme, Subsites, ...
• drupalcoder.com
• twitter.com/davyvandenbremt
Roadmap
•Why EMF exists
•What EMF does
•How to integrate new services
•Missing stuff
Why EMF exists
What EM is about (1)
• Subscriber management
•Campaign management
•Campaign reporting
What EM is about (2)
• Privacy
• Spam
State of EM in Drupal
• Simplenews
•Campaign Monitor
•MailChimp
• PHPList
•Mailman
EMF?
•All services do the same, but different
• Provide a middle layer
•Write functionality once, use for compatible services
Subscription management
• Lists
• Fields
• Subscribers
Abstraction
function ..._subscribe($email, $fields, $lid)
function ..._unsubscribe($email, $lid)
function ..._get_subscribers_subscribed($date = 0, $lid = NULL)
function ..._get_subscribers_unsubscribed($date = 0, $lid = NULL)
function ..._get_lists()
function ..._get_custom_fields($lid)
What EMF does
Framework
• Implement functionality once
•Write plugins (as modules) that teach EMF basic stuff
Supported services
•Campaign Monitor
•MailChimp
• Interspire (Thx Coworks!)
•Addemar (Thx Stijn De Meyere)
Performance/reliability
• Requests are queued
• Subscription status synced locally
Supports multiple lists
Field mapping (1)
•Map list fields to Drupal values
• Per list configuration
• Support for PHP, Profile, Token
Field mapping (2)
Multiple UI elements
• Block per list
•Common block
• Page per list
•Common page
Block per list
Common block
Page per list
Common page
Smart UI
• Field values of authenticated users are calculated and just checkbox is offered
• Lists a user is subscribed too are not offered anymore
Roles support
Easy to use
•Configure on mail service
• Sync config to Drupal
• Bidirectional sync of subscriptions
•Change UI header, title, ... per list
• Field mapping in UI
API for your modules
function emf_db_get_requests()
function emf_db_save_request($type, $mail, $lid, $fields = array())
function emf_db_delete_request($mail, $lid)
function emf_db_get_subscriptions($mail)
function emf_db_save_subscription($mail, $lid)
function emf_db_delete_subscription($mail, $lid)
function emf_db_get_list($lid = 0)
function emf_db_get_lists($active_only = FALSE)
How to integrate new services
Plugin module
hook_emf_info
Implement methods
Missing stuff
Subscriber management only
•No campaign management
•No reporting
• But that’s the stuff those services are so good at (including spam and privacy)
Advanced subscriber management
• Subscription on registration
•Webform support
•Contact form support
•Unsubscription support
•Manage subscriptions on profile
Multiple active services
Questions?drupal.org/project/emf
twitter.com/davyvandenbremt