d. Marcadores v5

 

Marcadores

Los marcadores permiten generar campañas de marcación directa bajo diferentes tipos de canales y de diferentes formas, dentro de las cuales tenemos:

  • SMS
  • VOZ

 

SMS


En lo referente a SMS tenemos un tipo de marcador único que simplemente tendrá un horario asociado así como un dispositivo de marcado.

Para todas las campañas ira asociado un rango horario de ejecución que dictara el horario y días en los cuales se correrán con el fin de no realizar acciones en horarios indebidos.



Nombre : Nombre del marcador que tenemos.

Agendar : Programo una fecha en la cual se desea que el marcador funcione. Ejemplo: se puede poner el marcador para que trabaje de Lunes a Viernes de 13 hrs a 18 hrs, en el que el marcador comenzara a funcionar cuando este programado.

Nota : Es importante saber que para poder en marcha un marcador tiene que estar previamente habilitado.

Habilitado: Indica el estado del marcador, si esta activo o no.

DNCR : Permite habilitar la revisión del registro de las listas blancas, para los números de teléfono que que no se debe llamar o mandar mensaje.

Cadena de marcado : En base a la api que envía SMS, se puede configurar de la siguiente manera:

  • Dinstar - DinstarWeb : Ingreso el rango de canales, ejemplo : (0.3) esto significa que el mensaje se enviará a 4 canales recursivamente (0-1-2-3-0...).
  • Qualirt : No necesita cadena de marcado.
  • Twillio : No necesita cadena de marcado.

Tiempo entre mensajes : Permite pasarle el tiempo entre mensajes en ms.

 

Voz

 


 

Variables a Configurar


  • Tipo de Marcador:  PowerDialer, VoiceBroadCast, Progressive (con asignación por Agente),Preview (Progressive sin asignación de Agente), Predictive (mínimo 50 agentes).

Para cualquier marcador de Telefonía son necesarios puntos tales como cadena de marcado (que usualmente es el dispositivo de sacada de llamadas), y contexto específico para indicar el comportamiento del marcador. También es importante definir cantidades de canales coherentes con la disponibilidad física del equipamiento.

Notas: 

Los marcadores de voz siempre tiene que tener líneas digitales con señalización propia (para indicar comienzo y final de llamada).

El proveedor de telefonía a usar debe de tener respuestas propicias de causa de llamada (para iniciar cuando no se pudo hacer una llamada porque).

  • Nombre: Es el nombre del Marcador. Al ingresar un nombre automáticamente se crea una campaña en el sistema con el nombre ingresado y según el tipo de Marcador la campaña será entrante o saliente. Para PowerDialer y Predictive se crea una Campaña Entrante, para Progressive y Preview una Campaña saliente y para VoiceBroadCast no se crea una campaña, puede utilizar cualquier nombre.
  • Agendar: Se agenda una fecha en el cual se desea que el marcador funcione. Como ejemplo se puede colocar que el marcador funcione de Lunes a Viernes de 13hs a 18hs el cual comenzará a discar si se encuentra dentro del horario establecido.

Nota: Es importante saber que para que comienze a discar el marcador debe estar habilitado previamente.

  • Habilitado: Si esta activado.
  • Cadena de Marcado:  Es lo que se utiliza para hacer la llamada Ejemplo: DAHDI/G1/ o SIP/CARRIER/.
  • Contexto: Al que va a entrar el marcador. Para VoiceBroadCast, PowerDialer, Predictive es el Contexto que entra una llamada conectada con un cliente y matchea un workflow, en Progressive es el Contexto por donde se realiza la llamada al cliente una vez conectado con el Agente. (Ya existen Contexto prearmados cada uno con el nombre del Marcador).
  • Máximo: Cantidad máxima de llamadas simultáneas.
  • Sobrediscado: Se selecciona el porcentaje de sobrediscado que tendrá el marcador. Los valores posibles son MIN, 0%, 5%, 10%, 15%, 20%, 25%..., 100%, MAX, donde MIN y MAX es el menor y mayor valor posible. La idea es que cuando por ejemplo tomo 100 canales para marcar y el servidor no puede manejar tantas solicitudes al mismo tiempo, es posible bajar el porcentaje de sobrediscado (ya que esto enlentece al marcador). Si se pone en MAX en PowerDialer, ejecuta sobremarcado para tener mas agentes ocupados via fórmula estadística.
  • Tiempo Máximo: Tiempo máximo de espera al llamar a una destino o en Progressive para contactar un agente.
  • Reintento: Cantidad maxima de llamadas para un numero en la base en Progressive para intentar conectar con el Agente.
  • Audios: Audio o concatenación de audios (con &) que se le pasan al Workflow, util para VoiceBroadCast.
  • Callerid: Número con que salen las llamadas.

  • CallerPres: Para ISDN si muestra o no el CallerID donde el proveedor lo admita.

  • AMD: Si esta activado la detección de Answering Machine, esta variable llega ${am} en 1 o 0 y es posible en el flujo utilizarlo para usar la actividad amd para cortar las llamadas de Correos de Voz.

  • DNCR: Do Not Call Registry, permite verificar si se bloquea el registro por BlackLists.

  • Variables: Todo lo que se quiera pasar al worklfow a nivel global de marcador.
 

