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ínguasCódigolínguasCódigolínguasCódigolínguasCódigo
árabearjaponêsjagregoelirlandêsga
chinêszhhúngarohuespanholesromenaro
dinamarquêsdanorueguêsnbAbritiwitalianoisto
holandêsnlpolonêsplsuecosvalemãode
InglêsenPortuguêspttailandêsºrussoru
francêsfrPortuguês-brasileiropt-BRindonésioidentidadeturcotr

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âmicoO que representaUse na mensagem TriggerUse 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.