编写欢迎电子邮件系列(仅需几分钟)

这是博客系列的一部分,在该系列中,我将说明如何使用Zenaton轻松重现当今的营销自动化服务所提供的任何功能-只需一名开发人员。

您可能知道,“欢迎电子邮件”系列是某人首次注册您的服务时自动获得的电子邮件营销序列。 缺少足够的文章来解释为什么这是一个好习惯以及如何编写这些电子邮件,因此我只想从开发人员的角度着眼于如何实现这样的系列。

通常,规格很简单:

当用户订阅时,发送“ my_beautiful_email1”,然后等待3天,然后发送“ my_beautiful_email2”,然后再次等待3天,最后发送“ my_beautiful_email3”

当然,时间间隔可以是1天或7天,或者其他任何时间,电子邮件的数量取决于CMO的应变能力和想象力。

作为开发人员,有很多方法可以解决此问题,例如:

  • 在表users设置一个新列registered_at (您可能已经猜到了,其中将包含注册的日期和时间)
  • 设置任务计划程序(例如cron)以每分钟执行一次任务
  • 此任务将每分钟向数据库发送一个请求,以检查用户是否刚刚注册,3天前,6天前已注册……并向他们发送正确的电子邮件。

这种方法已经需要大量的工作,并且由于大量的日期操作和sql请求而容易出错(要减轻这种情况,您可以预先计算发送日期和时间并将它们存储在数据库中,但是现在您已经给数据库模型增加了负担)。 对此的简化版本将在注册时启动第一封电子邮件,并在固定时间(例如上午9点)启动其他电子邮件。

其他一些实现也是可能的,例如使用允许延迟任务的任务排队系统:通过这种方式,您可以尝试在注册时以足够的延迟发送所有电子邮件。 但是通常,这些系统不允许更长的延迟(例如一个月),并且通常很难(即使不是不可能)在排队后删除消息。

所有这些只是为了发送一些电子邮件。 它应该更简单,也可以。

Zenaton方式

以下示例在node.js中提供,但在Zenaton支持的其他语言中类似。

第一次实施

使用Zenaton节点库,可以在WelcomeEmailSerie类中将以前的欢迎电子邮件系列编码为:

而且…这就是您所需要的! 由于此工作流程确实易于阅读,因此我不会逐行对此进行评论,但是如果您需要更多详细信息,请阅读文档。

可以通过以下简单命令启动工作流程,通常通过您的Web应用程序即可:

 新的WelcomeEmailSerie(user).dispatch() 

当然,如上所述,您仍然必须编写电子邮件并编写SendBeautilEmail1, 2 and 3任务的代码,但是您不必担心任务的编排,因为Zenaton根据WelcomeEmailSerie.js类为您处理任务(这个怎么运作)。

第二实施

现在,让我们假设您决定过一会儿,所有电子邮件(第一封邮件除外)都应在星期一上午8点发送。 Zenaton通过仅将新的工作流程版本应用于新实例,提供了一种优雅的方式,不必担心当前处于欢迎电子邮件系列中间的所有那些用户。 就像这样简单:

  • 重命名WelcomeEmailSerieWelcomeEmailSerie_v0
  • 创建新的实现WelcomeEmailSerie_v1
  • 创建一个参考WelcomeEmailSerie ,您将在其中列出所有正在运行的版本:

这就是启动和运行新工作流程所需要做的一切。

第三实施

现在,让我们假设一段时间后,您的CMO决定如果未激活用户,则该电子邮件系列应该继续。 然后,您的工作流程将变为:

为了不担心当前正在运行的工作流,请不要忘记将其注册到WelcomeEmailSerie

激活用户后,您的Web应用程序只需向该用户的WelcomeEmailSerie工作流发送事件:

  WelcomeEmailSerie.whereId(user.email).send(“ UserActivatedEvent”); 

结论

此示例说明了使用Zenaton实现欢迎电子邮件系列有多么容易。 更重要的是,根据您的需求进行更新非常容易。 在市场营销自动化服务上使用Zenaton,可以为您要做的事情提供完全的灵活性:靠近Web应用程序和数据库,您可以根据用户的工作轻松地微调工作流程。

Zenaton(https://zenaton.com)适用于了解其主要任务是通过快速迭代和新想法来改善业务的技术团队,而不是将大部分时间都花在解决纯粹的技术问题上。 如果您还有其他问题,请随时通过zenaton.com的gilles与我联系,或在下面询问他们👇