Artigos sobre: Integrações

Como INTEGRAR VIA WEBHOOK com Google Planilhas (Sheets)

IMPORTANTE: A Google esta limitando algumas funções dentro de contas básicas da Google. Para integrar com o Google Sheets, você precisa ter uma conta GSuíte.

Acesse a página inicial do Google Planilha (ou Google Sheets) e crie uma nova planilha em branco:



Na primeira aba, insira os nomes de cada campo que será preenchido no formulário da sua landing page, um por coluna (como no exemplo abaixo):



Após isso, acesse o menu "Tools > Script Editor" (ou "Ferramentas > Editor de Script", caso o idioma esteja em português).



Após acessar a área de scripts, você verá uma tela como na imagem abaixo. Nela, dê um nome para o seu projeto onde está escrito "Untitled project" ou "Projeto sem título". Podendo chamar de "API GreatPages".



Em seguida, selecione todo o conteúdo e substitua pelo código abaixo:

// Link de compartilhamento do Google Sheets
var SPREADSHEET_URL = 'https://docs.google.com/spreadsheets/';

function doPost(e) {
  var values = getValues(e);
  
  if (SPREADSHEET_URL) {
    handleSpreadsheet(values, SPREADSHEET_URL);
  }
  
  return ContentService.createTextOutput('OK');
}

function getValues(e) {
  var values = JSON.parse(e.postData.contents);
  var answers = values["answers"];
  if (typeof answers === "object") {
    Object.keys(answers)
      .forEach(function(answerLabel) {
        var answer = answers[answerLabel];
        values[answerLabel] = answer != null ? answer.toString() : answer;
      });
    delete values["answers"];
  }
  values['received_at'] = new Date();
  return values;
}

function handleSpreadsheet(values, spreadsheetUrl) {
  var ss = SpreadsheetApp.openByUrl(spreadsheetUrl);
  var sheet = ss.getSheets()[0];
  var headerMap = getExistingKeyColMap(sheet);
  updateKeyColMap(sheet, headerMap, values);
  writeValuesWithHeaderMap(sheet, headerMap, values);
}


function getExistingKeyColMap(sheet) {
  var map = {};
  sheet.getRange('1:1').getValues()[0].forEach(function(value, colIndex){
    if (value.trim().length) {
      map[value] = colIndex + 1;
    }
  });
  return map;
}


function updateKeyColMap(sheet, headerMap, values) {
  var maxColIndex = 0;
  Object.keys(headerMap).forEach(function(key) {
    maxColIndex = Math.max(maxColIndex, headerMap[key]);
  });
  
  Object.keys(values).forEach(function(valueKey) {
    if (headerMap[valueKey] !== undefined) {
      return;
    }
    
    // The values object has a key we haven't seen before.
    maxColIndex += 1;
    sheet.getRange(1, maxColIndex).setValue(valueKey);
    headerMap[valueKey] = maxColIndex;
  });
  sheet.setFrozenRows(1);
  
  var headerRow = sheet.getRange("1:1");
  headerRow.setFontWeight("bold");
}

function writeValuesWithHeaderMap(sheet, headerMap, values) {
  const rowIndex = sheet.getLastRow() + 1;
  Object.keys(values).forEach(function(key) {
    const colIndex = headerMap[key];
    sheet.getRange(rowIndex, colIndex).setValue(values[key]);
  });
}

function test() {
  doPost({
    postData: {
      type: "application/json",
      contents: '{ "hello": "world" }',
    }
  })
}


1- Na segunda linha onde tem -> https://docs.google.com/spreadsheets, você vai substituir pelo link da sua planilha do Google;

O link da sua planilha do Google precisa estar liberado para acesso (publico);

Salve o script clicando no ícone de "Salvar";



Depois disso, clique em "Implantar" e no menu que irá abrir clique em "Nova implantação";





Na próxima tela que irá abrir, clique no ícone de engrenagem e em seguida clique em "App da web";





Após isso, irá abrir um espaço na tela onde você terá que adicionar uma descrição da integração, selecionar a conta do Gmail e por último selecionar a opção "Qualquer pessoa", como no exemplo abaixo;



Depois de clicar para "Implantar", aparecerá na próxima tela o botão "Autorizar acesso", que é onde você deverá clicar;



Em seguida você será questionado sobre algumas permissões. Escolha uma conta do Google e siga o processo.

Quando finalizar as permissões, será gerada a URL de integração, que você deverá copiar e guardar para implementar no GreatPages;



Faça login no GreatPages e acesse as configurações do formulário (dê um clique no formulário e em seguida clique em "Configurar")



Acesse “Configurar Integração”.



Selecione a opção “Webhook” e passe adiante clicando em “Continuar”.



Na próxima tela você precisará colar o link que foi gerado no Google Planilhas em “URL da integração”, e selecionar a opção “POST+JSON”. Por último, passe adiante clicando em “Continuar” (não é preciso preencher o campo “token”).



Na tela “Configurar campos” você precisará configurar as variáveis dos campos. Elas precisam ser exatamente iguais às variáveis que você configurou na planilha.

Por último, clique em Salvar! Sua integração está pronta.

Atualizado em: 06/08/2024

Este artigo foi útil?

Compartilhe seu feedback

Cancelar

Obrigado!