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.
| Campo | Descripción |
|---|---|
| Dominios permitidos | La 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. |
| Pantallas | Pantallas de la centralita a mostrar. El usuario solo puede abrir estas. |
| Inicio de sesión | inicio de sesión en iframe (predeterminado) o sin entrada. El enlace firmado del servidor funciona en ambos modos. |
| Marca | Si 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
page | Pantalla |
|---|---|
live_monitor | Seguimiento de llamadas en vivo |
status_panel | Estado de la centralita en vivo |
webphone | WebPhone (llamada/respuesta desde el navegador) |
report_calls | Grabaciones de llamadas y voz |
report_recordings | Grabaciones de audio |
report_queue_live | Monitoreo en tiempo real de la cola |
breaks | Gestión de descansos |
auto_calls | Llamadas automáticas |
media | Archivos de audio |
blocked_numbers | Bloqueo de números |
voice_otp | Verificación por teléfono |
contacts | Agenda |
voicebot_live | Asistente de voz, llamadas en vivo |
voicebot_sessions | Informe de llamada del asistente de voz |
voicebot_inbox | Notas del asistente |
dialer_agent | Pantalla del representante de ventas dialer |
dashboard | Resumen 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.
b) Enlace firmado desde el servidor (recomendado)
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"}'
| Campo | Obligatorio | Descripción |
|---|---|---|
widget | no | Código de incrustación (wk_...). Si no se proporciona, se utilizará el primer código de integración activo del cliente. |
user_email | no | Se ingresa en el panel como usuario registrado con este correo electrónico. El personal también tiene sus propios permisos. |
user_id | no | user_email puede ser utilizado en su lugar. |
extension | no | Número interno que usará el WebPhone (por ej. 1000). |
page | no | Pantalla que se abrirá. Debe estar permitido en el código de integración. |
tenant_id | distribuidor | Solo 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 distribuidortenant_ides 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ón | Descripción |
|---|---|
key | Código de incrustación |
page | Primera pantalla |
url | Enlace firmado (que recibió del servidor url); key se utiliza en su lugar |
height | Altura. Número (px) o valor CSS; predeterminado 100% |
autoHeight | true 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.
