🇪🇸
Omnileads Docs
ComunidadForo
Español
Español
  • 👶Introducción a OMniLeads
    • Características Generales de OMniLeads
    • Arquitectura y componentes
  • 🚀Instalación de OMniLeads
    • Deploy utilizando Docker
      • Deploy en Docker-Destkop
      • Deploy en Docker para VPS Cloud o VM
      • Deploy en Docker para VPS Cloud o VM con Bucket Externo
    • Deploy utilizando Ansible
      • Deploy en AIO (All-In-One)
      • Deploy en AIT (All-In-Three)
      • Deploy en HA (High Availability)
      • Backups, Restores, Upgrades y Rollbacks
      • Migración desde CentOS7
    • OMniLeads Enterprise
    • Deploy en Entornos de Desarrollo
    • First Login
    • Certificados TLS/SSL
    • Monitoreo y Observabilidad
    • Consideraciones de Seguridad
  • ⚙️Configuración inicial
  • 🪪Autenticación LDAP
  • 🎞️Video Llamadas (Pro)
    • Configuración Inicial
    • Wordpress Plugin
    • Webphone Demo
    • Embebiendo el Webphone
  • 🎯CX Survey (Pro)
    • Reportería
  • 📈Reportes Premium (Pro)
    • Reportes de Actividad
    • Analizando Resultados
  • 🔊Text To Speech - TTS (Pro)
  • ☎️Configuración del Canal de Voz
    • Parámetros generales del SIP trunk
  • 🆗Configuración del Canal de Whatsapp (Pro)
    • OMniLeads y GupShup
    • Dar de Alta Whatsapp Business en GupShup
    • Plantillas de Mensajes y Grupos Horarios
    • Proveedores
    • Lineas
  • 🚧Wallboard for Business (Pro)
    • Creación de un Wallboard
    • Agregando Widgets y Páginas "realtime"
    • Explorando Widgets y Métricas
  • 📤Mensajes Masivos (Pro)
    • Creación de Envios
    • Campañas de Turnos
    • Exportación de Resultados
  • 💬Campañas de Contacto
    • Campaña Entrante
      • Enrutamiento de llamadas entrantes
      • Derivación de llamadas entrantes desde la PBX hacia OMniLeads
      • Enrutamiento condicionado por rango de tiempo
      • IVR - Interactive Voice Response
      • Identificación de llamada entrante
      • Ejecución de dialplan personalizado
    • Campaña Manual
    • Campaña Preview
    • Campaña Dialer
    • Campaña de Whatsapp
  • 🎧Manual de agente
    • Login Logout
    • Llamadas manuales desde listado de contactos
    • Llamadas preview
    • Llamadas en dialer
    • Llamadas entrantes
    • Llamadas entre agentes
    • Listado de Contactos
    • Mensajes de Whatsapp
  • 🛑Métricas, grabaciones y supervisión
    • Grabaciones
    • Reportes de campañas entrantes
    • Reportes de campañas salientes
    • Reporte general de llamadas
    • Reportes de agente
    • Reportes de Whatsapp
    • Reportes de Conversaciones
    • Supervisión
  • 📊Auditoría de gestiones
  • ☎️Integración entre OMniLeads y PBXs
  • 🛠️Gestiones del administrador IT
  • 🧩Integración con CRM
    • Interacción desde OMniLeads hacia el CRM
    • Interacción desde el CRM hacia OMniLeads
  • 🔐Consideraciones sobre seguridad
  • 📌OMniLeads RESTful API
    • API de sesión de Agente en Asterisk
  • 🗒️Release Notes
  • ❤️Comunidad
  • 🎇Acerca De
Con tecnología de GitBook
En esta página
  • Interacción desde OMniLeads hacia el CRM
  • Activar un nuevo CRM
  • Configuración de Campañas telefónicas con interacción CRM
  • Ejemplo 1: invocación a un CRM utilizando GET
  • Ejemplo 2: invocación a un CRM utilizando GET y Clean URLs
  • Levantar variables de canal personalizadas de Asterisk y pasarlas al CRM
  1. Integración con CRM

Interacción desde OMniLeads hacia el CRM

Última actualización hace 1 año

Interacción desde OMniLeads hacia el CRM

Cada campaña puede invocar un CRM o vista particular

