Intégration : Intégrez le PBX dans votre logiciel
Si vous avez une adresse CRM, un programme de service technique ou toute application web, vous pouvez ouvrir les écrans de centrale et le téléphone web dans votre propre interface. Les appels en direct, les enregistrements d'appels, les enregistrements audio, les pauses, le numéroteur automatique, le blocage de numéro et le téléphone navigateur peuvent être intégrés de cette manière.
Aucun PHP requis. Fonctionne avec du HTML simple, jQuery, React ou tout autre framework. Les écrans s'ouvrent uniquement sur les domaines que vous avez définis.
Adresse de base : https://api.buluthat.com
créez le code d'intégration 1
Dans le panneau Opérations d'abonnement > Codes d'intégration (CRM) ouvrez la page. Si vous êtes un revendeur, faites-le depuis le Panneau Revendeur > Intégration et API vous le faites en sélectionnant le client depuis la page.
| Champ | Description |
|---|---|
| Domaines autorisés | L'adresse de votre CRM, par exemple. https://crm.firmaniz.com. Écrivez une adresse par ligne. https://*.firmaniz.com si vous écrivez, tous les sous-domaines sont couverts. Aucun écran ne s'ouvre sur le site non listé ; cela est appliqué par le navigateur. |
| Écrans | Écrans du PBX à afficher. L'utilisateur ne peut ouvrir que ceux-ci. |
| Connexion | connexion dans iframe (par défaut) ou sans connexion. Le lien signé du serveur fonctionne dans les deux modes. |
| Marque | Si la marque du revendeur est activée, le nom, le logo et la couleur du revendeur apparaîtront sur les écrans. |
Votre code d'intégration wk_ commence avec. Ce code n'est pas secret ; il est visible dans le code source de votre page. Il provient de la liste des domaines autorisés et des méthodes de connexion ci-dessous.
collez le code sur votre page 2
Une ligne
<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>
Dans l'iframe pour WebPhone allow="microphone" est requis. embed.js il l'ajoute lui-même.
3. Écrans
page | Écran |
|---|---|
live_monitor | Suivi des appels en direct |
status_panel | État de la centrale en direct |
webphone | WebPhone (appel/réponse depuis le navigateur) |
report_calls | Appels et enregistrements audio |
report_recordings | Enregistrements audio |
report_queue_live | Surveillance en temps réel de la file d'attente |
breaks | Gestion des pauses |
auto_calls | Appels automatiques |
media | Fichiers audio |
blocked_numbers | Blocage de numéros |
voice_otp | Vérification par téléphone |
contacts | Répertoire |
voicebot_live | Assistant vocal, appels en direct |
voicebot_sessions | Rapport d'appel de l'assistant vocal |
voicebot_inbox | Notes de l'assistant |
dialer_agent | Écran du représentant du dialer de vente |
dashboard | Résumé quotidien |
authentification 4
a) Connexion dans l'iframe
C'est la méthode par défaut. L'utilisateur saisit son e-mail et son mot de passe dans le cadre lors de la première ouverture ; si la vérification en deux étapes est activée, un code est également demandé. La session n'est valable que pour ce code d'intégration et les écrans sélectionnés.
Certains navigateurs (en particulier Safari) bloquent complètement les cookies d'autres sites dans les cadres. Dans ce cas, sur l'écran de connexion Ouvrir dans une nouvelle fenêtre le lien est retiré. Utilisez un lien signé pour une solution permanente.
b) Lien signé depuis le serveur (recommandé)
Votre utilisateur CRM est déjà connecté à son propre système. Votre serveur est Buluthat pour cet utilisateur valide pendant 2 minutes, à usage unique reçoit un lien d'entrée et l'iframe src donne la valeur. L'utilisateur n'entre également pas de mot de passe.
Clé : Compte client Clés API de la page Intégration générez une clé complète. Si vous êtes un revendeur, allez à Panneau Revendeur > Intégration et API > Clé API du revendeur utilisez ; cette clé est valable pour tous vos clients. La clé reste uniquement sur votre serveur, elle ne va pas dans le navigateur.
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 même requête avec la clé du revendeur se fait comme suit :
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"}'
| Champ | Obligatoire | Description |
|---|---|---|
widget | non | Code d'intégration (wk_...). Si non fourni, le premier code d'activation actif du client sera utilisé. |
user_email | non | Vous vous connectez au panneau en tant qu'utilisateur enregistré avec cet e-mail. Le personnel a également ses propres autorisations. |
user_id | non | user_email peut être utilisé à la place. |
extension | non | Numéro interne que le WebPhone utilisera (par ex. 1000). |
page | non | Écran à ouvrir. Doit être autorisé dans le code d'intégration. |
tenant_id | grossiste | Uniquement avec la clé de grossiste : le numéro du client associé à vous. |
Si aucun utilisateur n'est fourni, l'utilisateur sans entrée dans le code d'intégration est utilisé, sinon l'agent client est utilisé.
Réponse :
{ "ok": true, "url": "https://api.buluthat.com/embed.php?w=wk_...&sso=...", "expires_in": 120, "user": "temsilci@firma.com" }
Exemple 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>';
Autres extrémités :
GET ?action=widgets: liste les codes d'intégration. Avec la clé du revendeurtenant_idnécessaire.GET ?action=ping: teste la clé.
c) Mode sans connexion
Le code d'intégration s'ouvre sans mot de passe en tant qu'utilisateur sélectionné. Il y a deux conditions pour cela :
- La demande doit provenir du cadre de votre domaine autorisé.
- Si vous le souhaitez, il peut également être exigé qu'il provienne de votre liste IP.
Avertissement : wk_ ce mode est peu sécurisé car le code se trouve dans le code source de la page. Pour les écrans uniquement sur votre réseau interne, une autorisation limitée est requise. personnel utilisez avec votre compte.
API JavaScript et événements 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 options :
| Option | Description |
|---|---|
key | Code d'intégration |
page | Premier écran |
url | Lien signé (obtenu depuis le serveur url); key est utilisé à la place |
height | Hauteur. Nombre (px) ou valeur CSS ; par défaut 100% |
autoHeight | true s'adapte à la hauteur du contenu du cadre |
Exemple clic-appel (jQuery) :
$('.musteri-telefon').on('click', function () { Buluthat.dial($(this).text()); });
Les messages ne sont acceptés que depuis l'adresse du serveur Buluthat. Buluthat écoute uniquement les commandes provenant de vos domaines autorisés.
notes de sécurité 6
- La session d'intégration est conservée dans un cookie séparé et n'ouvre que les écrans sélectionnés. Les écrans d'abonnement, de paiement, de mot de passe et de clé API ne s'ouvrent jamais en intégration.
- Chaque entrée et modification de code d'intégration est du ressort du client Historique des transactions'comment écrire.'
- Supprimer ou désactiver un code d'intégration fermera instantanément l'écran sur toutes les pages qui l'utilisent.
- Ne mettez pas votre clé API dans le code du navigateur, l'application mobile ou un dépôt public. Détails : Sécurité de l'API.
