Enviar respostas direto para uma planilha do Google
O parfaitform não tem uma conexão nativa com o Google Drive — mas qualquer formulário pode enviar cada resposta, em tempo real, para uma planilha na sua conta Google, usando um pequeno script gratuito do Google (Apps Script) como ponte. Leva uns 5 minutos para configurar, uma vez só.
i Como funciona
O parfaitform já tem um campo "Webhook URL" nas configurações de cada
formulário: sempre que alguém responde, ele envia os dados como uma requisição
POST em JSON para essa URL. O script abaixo cria uma URL desse
tipo, hospedada gratuitamente pelo próprio Google, que recebe essa requisição e escreve
uma nova linha na sua planilha — criando colunas automaticamente com o texto de cada
pergunta do formulário.
1 Crie a planilha
Acesse sheets.new para criar uma planilha em branco no seu Google Drive. Dê um nome a ela (ex: "Respostas — Pesquisa de satisfação"). Não precisa criar cabeçalhos manualmente — o script faz isso sozinho na primeira resposta recebida.
2 Abra o editor de Apps Script
Dentro da planilha, vá em Extensões → Apps Script. Isso abre um editor de código em uma nova aba, já vinculado a essa planilha específica.
3 Apague o conteúdo padrão e cole este código
O editor abre com uma função vazia (function myFunction() {})
— apague tudo e cole o código abaixo. Depois, salve (ícone de disquete ou
Ctrl/Cmd + S).
function doPost(e) {
var lock = LockService.getScriptLock();
lock.waitLock(10000);
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var body = JSON.parse(e.postData.contents);
var answers = body.answers || {};
var lastCol = sheet.getLastColumn();
var headers = lastCol > 0 ? sheet.getRange(1, 1, 1, lastCol).getValues()[0] : [];
if (headers.length === 0) {
headers = ['Data de envio', 'Formulário'];
sheet.getRange(1, 1, 1, headers.length).setValues([headers]);
}
// Cria uma coluna nova para cada pergunta que ainda não apareceu antes.
Object.keys(answers).forEach(function (label) {
if (headers.indexOf(label) === -1) {
headers.push(label);
sheet.getRange(1, headers.length, 1, 1).setValue(label);
}
});
var row = headers.map(function (col) {
if (col === 'Data de envio') return new Date();
if (col === 'Formulário') return body.form || '';
return answers[col] || '';
});
sheet.appendRow(row);
return ContentService.createTextOutput(JSON.stringify({ ok: true }))
.setMimeType(ContentService.MimeType.JSON);
} catch (err) {
return ContentService.createTextOutput(JSON.stringify({ ok: false, error: String(err) }))
.setMimeType(ContentService.MimeType.JSON);
} finally {
lock.releaseLock();
}
}
4 Publique como aplicativo da Web
No canto superior direito do editor, clique em Implantar → Nova implantação.
- Clique no ícone de engrenagem ao lado de "Selecionar tipo" e escolha App da Web.
- Em "Executar como", deixe Eu (seu e-mail).
- Em "Quem pode acessar", escolha Qualquer pessoa — isso não dá acesso à sua planilha para ninguém, só permite que o parfaitform envie dados para essa URL específica.
- Clique em Implantar. O Google vai pedir para autorizar o script — é a sua própria conta autorizando o próprio script, confirme normalmente.
- Copie a URL do app da Web gerada (termina em
/exec).
5 Conecte no parfaitform
Volte para o construtor do seu formulário, cole essa URL no campo "Webhook URL" e gere (ou salve) o link normalmente. Pronto — cada nova resposta aparece como uma linha na planilha em poucos segundos, com uma coluna para cada pergunta do formulário.