Para qué se necesita la integración de tu propio CRM/ERP/Desk con la centralita virtual
En la mayoría de los sistemas de automatización empresarial (CRM/ERP/Desk, etc.) se automatiza la comunicación con clientes y/o socios. Mientras una parte significativa de la comunicación se produce en el teléfono, es estrictamente necesario integrar el sistema con la telefonía IP.
Especialmente para los desarrolladores de CRM/Desk y otros sistemas de automatización ofrecemos instrucciones de integración de tu sistema con telefonía IP de Zadarma.
Ventajas de la integración con Zadarma:
- gran base de clientes de Zadarma (mas de 1.6 millones) tendrán acceso a tus servicios;
- tus clientes podrán integrar la telefonía sin gastos adicionales (centralita virtual. API, integraciones - son servicios gratuitos);
- cobertura mundial de servicios, tus clientes pueden estar en cualquier parte del mundo (soporte 5 idiomas, centros de datos en tres continentes, números virtuales en 100 países del mundo).
Así mismo, después de la integración, si las visitas de tu web superan los 30 mil usuarios al mes, estaremos encantados de probar tu integración y publicar las instrucciones en nuestra web (que te dará tráfico gratuito de uno de los operadores VoIP más populares en Europa y países CEI).
En el área personal siguiendo el enlace están disponibles integraciones directas (desarrolladas por nosotros) con distintos sistemas. Así mismo, en el apartado Ayuda-Instrucciones de configuración encontrarás los ejemplos de integración con sistemas de terceros, desarolladas sin nuestra participación. La interfaz abierta de API permite implementar de forma independiente la integración completa con la centralita virtual de Zadarma. Esta tarea es accesible para cualquier desarrollador debido a su baja complejidad. Para tu comodidad, en este apartado veremos la integración de la centralita virtual de Zadarma con un sistema CRM ajeno
Funciones básicas:
- Llamadas a través de un click desde el CRM.
- Ventana pop-up con la notificación de la llamada entrante/saliente con la información del cliente, enlace a la ficha del cliente.
- Estadística de llamadas, grabación de llamadas en la ficha del cliente.
- Creación automática de contactos/leads/acuerdos ante llamadas de un nuevo cliente.
- Envío automático de la llamada entrante del cliente existente a su operario responsable.
- Visualización del nombre del cliente en el teléfono IP ante las llamadas entrantes.
- Recordatorio sobre las llamadas perdidas.
- Uso de la lista negra propia para llamadas entrantes.
La interacción con API se puede dividir en dos partes:
1. Peticiones (POST, GET) por parte de CRM hacia API de Zadarma
2. Sistema de notificaciones sobre llamadas (webhook), POST peticiones con la información sobre las llamadas enviadas por API hacia el sistema CRM
La documentación completa sobre API se encuentra en este enlace
1. Configuraciones de integración por parte de Zadarma.
Requisitos necesario para el inicio de configuración de integración:
En el área privada de Zadarma:
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)
Tenemos cuenta en Zadarma y un sistema CRM que cuenta con dirección URL para el módulo de telefonía, por ejemplo:
https://mybestcrm.com/zadarma
o
https://id12345678.mybestcrm.com/zadarma
A continuación, como ejemplo se utilizará el enlace https://mybestcrm.com/zadarma (tienes que indicar el enlace de tu CRM)
En el área personal de Zadarma en el apartado Configuración-API, en la columna "Eventos para los que desea enviar datos:" tienen que estar activadas todas las notificaciones. En el apartado "Notificación sobre las llamadas a la centralita virtual" en el campo "Enlace a tu sitio web" introduce la URL de tu CRM, a esta dirección serán enviadas las notificaciones sobre las llamadas.
Para que el sistema acepte el enlace es necesario agregar el código de verificación al principio del script.
Ejemplo en PHP:
<?php if (isset($_GET['zd_echo'])) exit($_GET['zd_echo']); ?>
La validación del enlace se realiza al pulsar en el botón "Agregar", se enviará al enlace un conjunto de símbolos arbitrario, por ejemplo 1234567, de acuerdo al código indicado más arriba el enlace debe devolver el valor enviado sin símbolos adicionales, espacios, secuencias BOM, etc. Si la validación del enlace no se completa es necesario verificar qué valor devuelve el enlace enviando petición curl a tu enlace añadiéndole ?zd_echo=1234567
curl https://mybestcrm.com/zadarma?zd_echo=1234567
Como respuesta el enlace debe devolver el valor enviado 1234567
Si el campo está vacío o aparece otro valor distinto del 1234567 la validación no se realizará.
Para aumentar la seguridad se recomienda permitir el acceso a tu enlace sólo desde la IP 185.45.152.42 En cada solicitud a tu enlace se recibirá un encabezado adicional "Signature" por el cual también podrás verificar la integridad y autenticidad de los datos. Más información aquí
2. Configuraciones de la integración por parte de CRM.
En el área personal de Zadarma ya está confirmado en enlace del CRM al cual serán enviadas las notificaciones sobre las llamadas, están generadas las claves de autorización que ahora es necesario guardar en tu CRM. En el lado de CRM necesitas una página para configurar la integración, llamémosla "Configuración de telefonía", esta página debe tener 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 hemos confirmado anteriormentehttps://mybestcrm.com/zadarma.
- 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 a partir del método GET /v1/pbx/internal/
Del listado de extensiones obtenido formaremos un menú contextual para la asignación de la extensión a cada usuario del sistema de CRM Si la extensión ya está asignada a un usuario no estará disponible para ser seleccionada para cualquier otro usuario del sistema.
Recomendamos que uno de los usuarios sea asignado como responsable por defecto mediante la creación de la casilla de verificación correspondiente en la página de configuración de telefonía. Responsable por defecto será el operario responsable para eventos que no tienen asignado un responsable. Por ejemplo, una llamada entrante de un cliente nuevo es enviada simultáneamente a 5 extensiones (5 usuarios del CRM) y ninguno de ellos ha respondido la llamada. Como no queremos perder a un cliente potencial podemos crear un evento, tarea o lead "Llamada perdida desde el número", pero, ¿quién será el responsable? Podríamos asignarlo a los 5 usuarios a la vez pero, en este caso, el cliente potencial podría recibir 5 llamadas de los 5 usuarios. En este caso podemos asignar el evento al responsable por defecto (por ejemplo, el responsable del departamento de ventas). Si en tu CRM cuentas con un listado de leads no trabajados y son los usuarios los que se los asignan o son asignados automáticamente de acuerdo con algún algoritmo interno, puedes no emplear la opción de responsable por defecto.
Las configuraciones de telefonía en el CRM normalmente están disponibles sólo a los usuarios con derechos de administrador/gerente. Para los callcenters puede ser útil la visualización del balance del área personal de Zadarma en la página de telefonía en el CRM. Puedes obtener el balance con la ayuda del método GET /v1/info/balance/
3. Llamadas salientes desde la interfaz del CRM ▾
3.1 Widget en WebRTC para llamadas desde el navegador.
Si el sistema CRM usa https puedes insertar nuestro widget. ¡Atención! No coloque el widget en el dominio público ya que en este caso cualquiera podrá llamar desde tu cuenta. En cada carga de página por parte del código del servidor necesitas generar una clace para webrtc obtenido con la ayuda del método GET /v1/webrtc/get_key nuestro API (Periodo de validez de la clave - 72 horas).
En el área personal en el apartado 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. Después usa la clave obtenida para la integración en tu sistema CRM. En lugar de YOUR_KEY inserta la clave generada a través de API; YOUR_SIP inserta el número SIP o número completo de extensión de la centralita desde la que se realizarán las llamadas.
Ejemplo del código:
<script src="https://my.zadarma.com/webphoneWebRTCWidget/v8/js/loader-phone-lib.js?v=17"></script>
<script src="https://my.zadarma.com/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>
Widget en estado oculto:
Widget en estado extendido:
3.2 Llamadas con la ayuda de devolución de llamada (Callback)
En la interfaz CRM al lado de cada número insertamos el icono/botón para el inicio de llamada al número de teléfono. Así mismo, recomendamos realizar el teléfono web con el teclado de marcado para la llamada a un nuevo número, no guardado en el CRM. Las llamadas salientes se realizan bajo el principio de Callback. En la extensión de la centralita virtual debe haber configurado un teléfono IP o softphone para realizar y recibir llamadas. El usuario en CRM hace clic en el icono al lado de cada número o en el botón de llamada en el teléfono web, en la parte de CRM se envía el Callback.
MétodoGET /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 a su softphone, la descuelga y espera a ser comunicado con el número al que quiere llamar.
Ejemplo de realización:
4. Notificaciones de llamadas emergentes en la interfaz CRM ▾
Cuando la extensión de la centralita virtual recibe y realiza llamadas, es necesario que en el sistema del CRM se visualice la notificación correspondiente. La notificación debe ser visible sólo a aquel usuario que participa en la llamada. En la notificación de la llamada se puede visualizar la siguiente información:
- Número de teléfono
- Nombre del contacto/empresa/lead si el número ha sido previamente guardado en el CRM, el nombre será el enlace para ir directamente a la entidad (contacto/empresa/lead)
- Si la llamada es de un cliente nuevo - botón para la creación de contacto/empresa/lead
- Nombre del operario responsable si la llamada es de un cliente ya existente
- Número virtual al que ha entrado la llamada (número conectado en Zadarma)
El desencadenante de la aparición de la notificación emergente es el evento NOTIFY_INTERNAL (inicio de la llamada entrante a la extensión de la centralita virtual.) o evento NOTIFY_OUT_START (inicio de la llamada saliente desde la centralita virtual.)
Cuando se descuelgue la llamada y empiece la conversación se enviará al CRM la notificación NOTIFY_ANSWER (respuesta ante la llamada a la extensión o número externo.) que, a su vez, será el desencadenante para la notificación emergente, al recibir NOTIFY_ANSWER en la notificación puede iniciar un contador que muestre la duración de llamada en tiempo real o también el encabezado de la notificación el “Llamada de 442037691880” que puede ser reemplazado por “Conversación con 442037691880”
Tras la finalización de la llamada será enviada la notificación NOTIFY_END (fin de la llamada entrante a la extensión de la centralita virtual) oNOTIFY_OUT_END (fin de llamada saliente desde la centralita virtual).
Después de recibir NOTIFY_END o NOTIFY_OUT_END la ventana pop-up tiene que cerrarse.
Ejemplo de realización:
5. Grabación y estadística de llamadas ▾
Para cargar las grabaciones desde Zadarma al CRM es necesario que en los ajustes de la centralita virtual esté activada la grabación de llamadas a la nube. Tras finalizar la llamada, cuando la grabación de llamada esté lista para ser descargada, al CRM será enviada la notificación NOTIFY_RECORD (grabación de llamada lista para ser descargada)
El parámetro call_id_with_rec contiene el identificador que, al ser utilizado, permite recibir la grabación de llamadas. Para ello se implemente el método GET /v1/pbx/record/request/. La respuesta contendrá un enlace al archivo con grabación de llamada, si tu sistema CRM cuenta con su propia nube para guardar los archivos, la grabación puede ser cargada automáticamente a la nube del CRM. Si no cuentas con tu propia nube puedes utilizar el botón play para reproducir la grabación a través del enlace recibido. Puedes distribuir el botón para la reproducción de la grabación al lado de la información sobre la llamada, por ejemplo, en el tablón de lead/contacto/acuerdo y en la estadística general de llamadas.
Para la formulación de estadística de llamadas conjunta en el CRM es necesario utilizar la información sobre llamadas recibida a través de las notificaciones NOTIFY_END y NOTIFY_OUT_END.
6. Creación automática de contactos/leads/acuerdos ante llamadas de nuevos clientes▾
Creación automática de eventos en CRM ante las llamadas entrantes de números desconocidos o llamadas salientes a números desconocidos. Cuando se recibe una llamada entrante o se inicia una llamada saliente, el número de teléfono se consulta con la base de datos de CRM y si no se encuentra el número, se puede crear un nuevo contacto/lead/acuerdo/solicitud y asignar esta tarea al usuario que ha realizado la llamada. Recomendamos crear opciones separadas de la función de autocreación para llamadas entrantes y salientes. Para la llamada saliente se puede crear la tarea cuando: la llamada ha sido iniciada (notificación NOTIFY_OUT_START), la llamada ha sido respondida (notificación NOTIFY_ANSWER), por llamada finalizada (notificación NOTIFY_OUT_END). El número de teléfono al que se realiza la llamada se transmite en el parámetro destination
Para la llamada entrante se puede crear la tarea cuando la llamada ha entrado en la extensión del usuario del CRM (notificación NOTIFY_INTERNAL, el número del llamante se transfiere en el parámetro caller_id) para que en el transcurso de la llamada el usuario ya pueda abrir la recién creada ficha del cliente que llama, editarla, apuntar comentarios, etc. Al terminar la llamada será enviada la notificación NOTIFY_END en la que en el parámetro internal será transmitida la extensión de la centralita virtual que ha recibido esta llamada, comprobando la extensión del listado de los usuarios el sistema CRM entenderá a qué usuario asignar como responsable. También se puede crear la tarea al terminar la llamada entrante después de recibir NOTIFY_END. Algunos sistemas de CRM ni siquiera utilizan la creación automática de tareas, atribuyendo esta tarea al operario que ha recibido la llamada para que decida si ha sido o no una llamada objetivo y manualmente cree el lead/contacto/tarea.
7. Envío de la llamada entrante al operario responsable▾
Ante la llamada entrante del cliente ya existente (su número ya está guardado en el CRM), la llamada será automáticamente enviada al usuario responsable de este cliente. De esta forma, el llamante no tiene que escuchar el saludo de voz cada vez que llame ni solicitar ser transferido con el comercial que ha tratado hace apenas unos minutos. Su llamada será automáticamente transferida a la extensión del operario responsable en el CRM. Se implementa con ayuda de la notificación NOTIFY_START
En el parámetro caller_id se transmite el número del llamante si éste ha sido previamente guardado en el CRM, por ejemplo, como un número de contacto de alguno de los clientes y si este cliente tiene un operario responsable, se puede enviar la llamada a la extensión de éste. También se puede indicar la duración de llamada hacia el operario responsable, por ejemplo 15 segundos. Si el responsable está ausente y no puede recibir la llamada, pasados los 15 segundos la llamada entrante de su cliente será devuelta al menú de voz y posteriormente irá según los escenarios de la centralita virtual. Se implemente con la ayuda de respuesta a la petición POST NOTIFY_START
{
"redirect": “101”,
"return_timeout": “15”
}
donde,
- redirect - extensión de la centralita virtual (número de 3 dígitos).
- return_timeout - Valor en segundos >= 3 - duración de la llamada en la extensión antes de ser devuelta al menú, valor recomendado 15 o 20.
8. Visualización del nombre del cliente en el teléfono IP/softphone▾
La opción permite transferir el nombre del cliente del sistema CRM al teléfono IP o softphone en el que se recibe la llamada. Se realiza con la ayuda de la notificación NOTIFY_START y respuesta a éste. En las notificaciones en el parámetro caller_id se transmite el número del llamante si el número ya está guardado en el CRM y atribuido a un cliente/contacto/lead, en repuesta a NOTIFY_START se puede transmitir con letras latinas el nombre del cliente:
{
"caller_name": "IBM"
}
donde,
- caller_name - nombre del cliente/empresa de CRM.
9. Recordatorio sobre llamadas perdidas▾
Ante la llamada entrante del cliente al recibir la notificación NOTIFY_END desde el parámetro caller_id se pude obtener el número del llamante y encontrar al cliente/contacto/lead con este número y a su operario responsable. Si la llamada no ha sido respondida, estado de la llamada no answered en el parámetro disposition, se puede crear una tarea/recordatorio al operario responsable sobre la llamada perdida del cliente.
10. Lista negra en CRM ▾
Puedes crear una lista de números llamadas desde los cuales serán rechazadas. Puedes agregar el número en la lista en la página de configuración de telefonía o creando a cada usuario un botón para agregar números en la lista negra. También se implementa en base a la notificación NOTIFY_START y la respuesta a ésta. Si el número del llamante del parámetro caller_id se encuentra en la lista negra de CRM, en la respuesta a NOTIFY_START se transmite:
{
"redirect": "blacklist"
}
11. Añadir la integración en el área personal de Zadarma ▾
Después de completar con éxito los pasos anteriores y las pruebas a nivel de usuario individual puedes solicitar añadir la integración al Marketplace de Zadarma (si el tráfico mensual de la web de tu sistema supera los 30.000 usuarios). Esto permitirá el uso de esta integración a cualquier usuario de Zadarma que tenga una cuenta activa y configurada la centralita virtual. También permitirá al usuario final guardar todos los ajustes de forma rápida y eficaz. La solicitud se tiene que enviar por correo electrónico a integration@zadarma.com con asunto "Solicitud para añadir la integración con el sistema [nombre de tu СRM] al Marketplace Zadarma". La solicitud debe contener los siguientes datos:
Dirección URL de tu CRM para activar la integración
A esta dirección se enviará la información sobre el usuario de Zadarma 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á enviar unas clave de autorización generadas que serán vinculadas 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 justificantes con el título:
Authorization: Bearer [userId . hash]
Así mismo, 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 el usuario la integración. Se emplea la autorización Estándar Bearer
Dirección URL de tu sistema CRM para obtener las notificaciones sobre las llamadas
Se transmiten las notificaciones sobre las llamadas 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 desripción de 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". Es necesario un ejemplo de solicitud y posibles respuestas. Se emplea la autorización estándar Bearer.
(IOpcional) 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. Es necesario un ejemplo de la 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