Estamos preparando un cambio en nuestro sistema y necesitaremos poder enviar recordatorios por correo pasado un tiempo tras darse de alta, correos recordando que dispone de X tiempo de prueba, otro para ayudar a arrancar en el sistema, cuando queden pocos días para finalizar el periodo de evaluación, etc.
Se nos ocurren dos métodos:
1.- Una tabla (tipo cola) donde añadimos los correos a enviar ya con la fecha en la que se han de enviar.
2.- Que cada día se miren los correos a enviar en base a las condiciones indicadas.
El método 1 tiene la ventaja que el sistema de envíos es muy sencillo y ligero, por el contrario, ante un cambio en la cuenta del usuario hay que revisar lo pendiente en la cola y actuar en consecuencia: eliminar, cambiar fechas, etc. Además puedes ver qué mensajes se van a enviar a un usuario y cuales ya se han enviado.
El método 2 tiene la ventaja que se adapta sobre la marcha a los cambios, pero cada día se han de ejecutar todas las condiciones y no puedes ver los mensajes que recibirá un usuario.
¿Experiencias al respecto? ¿Cómo lo hacéis vosotros? ¿Cual pensáis que es la mejor opción?
Es un tema complicado, quizás empezaría por lo que comentas, tener un sistema para llevar la gestión de qué emails se han enviado y a quien. Incluso podrías implementar algo de lógica para enviar mails a futuro. Me explico:
Un cliente se registra en un plan freemium, una buena manera de mantenerlos sería a la semana enviarle un email para preguntarle como va con la plataforma, para que de feedback. Cuando esté acabando el periodo freemium enviarle un mail para recordarle que puede pagar para mantenerse,... todo estos eventos puedes registrarlos en una tabla cuando se registra y tener un proceso que cada día recorra la tabla y envíe el email que toque. No se si me termino de explicar.
Por otro lado, más adelante podrías implementar el método 2, es decir, recorrer la tabla de emails enviados y en base a una lógica de negocio enviar un mail de forma puntual. Por ejemplo haciendo "matching" con usuarios que llevan más de 2 semanas sin entrar y a los que no se le ha enviado mail de recordatorio.
Como he dicho es un tema complicado, aunque seguramente empezaría por una solución sencilla que me proporcionase datos en el futuro para poder tomar decisiones basadas en los datos que haya podido recopilar.
La idea, efectivamente, es para temas de trials, recordatorios diversos, etc. el uso va a ser muy variado, y de ahí que opine que separar en dos el proceso es mejor. Por un lado ante un evento del usuario (alta de un trial) se generan una serie de entradas en la cola de mensajes, con unas fechas determinadas, que luego el proceso de cola se encargará de enviar. Si el usuario hace otro evento (cancelar el trial o contratar el servicio) se reacciona y se limpia la cola de mensajes pendientes de enviar y se añaden otros como respuesta al evento actual.
Me gusta la idea de poder mezclar los dos sistemas, si a cada mensaje le ponemos un código para identificar de que trata, podemos luego analizar la cola y añadir o quitar en base a determinados triggers.
Al final nos hemos decantado por no desarrollarlo, sino por realizar la integración de http://intercom.io, ya que además de los mensajes tienen muchas otras funcionalidades que nos van a venir muy bien.
Se nos ocurren dos métodos:
1.- Una tabla (tipo cola) donde añadimos los correos a enviar ya con la fecha en la que se han de enviar.
2.- Que cada día se miren los correos a enviar en base a las condiciones indicadas.
El método 1 tiene la ventaja que el sistema de envíos es muy sencillo y ligero, por el contrario, ante un cambio en la cuenta del usuario hay que revisar lo pendiente en la cola y actuar en consecuencia: eliminar, cambiar fechas, etc. Además puedes ver qué mensajes se van a enviar a un usuario y cuales ya se han enviado.
El método 2 tiene la ventaja que se adapta sobre la marcha a los cambios, pero cada día se han de ejecutar todas las condiciones y no puedes ver los mensajes que recibirá un usuario.
¿Experiencias al respecto? ¿Cómo lo hacéis vosotros? ¿Cual pensáis que es la mejor opción?
24/02/2015 09:02
Un cliente se registra en un plan freemium, una buena manera de mantenerlos sería a la semana enviarle un email para preguntarle como va con la plataforma, para que de feedback. Cuando esté acabando el periodo freemium enviarle un mail para recordarle que puede pagar para mantenerse,... todo estos eventos puedes registrarlos en una tabla cuando se registra y tener un proceso que cada día recorra la tabla y envíe el email que toque. No se si me termino de explicar.
Por otro lado, más adelante podrías implementar el método 2, es decir, recorrer la tabla de emails enviados y en base a una lógica de negocio enviar un mail de forma puntual. Por ejemplo haciendo "matching" con usuarios que llevan más de 2 semanas sin entrar y a los que no se le ha enviado mail de recordatorio.
Como he dicho es un tema complicado, aunque seguramente empezaría por una solución sencilla que me proporcionase datos en el futuro para poder tomar decisiones basadas en los datos que haya podido recopilar.
24/02/2015 15:05
Me gusta la idea de poder mezclar los dos sistemas, si a cada mensaje le ponemos un código para identificar de que trata, podemos luego analizar la cola y añadir o quitar en base a determinados triggers.
Gracias.
28/02/2015 11:15
Y la verdad que tiene muy buena pinta, parece muy adecuado a lo que necesitamos.
16/03/2015 10:54
Yo me decantaría por el segundo ya que siempre hay que ir a lo simple ( KISS ).
Un saludo
16/03/2015 10:56
16/03/2015 11:01