Embed: Plaats de centrale in uw software

Als u een CRM, technische serviceprogramma of andere webapplicatie heeft, kunt u centrale schermen en webtelefoon binnen uw interface openen. Live oproepen, oproepregistraties, audiorecords, pauzes, automatische oproepen, nummerblokkering en browsertelefoon kunnen op deze manier worden ingebed.

PHP is niet vereist. Werkt met gewone HTML, jQuery, React of elk ander framework. Schermen openen alleen op de domeinen die u heeft opgegeven.

Basisadres: https://api.buluthat.com

1. Genereer insluitcode

In het paneel Abonnementsprocessen > Embedcodes (CRM) open de pagina. Als u een dealer bent, doet u dit via Dealer Paneel > Embed en API doet u door de klant te selecteren op de pagina.

VeldOmschrijving
Toegestane domeinenHet adres van uw CRM, bijv. https://crm.firmaniz.com. Schrijf een adres op elke regel. https://*.firmaniz.com als u schrijft, worden alle subdomeinen gedekt. Een scherm opent niet op een site die niet in de lijst staat; dit wordt door de browser toegepast.
SchermenTe tonen centrale schermen. De gebruiker kan alleen deze openen.
Inloggeninloggen in iframe (standaard) of inlogloos. De ondertekende link van de server werkt in beide modi.
MerkAls het dealer merk open is, wordt de naam, het logo en de kleur van de dealer op de schermen weergegeven.

Uw embed code wk_ begint met. Deze code is niet geheim; hij is zichtbaar in de bron van uw pagina. Komt van de lijst met toegestane domeinen en de onderstaande inlogmethoden.

2. Plak de code op uw pagina

Enkele regel

<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>

Eenvoudige iframe

<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 voor webtelefoon allow="microphone" is verplicht. embed.js voegt hij zelf toe.

3. Schermen

pageScherm
live_monitorLive oproeptracking
status_panelLive centrale status
webphoneWebtelefoon (bellen/antwoorden vanuit de browser)
report_callsOproep- en geluidsopnamen
report_recordingsGeluidopnames
report_queue_liveRealtime wachtrijmonitoring
breaksPauzebeheer
auto_callsAutomatisch bellen
mediaGeluidbestanden
blocked_numbersNummerblokkering
voice_otpTelefoonverificatie
contactsAdresboek
voicebot_liveSpraakassistent, live gesprekken
voicebot_sessionsSpraakassistent gesprek rapport
voicebot_inboxAssistent notities
dialer_agentVerkoopdialer vertegenwoordiger scherm
dashboardDagelijkse samenvatting

4. Authenticatie

a) Inloggen in iframe

Dit is de standaardmethode. De gebruiker voert zijn e-mail en wachtwoord in het kader in bij de eerste opening; als de tweefactorauthenticatie is ingeschakeld, wordt ook om de code gevraagd. De sessie is alleen geldig voor deze embedcode en geselecteerde schermen.

Sommige browsers (vooral Safari) blokkeren volledig cookies van andere sites in een iframe. In dat geval op het inlogscherm Open in een nieuw venster verbindt. Gebruik een ondertekende link voor een permanente oplossing.

Uw CRM-gebruiker is al ingelogd in uw systeem. Uw server is verbonden met Buluthat voor die gebruiker 2 minuten geldig, eenmalig ontvangt een inloglink en iframe's src gebruiker voert ook geen wachtwoord in.

Sleutel: Klantaccount API Sleutels van de pagina Embedden genereer een uitgebreide sleutel. Als u een dealer bent, ga dan naar Dealer Paneel > Insluiten en API > Dealer API sleutel gebruik; deze sleutel is geldig voor al uw klanten. De sleutel blijft alleen op uw server, gaat niet naar de 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"}'

Dezelfde aanvraag met de dealer sleutel wordt als volgt gedaan:

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"}'
VeldVerplichtOmschrijving
widgetneeEmbedcode (wk_...). Als niet opgegeven, wordt de eerste actieve embedcode van de klant gebruikt.
user_emailneeU logt in op het paneel als gebruiker geregistreerd met dit e-mailadres. Personeel heeft ook zijn eigen bevoegdheden.
user_idneeuser_email kan worden gebruikt in plaats van.
extensionneeInterne nummer dat de webtelefoon zal gebruiken (bijv. 1000).
pageneeScherm dat geopend moet worden. Moet toegestaan zijn in de embedcode.
tenant_iddealerAlleen met de dealer sleutel: het nummer van de klant dat aan u is gekoppeld.

Als er geen gebruiker is opgegeven, wordt de gebruiker zonder toegangscode in de embedcode gebruikt; als die er niet is, wordt de klantvertegenwoordiger gebruikt.

Antwoord:

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

PHP voorbeeld:

$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>';

Andere eindpunten:

  • GET ?action=widgets: lijst embedcodes. Met de dealer sleutel tenant_id is vereist.
  • GET ?action=ping: test de sleutel.

c) Inlogloze modus

De embedcode opent als de door u gekozen gebruiker zonder wachtwoord. Hiervoor zijn twee voorwaarden:

  • Verzoek moet komen van het frame van uw toegestane domein.
  • Als u wilt, kan het ook vereist zijn dat het van uw IP-lijst komt.

Waarschuwing: wk_ deze modus is laag beveiligd omdat de code in de pagina bron staat. Alleen voor schermen binnen uw eigen netwerk, met beperkte autorisatie. personeel gebruik uw account.

5. JavaScript API en gebeurtenissen

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 opties:

OptieOmschrijving
keyEmbedcode
pageEerste scherm
urlOndertekende link (verkregen van de server url); key wordt gebruikt in plaats van
heightHoogte. Nummer (px) of CSS-waarde; standaard 100%
autoHeighttrue past zich aan de hoogte van de inhoud van het frame aan

Klik-om-te-bellen voorbeeld (jQuery):

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

Berichten worden alleen geaccepteerd van het adres van de Buluthat-server. Buluthat luistert ook alleen naar opdrachten van uw goedgekeurde domeinen.

6. Beveiligingsnotities

  • De embed sessie wordt in een aparte cookie opgeslagen en opent alleen de geselecteerde schermen. Abonnement, betaling, wachtwoord en API-sleutel schermen worden nooit embedded.
  • Elke toegang en embedcode wijziging van de klant Transactiegeschiedenis'hoe te schrijven.'
  • Het verwijderen of sluiten van een embedcode sluit het scherm onmiddellijk op alle pagina's waar het wordt gebruikt.
  • Plaats uw API-sleutel niet in de browsercode, mobiele applicatie of openbare opslag. Details: API-beveiliging.