OMniLeads ejecutará llamados o notificaciones hacia el CRM cuando un agente dispare una llamada dentro de una campaña que ha sido configurada para disparar precisamente una URL hacia un CRM externo. Esto puede ocurrir en campañas entrantes, preview o con discador predictivo.

Figure 1: campaign calls and crm

La idea de esta interacción es que el agente disponga de una vista del contacto de la llamada en el CRM. OMniLeads permite que esta invocación al URL del CRM involucre parámetros de la llamada, del contacto y/o parámetros personalizados dentro del contexto de la campaña que ejecuta la llamada al CRM.

A su vez dependiendo de la configuración aplicada en la campaña, el resultado del URL invocado puede estar embebido dentro de la consola de agente, puede dispararse una nueva pestaña en el navegador por cada llamada o bien simplemente enviar un HTTP-Post JSON hacia el CRM.

Figure 2: CRM and agent console

Finalmente debemos considerar que la ejecución de la URL del CRM por parte de OMniLeads puede ser automática (es decir al momento de generarse la llamada) o bien disparada por el agente a partir de accionar un botón que dispara la invocación al CRM.

Todos los detalles de configuración asociados a este escenario de integración se cubren dentro de esta sección.

Activar un nuevo CRM

El primer paso que se debe realizar es dar de alta la entidad «CRM externo» con su dirección web (URL) y demás configuraciones inherentes al formato de interacción que se desea realizar. Entonces se debe acceder al punto de menú; Campañas->Sitios Externos->Nuevo.

Figure 3: new crm

Como se expone en la figura 3, en este paso simplemente debemos nombrar al recurso, indicar la dirección URL del recurso al cual hay que invocar luego desde en cada llamada dentro de una campaña, el tipo de interacción (GET, Post o JSON) con el cual se invocará y finalmente indicar si el sistema debe abrir una nueva pestaña en el browser, realizar la petición y embeber el resultado dentro de la consola del agente o enviar una notificación (JSON) al CRM con los parámetros de cada nueva llamada conectada al agente.

Vamos a listar cada campo del formulario (figura 2):

  • Nombre: nombre de referencia

  • URL: se trata de la dirección web a invocar en cada llamada. Aquí solamente declaramos el recurso web a invocar. Como veremos más adelante, los parámetros son personalizados en cada campaña.

  • Disparador: aquí se permite seleccionar la forma en que se va a invocar la dirección web URL del CRM.

    • Seleccionamos «Agente» si seleccionamos esta opción entonces cuando la llamada conecte con un agente, éste es quien acciona la ejecución de la URL del CRM a través de una petición Ajax desde el navegador.

    • Seleccionamos «Automático» si deseamos que se dispare la ejecución de la URL del CRM al momento en que la llamada ingresa a la consola de agente a través de una petición Ajax desde el navegador.

    • Seleccionam*Figure 3: new crm*os «Servidor» si deseamos que se genere una petición HTTP Post hacia el CRM.

  • Método: la ejecución del URL del CRM puede ser mediante peticiones del tipo GET o POST

  • Formato: en caso de ejecutar una petición del tipo HTTP-POST, se puede indicar el formaro html.

  • Objetivo: si el «disparador» es Automático o Agente, entonces el resultado de la petición realizada al URL del CRM puede ser desplegada o bien de manera «embebida» en la consola del agente o sino abriendo una nueva «pestaña» en el browser del agente.

  • Autenticación de Sitio Externo: al utilizar estándares de HTTP, es un requerimiento de seguridad mandatorio contar con un método de autenticación basado en credenciales de acceso al Endpoint y Tokens de rotación de secrets de sesión. Esta opción puede configurarse desde Campañas->Autenticación Sitios Externos:

Una vez generado el CRM con sus parámetros de configuración, podemos afectarlo a diferentes campañas para que éstas invoquen al CRM en cada llamada conectada a un agente.

Configuración de Campañas telefónicas con interacción CRM

Los cuatro tipo de campañas de OMniLeads permiten activar una ejecución de una invocación al CRM por cada llamada conectada sobre un agente. En este punto vamos a ejemplificar cómo realizar esta configuración, en el wizard de creación de una campaña (figura 3).

