vtigerCRM-Spain::vtAP - vtiger CRM Programmed Emails

Objetivo del proyecto

El objetivo del proyecto es permitir la programación de envíos de email a contactos dentro de vtiger CRM. Se ha de permitir desde el envío puntual de un email hasta la asignación de un conjunto de acciones masivamente.

  • Los emails en sí permitirán un sistema de plantillas similar al que ya soporta el sistema vtiger CRM.
  • Deberemos permitir consultar el estado de envíos pasado y futuros desde el contacto.
  • Deberemos permitir alguna manera de asignar secuencias de acciones a contactos filtrando sobre cuentas.
  • Idealmente se debería poder controlar la apertura y los rechazos de los correos aunque es probable que este punto quede relegado para una futura ampliación del proyecto.

Diseño

Esta extensión a vtiger CRM consta de 3 nuevos módulos y algunos cambios en el comportamiento básico de vtiger CRM. Los nuevos módulos dotan a la aplicación de capacidad para programar el envío sistemático de emails a intervalos definidos, mientras que los cambios en el propio sistema permiten la agrupación, segmentación y selección de contactos para su inclusión en distintas acciones de marketing.

Acciones

La idea general es que tenemos un módulo que representa un conjunto de acciones que se pueden tomar. En la versión actual solo hay un tipo de acción que es el envío de emails pero este módulo sirve de base para futuras ampliaciones a otros tipos de acciones.

Una acción no tiene definición en el el tiempo, tan solo es la definición de la acción o email en si mismo. El siguiente módulo es el que nos permitirá ubicar el envío del email (ejecución de la acción) en una fecha determinada. Así, las acciones son un especie de almacén de plantillas que podemos utilizar una y otra vez para distintos contactos en diferentes momentos según el objetivo a conseguir. Incluso podemos aplicar las reglas de privacidad de vtiger CRM para que cada usuario solo vea aquellas plantillas que debe utilizar y/o segmentar las acciones por sectores, países o lo que se estime oportuno.

Dado que es un módulo normal de vtiger CRM, tenemos acceso a una vista de lista donde poder definir filtros, realizar búsquedas y añadir campos personalizados.

En la vista de detalle y edición se ha ampliado la funcionalidad para permitir la visualización y edición de las plantillas de email:

Acciones Programadas

El siguiente módulo denominado Acciones Programadas es el que nos permitirá ejecutar la acción del envío del email en un determinado momento.

Este módulo se compone de los siguientes campos:

  • Referencia: una cadena indentificativa de la programación
  • Acción: una captura a la plantilla de email (acción) a ejecutar
  • Asignado a
  • Status: si el estado de la programación es “Inactivo” el día de la ejecución, no se realizará la acción
  • Email From: establece el email del remitente del email a mandar. Las posibles opciones son:
    • Asignado a: el email del usuario asignado a la acción programada
    • Creado por: el email del usuario que ha creado la acción programada
    • Asignado a Contacto: el email del usuario asignado al contacto destinatario del email
    • Email directo: se utilizará el email introducido en el campo Email directo
  • Email directo: email a utilizar como remitente del correo si Email From vale Email directo
  • Fecha Ejecución: fecha en la que se mandará el email si el campo Fecha Variable no está marcado
  • Fecha Variable: si está marcado se utilizará el valor del campo de tipo fecha seleccionado en al campo Fecha de Referencia, si no se ejecutará la acción seleccionada en la fecha indicada por el campo Fecha Ejecución
  • Fecha de Referencia: este desplegable contendrá todos aquellos campos de tipo fecha presentes en el contacto para que podamos seleccionar la que queremos utilizar como base para ejecutar la acción. Además habrá un valor especial denominado Fecha asignación, esta fecha es dinámica y se establece en el momento en el que se asocia el contacto a la acción. Este campo especial nos permitirá reutilizar la acción de manera muy potente al poder ejecutar acciones dependiendo del momento en el que decidimos incluir un contacto en la acción
  • Desplazamiento: este campo nos permitirá modificar la fecha de ejecución en un rango de días antes o después si la fecha de referencia es variable