Proceso


 

El sistema inicia según el scheduler creado.

Al comenzar el sistema Crea una Tarea para Cada Marcador definida en el sistema, las mismas arrancan y terminan de acuerdo al schedule que tengan. En el Dashboard de Monitoreo se ven todos los valores en Tiempo Real para el día del marcador.

En el primer cuadro de información que se puede observar sobre la parte izquierda de la pantalla, se puede observar entre otras cosas, que dentro de la información que muestra está la Contactabilidad, la misma indica el porcentaje de llamadas atendidas de la campaña. Podemos ver este porcentaje tanto el el Dashboard o en la tabla en la parte de Listas.

Se pueden observar dos dashboards circulares que indican la cantidad de llamadas procesadas y no procesadas al igual que la cantidad de agentes en sus diferentes estados, así como también una gráfica que indica en tiempo real el total de llamadas activas, los agentes ocupados y las llamadas que se están marcando.

Nota:

Es posible observar en esta última gráfica que la cantidad de ocupados sea mayor que el total asi como también ver a los marcandos negativos. Esto sucede cuando la campaña realiza llamadas manuales o cuando tenga llamadas entrantes que no sean del marcador, de todas formas la gráficas muestran la evolución del marcador.

Es posible en cualquier momento parar o volver a prender la campaña manualmente desde el botón de play o stop ubicado en la esquina superior derecha. Es posible subir nuevas listas o registros de lista negra accediendo al botón de listas ubicado en la parte superior derecha detallado más adelante en este documento.

Se ejecuta la tarea, esta tarea es la encargada de hacer las llamadas enviando llamadas obtenidas del spool (tabla calls_spool) para la misma, estas son obtenidas de acuerdo al tipo de marcador que sea y son marcadas de acuerdo al string de marcado de la misma (puede ser por TDM o VOIP) cabe destacar que solo va a funcionar en lineas Digitales, VOIP o Analógicas con Disconnect Supervision (o sea inversión de polaridad). Al ejecutar la llamada esta se cambia de estado. Siempre se obtienen Llamadas únicamente de la lista activa.

 

SPOOL

CAMPAIGN: Nombre del marcador para el contacto.

DESTINATION: Teléfono a llamar del contacto.

STATUS: Estado del contacto

  • STATUS: 0 - PROCESSING (se esta marcando).
  • STATUS: 1 - TO PROCESS (esta en spool lista a ser procesada, son las que toma el marcador).
  • STATUS: 3 - BLOCKED (bloqueado por DNCR se borran del spool en el job de mantenimiento diario).

DATA: Valores pasados al workflow para poder utilizar.

ALTERNATIVES: Números alternativos para el contacto separados por :

RETRIES: 0 inicialmente, > 0 cantidad de intentos a ese número.

CONTACT: Autogenerado para diferenciar el contacto.

DIALERBASE: Nombre de la base subida del marcador, tiene nombre mas la fecha de subida.

PRIORITY: 9999. a 1, inicialmente todas son insertadas con un número alto, pero por razones del Agendamiento de Llamadas de marcador, son insertadas con 1 para que se ejecuten de inmediato mientas el marcador este activo, si se requiere dar prioridades a otras es posible insertarlas con valores intermedios.

AGENTPHONE: Para Progressive a que agente va cada contacto.

Las llamadas son borradas del spool si son atendidas o superan la cantidad máxima de reintentos definido en el marcador.

 

Cuando llega algún evento de que el sistema pudo procesar la llamada esta se borra de la tabla, si fue ocupado o no answer o algún problema de que no había canales esta llamada se realiza un nuevo intento, incrementando el retry, esto para que no sea tomada inmediatamente y se procesen otras antes de volver a intentar con ella. 

