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.

CampoDescrição
Domínios permitidosO 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.
TelhasTelões da central a serem exibidos. O usuário só pode abrir estes.
Entradalogin dentro do iframe (padrão) ou sem login. O link assinado do servidor funciona em ambos os modos.
MarcaSe 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

pageTela
live_monitorAcompanhamento de chamadas ao vivo
status_panelStatus da central ao vivo
webphoneTelefone web (chamada/resposta pelo navegador)
report_callsGravações de chamadas e voz
report_recordingsGravações de áudio
report_queue_liveMonitoramento em tempo real da fila
breaksGestão de pausas
auto_callsChamadas automáticas
mediaArquivos de áudio
blocked_numbersBloqueio de números
voice_otpVerificação por telefone
contactsAgenda
voicebot_liveAssistente de voz, chamadas ao vivo
voicebot_sessionsRelatório de chamadas do assistente de voz
voicebot_inboxNotas do assistente
dialer_agentTela do representante do discador de vendas
dashboardResumo 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.

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"}'
CampoObrigatórioDescrição
widgetnãoCódigo de incorporação (wk_...). Se não fornecido, será utilizado o primeiro código de incorporação ativo do cliente.
user_emailnãoVocê entra no painel como um usuário registrado com este e-mail. O pessoal também tem suas próprias permissões.
user_idnãouser_email pode ser usado em vez disso.
extensionnãoNúmero interno que o telefone web usará (ex. 1000).
pagenãoTela a ser aberta. Deve estar permitido no código de incorporação.
tenant_idrevendedorApenas 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 revendedor tenant_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çãoDescrição
keyCódigo de incorporação
pagePrimeira tela
urlLink assinado (obtido do servidor) url); key é usado em vez de
heightAltura. Número (px) ou valor CSS; padrão 100%
autoHeighttrue 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.