Incorporação: Integre a Central ao Seu Software
Se você tem um CRM, programa de serviço técnico ou qualquer aplicativo web, pode abrir as telas da central e o telefone web dentro da sua interface. Chamadas ao vivo, gravações de chamadas, gravações de voz, pausa, discagem automática, bloqueio de números e telefone do navegador podem ser incorporados dessa forma.
Não é necessário PHP. Funciona com HTML simples, jQuery, React ou qualquer framework. As telas só abrem nos domínios que você definiu.
Endereço base: https://api.buluthat.com
1. Crie o código de incorporação
No painel Processos de Assinatura > Códigos de Incorporação (CRM) abra a página. Se você for um revendedor, faça isso no Painel do Revendedor > Incorporação e API na página, você faz selecionando o cliente.
| Campo | Descrição |
|---|---|
| Domínios permitidos | O endereço do seu CRM, por exemplo. https://crm.firmaniz.com. Escreva um endereço por linha. https://*.firmaniz.com se você escrever, todos os subdomínios serão cobertos. A tela não se abrirá em um site que não está na lista; isso é aplicado pelo navegador. |
| Telhas | Telões da central a serem exibidos. O usuário só pode abrir estes. |
| Entrada | login dentro do iframe (padrão) ou sem login. O link assinado do servidor funciona em ambos os modos. |
| Marca | Se a marca do revendedor estiver aberta, o nome, logotipo e cor do revendedor aparecerão nas telas. |
Seu código de incorporação wk_ começa com. Este código não é secreto; é visível no código-fonte da sua página. Vem da lista de domínios permitidos e dos métodos de entrada abaixo.
2. Cole o código na sua página
Uma linha
<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 simples
<iframe src="https://api.buluthat.com/embed.php?w=wk_...&page=live_monitor"
style="width:100%;height:720px;border:0" allow="microphone; autoplay"></iframe>
No iframe para telefone web allow="microphone" é obrigatório. embed.js ele mesmo adiciona.
3. Telas
page | Tela |
|---|---|
live_monitor | Acompanhamento de chamadas ao vivo |
status_panel | Status da central ao vivo |
webphone | Telefone web (chamada/resposta pelo navegador) |
report_calls | Gravações de chamadas e voz |
report_recordings | Gravações de áudio |
report_queue_live | Monitoramento em tempo real da fila |
breaks | Gestão de pausas |
auto_calls | Chamadas automáticas |
media | Arquivos de áudio |
blocked_numbers | Bloqueio de números |
voice_otp | Verificação por telefone |
contacts | Agenda |
voicebot_live | Assistente de voz, chamadas ao vivo |
voicebot_sessions | Relatório de chamadas do assistente de voz |
voicebot_inbox | Notas do assistente |
dialer_agent | Tela do representante do discador de vendas |
dashboard | Resumo diário |
4. Autenticação
a) Login dentro do iframe
É o método padrão. O usuário insere seu e-mail e senha dentro do quadro na primeira abertura; se a verificação em duas etapas estiver ativada, o código também será solicitado. A sessão é válida apenas para este código incorporado e telas selecionadas.
Alguns navegadores (especialmente Safari) bloqueiam completamente cookies de outros sites. Nesse caso, na tela de login Abrir em nova janela o link será removido. Use um link assinado para uma solução permanente.
b) Link assinado do servidor (recomendado)
Seu usuário CRM já está logado em seu próprio sistema. Seu servidor está conectado ao Buluthat para esse usuário 2 minutos válidos, uso único recebe um link de entrada e o iframe src atribui ao valor. O usuário também não insere senha.
Chave: Conta do cliente Chaves da API da página Incorporar gerar uma chave abrangente. Se você for um revendedor, vá para Painel do Revendedor > Embutir e API > Chave da API do revendedor use; esta chave é válida para todos os seus clientes. A chave permanece apenas em seu servidor, não vai para o navegador.
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"}'
A mesma solicitação com a chave do revendedor é feita assim:
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 | Obrigatório | Descrição |
|---|---|---|
widget | não | Código de incorporação (wk_...). Se não fornecido, será utilizado o primeiro código de incorporação ativo do cliente. |
user_email | não | Você entra no painel como um usuário registrado com este e-mail. O pessoal também tem suas próprias permissões. |
user_id | não | user_email pode ser usado em vez disso. |
extension | não | Número interno que o telefone web usará (ex. 1000). |
page | não | Tela a ser aberta. Deve estar permitido no código de incorporação. |
tenant_id | revendedor | Apenas com a chave do revendedor: o número do cliente vinculado a você. |
Se o usuário não for fornecido, o usuário sem entrada no código embutido será usado, e se não houver, será usado o representante do cliente.
Resposta:
{ "ok": true, "url": "https://api.buluthat.com/embed.php?w=wk_...&sso=...", "expires_in": 120, "user": "temsilci@firma.com" }
Exemplo em 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>';
Outros terminais:
GET ?action=widgets: lista os códigos de incorporação. Com a chave do revendedortenant_idé necessário.GET ?action=ping: testa a chave.
c) Modo sem login
O código de incorporação se abre sem senha como o usuário escolhido. Para isso, existem duas condições:
- A solicitação deve vir do quadro do seu domínio permitido.
- Se desejar, pode ser exigido que venha da sua lista de IPs.
Aviso: wk_ como o código está no código-fonte da página, este modo tem baixa segurança. Apenas para telas em sua rede interna, com acesso restrito. pessoal use com sua conta.
5. API JavaScript e eventos
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 opções:
| Opção | Descrição |
|---|---|
key | Código de incorporação |
page | Primeira tela |
url | Link assinado (obtido do servidor) url); key é usado em vez de |
height | Altura. Número (px) ou valor CSS; padrão 100% |
autoHeight | true se ajusta à altura do conteúdo do quadro |
Exemplo de clique-para-ligar (jQuery):
$('.musteri-telefon').on('click', function () { Buluthat.dial($(this).text()); });
As mensagens são aceitas apenas do endereço do servidor Buluthat. O Buluthat também escuta apenas os comandos provenientes de seus domínios autorizados.
6. Notas de segurança
- A sessão de incorporação é mantida em um cookie separado e abre apenas as telas selecionadas. As telas de assinatura, pagamento, senha e chave da API nunca são abertas na incorporação.
- Cada entrada e alteração de código embutido é do cliente Histórico de Transações'como escrever.'
- Excluir ou desativar um código de incorporação fecha instantaneamente a tela em todas as páginas que o utilizam.
- Não coloque sua chave da API no código do navegador, aplicativo móvel ou repositório público. Detalhes: Segurança da API.