Es importante no solapar cantidad de canales, si disponemos de 30 canales y tenemos 2 campañas al mismo tiempo con un máximo de 20 va a resultar en posibles errores del marcador pudiendo repetir algunas llamadas. También al tener mas de 1 campaña para mejor performance es buena idea dejar 1 canal de pivote ya que al ser un sistema asincrónico basado en eventos es posible que en algún milisegundo se esten marcando en otras campañas y todavía no se tiene dato de que la misma esta realmente activa ocupando un canal, por lo tanto en el caso de borde es posible que pueda pasarse una de las campañas, de todas formas si se llegara a pasar y al sistema no le fuera posible crear un canal porque no hay, este se va a procesar mas tarde cuando se terminen de procesar las existentes en el spool ya que la misma va a quedar con un intento mas.

Dentro del Callerid (name) se encuentra VoiceBroadCast:Campaña:Numero:Lista:Reintentos a Marcar Esto permite el seguimiento de eventos del sistema para saber cuantas llamadas activas por campañas y permite volver a poner en el spool llamadas que no pudieron contactar al destino. Es importante el concepto de Respool y Reschedule, el primero permite volver a poner una llamada aunque sea atendida a seguir marcando y el segundo agenda un numero para llamarlo mas tarde.

 

Gestión de listas

 

 

En esta pestaña se pueden ver y administrar las listas subidas para un discador específico. 

Inicialmente en la parte superior se puede observar el estado del discador y si está en fecha o no (establecido en el campo Agendar en la creacion de campañas), así como tambien es posible iniciar o detener el marcador utilizando el botón de play o stop.

El sistema permite tener multiples listas para una campaña, al subir las listas estas van accediendo al sistema en orden de subida, la primera para una campaña se marca como activa, luego el resto como inactivas.

El supervisor luego puede decidir desde el dashboard de marcadores cual lista quiere tener activa, el dashboard muestra las listas que hay en el sistema, la cantidad de registros que le queda a cada una, pudiendo activar o desactivar las mismas y la cantidad de registros por agente. Para visualizar la cantidad de registros por agente se debe presionar el ícono de agentes de la lista deseada. Allí se podrá visualizar un dashboard con los agentes para esa lista pudiendo reasignar los contactos del agente para otro u otros.

Para reasignar los contactos a otro agente se debe presionar el botón Reasignar en la lista de agentes donde aparecerá la siguiente imagen.

Dentro de la inforamción que el supervisor tiene para ver de la lista subidas es la Contactabilidad,este es un porcentaje de llamadas atendidas. Para poder ver este porcentaje debemos pasar el mouse por arriba del porcentaje en la tabla que muestra los datos de la base.

 

 

Luego se selecciona el o los agentes y se da a reasignar para completar la acción. En caso de seleccionar múltiples agentes, la cantidad de llamadas que se reasigna a cada uno es la mitad. 

Pueden existir N listas activas al mismo tiempo y cada una tiene su porcentaje que deben sumar 100% entre todas, este porcentaje nos dice cuantos contactos sacar de cada lista para poder hacer mix de listas. Poniendo como ejemplo si tengo dos listas de 10 registros cada una, si ambas tienen el 50% de prioridad, se ejecutarán 5 registros de una y luego 5 registros de la otra antes de continuar.

Para asignar el porcentaje de cada lista primero se activan las listas deseadas y luego dando clic en el porcentaje se mostrará la siguiente ventana.

 

 

Es importante saber que las llamadas del scheduler son siempre prioritarias no importa que lista se este ejecutando.

Una vez una lista es finalizada y le queda 0 registros esta es eliminada del sistema, se envía un mail (Configuración AlertMail) avisando que base se finalizo. Tenemos 2 casos el primero es que no exista otra lista activa, si esto sucede se activa una lista inactiva con el 100% activado (en orden de que fue cargada), si existen listas activas el porcentaje de la lista que quedó en 0 se agrega a la primera lista subida activa para seguir funcionando en un modelo de 100%.

Además, es posible subir una lista con números a los que no se desean llamar (DNCR). Los números ingresados estarán bloqueados a la hora de realizar la llamada. Para limpiar el registro de números a no llamar para la campaña seleccionada basta con clickear la cruz roja ubicada en la parte inferior derecha de esta pantalla.

