Noções básicas de Dialogflow

Se você é novo no Dialogflow, você pode aprender o básico aqui e implementar seus agentes de bot com o Dialogflow e integrá-los com o Zobot.

Criando um Dialogflow de Agente de Bot e Integrando-o com o Zobot

Para criar um agente Dialogflow:

  • No console do Dialogflow, clique em Criar agente à esquerda da tela.
  • Digite um nome para o seu agente, escolha o idioma (você pode adicionar mais idiomas ao seu agente logo após criar um) e fuso horário, depois clique no  botão Criar .

Nota: SalesIQ não suporta alguns idiomas suportados pelo Dialogflow. Se o idioma do agente bot Dialogflow não for suportado, o SalesIQ selecionará o idioma padrão.  
Os  idiomas que suportamos  estão listados na tabela abaixo: 

línguas Código línguas Código línguas Código línguas Código
árabe ar japonês ja grego el irlandês ga
chinês zh húngaro hu espanhol es romena ro
dinamarquês da norueguês nb Abrit iw italiano isto
holandês nl polonês pl sueco sv alemão de
Inglês en Português pt tailandês º russo ru
francês fr Português-brasileiro pt-BR indonésio identidade turco tr

Lembre-se também que o chinês não tem uma localidade padrão no Dialogflow. Portanto, o código do idioma chinês e do código do idioma para todos os outros idiomas suportados pelo dialogflow será baseado no endereço IP do visitante.

Detalhes

A linguagem do bot de diálogo para responder ao visitante é escolhida com base na seguinte condição. O bot do Dialogflow verifica na ordem dada e escolhe a linguagem do bot para conversar com os visitantes:

Se você deseja que seu bot de dialogflow interaja com os visitantes com base nas configurações de idioma / navegador do visitante, faça o seguinte:

Integrando o agente bot do Dialogflow com o bot SalesIQ:

  • Uma vez criado o agente bot no Dialogflow, ele será refletido no painel do Zobot. Se você tiver mais de um agente de bot, eles aparecerão na lista suspensa e você poderá escolher um entre eles.

Criando intenções

Intents são usados ​​para categorizar as intenções do usuário. Você também pode usar as fases de treinamento para definir o que o usuário pode perguntar aos seus agentes de bot.

Para criar uma intenção:

  • No console do Dialogflow , clique em (+)  mais próximo a Intents no menu à esquerda.
  • Clique acima do Intent Name para adicionar um nome.
  • Na seção Frases de treinamento , insira as perguntas que seus usuários podem fazer aos agentes.
  • Na seção Respostas , clique no campo de texto e insira as respostas que gostaria de fornecer para as perguntas que os usuários fazem.
  • Finalmente, clique em Salvar .

Cumprimento

Fulfillment é o código que é implantado como um webhook e permite que seu agente Dialogflow chame a lógica de negócios com base em intenção por intenção. Durante uma conversa, o preenchimento permite usar as informações extraídas pelo processamento de linguagem natural do Dialogflow para gerar respostas dinâmicas ou acionar ações no seu back-end.  Saber mais.

Existem duas maneiras de criar um preenchimento:

1. Webhooks

Nos Webhooks, haverá uma URL do servidor pessoal para a qual todas as consultas serão redirecionadas. Depois de receber uma solicitação, o webhook pode executar todas as tarefas necessárias. Por exemplo, o webhook pode usar informações da solicitação para pesquisar um produto em um banco de dados ou fazer um pedido. Por fim, seu webhook deve responder de volta com instruções sobre o que o Dialogflow deve fazer a seguir. Saber mais.

Nota: Eles usam os formatos do Dialogflow para redigir e enviar respostas

2. Editor Inline

O editor Inline é semelhante aos scripts DRE. Definimos respostas no editor para cada intenção separadamente como funções dentro das quais podemos definir as seguintes respostas para um agente

  • Texto
  • Postais
  • Sugestões
  • Carga útil personalizada

A seguir, um exemplo de como as respostas precisam ser estruturadas:


const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');

const TextResponse = require('dialogflow-fulfillment/src/rich-responses/text-response');
const CardResponse = require('dialogflow-fulfillment/src/rich-responses/card-response');
const SuggestionsResponse = require('dialogflow-fulfillment/src/rich-responses/suggestions-response');
const PayloadResponse = require('dialogflow-fulfillment/src/rich-responses/payload-response');
const PLATFORMS = require('dialogflow-fulfillment/src/rich-responses/rich-response');

process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  const agent = new WebhookClient({ request, response });
  console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
  console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
 
  function welcome(agent) {
    agent.add(`Welcome to my agent!`);
    agent.add(new TextResponse('Hey there! Looking out for the best courses for your educational qualification? I can help! '));

    //card
    agent.add(new Card({
             title: `Title: this is a card title`,
             imageUrl: 'https://developers.google.com/actions/images/badges/XPM_BADGING_GoogleAssistant_VER.png',
             text: `This is the body text of a card.  You can even use line\n  breaks and emoji!`,
             buttonText: 'This is a button',
             buttonUrl: 'https://assistant.google.com/'
           })
         );

    //suggestion
    let suggestion = new Suggestion('you want assistances?');
    suggestion.setReply('I need assistance');
    agent.add(suggestion);
    agent.add(new SuggestionsResponse(`No, Thanks!`));
  }
  
  function fallback(agent) {
      const siqpayload = {"platform": "ZOHOSALESIQ","action": "forward","replies": ["Thanks for contacting us today, You will be connected to our operator shortly"]};
      //new PayloadResponse(PLATFORMS.PLATFORMS.UNSPECIFIED, siqpayload);
      agent.add(new PayloadResponse('PLATFORM_UNSPECIFIED', siqpayload));
  }
  
  let intentMap = new Map();
  intentMap.set('Default Welcome Intent', welcome);
  intentMap.set('Default Fallback Intent', fallback);
  agent.handleRequest(intentMap);
});

 

