📱Enviar um ativo baseado em uma planilha do Google Sheets

Use o Google Sheets para enviar dados para o Hyperflow, e notificar os seus clientes

Objetivo

Neste artigo, você irá construir uma automação, onde ao criar uma nova linha em uma planilha do Google Sheets, um fluxo da Hyperflow será ativado. Com isso, você pode criar qualquer automação dentro da Hyperflow, fazendo com que o fluxo envie uma mensagem ativa de WhatsApp por exemplo, ou envie informação para algum outro sistema seu.

Neste exemplo, iremos demonstrar como criar essa automação, e enviar um ativo de WhatsApp com os dados da planilha ao criar uma nova linha.

Plano de ação

Para criar a integração, será necessário concluir 6 passos 👇

  1. Criar um fluxo na Hyperflow, que irá receber os dados de nova linha do Google Sheets;

  2. Criar um fluxo para enviar a mensagem ativa de WhatsApp. Este fluxo será chamado pelo fluxo criado no item 1;

  3. Criar uma rota de API na Hyperflow para ativar o fluxo criado no item 1;

  4. Criar uma nova coluna na planilha, para controle de qual linha já foi enviada para o Hyperflow;

  5. Criar um Apps Script dentro do Google Sheets, que irá pegar o dado de uma linha e enviar para o Hyperflow;

  6. Criar um gatilho dentro do Google Sheets, para escutar novas edições e executar o script criado no item 3.

1 - Criar uma rota na Hyperflow para receber os dados

Para iniciar, vamos criar uma rota de API, que irá ativar um fluxo, sempre que uma nova linha for inserida em nossa planilha. Se preferir, importe o fluxo de exemplo que está no final deste item.

O fluxo criado, será responsável por receber os dados, verificar se possui os dados necessários para realizar o ativo, e em seguida, chamar o usuário. Segue abaixo um exemplo do fluxo.

Este fluxo, ao receber uma linha do Google Sheets, realiza uma verificação, para apenas enviar a mensagem, caso tenha todos os dados necessários. As colunas do Google Sheets, serão recebidas na variável {{input}}. Dessa forma, se você quiser pegar o valor da coluna "nome" do seu Google Sheets, basta usar a variável {{input.nome}}.

O fluxo descrito acima, estará disponível para download clicando no arquivo abaixo. Dessa forma, basta importar este fluxo em seu ambiente, e alterar as variáveis desejadas.

Para publicar o fluxo informado, será necessário preencher a caixinha "Ativar usuário" com o número que será utilizado, o fluxo que será executado de forma ativa. Este fluxo, será criado no item 2.

2 - Criando fluxo que realiza o envio ativo

Para isso, crie um novo fluxo, igual foi feito no passo 1. Neste fluxo, configure para que ao iniciar, seja enviado um "Chat", com uma mensagem do tipo "HSM" (para abrir conversas ativas).

Segue abaixo um exemplo de como você pode construir este fluxo que faz o envio ativo. Após este envio, você pode aplicar qualquer regra que deseja. Você pode construir uma automação para que na resposta, seja enviado para o atendimento humano, ou para que seja processado um outro fluxo de atendimento por exemplo.

Com o fluxo criado, basta voltar no fluxo do item 1, e selecionar para que este fluxo seja executado no módulo "Ativar usuário".

Insira os dados para ativar o usuário. Para isso, basta configurar a caixinha conforme o exemplo. Você precisará informar estes 5 campos 👇

  1. O número que será utilizado para fazer o disparo;

  2. O fluxo que acabou de ser criado neste item para realizar o envio da mensagem ativa;

  3. Escolha enviar para "Usuário único";

  4. Insira o telefone dele de acordo com o cabeçalho da usa planilha. Na nossa planilha de exemplo, usamos o telefone na coluna "telefone", por isso foi inserido a variável {{input.telefone}};

  5. Envie para o fluxo que realiza o disparo, dados adicionais que são recebidos da sua planilha. No exemplo da imagem, estamos enviando o parâmetro nome, para utilizar a variável {{input.nome}} no próximo fluxo.

3 - Criar uma rota de API que irá ativar o fluxo criado

Com os fluxos criados, agora precisamos criar uma rota de API para acionar o fluxo "Sheets - Envio planilha" criado no item 1.

Clique no botão para adicionar uma nova rota, e configure a sua rota, para ser um POST. Você pode customizar o nome final da sua rota, neste exemplo, chamamos de "teste-sheets". Selecione o fluxo criado no item 1. Após isso, clique no botão confirmar.

Por razões de segurança, após criar a sua API, desabilite a opção "Acesso público" caso ela venha marcada, e clique em salvar. Nesta tela, você também conseguirá visualizar o endereço de API que vamos utilizar no passo 5.

