> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://ajuda.greatsoftwares.com.br/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# 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. 

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

![](https://storage.crisp.chat/users/helpdesk/website/a6ab90d8350d6000/capturarpng_ud072e.png)

2. 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);

![](https://storage.crisp.chat/users/helpdesk/website/a6ab90d8350d6000/capturar2png_1157ghe.png =800x170)

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

![](https://storage.crisp.chat/users/helpdesk/website/a6ab90d8350d6000/capturar3png_1ib3q2w.png)

4. 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"**;

![](https://storage.crisp.chat/users/helpdesk/website/a6ab90d8350d6000/projetopng_3m2cvs.png =650x320)

5. 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" }',
    }
  })
}
```

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);

6. Salve o script clicando no ícone de **"Salvar"**;

![](https://storage.crisp.chat/users/helpdesk/website/a6ab90d8350d6000/salvarpng_1f9p1a8.png =800x395)

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

![](https://storage.crisp.chat/users/helpdesk/website/a6ab90d8350d6000/implantarpng_5p99pi.png =800x197)

![](https://storage.crisp.chat/users/helpdesk/website/a6ab90d8350d6000/nova-implantacaopng_121c8ph.png =650x315)

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

![](https://storage.crisp.chat/users/helpdesk/website/a6ab90d8350d6000/configuracaopng_2tids2.png =650x517)

![](https://storage.crisp.chat/users/helpdesk/website/a6ab90d8350d6000/app-da-webpng_5jle03.png =650x303)

9. 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;

![](https://storage.crisp.chat/users/helpdesk/website/a6ab90d8350d6000/configpng_108s6gi.png =650x523)

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

![](https://storage.crisp.chat/users/helpdesk/website/a6ab90d8350d6000/autorizar-acessopng_106ip4p.png =650x515)

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

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

![](https://storage.crisp.chat/users/helpdesk/website/a6ab90d8350d6000/urlpng_txs1nb.png =650x522)

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

![](https://storage.crisp.chat/users/helpdesk/website/-/a/6/a/b/a6ab90d8350d6000/captura-de-tela-2026-08-10-as-_lxh50.png =650x494)

14. Vá em **"Configurar",** na seção Integração clique em **"Adicionar integração";**

![](https://storage.crisp.chat/users/helpdesk/website/-/a/6/a/b/a6ab90d8350d6000/captura-de-tela-2026-08-18-as-_1pxhsln.png =650x576)

15. Selecione a opção **“Webhook”**;

![](https://storage.crisp.chat/users/helpdesk/website/-/a/6/a/b/a6ab90d8350d6000/webhook_1ubr9u2.png =650x553)

16. 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”)*.

![](https://storage.crisp.chat/users/helpdesk/website/-/a/6/a/b/a6ab90d8350d6000/webhook-url_1694wwe.png =650x535)

17. 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. :)  

Ficou com alguma dúvida? Chame nossa equipe no Chat! Estamos sempre prontos para ajudar. <3  