Todas las campañas cuentan con la posibilidad de indicar que disparen un formulario, un CRM externo, o bien ambos elementos a la hora de transaccionar una llamada con un agente. En dicha configuración se puede indicar ejecutar un CRM y luego indicar el CRM en particular que deseamos accionar desde nuestra campaña.

Figure 4: CRM campaign activate

Es importante mencionar que OMniLeads cuenta con la habilidad de transaccionar con un CRM basando el criterio en su calificación. Ésto significa que cualquier calificación seleccionada que contenga tildada la opción de "Interaccion con CRM", disparará la URL externa configurada en el Wizard tan pronto el agente califique al contacto.

Esta URL disparada para la ocasión, enviará al CRM Externo un conjunto de variables parametrizadas en función de las reglas y exigencias del negocio.

Luego queda realizar la asignación de parámetros a enviar hacia el CRM. Esto se establece también dentro de la configuración de una campaña (figura 5).

Figure 5: CRM campaign params

En esta etapa de la configuración de cualquier campaña, podemos indicar cada uno de los parámetros disponibles en OMniLeads y que se deben enviar hacia el CRM cada vez que se conecte una llamada a un agente. Dichos parámetros disponibles se agrupan en cinco familias:

  • Dato de campaña, conformado por los parámetros;

    • id: es el id de la campaña

    • nombre: representa al nombre de la campaña

    • tipo: es el tipo de campaña

  • Dato de llamada, conformado por los parámetros;

    • call_id: es el identificador de la transacción dentro de OMniLeads.

    • agent_id: se trata del id del agente que está procesando la llamada que disparó la petición al CRM.

    • agent_username: es el username del agente.

    • agent_name: es el Nombre y Apellido del agente.

    • datetime: hace referencia a la fecha/hora de llamada.

    • telefono: es el teléfono del contacto con el cual se ha conectado la llamada con el agente.

    • id_contacto: es el id interno del contacto en la campaña.

    • rec_filename: el nombre del archivo que contiene la grabación de la llamada conectada al agente.

  • Datos de contacto, serían parámetros disponibles a partir de las columnas de la base de contactos de campaña actual. Entonces quiere decir que podemos citar a cualquier columna de la base como parámetro a enviar en una llamada al CRM.

  • Fijo: se puede fijar un parámetro a enviar en cada llamada.

  • Dato de Dialplan, es un parámetro que el Dialplan debe enviar en un header en el originate

  • Dato de Calificación, conformado por los parámetros;

    • name: nombre de la calificación aplicada por el agente al momento del cierre.

Una vez descriptos cada parámetro del sistema, se observa en la figura 5 que por cada parámetro a enviar se deben completar tres campos:

  • 1er Campo: corresponde al tipo de parámetro (dato de campaña, de llamada, de base de contactos o fijo).

  • 2do Campo: corresponde con el nombre puntual del parámetro a enviar (por ejemplo «nombre» si es un dato de campaña).

  • 3er Campo: es el nombre de cada parámetro, esperado del lado del CRM.

Ejemplo 1: invocación a un CRM utilizando GET

Vamos a suponer que se desea ejecutar el URL: https://mycrm.domain.com?idClient=321321321&idCamp=11&lang=es&recordingFile=prev-115-20190604-2-4149014-1559667982.424.wav

Como se puede leer en nuestra URL de ejemplo, en cada ejecución se debe facilitar como parámetros:

  • ID del contacto

  • ID de la campaña que invoca al crm

  • Un parámetro «lang=es»

  • La grabación de la llamada actual

Cómo implementaríamos entonces este requerimiento desde lo que hemos cubierto en este capítulo ?

Generar el nuevo CRM

En la figura 6 se ejemplifica la implementación del CRM propuesto como ejemplo.

Figure 6: CRM definition

Por lo tanto ahora pasamos a ejemplificar la configuración de la campaña para que invoque al CRM con los parámetros especificados arriba.

En la figura 7, se expone como configurar la campaña para que trabaje con el CRM de este ejemplo.

Figure 7: Campaign and CRM

El último paso tiene que ver con la asignación de los parámetros necesarios para cada invocación al CRM, en la figura 8 ejemplificamos este paso.

Figure 8: Campaign CRM parameters

Finalmente resaltamos la relación entra las columnas 2 y 3 de cada parámetro, ya que hacen a la asignación de los parámetros del sistema bajo los nombres de parámetros esperados del lado del CRM.

