Como consultar dados em uma planilha Google através do Flow

 

Além de enviar informações capturadas através do flow para uma planilha do Google Sheets, você também pode fazer o inverso: consultar informações de uma planilha e enviar essas informações para os seus clientes no chat.

Nesse artigo, vamos exemplificar uma planilha onde, através do número da matrícula, o aluno poderá consultar o resultado da sua prova. A planilha Google que utilizaremos como exemplo terá a seguinte estrutura:

 

  • Uma coluna (A) com o número das matrículas dos alunos (que eles utilizarão para saber o resultado das suas provas);
  • Uma coluna (B) com os nomes dos alunos;
  • Uma coluna (C) com os resultados das provas (essas serão as informações enviadas para os alunos).

1º passo: Configurando a planilha

  1. Na planilha a qual você deseja consultar os dados, clique na coluna que contém os dados que serão utilizados para consulta (no caso desse artigo será "MATRICULA") e formate o Número para "Texto simples".
  2. Em seguida clique na opção “Extensões” e depois em “Apps Sript”;
  3. Na tela que se abre, apague todo o conteúdo do campo Código.gs e insira o código abaixo:
function doPost(e) {  
try {
var params = {};
var find_coll = 'MATRICULA';
var last_coll = 'F';
if(typeof e !== 'undefined' && e.postData.type === 'application/json') {
params = JSON.parse(e.postData.contents);
}
var sheet = SpreadsheetApp.getActiveSheet();
var participants = sheet.getRange('A2:' + last_coll).getValues();
var head = sheet.getRange('A1:' + last_coll + '1').getValues()[0];
var colls = {};
for(var i in head) {
colls[head[i]] = i;
}
for(var i in participants) {
var participant = participants[i];
if(participant[0].length < 1) {
break;
}
if(participant[colls[find_coll]].trim().toLowerCase() == params.MATRICULA.trim().toLowerCase()) {
var json ={"variables": {}};
for(var j in colls) {
json['variables'][j] = participant[colls[j]];
}
return ContentService.createTextOutput(JSON.stringify(json)).setMimeType(ContentService.MimeType.JSON);
}
}
} catch (r) {
var sheet = SpreadsheetApp.getActive().getSheetByName('Logs');
var lastRow = sheet.getLastRow() + 1;
sheet.getRange('A' + lastRow).setValue(new Date());
sheet.getRange('B' + lastRow).setValue(JSON.stringify(e));
sheet.getRange('C' + lastRow).setValue(JSON.stringify(r));
sheet.getRange('D' + lastRow).setValue(JSON.stringify(params));
if(params.hasOwnProperty('chat')) {
huggyDoAction('chats/' + params.chat + '/flow', {
flowId: 0
});
}
return true;
}
}

OBSERVAÇÕES IMPORTANTES: Alguns elementos desse código são personalizáveis, pois variam de planilha para planilha. Portanto, é FUNDAMENTAL alterá-los conforme consta na planilha a ser utilizada:

- Substitua todos os nomes MATRICULA presentes no código acima pelo nome da coluna que contenha os dados que serão utilizados como parâmetro para consulta. Por exemplo: se a sua planilha contém a coluna CPF e a consulta pelo flow for com base nesse dado, substitua MATRICULA por CPF;

- Substitua a letra F do campo "var last_coll = 'F';" pela letra da última coluna a ser consultada. Por exemplo, se na sua planilha possui informações até a coluna W, coloque a letra W ou qualquer letra posterior (X, Z, AA...)

Veja na imagem abaixo a localização dos campos a serem editados:

 

  1. Após inserir o código, clique em Salvar projeto:

 

  1. Na parte superior da tela, clique no botão "Implantar" > "Nova implantação";
  2. Em "Selecione o tipo", clique em "App da Web" (se não aparecer na lista, clique na engrenagem e marque "App da Web";
  3. Nos parâmetros apresentados deixe como padrão, alterando apenas o campo "Quem pode acessar", para "Qualquer pessoa". Clique em "Implantar" e realize as permissões necessárias que aparecerão na tela.
    É importante realizar essas permissões, pois caso contrário, a integração pode não funcionar.
  4. Copie a URL presente em "App da Web". Guarde este código, pois ele será utilizado dentro do Flow.
     

2º passo: Configurar o Flow 

  1. Abra o Flow que será utilizado para consultar informações da planilha (na Huggy acesse Automação > Abra o projeto desejado > Abra o Flow desejado).
  2. Dentro da estrutura do seu flow, insira a ação “Enviar requisição” abaixo da ação “enviar pergunta” que será responsável por recolher a informação utilizada para consulta na planilha. No caso desse artigo, o número da matrícula do aluno.
  3. Preencha a ação enviar requisição da seguinte forma:
    1. Em Método e URL escolha o método POST e no campo URL, insira o código que você copiou no App da Web dentro do Google Sheets e clique em Salvar.
      Em Corpo (Body) adicione um novo parâmetro onde o campo Chave deverá ser preenchido com o nome da coluna a ser consultada (nesse caso MATRICULA) e Valor será a variável de contexto da pergunta que pede o número da matrícula no flow.
  4. Em Processar resposta, clique no botão PROCESSAR.
  5. Agora insira a ação "Enviar mensagem" e nela escreva a resposta que será dada, junto com o título da coluna desejada entre chaves {{ }}. Tomando a planilha que utilizamos no inicio do artigo como exemplo, podemos escrever a seguinte resposta: Olá, {{NOME}}! O resultado obtido para a matricula desejada foi: {{RESULTADO}}

Automaticamente, a resposta que aparecerá no chat, com base na matrícula informada pelo aluno, será assim:

 

  1. Por fim, salve o flow.


O que você achou deste artigo?


some text
Powered by HelpDocs (opens in a new tab)