Nota: Los marcadores solo seleccionarán contactos de las listas activas.


Carga de Contactos


Archivo CSV donde se encuentra: campaña, número de teléfono, status, datos el formato correcto es MSDOS CSV (esperado por ; y los saltos de linea \n).

El orden que se marcan es el orden del excel, lo único que va variando de acuerdo a que los que suben los intentos van al final y si se insertan otros de Agendado o prioritarios van a salir primero.

 

Base.csv (Caso de Discador Progresivo)

campañateléfonodatosteléfonos alternativosprioridadteléfono del agente (Progresivo)
prueba1098344484
 variable1=valor1:variable2=valor2
099111111:09912121299991001

 

Ejemplo:

Base.csv
prueba1;098344484;var1=val1:var2=val2;099124484:099111111;9999;1001

 

 

OBSERVACIONES

  • La prioridad es la prioridad que va a tener la llamada en la cola, la mayor prioridad es 1 y la menor es 9999, si queremos que una llamada se efectue antes que cualquier otra llamada le damos prioridad 1, si a su vez tenemos varios contactos con la misma prioridad lo que hace es tomar al azar respetanto los niveles de prioridad.
  • Los campos tanto de telefonos alternativos como de datos no son obligatorios, y si tiene mas de una variable se separa con un : entre ellos. Con el resto de los atributos necesarios para cargar la base se separa con ; como es habitual, pero adentro de estos campos se separa con el dos puntos, esa es la diferencia.

VoiceBroadCast

 

Introducción

El sistema de VoiceBroadCast es para realizar campañas de marcado automático, se sube una base de datos de teléfonos y estos son dirigidos hacia un flujo IVR el cual puede ser para reproducir avisos, audios, de forma dinámica o estática, también puede lograr realizar encuestas automáticas estáticas o dinámicas, así también como permitir que de acuerdo a una opción el cliente sea redirigido a una Campaña.

En este caso lo importante es setear la cantidad de canales ya que el VoiceBroadCast utiliza todos los posibles la mayor parte del tiempo.

 

Pasos

  1. El marcador obtiene la cantidad de llamadas a realizar, si es 0 espera y vuelve a preguntar, sino obtiene de acuerdo a:
    1. Cantidad de canales disponibles (Maximo - Usados).
  2. El marcador obtiene los contactos en base a la cantidad y las siguientes reglas:
    1. Pide los contactos Agendados en Primer Lugar .
    2. Pide los contactos de listas activas ordenados por prioridad y reintentos ascendente (según el porcentaje que le corresponda a cada una).
  3. Si DNCR (do not call registry) se encuentra activo solo deja hacer la llamada si no se encuentra en lista negra.
  4. Se pasan todas las variables a los Workflows ya sean de campaña o de contacto.
  5. Se pasa el registro del contacto de marcador con el reintento +1 a la lógica de negocio, esto va a permitir crear Logica de Respooling (volver a ingresar el contactoal Marcador).
  6. Si Supera la cantidad de intentos para ese número entonces si existen alternativos obtiene el primero lo deja como principal y deja el resto como alternativos y comienza el proceso nuevamente.
  7. Se realiza la llamada.
  8. Si no es atendida o da algun error al llamar entonces se incrementa los reintentos y pasa al fondo ese contacto para marcar luego.
  9. Si es atendida y se ejecuta el workflow asociado y los pasos del mismo al finalizar es borrada de la lista, si existió un Respooling se va a seguir marcando.

 

Base.csv

campañateléfonodatateléfonos alternativosprioridad
prueba1098344484
NOMBRE=Sebastian Gutierrez:Monto=200
099124484:099111111
9999

 

Ejemplo:

Base.csv
prueba1;098344484;NOMBRE=Sebastian Gutierrez:Monto=200;099124484:099111111;9999

 

Variables que llegan al flujo: ${sound}, ${am},${FORM}, ${VBQUEUE} todas las variables configuradas para esa campaña. Luego con eso es posible en vez de hacer un simple Flujo de BroadCast, es posible diseñar IVRs donde se generen dinamicamente encuestas automáticas.

 

 

Marcadores Progresivos y Preview


Introducción

 

En este caso es un escalón mas abajo respecto a PowerDialer o Predictivo a la máxima automatización, pero nos mantenemos en sistemas de llamadas puramente automatizados. Los Marcadores progresivos se basan en la disponibilidad de los Agentes.