Para realizar a chamada desta API de forma segura, será necessário criar um "cliente". O cliente é uma entidade (Neste caso o Google Sheets), que possui uma chave de acesso para poder executar este serviço.

Para isso, basta ir na aba "Clientes" e adicionar um novo cliente. Após isso, copie o ID do cliente. Ele será necessário no passo 5, junto com o endereço da API criada.

Sucesso 🎉

Com este passo, você concluiu as configurações necessárias na Hyperflow. Agora vamos para os ajustes necessários no Google Sheets.

4 - Google Sheets - Criando coluna de controle

Dentro da sua planilha, crie uma coluna com o cabeçalho "Envio hyperflow". Ela será uma coluna que irá ser preenchida automaticamente pelo script, e será utilizada de controle, para não processar a mesma linha em duplicidade.

Caso você não queira que a automação processe registros já existentes na sua planilha, preencha todas as linhas já existentes com o valor "ok".

5 - Criando o seu Apps Script

Agora vamos criar um script, que será responsável por processar novos registros em sua planilha, e enviar para a Hyperflow.

Para isso, acesse o menu de "Extensões" e escolha a opção "Apps Script"

Agora será necessário criar o script que irá notificar o Hyperflow sempre que tiver uma nova linha. Para isso, você pode usar o código abaixo como template. Basta trocar o seu client_id da linha 35, e a URL criada no API gateway na linha 39.

function editRow(e) {
  const sheet = SpreadsheetApp.getActiveSheet()
  const hyperflowColumn = sheet.getRange('1:1').getValues()[0].indexOf('Envio hyperflow') + 1
  if (hyperflowColumn == 0) {
    Logger.log("Não foi encontrado o cabeçalho 'Envio hyperflow'")
    return
  }
  const data = sheet.getRange(1, hyperflowColumn, sheet.getLastRow(), 1).getValues().join().split(',')
  const headings = sheet.getDataRange().offset(0, 0, 1).getValues()[0]; //get heading
  const totalColumns = sheet.getLastColumn()
  for (var i = 0; i < data.length; i++) {
    if (data[i] == '') {
      var values = sheet.getSheetValues(
        (i + 1), // Linha atual
        1, // Coluna de inicio
        1, // Número de linhas a serem buscadas
        totalColumns // Total de colunas
      );
      Logger.log('Notificando linha: ' + (i + 1))
      Logger.log(values[0])
      var payload = {}
      for (var j = 0; j < headings.length; j++) {
        var name = headings[j];
        var value = values[0][j];
        payload[name] = value;
      }
      payload["linha"] = (i + 1);
      Logger.log('Enviando dados');
      Logger.log(payload)
      var options = {
        'method': 'post',
        'contentType': 'application/json',
        'payload': payload,
        'headers': {
          'client_id': 'SEU_CLIENT_ID'
        }
      };

      const response = UrlFetchApp.fetch('URL_DO_API_GATEWAY_CRIADA', options);
      Logger.log(response)
      sheet.getRange((i + 1), hyperflowColumn).setValue('ok')
    }
  }
}

Com estes dados, crie o seu script, e clique em salvar

6 - Criar o gatilho para que o script seja executado

Com tudo isso configurado, agora basta criar um gatilho, para que o seu script seja executado. Para isso, vá em "Acionadores" e clique em "+ Adicionar acionador"

Faça a configuração abaixo em seu gatilho, para que ele seja executado, toda vez que existir uma mudança na sua planilha

Parabéns 🎉

Você concluiu todas as etapas do tutorial, e agora sempre que adicionar uma nova linha, ou editar algum campo, o script irá buscar essa linha e enviar para a Hyperflow, realizando a ação desejada.

Verificando a execução e logs

Caso após a configuração, você tenha algum problema, você pode conferir os logs e motivos do erro da seguinte forma.

1 - Dentro do Apps Script

Você pode verificar se o script está sendo executado, e qual a sua resposta, acessando o menu de "Execuções" do gatilho criado. Lá você terá uma tabela contendo todas as execuções e respostas recebidas.

2 - Na Hyperflow

Caso a execução esteja sendo realizada, você pode verificar na Hyperflow se você está recebendo as requisições da forma adequada. Para isso, basta ir em "tempo real", e filtrar os logs de API. Dentro dos logs de API, você pode filtrar por um período, e pelo nome da sua rota.

Dessa forma, você pode validar todas as chamadas recebidas, e o processamento realizado em cada uma delas. Basta expandir o processamento para ver possíveis falhas de configuração em seu fluxo.

Pronto, você concluiu este tutorial. Caso tenha qualquer outra dúvida, basta entrar em contato com o nosso suporte!

Last updated