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.

CampoDescrizione
Nomi di dominio autorizzatiL'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.
SchermiSchermi del centralino da visualizzare. L'utente può aprire solo questi.
Accessoaccesso all'interno di iframe (predefinito) oppure senza accesso. Il link firmato dal server funziona in entrambe le modalità.
MarcaSe 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

pageSchermo
live_monitorMonitoraggio chiamate in tempo reale
status_panelStato del centralino in tempo reale
webphoneWebPhone (chiamata/ricezione dal browser)
report_callsRegistrazioni chiamate e audio
report_recordingsRegistrazioni audio
report_queue_liveMonitoraggio della coda in tempo reale
breaksGestione pause
auto_callsChiamata automatica
mediaFile audio
blocked_numbersBlocco dei numeri
voice_otpVerifica telefonica
contactsRubrica
voicebot_liveAssistente vocale, chiamate in diretta
voicebot_sessionsRapporto di chiamata dell'assistente vocale
voicebot_inboxNote assistente
dialer_agentSchermata del rappresentante del dialer di vendita
dashboardRiepilogo 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.

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"}'
CampoObbligatorioDescrizione
widgetnoCodice di incorporamento (wk_...). Se non fornito, verrà utilizzato il primo codice di integrazione attivo del cliente.
user_emailnoAccedi al pannello come utente registrato con questa email. Il personale ha anche i propri diritti.
user_idnouser_email può essere utilizzato al posto di.
extensionnoNumero interno che utilizzerà il WebPhone (es. 1000).
pagenoSchermata da aprire. Deve essere autorizzato nel codice di integrazione.
tenant_idrivenditoreSolo 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 rivenditore tenant_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:

OpzioneDescrizione
keyCodice di incorporamento
pagePrimo schermo
urlLink firmato (ottenuto dal server) url); key è usato al posto di
heightAltezza. Numero (px) o valore CSS; predefinito 100%
autoHeighttrue 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.