Nota:

  • SalesIQ não suporta imagens porque o texto é obrigatório no nosso final.
  • A carga útil customizada é uma resposta específica de integração. Como a integração do Zoho SalesIQ não é diretamente suportada, precisamos usar o platform_unspecified para a integração.

function fallback(agent) {
      const siqpayload = {"platform": "ZOHOSALESIQ","action": "forward","replies": ["Thanks for contacting us today, You will be connected to our operator shortly"]};
      //new PayloadResponse(PLATFORMS.PLATFORMS.UNSPECIFIED, siqpayload);
      agent.add(new PayloadResponse('PLATFORM_UNSPECIFIED', siqpayload));
  }

 

  • Em Inline, caso ambos Payload Response e text / images / cards sejam usados, somente a resposta de PayloadResponse será enviada.

Usando texto dinâmico em resposta

O texto que pode mudar é denominado “Texto dinâmico”. As mensagens serão transmitidas dinamicamente de um visitante para o outro, conforme mencionado na regra definida. O texto dinâmico será preenchido automaticamente quando o símbolo “%” for digitado junto com a mensagem. Zoho SalesIQ suporta texto dinâmico em respostas Dialogflow e assim você pode usar o texto dinâmico em mensagens de gatilho e respostas de bate-papo.

Como usar o texto dinâmico? 

Usando texto dinâmico em mensagens do acionador:

  • No painel do Zobot>  caixa de texto Trigger Message , digite % seguido pelo formato junto com a mensagem.
  • As mensagens serão acionadas dinamicamente para cada visitante.

Usando texto dinâmico nas respostas do Dialogflow:

  • Na seção Respostas do Dialogflow> Resposta do Texto , digite% seguido do formato junto com a mensagem.
  • As respostas serão enviadas dinamicamente para cada visitante.

Detalhes

Lista de texto dinâmico que você pode usar em suas mensagens de gatilhos e respostas Dialogflow:

Formato de texto dinâmico O que representa Use na mensagem Trigger Use nas respostas do Dialogflow
% visitor.name% Nome do visitante no site.
% visitante.id% ID de referência para o visitante no site.
% visitor.email% Endereço de email do visitante no site.
% visitor.phone% Número de contato do visitante.
% visitor.department% Nome do departamento para o qual o visitante iniciou o bate-papo.
% visitor.question% Pergunta levantada pelo visitante ao iniciar o bate-papo.
% visitante.ip% Endereço IP do visitante visitando o site.
% attender.name% Nome do operador que participa do chat.
% visitor.pagetitle% Título da página, de onde o visitante iniciou o bate-papo.
% visitor.pageurl% URL da página, de onde o visitante iniciou o bate-papo.
% visitor.referrer% Fonte de onde o visitante é referido.
% visitor.state% Estado / Província do visitante localizado em.
% visitante.city% Cidade do visitante localizada em.
% visitor.country% País do visitante acessando o site.
% visitor.timezone% Fuso horário do visitante acessando o site.
% visitante.latitude% Latitude do visitante.
% visitor.longitude% Longitude do visitante.
% visitor.operating.system% O sistema operacional usado pelo visitante.
% visitor.browser% O navegador usado pelo visitante.
% visitor.browser.version% A versão do navegador usada pelo visitante.
% web.embed.name% A web incorpora onde o visitante iniciou o bate-papo.
%plataforma% A plataforma usada pelo visitante em seu sistema.
%resolução da tela% Resolução de tela do sistema do visitante.
%motor de pesquisa% Mecanismo de pesquisa usado pelo visitante para acessar o site.
%consulta de pesquisa% Consulta de pesquisa (Palavra-chave) usada pelo visitante para acessar o site.
% attender.email% Endereço de email do participante que frequenta o chat.
% smart.timenow% Período de tempo na sequência do dia (ex. Manhã, noite).
%Nome da empresa% Nome da empresa mencionado no Clearbit.
%Tipo de companhia% Tipo de empresa mencionado no Clearbit.
% company.sector% Setor da empresa mencionado no Clearbit.
% company.location% Localização da empresa mencionada no Clearbit.
%site da companhia% Site da empresa mencionado no Clearbit.
% company.employeecount% Contagem de funcionários da Compny mencionada no Clearbit.
% company.annualrevenue% Receita anual da empresa mencionada no Clearbit.
% company.marketcapital% Capital de mercado da empresa mencionado no Clearbit.
% company.fundraised% Detalhes do fundo da empresa presentes no Clearbit.
% company.twitterfollowers% Seguidores do twitter da sua empresa da Clearbit.
% company.facebooklikes% As curtidas que você tem no Facebook são registradas no Clearbit.
% company.industrytype% O tipo de indústria à qual sua empresa pertence.

Detalhes

Nota:  Alguns dos textos dinâmicos podem não funcionar na janela de visualização do Zobot. 

Upload de arquivo

Ao fazer o upload de um arquivo para o bot do Dialogflow, uma mensagem de texto que diz que o arquivoenviado com sucesso será enviado para o Dialogflow. Nenhum texto será exibido na janela de bate-papo e o texto não será enviado com base no idioma. O usuário precisa manipular a intenção de upload do arquivo com base na resposta de texto.