Los marcadores progresivos, suelen ser muy apropiados para los Centros con un volumen bajo o moderado de llamadas, donde no serían capaces de recabar suficiente información para alcanzar estadísticas fiables.

Basicamente llama al agente y cuando este atiende ejecuta la llamada, esto hace que muchos intentos puedan ser ocupado, número equivocado, etc usando tiempo de agente. El workflow que se utiliza es el de salida por esto usamos en Progresivos Campañas salientes y no entrantes (no existe manejo de colas pero si concepto de wrapup). 

Los contactos tienen propiedad de Agentes, o sea cada contacto se asocia a un telefono de un agente que es el que va a disponer de ese contacto. En Progresivo, En Preview todos los contactos son para todos

Pasos

  1. El marcador obtiene la cantidad de llamadas a realizar, si es 0 espera y vuelve a preguntar, sino obtiene de acuerdo a:
    1. Cantidad de Agentes disponibles que no esten en wrapup.
  2. El marcador obtiene los contactos en base a la cantidad y las siguientes reglas:
    1. Pide Agendados para cada Agente disponible.
    2. Pide para esa campaña para las listas activas un contacto para cada Agente que este disponible ordenados por Prioridad y Cantidad de reintentos ascendente (según el porcentaje que le corresponda a cada una).
  3. Si DNCR (do not call registry) se encuentra activo solo deja hacer la llamada si no se encuentra en lista negra.
  4. Se pasan todas las variables a los Workflows ya sean de campaña o de contacto.
  5. Se pasa el registro del contacto de marcador con el reintento +1 a la lógica de negocio, esto va a permitir crear Logica de Respooling (volver a ingresar el contacto por no ser realmente efectivo).
  6. Si Supera la cantidad de intentos para ese número entonces si existen alternativos obtiene el primero lo deja como principal y deja el resto como alternativos y comienza el proceso nuevamente.
  7. Se realiza la llamada al agente, si por alguna razon no puede atender, se va a reintentar sin afectar la cantidad de reintentos una vez el agente vuelva a estar disponible.
  8. Si no es atendida o da algún error al llamar entonces se incrementa los reintentos y pasa al fondo ese contacto para marcar luego.
  9. Al Agente se le pasa el registro de contacto para que se pueda tomar acciones basados en lógica de negocio y así poder realizar el Respooling del contacto según se requiera (teniendo todos los datos del mismo). También le llegan datos para el CTI (poder abrir el form con los datos del cliente a llamar).

 

 

Base.csv

campañateléfonodatateléfonos alternativosprioridadteléfono de agente
prueba1098344484
NOMBRE=Sebastian Gutierrez:Monto=200
099124484:099111111
9999
1001

 

Ejemplo:
Base.csv
prueba1;098344484;NOMBRE=Sebastian Gutierrez:Monto=200;099124484:099111111;9999;1001

Marcadores Powerdialer


Introducción 

A diferencia del marcador Progresivo el Power Dialer no llama primero al agente y luego realiza la llamada sino es un discador Predictivo pero con un cálculo de sobremarcado distinto basado en Tiempo Real y no estadístico, 

Lo primero que realiza el sistema es marcar mientras existan agentes disponibles para atender llamadas en la campaña, ejemplo si hay 2 agentes disponibles va a realizar 2 llamadas simultáneamente y así hasta que contacte a alguno, una vez contactado un cliente se envía a la campaña, en el 99% de los casos debería tener agente libre para atender al instante. Esto nos evita tener que entregarle al agente llamadas de números ocupados o inexistentes y entregarle llamadas solamente que fueron atendidas. La forma de trabajar es exactamente la misma en los marcadores VoiceBroadCast, PowerDialer,Predictive lo único que cambia es la cantidad de llamadas que se ejecutan, el caso base es sin sobremarcado, si es activado entonces vamos a tener una tasa de abandono pero los agentes estarán mas tiempo ocupados y cambiara a un comportamiento Predictivo, es basicamente un Marcador Predictivo que admite menos agentes y respeta cantidad maxima de canales. 

El PowerDialer intenta tener a todos los agentes con llamada con su sobremarcado.

