Email Marketing Automation

Updated 20-Sep-2023

There are various aspects of email marketing automation, including: - Newsletters - Drip Email - Customer Relationship Management (CRM) Suffice it to say that all of these are connected in some kind of venn diagram. However, when it comes to each of these in terms of software integration, they all start from different sides of the triangle.

Newsletters

Newsletters start with the newsletter, that is the thing that is created and sent. Along with that of course are lists of subscribers (to whom they are sent). Newsletters are most like a website in terms of content being created and posted with dates/times. In fact newsletters are a favorite way of ensuring one stays up to date with new content on a website. All visitors to a site should be able to subscribe to updates for that site, naturally. ALO Easymail Newsletter is a really good option for newsletters (though not for CRM or Drip Email).

Customer Relationship Management

CRM must necessarily start with the customer, and then builds out various customer interactions and touchpoints, as well as tracking their behavior in different campaigns. CRM is usually big-picture and is database driven. This can be difficult to use on a content management site (WordPress), as one is based on content and the other on customer relationships. WooCommerce probably has the best built-in CRM based on its ecommerce engine. Lots of info is available, and private notes can be added to transactions and to customer accounts.

Drip Email

Drip Email are messages sent at different intervals (hence the drip part) but it can also be triggered based on behavior. For example, if a newsletter goes out, and some number of people click on a new product description, they could be added to that special interest (of course it is a guess, but better than nothing). Then custom tailored newsletters could be sent in the future to focus on what was engaged with in earlier newsletters.

Other Transactional Email

Other email functions on a site are best supported supported by a generic contact plugin such as Contact Form 7, which is simple, powerful, and extensible.

Email Marketing Automation Requirements

In order to get the whole ball of wax, the following needs to be supported: - Interact with Newsletters functions (ALO Easymail) - Interact with Ecommerce functions (WooCommerce) - Single user database - Easy to configure multiple workflows - Easy to configure triggers - Easy to configure messages - Automation - Analytics (behavior/reactions to emails, e.g., open, click, and unsubscribe rates) - Correlation analysis, campaign performance - Integration with Google Analytics events (if possible and desired)

WooCommerce Options

WooCommerce already is customer-centric (an account can have 0-n transactions). WooCommerce (and WordPress user accounts) may be the place to extend email marketing automation, in terms of managing users, groups, and managing the analytics. What we need most likely is a CRM-centric system that then integrates into Newsletters as well as drip email workflow. The content could and likely should be custom posts (even so far as being Newsletters managed in ALO).

Email Marketing Automation Components

Use of Postman SMTP and the wp_mail function may be all that is needed for the actual sending of email. However, creating trackable links and receiving, rewriting, and logging them is an important complication. Other aspects include: creating and managing different drip email campaigns, the sequence of email (message content and time interval or behavioral trigger), using the cron system for unattended execution, some kind of alert system on positive or negative events.

Follow Ups by WooThemes

Follow Ups -- aka Follow-Ups, Follow-up, Follow-ups, and possibly Follow ups, Follow Up, Follow-Up, and Follow up (yes, there is no consistency, and the original was called follow-up-emails, that's right emails) -- is in fact a drip email system with triggers and timers, and also supports newsletters. As well there is integration with Sensei and various WooCommerce extensions and plugins, such as Bookings. This appears to be a great option, as the focus is to have this kind of Email Drip directly inside of WooCommerce, with all the email/list/message/newsletter functionality needed.

Advent of CRM

By extending WooCommerce with some custom admin fields, and using FollowUp, a rudimentary CRM essentially exists, though there are also some WordPress CRM plugins that don't require an external SASS component, such as WP-CRM (rudimentary, but appears to be useful), WooCommerce Customer Relationship Manager (currently breaks my site), WordPressLeads (negative reviews), and UpiCRM (which looks to be the most promising).

ALO Easymail has a variety of functions that work well

  • Subscribe, unsubscribe, double-opt-in
  • Email open tracking, link click tracking
  • Email newsletter templates, newsletters as custom posts
  • Email sending queue, cron support, reporting on send success/failure

What ALO Easymail doesn't do or do well

  • It can't resend a newsletter to a different list (sending is a one-time event, have to recreate the newsletter, assign mailing lists, and send again), effectively it ties the recipients and the sending event (and success/failure) to the newsletter itself
  • API does not allow creation of a newsletter, assigning of lists to a newsletter to be sent, or sending of a newsletter (all manual processes currently)
  • While it can report on send/failure on a per recipient basis, that is at the level of the newsletter, and the user does not have their send history available across newsletters
  • No ability to annotate or add notes about recipients, lists, or newsletters
  • Have to make a duplicate of a newsletter in order to send to more recipients

ALO Easymail Configuration

ALO Easymail Integration with Contact Form Seven

get_posted_data();
    $fields['email'] = $data["your-email"];
    $fields['name'] = $data["your-name"];
    if ( function_exists ('alo_em_add_subscriber') && is_email( $fields['email'] ) )
    {
        alo_em_add_subscriber( $fields, 1, alo_em_get_language(true) );
        $subscriber = alo_em_get_subscriber( $fields['email'] );
        if ( ! empty( $data["easymail-lists"][0] ) ) {
            foreach( $data["easymail-lists"] as $list_id ) {
                alo_em_add_subscriber_to_list ( $subscriber->ID, $list_id );
            }
        }
    }
    return $cf7;
}
add_action( 'wpcf7_before_send_mail', 'my_easymail_add_subscriber' );