Algunos ejemplos del uso de este módulo:

  • Programar un email de seguimiento para la semana que viene, que se hace seleccionando directamente el día del envío
  • Enviar una email de felicitación de cumpleaños, seleccionando la fecha variable y la fecha de cumpleaños
  • Enviar un email de bienvenida 7 días después de el alta del contacto en el sistema, seleccionando la fecha variable, la fecha de creación y el desplazamiento de 7 días
  • Enviar un email a los 3 días de haber asignado el contacto a la acción programada, seleccionando la fecha variable, la fecha de asignación y el desplazamiento de 3 días

Los contactos se pueden asociar a la programación mediante el uso normal de las listas relacionadas en la pestaña de más información o mediante algunas de las mejoras de asignación que se describen más adelante.

Secuencias de Acciones

Este módulo lleva la idea de acción programada un poco más lejos al permitir definir grupos de las mismas que facilitarán la asignación de contactos a planes de marketing o contacto digital. O sea, este módulo básicamente permite agrupar para su ejecución conjunta en las fechas programadas.

Este módulo se compone de los siguientes campos:

  • Referencia: una cadena indentificativa de la secuencia
  • Status: si el estado de la secuencia es “Inactivo” u “Obsoleto” el día de la ejecución, no se realizará la acción. Si el valor de este campo es “Entre fechas”, se considerará que la secuencia está activa si la ejecución de la acción cae dentro del intervalo definido por los campos Fecha Inicio y Fecha Final
  • Fecha Inicio y Fecha Final: ver Status

Los contactos se pueden asociar a la secuencia mediante el uso normal de las listas relacionadas en la pestaña de más información o mediante algunas de las mejoras de asignación que se describen más adelante.

Las acciones programadas se pueden asociar a la secuencia mediante el uso normal de las listas relacionadas en la pestaña de más información. La orden de ejecución de las acciones programadas vendrá definida por las mismas. No se establece el orden en la secuencia sino en la misma programación. La secuencia en sí misma es meramente un ayudante, un sistema que permite agrupar acciones programadas y asignarlas en lote a contactos. Se podría conseguir lo mismo asignando acción programada a acción programada a cada contacto.

Algunos ejemplos del uso de este módulo:

  • Felicitación de Festivos:
    • crear una acción programada por cada fiesta que se desea mandar un correo, por ejemplo, año nuevo, reyes, san valentin, día del padre, etcétera. Cada una de estas acciones tendrá una fecha fija y se lanzará el email en ese día.
    • crear una secuencia y asociar todas aquellas acciones de tipo felicitación festivo
    • asociar los contactos a los que se les desea enviar el email en la secuencia
    • como se observa, al final lo que hemos conseguido es asignar muchos contactos a muchas acciones programadas de manera sencilla además de definir un plan de marketing de contacto consistente para nuestros clientes
  • Pack de Bienvenida:
    • vamos a suponer que el pack consiste en un primer correo de bienvenida a los 2 días de haber sido creado en el sistema, otro correo a los 14 días y uno último a los 30 días.
    • crear las tres acciones programadas, tendrán fecha variable sobre el campo Fecha de asignación, el primero tendrá un desplazamiento de 3 días, el siguiente de 14 días y el último de 30 días.
    • crear una secuencia y asociar las tres acciones anteriores
    • asociar los contactos
    • cuando el comercial da de alta un nuevo contacto en el sistema tendrá que ir a su pestaña de más información y asociar las secuencias en las que quiere incluir el contacto, en ese momento se establecerá la fecha de asignación para ese contacto y el orden de ejecución de las acciones programadas vendrá definido por el desplazamiento introducido en cada una de ellas
    • de nuevo se observa que hemos conseguido asignar con facilidad tres emails a un contacto en fechas diferentes

Mejoras para la asignación y uso

Para facilitar la asignación de contactos a acciones programadas y secuencias hemos implementado algunas mejoras.

Desde la vista de lista de contactos dispondremos de un botón para asignar masivamente contactos a acciones y secuencias. De esta manera utilizando el sistema de filtros disponible podremos segmentar y asignar acciones rápidamente a muchos contactos.

