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.
| Veld | Omschrijving |
|---|---|
| Toegestane domeinen | Het 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. |
| Schermen | Te tonen centrale schermen. De gebruiker kan alleen deze openen. |
| Inloggen | inloggen in iframe (standaard) of inlogloos. De ondertekende link van de server werkt in beide modi. |
| Merk | Als 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
page | Scherm |
|---|---|
live_monitor | Live oproeptracking |
status_panel | Live centrale status |
webphone | Webtelefoon (bellen/antwoorden vanuit de browser) |
report_calls | Oproep- en geluidsopnamen |
report_recordings | Geluidopnames |
report_queue_live | Realtime wachtrijmonitoring |
breaks | Pauzebeheer |
auto_calls | Automatisch bellen |
media | Geluidbestanden |
blocked_numbers | Nummerblokkering |
voice_otp | Telefoonverificatie |
contacts | Adresboek |
voicebot_live | Spraakassistent, live gesprekken |
voicebot_sessions | Spraakassistent gesprek rapport |
voicebot_inbox | Assistent notities |
dialer_agent | Verkoopdialer vertegenwoordiger scherm |
dashboard | Dagelijkse 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.
b) Ondertekende link van de server (aanbevolen)
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"}'
| Veld | Verplicht | Omschrijving |
|---|---|---|
widget | nee | Embedcode (wk_...). Als niet opgegeven, wordt de eerste actieve embedcode van de klant gebruikt. |
user_email | nee | U logt in op het paneel als gebruiker geregistreerd met dit e-mailadres. Personeel heeft ook zijn eigen bevoegdheden. |
user_id | nee | user_email kan worden gebruikt in plaats van. |
extension | nee | Interne nummer dat de webtelefoon zal gebruiken (bijv. 1000). |
page | nee | Scherm dat geopend moet worden. Moet toegestaan zijn in de embedcode. |
tenant_id | dealer | Alleen 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 sleuteltenant_idis 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:
| Optie | Omschrijving |
|---|---|
key | Embedcode |
page | Eerste scherm |
url | Ondertekende link (verkregen van de server url); key wordt gebruikt in plaats van |
height | Hoogte. Nummer (px) of CSS-waarde; standaard 100% |
autoHeight | true 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.
