Integrazione: Inserisci il centralino nel tuo software
Se hai un indirizzo CRM, un programma di assistenza tecnica o qualsiasi applicazione web, puoi aprire gli schermi del centralino e il WebPhone all'interno della tua interfaccia. Chiamate in diretta, registrazioni delle chiamate, registrazioni vocali, pause, chiamate automatiche, blocco numeri e telefono del browser possono essere incorporati in questo modo.
Non è necessario PHP. Funziona con HTML semplice, jQuery, React o qualsiasi framework. Le schermate si aprono solo nei domini che hai specificato.
Indirizzo base: https://api.buluthat.com
create il codice di embedding 1
Nel pannello Operazioni di abbonamento > Codici di integrazione (CRM) aprite la pagina. Se siete un rivenditore, questo lavoro si fa in Pannello Rivenditore > Integrazione e API dalla pagina, lo fate selezionando il cliente.
| Campo | Descrizione |
|---|---|
| Nomi di dominio autorizzati | L'indirizzo del tuo CRM, ad esempio. https://crm.firmaniz.com. Scrivi un indirizzo per riga. https://*.firmaniz.com se scrivete, tutti i sottodomini sono coperti. Non si apre lo schermo su un sito non presente nell'elenco; questo è applicato dal browser. |
| Schermi | Schermi del centralino da visualizzare. L'utente può aprire solo questi. |
| Accesso | accesso all'interno di iframe (predefinito) oppure senza accesso. Il link firmato dal server funziona in entrambe le modalità. |
| Marca | Se il marchio del rivenditore è attivo, il nome, il logo e il colore del rivenditore appariranno sugli schermi. |
Il tuo codice di integrazione wk_ inizia con. Questo codice non è segreto; è visibile nel sorgente della vostra pagina. Proviene dall'elenco dei nomi di dominio autorizzati e dai seguenti metodi di accesso.
incollate il codice nella vostra pagina 2
Una riga
<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 semplice
<iframe src="https://api.buluthat.com/embed.php?w=wk_...&page=live_monitor"
style="width:100%;height:720px;border:0" allow="microphone; autoplay"></iframe>
In iframe per WebPhone allow="microphone" è obbligatorio. embed.js lo aggiunge da solo.
3. Schermi
page | Schermo |
|---|---|
live_monitor | Monitoraggio chiamate in tempo reale |
status_panel | Stato del centralino in tempo reale |
webphone | WebPhone (chiamata/ricezione dal browser) |
report_calls | Registrazioni chiamate e audio |
report_recordings | Registrazioni audio |
report_queue_live | Monitoraggio della coda in tempo reale |
breaks | Gestione pause |
auto_calls | Chiamata automatica |
media | File audio |
blocked_numbers | Blocco dei numeri |
voice_otp | Verifica telefonica |
contacts | Rubrica |
voicebot_live | Assistente vocale, chiamate in diretta |
voicebot_sessions | Rapporto di chiamata dell'assistente vocale |
voicebot_inbox | Note assistente |
dialer_agent | Schermata del rappresentante del dialer di vendita |
dashboard | Riepilogo giornaliero |
autenticazione 4
a) accesso in iframe
È il metodo predefinito. L'utente inserisce la propria email e password all'apertura; se l'autenticazione a due fattori è attivata, viene richiesto anche un codice. La sessione è valida solo per questo codice di incorporamento e per gli schermi selezionati.
Alcuni browser (soprattutto Safari) bloccano completamente i cookie da altri siti. In questo caso, nella schermata di accesso Apri in una nuova finestra rimuovere il collegamento. Utilizza un link firmato per una soluzione permanente.
b) Link firmato dal server (consigliato)
Il tuo utente CRM ha già effettuato l'accesso nel tuo sistema. Il tuo server da Buluthat per quell'utente valido per 2 minuti, usa una sola volta riceve un link di accesso e l'iframe src viene assegnato al valore. L'utente non inserisce anche una password.
Chiave: Nell'account cliente Chiavi API pagina Incorporamento generate una chiave completa. Se siete un rivenditore, andate su Pannello Rivenditore > Embedding e API > Chiave API rivenditore utilizzate; questa chiave è valida per tutti i clienti a voi collegati. La chiave rimane solo sul vostro server, non va nel browser.
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 stessa richiesta con la chiave del rivenditore è fatta così:
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 | Obbligatorio | Descrizione |
|---|---|---|
widget | no | Codice di incorporamento (wk_...). Se non fornito, verrà utilizzato il primo codice di integrazione attivo del cliente. |
user_email | no | Accedi al pannello come utente registrato con questa email. Il personale ha anche i propri diritti. |
user_id | no | user_email può essere utilizzato al posto di. |
extension | no | Numero interno che utilizzerà il WebPhone (es. 1000). |
page | no | Schermata da aprire. Deve essere autorizzato nel codice di integrazione. |
tenant_id | rivenditore | Solo con la chiave del rivenditore: il numero del cliente a te associato. |
Se non viene fornito un utente, viene utilizzato l'utente senza accesso nel codice di incorporamento; se non c'è, viene utilizzato il rappresentante del cliente.
Risposta:
{ "ok": true, "url": "https://api.buluthat.com/embed.php?w=wk_...&sso=...", "expires_in": 120, "user": "temsilci@firma.com" }
Esempio 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>';
Altri terminali:
GET ?action=widgets: elenca i codici di integrazione. Con la chiave del rivenditoretenant_idè necessario.GET ?action=ping: verifica la chiave.
c) Modalità senza accesso
Il codice di incorporamento si apre senza password come utente selezionato. Ci sono due condizioni per questo:
- La richiesta deve provenire dal frame del vostro nome di dominio autorizzato.
- Se volete, può essere richiesto anche che provenga dalla vostra lista IP.
Avviso: wk_ questo modulo è a bassa sicurezza poiché il codice rimane nel sorgente della pagina. Solo per gli schermi nella vostra rete interna, con autorizzazione limitata personale utilizzate il vostro account.
API JavaScript e eventi 5
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 opzioni:
| Opzione | Descrizione |
|---|---|
key | Codice di incorporamento |
page | Primo schermo |
url | Link firmato (ottenuto dal server) url); key è usato al posto di |
height | Altezza. Numero (px) o valore CSS; predefinito 100% |
autoHeight | true si adatta all'altezza del contenuto del frame |
Esempio di clic-per-chiamare (jQuery):
$('.musteri-telefon').on('click', function () { Buluthat.dial($(this).text()); });
I messaggi vengono accettati solo dall'indirizzo del server Buluthat. Buluthat ascolta solo i comandi provenienti dai vostri domini autorizzati.
note di sicurezza 6
- La sessione di integrazione viene mantenuta in un cookie separato e apre solo gli schermi selezionati. Gli schermi di abbonamento, pagamento, password e chiave API non si apriranno mai in integrazione.
- Ogni accesso e modifica del codice di incorporamento è del cliente Storico delle transazioni'come si scrive.'
- Cancellare o disattivare un codice di incorporamento chiude immediatamente lo schermo su tutte le pagine che lo utilizzano.
- Non inserire la tua chiave API nel codice del browser, nell'app mobile o in un repository pubblico. Dettagli: Sicurezza API.