Pasos

  1. El marcador obtiene la cantidad de llamadas a realizar, si es 0 espera y vuelve a preguntar, sino obtiene de acuerdo a:
    1. Modo Normal (SobreMarcado 0%): Cantidad de Agentes disponibles que no esten en wrapup sin pasar la máxima cantidad de canales para la campaña.
    2. Modo Sobremarcado (Sobremarcado X%): Igual a Modo Normal pero con un porcentaje de sobremarcado basado en un modelo de tiempo real o seleccionado por el procentaje de sobremarcado.
  2. El marcador obtiene los contactos en base a la cantidad y las siguientes reglas:
    1. Pide todos los Agendados.
    2. Pide los contactos de las listas activas ordenando los contactos por Prioridad y Cantidad de reintentos ascendente  (según el porcentaje que le corresponda a cada una).
  3. Si DNCR (do not call registry) se encuentra activo solo deja hacer la llamada si no se encuentra en lista negra.
  4. Se pasan todas las variables a los Workflows ya sean de campaña o de contacto.
  5. Se pasa el registro del contacto de marcador con el reintento +1 a la lógica de negocio, esto va a permitir crear Lógica de Respooling (volver a ingresar el contacto por no ser realmente efectivo).
  6. Si supera la cantidad de intentos para ese número entonces si existen alternativos obtiene el primero lo deja como principal y deja el resto como alternativos y comienza el proceso nuevamente.
  7. Se realiza la llamada.
  8. Si no es atendida o da algún error al llamar entonces se incrementa los reintentos y pasa al fondo ese contacto para marcar luego.
  9. Si es atendida y esta habilitada AMD entonces si es MACHINE se reinserta el registro con el próximo alternativo a no ser que sea el último reintento del contacto HUMAN entonces va al ACD a repartir entre los agentes disponibles.
  10. Si es atendida y no esta habilitada AMD pasa directamente al ACD a los agentes.
  11. Al Agente se le pasa el registro de contacto para que se pueda tomar acciones basados en lógica de negocio y así poder realizar el Respooling del contacto según se requiera (teniendo todos los datos del mismo).

 

Base.csv

campañateléfonodatateléfonos alternativosprioridad
prueba1098344484
var1=val1:var2=val2
099124484:099111111
9999

 

Ejemplo:
Base.csv
prueba1;098344484;var1=val1:var2=val2;099124484:099111111;9999

 

Marcadores Predictivos


Introducción


Los marcadores predictivos basan su funcionamiento, en bases de datos de teléfonos a llamar, y lo hacen como su nombre indica de una forma "predictiva".

Esto quiere decir que entra en juego un algoritmo basado subyacéntemente en estrategias estadísticas, las cuales toman múltiples variables del Centro de Llamadas y calculan diversos factores para poder poner en contacto a los Agentes con los contactos de la manera más eficiente posible.

Por regla general, la principal utilidad y ventaja para los Marcadores Predictivos radica en el volumen de llamadas de los Centros en los que se basan, dado que al estar fundamentos en técnicas estadísticas, su máxima fiabilidad redunda en la Ley de los Grandes Números. Es por ello, que en Call-Centers de carácter reducido son bastante poco recomendados por su funcionamiento base.

En esencia, la idea conceptual detrás de los marcadores predictivos es la siguiente:

  • Primero ha de calcularse el tiempo ideal para lanzar llamadas a clientes utilizando estrategias estadísticas de diversa índole, entre las que se incluyen:
    • Calculan el tiempo medio por cada llamada que resulta en éxito, y cada llamada que resulta en fracaso.
    • Calculan la proporción media de llamadas resultantes en éxito y en fracaso y con ello se pondera un tiempo medio estimado para todas las llamadas en general.
    • Utilizan otros factores que influyan en los tiempos, como el tiempo medio de preparación para aceptar otra llamada de cada agente y Wrapup.

Cuanto más sofisticado sea este algoritmo, mejor en términos generales será el Marcador Predictivo. De hecho este es uno de los factores clave que determinara su éxito en un futuro. Muchos Algoritmos predictivos se basan en la distribución de Erlang.

  • En segundo lugar, se lanzan llamadas a los números almacenados en la base de datos, respetando este tiempo calculado:
    • Con las llamadas en curso, el Marcador Predictivo debe ser capaz de identificar si existe algún tipo de inconveniente para no poder contactar con el cliente, principalmente por el tipo de tono que se recibe, según la convención de tonos a nivel nacional del país en concreto. 
    • También ser capaz de detectar Tonos de Fax y otras posibilidades que también sigan algún tipo de estándar.
    • En caso que ocurra un evento de este tipo, dependiendo del evento, la aplicación ha de ser capaz de marcar el teléfono apropiadamente en función de lo ocurrido.
    • Además la capacidad de detectar VoiceMail dado que por regla general son símbolos de "No Disponible", para volver a intentar la llamada más tarde. La detección es relativamente fácil, en función del tiempo total de respuesta de voz, dado que la mayoría de las respuestas de personas físicas suelen ser, un simple "Hola?", mientras que los contestadores suelen ser una frase bastante larga.
    • En el momento que recibe una llamada atendida, se la pasa a la cola de los Agentes para que sea atendida con brevedad.