Ejemplo 2: invocación a un CRM utilizando GET y Clean URLs

Como se puede leer en nuestra URL de ejemplo, en cada ejecución se debe facilitar como parámetros:

  • ID del contacto

  • ID de la campaña que invoca al crm

  • Un parámetro «lang=es»

  • La grabación de la llamada actual

Cómo implementaríamos entonces este requerimiento desde lo que hemos cubierto en este capítulo ?

Generar el nuevo CRM

En la figura 9 se ejemplifica la implementación del CRM propuesto como ejemplo.

Figure 9: CRM definition with clean URL

En la figura se resaltan los «holders» necesarios para trabajar con Clean URLs. A la hora de generar el URL a ejecutar, se deben especificar los parámetros entre llaves que van a ser generados en la petición. Parámetros que luego se asignarán a la hora de generar la campaña que invocará el CRM externo.

Por lo tanto ahora pasamos a ejemplificar la configuración de la campaña para que invoque al CRM con los parámetros especificados arriba.

La diferencia respecto a las URLs estándares (HTTP GET) que se expuso en el ejemplo 1, es que a la hora de asignar parámetros en la campaña, se deben utilizar «los holders» en lugar de los «Nombres de parámetros», como se ejemplifica en la figura 10.

Figure 10: Campaign and CRM parameters

Finalmente resaltamos la relación entra las columnas 2 y 3 de cada parámetro, en el marco de las «clean URLs» .

Levantar variables de canal personalizadas de Asterisk y pasarlas al CRM

Hay veces en las que el modelo de negocio implica la necesidad de ejecutar un plan de discado de Asterisk personalizado, en este solicitar el ingreso de algun valor DTMF o bien acudir a la posibilidad que nos brinda Asterisk de utilizar servicios de reconocimiento de voz para interactuar con la persona que llama al centro de contacto.

Vamos a intentar ejemplificar un workflow con un ejemplo.

Entonces supongamos que se desea solicitar a un llamante que ingrese su numero de cliente. Por lo que se podria tomar unm DID de nuestro troncal SIP y enviarlo a un dialplan personalizado.

Luego vamos a trabajar en dar de alta el destino personalizado y su codigo.

Respecto al dialplan como tal, se recuerda que el mismo debe ser generado en el archivo: oml_extensions_custom.conf.

[customerdata]
exten => 41004100,1,Verbose(custom dialplan customer data)
same => n,Answer()
same => n,Read(Omlcrmcustomerid,customerid,1,,1,5)
same => n,Read(Omlcrmcustomerplan,customerplan,1,,1,5)
same => n,Set(OMLCUSTOMDIALPLANVARS=Omlcrmcustomerid&Omlcrmcustomerplan)
same => n,Gosub(sub-oml-dst-switch,s,1(1,5))

Vamos a analizar el dialplan en cuestion:

En primer lugar y como es de esperar habra una parte en donde el desarrollador captura la interaccion del llamante, en el caso del ejemplo es a traves de la aplicacion de dialplan READ.

Importante

  • El nombre de las variables TIENE que contener el prefijo Omlcrm

  • Se TIENE que crear la variable OMLCUSTOMDIALPLANVARS que contenga TODAS las variables que se desean pasar al CRM concatenadas con el caracter &

  • Para enviar la llamada a un nodo de OMniLeads se debe invocar en el dialplan a: Gosub(sub-oml-dst-switch,s,1(X,Y)) donde X es el tipo de destino:

    • 1 campanana entrante

    • 2 condicional de tiempo

    • 3 IVR

    • 6 Encuesta

mientras que el valor Y hace referencia al id del objeto en cuestion. En nuestro ejemplo (1,5) el 1 hace referencia a una campana entrante cuyo id es el 5.

Finalmente en la campana en cuestion, se configura la integracion con CRM de la siguiente manera:

form: formulario de gestión con sus datos guardados, codificados en .

Vamos a suponer que se desea ejecutar una : https://mycrm.domain.com/idClient/idCamp/lang/recordingFile

por ejemplo:

🧩
base64
Clean URL
https://my_crm.domain.com/321321321/11/es/prev-115-20190604-2-4149014-1559667982.424.wav
CRM embebido en iframe