Integración de tu propio sistema CRM y telefonía

Created by Daniel Kauffer, Modified on Wed, 14 Feb at 4:26 PM by Daniel Kauffer

Para qué se necesita la integración de tu propio CRM/ERP/Desk con la centralita virtual


La integración de tu propio CRM/ERP/Desk con la centralita virtual de Megacall es esencial para optimizar la comunicación con clientes y socios, especialmente cuando una parte significativa de la comunicación se realiza por teléfono. Los sistemas de automatización empresarial permiten gestionar eficientemente estas interacciones, y la integración con la telefonía IP de Megacall proporciona varias ventajas:


  • Acceso a una Gran Base de Clientes: Más de 1.6 millones de clientes de Megacall pueden acceder a tus servicios a través de la integración.

  • Integración sin Costos Adicionales para Clientes: Tus clientes pueden integrar la telefonía IP de Megacall sin gastos adicionales, ya que la centralita virtual, API y otras integraciones son servicios gratuitos.

  • Cobertura Mundial de Servicios: La cobertura global de Megacall permite que tus clientes estén en cualquier parte del mundo, con soporte en cinco idiomas, centros de datos en tres continentes y números virtuales disponibles en 100 países.

  • Posibilidad de Pruebas y Publicación: Después de la integración, si las visitas mensuales a tu sitio web superan los 30 mil usuarios, Megacall puede probar la integración y publicar las instrucciones en su sitio web, proporcionándote tráfico gratuito de uno de los operadores VoIP más populares en Europa y países de la CEI.


En el área personal de Megacall, encontrarás integraciones directas desarrolladas por ellos para distintos sistemas. También se proporcionan ejemplos de integración con sistemas de terceros en el apartado de Ayuda, Instrucciones de configuración. La interfaz abierta de la API permite a cualquier desarrollador implementar la integración completa con la centralita virtual de Megacall de manera independiente, siendo una tarea de baja complejidad. 

En esta sección, veremos un ejemplo de integración con un sistema CRM ajeno.




Funciones Básicas: 


La integración de tu propio CRM/ERP/Desk con la centralita virtual de Megacall ofrece varias funciones básicas que optimizan la gestión de llamadas y la interacción con los clientes. Estas funciones incluyen:


  • Llamadas a través de un Clic desde el CRM: 

    Facilita la realización de llamadas directamente desde el CRM con un solo clic.
  • Ventana Pop-up con Notificación de Llamada: 

    Muestra una ventana emergente con información del cliente al recibir o realizar llamadas, con un enlace directo a la ficha del cliente.
  • Estadísticas y Grabación de Llamadas en la Ficha del Cliente: 

    Proporciona estadísticas detalladas de llamadas y permite la grabación de llamadas asociadas a la ficha del cliente.
  • Creación Automática de Contactos/Leads/Acuerdos: 

    Crea automáticamente nuevos contactos, leads o acuerdos al recibir llamadas de nuevos clientes.
  • Envío Automático de Llamadas Entrantes al Operario Responsable: 

    Asigna automáticamente las llamadas entrantes de un cliente existente al operario responsable.
  • Visualización del Nombre del Cliente en el Teléfono IP: 

    Muestra el nombre del cliente en el teléfono IP al recibir llamadas entrantes.
  • Recordatorio de Llamadas Perdidas: 

    Ofrece recordatorios sobre llamadas perdidas para un seguimiento efectivo.
  • Lista Negra Propia para Llamadas Entrantes: 

    Permite utilizar una lista negra propia para gestionar llamadas entrantes.



La interacción con la API de Megacall se realiza a través de dos partes:


  • Peticiones (POST, GET) desde CRM hacia la API de Megacall: 

    Permite realizar solicitudes desde el CRM hacia la API para acceder a funciones específicas.
  • Sistema de Notificaciones sobre Llamadas (Webhook): 

    Envía notificaciones mediante peticiones POST con información detallada sobre las llamadas desde la API de Megacall hacia el sistema CRM.

Para obtener información detallada sobre la API y su implementación, se proporciona documentación completa en el siguiente enlace.



1. Configuración de Integración por parte de Megacall


Antes de comenzar la configuración de la integración entre Megacall y tu sistema CRM, es necesario realizar algunos pasos en el área privada de Megacall. Aquí se describen los requisitos iniciales y los pasos a seguir:


Requisitos Necesarios:

  1. Generar claves de autorización API (Key y Secret).

  2. Crear la centralita virtual mediante el Asistente de configuración (extensiones de la centralita virtual con grabación de llamadas en función del número de usuarios del CRM, escenarios de llamadas entrantes).




