Inserción: Integre la centralita en su software

Si tiene la dirección de su CRM, programa de servicio técnico o cualquier aplicación web, puede abrir las pantallas de la centralita y el teléfono web dentro de su propia interfaz. Llamadas en vivo, grabaciones de llamadas, grabaciones de voz, pausas, marcación automática, bloqueo de números y teléfono del navegador se pueden incrustar de esta manera.

No se requiere PHP. Funciona con HTML simple, jQuery, React o cualquier framework. Las pantallas solo se abren en los dominios que usted especifique.

Dirección base: https://api.buluthat.com

1. Genere el código de integración

En el panel Operaciones de suscripción > Códigos de integración (CRM) abra la página. Si es un distribuidor, haga esto en Panel de Distribuidor > Inserción y API desde la página, lo hace seleccionando al cliente.

CampoDescripción
Dominios permitidosLa dirección de su CRM, por ejemplo. https://crm.firmaniz.com. Escriba una dirección por línea. https://*.firmaniz.com si escribe, se cubrirán todos los subdominios. No se abrirá pantalla en el sitio que no esté en la lista; esto lo aplica el navegador.
PantallasPantallas de la centralita a mostrar. El usuario solo puede abrir estas.
Inicio de sesióninicio de sesión en iframe (predeterminado) o sin entrada. El enlace firmado del servidor funciona en ambos modos.
MarcaSi la marca del distribuidor está activa, el nombre, logo y color del distribuidor aparecerán en las pantallas.

Su código de inserción wk_ comienza con. Este código no es secreto; es visible en el código fuente de su página. Proviene de la lista de dominios permitidos y de los siguientes métodos de entrada.

2. Pegue el código en su página

Una línea

<div id="santral" style="height:720px"></div>
<script src="https://api.buluthat.com/assets/js/embed.js" data-key="wk_..." data-page="live_monitor" data-target="#santral"></script>

jQuery

<script src="https://api.buluthat.com/assets/js/embed.js"></script>
<script>
  $(function () {
    var santral = $('#santral').buluthat({ key: 'wk_...', page: 'report_calls' }).data('buluthat');
  });
</script>

Iframe simple

<iframe src="https://api.buluthat.com/embed.php?w=wk_...&page=live_monitor"
        style="width:100%;height:720px;border:0" allow="microphone; autoplay"></iframe>

En iframe para WebPhone allow="microphone" es obligatorio. embed.js lo añade él mismo.

3. Pantallas

pagePantalla
live_monitorSeguimiento de llamadas en vivo
status_panelEstado de la centralita en vivo
webphoneWebPhone (llamada/respuesta desde el navegador)
report_callsGrabaciones de llamadas y voz
report_recordingsGrabaciones de audio
report_queue_liveMonitoreo en tiempo real de la cola
breaksGestión de descansos
auto_callsLlamadas automáticas
mediaArchivos de audio
blocked_numbersBloqueo de números
voice_otpVerificación por teléfono
contactsAgenda
voicebot_liveAsistente de voz, llamadas en vivo
voicebot_sessionsInforme de llamada del asistente de voz
voicebot_inboxNotas del asistente
dialer_agentPantalla del representante de ventas dialer
dashboardResumen diario

4. Autenticación

a) Ingreso dentro de iframe

Es el método predeterminado. El usuario escribe su correo electrónico y contraseña dentro del marco en la primera apertura; si la verificación en dos pasos está activada, también se solicita un código. La sesión solo es válida para este código de incrustación y las pantallas seleccionadas.

Algunos navegadores (especialmente Safari) bloquean completamente las cookies de otros sitios en un marco. En este caso, en la pantalla de inicio de sesión Abrir en una nueva ventana se elimina el enlace. Use un enlace firmado para una solución permanente.

Su usuario de CRM ya ha iniciado sesión en su propio sistema. Su servidor de Buluthat para ese usuario 2 minutos válidos, de un solo uso recibe un enlace de entrada y el iframe src le asigna un valor. El usuario no introduce una contraseña.

Clave: En la cuenta del cliente Claves API desde la página Incrustar genere una clave completa. Si es un distribuidor, vaya a Panel de Distribuidor > Integración y API > Clave API del distribuidor utilice; esta clave es válida para todos los clientes conectados. La clave solo permanece en su servidor, no va al navegador.