Con este sistema, los agentes solo quedan a la espera de que la máquina haga su trabajo, y por regla general, no tienen la posibilidad de elegir si desean responder la llamada, sino que esta se pone directamente en comunicación con el Agente.

A priori, este método puede ser ideal, y realmente si estamos ante un Marcador Predictivo de calidad, es cierto esta premisa. Pero en contrapartida nos encontramos con algunos inconvenientes, que debemos sopesar, a la hora de elegir este tipo de Marcadores:

  • Si en el intervalo en el que el cliente atiende una llamada, y el operador la recibe, no hay respuesta, es muy probable que el cliente abandone la llamada. En este caso la mayoría de los marcadores predictivos, ponen el número para ser llamado en un futuro, pero podemos generar insatisfacción en el cliente por causas de molestia.
  • Si lo queremos utilizar con fines comerciales de Empresa a Empresa, es posible que sea bastante ineficiente, dado que la mayoría de las empresas dispongan de un IVR el cual posiblemente impida que nuestro marcador predictivo cumpla su propósito en condiciones.
  • Como comentábamos, si tenemos pocas llamadas en el Centro, es posible que los algoritmos estadísticos no saquen cifras de calidad y por tanto ocurra mucho el primer problema, siendo un sistema muy ineficiente.

campañateléfonodatateléfonos alternativosprioridad
prueba1098344484
var1=val1:var2=val2
099124484:099111111
9999

 

Ejemplo:
Base.csv
prueba1;098344484;var1=val1:var2=val2;099124484:099111111;9999

 

Scheduler

 

El scheduler de marcadores es para poder Agendar llamadas y que el marcador las realice en el momento adecuado, para esto existe un WebService de Tipo REST que permite agendar las mismas. y es posible hacerlo desde Forms, o Workflows o desde sistemas externos.

 

Básicamente el proceso es que existe una tabla donde estan las llamadas que están agendadas con toda su información pertinente

calls_scheduler

 

calldatecampañadestinoalternativosteléfono agentedata
fecha y hora de cuando tiene que ejectuarprueba1098344484
099111111:099121212
1001
 variable1=valor1:variable2=valor2

 

El scheduler estar ubicando en el calls_spool con prioridad 1 a las llamadas que tienen que ejecutar en ese minuto, lo cual va a hacer que los marcadores la tomen lo antes posible para realizarla, queda con nombre de base Schedule y Fecha para poder ver cuales son las llamadas que se agendaron y cuando debían realizarse para poder comparar con el calldate del CDR.

 

WebService


REST
POST
http://<IP-INTEGRASERVER>/Integra/resources/Dialers/ScheduleDialerCall
 
param: @FormParam("call") 
 
(json con formato call_scheduler)
 
{
  "calldate" : "2015-10-11 15:00:00",
  "campaign" : "Ventas->",
  "destination" : "098344484",
  "alternatives" : "099124484:099121212",
  "agentphone" : "1001",
  "data" :  "Par1=Val1:Par2=Val2"
}

 

RESPOOL

 

El respool esta dado por un webservice que permite volver a procesar un contacto que fue atendido debido a la lógica de negocio, permite insertar un contacto como se requiera con alternativos, prioridad, etc.

En el CTI llega un registro.

Dialer: Ventas->, 098344484, 1, Par1=val1:Par2=val2, 091121212:099888888, 1, 12, basetesting, 99, 1001

(campaña, destino, status, parametros y valores, alternativos, reintentos, contactid, nombrebase, prioridad, telefono agente)

Con este dato y el siguiente webservice, es posible agregar cualquier tipo de lógica de negocio al marcador desde Forms o Aplicaciones de 3ros (llega como número primario el primer alternativo ya que se considera que el principal ya fue contactado, de todas formas se puede hacer Reschedule de ese número principal en si mismo).

 

 

REST
POST
http://<IP-INTEGRASERVER>/Integra/resources/Dialers/Respool
 
param: @FormParam("callspool") 
 
(json con formato call_spool)
 
