Skip to main content
Respondido

Conexão com atendimento humano via SDK


paulo.dias

Bom dia, estou tentando realizar a conexão com atendimento humano via SDK. Quando uso o fluxo para abrir um ticket , como no código abaixo, vejo que o ticket não é aberto. … Estou tentando seguir a documentação … saberiam informar se falta algum processo?
 

// Put your identifier and access key here
  let IDENTIFIER = 'identificador_do_meu_chatbot';
  let ACCESS_KEY = 'chave_do_meu_chatbot';

  // Create a client instance passing the identifier and accessKey of your chatbot
  let client = new BlipSdk.ClientBuilder()
    .withIdentifier(IDENTIFIER)
    .withAccessKey(ACCESS_KEY)
    .withTransportFactory(() => new WebSocketTransport())
    .build();

  // Connect with server asynchronously
  // Connection will occurr via websocket on 8081 port.
  client
    .connect() // This method return a 'promise'.
    .then(function (session) {
     // QUANDO CHEGA AQUI, CONECTA NUMA BOA.
      console.log('Application started. Press Ctrl + c to stop.');
    })
    .catch(function (err) {
      /* Connection failed. */
      console.log(`Connection failed: ${err}`);
    });

  client.addMessageReceiver(true, function (message) {
    // Process received message
    console.log(`Received message: ${message}`);
  });

  // CHAMO O MÉTODO ABAIXO EM OUTRA FUNÇAO .... MAS NO PAINEL
  // DE ATENDIMENTO , NÃO VEJO O TICKET NOVO
  client.sendCommand({
      id: Lime.Guid(),
      to: 'postmaster@desk.msging.net',
      method: Lime.CommandMethod.SET,
      uri: '/tickets/',
      type: 'application/vnd.iris.ticket+json',
      resource: {
        customerIdentity: 'XPTO',
      },
    });

 

Melhor resposta por Rafael_Figueiredo

@paulo.dias tudo bem ? 

 

Tente ajustar o comando para esses valores : 

  "to": "postmaster@desk.msging.net",
  "method": "set",
  "uri": "/tickets/{customerIdentity}",
  "type": "text/plain",
  "resource": "I need a human!"
Veja o original
O conteúdo deste tópico foi útil para você?

Rafael_Figueiredo
Blipper
Forum|alt.badge.img+5

@paulo.dias tudo bem ? 

 

Tente ajustar o comando para esses valores : 

  "to": "postmaster@desk.msging.net",
  "method": "set",
  "uri": "/tickets/{customerIdentity}",
  "type": "text/plain",
  "resource": "I need a human!"

paulo.dias
  • Inspiring
  • 8 de outubro de 2024
Rafael_Figueiredo escreveu:

@paulo.dias tudo bem ? 

Tente ajusta o comando para esses valores : 

  "to": "postmaster@desk.msging.net",
  "method": "set",
  "uri": "/tickets/{customerIdentity}",
  "type": "text/plain",
  "resource": "I need a human!"

Opa Rafael, boa tarde, eu consegui ! Mas antes tive que criar o contato e só depois chamar a abertura de ticket com o id do contato. Ficou assim …. →

 

 await client.sendCommand({
      id: 'MEU_IDENTIFICADOR',
      to: 'postmaster@crm.msging.net',
      method: Lime.CommandMethod.SET,
      uri: '/contacts',
      type: 'application/vnd.lime.contact+json',
      resource: {
        identity: 'MEU_IDENTIFICADOR',
        extras: {
          conversationId: 'OUTRO_IDENTIFICADOR',
        },
        source: 'chatbot',
      },
    });

    client.sendCommand({
      id: Lime.Guid(),
      to: 'postmaster@desk.msging.net',
      method: Lime.CommandMethod.SET,
      uri: '/tickets/',
      type: 'application/vnd.iris.ticket+json',
      resource: {
        customerIdentity: 'MEU_IDENTIFICADOR',
      },
    });

Porém agora o item está sendo visível na Fila, mas, o atendente online não consegue puxar …. sabe o que pode ser ?


paulo.dias
  • Inspiring
  • 8 de outubro de 2024

Consegui puxar o ticket manualmente para atendimento, porém as mensagens que envio pelo atendimento não são interceptadas pelo chat…

Elas deveriam ser interceptadas por esse listener certo?

 client.addMessageReceiver(true, function (message) {
    // Process received message
    console.log(`Received message: ${message}`);
  });

Curioso é que depois de iniciada a sessão, as mensagens do chatbot enviadas tanto com sendMessage e sendCommand não chegam pro atendimento … 

 var msg = {
      type: 'text/plain',
      content: 'Hello, world',
      to: `MEU_CODIGO%40msging.net@desk.msging.net`,
    };
    var result3 = await blipClient.sendMessage(msg);

Via sendCommand 

    var result3 = await blipClient.sendCommand({
      id: Lime.Guid(),
      from: `MEU_CHATBOT@msging.net`,
      to: `MEU_CODIGO%40msging.net@desk.msging.net`,
      type: 'text/plain',
      content: 'Hello, I would like to talk to an attendant',
    });

Nenhum chega no chat do atendente com o ticket e o que o atendente envia também não estou interceptando … o que pode estar errado?


Rafael_Figueiredo
Blipper
Forum|alt.badge.img+5

