Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Preparado para
It Sitio
Proyecto
Autor
Versin
Referencia de cambios
10/09/15
Alfredo Aristimuo
1.0
Creacin
10/10/15
Alfredo Aristimuo
1.1
Agregado de Triggers
13/10/15
Alfredo Aristimuo
2.0
23/02/16
Alfredo Aristimuo
3.0
30/05/16
Alfredo Aristimuo
4.0
Aprobacin de
versin
Posicin
Fecha
Tabla de Contenido
Contenido
Registro de cambios.................................................................................................................................. 1
Tabla de Contenido ................................................................................................................................... 0
1 Introduccin ...................................................................................................................................... 1
Contexto actual ............................................................................................................................................... 1
Propsito ......................................................................................................................................................... 1
Audiencia ......................................................................................................................................................... 1
2 Justificacin ....................................................................................................................................... 2
Propsito: ........................................................................................................................................................ 2
Consideraciones: ............................................................................................................................................. 2
3 Planificacin ...................................................................................................................................... 3
Funcionalidades a implementar..................................................................................................................... 3
Planificacin: ................................................................................................................................................... 3
4 Proceso de Scoring con Triggers ........................................................................................................ 4
Interfaz (CRM) ................................................................................................................................... 4
Respuesta (CRM) .............................................................................................................................. 4
Contacto (CRM) ................................................................................................................................. 5
Campaa (CRM) ............................................................................................................................... 5
Puntaje Contacto (CRM).................................................................................................................... 5
Scoring Trigger (CRM)....................................................................................................................... 5
Scoring Trigger Log (CRM) ................................................................................................................ 5
Introduccin
Contexto actual
IT Sitio cuenta con portales de noticias tecnolgicas propios (uno por pas) y varios portales de
terceros que IT Sitio proporciona y gestiona. Para acceder a los portales se requiere estar registrado. Las
registraciones son procesadas manualmente para evitar duplicados.
Cuando un usuario se registra a un portal, adems de dejar sus datos y lo de la empresa para la
que trabaja, tambin puede suscribirse a newsletters.
La registracin de un usuario a un portal genera una solicitud de registracin que luego se
procesa en el CRM. En algunos portales se puede habilitar la funcionalidad de alta temprana que
permite que la registracin se active de forma inmediata (sin procesamiento manual).
En la actualidad los envos de email referentes a las registraciones a newletters se hacen desde la
plataforma iComMkt en la que se cuenta con perfiles sincronizados con Dynamics CRM. Desde iComMkt
se realizar la combinacin de los emails con la plantilla correspondiente, y se procede al envo.
Adicionalmente a lo que es el envo de los emails, tambin se cuenta con formularios de
registracin y encuestas en cada portal. Estos formularios provistos por 123ContactForm envan los
POST va Webhook URL a un servidor de IT Sitio que procesa dicho formulario y lo carga en las tablas de
AxConnect como registraciones y respuestas de perfil. Esto se sincroniza con el CRM cada 5 minutos.
Actualmente no se cuenta es con informacin de la campaa relacionada con este formulario
que llega al CRM, ni tampoco se pueden hacer acciones diferenciadas de acuerdo al score obtenido por
cada contacto.
Propsito
El propsito de este desarrollo es poder incorporar al CRM las siguientes funcionalidades:
Relacionar las registraciones/formularios con las campaas, como respuestas de campaa.
Determinar un sistema de scoring para poder calificar los contactos y su actividad.
En base al puntaje (score) alcanzado por cada contacto, se dispararn acciones (triggers).
Audiencia
Este documento est dirigido a personal tcnico de Global Comarca, previamente controlado y
aprobado por el cliente, en este caso IT Sitio.
Justificacin
Propsito:
Se desarrollaran las funcionalidades de gestin registraciones como respuestas de campaa y de
asignacin de puntaje (score) a las actividades realizadas por los usuarios de los portales (contactos en
CRM). Tambin se incorporar una serie de alertas que se generarn en forma automtica (triggers) de
acuerdo al puntaje alcanzado por cada contacto.
Consideraciones:
1. No se realizarn acciones que no estn descriptas en el presente documento.
2. La interfaz actual en AxConnect ser actualizada para incluir los campos de campaa y
puntos
3. Se intentar reutilizar la mayor cantidad de entidades del CRM como sea posible.
4. Los trigger (acciones automatizadas) se configurarn dentro del CRM.
Planificacin
Funcionalidades a implementar
La implementacin est planificada para hacerse en dos etapas:
Planificacin:
Interfaz
(AxConnect)
Respuesta
(CRM)
Campaa
(CRM)
Contacto
(CRM)
Puntaje Contacto
(CRM)
Scoring Trigger
(CRM)
Contacto rellena
formulario web
Identificacin de respuesta
El AxConnect enva
la respuesta al CRM
Los datos de
la respuesta
llegan al
CRM
Si el contacto se
puede
identificar
Se asocia contacto a
respuesta y se
verifica si es
respuesta de
campaa
SI
NO
Queda en
espera de
asigancin de
contacto
Se asocia a campaa
y se verifica si suma
puntos
Si cumple con
reglas de scoring
Scoring
SI
Si es respuesta
de campaa
SI
Suma puntos al
contacto en ese
campaa
NO
Se indica el
error y no se
asocia con
campaa
Se recorren todas
las reglas y se
ejecutan workflows
definidos
Si ejecut
trigger
Trigger
Vuelve a
intentar
ejecutar
trigger
Interfaz (CRM)
El proceso inicia cuando desde uno de los sitios web se completa un formulario de Contact123.
Los datos de este formulario se envan al servidor de interfaces mediante llamadas tipo callback
WebHook. Es decir que el query string contiene todos los datos cargados en el formulario.
En el servidor de interfaces existe una aplicacin que recibe el WebHook y lo convierte en un
registro en la tabla de respuestas en la base de datos de interfaces (en este caso la base de datos se
llama itsitio)
El servicio de AxConnect (gestor de interfaces), lee los registros pendientes de ser transmitidos al
CRM de la tabla respuestas. Estos se registros se identifican porque estn con el valor 0 o
NULL en el campo ledo. Si el envo al CRM sale bien, el campo ledo pasa a valor 1. Si
sale mal, el campo ledo pasa a valor 2, en cuyo caso el AxConnect permanecer reintentando
una vez por da durante un mes.
Respuesta (CRM)
Contacto (CRM)
Campaa (CRM)
Si la respuesta pudo ser asociada a la campaa, se procede a calcular los puntos de ese contacto en
esa campaa.
Los puntos se almacenan en un nuevo registro que se crea en la entidad axx_scoring_contact. Si el
registro ya existe, se actualiza.
Esta entidad es una relacin entre contacto y campaa, y contiene los puntos acumulados.
Luego se verifica qu trigger se deben aplicar, para eso se busca la configuracin de triggers en la
campaa.
De acuerdo a la cantidad de puntos se aplican diferentes triggers
Una vez ejecutado el trigger no se vuelve a ejecutar para la misma regla (configuracin scoring
trigger)
Si por algn motivo el trigger no se pudo ejecutar exitosamente, una vez por hora hay un proceso
que toma todos los registros scoring trigger que no se ejecutaron exitosamente y lo vuelve a
ejecutar. As por un mes.
Esta es una nueva actividad del tipo personalizada, que se ver como como el resto de las
actividades (email, tarea, etc). La particularidad es que al crear un registro se debe indicar la URL
del servicio.
Si se carga la actividad manualmente, URL se carga de forma automtica por medio de una regla
de negocio. En caso de querer cambiar la URL por defecto, hay que editar la URL que contiene la
regla de negocio llamada: Seteo inicial de variables para envo
En el caso de que se use un TRIGGER para enviar este mensaje web, se debe configurar la URL
correcta dentro del proceso. Tener en cuenta que al modificar la plantilla TRIGGER (Plantilla):
Envia mensaje web al contacto, solo se modificarn los nuevos procesos que se creen a partir de
dicha plantilla, no los ya creados.
Los TRIGGERS hay que modificarlos de forma individual, en el proceso que corresponda. Esto se
hace primero abriendo y desactivando el proceso, y luego modificando la accin de crear el
registro de Mensaje Web
Configuracin de Scoring
Ahora creamos el proceso basado en uno de las plantillas que comienzan con la palabra TRIGGER. Lo
principal es que se tenga en cuenta que hay que seleccionar la entidad Scoring Trigger Log, tal y como se
muestra a continuacin.
Importante: si se selecciona cualquier otra entidad no se vern las plantillas, las mismas solo estn
relacionadas con la entidad Scoring Trigger Log.
Lo siguiente que veremos ser esta pantalla correspondiente al nuevo proceso, creado a partir de la
plantilla seleccionada:
Ahora podremos configurar por ejemplo lo que se ver en el contenido de la llamada telefnica. Ah por
ejemplo se puede configurar el speech que el operador deber seguir.
Una vez terminada la configuracin final, se proceder a guardar y luego activar el proceso.
Se recomienda que el nombre del proceso comience con la palabra TRIGGER as ser ms fcil su
localizacin en la lista de procesos disponibles para los triggers.
En este ejemplo usamos un Trigger que dice plantilla, en el futuro evitar usar procesos tipo plantilla.
Luego de Guardar, se continan agregando tantos triggers como se requieran.
Esto se debe hacer para cada nueva campaa.
Dentro de la ficha del contacto podremos ver el puntaje alcanzado por ese contacto en cada campaa.
Conexiones
Se incluy en el CRM una nueva funcionalidad que contempla la registracin de eventos web en el CRM.
Estos eventos pueden ser de varios tipos, entre ellos est la lectura de notas por parte de los usuarios
de los portales.
Cada lectura genera un registro en la tabla LOGS de la base de datos ITSITIO del servidor
itsitiocrm.cloudapp.net
Esta es la estructura de la tabla que recibe los eventos de lectura de notas:
CREATE TABLE [dbo].[logs](
[idx] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[idusuario] [varchar](max) NULL,
[tipo] [varchar](20) NULL,
[idnota] [numeric](18, 0) NULL,
[nota] [varchar](255) NULL,
[tags] [varchar](255) NULL,
[fecha] [datetime] NULL,
[idcampania] [numeric](18, 0) NULL,
[puntos] [numeric](18, 0) NULL,
[Comunidades] [varchar](255) NULL,
[leido] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Dnde:
[idx] es un ndice que autonumerico que conforma la clave nica generada para cada registro.
Hay que tener en cuenta que la clave real esta compuesta por idusuario + idnota + fecha.
[idusuario] este campo contiene el GUID del contacto en Dynamics CRM. Es decir que nos
permite determinar fcilmente qu contacto del CRM ha ledo la Nota.
[tipo] es el tipo de evento que lanza la web. En nuestro caso solo tomamos los del tipo post.
[idnota] es el id de la nota en el portal.
[nota] es el ttulo de la nota en el portal.
[tags] es una lista de Tags separados por comas. Estos son los tags que se asignaron a esa nota en
especfico.
[fecha] es la fecha exacta en la que el contacto abri la nota para su lectura.
[idcampania] es el cdigo de campaa que tiene esta campaa en CRM. No es un GUID, es una
cdigo alfanumrico de 32 caracteres.
[puntos] son los puntos que recibir este contacto en la campaa especificada por el hecho de
haber ledo la nota.
[Comunidades] es una lista de comunidades a las que afecta esta lectura de nota. En CRM estas
comunidades se pueden asimilar a las newsletters.
[leido] este es un campo agregado para que el AxConnect pueda establecer si el registro ha sido
procesado (enviado a CRM) o si dio error.
o Si el valor que tiene es null o 0, significa que no ha sido procesado
o Si el valor que tiene es 1, significa que ha sido procesado exitosamente
o Si el valor que tiene es 2, significa que ha dada un error. Los errores se pueden ver en el
archivo correspondiente del log de errores de AxConnect
Es importante aclarar que solo se tomar una registro por cada combinacin id de usuario + id de nota
La fecha de referencia siempre ser la menor.
Al momento de cambiar el valor del campo ledo, el AxConnect proceder a actualizar todos los registros
que respondan a la combinacin id de usuario + id de nota que se ha procesado.
Esta es la consulta que ejecutar el AxConnect para la interfaz de Notas:
SELECT TOP(1000)
(SELECT TOP 1 idx FROM [itsitio].[dbo].[logs] WHERE idusuario = A.idusuario AND idnota = A.idnota) AS clave,
REPLACE(REPLACE(idusuario,'{',''),'}','') AS idusuario,
CAST(idnota AS varchar(100)) AS idnota,
nota,
tags,
CONVERT(varchar,min(fecha), 120) as fechamin,
CAST(idcampania as varchar(100)) AS idcampania,
puntos,
REPLACE(ISNULL([Comunidades],''),'|',', ') as comunidades,
min(leido) as leido,
count(*) as cantidad
FROM [itsitio].[dbo].[logs] A
WHERE LEN(idusuario) BETWEEN 36 and 38
AND tipo = 'post'
AND isnull([leido], 0) <> 1
GROUP BY idusuario, idnota, nota, tags,idcampania, puntos, [Comunidades]
ORDER BY min(fecha), idnota
Esto tambin establece que se tomarn, cada 5 minutos, un mximo de 1000 lecturas de notas para su
procesamiento.
Desde el CRM cada lectura de Nota se ver como una actividad tipo evento web completada:
Como cada actividad puede estar referida a una Campaa y acumular puntos en la misma, si se identifica
la campaa se crear un registro de tipo Respuesta asociado a este evento web.
El registro de tipo Respuesta deber cumplir los mismos requisitos que las otras respuestas para que
pueda sumar puntos.
Estos requisitos para sumar puntos en la campaa son:
Que se encuentre una campaa activa para ese cdigo de campaa
Que el estado de la campaa sea Lanzada
Que la fecha de la respuesta (en este caso, la lectura de una nota), est contemplada dentro del
rango de fechas de la campaa (fecha de inicio y fecha de fin reales)
A continuacin repasamos en forma esquemtica el proceso
Web
AxConnect
CRM
Se produce la apertura de la pagina web de la nota por parte del contacto que recibi un link especifico.
Este evento se registra en la tabla LOGS de la base de datos ItSitio que es la que lee el AxConnect
El AxConnect va a buscar las ltimas 1000 lecturas sin procesar, agrupandolas por id de usuario y id de nota.
La fecha que se tiene en cuenta es la mnima por cada combinacin de id de usuario y id de nota
Las lecturas se envan a CRM como eventos web del tipo lectura de notas.
Los eventos web del tipo lectura de notas son actividades asociadas a contactos.
Usando el id de campaa se trata de asociar una campaa existente mediante el campo cdigo de campaa.
Si pudo asociarse una campaa, tambin se crea un registro del tipo respuesta indicando que viene de un registro
tipo evento web y poniendo los puntos que se indican.
Solo las respuestas que cumplan las reglas de scoring sern las que sumarn puntos.