{
  "campaign": "Ventas->",
  "destination": "098344484",
  "dialerbase": "basetest"
  "status": 1,
  "contact": 222,
  "retries": 0,
  "data": "Par1=Val1:Par2=Val2",
  "alternatives": "098124484",
  "priority": 99,
  "agentphone": "1001"
}

CTI

 

Ejemplo Evento CTI que llega al Browser.

 


SMS

Básicamente trabaja de forma similar al resto de los marcadores que tenemos, se ponen en memoria 50 mensajes de state 1 de la tabla sms_spool  ordenado por la posición de ingreso de los mismos, se fija si esta en la black_list, si esta no lo envía y lo pone en estado 3.

 

 

Estados

STATE: 0 NONE
STATE: 1 TO PROCESS
STATE: 3 BLOCKED

campañadestinomensajedeviceidmdata
prueba1098344484este es mi smsDinstarautonumericodatos extra

 

Base.csv

campañadestinomensajeprioridad
prueba1098344484este es mi sms9999
Ejemplo:
Base.csv
prueba1;098344484;Hola Mundo!;9999


WebService


Envio SMS
POST 
http://INTEGRASERVER/Integra/resources/SMS/SendSMS
 
params:
@FormParam("destination"), @FormParam("message"), @FormParam("campaign"), @FormParam("agent") 
 

Scheduler

 

El scheduler de marcadores de SMS es para poder Agendar SMS y que el marcador las realice en el momento adecuado, para esto existe un WebService de Tipo REST que permite agendar las mismas. y es posible hacerlo desde Forms, Workflows o desde sistemas externos.

 

Básicamente el proceso es que existe una tabla donde estan las llamadas que estan agendadas con toda su información pertinente.

sms_scheduler

 

calldate
campaña
teléfono destino
data
fecha y hora de cuando tiene que ejectuarprueba1098344484
 El mensaje

 

El scheduler estar ubicando en el sms_spool con prioridad 1 a los mensajes que tienen que ejecutar en ese minuto, lo cual va a hacer que los marcadores lo tomen lo antes posible para enviar el mensaje, queda con nombre de base Schedule y Fecha para poder ver cuales son los sms que se agendaron y cuando debían realizarse para poder comparar con el dateprocessed del sms_repo.

 

Schedule SMS
POST
http://<IP-INTEGRASERVER>/Integra/resources/SMS/ScheduleDialerSMS
 
param: @FormParam("sms") 
 
(json con formato sms_scheduler)
 
{
  "calldate" : "2015-10-11 15:00:00",
  "campaign" : "Ventas->",
  "destination" : "098344484",
  "data" :  "MEnsaje"
}

 


Formatear de excel a CSV 


Se tiene que cambiar primeramente la opción delimitar dentro del panel de control>  opciones de lenguaje región y tiempo> cambiar fecha hora y formato numérico.

1) Cambiar la fecha, tiempo o formato de números.

 

 

2)Herramientas adicionales...

 

 

3)Cambiamos el cambo de list separator del que figure a un punto y coma.

Apply y cerramos.

 

 

4)CREACIÓN DE BASE

  Necesariamente tendremos que insertar una fila al comienzo de todas nuestras bases independientemente del tipo de marcador que utilicemos,

ya que al momento de exportar a CSV el mismo se guía por los cabezales que tengamos ya sean 5 o 6 en total.

 

 

4)Nos dirigimos a archivo>guardar como..

Seleccionamos que el campo tipo, sea CSV (MS-DOS)

 

 

5)Damos clic derecho al archivo que se genero, le damos edit para visualizarlo en modo CSV y corroboramos que se exporto correctamente.

 

 

6) Este es el archivo que se va a generar, borramos la primera linea por completo y guardamos nuevamente.

 

 

7)Finalmente queda el archivo listo para subir a uContact

*Podemos observar en la linea 3 y 5  que si uno de los campos se encuentra vació el delimitador va a generar igual las comas pertinentes para que la base se suba de todas formas

*Así mismo también podemos observar que al finalizar 9999 inserto otra coma al final, tomándolo como un campo adicional y sea acorde a los requerimientos de dichas bases para subir a uContact

 


 

ACLARACIÓN

Supongamos que poseemos una base sin números alternativos ni prioridad


 

Sin dichos campos este sería el resultado primario del CSV después de realizar la importación:

 

 

Procedemos a borrar la primera linea, y el resultado optimo sería: 

 


1001