olá @paulo.dias tudo bem ? 

 

E que quando você gera um ticket o destino das mensagens muda normalmente é iddocontato@0mn.io pra blipchat e idddocontato@wa.msging.net para whatsapp e tem o tunnel quando você tem que fazer a comunicação via ticket ficaria tipo assim : 

{TICKET_ID}@desk.msging.net 

paulo.dias
  • Inspiring
  • 9 de outubro de 2024

Opa Rafael, estou seguindo a documentação, e após receber a resposta que o ticket foi aberto com sucesso, inicio o atendimento e mando mensagem, porém o método

client.addMessageReceiver(true, function (message) {
    // Process received message
    console.log(`Received message: ${message}`);
  });

Não dispara …

Para enviar mensagem pro atendimento estou usando 

    var msg = {
      type: 'text/plain',
      content: 'Hello, world',
      from: `CUSTOMER_ID%40msging.net/instance`,
      to: `CHATBOT_ID%40msging.net@desk.msging.net`,
    };
    blipClient.sendMessage(msg);

Exatamente como na documentação, porém nenhum dos dois se comunicam, nem chatbot nem atendimento.
Após receber o id do ticket, existe mais algum processo para vincular minha sessão ao ticket ?


Rafael_Figueiredo
Blipper
Forum|alt.badge.img+5

@paulo.dias tem os steps de atendimento sim pq teoricamente move o contato para o desk para identificar que está em atendimento e identificador do ticket é por onde as mensagens devem passar valide de o contato que é criado corretamente e para acompanhar essas trocas de mensagem e por onde estão indo use um webhook https://help.blip.ai/hc/pt-br/articles/4474381206423-Enviando-dados-para-an%C3%A1lise-atrav%C3%A9s-de-Webhooks


paulo.dias
  • Inspiring
  • 9 de outubro de 2024
Rafael_Figueiredo escreveu:

@paulo.dias tem os steps de atendimento sim pq teoricamente move o contato para o desk para identificar que está em atendimento e identificador do ticket é por onde as mensagens devem passar valide de o contato que é criado corretamente e para acompanhar essas trocas de mensagem e por onde estão indo use um webhook https://help.blip.ai/hc/pt-br/articles/4474381206423-Enviando-dados-para-an%C3%A1lise-atrav%C3%A9s-de-Webhooks

Opa, obrigado Rafael, mas vi na documentação que o webhook pode levar até duas horas pra disparar, como se trata de captura de atendimento humano acho que não vai ajudar.

Reparei no seguinte:

Se eu chamo atribuindo ao To, o meu próprio chatbot, como na forma abaixo, o listener intercepta

    var msg = {
      id: Lime.Guid(),
      type: 'text/plain',
      content: 'Hello, world',
      to: `MEU_CHAT_BOT@msging.net/default`,
    };
    client.sendMessage(msg);

Se eu adiciono no from  o meu próprio chatbot (chatbot@msging.net) o listener funciona, MAS se eu adiciono no from, qualquer outro endereço, por exemplo CUSTOMER_ID%40msging.net/instance, pra simular que veio uma mensagem do customer … ele não intercepta

Exemplo:

var msg = {
      type: 'text/plain',
      content: 'Hello, world',
      from: `CUSTOMER_ID%40msging.net/instance`,
      to: `MEU_CHATBOT@msging.net@`,
    };
    blipClient.sendMessage(msg);

Existe algum bloqueio ou limitação que faz com que o listener ouça apenas as mensagens que envia para sí mesmo ? Fazendo que ele não capture mensagens de outros emissores?


Rafael_Figueiredo
Blipper
Forum|alt.badge.img+5

@paulo.dias a parte da doc sobre demora é só uma observação, mas se testar o webhook você vai ver dados em tempo real.

 

Não há nenhum bloqueio que faça com que o listener não receba essa informação.

Você chegou a dar uma olhada nessa doc : https://github.com/takenet/blip-sdk-js ?


Marcio Figueredo

Rafael boa noite. Estou com o mesmo problema do Paulo, eu consigo criar um contato, abrir o ticket e enviar mensagem pelo SDK, mas no blip desk as mensagem so aparecem para o atendente se ele da um refresh na pagina. Tem algo que tenho que fazer no envio da mensagem para ela funcionar igual no blip chat?


Rafael_Figueiredo
Blipper
Forum|alt.badge.img+5
Marcio Figueredo escreveu:

Rafael boa noite. Estou com o mesmo problema do Paulo, eu consigo criar um contato, abrir o ticket e enviar mensagem pelo SDK, mas no blip desk as mensagem so aparecem para o atendente se ele da um refresh na pagina. Tem algo que tenho que fazer no envio da mensagem para ela funcionar igual no blip chat?

@Marcio Figueredo tudo bem ?

É como mencionei acima a biblioteca do sdk em js tem uma parte do preenchimento do dados de conexão do sdk https://github.com/takenet/blip-sdk-js/blob/master/src/Application.js pode ser necessário a inclusão da organização outro ponto o sdk é basicamente o kit de desenvolvimento de um arquitetura do zero de um chat bot ele não tem exemplo de como faz algo, mas indica a possibilidade de fazer recomendo que de uma olhada também na doc. https://docs.blip.ai/?javascript#using-sdk-javascript


Comente


Cookie Policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Definições de cookies