curl -X POST 'https://api.buluthat.com/api/embed.php?action=session' \
  -H 'Authorization: Bearer bt_...' \
  -H 'Content-Type: application/json' \
  -d '{"widget":"wk_...","user_email":"temsilci@firma.com","extension":"1000","page":"webphone"}'

La misma solicitud se realiza con la clave de distribuidor:

curl -X POST 'https://api.buluthat.com/api/embed.php?action=session' \
  -H 'X-Bt-Partner-Key: bp_...' -H 'Content-Type: application/json' \
  -d '{"tenant_id":123,"user_email":"temsilci@musteri.com","page":"live_monitor"}'
CampoObligatorioDescripción
widgetnoCódigo de incrustación (wk_...). Si no se proporciona, se utilizará el primer código de integración activo del cliente.
user_emailnoSe ingresa en el panel como usuario registrado con este correo electrónico. El personal también tiene sus propios permisos.
user_idnouser_email puede ser utilizado en su lugar.
extensionnoNúmero interno que usará el WebPhone (por ej. 1000).
pagenoPantalla que se abrirá. Debe estar permitido en el código de integración.
tenant_iddistribuidorSolo con la clave del distribuidor: el número del cliente asociado a usted.

Si no se proporciona un usuario, se utilizará el usuario sin entrada en el código de inserción; si tampoco hay, se utilizará el representante del cliente.

Respuesta:

{ "ok": true, "url": "https://api.buluthat.com/embed.php?w=wk_...&sso=...", "expires_in": 120, "user": "temsilci@firma.com" }

Ejemplo de PHP:

$ch = curl_init('https://api.buluthat.com/api/embed.php?action=session');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('BULUTHAT_KEY'), 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode(['widget' => 'wk_...', 'user_email' => $kullanici['email'], 'page' => 'live_monitor']),
]);
$cevap = json_decode(curl_exec($ch), true);
echo '<iframe src="' . htmlspecialchars($cevap['url']) . '" style="width:100%;height:720px;border:0" allow="microphone"></iframe>';

Otros extremos:

  • GET ?action=widgets: lista los códigos de integración. Con la clave de distribuidor tenant_id es necesario.
  • GET ?action=ping: prueba la clave.

c) Modo sin entrada

El código de incrustación se abre sin contraseña como el usuario que eligió. Para esto, hay dos condiciones:

  • La solicitud debe provenir del marco de su dominio permitido.
  • Si lo desea, también se puede requerir que provenga de su lista de IP.

Advertencia: wk_ este modo tiene baja seguridad porque el código permanece en el código fuente de la página. Solo para pantallas en su red interna, con acceso restringido. personal utilice su cuenta.

5. API de JavaScript y eventos

var s = Buluthat.mount('#tel', { key: 'wk_...', page: 'webphone' });

s.dial('05321234567');           // web telefonundan ara
Buluthat.dial('05321234567');    // sayfadaki ilk web telefonundan ara
s.go('report_calls');            // ekran değiştir

s.on('call', function (c) {
  // c.state: idle | ringing | dialing | incall ; c.number: karşı numara
  if (c.state === 'ringing') { musteriKartiniAc(c.number); }
});
s.on('ready', function (d) { /* ekran yüklendi: d.page */ });
s.on('resize', function (d) { /* içerik yüksekliği: d.height */ });

mount opciones:

OpciónDescripción
keyCódigo de incrustación
pagePrimera pantalla
urlEnlace firmado (que recibió del servidor url); key se utiliza en su lugar
heightAltura. Número (px) o valor CSS; predeterminado 100%
autoHeighttrue se ajusta a la altura del contenido del marco

Ejemplo de clic-para-llamar (jQuery):

$('.musteri-telefon').on('click', function () { Buluthat.dial($(this).text()); });

Los mensajes solo se aceptan desde la dirección del servidor de Buluthat. Buluthat solo escucha comandos de sus dominios autorizados.

6. Notas de seguridad

  • La sesión de inserción se mantiene en una cookie separada y solo abre las pantallas seleccionadas. Las pantallas de suscripción, pago, contraseña y clave API nunca se abrirán en la inserción.
  • Cada entrada y cambio de código de inserción es del cliente Historial de transacciones'cómo se escribe.'
  • Eliminar o desactivar un código de inserción cierra instantáneamente la pantalla en todas las páginas que lo utilizan.
  • No coloque su clave API en el código del navegador, en la aplicación móvil o en un repositorio público. Detalles: Seguridad de la API.