Configuración en el Área Personal de Megacall:


En el área personal de Megacall, dirígete a la sección Configuración-API.

En la columna "Eventos para los que desea enviar datos", asegúrate de que todas las notificaciones estén activadas.

En la sección "Notificación sobre las llamadas a la centralita virtual", en el campo "Enlace a tu sitio web", introduce la URL de tu CRM (por ejemplo, https://mybestcrm.com/megacall).

Validación del Enlace:


Para que el sistema acepte el enlace, debes agregar un código de verificación al principio del script en tu CRM. Por ejemplo, en PHP:


<?php if (isset($_GET['zd_echo'])) exit($_GET['zd_echo']); ?>


La validación del enlace se realiza al pulsar el botón "Agregar". Se enviará al enlace un conjunto arbitrario de símbolos, por ejemplo, 1234567. De acuerdo con el código indicado, el enlace debe devolver el valor enviado sin símbolos adicionales, espacios, secuencias BOM, etc. Puedes verificar la validación del enlace enviando una solicitud curl a tu enlace con ?zd_echo=1234567.


curl https://mybestcrm.com/megacall?zd_echo=1234567


La respuesta debe ser el valor enviado, en este caso, 1234567.


Seguridad Adicional:

Para aumentar la seguridad, se recomienda permitir el acceso a tu enlace solo desde la IP 185.45.152.42. En cada solicitud a tu enlace, recibirás un encabezado adicional "Signature", con el cual también puedes verificar la integridad y autenticidad de los datos. Puedes obtener más información sobre esto en la documentación correspondiente.




2. Configuración de Integración por Parte del CRM


Después de haber confirmado el enlace del CRM en el área personal de Megacall y haber generado las claves de autorización (Key y Secret), es hora de realizar la configuración del CRM para la integración. En el lado del CRM, debes tener una página de configuración de telefonía con las siguientes opciones básicas:


  • Campos para introducir claves de autorización (Key y Secret).

  • Enlace al módulo de telefonía en el CRM que se confirmó anteriormente (por ejemplo, https://mybestcrm.com/megacall).

  • Listado de usuarios con la posibilidad de asignar a cada uno su propia y única extensión de la centralita virtual.


El listado de extensiones se puede obtener mediante el método GET /v1/pbx/internal/.


A partir del listado de extensiones, se puede formar un menú contextual para asignar la extensión a cada usuario del sistema CRM. Si la extensión ya está asignada a un usuario, no estará disponible para ser seleccionada por otro usuario del sistema.


Se recomienda asignar a uno de los usuarios como responsable por defecto marcando la casilla correspondiente en la página de configuración de telefonía. El responsable por defecto será el operario asignado para eventos que no tienen un responsable específico. Por ejemplo, una llamada entrante de un cliente nuevo puede ser enviada simultáneamente a 5 extensiones (5 usuarios del CRM), y si ninguno responde la llamada, el responsable por defecto se asignará automáticamente.


En el caso de call centers, puede ser útil mostrar el balance del área personal de Megacall en la página de telefonía en el CRM. Puedes obtener el balance con el método GET /v1/info/balance/.


Las configuraciones de telefonía en el CRM generalmente están disponibles solo para usuarios con derechos de administrador o gerente. Si tu CRM tiene un listado de leads no trabajados y estos son asignados automáticamente a los usuarios, la opción de responsable por defecto puede no ser necesaria.


3. Llamadas Salientes desde la Interfaz del CRM


3.1 Widget en WebRTC para Llamadas desde el Navegador


Si el sistema CRM utiliza HTTPS, puedes insertar nuestro widget. Importante: no coloques el widget en un dominio público, ya que esto permitiría que cualquier persona realice llamadas desde tu cuenta. Cada vez que el código del servidor carga una página, necesitas generar una clave para WebRTC, que se obtiene mediante el método GET /v1/webrtc/get_key de nuestra API (la validez de la clave es de 72 horas).


En el área personal, en la sección Configuración - Integraciones y API, en el apartado "Integración del widget WebRTC", es necesario insertar el dominio de tu sistema CRM y seleccionar las configuraciones de la ubicación y el diseño del widget. Luego, utiliza la clave obtenida para la integración en tu sistema CRM. En lugar de YOUR_KEY, inserta la clave generada a través de la API; en YOUR_SIP, inserta el número SIP o el número completo de la extensión de la centralita desde la que se realizarán las llamadas.


Ejemplo de código:


<script src="https://my.megacall.es/webphoneWebRTCWidget/v8/js/loader-phone-lib.js?v=17"></script>
<script src="https://my.megacall.es/webphoneWebRTCWidget/v8/js/loader-phone-fn.js?v=17"></script> 
<script>
  if (window.addEventListener) { 
    window.addEventListener('load', function() { 
      zadarmaWidgetFn('YOUR_KEY', 'YOUR_SIP', 'square' /*square|rounded*/, 'en' /*ru, en, es, fr, de, pl, ua*/, true, "{right:'10px',bottom:'5px'}"); 
    }, false); 
  } else if (window.attachEvent) { 
    window.attachEvent('onload', function(){ 
      zadarmaWidgetFn('YOUR_KEY', 'YOUR_SIP', 'square' /*square|rounded*/, 'en' /*ru, en, es, fr, de, pl, ua*/, true, "{right:'10px',bottom:'5px'}"); 
    }); 
  } 
</script>


Recuerda reemplazar 'YOUR_KEY' con la clave generada y 'YOUR_SIP' con el número SIP o la extensión de la centralita correspondiente. Este código debe ser insertado en cada carga de página por parte del código del servidor en tu sistema CRM.



Widget en estado oculto:


Widget en estado extendido:


3.2 Llamadas con la Ayuda de Devolución de Llamada (Callback)


En la interfaz del CRM, al lado de cada número, insertamos un icono/botón para iniciar una llamada al número de teléfono. También recomendamos crear un marcador telefónico en la interfaz web para realizar llamadas a números nuevos que no estén guardados en el CRM. Las llamadas salientes se realizan según el principio de Callback. En la extensión de la centralita virtual, debe estar configurado un teléfono IP o softphone para realizar y recibir llamadas. El usuario en el CRM hace clic en el icono al lado de cada número o en el botón de llamada en el teléfono web, y en el CRM se envía la solicitud de Callback.


Método: GET /v1/request/callback/


Parámetros:


  • from: número de 3 dígitos de la extensión asignado al usuario.

  • to: número de teléfono al que desea llamar el usuario.


El usuario recibe la llamada entrante en su softphone, la descuelga y espera a ser conectado con el número al que desea llamar.


Ejemplo de implementación:


Recuerda que este ejemplo muestra el flujo de trabajo de la devolución de llamada, y la implementación real puede variar según los detalles técnicos y la interfaz de tu sistema CRM.



4. Notificaciones Emergentes de Llamadas en la Interfaz del CRM


Cuando la extensión de la centralita virtual recibe y realiza llamadas, es esencial que se visualice la notificación correspondiente en el sistema CRM. Esta notificación debe ser visible solo para el usuario que participa en la llamada. En la notificación de llamada emergente, puedes mostrar la siguiente información:


  • Número de teléfono.

  • Nombre del contacto/empresa/lead (si el número está guardado en el CRM, el nombre es un enlace directo a la entidad correspondiente).

  • Botón para crear un nuevo contacto/empresa/lead si la llamada es de un cliente nuevo.

  • Nombre del operario responsable si la llamada es de un cliente existente.

  • Número virtual al que se ha dirigido la llamada (número conectado en Megacall).


El evento desencadenante para mostrar la notificación emergente es NOTIFY_INTERNAL (inicio de la llamada entrante a la extensión de la centralita virtual) o NOTIFY_OUT_START (inicio de la llamada saliente desde la centralita virtual).


Cuando se descuelga la llamada y comienza la conversación, se enviará al CRM la notificación NOTIFY_ANSWER (respuesta a la llamada a la extensión o número externo). Esta notificación será el desencadenante para la notificación emergente. Al recibir NOTIFY_ANSWER, puedes iniciar un contador que muestre la duración de la llamada en tiempo real o cambiar el encabezado de la notificación a "Conversación con 442037691880" (por ejemplo).


Después de la finalización de la llamada, se enviará la notificación NOTIFY_END (fin de la llamada entrante a la extensión de la centralita virtual) o NOTIFY_OUT_END (fin de la llamada saliente desde la centralita virtual).


Después de recibir NOTIFY_END o NOTIFY_OUT_END, la ventana emergente debe cerrarse.


Ten en cuenta que este ejemplo muestra el flujo de trabajo para las notificaciones emergentes de llamadas, y la implementación real puede variar según los detalles técnicos y la interfaz específica de tu sistema CRM.



5. Grabaciones y Estadísticas de Llamadas


Para cargar grabaciones desde Megacall al CRM, es necesario activar la grabación de llamadas a la nube en la configuración de la extensión de la centralita virtual. Después de finalizar la llamada y cuando la grabación esté lista para descargarse, el CRM recibirá una notificación NOTIFY_RECORD (grabación de llamada lista para descarga).


El parámetro call_id_with_rec es un identificador que se utiliza para obtener la grabación de llamadas mediante el método GET /v1/pbx/record/request/. La respuesta contendrá un enlace al archivo de grabación de llamadas. Si tu sistema CRM cuenta con almacenamiento en la nube, la grabación se puede cargar automáticamente allí. En caso de no tener almacenamiento propio, se puede agregar un botón de reproducción para escuchar la grabación a través del enlace. Este botón puede ubicarse junto a la información sobre la llamada, como en el registro de cliente/contacto/acuerdo o en la estadística general de llamadas.


Para crear estadísticas generales de llamadas en el CRM, es necesario utilizar la información recibida de las notificaciones NOTIFY_END y NOTIFY_OUT_END.




6. Creación Automática de Contactos/Leads/Acuerdos durante Llamadas de Nuevos Clientes 


Se automatiza la creación de eventos en el CRM ante llamadas entrantes de números desconocidos o llamadas salientes a números desconocidos. Al recibir o iniciar una llamada, el número telefónico se verifica en la base de datos del CRM y, si no se encuentra, se puede generar automáticamente un nuevo contacto/lead/acuerdo/solicitud y asignar esta tarea al usuario que realizó la llamada. Se sugiere establecer opciones distintas para la función de auto-creación en llamadas entrantes y salientes. Para las llamadas salientes, se puede crear la tarea en los siguientes eventos: inicio de la llamada (notificación NOTIFY_OUT_START), respuesta a la llamada (notificación NOTIFY_ANSWER) o al finalizar la llamada (notificación NOTIFY_OUT_END). El número al que se realiza la llamada se transmite en el parámetro destination.


En el caso de las llamadas entrantes, la tarea puede crearse cuando la llamada ingresa a la extensión del usuario en el CRM (notificación NOTIFY_INTERNAL), y el número del llamante se transfiere en el parámetro caller_id. Durante la llamada, el usuario puede acceder a la ficha del cliente recién creada, editarla, añadir notas, etc. Al finalizar la llamada, se envía la notificación NOTIFY_END, transmitiendo en el parámetro interno la extensión de la centralita virtual que recibió la llamada. Al verificar esta extensión con la lista de usuarios, el CRM determinará a qué usuario asignar la responsabilidad. También se puede crear la tarea al finalizar la llamada entrante después de recibir NOTIFY_END. Algunos sistemas de CRM no utilizan la creación automática de tareas, permitiendo al agente que recibió la llamada decidir si fue o no una llamada objetivo y crear manualmente el lead/contacto/tarea.





7. Enrutamiento Automático de Llamadas Entrantes al Operario Responsable


Cuando se recibe una llamada de un cliente existente (cuyo número ya está registrado en el CRM), la llamada se dirige automáticamente al usuario responsable de dicho cliente. De este modo, el llamante no necesita escuchar el saludo de voz y luego solicitar ser transferido al agente con el que habló hace unos minutos; su llamada se redirige automáticamente a la extensión del operario responsable en el CRM. Esto se implementa mediante la notificación NOTIFY_START.


En el parámetro caller_id, se transmite el número del llamante si ya está guardado en el CRM, por ejemplo, como el número de contacto de algún cliente. Si este cliente tiene un operario asignado, la llamada puede dirigirse a la extensión correspondiente. Además, se puede especificar la duración de la llamada dirigida al operario responsable, por ejemplo, 15 segundos. Si el responsable no está disponible para responder la llamada, después de 15 segundos, la llamada entrante del cliente se devuelve al menú de voz y sigue el flujo de la centralita virtual según los escenarios predeterminados. Esto se logra mediante una respuesta a la solicitud POST NOTIFY_START.


{
    "redirect": “101”,
    "return_timeout": “15”
}


Donde:

redirect: número de extensión de la centralita virtual (de 3 dígitos).

return_timeout: valor en segundos >= 3, representa la duración de la llamada en la extensión antes de ser devuelta al menú; se recomienda un valor de 15 o 20.




8. Visualización del Nombre del Cliente en el Teléfono IP/Softphone


Esta opción posibilita mostrar el nombre del cliente del sistema CRM en el teléfono IP o softphone al recibir una llamada. Se lleva a cabo mediante la notificación NOTIFY_START y su correspondiente respuesta. En las notificaciones, el parámetro caller_id transmite el número del llamante, siempre y cuando el número ya esté almacenado en el CRM y asociado a un cliente/contacto/lead. En respuesta a NOTIFY_START, se puede enviar el nombre del cliente en letras latinas de la siguiente manera:


{
    "caller_name": "IBM"
}


Donde,

caller_name: el nombre del cliente/empresa registrado en el CRM.




9. Recordatorio de Llamadas Perdidas


Ante una llamada entrante de un cliente, al recibir la notificación NOTIFY_END y extraer el número del llamante del parámetro caller_id, es posible identificar al cliente/contacto/lead con este número y su operario responsable. Si la llamada no fue respondida, indicando el estado de la llamada como "Not Answered" en el parámetro “disposition”, se puede generar una tarea/recordatorio al operario responsable sobre la llamada no atendida del cliente.



10. Lista Negra en CRM


Es posible crear una lista de números desde los cuales se rechazarán las llamadas. Puedes agregar números a la lista en la página de configuración telefónica o proporcionar a cada usuario un botón para añadir números a la lista negra. También se implementa mediante la notificación NOTIFY_START y la respuesta correspondiente. Si el número del llamante del parámetro caller_id se encuentra en la lista negra del CRM, la respuesta a NOTIFY_START enviará:


{
    "redirect": "blacklist"
}



11. Incorporar la Integración en el Área Personal de Megacall


Una vez hayas completado con éxito los pasos anteriores y realizado pruebas a nivel de usuario individual, puedes solicitar la incorporación de la integración al Marketplace de Megacall (si el tráfico mensual del sitio web de tu sistema supera los 30,000 usuarios). Esto permitirá el uso de la integración a cualquier usuario de Megacall que tenga una cuenta activa y configurada con la centralita virtual. 

También facilitará a los usuarios finales guardar rápidamente todos los ajustes de forma eficiente. La solicitud debe ser enviada por correo electrónico a support@megacall.es con el asunto "Solicitud para incorporar la integración con el sistema [nombre de tu CRM] al Marketplace Megacall". 


La solicitud debe incluir la siguiente información:


  • Dirección URL de tu CRM para activar la integración

A esta dirección se enviará la información sobre el usuario de Megacall que intenta realizar la integración de la telefonía con tu sistema CRM. En un formato elegido para la transmisión de datos (GET, POST), se te enviará un identificador único del usuario en formato md5 hash. Como respuesta, deberás enviar claves de autorización generadas que se vincularán a ese usuario. En adelante, ante las solicitudes a tu sistema CRM, el identificador de usuario y el hash enviado se utilizarán como datos de autenticación con el encabezado:


Authorization: Bearer [userId . hash]


Asimismo, el identificador del usuario se transmitirá en cada notificación sobre la llamada en el campo zdUserId. Es necesario presentar ejemplos de posibles respuestas.




  • Dirección URL de tu sistema CRM para desactivar la integración

Se enviará a esta dirección la solicitud al intentar desactivar la integración por parte del usuario. Se emplea la autorización Estándar Bearer.



  • Dirección URL de tu sistema CRM para recibir notificaciones sobre las llamadas

Las notificaciones sobre las llamadas se transmitirán a todos los usuarios integrados. Se puede determinar al usuario utilizando el campo zdUserId. El formato de las notificaciones se puede obtener en la página de la descripción de la API. Se emplea la autorización estándar Bearer.



  • Dirección URL de tu sistema CRM que permite obtener los nombres de los clientes por números de teléfono

Es necesario para la realización de la función "Visualización del nombre del cliente en el softphone". Se necesita un ejemplo de solicitud y posibles respuestas. Se emplea la autorización estándar Bearer.



  • (Opcional) Dirección URL de tu sistema CRM que permite obtener la lista de los operarios

Es necesaria para la realización de la función "Asignación de operarios a las extensiones de la centralita virtual". Esto permitirá al usuario asignar a los operarios del sistema CRM con las extensiones de la centralita virtual directamente desde el área personal. En caso de necesitar la sincronización de estos datos con tu CRM, también es necesario indicar la dirección URL a donde hay que enviar estos datos en formato JSON. Se necesita un ejemplo de solicitud y posibles respuestas. Se emplea la autorización estándar Bearer.



  • Visualización del nombre del autor de la integración (puedes enviar el nombre de tu empresa y enlace a la página web principal)

El logo de la integración en formato PNG sobre un fondo transparente de tamaño 500 x 150px.



La funcionalidad de los puntos 6-10 es opcional para que el usuario final pueda activar o desactivar las funciones que necesita en el apartado "Configuración de telefonía" en CRM.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article