En la pestaña de Más Información del Contacto hemos añadido listas relacionadas a Acciones Programadas y Secuencias para asignar éstas a un contacto rápidamente.

Hemos añadido una lista relacionada en contactos donde se detalla un histórico de acciones realizadas y pendientes de realizar. wishlist Esta capacidad es un tanto limitada. Actualmente se guarda la información en una tabla interna y se obtiene un listado de todo el histórico en la lista relacionada. Esto implica que no soporta paginación y puede ser un problema cuando se hayan enviado muchos emails, no soporta informes ni filtrados sencillos. La solución a todo esto es crear un nuevo módulo para almacenar el histórico.

wishlist: Me gustaría poner una funcionalidad idéntica a la carga de filtros en campañas en las listas relacionadas de acciones programadas y secuencias

Dado la limitación inherente a vtiger CRM que nos impide realizar filtros sobre campos ajenos a la entidad, la opción anterior no permite hacer segmentaciones sobre campos de la cuenta asociada al contacto. Por ejemplo, no podríamos hacer filtros del tipo, “contactos cuya empresa esté ubicada en Alicante”, esto no se puede hacer porque no podemos acceder al campo provincia de la cuenta desde los filtros de contactos.

Para superar esta limitación hemos añadido la capacidad de asignar acciones a contactos en los informes donde sí se pueden realizar filtros como el anterior y mucho más avanzados. Tiene el inconveniente de tener que realizar informes para conseguir la segmentación pero es la forma más rápida y efectiva de conseguir este objetivo.

Es OBLIGATORIO que el informe contenga la columna “Contact ID”, el número identificador interno de la aplicación, ya que al final, este es el único campo importante del informe al utilizarse este para establecer la relación interna.

Se ha ampliado las funcionalidades del sistema de informes para soportar la realización de informes sobre acciones realizadas.

Cada vez que se manda un email, este se integra en el sistema de emails de vtiger CRM de manera automática, de esta forma es sencillo ver los mismos en la pestaña Más Información del contacto.

Se ha ampliado la pantalla de envío de emails con la selección de plantillas desde el módulo de acciones.

wishlist: nos gustaría poder establecer una acción programada desde la pantalla de email. Ya permitimos la selección de la plantilla, así que nos faltan los campos propios de la programación. El problema es que se permite la modificación de la plantilla capturada, lo que nos obligaría a crear una nueva acción con el cuerpo del email y establecer la programación.

Si las acciones y secuencias están desactivadas, desaparecen de todas las opciones de asignación

Proceso de ejecución de acciones

Se ha implementado un proceso periódico que es capaz de evaluar la lista de acciones pendientes de ejecutar y realizarlas secuencialmente.

Este proceso dispone de parámetros para controlar el número de mensajes enviados por hora o un número máximo de tiempo en el que se ha de ejecutar. De esta manera intentamos ser respetuoso con los recursos del servidor y no inundar el servicio de envíos de email.

wishlist: Según las posibilidades de herramientas encontradas que nos ayuden en esta fase implementaremos el control estadístico de aperturas y rechazos. Es posible que no lleguemos a implementar nada a este respecto aunque nuestra intención es que sí.

Preguntas y Respuestas

Se aplicará a los contactos que se asignen a partir de ese momento.

Las asociaciones realizadas a través de secuencias no se ejecutarán. Si se ha asociado un contacto directamente a la acción programada sí se ejecutará independientemente de la asociación a través de la secuencia. Puedes asignar un contacto a una acción programada sin que haya una secuencia por en medio, o bien puedes ir a una secuencia y asociarle un contacto, de manera que estás asociando el contacto a las acciones de la secuencia. En este segundo caso se tendrían en cuenta las fechas de inicio y fin de la secuencia.

Porque necesitamos eventos basados en tiempo y los flujos de trabajo se basan en eventos de guardar. Porque los flujos de trabajo solo los pueden definir usuarios administradores mientras que la solución implementada aquí se basa en el sistema de privilegios de vtiger CRM. Porque los flujos de trabajo no disponen de un pool de acciones desde la que ir construyendo programas y secuencias.